4

我正在尝试将Linux wifi 驱动程序从 3.11反向移植到 linux-omap-l1(2.6.39)。我在我的 Ubuntu 11.4(内核是 2.6.38-11-generic)上设置了交叉编译器,并验证了交叉编译的内核可以按预期在 ARM 处理器上运行。通过遵循“使用指南”部分,我还能够将 wifi 驱动程序反向移植到这个 Ubuntu 。但是,我在交叉编译 wifi 反向端口时遇到问题。这是我做的两次尝试:

尝试#1

按照上面相同链接的“交叉编译”部分,我设置了 ARCH(=arm)、CROSS_COMPILER、KLIB_BUILD(=linux-omap-l1 目录)和 KLIB(=linux-omap-l1 目录),运行 make defconfig-wifi ,然后运行 ​​make -j4。它没有任何错误就完成了。但是,当我检查生成的 ko 文件时,它们显然没有交叉编译,因为它们看起来像“rt2x00usb.ko: ELF 32-bit LSB relocatable, Intel 80386 , version 1 (SYSV), not stripped”

尝试#2

然后我清理了旧的make结果,直接将上面的四个宏作为参数传递给make,然后再次运行。这次它报告了许多错误,抱怨缺少 printk.h、atomic.h 和 average.h

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

4

3 回答 3

4

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

  1. Menuconfig linux-omap-l1(2.6.39) 内核禁用Networking Support -> Wireless,构建它并将其引导到嵌入式单元以确保准备就绪
  2. 从构建 PC 上的 backports 目录运行“make mrproper”(Ubuntu 11.4)
  3. 从构建 pc 运行以下脚本。确保 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”</p>

  6. 如有必要,将 rt2800usb 固件下载并安装到 /lib/firmware
  7. lsmod 验证驱动可以加载
  8. 插入 USB 加密狗(可能需要创建或修改 udev 规则)
  9. 使用 iw 进一步检查其属性
于 2013-11-12T17:27:16.490 回答
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
于 2014-06-13T14:07:00.677 回答
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/
于 2014-06-27T18:27:44.333 回答