0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FireflyRK3128主板Ubuntu 根文件系統(tǒng)創(chuàng)建

firefly ? 來(lái)源:firefly ? 作者:firefly ? 2019-11-29 09:00 ? 次閱讀
創(chuàng)建 Ubuntu 根文件系統(tǒng)
使用 miniroot 來(lái)創(chuàng)建并引導(dǎo)系統(tǒng)

miniroot 是個(gè)非常小巧的 shell 環(huán)境,用來(lái)安裝和引導(dǎo)其它根文件系統(tǒng),例如 Ubuntu, Gentoo, Arch Linux 等,這些系統(tǒng)可以在內(nèi)核支持的存儲(chǔ)設(shè)備的根或子目錄上。這意味著我們能夠從開發(fā)板的 eMMC Flash, 外置 TF 卡或 U 盤上安裝多個(gè)系統(tǒng),而且方便地切換系統(tǒng),而不用修改并燒寫 parameter 文件。miniroot 需要使用串口線來(lái)調(diào)試,參見《串口調(diào)試》一文。另外在下載系統(tǒng)映像時(shí)需要使用以太網(wǎng),當(dāng)然,也可以預(yù)先下載到移動(dòng)存儲(chǔ)設(shè)備上。

準(zhǔn)備

請(qǐng)先備份好開發(fā)板及相關(guān)存儲(chǔ)設(shè)備上的數(shù)據(jù),以免操作失誤或其它不可預(yù)見的因素帶來(lái)的數(shù)據(jù)丟失。首先確保開發(fā)板已經(jīng)燒寫了可以正常工作的固件,然后下載以下映像文件:

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

如果開發(fā)板安裝的是 Android 或雙系統(tǒng)固件,則將 linux-boot-miniroot.img 寫到 recovery 分區(qū),misc.img 寫到 misc 分區(qū)。如果開發(fā)板安裝的是 Linux固件,則將 linux-boot-miniroot.img 寫到 boot 分區(qū)。miniroot 初次啟動(dòng)后,會(huì)進(jìn)入 shell,在串口終端上可以見到提示符:

miniroot#

然后開始配置網(wǎng)絡(luò),如果是 DHCP 網(wǎng)絡(luò):

miniroot# udhcpc

否則就要手工配置網(wǎng)絡(luò)參數(shù)(將192.168.1.* 替換成實(shí)際使用的網(wǎng)絡(luò)地址):

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 支持從目錄里啟動(dòng),這就意味著根文件系統(tǒng)的放置位置很靈活,而且可以方便地支持多種 Linux 發(fā)行版啟動(dòng)。注意,由于調(diào)試串口與 TF 卡接口有信號(hào)引腳共用,因此不能同時(shí)使用。 下面用 U 盤第一分區(qū)作為系統(tǒng)存儲(chǔ),創(chuàng)建 ext4 文件系統(tǒng)并掛載到 /mnt,ubuntu 將解壓到 /mnt/ubuntu 下:

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

一般需要保證此分區(qū)有 4G 以上的剩余空間。

下載和解壓 ubuntu-core

ubuntu-core 是最小的根文件系統(tǒng),在安裝之后根據(jù)需要再設(shè)置桌面或服務(wù)器環(huán)境。下載并解壓到 /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
啟動(dòng) Ubuntu
  • 設(shè)置主機(jī)名稱
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
  • 啟動(dòng) Ubuntu
miniroot# boot /mnt:/ubuntu /lib/systemd/systemd

