一、安装相关依赖项(Linux内核和QEMU都包括)
sudo apt install libssl-dev flex bison python3-dev pip ncurses-devel libglib2.0-dev libfdt-dev ninja-build zlib1g-dev libpixman-1-dev libelf-dev
sudo pip install sphinx
编译qemu。官网:https://www.qemu.org/
源码下载: wget https://download.qemu.org/qemu-9.2.0.tar.xz
解压和编译
tar xvf qemu-9.2.0.tar.xz cd qemu-9.2.0 ./configure --enable-kvm --enable-debug #开启KVM和调试功能 make 或者 make -j4 #采用并行编译,加快编译速度,j后面的数字比CPU核数小1,防止报错 make install #安装
二、安装相关依赖项,见上
编译linux内核,官网:https://www.kernel.org/
源码下载 wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.175.tar.xz 解压 tar xvf linux-5.15.175.tar.xz cd linux-5.15.175 make menuconfig或者make defconfig 默认 make 或者 make -j4 #并行编译
如果编译报错,记得 vim .config,修改三个配置
注释掉两个配置项 #CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" #CONFIG_SYSTEM_TRUSTED_KEYS="certs/rhel.pem" 修改一个配置项为 CONFIG_SYSTEM_REVOCATION_KEYS=""
编译完成后会生成vmlinux裸文件,这个文件在QEMU中不能直接运行
执行下面的命令
make bzImage #生成bzImage镜像。更多其他命令使用可以执行 make help ,打开帮助手册阅读
生成bzImage文件 路径为:./linux-5.15.175/arch/x86/boot/bzImage,这个文件在QEMU中可以运行
内核编译完成后,需要制作根文件系统,搭配内核运行。
根文件系统制作如下:
#参考网上的做法,使用debootstrap命令下载Ubuntu预先设置好的根目录。 使用dd命令,生成1个1G的空白根镜像文件 sudo dd if=/dev/zero of=./rootfs.img bs=1M count=1024 使用mkfs格式化根镜像为ext3文件系统 sudo mkfs.ext3 rootfs.img 生成一个fs文件夹,用于后面挂载根镜像文件 sudo mkdir fs sudo mount ./rootfs.img ./fs 下载ubuntu做好的文件目录,并拷贝到根镜像文件内 sudo debootstrap --arch=amd64 focal ./fs https://mirrors.tuna.tsinghua.edu.cn/ubuntu #使用清华的源 切换根目录 sudo chroot ./fs/ 增加登录密码 passwd 退出根文件系统 exit 根文件系统已配置好,接下来卸载根文件系统 umount ./fs
启动内核和根文件(文件路径要写对)
qemu–system-x86_64 -kernel ./bzImage -hda rootfs.img -append "root=/dev/sda"
标签:qemu,make,sudo,dev,编译,linux,QEMU From: https://www.cnblogs.com/codeprojects/p/18640783