[Ubuntu] 移植Ubuntu16.04根文件系統到嵌入式平台


 CPU:RK3288

 

1、通過 ubuntu cdimage 下載 ubuntu16.04 內核,以下兩種方式都可以

在 windows 系統網頁中下載

http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release

版本:ubuntu-base-16.04-core-armhf.tar.gz

在 linux 系統中通過指令下載

$ wget http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04-core-armhf.tar.gz

 

2、解壓

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

 

3、在電腦的 ubuntu 系統中安裝模擬器並拷貝到根文件系統

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

 

4、拷貝本地dns文件到根文件系統

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

 

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

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

將屏蔽的源全部打開

 

6、下載掛載腳本,解壓並賦可執行權限,如果已經具有可執行權限,就無需在賦權限

鏈接:https://pan.baidu.com/s/1R3BpXwOdDd3ws6qCP8nz8w
提取碼:ct1i

$ sudo chmod +x ch-mount.sh

 

7、掛載根文件系統

$ ./ch-mount.sh -m linux-rootfs

 

8、更新根文件系統

# apt-get update
# apt-get upgrade

更新時可能出現下面的問題:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US:",
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

解決辦法參考:https://www.cnblogs.com/lialong1st/p/11350951.html

Current default time zone: 'Etc/UTC'
Local time is now:      Wed Aug 14 02:57:01 UTC 2019.
Universal Time is now:  Wed Aug 14 02:57:01 UTC 2019.
Run 'dpkg-reconfigure tzdata' if you wish to change it.

這個其實不是錯誤,如果需要,可以根據提示指令 dpkg-reconfigure tzdata 修改時區,根據每一步提示選擇即可。

 

9、安裝自己需要的工具包,安裝過程可能報錯,參考:https://www.cnblogs.com/lialong1st/p/11352979.html

# apt-get install vim git openssh-server sudo net-tools iputils-ping wireless-tools udev
# apt-get install htop rsyslog network-manager ifupdown ethtool
# apt-get install florence  // 虛擬鍵盤,無觸摸屏的建議安裝

安裝登錄界面、顯示界面,這一步特別耗時間

# apt-get install ubuntu-session xubuntu-desktop

 

10、選擇啟動界面

# update-alternatives --config x-session-manager

 

11、配置默認登錄界面

# dpkg-reconfigure lightdm

 

12、配置網絡

# 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

 

13、修改文件系統主機名稱

# vim /ect/hostname

 

14、添加一個用戶 aaron

# useradd -s '/bin/bash' -m -G adm,sudo aaron

 

15、給用戶 aaron 設置密碼

# passwd aaron

 

16、給 root 設置密碼

# passwd root

 

17、退出腳本

# exit

 

18、退出掛載根文件系統

$ ./ch-mount.sh -u linux-rootfs

 

19、使用 dd 指令創建鏡像文件

$ dd if=/dev/zero of=linux-rootfs.img bs=1M count=4096

 

20、格式化鏡像文件,並加入卷標 linuxroot

$ sudo mkfs.ext4 -F -L linuxroot linux-rootfs.img

 

21、掛載鏡像文件,並拷貝根文件系統到鏡像文件

$ mkdir mnt
$ sudo mount linux-rootfs.img mnt/
$ sudo cp -rfp linux-rootfs/* mnt/

 

22、退出掛載文件,

$ sudo umount mnt

 

23、檢查鏡像文件

$ sudo e2fsck -p -f linux-rootfs.img

 

24、瘦身,減小鏡像文件大小

$ sudo resize2fs -M linux-rootfs.img
$ sudo du -sh linux-rootfs.img

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM