Ubuntu文件系统的下载地址:http://cdimage.ubuntu.com/ubuntu-base/releases/
选择一个版本,这里我选择16.04.5
,
点击【release】
选择ubuntu-base-16.04.5-base-armhf.tar.gz
下载
在nfs
文件夹下新建ubuntu_rootfs
文件夹,将下载的压缩包放到这个文件夹下,然后将其解压
sudo tar -vzxf ubuntu-base-16.04.5-base-armhf.tar.gz
在PC机的Ubuntu下安装qemu工具:
sudo apt-get install qemu-user-static
然后将安装的qemu-user-static拷贝到我们新建的根文件系统的文件夹下
sudo cp /usr/bin/qemu-arm-static ./usr/bin/
先将Ubuntu主机下的DNS配置文件拷贝过来:
sudo cp /etc/resolv.conf ./etc/
然后在根文件系统文件夹下的/ubuntu_rootfs/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
在ubuntu_rootfs
目录下创建mount.sh
挂载脚本文件,输入如下内容:
#!/bin/bash
echo "MOUNTING"
sudo mount -t proc /proc /home/william/imx6u_alpha/nfs/ubuntu_rootfs/proc
sudo mount -t sysfs /sys /home/william/imx6u_alpha/nfs/ubuntu_rootfs/sys
sudo mount -o bind /dev /home/william/imx6u_alpha/nfs/ubuntu_rootfs/dev
sudo mount -o bind /dev/pts /home/william/imx6u_alpha/nfs/ubuntu_rootfs/dev/pts
sudo chroot /home/william/imx6u_alpha/nfs/ubuntu_rootfs
还有unmount.sh
卸载脚本文件,输入如下内容:
#!/bin/bash
echo "UNMOUNTING"
sudo umount /home/william/imx6u_alpha/nfs/ubuntu_rootfs/proc
sudo umount /home/william/imx6u_alpha/nfs/ubuntu_rootfs/sys
sudo umount /home/william/imx6u_alpha/nfs/ubuntu_rootfs/dev
sudo umount /home/william/imx6u_alpha/nfs/ubuntu_rootfs/dev/pts
给予其可执行权限:
chmod 777 mount.sh unmount.sh
然后执行挂载脚本
./mount.sh
apt update
apt install sudo
apt install vim
apt install kmod
apt install net-tools
apt install ethtool
apt install ifupdown
apt install language-pack-en-base
apt install rsyslog
apt install htop
apt install iputils-ping
接下来设置root用户密码,输入命令
passwd root
接着输入密码即可,我这里设置为 root
然后输入如下命令设置本机名称和IP地址:
echo "imx6ull" > /etc/hostname
echo "127.0.0.1 localhost" >> /etc/hosts
echo "127.0.0.1 imx6ull" >> /etc/hosts
因为我们的开发板是使用串口作为终端的,所以需要设置一下,比如我们开发板使用的UART1对应的串口设备文件为ttymxc0
,我们输入如下命令
ln -s /lib/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
这样我们就设置好了,我们退出这个根文件系统,然后取消挂载
exit
./unmount.sh
将uboot里的环境变量设置:
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.0.106:/home/william/imx6u_alpha/nfs/ubuntu_rootfs ip=192.168.0.101:192.168.0.106:192.168.1.1:255.255.255.0::eth0:off'
saveenv
刚刚制作的根文件系统只有一个root用户,我们可以创建一个普通用户,使用命令
adduser william
然后输入密码,接下来直接回车即可
然后给这个新建的用户提供sudo权限,回到root用户下,打开/etc/sudoers
文件,添加如下一行
保存之后切换到新创建的用户下,使用sudo fdisk -l
命令测试一下,可以看到,输入密码后会打印出当前开发板的存储器的信息
因为没有配置DHCP,所以Ubuntu根文件系统启动后不能直接联网,切换好root用户,配置DHCP,命令如下
su
echo auto eth0 > /etc/network/interfaces.d/eth0
echo iface eth0 inet dhcp >> /etc/network/interfaces.d/eth0
/etc/init.d/networking restart
可以尝试使用如下命令安装gcc和make工具:
sudo apt-get install gcc #安装 gcc编译器 编译器
sudo apt-get install make #安装 make工具
安装后后使用gcc -v
和make -v
查看其版本号。
注意:由于I.MX6ULL 性能比较差,只能编译一些简单的而是代码,稍微复杂一点的代码编译就会很慢!因此不建议在 I.MX6ULL 上编译程序!