rk3288 ubuntu根文件系統(tǒng)制作

移植ubuntu18.04.4根文件系統(tǒng)到嵌入式平臺(tái)

1、通過 ubuntu cdimage 下載 ubuntu18.04.4內(nèi)核

在 windows 系統(tǒng)網(wǎng)頁中下載
版本:ubuntu-base-18.04.4-base-armhf.tar.gz

2、解壓

$ mkdir linux-rootfs
$ sudo tar -xpf ubuntu-base-18.04.4-base-armhf.tar.gz -C linux-rootfs

3、在電腦的 ubuntu 系統(tǒng)中安裝模擬器并拷貝到根文件系統(tǒng)

$ sudo apt-get install qemu-user-static
$ sudo cp /usr/bin/qemu-arm-static linux-rootfs/usr/bin/

4、拷貝本地dns文件到根文件系統(tǒng)

$ sudo cp -b /etc/resolv.conf linux-rootfs/etc/resolv.conf

5、打開根文件系統(tǒng)中的 linux-rootfs/etc/apt/sources.list 修改安裝包源

$ sudo vim linux-rootfs/etc/apt/sources.list

將屏蔽的源全部打開

6、掛載腳本mount.sh

#!/bin/bash
function mnt() {
echo “MOUNTING”
sudo mount -t proc /proc ${2}/proc
sudo mount -t sysfs /sys ${2}/sys
sudo mount -o bind /dev ${2}/dev
sudo chroot ${2}
}
function umnt() {
echo “UNMOUNTING”
sudo umount ${2}/proc
sudo umount ${2}/sys
sudo umount ${2}/dev
}
if [ “$1” == “-m” ] && [ -n “$2” ] ;
then
mnt $1 $2
elif [ “$1” == “-u” ] && [ -n “$2” ];
then
umnt $1 $2
else
echo “”
echo “Either 1’st, 2’nd or both parameters were missing”
echo “”
echo “1’st parameter can be one of these: -m(mount) OR -u(umount)”
echo “2’nd parameter is the full path of rootfs directory(with trailing ‘/’)”
echo “”
echo “For example: ch-mount -m /media/sdcard/”
echo “”
echo 1st parameter : ${1}
echo 2nd parameter : ${2}
fi

掛載根文件系統(tǒng) ./mount.sh -m linux-rootfs

7、更新根文件系統(tǒng)

#apt-get update
#apt-get upgrade

8、安裝自己需要的工具包

#apt-get install vim git openssh-server sudo net-tools iputils-ping wireless-tools udev htop rsyslog network-manager ifupdown ethtool florence

安裝登錄界面、顯示界面
XUBUNTU

#apt-get install ubuntu-session xubuntu-desktop
#update-alternatives --config x-session-manager

選擇 lightdm
UBUNTU

#apt-get install ubuntu-session ubuntu-desktop

自動(dòng)選擇gdm3

上述安裝可能報(bào)錯(cuò):
Errors were encountered while processing:
blueman
E: Sub-process /usr/bin/dpkg returned an error code (1)

解決方法:

#cd /var/lib/dpkg/
/var/lib/dpkg# mv info/ info_old
/var/lib/dpkg# mkdir info
/var/lib/dpkg# apt-get update
/var/lib/dpkg# apt-get -f install
/var/lib/dpkg# mv info/* info_old/
/var/lib/dpkg# rm -rf info/
/var/lib/dpkg# mv info_old/ info

9、配置網(wǎng)絡(luò)

#echo auto eth0 > etc/network/interfaces.d/eth0
#echo iface eth0 inet dhcp >> etc/network/interfaces.d/eth0
#echo auto wlan0 > etc/network/interfaces.d/wlan0
#echo allow-hotplug wlan0 > etc/network/interfaces.d/wlan0
#echo iface wlan0 inet dhcp >> etc/network/interfaces.d/wlan0

10、修改系統(tǒng)主機(jī)名稱

#vim /ect/hostname

添加用戶,設(shè)置密碼

useradd -s ‘/bin/bash’ -m -G adm,sudo admin
passwd admin
passwd root

11、退出掛載腳本

exit

./mount.sh -u linux-rootfs

12、制作鏡像文件

#!/bin/bash -e

TARGET_ROOTFS_DIR=./binary
MOUNTPOINT=./rootfs
ROOTFSIMAGE=linaro-rootfs.img
OUT=./out

echo Making rootfs!

if [ -e ${ROOTFSIMAGE} ]; then
rm ${ROOTFSIMAGE}
fi
if [ -e ${MOUNTPOINT} ]; then
rm -r ${MOUNTPOINT}
fi

#Create directories
mkdir ${MOUNTPOINT}
dd if=/dev/zero of=${ROOTFSIMAGE} bs=1M count=0 seek=6000

finish() {
sudo umount ${MOUNTPOINT} || true
echo -e "\e[31m MAKE ROOTFS FAILED.\e[0m"
exit -1
}

echo Format rootfs to ext4
mkfs.ext4 ${ROOTFSIMAGE}

echo Mount rootfs to ${MOUNTPOINT}
sudo mount ${ROOTFSIMAGE} ${MOUNTPOINT}
trap finish ERR

echo Copy rootfs to ${MOUNTPOINT}
sudo cp -rfp ${TARGET_ROOTFS_DIR}/* ${MOUNTPOINT}

echo Umount rootfs
sudo umount ${MOUNTPOINT}

echo Rootfs Image: ${ROOTFSIMAGE}

e2fsck -p -f ${ROOTFSIMAGE}
resize2fs -M ${ROOTFSIMAGE}

# [ ! -d ${OUT} ] && mkdir ${OUT}
# cp $ROOTFSIMAGE ${OUT}

13,燒錄鏡像,開機(jī)發(fā)現(xiàn)的的問題
終端無法打開:

apt-get remove gnome-terminal
apt-get install xterminal

安裝標(biāo)準(zhǔn)ubuntu 用的 gmd3 HDMI登陸界面無法顯示
vim /etc/gdm3/custom.conf
取消注釋 WaylandEnable = false

#######后續(xù)問題,繼續(xù)完善########

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容