0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FireflyRK3128主板Ubuntu 根文件系统创建

firefly 来源:firefly 作者:firefly 2019-11-29 09:00 次阅读
创建 Ubuntu 根文件系统
使用 miniroot 来创建并引导系统

miniroot 是个非常小巧的 shell 环境,用来安装和引导其它根文件系统,例如 Ubuntu, Gentoo, Arch Linux 等,这些系统可以在内核支持的存储设备的根或子目录上。这意味着我们能够从开发板的 eMMC Flash, 外置 TF 卡或 U 盘上安装多个系统,而且方便地切换系统,而不用修改并烧写 parameter 文件。miniroot 需要使用串口线来调试,参见《串口调试》一文。另外在下载系统映像时需要使用以太网,当然,也可以预先下载到移动存储设备上。

准备

请先备份好开发板及相关存储设备上的数据,以免操作失误或其它不可预见的因素带来的数据丢失。首先确保开发板已经烧写了可以正常工作的固件,然后下载以下映像文件:

  • misc.imghttps://pan.baidu.com/s/17Iw9QEMkUavOENZR9Xkqjw
  • linux-boot-miniroot.imghttps://pan.baidu.com/s/1poSyJxMjFEGSYZsbna8Rag

如果开发板安装的是 Android 或双系统固件,则将 linux-boot-miniroot.img 写到 recovery 分区,misc.img 写到 misc 分区。如果开发板安装的是 Linux固件,则将 linux-boot-miniroot.img 写到 boot 分区。miniroot 初次启动后,会进入 shell,在串口终端上可以见到提示符:

miniroot#

然后开始配置网络,如果是 DHCP 网络:

miniroot# udhcpc

否则就要手工配置网络参数(将192.168.1.* 替换成实际使用的网络地址):

miniroot# ip addr add 192.168.1.2/24 broadcast + dev eth0 miniroot# ip link set dev eth0 up miniroot# ip route add default via 192.168.1.1 miniroot# echo nameserver 192.168.1.1 > /etc/resolv.conf

miniroot 支持从目录里启动,这就意味着根文件系统的放置位置很灵活,而且可以方便地支持多种 Linux 发行版启动。注意,由于调试串口与 TF 卡接口有信号引脚共用,因此不能同时使用。 下面用 U 盘第一分区作为系统存储,创建 ext4 文件系统并挂载到 /mnt,ubuntu 将解压到 /mnt/ubuntu 下:

miniroot# mkfs.ext4 -E nodiscard /dev/sda1 miniroot# mount /dev/sda1 /mnt

一般需要保证此分区有 4G 以上的剩余空间。

下载和解压 ubuntu-core

ubuntu-core 是最小的根文件系统,在安装之后根据需要再设置桌面或服务器环境。下载并解压到 /mnt :

miniroot# cd /mnt miniroot# wget -P /mnt http://cdimage.ubuntu.com/ubuntu-core/releases/15.04/release/ubuntu-core-15.04-core-armhf.tar.gz miniroot# mkdir /mnt/ubuntu miniroot# tar -xpzf /mnt/ubuntu-core-15.04-core-armhf.tar.gz -C /mnt/ubuntu
启动 Ubuntu
  • 设置主机名称
miniroot# echo ubuntu > /mnt/ubuntu/etc/hostname miniroot# sed -e 's/miniroot/ubuntu/' < /etc/hosts > /mnt/ubuntu/etc/hosts

新增用户帐户(帐户和密码均是 “ubuntu”):

miniroot# chroot /mnt/ubuntu useradd -G sudo -m -s /bin/bash ubuntu miniroot# echo ubuntu:ubuntu | chroot /mnt/ubuntu chpasswd
  • 安装必须的包
miniroot# mount -t proc none /mnt/ubuntu/proc miniroot# mount -t devtmpfs none /mnt/ubuntu/dev miniroot# cp /etc/resolv.conf /mnt/ubuntu/etc/ miniroot# chroot /mnt/ubuntu /bin/bash root@miniroot:/# apt-get update root@miniroot:/# apt-get install --no-install-recommends sudo iproute net-tools isc-dhcp-client root@miniroot:/# exit miniroot# rm /mnt/ubuntu/etc/resolv.conf miniroot# umount /mnt/ubuntu/proc miniroot# umount /mnt/ubuntu/dev
  • 启动 Ubuntu
miniroot# boot /mnt:/ubuntu /lib/systemd/systemd

提示:如果根设备没有挂载,可以将冒号前的挂载目录替换成根设备文件,miniroot 会自动挂载:

miniroot# boot /dev/sda1:/ubuntu /lib/systemd/systemd
初始配置
  • 串口登录 Ubuntu
Ubuntu 15.04 ubuntu ttyFIQ0 ubuntu login: ubuntu Password: ubuntu Last login: Tue May 26 08:11:03 UTC 2015 on ttyFIQ0 Welcome to Ubuntu 15.04 (GNU/Linux 3.10.0 armv7l) * Documentation: https://help.ubuntu.com/ ubuntu@ubuntu:~$ sudo -s [sudo] password for ubuntu: ubuntu root@ubuntu:~#
  • 设置网络(DHCP)
root@ubuntu:~# echo auto eth0 > /etc/network/interfaces.d/eth0 root@ubuntu:~# echo iface eth0 inet dhcp >> /etc/network/interfaces.d/eth0 root@ubuntu:~# ln -fs ../run/resolvconf/resolv.conf /etc/resolv.conf root@ubuntu:~# ifup eth0
  • 更新软件包
root@ubuntu:~# cp /etc/apt/sources.list /etc/apt/sources.list.orig root@ubuntu:~# sed -i -e 's,^# deb\(.*\)$,deb\1,g' /etc/apt/sources.list root@ubuntu:~# apt-get update root@ubuntu:~# apt-get dist-upgrade
  • 重启
