目标
我想将 Netis WF2190 wifi dongle Linux 驱动程序安装到我的FriendlyARM mini210s上。
环境
- 友好ARM mini210s S5PV210 ARM Cortex-A8 板
- ...运行Linux 3.0.8-FriendlyARM
交叉编译
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
值得注意的是,我不是专家,我正在努力学习如何实现我的目标。
在这个阶段,我只是不明白该消息告诉我什么,以及如何解决它。
任何帮助将不胜感激。
答案1
内核源码路径错误,我更正为:
KSRC := /home/vagrant/friendlyarm/linux-3.0.8/
它编译了
答案2
在驱动程序 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
) 之前获取它。