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

时间:2016-06-18 19:55:04

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

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

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

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

非常感谢!

2 个答案:

答案 0 :(得分:0)

您可以编译/构建单个模块,但需要一个完全依赖的Linux模块。那么告诉我你将如何解决这种依赖。

用于构建/编译单个模块。一旦我们需要构建所有Linux模块。然后评论或删除" make distclean "。 make distclean (不适用于所有程序,但大多数)将删除由./configure和make生成的所有文件生成的所有文件。因此,如果您要删除 make distclean 。它只会构建修改过的模块。

你无法在ARM中构建单个模块。你会得到依赖错误。要解决这些错误,您必须添加其他Linux模块。

答案 1 :(得分:0)

我知道我要迟到几年了,但是当我只是想问自己是否存在一个简单的内置解决方案时,我认为一个解决方案可能仍然很有趣。

我知道有两种可能性:

使用一个临时文件夹

按照0andriy的建议,创建一个临时文件夹,在其中安装模块,然后复制到其实际目的地。对于副本,我们必须采取一种技巧,以防止将符号链接复制为完整文件夹内容:

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

注意:如果您没有以{em> 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