ARMHF 核心編譯前置準備
安裝虛擬機、基本套件以及依賴程式
# apt-get install qemu-system-arm -y
查看支援的平台
# qemu-system-arm -M ? | grep vexpress
安裝 uboot 工具套件
# apt-get install u-boot-tools -y
橋接介面的設定權限
# chmod u+s /usr/lib/qemu/qemu-bridge-helper
然後對 bridge.conf 新增 br10 的允許權限,先新增資料夾
# mkdir /etc/qemu
注意:預設是用 br10,實際上請按照老師指定的橋接介面做允許
# nano /etc/qemu/bridge.conf
加入一行指令
allow br10
儲存並退出
設定環境變數 (注意使用權限)
先回到普通使用者家目錄 (eecs)
$ cd
編輯 .bashrc 檔案
$ nano .bashrc
最底下加入這一行並且儲存退出
alias makearm="make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-"
最後重新載入環境變數
$ source ~/.bashrc
開始編譯核心 [注意權限,務必使用普通使用者(eecs)]
核心參數設定
回到使用者家目錄
$ cd
進入 virtualarm 資料夾
$ cd virtualarm
將核心原始碼 (linux-3.16.81.tar.xz) 解壓縮到 kernel 資料夾
$ tar xfva linux-3.16.81.tar.xz -C kernel
進入 kernel 資料夾
$ cd kernel
進入剛剛解壓縮出來的核心原始碼資料夾
$ cd linux-3.16.81
載入預設的設定檔
$ makearm vexpress_defconfig
進入設定核心畫面 (總共有三個項目需要修改)
Tips: 上下鍵選擇光棒、按下空白鍵可以選擇/取消項目、按下 Enter 可以進入下一頁、按兩下 Esc 返回上一頁
$ makearm menuconfig
修改核心參數,第一項找到 General setup 底下的 open by fhandle syscalls 將他啟用
第二項,找到 System Type 底下的 Enable the L2x0 outer cache controller 將他取消選取
第三項,找到 Enable the block layer 底下的 Support for large (2TB+) block devices and files 將他啟用
儲存核心參數並且退出設定畫面
正式編譯核心
$ time makearm uImage LOADADDR=0x60000000 -j8
驗收這顆核心
$ file arch/arm/boot/uImage
打包驅動程式模組
$ time makearm modules -j8
回到上一層資料夾 (~/virtual/kernel/) 建立一個 modules 資料夾
$ cd ..
$ mkdir modules
再次進入 linux-3.16.81 資料夾
$ cd linux-3.16.81
安裝 modules 檔案到上一層的 modules 資料夾
$ makearm modules_install INSTALL_MOD_PATH=../modules/
進入到上一層的 modules 資料夾
$ cd ../modules
開始打包驅動程式模組
$ time tar cfa ../modules-3.16.81.tar.xz lib
嘗試著開機
進入 ~/virtualarm/kernel/linux-3.16.81/arch/arm/boot 目錄底下
$ cd ~/virtualarm/kernel/linux-3.16.81/arch/arm/boot
輸入以下指令讓他試著開機
$ qemu-system-arm -M vexpress-a9 -m 256 -nographic -kernel zImage
核心到此編譯完成,這個畫面按下 Ctrl + A 放開然後馬上按 X 可以離開
- 受保護的內容: NAS 版 Mathbot 管理網站與 Linebot 啟動方法 - 2024 年 11 月 15 日
- Realtime 啥鬼的 - 2021 年 6 月 15 日
- nodejs 數學遊戲 - 2021 年 6 月 8 日


















