我正在尝试将Linux wifi drivers from 3.11反向移植到linux-omap-l1(2.6.39)。我在我的Ubuntu 11.4(内核是2.6.38-11-generic)上设置了交叉编译器,并验证了交叉编译的内核可以按预期在ARM处理器上运行。我还能够按照"Usage Guide" section向这个Ubuntu支持wifi驱动程序。但是,我有问题交叉编译wifi backports。以下是我的两次尝试:
尝试#1
在上面相同链接的“交叉编译”部分之后,我设置ARCH(= arm),CROSS_COMPILER,KLIB_BUILD(= linux-omap-l1目录)和KLIB(= linux-omap-l1目录),运行make defconfig-wifi,然后运行make -j4。它完成没有任何错误。但是,当我检查生成的ko文件时,它们显然不是交叉编译的,因为它们看起来像“rt2x00usb.ko:ELF 32位LSB可重定位, Intel 80386 ,版本1 (SYSV),未剥离“
尝试#2
然后我清理旧的make结果并直接传递上面的四个宏作为参数并再次运行它。这次它报告了很多错误,抱怨缺少printk.h,atomic.h和average.h
请帮助解决上述任何一种情况。
答案 0 :(得分:4)
好吧,我在这里发布 rt2800usb wifi 解决方案供其他人参考。以下步骤成功交叉编译:
从构建pc运行以下sript。确保KLIB指向的目录预先存在,否则创建它
set -a CROSS_COMPILE="/opt/arm-2009q1/bin/arm-none-linux-gnueabi-" ARCH=arm KLIB_BUILD="/home/xxx/linux-omap-l1" KLIB="/home/xxx/linux-omap-l1/updates" set +a make defconfig-wifi make oldconfig # menuconfig worked here too make make install
将已编译的二进制文件和模块复制到单元中(10.11.2.3)
scp -r /home/xxx/linux-omap-l1/updates/lib/modules/2.6.39.4-00537-g6c21e4a root@10.11.2.3:/lib/modules/2.6.39.4/.
登录嵌入式设备并运行“modprobe -v -f rt2800usb”
答案 1 :(得分:1)
backports无法获取我的内核配置..... mac80211在我的内核配置中设置为模块,当我在backport的菜单配置中搜索mac80211时,它显示为禁用。试过以上......
set -a
CROSS_COMPILE="/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-none-linux-gnueabi-"
ARCH=arm
KLIB_BUILD="/home/xxx/rpm/BUILD/linux"
KLIB="/home/xxx/rootfs/lib/modules/2.6.35.3-998-ga1cd8a7/updates"
set +a
make defconfig-wifi
make menuconfig
答案 2 :(得分:0)
我发现这是成功的......
make defconfig-wifi CROSS_COMPILE=/home/xxx/Downloads/gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux/bin/arm-linux-gnueabi- ARCH=arm KLIB_BUILD=/home/xxx/Downloads/linux-3.10/ KLIB=/home/xxx/Downloads/rootfs/
make menuconfig CROSS_COMPILE=/home/xxx/Downloads/gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux/bin/arm-linux-gnueabi- ARCH=arm KLIB_BUILD=/home/xxx/Downloads/linux-3.10/ KLIB=/home/xxx/Downloads/rootfs/
make CROSS_COMPILE=/home/xxx/Downloads/gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux/bin/arm-linux-gnueabi- ARCH=arm KLIB_BUILD=/home/xxx/Downloads/linux-3.10/ KLIB=/home/xxx/Downloads/rootfs/