2013-07-20 91 views
1

我是新來交叉編譯。我必須交叉編譯Linux內核,因爲我打算使用帶有TS-7500 SBC(ARM處理器)的WiFi模塊,但它不支持它。我有我的wifi模塊的驅動程序,並通過互聯網衝浪我已經瞭解了一個交叉編譯的一般程序。不過,我對額外的模塊部分有些困惑。下面是有關這些額外的模塊TS-7500的官方網站提供的信息:使用附加模塊交叉編譯Linux內核

附錄 - 編譯TS-內核與自定義選項 爲了編譯一個獨立的內核模塊,並納入一個.ko文件出來在已經存在的內核中,這些是在步驟08之後並且在上面的步驟09結束的步驟。注意:步驟02之後的步驟未經驗證/未經測試。它們代表了一個人會經歷的準確程序。

01)打開menuconfig並使用「M」模塊化內核功能。例如,要模塊化cifs.ko,可以使用箭頭和Enter鍵 導航到文件系統 - >網絡文件系統 - > CIFS支持。
按「M」鍵將CIFS支持模塊化到內核中,然後繼續點擊 「退出」,直到系統提示您保存更改,選擇「是」。

make menuconfig 

02.)編譯與模塊的內核和模塊複製到Linux PC

make && make modules && make modules_install 

03.)檢索其像 CP被複制到的Linux PC的命令的模塊以便它可以安裝到MiniSD卡上的內核中。

mkdir /mnt/miniSD4 
mount /dev/sdb4 /mnt/miniSD4 
cp /lib/modules/2.6.24.4/kernel/fs/cifs/cifs.ko /mnt/miniSD4 

04.)通過複製和粘貼從卡到分區2上的SBC的隔板4 安裝模塊到內核中。

cp -r /dev/nbd4/cifs.ko /dev/nbd2/lib/modules/2.6.24.4/kernel/fs/cifs/cifs.ko 

05)最後,爲了使用新模塊,您必須啓用它。這可以將 包含在啓動腳本(如linuxrc)中。

depmod 
modprobe cifs.ko 

我感到困惑的串行2.任何人都可以解釋這對我和我在哪裏應該提供我要安裝的驅動程序的地址?

在此先感謝。

回答

0

我假設說你的SBC不支持它,你的意思是你已經交叉編譯的模塊/驅動程序是一個'源樹'內核模塊。

以上程序僅適用於'in-tree內核模塊'

這給你留下以下兩個選項。

  1. 由於交叉編譯驅動程序,您將有一個* .ko文件。使用SD卡或通過網絡將此文件傳輸到正在運行的系統。在此負載之後使用該模塊

    insmod /path/to/module/filename.ko 
    

    該方法有一個限制。即,如果此驅動程序/模塊依賴於其他驅動程序,則必須先加載它們。

  2. 包括您在內核源代碼樹的驅動程序和使用modprobe drivername與依賴一起加載它。 modprobe在某種意義上比insmod的更高級的是加載模塊本身之前自動依賴關係並加載它們首先檢查。

要將驅動程序包含在您的內核源代碼樹中,請參閱此answer