移植Ubuntu Base 20.04 LTS (Focal Fossa)到4412开发板

前言

此文填上篇文章【移植Linux-5.4+内核到4412开发板移植】的坑,在前面的文章移植完uboot,内核后,接下来就是文件系统的移植了。博主的其他几篇博文里面也有自己构建根文件系统的教程,那样需要自己交叉编译busybox,各种库等等,对于4412开发板来说,资源完全足够,移植个ubuntu上去他不香吗?这里得感谢下讯为法师的文章-【I.MX6ULL终结者开发板移植ubuntu】,感谢大佬们知识的分享。

说明

大家不要看着ubuntu就怕了,其实移植里面ubuntu是相对最简单,步骤最少的了。Ubuntu官方针对不同的CPU架构提供相应的ubuntu base根文件系统,有amd64(64位X86)、armhf、i386(32位X86)、powerpc、ppc64el等,我们只需要修改下相关配置下即可放到板子上运行。

下面是移植好的仓库地址,欢迎fork、start~
https://github.com/jason416/ubuntu-base-20

一、下载ubuntu-base

这里我们直接用目前最新的版本-Ubuntu Base 20.04 LTS (Focal Fossa)。首先进入ubuntu官方网站所提供的链接:
http://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/。针对ITOP-4412开发板,为ARM Cortex-A9 32bit SOC,我们需要选择armhf的压缩包,如下图所示:
在这里插入图片描述

二、安装工具

QEMU是专门模拟不同机器架构的软件,在ubuntu中对其支持良好,若需要挂载识别ubuntu armhf版本的文件,必须安装qemu-user-static工具,安装方法如下:

jason@jason-vm2:~$ sudo apt install qemu-user-static 

三、配置

1. 解压

现将文件拷贝到ubuntu虚拟机,然后切换到root账户,将步骤一中的压缩包解压,示例如下:

root@jason-vm2:~# ls
ubuntu-base-20.04-base-armhf.tar.gz
root@jason-vm2:~# mkdir ubuntu-base
root@jason-vm2:~# cd ubuntu-base/
root@jason-vm2:~/ubuntu-base# tar -xvf ../ubuntu-base-20.04-base-armhf.tar.gz 
...
var/mail/
var/opt/
var/run
var/spool/
var/spool/mail
var/tmp/
root@jason-vm2:~/ubuntu-base# 
root@jason-vm2:~/ubuntu-base# ls
bin   dev  home  media  opt   root  sbin  sys  usr
boot  etc  lib   mnt    proc  run   srv   tmp  var
root@jason-vm2:~/ubuntu-base#  cp /usr/bin/qemu-arm-static usr/bin/

Note:最后一步需要将qemu-arm-static拷贝到解压后的usr/bin目录下。

2. 配置DNS

Ubuntu安装软件是通过名apt-get从网上下载安装的,为了制作成功的根文件系统能够联网,可以直接拷贝本机的dns配置文件到根文件系统的相应位置如所示:

root@jason-vm2:~/ubuntu-base# cp /etc/resolv.conf etc/resolv.conf

3. 修改软件源

这里将修改软件源放到前面来说,相信大家用过全新安装的ubuntu虚拟机过后不作任何配置,用apt安装软件一定特别慢吧!那是因为默认的apt源服务器在国外,需要修改为国内的源,这里我们用清华大学的源。需要修改下解压后目录etc/apt/source.list文件,只需要将主机名全部替换成mirrors.tuna.tsinghua.edu.cn即可,修改内容如下所示:
在这里插入图片描述

4. 其他配置

说明

接下来的配置都需要在以解压的目录作为根文件系统的环境下操作,先贴出挂载和解挂的脚本。

  • 挂载
root@jason-vm2:~# cat mount.sh 
#!/bin/bash

echo "Mounting file system"

mount -t proc	/proc	 /root/ubuntu-base/proc
mount -t sysfs	/sys	 /root/ubuntu-base/sys
mount -o bind	/dev	 /root/ubuntu-base/dev
mount -o bind	/dev/pts /root/ubuntu-base/dev/pts

echo "Change root"

chroot  /root/ubuntu-base/
root@jason-vm2:~# 
  • 解挂载
root@jason-vm2:~# cat umount.sh 
#!/bin/bash

echo "Umounting file system"

umount /root/ubuntu-base/proc
umount /root/ubuntu-base/sys
umount /root/ubuntu-base/dev/pts
umount /root/ubuntu-base/dev
root@jason-vm2:~# 

4.1挂载并chroot

执行上面的mount.sh脚本,操作如下:

root@jason-vm2:~# ./mount.sh 
Mounting file system
Change root
root@jason-vm2:/# ls
bin   dev  home  media  opt   root  sbin  sys  usr
boot  etc  lib   mnt    proc  run   srv   tmp  var
root@jason-vm2:/# 

