本帖最后由 maskmoo 于 2023-12-13 23:38 编辑
本文主要记录对《奔跑吧Linux内核》第二版的配套实验平台环境搭建和测试过程。并通过本“实验 1-3:使用 QEMU 虚拟机来运行 Linux 系统”学习如何编译一个 ARM64 版本的内核 image,并且在 QEMU 上运行起来。
起来。
搭建的实验环境如下:
主机硬件平台:Intel x86_84处理器兼容主机。
主机操作系统:VMware虚拟机(Ubuntu Linux 20.04)
GCC版本:9 (aarch64-linux-gnu-gcc-9)
1 相关资料下载
代码仓库文件列表 - runninglinuxkernel_5.0/runninglinuxkernel_5.0 - 公开仓库 (coding.net)
作者准备好的镜像下载方法:登陆“奔跑吧linux社区”微信公众号,输入“奔跑吧2”获取下载地址。
镜像所在路径:奔跑吧linux内核第二版 免费全套资料\vmware镜像 - 奔跑吧实验平台\vmware镜像
2 镜像安装
下载完成镜像后进行解压,打开Vmware,通过'文件-->打开 来选择刚刚解压好的镜像文件。
启动虚拟机,输入密码: 123 即可进入。
进入系统后对代码仓库进行更新操作。
cd /home/rlk/rlk/runninglinuxkernel_5.0
git pull
关于该镜像的特点,作者描述如下:对于初学者来说最大的好处就是开箱即用。
3 实践测试
最后以实验 1-3:使用 QEMU 虚拟机来运行 Linux 系统为例来测试一下环境。
参考代码是在kmodules/rlk_lab/rlk_basic/chapter_1_quick_start/lab3_hello_world
配置环境变量
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export BASEINCLUDE=/home/rlk/rlk/runninglinuxkernel_5.0
输入输入 make 命令进行编译
把 hello-world.ko 文件复制到 runninglinuxkernel_5.0/kmodules 目录中
cp hello-world.ko ../../../../../kmodules/
编译内核。
./run_debian_arm64.sh build_kernel
执行上述脚本需要几十分钟,依赖于主机的计算能力。接着,编译根文件系统。
cd runninglinuxkernel_5.0
sudo ./run_debian_arm64.sh build_rootfs
执行完成后会生成一个名为rootfs_arm64.ext4的根文件系统。
通过run_debian_arm64.sh脚本运行刚才编译好的ARM64版本的Linux系统,输入run参数即可。
./run_debian_arm64.sh run
QEMU加载linux系统登录名: benshushu 密码:123
加载 hello-world内核模块
su
sudo insmod /mnt/hello-world.ko
卸载 hello_world内核模块
sudo rmmod hello_world
总结
本文对实验平台环境搭建和测试过程进行了描述。笨叔为《奔跑吧Linux内核》第二版图书配套提供了丰富的工具和文档等资料,能够帮助读者快速上手Linux的学习。由于环境等其他因素影响在实践过程中可能会遇到一些挑战和问题,希望通过这次分享能为其他读者提供一些有价值的信息。