到USTC镜像中下载arm架构的文件,i.MX6ULL属于armhf,即在其中找到ubuntu-base-16.04.6-base-armhf.tar.gz文件,当然也可以下载ubuntu-base-18.04.5-base-armhf.tar.gz,但是18的更卡。
下载的文件属于最基本的文件系统,没有UI界面。
我直接采用的是正点原子官方的虚拟机系统,先切换到其nfs目录下:
cd /home/alientek/linux/nfs
然后建立存放文件夹:
mkdir ubuntu_rootfs
之后解压:
tar xzf ubuntu-base-16.04.6-base-armhf.tar.gz -C ./ubuntu_rootfs/
进入文件夹:
cd ubuntu_rootfs
sudo apt install qemu-user-static
sudo cp /usr/bin/qemu-arm-static ./usr/bin/
sudo cp /etc/resolv.conf ./etc/resolv.conf
sudo gedit ./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
挂载脚本:
sudo gedit mount.sh
在其中填入如下内容:
#!/bin/bash
echo "MOUNTING"
sudo mount -t proc /proc /home/alientek/linux/nfs/ubuntu_rootfs/proc
sudo mount -t sysfs /sys /home/alientek/linux/nfs/ubuntu_rootfs/sys
sudo mount -o bind /dev /home/alientek/linux/nfs/ubuntu_rootfs/dev
sudo mount -o bind /dev/pts /home/alientek/linux/nfs/ubuntu_rootfs/dev/pts
sudo chroot /home/alientek/linux/nfs/ubuntu_rootfs
保存。
卸载脚本:
sudo gedit unmount.sh
在其中填入如下内容:
#!/bin/bash
echo "UNMOUNTING"
sudo umount /home/alientek/linux/nfs/ubuntu_rootfs/proc
sudo umount /home/alientek/linux/nfs/ubuntu_rootfs/sys
sudo umount /home/alientek/linux/nfs/ubuntu_rootfs/dev/pts
sudo umount /home/alientek/linux/nfs/ubuntu_rootfs/dev
保存。
授于两个脚本执行权限:
sudo chmod 777 mount.sh unmount.sh
./mount.sh
执行完上述脚本后,系统会切换到文件系统中,即下面执行的动作均是对文件系统产生作用,而不会影响虚拟机中运行的ubuntu。
更换软件源:
apt update
安装常用软件:
apt install sudo vim kmod net-tools ethtool ifupdown language-pack-en-base rsyslog iputils-ping
安装桌面软件:
apt install xubuntu-desktop
安装过程中会出现语言及键盘的选择,我是直接选择默认的us。
安装最后会一般会出现如下问题:
Errors were encountered while processing:
blueman
E: Sub-process /usr/bin/dpkg returned an error code (1)
解决的方法是:
将现有的info文件夹更名(备份文件夹):
sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bk
新建一个info文件夹:
sudo mkdir /var/lib/dpkg/info
强制安装:
sudo apt-get update
sudo apt-get install -f
新安装生成的文件转移至备份文件夹:
sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info.bk
删除新建的info文件夹:
sudo rm -rf /var/lib/dpkg/info
将备份文件夹更回原来名字:
sudo mv /var/lib/dpkg/info.bk /var/lib/dpkg/info
passwd root
输入两次密码。
echo "vuy" > /etc/hostname
echo "127.0.0.1 localhost" >> /etc/hosts
echo "127.0.0.1 vuy" >> /etc/hosts
注:vuy是我自己的名字,你可以取别的,这是在板子加载后出现的主机名字。
正点原子板子采用串口ttymxc0作为管理串口,因此需要建立一个软链接文件指向
/lib/systemd/system/[email protected] :
ln -s /lib/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
exit
./unmount.sh
以下命令在板子启动时,按任意键进入uboot命令行。
主机IP设置的是192.168.10.100,板子的是192.168.10.50,全部根据官方文档设置,省事。
设置板子IP等:
env default -a;saveenv
setenv ipaddr 192.168.10.50
setenv ethaddr 00:04:9f:04:d2:35
setenv gatewayip 192.168.10.1
setenv netmask 255.255.255.0
setenv serverip 192.168.10.100
saveenv
设置zImage及dtb等路径:
setenv bootcmd 'tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000'
saveenv
设置文件系统路径:
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.10.100:/home/alientek/linux/nfs/ubuntu_rootfs,proto=tcp rw ip=192.168.10.50:192.168.10.100:192.168.10.1:255.255.255.0::eth0:off '
saveenv
设置完成后重启板子:
reset
好了,就能看到小老鼠的界面在你的LCD屏上显示了。不过加载非常慢就是了。板子采用的是EMMC版本的。