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 vi /etc/apt/source.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/mmcblk0p1  /boot   vfat    defaults                0       2
/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

echo "nameserver 8.8.8.8" > /etc/resolv.conf

echo "nameserver 8.8.4.4" > /etc/resolv.conf

9.更新及下载基础软件包

apt-get update

apt-get upgrade

apt-get install openssh-server vim sudo kmod ifupdown net-tools

10.增加网络dhcp:

sudo vi /etc/network/interfaces

添加如下内容:

auto lo
iface lo inet loopback

auto eth0 
iface eth0 inet dhcp

11.设置串口登陆

ln –s /lib/systemd/system/serial-getty\@.service/etc/systemd/system/getty.target.wants/[email protected]

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

12.安装kernel modules

附:

1.Can't update/upgrade du to "Could not execute ‘apt-key’ to verify signature"

权限问题:

执行如下指令:

chmod 777 /tmp
apt-get update --allow-unauthenticated

2.mkdir: cannot create directory `test': Read-only file system

mount -o remount,rw /

参考:

https://blog.csdn.net/huang20083200056/article/details/77429567

https://www.jianshu.com/p/67cb69b55377

https://blog.csdn.net/qq_21334991/article/details/78589851

发布了41 篇原创文章 · 获赞 4 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u010018991/article/details/84754587