搜索

151

主题

508

帖子

3567

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3567
发表于 2020-7-6 13:10:58 4365 浏览 0 回复

I.MX6ULL开发板移植ubuntu

       在我们的I.MX6UL精英和全能板上很早就适配了ubuntu16不带桌面的版本,接下来,我们来看看怎么把这个文件系统迁移到I.MX6ULL终结者开发板上。
       I.MX6UL可以移植不带界面的Ubuntu Base版本。Ubuntu Base是用于为特定需求创建自定义映像的最小rootfs。Ubuntu Base致力于为板级支持包(BSP)、受限制或集成环境中的应用创建适当的最小环境,作为应用或Linux容器(如LXC或Docker)演示映像的基础。
      Ubuntu移植比较简单,ubuntu官方提供了制作好的根文件系统,我们只需要配置下相关内容即可放到板子上运行。
一.ubuntu-base获取
    首先我们打开终端,切换到root模式。如下图所示:
    然后使用命令“mkdir ubuntu-base”创建该文件夹,并使用命令“cd ubuntu-base/”进入该文件夹,我们本章移植过程均在此文件内操作。如下图所示:
    Ubuntu官方针对不同的CPU架构提供相应的ubuntu base根文件系统,有amd64(64位X86)、armhf、i386(32位X86)、powerpc、ppc64el等系统的。
我们可以先下载到Windows计算机内,网站如下。

http://cdimage.ubuntu.com/ubuntu-base/releases/16.04.5/release/
     找到ubuntu-base-16.04.6-base-armhf.tar.gz,点击下载即可,如下图所示:
    然后我们使用SSH工具传输到刚刚的目录。或者我们可以在该目录下使用命令

“wget http://cdimage.ubuntu.com/ubuntu-base/releases/16. 04.5/release/ubuntu-base-16.04.5-base-armhf.tar.gz ”
     直接下载。如下图所示:
    下载之后可以看到压缩包如下。
二.解压ubuntu-base
      我们使用命令“tar xvf ubuntu-base-16.04.5-base-armhf.tar.gz”,如下图所示:
      解压完成之后就是根文件系统,使用命令“ls”查看目录。
三.安装qemu-user-static工具
        QEMU是专门模拟不同机器架构的软件,在ubuntu中对其支持良好,若需要挂载ubuntu armhf版本的文件,必须安装qemu-user-static工具。
       首先Ubuntu下使用命令“apt-get install qemu-user-static”安装,安装过程中按y继续。如下图所示:
      这一步骤是将qemu-user-static安装到了pc的ubuntu上,然后使用命令“cp /usr/bin/qemu-arm-static ./usr/bin/”,拷贝qemu-arm-static到刚刚解压出来的目录。如下图所示:
四.设置软件源
     Ubuntu安装软件是通过名apt-get从网上下载安装的。我们需要指定软件源。
      为了制作成功的根文件系统能够联网,可以直接拷贝本机的dns配置文件到根文件系统的相应位置,使用命令“cp /etc/resolv.conf ./etc/resolv.conf”,如下图所示:
      然后修改根文件系统软件源,使用命令“vim ./etc/apt/sources.list”进入该文件。如下图所示:
     添加ubuntu arm源,我选择的是中科大的源,在文末添加如下内容:

deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universedeb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universedeb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universedeb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universedeb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universedeb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universedeb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universedeb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universedeb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universedeb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
如下图所示:
五.挂载根文件系统并chroot
      首先在本机挂载刚刚下载好的文件系统,需要挂载proc, sys, dev, dev/pts等文件系统。使用命令“vi mount.sh”添加挂载脚本。如下图所示:
       挂载过程的脚本umount.sh内容如下:

#!/bin/bash2echo "MOUNTING"3mount -t proc /proc /home/topeet/ubuntu-base/proc4mount -t sysfs /sys /home/topeet/ubuntu-base/sys5mount -o bind /dev /home/topeet/ubuntu-base/dev6mount -o bind /dev/pts /home/topeet/ubuntu-base/dev/pts        7chroot /home/topeet/ubuntu-base/
如图:
然后使用命令“vi umount.sh”添加卸载脚本。如下图所示:
卸载过程的脚本umount.sh内容如下:

#!/bin/bash2echo "UNMOUNTING"3sudo umount /home/topeet/ubuntu-base/proc4sudo umount /home/topeet/ubuntu-base/sys5sudo umount /home/topeet/ubuntu-base/dev/pts6sudo umount /home/topeet/ubuntu-base/dev
如下图所示:
      然后使用命令“ chmod 777 mount.sh umount.sh”修改脚本权限,如下图所示:
      然后使用命令“mount.sh”运行挂载。如下图所示:
       此时我们可以看到,根目录切换成了当前制作ubuntu的目录。
      由于ubuntu base是一个最小根文件系统,很多命令和软件都没有,因此我们需要先安装一下常用的命令和软件,输入如下命令:

apt updateapt install sudoapt install language-pack-en-baseapt install sshapt install net-toolsapt install ethtoolapt install ifupdownapt install iputils-pingapt install rsyslogapt install htopapt install vim
    然后使用命令“passwd root”设置root用户密码,在这里我们设置成topeet。如下图所示:
     接下来使用如下命令设置主机名称和本机IP:

echo "topeet_i.MX6UL/ULL" > /etc/hostnameecho "127.0.0.1 localhost" >> /etc/hostsecho "127.0.0.1 topeet_i.MX6UL/ULL" >> /etc/hosts
如下图所示:
    接下来配置串口终端。我们使用命令

“ln -s /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@ttymxc0.service”
    指定串口终端。如下图所示:
     由于我用的是i.mx6u的平台,需要添加一个名为getty@ttymxc0.service的链接,连接到getty@.service服务。i.mx的平台是ttymxc0。
     接下来配置DHCP,也可以等下载到开发板之后在配置,但启动时会很慢。使用如下命令:

echo auto eth0 > /etc/network/interfaces.d/eth0echo iface eth0 inet dhcp >> /etc/network/interfaces.d/eth0
如下图所示:
    设置好以后就可以退出根文件系统了,输入命令“exit”退出。如下图所示:
    最后我们将退出以后再执行一下umount.sh脚本取消挂载。如下图所示:
     ubuntu系统就已经制作好了,然后我们就可以使用开发板测试了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录或注册

官方客服

QQ:2551456065

官方QQ群

195631883

扫一扫关注迅为公众号

群号652692981

 
快速回复 返回顶部 返回列表