ARM AR1021X 驅動編譯
阿新 • • 發佈:2019-01-08
1,解壓驅動,進入WLAN-AIO/build/scripts/x86,修改配置,以匹配開發環境
export KERNELPATH=xxxxxx
export KERNELARCH=arm
export TOOLPREFIX=xxxxxx
2,這裡直接使用的X86的模板,可以不用修改名字。
3.進入自己的核心目錄,make menuconfig找到 Networking support ---> Wireless ---> cfg80211 - wireless configuration API ,
將此選項cfg80211設定為Module,否則編譯驅動時會依賴核心的配置,即不選擇模組的話,驅動中的cfg80211將不會被編譯,而是使用核心自己的cfg80211。
4,su root
這裡最好切換到root賬戶,否則編譯會提示許可權問題
5,source /etc/profile
這裡需要生效一下環境變數,否則在編譯中會出現找不到gcc的問題。
6,make
注意:在模組廠家提供的驅動中編譯發生錯誤
drivers/ath6kl/cfg80211.c:4348: error: 'struct ath6kl' has no member named 'wake_lock'
這是由於在cfg80211.c中以下程式碼有問題:
#ifdef CONFIG_HAS_WAKELOCK wake_lock_timeout(&ar->wake_lock, 3*HZ); #else /* TODO: What should I do if there is no wake lock?? */ #endif
應該修改為:
#ifdef CONFIG_ANDROID
#ifdef CONFIG_HAS_WAKELOCK
wake_lock_timeout(&ar->wake_lock, 3*HZ);
#else
/* TODO: What should I do if there is no wake lock?? */
#endif
#endif
7,將rootfs-x86.build中的firmware和ko移到自己的檔案系統中,firmware要在lib目錄下。就可以insmod這3個ko了。
編譯過程參考了https://blog.csdn.net/luckytzq/article/details/52981088