[原创] 《奔跑吧Linux内核(第2版)卷1:基础架构》配套实验环境搭建

maskmoo   2023-12-12 22:50 楼主

本文主要记录对《奔跑吧Linux内核》第二版的配套实验平台环境搭建和测试过程。并通过本“实验 1-3:使用 QEMU 虚拟机来运行 Linux 系统”学习如何编译一个 ARM64 版本的内核 image,并且在 QEMU 上运行起来。
起来。

搭建的实验环境如下:

主机硬件平台:Intel x86_84处理器兼容主机。

主机操作系统:VMware虚拟机(Ubuntu Linux 20.04)

GCC版本:9 (aarch64-linux-gnu-gcc-9)

1 相关资料下载

 

img_v3_0262_054ef62e-d2d6-44d5-b28c-025ad168755g.jpg

 

 

代码仓库文件列表 - runninglinuxkernel_5.0/runninglinuxkernel_5.0 - 公开仓库 (coding.net)

image.png  

作者准备好的镜像下载方法:登陆“奔跑吧linux社区”微信公众号,输入“奔跑吧2”获取下载地址。

镜像所在路径:奔跑吧linux内核第二版 免费全套资料\vmware镜像 - 奔跑吧实验平台\vmware镜像

image.png  

2 镜像安装

下载完成镜像后进行解压,打开Vmware,通过'文件-->打开 来选择刚刚解压好的镜像文件。  

image.png  

image.png  

启动虚拟机,输入密码: 123 即可进入。

image.png  

进入系统后对代码仓库进行更新操作。

cd /home/rlk/rlk/runninglinuxkernel_5.0
git pull

image.png  

关于该镜像的特点,作者描述如下:对于初学者来说最大的好处就是开箱即用。

image.png  

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 命令进行编译

image.png  

把 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

 

  image.png  

加载 hello-world内核模块

su
sudo insmod /mnt/hello-world.ko

image.png  

卸载 hello_world内核模块

sudo rmmod hello_world

image.png  

总结

本文对实验平台环境搭建和测试过程进行了描述。笨叔为《奔跑吧Linux内核》第二版图书配套提供了丰富的工具和文档等资料,能够帮助读者快速上手Linux的学习。由于环境等其他因素影响在实践过程中可能会遇到一些挑战和问题,希望通过这次分享能为其他读者提供一些有价值的信息。

本帖最后由 maskmoo 于 2023-12-13 23:38 编辑

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复