qemu+kernel (4) X86架构上搭建ARM64环境

应用场景:X86上可以通过交叉编译搭建ARM64环境, 如果有些东西只能在arm64上编译,但是只有X86的编译环境

1.基础工具
sudo apt update
sudo apt install qemu-system-aarch64 qemu-efi-aarch64 cloud-image-utils

2.获取arm64 ubuntu镜像
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-arm64.img
这一步也可以手动下载自己需要镜像,有的时候可能下载比较慢

3.创建用户数据(必选,因为如果没有这一步,不知道登录密码)
# 创建 user-data 文件

cat > user-data <<EOF
#cloud-config
password: ubuntu
chpasswd: { expire: False }
ssh_pwauth: True
EOF

# 生成 cloud-init ISO
cloud-localds user-data.img user-data

启动虚拟机
sudo qemu-system-aarch64 \
  -M virt \
  -cpu cortex-a57 \
  -smp 4 \
  -m 4096 \
  -bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd \
  -drive file=jammy-server-cloudimg-arm64.img,format=qcow2 \
  -drive file=user-data.img,format=raw \  # 如果创建了 user-data
  -nic user,hostfwd=tcp::2222-:22 \
  -nographic

实现交互

本地机器需要和qemu进行交互,进行文件交换

sudo qemu-system-aarch64   -M virt   -cpu cortex-a57   -smp 4   -m 4096   -bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd   -drive file=noble-server-cloudimg-arm64.img,format=qcow2   -drive file=user-data.img,format=raw   -nic user,hostfwd=tcp::2222-:22   -virtfs local,path=/local/mnt/workspace/hamoa/76_ubuntu,mount_tag=hostshare,security_model=none,id=hostshare -nographic

-virtfs local,path=/local/mnt/workspace/hamoa/76_ubuntu,mount_tag=hostshare,security_model=none,id=hostshare

加了一行这个,path那个部分是需要挂载的目录,security_model=none是保证自己有root权限,因为我并不希望看到permission denied.

sudo umount /mnt/host  # 先卸载
sudo mount -t 9p -o trans=virtio,version=9p2000.L hostshare /mnt/host
chmod 777 /mnt/host  # 开放所有权限

#linux驱动##嵌入式软开##嵌入式##嵌入式笔面经分享##牛客创作赏金赛#
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务