Zedboard移植USB無線網絡卡驅動心得
最近因為需要,要在Zedboard上移植一個無線網絡卡驅動,因為以前在友善之臂上面移植過,所以以為很簡單,沒想到這件事情卻花了我將近一週才搞好,中間就因為核心的一個小的疏忽,特在此將中間遇到的問題寫下來,留作以後謹記。
開發板:Zynq Zedboard
作業系統:Ubuntu 12,04
交叉編譯器:arm-Xilinx-linux-gnueabi gcc
WIFI 模組:TP-LINK TL-WN725N 2.0
移植步驟與友善之臂類似,難點主要是在編譯核心那塊,我在編譯核心的時候的出現了各種各樣的錯誤:error: unknown field 'private' specified
in initializer; drivers/usb/host/ehci-hcd.c:1436:2:#error "missing bus glue for ehci-hcd"
我剛開始是按照這些錯誤來改,結果發現怎麼編譯都無法通過,最後才發現是我在配置核心的時候有問題,配置核心我們一般使用的是make menuconfig,但是這個命令預設的是i386的,也就是配的是X86上面的,自然當我們用交叉編譯器編譯的時候會出現各種問題,正確的做法應該是指定編譯ARM核心。即make ARCH=arm menuconfig。在進入配置頁面的時候可以看看是不是留意是不是進入的ARM的,如下所示,
可以看到這個配置就是arm的,儲存退出。
然後用交叉編譯器編譯網絡卡驅動,注意,一定要用同一個交叉編譯器編譯,編譯過程中可能會出現error:'struct net_device' has
no member named 'wireless_handlers'。出現這個錯誤的原因是因為