預設buildroot會將所有的映像檔放在路徑『$(0)/images』底下,但是對於要怎麼佈署到目標版上,則要看使用者怎麼選擇,底下有四種方式來佈署你的映像檔:

  • 可移除儲存裝置 (SD card, USB keys)
    這部分又分成兩個方式,一個就是你自己要手動的去建置分區(partition),至少包含了boot section和Root section,然後在將相對應的檔案複製到相對應的分區裡;另一個則是使用geninage等工具去建置一個可燒錄在block裝置裡包含所有分區的映像檔,然後在使用像是『dd』等工具傳到裝置裡。

    建議第一次可以用第一種方式,這樣你可以實際了解運作原理,第二次以後可以就直接用genimage來就好,這兩種方式都可以在post-image script裡面去呼叫。

(來源 : free-electrons )

  • NAND flash
    可將印象檔傳到target board上在燒錄進去。

  • NFS booting
    如果你想要用NFS來掛載你的root filesystem的話,因為權限的關係,千萬不要去掛載『$(0)/target』,必須將你rootfs的tarball untar以後再掛載,舉個例子來說,你想要將host上的『/nfs』掛載到目標版上,而你的tarball則在『output/images/rootfs.tar』,所以就要用以下指令:

    sudo tar -xf output/images/rootfs.tar -C /nfs

  • initramfs
    如果你的root filesystem很小,或是kernel開發的話,可以考慮用『initramfs』,將你的檔案系統建置在記憶體裡。這邊有兩種選擇:

    • 使用『BR2_TARGET_ROOTFS_CPIO=y』,建置一個cpio的壓縮檔,這樣你可以從你的bootloader裡面將這個檔案讀到kernel裡面。

    • 使用『BR2_TARGET_ROOTFS_INITRAMFS=y』,將initramfs直接包含到你的kernel裡面,但是在buildroot這邊只允許你的kernel是由buildroot建置的才行。

results matching ""

    No results matching ""