# QemuInstall **Repository Path**: cuibixuan/QemuInstall ## Basic Information - **Project Name**: QemuInstall - **Description**: 快速安装arm64/riscv的qemu环境,方便学习linux - **Primary Language**: C - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-04 - **Last Updated**: 2024-07-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # QemuInstall #### 介绍 一键部署arm64/riscv的qemu环境,快速进行linux仿真。 #### 环境 ubuntu 18.04 #### How To 1. Install packages sudo apt-get install libpixman-1-dev ninja-build pkg-config build-essential zlib1g-dev pkg-config libglib2.0-dev \ binutils-dev libboost-all-dev autoconf libtool libssl-dev \ libpython-dev python-pip python-capstone virtualenv libncurses5-dev libncursesw5-dev -y 2. ./QemuInstall [riscv64/aarch64/all] More help: QemuInstall [option] opthin: aarch64: Install aarch64 qemu riscv64: Install riscv64 qemu all: Install aarch64 and riscv64 qemu 3. If succ, will print: "riscv64_qemu install succ, run it: cd /xxx/QemuInstall/install/riscv64; ./qemu" or "aarch64_qemu install succ, run it: cd /xxx/QemuInstall/install/aarch64; ./qemu" 4. Compile Kernel Image git clone https://github.com/torvalds/linux cd linux git checkout v6.0 AARCH64: make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image -j8 cp arch/arm64/boot/Image /xxx/QemuInstall/install/aarch64 RISCV64: make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- defconfig make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- Image -j8 cp arch/riscv/boot/Image /xxx/QemuInstall/install/riscv64 5. Run it cd /xxx/QemuInstall/install/riscv64; ./qemu or cd /xxx/QemuInstall/install/aarch64; ./qemu #### 输出 1) cd /xxx/QemuInstall/install/riscv64; ./qemu 3578 blocks [ 0.000000] Linux version 6.5.0-rc5-next-20230807-dirty (cuibixuan@compiler04120) (riscv64-linux-gnu-gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0, GNU ld (GNU Binutils for Ubuntu) 2.30) #2 SMP Fri Aug 18 10:00:33 CST 2023 [ 0.000000] Machine model: riscv-virtio,qemu [ 0.000000] SBI specification v0.2 detected [ 0.000000] SBI implementation ID=0x1 Version=0x9 [ 0.000000] SBI TIME extension detected [ 0.000000] SBI IPI extension detected [ 0.000000] SBI RFENCE extension detected [ 0.000000] efi: UEFI not found. [ 0.000000] OF: reserved mem: 0x0000000080000000..0x000000008001ffff (128 KiB) map non-reusable mmode_resv0@80000000 [ 0.000000] Zone ranges: ... [ 1.305357] 9pnet: Installing 9P2000 support [ 1.306757] Key type dns_resolver registered [ 1.339587] debug_vm_pgtable: [debug_vm_pgtable ]: Validating architecture page table helpers [ 1.362238] Legacy PMU implementation is available [ 1.385495] clk: Disabling unused clocks [ 1.423666] Freeing unused kernel image (initmem) memory: 2288K [ 1.429113] Run /linuxrc as init process Please press Enter to activate this console. 2) cd /xxx/QemuInstall/install/aarch64; ./qemu 4117 blocks [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd070] [ 0.000000] Linux version 6.5.0-rc5-next-20230807-dirty (cuibixuan@compiler04120) (aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0, GNU ld (GNU Binutils for Ubuntu) 2.30) #6 SMP PREEMPT Wed Aug 30 10:17:57 CST 2023 [ 0.000000] Machine model: linux,dummy-virt [ 0.000000] efi: UEFI not found. [ 0.000000] NUMA: No NUMA configuration found [ 0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x000000007fffffff] [ 0.000000] NUMA: NODE_DATA [mem 0x7fdef0c0-0x7fdf0fff] [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000040000000-0x000000007fffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal empty [ 0.000000] Movable zone start for each node ... [ 6.301261] uart-pl011 9000000.pl011: no DMA platform data [ 6.349400] Freeing unused kernel memory: 9600K [ 6.351293] Run /linuxrc as init process Please press Enter to activate this console. #### 参与贡献 1. Fork 本仓库 2. 提交代码 3. 新建 Pull Request