加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

米爾瑞米派Remi Pi Ubuntu系統(tǒng)移植指南

04/29 10:02
2209
閱讀需 32 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

1.概述

Linux系統(tǒng)平臺(tái)上有許多開源的系統(tǒng)構(gòu)建框架,這些框架方便了開發(fā)者進(jìn)行嵌入式系統(tǒng)的構(gòu)建和定制化開發(fā),目前比較常見的有Buildroot, Yocto, OpenEmbedded等等。

同時(shí)更多的傳統(tǒng)的桌面系統(tǒng)也加入到嵌入式環(huán)境體系中,如Ubuntu,debian等,為嵌入式提供更方便實(shí)用的系統(tǒng)。本文主要介紹基于ubuntu22.04 core和米爾核心板定制一個(gè)完整的嵌入式ubuntu22.04系統(tǒng)的完整流程,其中包括開發(fā)環(huán)境的準(zhǔn)備,ubuntu22.04系統(tǒng)的獲取與移植, LXDE輕量級(jí)桌面管理等。

本文檔并不包含Linux BSP系統(tǒng)相關(guān)基礎(chǔ)知識(shí)的介紹,將直接使用米爾發(fā)布的myir-image-full提供的的BSP。如需了解BSP文件的制作請(qǐng)查看《Remi Pi_Linux軟件開發(fā)指南》。

1.1. 軟件資源

Remi Pi使用的Ubuntu系統(tǒng)基于ubuntu-base-22.04-base-arm64.tar.gz版本制作(下載地址如下),在此版本基礎(chǔ)上添加了豐富的系統(tǒng)資源和其他軟件資源。

Ubuntu Base 22.04.2 LTS (Jammy Jellyfish)

表1-1.資源列表

注意:米爾提供的ubuntu系統(tǒng)的登錄名為:root 密碼為:123456

2. 開發(fā)環(huán)境準(zhǔn)備

基于ubuntu base系統(tǒng)在開發(fā)過程中所需的一些軟硬件環(huán)境,包括必要的開發(fā)主機(jī)環(huán)境,必備的軟件工具,代碼和資料的獲取等,具體的準(zhǔn)備工作下面將進(jìn)行詳細(xì)介紹。

2.1. 開發(fā)主機(jī)環(huán)境

本節(jié)將介紹如何搭建適用于瑞薩Remi Pi平臺(tái)的開發(fā)環(huán)境,該平臺(tái)使用的RZ/G系列處理器是多核異構(gòu)的處理器,RZ/G2L擁有兩個(gè)2個(gè)ARM Cortex A53。通過閱讀本章節(jié),您將了解相關(guān)硬件工具,軟件開發(fā)調(diào)試工具的安裝和使用。并能快速的搭建相關(guān)開發(fā)環(huán)境,為后面的開發(fā)和調(diào)試做準(zhǔn)備。

主機(jī)硬件

整個(gè)SDK包項(xiàng)目的構(gòu)建對(duì)開發(fā)主機(jī)的要求比較高,要求處理器具有雙核以上CPU,8GB以上 內(nèi)存,100GB硬盤或更高配置。可以是安裝Linux系統(tǒng)的PC或服務(wù)器,也可以是運(yùn)行Linux系統(tǒng)的虛擬機(jī),Windows系統(tǒng)下的WSL2等。

主機(jī)操作系統(tǒng)

一般選擇在安裝Fedora, openSUSE, Debian, Ubuntu, RHEL或者 CentOS等Linux發(fā)行版的本地主機(jī)上進(jìn)行,這里推薦的是Ubuntu22.04 64bit桌面版系統(tǒng),后續(xù)開發(fā)也是以此系統(tǒng)為例進(jìn)行介紹。

安裝必備軟件包

基礎(chǔ)軟件包請(qǐng)查看《Remi Pi_Linux軟件開發(fā)指南》進(jìn)行安裝,這里只需安裝一個(gè)軟件包即可。

PC@system1:~$ sudo apt-get update
PC@system1:~$ sudo apt-get install qemu-user-static

3. Ubuntu 22.04 文件系統(tǒng)移植

3.1. 簡介

ubuntu-base 是Ubuntu官方構(gòu)建的ubuntu最小文件系統(tǒng),包含debain軟件包管理器,基礎(chǔ)包大小通常只有幾十兆,其背后有整個(gè)ubuntu軟件源支持,ubuntu軟件一般穩(wěn)定性比較好,基于ubuntu-base按需安裝Linux軟件,深度可定制等,常用于嵌入式rootfs構(gòu)建。

