為 OPENWRT 編譯額外的核心模組

2021-06-22 20:15:13 字數 1653 閱讀 4334

舉個例子,如果想在路由器上跑 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-"

exportstaging_dir=$staging_dir

exportpath=$toolchain_dir:$path

makeclean

makearch=$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...