以Buildroot 建立ARM的 X11環境

在之前的 以 QEMU 加速嵌入式系統開發 裡,利用了 buildroot 來快速建立系統軟體。而最近工作上又有需要運行圖型環境,原來打算自己找各個套件編譯,無奈相關的文件不多。而比較推荐的方式,是此buildroot此類型境來建立系統。

由於流程跟上次環境差不多,本文僅著重變更部份,與套用可運作的設定檔。

本文是以 Ubuntu 18.04 測試,來建立 ARM 的程式。

範本檔案

為了簡化示範的流程,本文會用一個預先建立的目錄結構與script,來解說命令,檔案會附在文末。請先下載下來後,放在 ubuntu 內。用以下命令解壓縮。

下載編譯 Buildroot 以建立檔案系統與Toolchain

執行下列命令,下載 buildroot 套件,解壓縮並進入設定畫面

接著直接跳出,如果buildroot編譯後想重新設定,建議將 output 目錄整個刪除,會比較沒有問題。

ARM 設定

將 buildroot 範本設定檔複蓋設定檔,最後下達 make 來編譯。

 

解壓 rootfs

完成後,會產生下列檔案

  • rootfs : output/images/rootfs.tar
  • toolchain 執行檔 : output/host/bin

為了符合範例script的設定,請下達下面命令,將 rootfs.tar 解開

 

頭一行命令,會先指定 toolchain 的路徑,以方便後面的kernel編譯。

下載並編譯 Kernel 4.4

接下來要下載並編譯 kernel 4.4,編譯器會使用剛 buildroot 所產生的編譯器。

複制範本設定檔,並開始編譯

啟動 QEMU 開機

當完成上面的動作後,基本上就具備了 rootfs / kernel,就可以準備開機了。此時在 ubuntu 的圖型環境裡,下達下面的命令,來使用script開機。

與之前不同的是,此時啟動會跳出一個虛擬的螢目。在登入 Linux 後,可以透過下面命令來執行 xterm 程式在 XWindow 上

XTerm執行

範本檔案變更

這個範本檔案主要提供了4個變更

  1. buildroot 的設定檔: 加入 X11, xterm, mesa … 的編譯
  2. kernel 的設定檔: 加入虛擬GPU, 圖型類支援
  3. runqemu: 產生虛擬螢目, 將 console 單獨輸出
  4. rcS: 在開始就執行 mdev -s 以免 XOrg 啟動時無適當裝置檔案

結語

編譯簡單的 X11 和 xterm 程式單然只是一個開始,後續準備讓 firefox 運行其上,當做一個 Kiosk 環境。後續的挑戰可能還不少~~ 加上 X11 的 rootfs.img 也僅僅只有 17MB,也算是蠻輕量的了,我猜 firefox 會遠遠超過這個大小。

附件

qemu_sys_arm_xwin_template.tar 範本檔案

Leave a Reply

請輸入答案 8 ÷ = 2