提示:如果根設(shè)備沒有掛載,可以將冒號(hào)前的掛載目錄替換成根設(shè)備文件,miniroot 會(huì)自動(dòng)掛載:

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:~#
  • 設(shè)置網(wǎng)絡(luò)(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
  • 進(jìn)入 miniroot,編輯環(huán)境變量,加入 ubuntu 的啟動(dòng)參數(shù)
miniroot# editenv boot=/dev/sda1:/ubuntu init=/lib/systemd/systemd autoboot=1
  • 保存環(huán)境變量并重啟
miniroot# saveenv miniroot# reboot -f
安裝軟件包

安裝 Lubuntu (LXDE)桌面環(huán)境:

root@ubuntu:~# apt-get install lubuntu-desktop
固化系統(tǒng)

將 U 盤卡拔出,插入到主機(jī)系統(tǒng),掛載到 /mnt 目錄上。查看根文件系統(tǒng)所需空間的大?。?/p>

sudo du -hs /mnt/ubuntu

視情況對(duì) /mnt/ubuntu 目錄進(jìn)行清理,特別是一些日志目錄、臨時(shí)目錄等。生成空白磁盤映像文件,以生成 1G 大小的根文件系統(tǒng)磁盤映像文件為例:

cd /new/firmware/work/dir/ dd if=/dev/zero of=linuxroot.img bs=1M count=1024 # 格式化成 ext4 文件系統(tǒng)格式,卷標(biāo)為 linuxroot mkfs.ext4 -F -L linuxroot -m 0 linuxroot.img

掛載,拷貝數(shù)據(jù),然后卸載:

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

這樣 linuxroot.img 就是最終的根文件系統(tǒng)映像文件了。

常見問(wèn)題
如何恢復(fù)正常啟動(dòng)

往 misc 分區(qū)燒寫 misc.img 后,開發(fā)板就會(huì)從 recovery 分區(qū)啟動(dòng)系統(tǒng),要恢復(fù)回 boot 分區(qū)啟動(dòng),有兩種方法:

  • 下載 misc_zero.imghttps://pan.baidu.com/s/1L6stnnwFQhGX_eW4Ze8lSg , 然后燒寫到 misc 分區(qū)
  • 在開發(fā)板的 Linux shell 下運(yùn)行:
sudo dd if=/dev/zero of=/dev/block/mtd/by-name/misc bs=16K count=count=3 sudo sync sudo reboot

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6084

    瀏覽量

    35154
  • 安卓
    +關(guān)注

    關(guān)注

    5

    文章

    2116

    瀏覽量

    56960
  • Firefly
    +關(guān)注

    關(guān)注

    2

    文章

    538

    瀏覽量

    6961
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    文件系統(tǒng)的含義和相關(guān)重要概念以及加載代碼分析

    簡(jiǎn)單的來(lái)說(shuō),文件系統(tǒng)包括虛擬文件系統(tǒng)和真實(shí)根文件系統(tǒng)。在Kernel啟動(dòng)的初始階段,首先去創(chuàng)建
    的頭像 發(fā)表于 01-23 08:54 ?7837次閱讀

    瑞芯微VS-RK3399《創(chuàng)建 Ubuntu 文件系統(tǒng)》分享

    瑞芯微VS-RK3399《創(chuàng)建 Ubuntu 文件系統(tǒng)》分享更新時(shí)間:2018-3-30準(zhǔn)備工作安裝qemu在Linux PC主機(jī)上安裝模擬器:sudo apt-get instal
    發(fā)表于 03-30 10:03

    如何導(dǎo)出Ubuntu文件系統(tǒng)

    如何安裝fireflydev?如何導(dǎo)出Ubuntu文件系統(tǒng)?
    發(fā)表于 03-02 07:37

    如何創(chuàng)建UBUNTU文件系統(tǒng)RK3288?

    如何創(chuàng)建UBUNTU文件系統(tǒng)RK3288?
    發(fā)表于 03-03 06:33

    如何使用Ubuntu 16.04編譯文件系統(tǒng)?

    如何使用Ubuntu 16.04編譯文件系統(tǒng)
    發(fā)表于 03-09 07:57

    RK3128制作ubuntu文件系統(tǒng)相關(guān)案例分享

    1、rk3128制作ubuntu文件系統(tǒng)  制作文件系統(tǒng)很簡(jiǎn)單,重要的是縷清思路?! ≈谱鬟^(guò)程有很多我就不贅述了程?! ∠旅嬷谱魍瓿闪?,如果在平臺(tái)上啟動(dòng)我們制作的
    發(fā)表于 11-18 16:45

    Linux文件系統(tǒng)簡(jiǎn)介

    Linux文件系統(tǒng)簡(jiǎn)介 什么是文件   文件系統(tǒng)首先是一種
    發(fā)表于 04-21 17:01 ?5096次閱讀

    Firefly-RK3399文件系統(tǒng)介紹

    創(chuàng)建 Ubuntu 文件系統(tǒng) 準(zhǔn)備工作 安裝qemu
    的頭像 發(fā)表于 11-23 10:55 ?2036次閱讀
    Firefly-RK3399<b class='flag-5'>根</b><b class='flag-5'>文件系統(tǒng)</b>介紹

    FireflyRK3128主板外殼介紹

    外殼 Firefly-RK3128 CAD圖 核心板 底板 Firefly-RK3128 外殼亞克力CAD圖
    的頭像 發(fā)表于 11-29 09:19 ?1203次閱讀
    <b class='flag-5'>FireflyRK3128</b><b class='flag-5'>主板</b>外殼介紹

    fireflyAIO-3399C主板創(chuàng)建Ubuntu文件系統(tǒng)

    創(chuàng)建 Ubuntu 文件系統(tǒng) 準(zhǔn)備工作 安裝qemu
    的頭像 發(fā)表于 12-13 10:42 ?1142次閱讀

    fireflyROC-RK3328-PC編譯Ubuntu 文件系統(tǒng)簡(jiǎn)介

    編譯 Ubuntu 文件系統(tǒng)
    的頭像 發(fā)表于 12-21 09:45 ?1415次閱讀

    嵌入式Linux移植3. NFS文件系統(tǒng)掛載(從Ubuntu啟動(dòng)內(nèi)核,文件系統(tǒng)

    :通過(guò)tftp使用Ubuntu中的/tftpboot中的uImage啟動(dòng)rootfs文件系統(tǒng):通過(guò)NFS使用Ubuntu中的/nfs_rootfs中的
    發(fā)表于 11-02 12:51 ?7次下載
    嵌入式Linux移植3. NFS<b class='flag-5'>根</b><b class='flag-5'>文件系統(tǒng)</b>掛載(從<b class='flag-5'>Ubuntu</b>啟動(dòng)內(nèi)核,<b class='flag-5'>文件系統(tǒng)</b>)

    Core 1808 JD4固件Linux文件系統(tǒng)Ubuntu18.04)

    電子發(fā)燒友網(wǎng)站提供《Core 1808 JD4固件Linux文件系統(tǒng)Ubuntu18.04).txt》資料免費(fèi)下載
    發(fā)表于 09-20 17:05 ?0次下載
    Core 1808 JD4固件Linux<b class='flag-5'>根</b><b class='flag-5'>文件系統(tǒng)</b>(<b class='flag-5'>Ubuntu</b>18.04)

    rootfs文件系統(tǒng)制作

    本文記錄了文件系統(tǒng)的一些知識(shí)點(diǎn),Busybox 工具的使用和 最小文件系統(tǒng)的制作。
    發(fā)表于 10-31 11:56 ?2次下載

    Linux文件系統(tǒng)的掛載過(guò)程

    Linux文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點(diǎn),它是內(nèi)核啟動(dòng)時(shí)掛載的第一個(gè)文件系統(tǒng)。
    的頭像 發(fā)表于 10-05 16:50 ?232次閱讀