嵌入式常見的幾種文件系統(tǒng)構(gòu)建方法:busybox、yocto、buildroot,但Ubuntu方便,強(qiáng)大的包管系統(tǒng),有強(qiáng)大的社區(qū)支持,可以直接apt-get install來安裝新軟件包。本文介紹了如何基于Ubuntu-base構(gòu)建完整的ubuntu 系統(tǒng)。ubuntu支持很多架構(gòu),arm、X86、powerpc、ppc等,本文主要基于arm為例,構(gòu)建一個(gè)較為完整的ubuntu系統(tǒng)。

3.2. 獲取源碼

我們提供兩種獲取源碼的方式,一種是直接從米爾光盤鏡像04-sources目錄中獲取壓縮包,另外一種是使用wget獲取位官方的上源碼進(jìn)行構(gòu)建,請(qǐng)用戶根據(jù)實(shí)際需要選擇其中一種進(jìn)行構(gòu)建。

3.2.1. 通過wget獲取源碼

具體操作方法如下:

PC@system1:~$ sudo wget https://cdimage.ubuntu.com/ubuntu-base/releases/22.04/release/ubuntu-base-22.04-base-arm64.tar.gz

創(chuàng)建rootfs目錄,然后將下載的ubuntu-base-22.04-base-arm64.tar.gz壓縮包解壓到rootfs目錄下:(用戶請(qǐng)根據(jù)自己實(shí)際路徑和目錄操作)

PC@system1:~$ mkdir rootfs
PC@system1:~$ tar -xf ubuntu-base-22.04.1-base-arm64.tar.gz -C rootfs/

解壓出的目錄內(nèi)容如下:

PC@system1:~$ tree -d -L 1 rootfs
ubuntu_rootfs
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── snap
├── srv
├── sys
├── tmp
├── usr
└── var

3.3. 準(zhǔn)備chroot環(huán)境

3.3.1. 安裝模擬器

PC@system1:~$ cp /usr/bin/qemu-aarch64-static ./rootfs/usr/bin/

(如果主機(jī)沒有安裝qemu-user-static工具包,可輸入以下命令安裝工具包)

PC@system1:~$ sudo apt install qemu-user-static

拷貝主機(jī) DNS 配置文件到 arm 架構(gòu) Ubuntu 文件系統(tǒng)內(nèi)(必須拷貝,否則可能會(huì)導(dǎo)致下面操作無法進(jìn)行)。

PC@system1:~$ cp /etc/resolv.conf ./rootfs/etc/resolv.conf

3.3.2. 制作掛載腳本

將下列腳本代碼拷貝到ch-mount.sh文件中,并改變權(quán)限(777)為可執(zhí)行。

