繁体   English   中英

如何将交叉编译的 linux 模块安装到 ARM 板上

[英]How to install cross-compiled linux modules to ARM board

我知道如何在 x86 主机上为 ARM 板编译 Linux 内核和模块。

但是,我想知道是否可以将 corss 编译的 linux 模块安装到 ARM 板上?

我不想挑选每个模块并将其复制到板上。 我想知道是否有一些命令,例如 x86 中的make modules_install可以将交叉编译的 linux 模块安装到目标 ARM 板中?

非常感谢!

您可以编译/构建单个模块,但需要一个所有相关的Linux模块。 因此,告诉我您将如何解决这种依赖性。

用于构建/编译单个模块。 一次,我们需要构建所有Linux模块。 然后注释或删除“ make distclean ”。 make distclean (不适用于所有程序,但大多数情况下)将删除./configure创建的所有文件和make创建的所有文件。 因此,如果要删除make distclean 它将仅构建修改后的模块。

您不能在ARM中构建单个模块。 你会得到依赖错误。 为了解决这些错误,您将不得不添加其他Linux模块。

我知道我晚了几年,但因为我只是想知道是否有一个简单的内置解决方案可以解决这个问题,我认为一个解决方案可能仍然很有趣。

我知道有两种可能性:

使用临时文件夹

正如 0andriy 建议的那样,创建一个临时文件夹,在其中安装模块,然后复制到其真正的目的地。 对于副本,我们必须做一个技巧来防止符号链接被复制为完整的文件夹内容:

mkdir /tmp/dist
make modules_install INSTALL_MOD_PATH=/tmp/dist/
cd /tmp/dist
tar cfp - * | ssh root@distant.board '(cd / && tar xfp - )'

注意:如果您没有以root身份运行make modules_install ,则必须在复制之前chown -R root:root /tmp/dist

使用sshfs

使用sshfs在本地安装远程板。

如果您没有sshfs ,请先安装它。 如果在 Debian 或衍生版本上:

apt-get install sshfs

然后,将远程板安装在本地文件夹上:

mkdir /mnt/dist
sshfs root@distant.board:/ /mnt/dist

你在那里。 您现在可以在/mnt/dist访问远程文件系统。 所以要安装模块:

make modules_install INSTALL_MOD_PATH=/mnt/dist/

在您的板上完成工作后,卸载文件夹:

umount /mnt/dist

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM