Ubuntu 20.04使用qemu搭建ARM64 Linux系统
1、安裝所需依賴
$ sudo apt-get install debian-archive-keyring gcc-aarch64-linux-gnu bison flex bc build-essential libncurses* libssl-dev $ sudo apt-get install qemu qemu-user-static binfmt-support debootstrap2、使用debootstrap命令創建文件系統
使用debootstrap制作根文件系統會分成兩個階段。第一階段是,使用debootstrap命令來下載軟件包。
debootstrap命令基本格式:
$ sudo debootstrap --arch [平臺] [發行版本代號] [構建目錄] [鏡像地址]當前debootstrap支持的發行版本可以在/usr/share/debootstrap/scripts查看。
在自己創建的工作目錄下執行以下命令:
$ sudo su $ debootstrap --arch=arm64 --foreign buster linux_rootfs http://mirrors.ustc.edu.cn/debian/- –arch:指定要制作文件系統的處理器體系結構,比如arm64
- buster::指定Debian的版本。buster是Debian 10系統。
- linux_rootfs:本地目錄,最后制作好的文件系統會在此目錄。本實驗使用“linux_rootfs”目錄作為根文件系統目錄。
- –foreign:只執行引導的初始解包階段,僅僅下載和解壓
- http://mirrors.ustc.edu.cn/debian/: 國內debian鏡像源地址
第二階段,需要安裝軟件包。
因為主機跑在x86架構上,而我們要制作的文件系統是跑在ARM64上,因此可以使用qemu-aarche64-static來模擬成arm64環境的執行環境。
$ cp /usr/bin/qemu-aarch64-static ./linux_rootfs/usr/bin/下面使用debootstrap命令進行軟件包的安裝和配置
$ chroot linux_rootfs/ debootstrap/debootstrap --second-stage–second-stage表示執行第二階段的安裝
顯示“I:Base system installed successfully.”說明第二階段完成。
使用chroot命令切換到剛才制作的根文件系統
$ chroot linux_rootfs/配置root用戶密碼
# 先設置root用戶的密碼 $ passwd root添加用戶及設置密碼
$ USER= xx #設置你想要的用戶名 $ useradd -G sudo -m -s /bin/bash $USER $ passwd $USER設置主機名
$ HOST= xxxxx #設置你想要的主機名 $ echo $HOST > /etc/hostname設置網絡
$ echo "auto lo" > /etc/network/interfaces $ echo "iface lo inet loopback" >> /etc/network/interfaces $ echo "allow-hotplug enp0s1" > /etc/network/interfaces $ echo "iface enp0s1 inet dhcp" >> /etc/network/interfaces按照需求安裝一些依賴
$ apt update $ apt install net-tools以上全部完成后,我們的根文件系統就制作好了,輸入exit退出。
$ exit3、制作ext4文件系統
首先使用dd命令來創建一個image文件,bs=1M表示block大小,count=2048,表示該image大小為2GB,讀者可以根據主機磁盤空間,適當調整該大小,建議不小于2GB。
$ dd if=/dev/zero of=linux_rootfs.ext4 bs=1M count=2048
使用mkfs.ext4命令來格式化
掛載ext4文件系統并拷貝內容
4、編譯Linux內核
在官網(https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/)下載Linux內核文件,我下載的版本是5.10.87,解壓后執行以下命令:
$ cd linux-5.10.87/ $ export ARCH=arm64 $ export CROSS_COMPILE=aarch64-linux-gnu- $ make defconfig $ make -j4編譯成功會在linux-5.10.87目錄下生成vmlinux,在arch/arm64/boot/目錄下生成Image文件。
5、使用qemu運行我們剛剛制作的Debian系統
以上步驟執行完畢,工作目錄下的文件如圖所示:
在工作目錄下執行:
$ qemu-system-aarch64 -m 1024 -cpu cortex-a57 -M virt -nographic -smp 4 -kernel linux-5.10.87/arch/arm64/boot/Image -append "noinintrd sched_debug root=/dev/vda rootfstype=ext4 rw crashkernel=256M loglevel=8" -drive if=none,file=linux_rootfs.ext4,id=hd0 -device virtio-blk-device,drive=hd0其中,“-drive if=none,file=myrootfs_arm64.ext4,id=hd0 -device virtio-blk-device,drive=hd0”添加根文件系統支持。
成功進入系統,我們使用root登錄
檢查網絡鏈接,正常:
使用apt可以正常安裝一些軟件:
參考鏈接:
1、debootstrap 制作arm64位根文件系統
2、debootstrap 制作根文件系統
3、ubuntu根文件系統構造
4、實驗指導手冊-奔跑吧Linux內核入門篇第二版
總結
以上是生活随笔為你收集整理的Ubuntu 20.04使用qemu搭建ARM64 Linux系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端实现导出以及下载
- 下一篇: dnf 运行系统linux,DNF的命令