Linux应用程序开发笔记:构建arm64-ubuntu文件系统

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

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

sudo cp -b /etc/resolv.conf etc/

3.修改更新源

修改/etc/apt/source.list文件。将源改成中科大源:

sudo 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/[email protected]

Ubuntu 16.04.05采用了systemd的init初始化系统,用于提高系统的启动速度。在执行getty.targe时,systemd会自动在/etc/systemd/system/getty.target.wants查找相关的targe执行,即实际执行/lib/systemd/system/[email protected]这个串口终端服务。

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

 

你可能感兴趣的:(linux)