Linux-Kernel
如何為 FriendlyARM mini210s 編譯 Netis WF2190 Wifi dongle 的 Linux 驅動程序?
目標
我想在我的 FriendlyARM mini210s 上安裝 Netis WF2190 wifi dongle linux 驅動程序。
環境
- FriendlyARM mini210s S5PV210 ARM Cortex-A8 開發板
- … 執行 Linux 3.0.8-FriendlyARM
- 網飛WF2190
- 交叉編譯
arm/4.3.2/bin/arm-none-linux-gnueabi-
我了解我需要交叉編譯Netis WF2190 Linux 驅動程序
我正在使用虛擬機進行交叉編譯(vagrant box)
$ uname -a Linux vagrant 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
我已下載驅動程序並將其複製到我的虛擬機中
vagrant@vagrant:~/rtl8812AU_linux_v4.3.8_12175.20140902$
在驅動程序
Makefile
中,我添加了這些CONFIG_PLATFORM_I386_PC = n CONFIG_PLATFORM_FRIENDLYARM_MINI210S = y <====
進而
ifeq ($(CONFIG_PLATFORM_FRIENDLYARM_MINI210S), y) EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN ARCH := arm CROSS_COMPILE := /home/vagrant/friendlyarm/tools/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi- KVER := 3.0.8 KSRC := /home/vagrant/friendlyarm/linux-3.0.8/kernel endif
然後嘗試編譯,但我收到此錯誤,
vagrant@vagrant:~/rtl8812AU_linux_v4.3.8_12175.20140902$ make make ARCH=arm CROSS_COMPILE=/home/vagrant/robot-os/friendlyarm/tools/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi- -C /home/vagrant/robot-os/friendlyarm/linux-3.0.8/kernel M=/home/vagrant/rtl8812AU_linux_v4.3.8_12175.20140902 modules make[1]: Entering directory `/home/vagrant/robot-os/friendlyarm/linux-3.0.8/kernel' make[1]: *** No rule to make target `modules'. Stop. make[1]: Leaving directory `/home/vagrant/robot-os/friendlyarm/linux-3.0.8/kernel' make: *** [modules] Error 2
值得注意的是,我不是專家,我正在努力學習如何實現我的目標。
在這個階段,我只是不明白消息告訴我什麼,以及如何解決它。
任何幫助將不勝感激。
核心源路徑錯誤,我將其更正為:
KSRC := /home/vagrant/friendlyarm/linux-3.0.8/
它編譯
在驅動程序 Makefile 中,我添加了這些
這不是解決這個問題的方法。見這裡——你可以跳到第 3 步。
然後嘗試編譯,但我收到此錯誤
從你的剪切和粘貼來看,看起來你
make
之前跑過make modules
,什麼也沒發生。那不好。make
實際上應該建構核心,這可能是也可能不是製作模組所必需的(不確定是否應該,但有時似乎是)。這至少需要幾分鐘,並且應該會產生大量輸出。如果這沒有發生,那就大錯特錯了。我已經通過 crosstool-ng 使用 gcc 交叉建構了核心,並且必須設置
TARGET
;您似乎沒有這樣做(但發行版交叉編譯器可能不同)。但是,通過修改核心 makefile 來設置這些東西可能是一個錯誤。只需在環境中執行此操作:export TARGET=arm-none-linux-gnueabi export ARCH=arm export CROSS_COMPILE=/foo/bar/etc
將它放在一個文本文件中,然後在執行 make (
source my_environment.sh
) 之前獲取它。