root@ubuntu:~# reboot
  • 进入 miniroot,编辑环境变量,加入 ubuntu 的启动参数
miniroot# editenv boot=/dev/sda1:/ubuntu init=/lib/systemd/systemd autoboot=1
  • 保存环境变量并重启
miniroot# saveenv miniroot# reboot -f
安装软件包

安装 Lubuntu (LXDE)桌面环境:

root@ubuntu:~# apt-get install lubuntu-desktop
固化系统

将 U 盘卡拔出,插入到主机系统,挂载到 /mnt 目录上。查看根文件系统所需空间的大小:

sudo du -hs /mnt/ubuntu

视情况对 /mnt/ubuntu 目录进行清理,特别是一些日志目录、临时目录等。生成空白磁盘映像文件,以生成 1G 大小的根文件系统磁盘映像文件为例:

cd /new/firmware/work/dir/ dd if=/dev/zero of=linuxroot.img bs=1M count=1024 # 格式化成 ext4 文件系统格式,卷标为 linuxroot mkfs.ext4 -F -L linuxroot -m 0 linuxroot.img

挂载,拷贝数据,然后卸载:

mount -o loop linuxroot.img /opt cp -a /mnt/ubuntu/* /opt/ umount /opt

这样 linuxroot.img 就是最终的根文件系统映像文件了。

常见问题
如何恢复正常启动

往 misc 分区烧写 misc.img 后,开发板就会从 recovery 分区启动系统,要恢复回 boot 分区启动,有两种方法:

  • 下载 misc_zero.imghttps://pan.baidu.com/s/1L6stnnwFQhGX_eW4Ze8lSg , 然后烧写到 misc 分区
  • 在开发板的 Linux shell 下运行:
sudo dd if=/dev/zero of=/dev/block/mtd/by-name/misc bs=16K count=count=3 sudo sync sudo reboot

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34606
  • 安卓
    +关注

    关注

    5

    文章

    2081

    浏览量

    54466
  • Firefly
    +关注

    关注

    2

    文章

    534

    浏览量

    6755
收藏 人收藏

    评论

    相关推荐

    文件系统的制作

    的/tmp目录下,所以/tmp目录必须存在并可以访问。   那我们利用Busybox制作文件系统就是创建这上面的这些目录,和这些目录下面的各种文件。   对于嵌入式Linux
    发表于 04-29 21:32

    【NanoPi NEO2试用体验】构建ubuntu文件系统

    Ubuntu文件系统的核心部分,默认没有图形界面等等。在Ubuntu主机中创建目录并下载Ubuntu
    发表于 07-17 09:07

    瑞芯微VS-RK3399《创建 Ubuntu 文件系统》分享

    瑞芯微VS-RK3399《创建 Ubuntu 文件系统》分享更新时间:2018-3-30准备工作安装qemu在Linux PC主机上安装模拟器:sudo apt-get instal
    发表于 03-30 10:03

    NFS文件系统挂载

    :通过tftp使用Ubuntu中的/tftpboot中的uImage启动rootfs文件系统:通过NFS使用Ubuntu中的/nfs_rootfs中的
    发表于 11-05 07:31

    如何导出Ubuntu文件系统

    如何安装fireflydev?如何导出Ubuntu文件系统
    发表于 03-02 07:37

    如何创建UBUNTU文件系统RK3288?

    如何创建UBUNTU文件系统RK3288?
    发表于 03-03 06:33

    如何对RK3288的ubuntu文件系统进行配置呢

    怎样去修改RK3288的ubuntu文件系统播放呢?如何对RK3288的ubuntu文件系统
    发表于 03-04 07:47

    如何使用Ubuntu 16.04编译文件系统

    如何使用Ubuntu 16.04编译文件系统
    发表于 03-09 07:57

    基于Ubuntu 18.04 64bit文件系统定制步骤

    cdimg 下载,选择下载 ubuntu-base-18.04.5-base-arm64.tar.gz。下载完之后,创建临时文件夹并解压根文件系统:mkdir 温度sudo tar
    发表于 04-28 11:24

    RK3288的ubuntu文件系统修改与操作步骤简析

    ubuntu-base-16.04-core-armhf.tar.gz -C ubuntufs接下来就是修改我们的文件系统在修改之前我们要做一些准备工作由于我们要chroot,所以需要能够在chroot环境执行arm64版本
    发表于 05-19 10:01

    RK3128通过buildroot文件系统重做自己的img镜像

    1、rk3128通过自带buildroot打包开发板文件系统重做自己的img镜像  对rk3128要生成自己的qt镜像文件  据说这样才方
    发表于 09-23 16:41

    RK3128制作ubuntu文件系统相关案例分享

    1、rk3128制作ubuntu文件系统  制作文件系统很简单,重要的是缕清思路。  制作过程有很多我就不赘述了程。  下面制作完成了,如果在平台上启动我们制作的
    发表于 11-18 16:45

    FireflyRK3128主板外壳介绍

    外壳 Firefly-RK3128 CAD图 核心板 底板 Firefly-RK3128 外壳亚克力CAD图
    的头像 发表于 11-29 09:19 951次阅读
    <b class='flag-5'>FireflyRK3128</b><b class='flag-5'>主板</b>外壳介绍

    fireflyAIO-3399C主板创建Ubuntu文件系统

    创建 Ubuntu文件系统 准备工作 安装qemu
    的头像 发表于 12-13 10:42 1012次阅读

    如何制作ubuntu20.04的文件系统

    firefly自带的文件系统,由于缺少一些基本功能模块,因此,我们可以自己手动制作一个ubuntu20.04的文件系统
    的头像 发表于 10-17 12:12 2979次阅读