Linux wifi backports交叉编译

时间:2013-09-17 16:53:22

标签: linux-kernel wifi linux-device-driver cross-compiling

我正在尝试将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

请帮助解决上述任何一种情况。

3 个答案:

答案 0 :(得分:4)

好吧,我在这里发布 rt2800usb wifi 解决方案供其他人参考。以下步骤成功交叉编译:

  1. Menuconfig linux-omap-l1(2.6.39)内核禁用网络支持 - >无线,构建并将其引导至嵌入式设备以确保准备就绪
  2. 从构建pc上的backports目录运行“make mrproper”(Ubuntu 11.4)
  3. 从构建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
    
  4. 将已编译的二进制文件和模块复制到单元中(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/.
    
  5. 登录嵌入式设备并运行“modprobe -v -f rt2800usb”

  6. 如有必要,请将/ rt2800usb固件下载并安装到/ lib / firmware
  7. lsmod验证可以加载驱动程序
  8. 插入usb加密狗(可能需要创建或修改udev规则)
  9. 使用iw进​​一步检查其属性

答案 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/