我將爲AT91SAM9X25 Board設置我自己的linux嵌入式系統的構建環境。我正在使用buildroot來做到這一點。 make命令構建所有目標,首先構建工具鏈,然後打包,然後創建rootfs(tar,cpio ...)的rootfs和映像。 重建rootfs我通常使用make clean然後make。 make clean命令刪除所有工具鏈,包括工具鏈。如何在buildroot中重建rootfs
所以我的第一個問題是:有沒有辦法在沒有構建工具鏈的情況下重新創建rootfs?這需要很多時間。
另外我正在buildroot中構建linux內核。我在buildroot中打開了BR2_LINUX_KERNEL [= y]。 Linux配置爲使用Initial RAM文件系統,因此構建內核所需的rootfs映像(應由buildroot創建)。當我在buildroot的根目錄下運行make時,出現錯誤的構建失敗無法打開'buildroot-2013.05/output/images/rootfs.cpio'。因爲(如果我理解正確)構建序列是工具鏈 - pakages - rootfs - linux內核 - rootfs映像。當它嘗試構建Linux內核時,不會創建rootfs.cpio映像。
所以第二個問題是:如果我想使用初始RAM文件系統,如何在buildroot中構建Linux?
可能是否有比buildroot更高效的替代方案?
在此先感謝。
讓我重新修改我關於在buildroot中構建Linux內核的問題(可以解釋得不夠清楚)。 Buildroot使得:1.Toolchain - > 2.packages - > 3.Linux內核 - > 4.rootfs圖像。但是,在步驟3(linux內核)中,rootfs映像是必需的,因爲linux配置爲使用初始RAM文件系統,但我們僅在步驟4中得到了它。問題 - 我在步驟3看到錯誤消息:沒有rootfs.cpio – Yuri
*「linux配置爲使用初始RAM文件系統」* - ** Buildroot是否也配置爲initramfs **?步驟#3中的錯誤意味着您沒有正確配置Buildroot。 [關於「添加對initramfs的支持」的提交說明](http://git.uclibc.org/buildroot/commit/?id=f507921d391bb2578261a9e45c003e72302dc67a)介紹了您對Buildroot如何處理看起來像是雞還是雞蛋問題的擔憂。 。本質上,Buildroot使用* empty * initramfs文件執行第3步,然後執行額外的步驟#5以使用實際的initramfs生成內核。 – sawdust
您的答案(即刪除.stamp_xxx文件)對強制重建rootfs非常有用。不過,我已經用overlay向rootfs添加了額外的東西。當我更改爲(稍微)不同的配置而沒有rootfs覆蓋時,舊的覆蓋文件不會從「target /」下的結構或最終圖像中刪除。我試圖刪除「目標」的內容,但這導致了一個構建錯誤(這不是一個簡單的構建輸出)。有沒有辦法清理已經從rootfs中刪除的東西,而不進行完整的distclean /重建? – Jeremy