firefly自帶的文件系統(tǒng),由于缺少一些基本功能模塊,因此,我們可以自己手動(dòng)制作一個(gè)ubuntu20.04的文件系統(tǒng)。
下載Ubuntu根文件系統(tǒng)
安裝虛擬機(jī)
apt-getinstallqemu-user-static
解壓
mkdirubuntu-rootfs tar-xpfubuntu-base-20.04.5-base-arm64.tar.gz-Cubuntu-rootfs
復(fù)制一下虛擬機(jī)的運(yùn)行環(huán)境
cp-b/etc/resolv.confubuntu-rootfs/etc/resolv.conf cp/usr/bin/qemu-aarch64-staticubuntu-rootfs/usr/bin/
復(fù)制官方外設(shè)驅(qū)動(dòng)文件
將開(kāi)發(fā)板掛載到虛擬機(jī)上,將開(kāi)發(fā)板的/vendor,/system,/lib/firmware,這三個(gè)文件夾復(fù)制到我們自己的文件系統(tǒng)中。
掛載根文件系統(tǒng)
創(chuàng)建ch-mount.sh文件,寫(xiě)入以下腳本
#!/bin/bash # functionmnt(){ echo"MOUNTING..." sudomount-tproc/proc${2}proc sudomount-tsysfs/sys${2}sys sudomount-obind/dev${2}dev sudomount-obind/dev/pts${2}dev/pts echo"CHROOT..." sudochroot${2} echo"Success!" } functionumnt(){ echo"UNMOUNTING" sudoumount${2}proc sudoumount${2}sys sudoumount${2}dev/pts sudoumount${2}dev } if["$1"=="-m"]&&[-n"$2"]; then mnt$1$2 elif["$1"=="-u"]&&[-n"$2"]; then umnt$1$2 else echo"" echo"Either1'st,2'ndorbothparametersweremissing" echo"" echo"1'stparametercanbeoneofthese:-m(mount)OR-u(umount)" echo"2'ndparameteristhefullpathofrootfsdirectory(withtrailing'/')" echo"" echo"Forexample:ch-mount-m/media/sdcard/" echo"" echo1stparameter:${1} echo2ndparameter:${2} fi
把下載好的腳本置于ubuntu-rootfs目錄的上一級(jí)目錄,并修改權(quán)限:
chmoda+xch-mount.sh ./ch-mount.sh-mubuntu-rootfs/
執(zhí)行mount動(dòng)作,注意退出后一定再執(zhí)行 ./ch-mount.sh -u ubuntu-rootfs/,否則你的本機(jī)ubuntu系統(tǒng)會(huì)出問(wèn)題,需要重啟才能恢復(fù)正常。
拷貝bash依賴庫(kù)
執(zhí)行掛載腳本時(shí)遇到以下錯(cuò)誤,可以拷貝bash動(dòng)態(tài)庫(kù)。
?toolssudochrootubuntu-rootfs chroot:failedtoruncommand‘/bin/zsh’:Nosuchfileordirectory
查看/bin/bash文件所依賴的動(dòng)態(tài)鏈接庫(kù),然后依次拷貝到相應(yīng)目錄。由于我安裝了zsh,所以除了拷貝bash動(dòng)態(tài)庫(kù)外,還需要拷貝zsh動(dòng)態(tài)庫(kù)。沒(méi)有安裝zsh的可以不用拷貝zsh動(dòng)態(tài)庫(kù)。
zhongyi@ubuntu:~$ldd/bin/zsh linux-vdso.so.1(0x00007ffd5c1dc000) libcap.so.2=>/lib/x86_64-linux-gnu/libcap.so.2(0x00007f4b4d9d7000) libdl.so.2=>/lib/x86_64-linux-gnu/libdl.so.2(0x00007f4b4d7d3000) libtinfo.so.5=>/lib/x86_64-linux-gnu/libtinfo.so.5(0x00007f4b4d5a9000) libm.so.6=>/lib/x86_64-linux-gnu/libm.so.6(0x00007f4b4d20b000) libc.so.6=>/lib/x86_64-linux-gnu/libc.so.6(0x00007f4b4ce1a000) /lib64/ld-linux-x86-64.so.2(0x00007f4b4debc000) zhongyi@ubuntu:~$ldd/bin/bash linux-vdso.so.1(0x00007ffd8335a000) libtinfo.so.5=>/lib/x86_64-linux-gnu/libtinfo.so.5(0x00007f50a4d2a000) libdl.so.2=>/lib/x86_64-linux-gnu/libdl.so.2(0x00007f50a4b26000) libc.so.6=>/lib/x86_64-linux-gnu/libc.so.6(0x00007f50a4735000) /lib64/ld-linux-x86-64.so.2(0x00007f50a526e000)
$mkdirlib64 $cp/lib64/ld-linux-x86-64.so.2./lib64/ $mkdir./lib/x86_64-linux-gnu $cp/lib/x86_64-linux-gnu/libtinfo.so.5./lib/x86_64-linux-gnu/ $cp/lib/x86_64-linux-gnu/libdl.so.2./lib/x86_64-linux-gnu/ $cp/lib/x86_64-linux-gnu/libc.so.6./lib/x86_64-linux-gnu/ $cp/lib/x86_64-linux-gnu/libcap.so.2./lib/x86_64-linux-gnu/ $cp/lib/x86_64-linux-gnu/libm.so.6./lib/x86_64-linux-gnu/ $cp/lib/x86_64-linux-gnu/libc.so.6./lib/x86_64-linux-gnu/ $cp/bin/bashubuntu-rootfs/bin $cp/bin/zshubuntu-rootfs/bin
執(zhí)行掛載
成功掛載后,會(huì)看到自動(dòng)切換為root用戶。
zhongyi@ubuntu:~/tools$./ch-mount.sh-mubuntu-rootfs/ MOUNTING... CHROOT... zsh:failedtoloadmodule`zsh/zle':/usr/lib/x86_64-linux-gnu/zsh/5.4.2/zsh/zle.so:cannotopensharedobjectfile:Nosuchfileordirectory #已經(jīng)成功掛載 ubuntu#
安裝必要的軟件
apt-getupdate apt-get-yinstallvimnfs-commonsudosshnet-toolsethtoolwireless-toolsxfce4-power-managerxinitnetwork-manageriputils-pingrsyslogbash-completionlxtaskhtopsynaptic--no-install-recommends
更換源
vim/etc/apt/source.list #添加中科大源 debhttp://mirrors.ustc.edu.cn/ubuntu-ports/xenialmainmultiverserestricteduniverse debhttp://mirrors.ustc.edu.cn/ubuntu-ports/xenial-backportsmainmultiverserestricteduniverse debhttp://mirrors.ustc.edu.cn/ubuntu-ports/xenial-proposedmainmultiverserestricteduniverse debhttp://mirrors.ustc.edu.cn/ubuntu-ports/xenial-securitymainmultiverserestricteduniverse debhttp://mirrors.ustc.edu.cn/ubuntu-ports/xenial-updatesmainmultiverserestricteduniverse deb-srchttp://mirrors.ustc.edu.cn/ubuntu-ports/xenialmainmultiverserestricteduniverse deb-srchttp://mirrors.ustc.edu.cn/ubuntu-ports/xenial-backportsmainmultiverserestricteduniverse deb-srchttp://mirrors.ustc.edu.cn/ubuntu-ports/xenial-proposedmainmultiverserestricteduniverse deb-srchttp://mirrors.ustc.edu.cn/ubuntu-ports/xenial-securitymainmultiverserestricteduniverse deb-srchttp://mirrors.ustc.edu.cn/ubuntu-ports/xenial-updatesmainmultiverserestricteduniverse #添加阿里源 debhttp://mirrors.aliyun.com/ubuntu/focalmainrestricteduniversemultiverse deb-srchttp://mirrors.aliyun.com/ubuntu/focalmainrestricteduniversemultiverse debhttp://mirrors.aliyun.com/ubuntu/focal-securitymainrestricteduniversemultiverse deb-srchttp://mirrors.aliyun.com/ubuntu/focal-securitymainrestricteduniversemultiverse debhttp://mirrors.aliyun.com/ubuntu/focal-updatesmainrestricteduniversemultiverse deb-srchttp://mirrors.aliyun.com/ubuntu/focal-updatesmainrestricteduniversemultiverse debhttp://mirrors.aliyun.com/ubuntu/focal-proposedmainrestricteduniversemultiverse deb-srchttp://mirrors.aliyun.com/ubuntu/focal-proposedmainrestricteduniversemultiverse debhttp://mirrors.aliyun.com/ubuntu/focal-backportsmainrestricteduniversemultiverse deb-srchttp://mirrors.aliyun.com/ubuntu/focal-backportsmainrestricteduniversemultiverse #添加清華源 debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focalmainrestricteduniversemultiverse #deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focalmainrestricteduniversemultiverse debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-updatesmainrestricteduniversemultiverse #deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-updatesmainrestricteduniversemultiverse debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-backportsmainrestricteduniversemultiverse #deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-backportsmainrestricteduniversemultiverse debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-securitymainrestricteduniversemultiverse #deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-securitymainrestricteduniversemultiverse
設(shè)置賬戶名和密碼
useradd-s'/bin/bash'-m-Gadm,sudofirefly passwdfirefly passwdroot
設(shè)置主機(jī)名
echo'ubuntu.firefly'>/etc/hostname
添加主機(jī)入口到/etc/hosts
127.0.0.1localhost 127.0.0.1ubuntu.firefly 127.0.1.1firefly
添加nameserver
vim/etc/resolvconf/resolv.conf.d/head #添加nameserver nameserver114.114.114.114 nameserver8.8.8.8
取消掛載
exit ./ch-mount.sh-uubuntu-rootfs/
創(chuàng)建 mkrootfs.sh文件,寫(xiě)入以下腳本,其中2048取決于你的根文件系統(tǒng)實(shí)際大小,比如安裝了桌面環(huán)境后若大小超過(guò)2048M,就改大一點(diǎn)
#!/bin/bash # ddif=/dev/zeroof=ubuntu-rootfs.imgbs=1Mcount=2048 sudomkfs.ext4ubuntu-rootfs.img rm-rrootfs mkdirrootfs sudomountubuntu-rootfs.imgrootfs/ sudocp-rfpubuntu-rootfs/*rootfs/ sudoumountrootfs/ e2fsck-p-fubuntu-rootfs.img resize2fs-Mubuntu-rootfs.img
執(zhí)行制作
?tools./mkrootfs.sh ?toolsls-al|grep*.img -rw-rw-r--1zhongyizhongyi1497706496Sep3021:32ubuntu-rootfs.img
燒寫(xiě)鏡像
sudoupgrade_tooldi-rootfsubuntu-rootfs.img
審核編輯:湯梓紅
-
文件系統(tǒng)
+關(guān)注
關(guān)注
0文章
284瀏覽量
19904 -
Ubuntu
+關(guān)注
關(guān)注
5文章
563瀏覽量
29702 -
Firefly
+關(guān)注
關(guān)注
2文章
538瀏覽量
7027
原文標(biāo)題:【RK3399】制作ubuntu20.04 roomfs
文章出處:【微信號(hào):嵌入式與Linux那些事,微信公眾號(hào):嵌入式與Linux那些事】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論