1. 官网下载Ubuntu Core
mkdir rootfs && cd rootfs
wget http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04.5-base-arm64.tar.gz
sudo tar zxvf ubuntu-base-16.04.5-base-arm64.tar.gz
2. 安装qemu
sudo apt-get install qemu-user-static
cp -a /usr/bin/qemu-aarch64-static usr/bin/
cp -b /etc/resolv.conf etc/
3.修改更新源
修改/etc/apt/source.list文件。将源改成中科大源:
vim etc/apt/sources.list
添加如下内容:
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
4.修改 /etc/fstab文件,加入如下内容:
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
5.使用chroot切换到模拟arm64的文件系统下
sudo chroot ../rootfs
6.设置root密码
passwd root
7.添加用户
useradd -G sudo -m -s /bin/bash ubuntu
passwd ubuntu
8.设置主机名
echo ubuntu > /etc/hostname
修改etc/hosts内容如下
127.0.0.1 localhost
127.0.1.1 ubuntu
9.更新及下载基础软件包
apt-get update
apt-get upgrade
apt-get install openssh-server vim sudo kmod ifupdown net-tools udev
10.设置DNS
修改etc/resolv.conf内容如下
nameserver 8.8.8.8
nameserver 8.8.4.4
11.增加网络dhcp:
vim etc/network/interfaces
添加如下内容:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
12.设置串口登陆
ln -s /lib/systemd/system/serial-getty\@.service /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service
Ubuntu 16.04.05采用了systemd的init初始化系统,用于提高系统的启动速度。在执行getty.targe时,systemd会自动在/etc/systemd/system/getty.target.wants查找相关的targe执行,即实际执行/lib/systemd/system/serial-getty@.service这个串口终端服务。
13.安装kernel modules
参考:
https://blog.csdn.net/huang20083200056/article/details/77429567
https://www.jianshu.com/p/67cb69b55377
https://a-delacruz.github.io/ubuntu/rpi3-setup-filesystem.html