當前位置:首頁 » 編程軟體 » 新版dev63怎麼編譯

新版dev63怎麼編譯

發布時間: 2025-04-11 11:11:19

❶ 如何為現有的openwrt編譯一個opkg上沒有的軟體

一、安裝編譯環境(以ubuntu10.10為例)
依次輸入以下命令:
1.ubuntu開發環境需要的軟體:
sudo
apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf
gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term
zlib1g-dev gawk
sudo apt-get update
2.創建目錄
mkdir openwrt
3.獲取OpenWrt源代碼和安裝包,更新
svn checkout svn://svn.openwrt.org/openwrt/backfire
cd backfire
./scripts/feeds update -a
./scripts/feeds install -a
4.配置編譯選項
make menuconfig
在target system里選擇Broadcom BCM63xx,根據需要選擇其他的軟體,
*:表示該模塊直接編譯到核心中
M:該模塊以被核心支持,可以後再安裝
空白:不支持該模塊
具體模塊的起什麼作用需要多google;
5.編譯選項配置保存後,開始編譯
make V=99
V=99表示輸出詳細的debug信息;
二、編譯准備
1.下載源文件
下載地址:http://ftp.awk.cz/cntlm/ ,最新的版本是0.91rc6;
2.獲取md5sum碼
進入下載文件目錄,在終端里輸入
md5sum cntlm-0.91rc6.tar.gz
獲得md5驗證碼:
3.編寫makefile文件
在openwrt/backfire目錄中的package目錄下新建cntlm目錄,在cntlm目錄下新建文件,命名為makefile,編輯makefile文件,加入如下內容:
---------------------------------------------------------------------------------------------------------------------------
#
# Copyright (C) 2006-2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=cntlm
PKG_VERSION:=0.91rc6
PKG_RELEASE:=1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://ftp.awk.cz/cntlm/
PKG_MD5SUM:=

PKG_INSTALL:=1

include $(INCLUDE_DIR)/package.mk

define Package/cntlm
SUBMENU:=Proxy Servers
SECTION:=net
CATEGORY:=Network
TITLE:=Cntlm is a Fast NTLM Authentication Proxy
URL:=http://cntlm.sourceforge.net/
endef

define Package/cntlm/install
$(INSTALL_DIR) $(1)/usr/sbin
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/cntlm $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/share/man/man1
$(CP) $(PKG_INSTALL_DIR)/usr/share/man/man1/$(PKG_NAME).1 $(1)/usr/share/man/man1
$(INSTALL_DIR) $(1)/etc/
$(CP) $(PKG_INSTALL_DIR)/etc/cntlm.conf $(1)/etc/
endef

$(eval $(call BuildPackage,cntlm))
---------------------------------------------------------------------------------------------------------------------------
4.編寫patch文件
由於BCM63xx核心是big
endian,而我們常用的intel或AMD的cpu都是little
endian的,cntlm雖然能夠自己檢測編譯環境的endian,但我們是在交叉編譯環境中編譯,cntlm檢測出來的還是ubuntu系統的endian,因此需要設置手動endian為big
endian。具體就是將源碼文件中的config/endian.c文件的rc設定為0.
將源碼文件中的endian.c文件分別復制到a目錄下的config目錄和b目錄下的config目錄,打開b目錄下的config目錄中的endian.c文件,並將其修改為:
-------------------------------------------------------------------------------------------------------------------------
#include
#include

int main(int argc, char **argv) {
int rc;

rc = 0;
printf("%s\n", rc ? "little endian" : "big endian");

return rc;
}
---------------------------------------------------------------------------------------------------------------------------
然後保存。
運行:
diff -Naur a/config/endian.c b/config/endian.c >endian.patch
endian.patch文件內容如下:
---------------------------------------------------------------------------------------------------------------------------
--- a/config/endian.c 2007-08-20 07:23:17.000000000 +0800
+++ b/config/endian.c 2010-11-01 18:36:32.000000000 +0800
@@ -1,15 +1,11 @@
#include
#include

-uint8_t num[] = { 0xEF, 0xBE };