4.2 设置用户和账户密码

设置root账户的密码,这里的密码一定要记住! 博主都忘了设置的啥了,后来进不去系统。。这个时候重新操作一遍设置下,然后放到板子上运行就OK了,博主仓库的默认密码为root

root@jason-vm2:/# passwd root
New password: 
Retype new password: 
passwd: password updated successfully
root@jason-vm2:/# 

4.3 设置主机名和host

root@jason-vm2:~# echo "jason416'"> /etc/hostname
root@jason-vm2:~# echo "127.0.0.1 localhost" > /etc/hosts

4.4 安装常用命令和软件

root@jason-vm2:~# export LC_ALL=C
root@jason-vm2:~# apt update
root@jason-vm2:~# apt install sudo
root@jason-vm2:~# apt install language-pack-en-base
root@jason-vm2:~# apt install ssh
root@jason-vm2:~# apt install net-tools
root@jason-vm2:~# apt install ethtool
root@jason-vm2:~# apt install ifupdown
root@jason-vm2:~# apt install iputils-ping
root@jason-vm2:~# apt install rsyslog
root@jason-vm2:~# apt install htop
root@jason-vm2:~# apt install vim
root@jason-vm2:~# chmod 0400 /etc/ssh/ssh_host_*key
root@jason-vm2:~# echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config

Note: chmod操作是设置SSHD的本机私钥,必须设置其他用户不可修改,否则SSHD会启动不成功。echo操作是把运行root账户登录写到SSHD的配置文件中,如果不开启的话得手动增加个用户。

4.5 配置串口终端

针对iTop-4412精英版,其调试串口为ttySAC2,需要为其添加一个systemd的服务。这里只需要创建一个getty@ttySAC2.server的链接,链接到getty@.service即可,操作如下:

root@jason-vm2:~# ln -s /lib/systemd/system/getty\@.service /etc/systemd/system/getty.target.wants/getty\@ttySAC2.service 

4.6 配置网络

可以先把IP配置好,也可以等启动之后再配置,但ubuntu启动过程还是挺慢的,先配置好较好,配置如下:

root@jason-vm2:~# echo auto eth0 > /etc/network/interfaces.d/eth0
root@jason-vm2:~# echo iface eth0 inet dhcp >> /etc/network/interfaces.d/eth0

4.7 退出并解挂

到这一步我们就移植好了基本的ubuntu文件系统,可以退出并解挂了,如下所示:

root@jason-vm2:/# exit
exit
root@jason-vm2:~# ./umount.sh 
Umounting file system
root@jason-vm2:~# ls
mount.sh  ubuntu-base  umount.sh
root@jason-vm2:~# 

四、开发板验证

这里展示下效果图,如下所示:
在这里插入图片描述

1. NFS方式验证

2. EMMC方式验证

3. squahfs方式验证

TO BE CONTINUE…

使用vmware安装Ubuntu 20.04.6 LTS(Focal Fossa)镜像非常简单,按照以下步骤操作即可: 1. 首先,确保您已经安装了vmware,并已经下载了Ubuntu 20.04.6 LTS的镜像文件。您可以从官方网站或其他可靠的来源获取该镜像文件。 2. 打开vmware软件,点击“创建新的虚拟机”选项。接下来,选择“典型”安装类型。 3. 在新建虚拟机向导中,选择安装源。点击“使用光盘映像文件(iso)”选项,并浏览到您下载的Ubuntu 20.04.6 LTS镜像文件所在的位置。点击“下一步”。 4. 设置虚拟机的操作系统类型和版本。选择“Linux”作为操作系统类型,并选择“Ubuntu 64位”作为版本。点击“下一步”。 5. 为虚拟机设置名称和位置。您可以根据自己的喜好为虚拟机命名,并选择一个合适的存储位置。点击“下一步”。 6. 设置虚拟机的存储容量。您可以更改默认的虚拟硬盘大小,或者使用默认设置。点击“下一步”。 7. 确认创建虚拟机的设置,并点击“完成”来开始安装过程。 8. 安装完成后,您可以启动虚拟机,并按照Ubuntu的安装向导进行操作。选择语言、键盘布局等设置,然后点击“继续”。 9. 在安装类型选项中,选择“其他选项”并点击“继续”。 10. 在分区选项中,可以选择使用整个磁盘进行安装,或者手动分区。选择适合您需求的选项,并点击“安装”。 11. 在安装过程中,您需要设置用户名和密码,并选择是否自动登录。完成设置后,安装程序将继续运行。 12. 安装完成后,重启虚拟机,并输入您设置的用户名和密码进行登录。 现在,您已经成功使用vmware安装了Ubuntu 20.04.6 LTS(Focal Fossa)镜像。您可以享受使用Ubuntu的各种功能和特性了。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值