1 下载 ubuntu-base-18.04.5-base-armhf.tar.gz
http://cdimage.ubuntu.com/ubuntu-base/releases/
2 安装运行模拟器:
sudo apt install qemu-user-static
3 创建用于ubuntu-base根文件系统目录,并解压到该文件夹:
mkdir ubuntu_rootfs
tar xf ubuntu-base-18.04.5-base-armhf.tar.gz -C ./ubuntu_rootfs
cd ubuntu_rootfs
4 拷贝CPU架构为ARM的模拟器到根文件系统:
sudo cp /usr/bin/qemu-arm-static ./usr/bin/
5 拷贝主机下的DNS配置文件,没有这个文件的话我们无法使用apt-get下载软件:或者将文件中更改为nameserver 114.114.114.114
sudo cp /etc/resolv.conf ./etc/resolv.conf
6 添加源,打开sources.list这个文件,在这个文件最后追加中科大源:
vi 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
7 在主机上挂载ubuntu-base文件系统,因为我们还需要下载一些常用工具,需要挂载的目录和文件有proc、sys、dev、dev/pts, tmp 这五个,挂载之后使用chroot将主机的根文件系统切换成我们现在配置的ubuntu-base文件系统,操作命令如下:
sudo mount -t proc /proc ./proc
sudo mount -t sysfs /sysfs ./sys
sudo mount -o bind /dev ./dev
sudo mount -o bind /dev/pts ./dev/pts
sudo mount -o bind /tmp ./tmp
sudo chroot ./
8 安装常用软件工具:ubuntu18必须安装systemd,否则没有串口设备文件
apt-get update
apt-get install -y sudo vim kmod net-tools ethtool ifupdown language-pack-en-base rsyslog htop iputils-ping dosfstools systemd
9 安装ssh
sudo apt-get install -y ssh
sudo gedit /etc/ssh/sshd_config
//修改下面两项
port 22
PermitRootLogin yes
//重启
sudo service ssh start
sudo service ssh restart
10 设置root密码:
passwd root
11 设置主机名称:
echo "linaro" > /etc/hostname
echo "127.0.0.1 localhost" >> /etc/hosts
echo "127.0.0.1 linaro" >> /etc/hosts
12 设置串口终端,以串口1为例,它的设备文件名称为ttymxc0
ln -s /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@ttymxc0.service
13 配置网络自启,ubuntu-base根文件系统开机后默认网卡是没启动的,以网口2(eth1)为例
echo auto eth1 > /etc/network/interfaces.d/eth1
echo iface eth1 inet dhcp >> /etc/network/interfaces.d/eth1
14 退出当前文件系统,取消挂载proc、sys、dev、dev/pts,tmp这五个目录和文件
exit
sudo umount ./proc
sudo umount ./sys
sudo umount ./dev/pts
sudo umount ./dev
sudo umount ./tmp
15 命令行固化系统
sudo ./imx6mksdboot.sh -device /dev/sdb -flash emmc -ddrsize 512
16 安装modules,编译linux内核后使用此命令将模块安装到对应文件夹
sudo make modules_install INSTALL_MOD_PATH=/media/alientek/rootfs
17 调整启动时网络等待时间
//A start job is running for Raise network interface(5min 13s )问题解决方法
sudo vim /etc/systemd/system/network-online.target.wants/networking.service
将里面的TimeoutStartSec=5min 修改为TimeoutStartSec=10sec
18 添加dns
首先修改vim /etc/systemd/resolved.conf 文件,在其中添加dns信息,例如:
DNS=8.8.8.8 114.114.114.114
然后退出保存。
然后以root身份在ubuntu终端中依次执行如下命令:
systemctl restart systemd-resolved
systemctl enable systemd-resolved
mv /etc/resolv.conf /etc/resolv.conf.bak
ln -s /run/systemd/resolve/resolv.conf /etc/
再查看/etc/resolv.conf文件就可以看到新的dns信息已经写入其中了。
19 更新源
apt-get update
apt-get upgrade
20 下载linux-firmware包,因为使用mt7612u WiFi模块需要加载固件
wget http://ftp.cn.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-misc-nonfree_20210315-3_all.deb
dpkg -i firmware-misc-nonfree_20210315-3_all.deb
21 安装ntp,选择时区
apt install ntp
22 安装 rfkill
sudo apt install rfkill
23 安装wpasupplicant 用于WiFi连接
sudo apt install wpasupplicant
24 设置WiFi自动连接脚本
#wpa_passphrase WIFI name wifi password | sudo tee /etc/wpa_supplicant.conf
wpa_supplicant -c /etc/wpa_supplicant.conf -i wlan0
sleep 6
dhclient wlan0
25 不要安装netmanager,否则调试串口会异常,多次重新登录,原因未知