Linux-Kernel

如何為 FriendlyARM mini210s 編譯 Netis WF2190 Wifi dongle 的 Linux 驅動程序?

  • December 22, 2014

目標

我想在我的 FriendlyARM mini210s 上安裝 Netis WF2190 wifi dongle linux 驅動程序。

環境

我了解我需要交叉編譯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) 之前獲取它。

引用自:https://unix.stackexchange.com/questions/175055