簡體   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