ARM架構安裝ubuntu系統

澆築菜鳥發表於2021-09-16

一、簡介

arm開發板製作系統是比較麻煩,不論使用busybox還是yocto製作根檔案系統對新手都比太友好,除非深度定製,否則使用ubuntu系統既可以滿足,把更多的精力放在應用開發上。

二、準備材料

我使用的晶片是RK3288,小夥伴可以根據自己的情況選擇開發版。
開發環境:VMware
作業系統:ubuntu
開發版:RK3288

三、ubuntu的下載與配置

  1. 下載ubuntu系統
    ubuntu官網根檔案系統下載地址 http://cdimage.ubuntu.com ,根據需要下載自己所需的版本,我使用的是ubuntu20.04.2。開啟連結後選擇ubuntu-base → releases → 版本號 → release → ubuntu-base-20.04.1-base-armhf.tar.gz 下載完成後將ubuntu-base-20.04.1-base-armhf.tar.gz拷貝到ubuntu下,並解壓。
mkdir ubuntu20.04.2
sudo tar zxf ubuntu-base-20.04.1-base-armhf.tar.gz -C ubuntu20.04.2
  1. 安裝qemu-user-static工具
    安裝完成後拷貝“/usr/bin/qemu-arm-static”到剛剛解壓檔案的“/usr/bin”路徑下。
sudo apt-get install qemu-user-static
sudo cp /usr/bin/qemu-arm-static ubuntu20.04.2/usr/bin/
  1. 網路配置
    我在上一篇文章中uboot通過NFS掛載ubuntu根檔案系統,介紹在ubuntu20.04.2/etc/apt/sources.list檔案中更改ubuntu的軟體源,不知道為啥這次配置後反而下載不了,所以這裡我就沒有配置,各位小夥伴視情況而定。為了製作成功的根檔案系統能夠聯網,可以直接拷貝本機的dns配置檔案到根檔案系統的相應位置。
sudo cp /etc/resolv.conf ubuntu20.04.2/etc/resolv.conf
  1. 使用chroot工具掛載檔案系統
    掛載成功後會進入到我們下來的系統中,注意裡面的操作都是對我們掛載的系統進行操作的,無法在對開發系統進行操作,除非使用exit命令退出。
sudo chroot ubuntu20.04.2

  1. 安裝軟體
    首先更新源,更新完成,安裝必要軟體,如有需要根據自己需求安裝所需的軟體即可,以下是我使用時需要的軟體。
apt-get update
apt-get upgrade
# 需要安裝的軟體
apt-get install sudo
apt-get install openssh-server
apt-get install vim
apt-get install net-tools
apt-get install udhcpc
apt-get install iputils-ping
  1. 使用者配置
    設定root密碼
passwd root

建立使用者

adduser rk3288

設定主機名稱和本機IP

echo "rk3288" > /etc/hostname
echo "127.0.0.1 localhost" >> /etc/hosts
echo "127.0.1.1 rk3288" >> /etc/hosts
  1. 設定串列埠和網路dhcp
    因為沒有安裝桌面,所以這裡的配置要和核心中登入的串列埠的裝置對應,否則串列埠會卡死,無法登陸。
sudo vim /lib/systemd/system/serial-getty\@.service

修改BindsTo選項將‘dev-%i.device’改成‘dev-%i’,修改ExecStart選項將‘-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM’改成‘-/sbin/agetty -a root --keep-baud 115200,38400,9600 %I $TERM’

  1. 退出掛載
exit

四、打包跟檔案系統

不同的開發板需要的檔案格式不一樣,有的只需要將根檔案系統壓縮即可,是情況而定。RK3288需要的是.img格式,所以需要將根檔案系統打包成.img檔案,具體的操作方法我就不在介紹了,可以瞭解我之前文章linux下製作img檔案

五、燒寫檔案

  1. 開啟瑞芯的燒寫軟體,檔案結構如圖所示

  2. 拷貝檔案系統到
    \rockdev\Image路徑下

  3. 開啟AndroidTool_Release/AndroidTool.exe燒寫工具,並將rootfs替換成要燒寫的軟體

  4. 通過ota連線裝置,進入燒寫模式,這裡燒寫的是linux系統,所以和andriod系統的燒寫有所不同,具體如下


  5. 完成燒寫

五、網路測試

  1. 通過sudo udhcpc自動獲取網路
ifconfig

sudo udhcpc

  1. 開啟ssh登入
    修改/etc/ssh/sshd_config檔案,
vim /etc/ssh/sshd_config

開啟PermitRootLogin和PasswordAuthentication。


重啟ssh服務

systemctl restart ssh

完成後就可以開啟ssh服務了

六、磁碟空間

  • df(英文全稱:disk full):列出檔案系統的整體磁碟使用量
  • du(英文全稱:disk used):檢查磁碟空間使用量
  • fdisk:用於磁碟分割槽
  1. 檢視檔案系統的整體磁碟使用量
df -h

  1. 檢視磁碟分割槽
fdisk -l

  1. 用於列出所有可用塊裝置的資訊
sudo lsblk


從上面資訊可以看出來我整個空間有14G左右,但是檔案系統使用的空間只有4G左右,還有10G的空間未使用,所以現在需要將系統空間重新分配一下。

  1. 重新分配空間
    從下圖中可以明顯看出來我整個空間有14G左右,而空間/dev/mmcblk2p5掛載的是根檔案系統,並且空間有14.3G,但是通過df -h檢視時只使用了4G左右,還有一部分空間未使用,所以只需要使用命令resize2fs將/dev/mmcblk2p5空間重新分配一下即可。

    重新分配根檔案空間
sudo resize2fs /dev/mmcblk2p5


到此在ARM架構中安裝ubuntu系統已經完成了,有寫得不好的地方望小夥伴們指出,我將努力學習並改進。

參考文獻

RK3288的ubuntu根檔案系統製作與配置:https://www.it610.com/article/1291557055815032832.htm
Linux平臺檢視、格式化、(開機自動)掛載未使用的磁碟空間https:<blog.csdn.net/rainforest_c/article/details/104986078>
resize2fs命令 – 調整檔案系統大小:https://www.linuxcool.com/resize2fs
Linux 磁碟管理:https://www.runoob.com/linux/linux-filesystem.html

相關文章