-/*
- * RC: 1 = LE, 0 = BE
- */
int main(int argc, char **argv) {
int rc;

- rc = (*((uint16_t *)num) == 0xBEEF);
+ rc = 0;
printf("%s\n", rc ? "little endian" : "big endian");

return rc;
---------------------------------------------------------------------------------------------------------------------------
將endian.patch文件復制到package/cntlm/patches/目錄下(沒有patches目錄就新建一個)。

三、編譯
1.選定安裝包
終端輸入:
make menuconfig
在Network——》Proxy Severs中選擇cntlm;
2.開始編譯
終端輸入:
make package/cntlm/compile V=99
中間可能會出現一些提示(Note),可以不用理會。編譯完成後在bin/packages目錄下可以看到cntlm_0.91rc6-1_brcm63xx.ipk文件啦。

四、補充
上面提到在編譯過程中出會現提示(Note),一般如下:
utils.c:1: note: someone does not honour COPTS correctly, passed 0 times
這是由於cntlm源碼文件中CFLAG的設置是覆蓋而不是續接,與openwrt要求不同,在openwrt一般寫成CFLAG += 的方式。可以通過如下修改去除note:
將源碼包中的Makefile文件復制到a目錄和b目錄,打開b目錄下的Makefile文件,作如下修改:
CFLAGS+=$(FLAGS)
即增加上面的「+」號,保存。
運行:
diff -Naur a/Makefile b/Makefile > makefile.patch
得到的makefile.patch文件如下:
---------------------------------------------------------------------------------------------------------------------------
--- a/Makefile 2010-04-29 19:18:58.000000000 +0800
+++ b/Makefile 2010-11-09 20:17:33.405177000 +0800
@@ -16,7 +16,7 @@
CC=gcc
VER=`cat VERSION`
OBJS=utils.o ntlm.o xcrypt.o config.o socket.o acl.o auth.o http.o forward.o direct.o scanner.o pages.o main.o
-CFLAGS=$(FLAGS)
-std=c99 -Wall -pedantic -O3 -D__BSD_VISIBLE -D_ALL_SOURCE
-D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=200112 -D_ISOC99_SOURCE
-D_REENTRANT -DVERSION=\"`cat VERSION`\" -g
+CFLAGS+=$(FLAGS)
-std=c99 -Wall -pedantic -O3 -D__BSD_VISIBLE -D_ALL_SOURCE
-D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=200112 -D_ISOC99_SOURCE
-D_REENTRANT -DVERSION=\"`cat VERSION`\" -g
OS=$(shell uname -s)
OSLDFLAGS=$(shell [ $(OS) = "SunOS" ] && echo "-lrt -lsocket -lnsl")
LDFLAGS:=-lpthread $(OSLDFLAGS)
---------------------------------------------------------------------------------------------------------------------------
將makefile.patch文件復制到package/cntlm/patches目錄下,重新編譯即可。

❷ 詳解Linux系統中hdparm硬碟檢測工具的使用

在Linux下可以使用hdparm工具查看硬碟的相關信息或對硬碟進行測速、優化、修改硬碟相關參數設定。我主要常用這個工具來測試硬碟速度。

hdparm(hard disk parameters)
功能說明:顯示與設定硬碟的參數。

語法:

復制代碼代碼如下:hdparm [-CfghiIqtTvyYZ][-a ][-A ][-c ][-d ][-k ][-K ][-m ][-n <0或

1>][-p ][-P ][-r ][-S ][-u ][-W ][-X ][設備]


參數說明:

-a 設定讀取文件時,預先存入塊區的分區數,若不加上選項,則顯示目前的設定。
-A 啟動或關閉讀取文件時的快取功能。
-c 設定IDE32位I/O模式。
-C 檢測IDE硬碟的電源管理模式。
-d 設定磁碟的DMA模式。
-f 將內存緩沖區的數據寫入硬碟,並清楚緩沖區。
-g 顯示硬碟的磁軌,磁頭,磁區等參數。
-h 顯示幫助。
-i 顯示硬碟的硬體規格信息,這些信息是在開機時由硬碟本身所提供。
-I 直接讀取硬碟所提供的硬體規格信息。
-k 重設硬碟時,保留-dmu參數的設定。
-K 重設硬碟時,保留-APSWXZ參數的設定。
-m 設定硬碟多重分區存取的分區數。
-n 忽略硬碟寫入時所發生的錯誤。
-p 設定硬碟的PIO模式。
-P 設定硬碟內部快取的分區數。
-q 在執行後續的參數時,不在屏幕上顯示任何信息。
-r 設定硬碟的讀寫模式。
-S 設定硬碟進入省電模式前的等待時間。
-t 評估硬碟的讀取效率。
-T 平谷硬碟快取的讀取效率。
-u 在硬碟存取時,允許其他中斷要求同時執行。
-v 顯示硬碟的相關設定。
-W 設定硬碟的寫入快取。
-X 設定硬碟的傳輸模式。
-y 使IDE硬碟進入省電模式。
-Y 使IDE硬碟進入睡眠模式。
-Z 關閉某些Seagate硬碟的自動省電功能。

hdparm常用參數使用舉例:

1、顯示硬碟的相關設置:

復制代碼代碼如下:[root@oracle ~]# hdparm /dev/sda

/dev/sda:

IO_support = 0 (default 16-bit)

readonly = 0 (off)

readahead = 256 (on)

geometry = 19929[柱面數]/255[磁頭數]/63[扇區數], sectors = 320173056[總扇區數], start = 0[起始扇區數]

2、顯示硬碟的柱面、磁頭、扇區數:

復制代碼代碼如下:[root@oracle ~]# hdparm -g /dev/sda

/dev/sda:

geometry = 19929[柱面數]/255[磁頭數]/63[扇區數], sectors = 320173056[總扇區數], start = 0[起始扇區數]

3、測試硬碟的讀取速度:

復制代碼代碼如下:[root@oracle ~]# hdparm -t /dev/xvda


/dev/xvda:

Timing buffered disk reads: 422 MB in 3.01 seconds = 140.20 MB/sec

[root@oracle ~]# hdparm -t /dev/xvda

/dev/xvda:

Timing buffered disk reads: 408 MB in 3.01 seconds = 135.59 MB/sec

[root@oracle ~]# hdparm -t /dev/xvda

/dev/xvda:

Timing buffered disk reads: 416 MB in 3.01 seconds = 138.24 MB/sec


4、測試硬碟緩存的讀取速度:

復制代碼代碼如下:[root@oracle ~]# hdparm -T /dev/xvda


/dev/xvda:

Timing cached reads: 11154 MB in 1.98 seconds = 5633.44 MB/sec

[root@oracle ~]# hdparm -T /dev/xvda

/dev/xvda:

Timing cached reads: 10064 MB in 1.98 seconds = 5077.92 MB/sec

[root@oracle ~]# hdparm -T /dev/xvda

/dev/xvda:

Timing cached reads: 10600 MB in 1.98 seconds = 5351.73 MB/sec

5、檢測硬碟的電源管理模式:

復制代碼代碼如下:[root@oracle ~]# hdparm -C /dev/sda


/dev/sda:


drive state is: standby [省電模式]


6、查詢並設置硬碟多重扇區存取的扇區數,以增進硬碟的存取效率:

復制代碼代碼如下:[root@oracle ~]# hdparm -m /dev/sda


[root@oracle ~]# hdparm -m 參數值為整數值如8 /dev/sda

附:硬碟壞道修復方法

檢查:

復制代碼代碼如下:smartctl -l selftest /dev/sda

卸載:

復制代碼代碼如下:umount /dev/sda*

修復:

復制代碼代碼如下:badblocks /dev/sda

熱點內容
java配置路徑 發布:2025-04-25 23:29:44 瀏覽:824
閃迪存儲卡g 發布:2025-04-25 23:24:51 瀏覽:211
c語言和It 發布:2025-04-25 23:18:22 瀏覽:694
c語言簡單程序設計 發布:2025-04-25 23:13:14 瀏覽:593
c語言編程思路 發布:2025-04-25 23:08:08 瀏覽:341
安卓開發存儲空間多少則為不足 發布:2025-04-25 22:54:55 瀏覽:541
視頻課堂源碼 發布:2025-04-25 22:52:55 瀏覽:982
庭院植物配置需要什麼 發布:2025-04-25 22:46:47 瀏覽:985
存儲卡ntfs 發布:2025-04-25 22:42:57 瀏覽:76
編譯馬列著作的專門機構是編譯局 發布:2025-04-25 22:32:57 瀏覽:779