QEMU启动arm-Linux内核+edu

QEMU启动arm-Linux内核+edu

脚本内容

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  # 参考链接
  # [[https://www.cnblogs.com/mrlayfolk/p/18231986][QEMU EDU设备模拟PCI设备驱动编写]]
  # [[https://www.cnblogs.com/from-zero/p/14327440.html][QEMU源码编译安装【教程】]]

  #!/bin/bash
  buildroot_version="2022.02.2"
  qemu_version="4.1.1"
  work_dir_name="qemu-arm-linux";
  work_dir="${HOME}/${work_dir_name}";

  # if [ -d "${work_dir}" ]; then sudo rm -rf ${work_dir}; fi
  mkdir -p ${work_dir}

  # 安装依赖文件
  sudo apt install -y make gcc g++ libpixman-1-dev gcc-arm-linux-gnueabi python-dev qemu qemu-kvm libvirt-bin bridge-utils virt-manager uml-utilities bridge-utils u-boot-tools ed tftp-hpa tftpd-hpa xinetd nfs-kernel-server device-tree-compiler flex bison libncurses5-dev libelf-dev libssl-dev qemu-system-x86 git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev pkg-config libsdl2-dev libgtk-3-dev ninja-build python3-pyparsing

  # buildroot编译
  cd ${work_dir};
  if [ ! -f "buildroot-"${buildroot_version}".tar.gz" ]; then
	wget https://www.buildroot.org/downloads/buildroot-"${buildroot_version}".tar.gz	
  fi
  if [ ! -d "buildroot-\"${buildroot_version}\"" ]; then
	tar xf buildroot-"${buildroot_version}".tar.gz
  fi
  cd buildroot-"${buildroot_version}"
  make qemu_aarch64_virt_defconfig
  make -j$(nproc)

  # QEMU编译和安装
  cd ${work_dir};
  if [ ! -f "qemu-"${qemu_version}".tar.xz" ]; then
	wget https://download.qemu.org/qemu-"${qemu_version}".tar.xz
  fi
  if [ ! -d "qemu-\"${qemu_version}\"" ]; then
	tar xf qemu-"${qemu_version}".tar.xz	
  fi
  cd qemu-"${qemu_version}"
  ./configure --prefix=$PWD --target-list=aarch64-softmmu --enable-debug --enable-sdl --enable-kvm --enable-tools --disable-curl
  sudo make install -j$(nproc)

  # 拷贝文件
  cd ${work_dir}
  # 新建目录
  mkdir -p release/qemu-arm64/bin
  # 拷贝QEUM编译出的文件到新建目录
  cp -a qemu-4.1.1/libexec/ release/qemu-arm64/ -rf
  cp -a qemu-4.1.1/share/ release/qemu-arm64/ -rf
  # 拷贝buildroot编译的文件到新建目录
  cp -a buildroot-2022.02.2/output/images/* release/qemu-arm64/bin -ra
  # 修改启动脚本, 然后运行
  cd release/qemu-arm64/bin
  cp -a start-qemu.sh start-qemu-bak.sh
  echo 'qemu-system-aarch64 -M virt -cpu cortex-a53 -nographic -smp 1 -kernel Image -append "rootwait root=/dev/vda console=ttyAMA0" -netdev user,id=eth0 -device virtio-net-device,netdev=eth0 -drive file=rootfs.ext4,if=none,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -nographic -device edu' > start-qemu.sh

  sudo ./start-qemu.sh