gpt4 book ai didi

linux-kernel - Linux wifi backports 交叉编译

转载 作者:行者123 更新时间:2023-12-04 04:55:43 27 4
gpt4 key购买 nike

我正在尝试向后移植 Linux wifi drivers from 3.11到 linux-omap-l1(2.6.39)。我在我的 Ubuntu 11.4(内核是 2.6.38-11-generic)上设置了交叉编译器,并验证了交叉编译的内核可以按预期在 ARM 处理器上运行。通过遵循 "Usage Guide" section,我还能够将 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

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

最佳答案

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

  • Menuconfig linux-omap-l1(2.6.39) 内核禁用网络支持 -> 无线,构建它并将其引导到嵌入式单元以确保准备就绪
  • 从构建 pc (Ubuntu 11.4) 上的 backports 目录运行“make mrproper”
  • 从构建 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
  • 将编译后的二进制文件和模块复制到单元中(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”
  • 如有必要,将 rt2800usb 固件下载并安装到/lib/firmware
  • lsmod 验证驱动可以加载
  • 插入 USB 加密狗(可能需要创建或修改 udev 规则)
  • 使用 iw 进一步检查其属性
  • 关于linux-kernel - Linux wifi backports 交叉编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18855554/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com