舉個例子,如果想在路由器上跑 openwrt 並未包含的 rtl8188eu 驅動模組該怎麼辦呢?在這裡給出一種快捷但是比較 dirty 的辦法(否則應該自己寫個 package )。
首先得有編譯韌體時留下的 kernel 的原始碼,包括編譯過程中生成的一些檔案。
下面假定 openwrt 的原始碼目錄在 /some/path/openwrt ,核心目錄以及 staging dir 分別為其下的 build_dir/target-mips_r2_uclibc-x.x.x.x/linux-target_generic/linux-x.x.x和 staging_dir ,toolchain 編譯好後會存放在 staging dir 下的 toolchain-mips_r2_gcc-x.x-linaro_uclibc-x.x.x.x 目錄裡,字首為 mips-openwrt-linux- 。目標機器指令集為 mips32 r2 。
那麼,我們可以在核心驅動的目錄下寫乙個指令碼來幫助編譯:
**
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh
prefix=
"/media/study/wrt/openwrt_trunk"
arch=mips
ksrc=
"$prefix/build_dir/target-mips_r2_uclibc-0.9.33.2/linux-ar71xx_generic/linux-3.10.9"
staging_dir=
"$prefix/staging_dir"
toolchain_dir=
"$staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uclibc-0.9.33.2/bin"
cross_compile=
"mips-openwrt-linux-"
export
staging_dir=$staging_dir
export
path=$toolchain_dir:$path
make
clean
make
arch=$arch cross_compile=$cross_compile ksrc=$ksrc
一般情況下廠商的 makefile 都會幫你傳遞 arch 、cross_compile和 ksrc 這幾個變數,如 rtl8188eu 的驅動( )。有的時候需要閱讀 makefile 並做些修改。
最後把生成的核心模組 scp 到裝有對應韌體的路由器上的 /lib/modules// 下即可。使用 insmod 手動裝入或者在 /etc/modules.d/ 下建立乙個配置檔案來完成開機自動載入。
openwrt開發 1 核心編譯
1.核心編譯前的工具準備。a.安裝vmare10,ubuntu10.04,筆者安裝的為前面的版本。可以選擇其他版本,盡量版本不要太高,不利於開發。b.部署linux系統的環境,例如gcc 服務等環境。2.獲取openwrt原始碼包,可以使用git或svn從openwrt官網獲取。因為筆者使用的是台灣...
openwrt增加核心模組的方法
下面就是增加核心模組的方法了 進入package目錄,建立模組目錄 cd backfire package mkdir example 進入example目錄,建立makefile檔案和 路徑 cd example touch makefile mkdir src makefile具體內容如下 th...
將vsftpd編譯進openwrt的韌體中去
scripts feeds install d m vsftpd 3 之後回根目錄,輸入 make menuconfig 在network file trasfer下就可以找到vsftpd了,果斷按下y選擇編譯進韌體,當然你也可以選擇m那麼就只會編譯出ipk檔案來了。4 make v 99 編譯出b...