如果还没安装虚机,可以参考这篇文章进行安装WebServer学习1:部署运行
mac用户参考这篇在Mac OS中使用VMware Fusion安装Ubuntu系统来学习linux,openeluer安装与内核替换
一、安装QEMU环境
在Ubuntu 20.04
LTS上安装定制的QEMU环境,需要两个文件openocd-benos_1.0-3_amd64.deb,qemu-system-arm-pi4_4.1.50-3_without_GIC_amd64.deb
把两个 .deb 文件放在同一目录,然后 1
2
3
4
5
6
7
8sudo apt update
sudo dpkg -i *.deb # 先装包
sudo apt-get install -f # 自动补依赖
# sudo dpkg --force-architecture --force-depends -i *.deb # arm芯片
sudo apt install gcc-aarch64-linux-gnu
sudo apt install gdb-multiarch
此外,如果使用的是 Mac
M系列芯片的话,qemu可能不支持raspi4,所以需要查看当前系统支持哪些树莓派型号:
1 | qemu-system-aarch64 -machine help | grep -i rasp |
如果看到只支持了raspi3的话,需要修改Makefile,将里面的board ?= rpi4改成board ?= rpi4
二、代码仓配置
注:本项目已经被 push 到 github 上了,所以省略下面的步骤,直接git clone就行。
armv8_trainning.git-20240318.tar.xz代码解压到ubuntu中
1 | sudo mkdir BenOS_code |

在工作目录下载实验参考代码的git repo:
1 | cd /home/akira/BenOS_Learn/BenOS_code/ |
此时就能生成一个名为armv8_trainning的目录,里面有代码

代码下有两个分支:
- main:是完整的代码,仅供参考
- my_labs:是BenOS的空骨架,在这里完成实验

我们切换到my_labs分支进行实验:
1 | git branch my_lab |
当需要提交代码时,可以提交到
1 | ssh://akira@ubuntu/home/akira/BenOS_Learn/BenOS_code/armv8_trainning.git |
三、QEMU运行BenOS
在lab01的实验中打印一个hello world
1 | make |

代码运行结果:
1 | akira@ubuntu:~/BenOS_Learn/BenOS_code/code/armv8_trainning/lab01$ make |
Ctrl-A 松手后再按 X 退出
然后尝试用QEMU+GDB进行调试。
在一个终端中输入以下命令,启动qemu的gdb调试环境
1 | make debug |
在另一个终端中输入
1 |
|
退出:
1 | (gdb) q |