1. 程式人生 > >ARM AR1021X 驅動編譯

ARM AR1021X 驅動編譯

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