PC@system1:~$ vi ch-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 mount -o bind /dev/pts ${2}dev/pts
sudo chroot ${2}
}
function umnt(){
echo "UNMOUNTING"
sudo umount ${2}proc
sudo umount ${2}sys
sudo umount ${2}dev/pts
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 bothparameters were missing"
echo ""
echo "1'st parameter can be one ofthese: -m(mount) OR -u(umount)"
echo "2'nd parameter is the full pathof rootfs directory(with trailing '/')"
echo ""
echo "For example: ch-mount -m/media/sdcard/"
echo ""
echo 1st parameter : ${1}
echo 2nd parameter : ${2}
fi

3.4. 安裝包文件

3.4.1. 掛載系統(tǒng)

首先使用ch-mount.sh將ubuntu文件系統(tǒng)掛載。

PC@system1:~$ ./ch-mount.sh -m ./rootfs/
MOUNTING
root@system1:/#
root@system1:/# ls
bin dev home media opt root sbin sys usr
boot etc lib mnt proc run srv tmp var

掛載成功即可配置ubuntu文件系統(tǒng)與安裝一些必要的軟件。

3.4.2. 基礎(chǔ)包安裝

可根據(jù)需要自行安裝下列包文件,推薦全部安裝。(請(qǐng)按照順序安裝,避免安裝時(shí)出錯(cuò))

root@system1:/# chmod 777 /tmp (避免update時(shí)失敗)
root@system1:/# apt update
root@system1:/# apt-get install language-pack-zh-hant language-pack-zh-hans
root@system1:/# apt install language-pack-en-base
root@system1:/# apt install dialog rsyslog
root@system1:/# apt install systemd avahi-daemon avahi-utils udhcpc ssh(必備安裝)
root@system1:/# apt install sudo
root@system1:/# apt install vim
root@system1:/# apt install net-tools
root@system1:/# apt install ethtool
root@system1:/# apt install ifupdown
root@system1:/# apt install iputils-ping
root@system1:/# apt install htop
root@system1:/# apt install lrzsz
root@system1:/# apt install gpiod
root@system1:/# apt install wpasupplicant
root@system1:/# apt install kmod
root@system1:/# apt install iw
root@system1:/# apt install usbutils
root@system1:/# apt install memtester
root@system1:/# apt install alsa-utils
root@system1:/# apt install ufw
root@system1:/# apt install psmisc

添加log,用戶調(diào)試ubuntu系統(tǒng)的調(diào)試

root@system1:/# touch /var/log/rsyslog
root@system1:/# chown syslog:adm /var/log/rsyslog
root@system1:/# chmod 666 /var/log/rsyslog
root@system1:/# systemctl unmask rsyslog
root@system1:/# systemctl enable rsyslog

安裝網(wǎng)絡(luò)和語言包支持

root@system1:/# apt-get install synaptic
root@system1:/# apt-get install rfkill
root@system1:/# apt-get install network-manager
root@system1:/# apt install -y --force-yes --no-install-recommends fonts-wqy-microhei
root@system1:/# apt install -y --force-yes --no-install-recommends ttf-wqy-zenhei

3.4.3. 桌面系統(tǒng)的安裝

LXDE桌面系統(tǒng)安裝

root@system1:/# apt-get install xinit
root@system1:/# apt-get install lxde

瀏覽器和音頻安裝

root@system1:/# sudo apt install epiphany-browser
root@system1:/# sudo apt install xine-ui

3.4.4. 創(chuàng)建用戶

設(shè)置root密碼: 123456

root@system1:/# passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

可刪除root用戶密碼登錄

root@system1:/# passwd -d root

一定要執(zhí)行下面的指令,不然會(huì)sudo報(bào)錯(cuò)sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

root@system1:/# chown root:root /usr/bin/sudo
root@system1:/# chmod 4755 /usr/bin/sudo

創(chuàng)建一個(gè)用戶名為:myir 密碼為:123456

root@system1:/# adduser myir
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_TIME = "zh_CN.UTF-8",
LC_IDENTIFICATION = "zh_CN.UTF-8",
LC_TELEPHONE = "zh_CN.UTF-8",
LC_NUMERIC = "zh_CN.UTF-8",
LC_ADDRESS = "zh_CN.UTF-8",
LC_NAME = "zh_CN.UTF-8",
LC_MONETARY = "zh_CN.UTF-8",
LC_PAPER = "zh_CN.UTF-8",
LC_MEASUREMENT = "zh_CN.UTF-8",
LANG = "zh_CN.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Adding user `myir' ...
Adding new group `myir' (1000) ...
Adding new user `myir' (1000) with group `myir' ...
Creating home directory `/home/myir' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for myir
Enter the new value, or press ENTER for the default
Full Name []: cy
Room Number []: 604
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y

設(shè)置權(quán)限

sudo vi /etc/sudoers
root ALL=(ALL:ALL) ALL
myir(根據(jù)自己添加的用戶來添加) ALL=(ALL:ALL) ALL

上面添加用戶的時(shí)候,中間出現(xiàn)的警告可使用下列命令:

root@system1:/# export LC_ALL=C

3.4.5. 其他配置

設(shè)置hosts和主機(jī)名稱,添加127.0.0.1 myir

root@system1:/# vi /etc/hosts

清空hostname文件內(nèi)容,添加myir(根據(jù)實(shí)際添加的用戶名來添加)

root@system1:/# vi /etc/hostname

修改passwd文件

root@system1:/# vi /etc/passwd
找到這一行:_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
修改為:_apt:x:0:65534::/nonexistent:/usr/sbin/nologin

創(chuàng)建鏈接文件(一定要執(zhí)行,不然執(zhí)行二進(jìn)制可執(zhí)行程序時(shí)會(huì)報(bào)錯(cuò))

root@system1:/# ln -s /lib /lib64

配置網(wǎng)卡接口,添加如下內(nèi)容

root@system1:/# vi /etc/network/interfaces
auto eth0
iface eth0 inet dhcp

3.4.6. 卸載系統(tǒng)

以上步驟操作完成后即可卸載系統(tǒng)。直接在系統(tǒng)中輸入exit退出系統(tǒng),并使用命令來卸載

root@system1:/# exit
exit
PC@system1:~$
PC@system1:~$ ./ch-mount.sh -u ubuntu-rootfs/
UNMOUNTING

至此ubuntu 文件系統(tǒng)已經(jīng)配置完成。

3.5. ubuntu系統(tǒng)打包

3.5.1. 制作ext4格式文件

根據(jù)以上步驟已經(jīng)制作好了ubuntu-rootfs文件系統(tǒng),此時(shí)要將它制作成.ext4格式的文件,用于刷寫到開發(fā)板中。

PC@system1:~$ dd if=/dev/zero of=ubuntu22.04.ext4 bs=1M count=3300

請(qǐng)用戶根據(jù)實(shí)際情況來決定大小,這里以3.3G大小舉例制作。

PC@system1:~$ mkfs.ext4 ubuntu22.04.ext4

創(chuàng)建一個(gè)臨時(shí)目錄temp,然后將ubuntu22.04.ext4文件掛載

PC@system1:~$ mkdir temp
PC@system1:~$ sudo mount ubuntu22.04.ext4 temp

將ubuntu-rootfs目錄中的內(nèi)容復(fù)制到掛載的文件系統(tǒng)中,然后卸載。

PC@system1:~$ sudo cp -avrf ubuntu-rootfs/* temp
PC@system1:~$ sudo umount temp

3.5.2. 制作SD啟動(dòng)鏡像

先將下載資源的03_Tools/myir tools目錄下的RemiPi_SDUpdate.tar.bz2解壓到虛擬機(jī)中(用戶請(qǐng)根據(jù)自己實(shí)際情況解壓)

PC@system1:~$ tar -xf RemiPi_SDUpdate.tar.bz2
PC@system1:~$ cd RemiPi_SDUpdate/renesas-sd
PC@system1:~/RemiPi_SDUpdate/renesas-sd$ ls
image README.md rzg2_bsp_scripts fat16 output rootfs

把打包好的ubuntu22.04文件系統(tǒng)替換到rootfs/home/root/g2l_images目錄

PC@system1:~/RemiPi_SDUpdate/renesas-sd/rootfs/home/root/g2l_images$ tree -L 1
.
├── DDR_1G
├── Image
├── Manifest
├── mys-rzg2l-sdcard.dtb
├── mys-rzg2l-wifi.dtb
└── ubuntu22.04.ext4
1 directory, 5 files

修改Manifest文件

PC@system1:~/RemiPi_SDUpdate/renesas-sd/rootfs/home/root/g2l_images$ cat Manifest
bl2file="bl2_bp-myir-remi-1g_pmic.bin"
fipfile="fip-myir-remi-1g_pmic.bin"
imagefile="Image"
dtbfile="*.dtb"
rootfsfile="ubuntu22.04.ext4"
ledname="162"

修改自己實(shí)際路徑的配置,這個(gè)請(qǐng)參考《RemiPi_Linux 軟件開發(fā)指南》4.3章節(jié),修改myir_config.ini配置文件,將里面的路徑修改成自己實(shí)際的路徑。

最后進(jìn)入到下面目錄,執(zhí)行制作鏡像的腳本即可。

PC@system1:~/RemiPi_SDUpdate/renesas-sd$ cd rzg2_bsp_scripts/image_creator/
PC@system1: ~/RemiPi_SDUpdate/renesas-sd/rzg2_bsp_scripts/image_creator$ ./create_image.sh myir_config.ini

燒錄步驟請(qǐng)參考《RemiPi_Linux 軟件開發(fā)指南》中4.2章節(jié)。

4. 認(rèn)識(shí)LXDE

4.1. LXDE介紹

LXDE是一個(gè)輕量級(jí)和快速的桌面環(huán)境。它被設(shè)計(jì)為用戶友好和占用資源少,同時(shí)保持資源使用率低。LXDE使用更少的內(nèi)存和CPU來盡可能地展現(xiàn)功能豐富的桌面環(huán)境。與其它的桌面環(huán)境不同,LXDE努力成為模塊化的桌面環(huán)境,所以每個(gè)組件可以獨(dú)立使用。這使得移植LXDE不同分布和平臺(tái)更容易。

LXDE包含多個(gè)核心組件,可用于桌面環(huán)境下來管理整個(gè)系統(tǒng)資源。主要組件如下:

LXPanel:這是LXDE的面板系統(tǒng),類似于GNOME的GNOME Panel或KDE的Kicker。它提供了快速訪問應(yīng)用程序、系統(tǒng)工具、文件夾和剪貼板的方式。

LXSession:這是LXDE的會(huì)話管理器,它負(fù)責(zé)啟動(dòng)和終止LXDE桌面環(huán)境。

LXDE-OpenBox: 這是一個(gè)窗口管理器,提供窗口布局和導(dǎo)航。LXDE使用OpenBox作為其默認(rèn)的窗口管理器。

PCManFM:這是一個(gè)輕量級(jí)的文件管理器,提供文件和目錄的瀏覽、復(fù)制、移動(dòng)、刪除等操作

除了這些核心組件外,LXDE還有其他一些輔助工具,如LXAppearance(用于更改主題和圖標(biāo))、LXTask(任務(wù)管理器)等。

4.2. 啟動(dòng)LXDE

開機(jī)啟動(dòng)后,可手動(dòng)輸入密碼123456登錄,或者在串口終端執(zhí)行(startx /usr/bin/lxsession -s LXDE &)命令進(jìn)行登錄,如圖4-1:

圖4-1:lxde登錄界面

登錄成功后,由于默認(rèn)背景是黑色的,可以點(diǎn)擊鼠標(biāo)右鍵后選擇Desktop Preferences->Appearance->Wallpaper(/usr/share/lxde/wallpapers/lxde_blue.jpg)來選擇背景圖片,如圖4-2:

圖4-2:lxde背景圖片修改

背景圖片修改成功,如圖4-3:

圖4-3:lxde背景圖片

5. 參考資料

Linux kernel 開源社區(qū)

https://www.kernel.org/

ubuntu

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

freedesktop

https://www.freedesktop.org/wiki/

米爾瑞米派 Remi Pi

瑞薩第一款MPU生態(tài)板卡,兼容樹莓派擴(kuò)展模塊

采用瑞薩RZ/G2L工業(yè)級(jí)處理器,便于企業(yè)客戶產(chǎn)品開發(fā);

Remi Pi兼容樹莓派所有配件,方便產(chǎn)品原型搭建和創(chuàng)新應(yīng)用;

更多的工業(yè)接口,兼顧開發(fā)、學(xué)習(xí)和實(shí)際應(yīng)用;

軟件系統(tǒng)豐富,支持Debian/Ubuntu/Linux等。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
ABS10-32.768KHZ-9-T 1 Abracon Corporation CRYSTAL 32.7680KHZ 9PF SMD

ECAD模型

下載ECAD模型
$0.85 查看
FOD420SD 1 onsemi Random Phase Snubberless Triac Driver, 1000-REEL
$2.69 查看
AT27C256R-70PU 1 Atmel Corporation OTP ROM, 32KX8, 70ns, CMOS, PDIP28, 0.600 INCH, GREEN, PLASTIC, MS-011AB, DIP-28

ECAD模型

下載ECAD模型
$2.54 查看
米爾科技

米爾科技

米爾電子,是一家專注于嵌入式處理器模組設(shè)計(jì)、研發(fā)、生產(chǎn)和銷售于一體的國家級(jí)高新技術(shù)企業(yè),也被評(píng)為專精特新企業(yè)。米爾電子深耕嵌入式領(lǐng)域10多年,致力于為企業(yè)級(jí)客戶提供基于ARM、FPGA、RISC-V和AI等各種架構(gòu),穩(wěn)定可靠的處理器模組,滿足客戶大批量產(chǎn)品應(yīng)用部署的需求,同時(shí)為客戶提供產(chǎn)品定制設(shè)計(jì)、行業(yè)應(yīng)用解決方案和OEM的一站式服務(wù)。

米爾電子,是一家專注于嵌入式處理器模組設(shè)計(jì)、研發(fā)、生產(chǎn)和銷售于一體的國家級(jí)高新技術(shù)企業(yè),也被評(píng)為專精特新企業(yè)。米爾電子深耕嵌入式領(lǐng)域10多年,致力于為企業(yè)級(jí)客戶提供基于ARM、FPGA、RISC-V和AI等各種架構(gòu),穩(wěn)定可靠的處理器模組,滿足客戶大批量產(chǎn)品應(yīng)用部署的需求,同時(shí)為客戶提供產(chǎn)品定制設(shè)計(jì)、行業(yè)應(yīng)用解決方案和OEM的一站式服務(wù)。 收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