ARM 架構說明
在 Debian Linux 底下分別支援三種版本的 ARM 架構,分別是
- armel – 沒有 FPU 的 ARM CPU
- armhf – 有 FPU,可以硬體執行浮點運算的 ARM CPU
- arm64 – 64 位元的 ARM CPU
這個學期使用 armhf 作為主要的工具鏈 (toolchain),是建構嵌入式系統的基本工具。
前置作業
請先安裝toolchain: 安裝 linux (armhf) toolchain
以及讓 x86 支援 armhf 平台: 在 x86 底下支援各種 arm 平台
※註:本篇文章中的核心版本 linux-3.16.81 請依照實際版本替換
STARTO!
先安裝模擬器 (使用 root 權限)
首先安裝 qemu 模擬器
apt-get install qemu-system-arm -y
查看支援的平台
qemu-system-arm -M ?
安裝依賴包
apt-get install u-boot-tools -y
設定環境變數 (使用 eecs 權限,這邊沒做後面全部都沒辦法做)
編輯 /home/eecs 目錄底下的 .bashrc 在最底下加入這行
alias makearm="make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-"
之後要載入環境變數
source ~/.bashrc
開始編譯核心 ※切記:千萬一定記得切回 eecs 使用者
進入之前建立的資料夾 ~/virtualarm 資料夾,如果沒有就建立一個
cd ~/virtualarm
將核心檔案下載到這裡
wget https://debian.shxj.pw/share/debian/linux-3.16.81.tar.xz
新建一個 kernel 資料夾
mkdir kernel
將 核心檔案解壓縮到 kernel 目錄
tar xfva linux-3.16.81.tar.xz -C kernel
進入 kernel 資料夾
cd kernel
進入剛剛解壓縮的資料夾
cd linux-3.16.81
載入預設的設定檔
makearm vexpress_defconfig
進入核心設定畫面
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
在 virtualarm/kernel 底下建立 modules 資料夾
mkdir ../modules
安裝 modules 檔案
time makearm modules_install INSTALL_MOD_PATH=../modules/ -j8
進入 modules 資料夾
cd ../modules
打包 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 日








我覺得車速過快,你可能會吃上公共危險罪