Linux系統(tǒng)平臺上有許多開源的系統(tǒng)構(gòu)建框架,這些框架方便了開發(fā)者進(jìn)行嵌入式系統(tǒng)的構(gòu)建和定制化開發(fā),目前比較常見的有Buildroot, Yocto, OpenEmbedded等等。 本文檔并不包含Linux BSP系統(tǒng)相關(guān)基礎(chǔ)知識的介紹,將直接使用米爾發(fā)布的myir-image-full提供的的BSP。如需了解BSP文件的制作請查看《Remi Pi_Linux軟件開發(fā)指南》。 Remi Pi使用的Ubuntu系統(tǒng)基于ubuntu-base-22.04-base-arm64.tar.gz版本制作(下載地址如下),在此版本基礎(chǔ)上添加了豐富的系統(tǒng)資源和其他軟件資源。 注意:米爾提供的ubuntu系統(tǒng)的登錄名為:root 密碼為:123456
基于ubuntu base系統(tǒng)在開發(fā)過程中所需的一些軟硬件環(huán)境,包括必要的開發(fā)主機環(huán)境,必備的軟件工具,代碼和資料的獲取等,具體的準(zhǔn)備工作下面將進(jìn)行詳細(xì)介紹。 本節(jié)將介紹如何搭建適用于瑞薩Remi Pi平臺的開發(fā)環(huán)境,該平臺使用的RZ/G系列處理器是多核異構(gòu)的處理器,RZ/G2L擁有兩個2個ARM Cortex A53。通過閱讀本章節(jié),您將了解相關(guān)硬件工具,軟件開發(fā)調(diào)試工具的安裝和使用。并能快速的搭建相關(guān)開發(fā)環(huán)境,為后面的開發(fā)和調(diào)試做準(zhǔn)備。 一般選擇在安裝Fedora, openSUSE, Debian, Ubuntu, RHEL或者 CentOS等Linux發(fā)行版的本地主機上進(jìn)行,這里推薦的是Ubuntu22.04 64bit桌面版系統(tǒng),后續(xù)開發(fā)也是以此系統(tǒng)為例進(jìn)行介紹。 3. Ubuntu 22.04 文件系統(tǒng)移植 ubuntu-base 是Ubuntu官方構(gòu)建的ubuntu最小文件系統(tǒng),包含debain軟件包管理器,基礎(chǔ)包大小通常只有幾十兆,其背后有整個ubuntu軟件源支持,ubuntu軟件一般穩(wěn)定性比較好,基于ubuntu-base按需安裝Linux軟件,深度可定制等,常用于嵌入式rootfs構(gòu)建。 3.2. 獲取源碼 3.2.1. 通過wget獲取源碼
3.3. 準(zhǔn)備chroot環(huán)境 (如果主機沒有安裝qemu-user-static工具包,可輸入以下命令安裝工具包) - PC@system1:~$ sudo apt install qemu-user-static
復(fù)制代碼
3.3.2. 制作掛載腳本 3.4. 安裝包文件 首先使用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
復(fù)制代碼
3.4.2. 基礎(chǔ)包安裝 添加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
復(fù)制代碼
3.4.3. 桌面系統(tǒng)的安裝 瀏覽器和音頻安裝 - root@system1:/# sudo apt install epiphany-browser
- root@system1:/# sudo apt install xine-ui
復(fù)制代碼
設(shè)置root密碼: 123456 - root@system1:/# passwd root
- Enter new UNIX password:
- Retype new UNIX password:
- passwd: password updated successfully
復(fù)制代碼
一定要執(zhí)行下面的指令,不然會sudo報錯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
復(fù)制代碼
創(chuàng)建一個用戶名為: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
復(fù)制代碼
設(shè)置權(quán)限 - sudo vi /etc/sudoers
- root ALL=(ALL:ALL) ALL
- myir(根據(jù)自己添加的用戶來添加) ALL=(ALL:ALL) ALL
復(fù)制代碼
- root@system1:/# export LC_ALL=C
復(fù)制代碼
設(shè)置hosts和主機名稱,添加127.0.0.1 myir - root@system1:/# vi /etc/hosts
復(fù)制代碼
修改passwd文件 - root@system1:/# vi /etc/passwd
- 找到這一行:_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
- 修改為:_apt:x:0:65534::/nonexistent:/usr/sbin/nologin
復(fù)制代碼
配置網(wǎng)卡接口,添加如下內(nèi)容 - root@system1:/# vi /etc/network/interfaces
- auto eth0
- iface eth0 inet dhcp
復(fù)制代碼
以上步驟操作完成后即可卸載系統(tǒng)。直接在系統(tǒng)中輸入exit退出系統(tǒng),并使用命令來卸載 - root@system1:/# exit
- exit
- PC@system1:~$
- PC@system1:~$ ./ch-mount.sh -u ubuntu-rootfs/
- UNMOUNTING
復(fù)制代碼
3.5.1. 制作ext4格式文件 請用戶根據(jù)實際情況來決定大小,這里以3.3G大小舉例制作。 - PC@system1:~$ mkfs.ext4 ubuntu22.04.ext4
復(fù)制代碼
將ubuntu-rootfs目錄中的內(nèi)容復(fù)制到掛載的文件系統(tǒng)中,然后卸載。 - PC@system1:~$ sudo cp -avrf ubuntu-rootfs/* temp
- PC@system1:~$ sudo umount temp
復(fù)制代碼
先將下載資源的03_Tools/myir tools目錄下的RemiPi_SDUpdate.tar.bz2解壓到虛擬機中(用戶請根據(jù)自己實際情況解壓) - 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
復(fù)制代碼
修改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"
復(fù)制代碼
最后進(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
復(fù)制代碼
4. 認(rèn)識LXDE LXDE是一個輕量級和快速的桌面環(huán)境。它被設(shè)計為用戶友好和占用資源少,同時保持資源使用率低。LXDE使用更少的內(nèi)存和CPU來盡可能地展現(xiàn)功能豐富的桌面環(huán)境。與其它的桌面環(huán)境不同,LXDE努力成為模塊化的桌面環(huán)境,所以每個組件可以獨立使用。這使得移植LXDE不同分布和平臺更容易。 除了這些核心組件外,LXDE還有其他一些輔助工具,如LXAppearance(用于更改主題和圖標(biāo))、LXTask(任務(wù)管理器)等。 4.2. 啟動LXDE 登錄成功后,由于默認(rèn)背景是黑色的,可以點擊鼠標(biāo)右鍵后選擇Desktop Preferences->Appearance->Wallpaper(/usr/share/lxde/wallpapers/lxde_blue.jpg)來選擇背景圖片,如圖4-2: 圖4-2:lxde背景圖片修改 圖4-3:lxde背景圖片
|