【发布时间】:2016-10-20 10:38:36
【问题描述】:
我知道如何在 x86 主机上为 ARM 板交叉编译 Linux 内核和模块。
但是,我想知道是否可以将 corss 编译的 linux 模块安装到 ARM 板上?
我不想挑选每个模块并将其复制到板上。我想知道是否有一些命令,例如 x86 中的 make modules_install 可以将交叉编译的 linux 模块安装到目标 ARM 板上?
非常感谢!
【问题讨论】:
-
大部分开发者都是这样做的。您必须为您的 make 命令提供 ARCH 和 CROSS_COMPILE 变量。确保可以通过 PATH 访问工具链。所以,基本上你必须运行,例如,
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules。这部分你知道。但是板上的安装是通过您连接到的 ssh 或 uart 通道完成的。如果你想用 initrd 重启,你可以准备好它并提供给 bootloader。 -
是哪个 ARM 板?你如何填充图像? buildroot / yocto ?利纳罗?
-
@AndyShevchenko,有没有关于如何通过 ssh 或 uart 通道安装它的指针?我已经配置了两个连接,但是,我不知道如何运行
make modules_install以通过 ssh 或 uart 将所有模块安装到板上... -
我没有使用 yocto。我只是用操作系统刷新磁盘,然后将 zImage 复制到 /boot
-
@MikeXu,只需运行从任何一方发起的正常 ssh 传输:
mkdir /tmp/modules; make INSTALL_MOD_PATH=/tmp/modules modules_install; scp -R /tmp/modules 192.168.0.10:/。如果您正在运行 ssh 服务器,则类似的事情。否则直接从目标端执行scp。
标签: linux linux-device-driver cross-compiling