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 日








我觉得车速过快,你可能会吃上公共危险罪