带桌面Ubuntu18根文件系统移植 此系统已经在NXP的IMX6Q IMX6SX IMX6ULL平台上运行成功!
Ubuntu 18.04.5具体移植方法如下: 1、创建解压根文件系统的目录 mkdir/home/david/linux/nfs/ubuntu_rootfs // david路径名替换为你自己的 2、cd /home/david/linux/nfs/ubuntu_rootfs // david路径名替换为你自己的 3、解压根文件系统 sudo tar -vzxfubuntu-base-18.04.5-base-armhf.tar.gz //解压完文件夹必须锁 4、安装qemu sudo apt-get install qemu-user-static 将刚刚安装的qemu-user-static拷贝到刚刚解压出来的ubuntu base目录中,也就是ubuntu_rootfs/usr/bin目录下,命令如下: cd /home/david/linux/nfs/ubuntu_rootfs//进入到ubuntu_rootfs目录下,david是我的用户名,请使用你的 sudo cp/usr/bin/qemu-arm-static ./usr/bin/ //拷贝qemu-arm-static 5、设置软件源(沿用旧软件源没有问题) 在设置软件源之前先将Ubuntu主机下的DNS配置文件/etc/resolv.conf拷贝到根文件系统中,可以不换源,但必须复制resolv.conf,否则不能update! 命令如下: cd /home/david/linux/nfs/ubuntu_rootfs //david路径名替换为你自己的 sudo cp /etc/resolv.conf ./etc/resolv.conf 6、创建挂载和卸载shell脚本 ①创建挂载脚本,复制以下代码保存为mount.sh #!/bin/bash echo "MOUNTING" sudo mount -t proc /proc /home/david/linux/nfs/ubuntu_rootfs/proc sudo mount -t sysfs /sys /home/david/linux/nfs/ubuntu_rootfs/sys sudo mount -o bind /dev /home/david/linux/nfs/ubuntu_rootfs/dev sudo mount -o bind /dev/pts /home/david/linux/nfs/ubuntu_rootfs/dev/pts sudo chroot /home/david/linux/nfs/ubuntu_rootfs 注意:请将david路径换成你自己的 ②创建挂载脚本,复制以下代码保存为unmount.sh #!/bin/bash echo "UNMOUNTING" sudo umount /home/david/linux/nfs/ubuntu_rootfs/proc sudo umount /home/david/linux/nfs/ubuntu_rootfs/sys sudo umount /home/david/linux/nfs/ubuntu_rootfs/dev sudo umount /home/david/linux/nfs/ubuntu_rootfs/dev/pts 注意:请将david路径换成你自己的 在主机挂载根文件系统 sudo chmod 777 mount.sh unmount.sh ./mount.sh 7、安装软件 aptupdate aptinstall sudo aptinstall vim aptinstall kmod aptinstall net-tools aptinstall ethtool aptinstall ifupdown aptinstall language-pack-en-base aptinstall rsyslog aptinstall htop apt install iputils-ping apt install systemd //ubuntu18必须安装systemd,不然没有串口文件 8、安装桌面 apt install xubuntu-desktop 安装桌面可能会遇到错误: Errors were encountered while processing: blueman E: Sub-process /usr/bin/dpkg returned an error code (1) 解决方法: root@david-VirtualBox:/# mkdir var/lib/dpkg/info/ root@david-VirtualBox:/# apt-get -f install root@david-VirtualBox:/# mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old/ root@david-VirtualBox:/# rm -rf /var/lib/dpkg/info root@david-VirtualBox:/# mv /var/lib/dpkg/info_old/ /var/lib/dpkg/info/ 提示:如果以上方法仍然有报错,建议使用命令apt update,一般情况下都能解决! 9、设置root用户密码 passwd root 10、设置本机名称和IP地址 输入如下命令设置本机名称和IP地址: echo " imx6sx"> /etc/hostname echo "127.0.0.1localhost" >> /etc/hosts echo"127.0.0.1 imx6sx" >> /etc/hosts 11、设置串口终端 ln -s/lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@ttymxc0.service 12、取消挂载 设置好以后就可以退出根文件系统了,输入如下命令退出: exit 退出以后再执行一下unmount.sh脚本取消挂载,命令如下: ./unmount.sh 至此,ubuntu base根文件系统就已经制作好了,接下来可以通过NFS或者直接烧写到SD卡测试。 13、打包ubuntu根文件系统 cd/home/david/linux/nfs/ubuntu_rootfs //进入到ubuntu根文件系统 sudo tar-vcjf ubuntu_rootfs.tar.bz2 * //打包根文件系统 至此,根文件系统就做好了,这个方法已经通过测试了,但是过程中避免不了会遇到各种各样的问题,没关系,别放弃,解决一个问题就相当于上了一个台阶。 加油!如果有问题可以,给我留言,看到后我会及时回复。
|