Linux ARM平台开发系列讲解(入门篇) 1.2 如何使用QEMU移植Ubuntu18.04.5到ARM芯片上

发布时间:2022-08-19 11:29

1. 概述

在开发过程中,难免会遇到需要安装Ubuntu环境的情况,本次教程适用于所有arm板子,只是其中一些细节需要稍微替换注意一下。

2.下载ARM Ubuntu18.04

本次下载的是不带桌面的Ubuntu,需要桌面的也可以下载此链接,然后用指令安装桌面即可,很简单,后面会提到
ARM64 Ubuntu 18.04.5下载地址
Linux ARM平台开发系列讲解(入门篇) 1.2 如何使用QEMU移植Ubuntu18.04.5到ARM芯片上_第1张图片

3. 安装QEMU虚拟机

首先,需要在PC上安装一个Ubuntu,我这里用的是Ubuntu18.04,在Ubuntu中安装QEMU

sudo apt-get install qemu-user-static

4. 将ARM Ubuntu18拷贝到PC虚拟机里

我这里用的是共享文件夹拷贝,你们习惯什么就用什么

sudo cp -ra /mnt/hfs/ubuntu18_base.tar ./rootfs

5. 解压Ubuntu18.04.5

注意:一定要加sudo解压,否则有些文件没权限,后续移植会报错

sudo tar -xvf ubuntu18_base.tar 

6. 编写虚拟机运行脚本

6.1 创建ch-mount.sh脚本

该文件是用来启动虚拟机的

vi ch-mount.sh

创建好后输入下列内容:

#!/bin/bash
echo "MOUNTING"
sudo mount -t proc /proc ${1}proc
sudo mount -t sysfs /sys ${1}sys
sudo mount -o bind /dev/ ${1}dev
sudo mount -o bind /dev/pts ${1}dev/pts
sudo chroot ${1}

6.2 创建umount.sh

该文件是用来推出虚拟机的

vi umount.sh

创建好后输入下列内容:

#!/bin/bash
echo "UNMOUNTING"
sudo umount ${1}proc
sudo umount ${1}sys
sudo umount ${1}dev/pts
sudo umount ${1}dev

6.3 修改脚本文件权限

chmod a+x ch-mount.sh
chmod a+x umount.sh

6.4 配置Ubuntu的下载源

注意,这里是配置arm Ubuntu的,不要把PC的给改了

sudo sed -i 's|ports.ubuntu.com|mirrors.ustc.edu.cn|g' ./etc/apt/sources.list

6.5 将PC的DNS拷贝到base_ubuntu

sudo cp /etc/resolv.conf ./etc/resolv.conf

7. 启动QEMU

7.1 复制PC文件到Ubuntu18

 sudo cp /usr/bin/qemu-aarch64-static ./usr/bin

7.2 启动虚拟机运行rootfs

sudo sh ch-mount.sh rootfs

进入后就会长这样

MOUNTING
root@ubuntu:/#

8. 安装一些常用功能

8.1 配置名字和hosts

这一步可以选择性做,如果不可以apt update 的话在做

echo "guo" > /etc/hostname
echo "127.0.0.1 localhost" > /etc/hosts
echo "127.0.0.1 guo" >> /etc/hosts

8.2 更新和下载

常用软件安装

apt update apt install language-pack-en-base sudo ssh net-tools network-manager iputils-ping rsyslog bash-completion htop resolvconf dialog vim nano v4l-utils alsa-utils git gcc less resolvconf autoconf autopoint libtool bison flex gtk-doc-tools glib-2.0 libglib2.0-dev libpango1.0-dev libatk1.0-dev kmod pciutils -y

如果在apt update的时候出现Couldn’t create temporary file(无法创建临时文件)的错误,将/tmp路径权限设为777之后重试即可

chmod 777 /tmp 
apt update
apt install sudo
apt install language-pack-en-base
apt install vim 
apt install ssh
apt install net-tools
apt install ethtool 
apt install ifupdown
apt install iputils-ping
apt install rsyslog
apt install htop 
apt install i2c-tools

8.3 新增用户和设置密码

  • 新增用户

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号