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

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

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值