泓泰

米尔瑞米派Remi Pi Ubuntu系统移植指南

admin
米尔瑞米派Remi Pi Ubuntu系统移植指南-第1张-游戏相关-泓泰

前言:

现时【shí】兄弟们对“我的【de】世界【jiè】162mod制【zhì】作器”大约【yuē】比较【jiào】重视【shì】,看官们都想要分析一些“我的世【shì】界162mod制作器”的【de】相关文章【zhāng】。那么小编也在网络上汇集【jí】了一些【xiē】对于“我的世界162mod制作器””的相关文章【zhāng】,希望【wàng】姐妹们【men】能喜欢,同学【xué】们一起来学习【xí】一下吧【ba】!

1.概述

Linux系统平台上【shàng】有许多开源的【de】系统构建【jiàn】框架【jià】,这【zhè】些【xiē】框架方便了开发者进行嵌入式系统的【de】构建和定【dìng】制【zhì】化开发,目前比【bǐ】较常见的有Buildroot, Yocto, OpenEmbedded等等。

同时更多的传统的桌【zhuō】面系统也加【jiā】入【rù】到嵌入式环境【jìng】体系中【zhōng】,如Ubuntu,debian等【děng】,为嵌入式【shì】提【tí】供更【gèng】方【fāng】便实【shí】用的系统。本文主要介绍【shào】基于ubuntu22.04 core和米尔核心板定制一个完整【zhěng】的嵌入式【shì】ubuntu22.04系统的完【wán】整流程,其中【zhōng】包括开发环境【jìng】的准备,ubuntu22.04系统的获取与移植, LXDE轻量【liàng】级桌面管理等。

本【běn】文档【dàng】并不【bú】包【bāo】含Linux BSP系【xì】统相【xiàng】关基础知识的介绍,将直接使用米尔发【fā】布的myir-image-full提供的的BSP。如需了解【jiě】BSP文【wén】件的制作【zuò】请查看《Remi Pi_Linux软件开发指南》

1.1. 软件资源

Remi Pi使用【yòng】的Ubuntu系统基于ubuntu-base-22.04-base-arm64.tar.gz版本制作(下载地址【zhǐ】如下),在此版本基础【chǔ】上添【tiān】加了丰富的系统资源和其【qí】他软件资【zī】源【yuán】。

Ubuntu Base 22.04.2 LTS (Jammy Jellyfish)

2. 开发环境准备

基于ubuntu base系统在【zài】开发过程中所需的一些软【ruǎn】硬件环境,包括必要的开发主机环境,必【bì】备的软件工具,代【dài】码【mǎ】和资料【liào】的【de】获取等【děng】,具体【tǐ】的准备工【gōng】作下面将进行详细介【jiè】绍。

2.1. 开发主机环境

本节将介绍如何搭建适【shì】用【yòng】于【yú】瑞【ruì】萨Remi Pi平【píng】台的开发环境,该平台使用【yòng】的【de】RZ/G系列处理器是多核异构的处【chù】理器,RZ/G2L拥有两个2个ARM Cortex A53。通过阅读本章【zhāng】节,您将了解相关硬件工具,软【ruǎn】件开发调【diào】试工具【jù】的安装【zhuāng】和使【shǐ】用【yòng】。并能快速的搭建相关开【kāi】发环境【jìng】,为后【hòu】面的开【kāi】发和【hé】调试做准备。

主机硬件

整个【gè】SDK包项目【mù】的构建对开【kāi】发主机【jī】的【de】要求【qiú】比较高,要【yào】求处【chù】理【lǐ】器具有【yǒu】双核以上CPU,8GB以上 内存,100GB硬盘或更高配置。可以是安装Linux系统【tǒng】的PC或服务器,也可以是运行Linux系统的【de】虚拟【nǐ】机,Windows系统下的【de】WSL2等。

主机操作系统

一般选择在安装Fedora, openSUSE, Debian, Ubuntu, RHEL或者 CentOS等Linux发行版【bǎn】的本地【dì】主机上进行【háng】,这里推荐【jiàn】的是【shì】Ubuntu22.04 64bit桌面版系统,后续【xù】开发也【yě】是以此系统【tǒng】为例进行介【jiè】绍。

安装必备软件包

基础软件包请查看《Remi Pi_Linux软件开发指南》进行安装,这里只需安装一个软件包即可。

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


3. Ubuntu 22.04 文件系统移植

3.1. 简介

ubuntu-base 是【shì】Ubuntu官方构建的ubuntu最【zuì】小文件系统,包含【hán】debain软件包管理器,基【jī】础包大【dà】小【xiǎo】通常【cháng】只有几十【shí】兆,其背后有整个【gè】ubuntu软件源【yuán】支持,ubuntu软件一般【bān】稳定性比较好,基【jī】于ubuntu-base按需【xū】安装Linux软件,深度可定制等,常用于嵌入【rù】式rootfs构【gòu】建。

嵌入【rù】式常见的几【jǐ】种【zhǒng】文【wén】件【jiàn】系统构建方法【fǎ】:busybox、yocto、buildroot,但Ubuntu方便,强大【dà】的【de】包管系统,有强【qiáng】大的【de】社【shè】区【qū】支持【chí】,可以直接apt-get install来安装新软【ruǎn】件包【bāo】。本文介绍了如何基于Ubuntu-base构建完整的ubuntu 系统。ubuntu支持很多架构【gòu】,arm、X86、powerpc、ppc等,本文主要基于arm为例,构建一个较为完整的ubuntu系【xì】统。

3.2. 获取源码

我们提供两【liǎng】种获取【qǔ】源码的方式,一种是【shì】直接从米尔【ěr】光盘镜像04-sources目【mù】录中获取压缩【suō】包【bāo】,另外一【yī】种是使用wget获取位【wèi】官【guān】方的上源码进【jìn】行构建,请【qǐng】用户根据实际需要选择其中一种进【jìn】行【háng】构建。

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



创建【jiàn】rootfs目录【lù】,然【rán】后将下载的ubuntu-base-22.04-base-arm64.tar.gz压缩包解压【yā】到rootfs目录下:(用户请【qǐng】根据自己实际【jì】路径和目录操作)

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


解压出的目录内容如下:

PC@system1:~$ tree -d -L 1 rootfsubuntu_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. 准备chroot环境

3.3.1. 安装模拟器

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


(如果主机没有安装qemu-user-static工具【jù】包,可输入【rù】以下命【mìng】令安装工【gōng】具包)

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


拷贝【bèi】主【zhǔ】机 DNS 配置文【wén】件到 arm 架构 Ubuntu 文件系统内【nèi】(必【bì】须拷贝,否则【zé】可能会导致下面操【cāo】作无法进行)。

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


3.3.2. 制作挂载脚本

将下列脚本代码拷贝到ch-mount.sh文件中,并改变权限(777)为可执行。

PC@system1:~$  vi ch-mount.sh#!/bin/bashfunction mnt() {echo "MOUNTING"sudo mount -t proc /proc ${2}procsudo mount -t sysfs /sys ${2}syssudo mount -o bind /dev ${2}devsudo mount -o bind /dev/pts ${2}dev/pts        sudo chroot ${2}}function umnt(){echo "UNMOUNTING"sudo umount ${2}procsudo umount ${2}syssudo umount ${2}dev/ptssudo umount ${2}dev}if [ "$1" == "-m" ] && [ -n "$2" ] ;thenmnt $1 $2elif [ "$1" == "-u" ] && [ -n "$2" ];thenumnt $1 $2elseecho ""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. 挂载系统

首先使用ch-mount.sh将ubuntu文件系统挂载。

PC@system1:~$ ./ch-mount.sh -m ./rootfs/MOUNTINGroot@system1:/#root@system1:/# lsbin dev  home  media  opt   root  sbin  sys  usrboot etc  lib   mnt    proc  run   srv   tmp  var


挂载成功即可配置ubuntu文件系统与安装一些必要的软件。

3.4.2. 基础包安装

可根据需要【yào】自【zì】行安装下列包文【wén】件【jiàn】,推荐全部安装【zhuāng】。(请按【àn】照顺序安【ān】装【zhuāng】,避免安装时出错)

root@system1:/# chmod 777 /tmp         (避免update时失败)root@system1:/# apt updateroot@system1:/# apt-get install language-pack-zh-hant language-pack-zh-hansroot@system1:/# apt install language-pack-en-baseroot@system1:/# apt install dialog rsyslogroot@system1:/# apt install systemd avahi-daemon avahi-utils udhcpc ssh(必【bì】备【bèi】安装)root@system1:/# apt install sudoroot@system1:/# apt install vimroot@system1:/# apt install net-toolsroot@system1:/# apt install ethtoolroot@system1:/# apt install ifupdownroot@system1:/# apt install iputils-pingroot@system1:/# apt install htoproot@system1:/# apt install lrzszroot@system1:/# apt install gpiodroot@system1:/# apt install wpasupplicantroot@system1:/# apt install kmodroot@system1:/# apt install iwroot@system1:/# apt install usbutilsroot@system1:/# apt install memtesterroot@system1:/# apt install alsa-utilsroot@system1:/# apt install ufwroot@system1:/# apt install psmisc


添加log,用户调试ubuntu系统的调试

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


安装网络和语言包支持

root@system1:/# apt-get install synapticroot@system1:/# apt-get install rfkillroot@system1:/# apt-get install network-managerroot@system1:/# apt install -y --force-yes --no-install-recommends fonts-wqy-microheiroot@system1:/# apt install -y --force-yes --no-install-recommends ttf-wqy-zenhei


3.4.3. 桌面系统的安装

LXDE桌面系统安装

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


浏览器和音频安装

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


3.4.4. 创建用户

设置root密码: 123456

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


可删除root用户密码登录

root@system1:/# passwd -d root


一定【dìng】要执【zhí】行下面的指【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/sudoroot@system1:/# chmod 4755 /usr/bin/sudo


创建一个用户名为:myir 密码为:123456

root@system1:/# adduser myirperl: 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 successfullyChanging the user information for myirEnter the new value, or press ENTER for the defaultFull Name []: cy  Room Number []: 604Work Phone []:Home Phone []:Other []:Is the information correct? [Y/n] y


设置权限

sudo vi /etc/sudoersroot ALL=(ALL:ALL) ALLmyir(根据自己添加的用【yòng】户来【lái】添加) ALL=(ALL:ALL) ALL


上面添加用户的时候,中间出现的警告可使用下列命令:

root@system1:/# export LC_ALL=C


3.4.5. 其他配置

设置hosts和主机名称,添加127.0.0.1 myir

root@system1:/# vi /etc/hosts


清【qīng】空hostname文件内容,添【tiān】加myir(根据实际【jì】添加的用户名来添【tiān】加【jiā】)

root@system1:/# vi /etc/hostname


修改passwd文件

root@system1:/# vi /etc/passwd找【zhǎo】到这一【yī】行【háng】:_apt:x:100:65534::/nonexistent:/usr/sbin/nologin修改为:_apt:x:0:65534::/nonexistent:/usr/sbin/nologin


创建链接文件(一定要执行,不然执行二进制可执行程序时会报错)

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


配置网卡接口,添加如下内容

root@system1:/# vi /etc/network/interfacesauto eth0iface eth0 inet dhcp


3.4.6. 卸载系统

以【yǐ】上步【bù】骤操作完成【chéng】后【hòu】即可卸载系统。直接在系统【tǒng】中输【shū】入exit退出【chū】系统,并使用命令来卸载

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


至此ubuntu 文件系统已经配置完成。

3.5. ubuntu系统打包

3.5.1. 制作ext4格式文件

根据以上步骤已经【jīng】制作好了【le】ubuntu-rootfs文件系【xì】统,此时要将它制作成【chéng】.ext4格【gé】式的文件,用于刷写【xiě】到开发板中。

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


请用户根据实际情况来决定大小,这里以3.3G大小举例制作。

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


创建一【yī】个【gè】临时目【mù】录temp,然后将ubuntu22.04.ext4文件挂载【zǎi】

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


将ubuntu-rootfs目录【lù】中的【de】内容复制【zhì】到挂载的文件系统中,然后卸【xiè】载。

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


3.5.2. 制作SD启动镜像

先【xiān】将下载资源的03_Tools/myir tools目录【lù】下的【de】RemiPi_SDUpdate.tar.bz2解压到虚拟【nǐ】机中【zhōng】(用户请根据自【zì】己实【shí】际情况解压)

PC@system1:~$ tar -xf RemiPi_SDUpdate.tar.bz2PC@system1:~$ cd RemiPi_SDUpdate/renesas-sdPC@system1:~/RemiPi_SDUpdate/renesas-sd$ lsimage README.md   rzg2_bsp_scripts  fat16     output  rootfs


把打包好的ubuntu22.04文【wén】件系统替换到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.ext41 directory, 5 files


修改Manifest文件

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


修改自【zì】己实际路径的配【pèi】置,这个请参【cān】考《RemiPi_Linux 软件开发【fā】指南》4.3章节,修改myir_config.ini配置文件,将里面的路径修改成自己实际的路径。

最后进入到下面目录,执行制作镜像的脚本即可。

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


烧录步骤请参考【kǎo】《RemiPi_Linux 软件开发指南》中4.2章【zhāng】节。


4. 认识LXDE

4.1. LXDE介绍

LXDE是一【yī】个【gè】轻量级【jí】和快速的桌面环境【jìng】。它被设计为【wéi】用【yòng】户友好和占用资源少,同【tóng】时【shí】保持资源【yuán】使用率低。LXDE使【shǐ】用更少的内存和CPU来【lái】尽可能地展现功能丰富【fù】的桌面环【huán】境。与其它的桌【zhuō】面环【huán】境不同,LXDE努力【lì】成为模块化的桌面环境,所以每个【gè】组件可以【yǐ】独立使用【yòng】。这使得移植LXDE不同【tóng】分【fèn】布和平台更容易。

LXDE包含多个核心组【zǔ】件,可【kě】用于【yú】桌面环【huán】境下来管【guǎn】理整个系统【tǒng】资源。主【zhǔ】要组件如下:

LXPanel:这【zhè】是【shì】LXDE的面板【bǎn】系统【tǒng】,类似于GNOME的GNOME Panel或KDE的Kicker。它提供了快速访问应【yīng】用程序、系统工具、文【wén】件夹和剪贴【tiē】板的方【fāng】式。LXSession:这是LXDE的会话管理器,它负【fù】责启动【dòng】和【hé】终止LXDE桌面环境。LXDE-OpenBox: 这是一个窗口管【guǎn】理器【qì】,提供窗口布【bù】局和【hé】导航。LXDE使用OpenBox作为其【qí】默认【rèn】的窗口管【guǎn】理器。PCManFM:这是一【yī】个【gè】轻【qīng】量级的文【wén】件管理器,提供文件和目录的浏览、复制、移动、删除等操作【zuò】

除【chú】了这些核心组件外【wài】,LXDE还有【yǒu】其他一些辅【fǔ】助【zhù】工具,如LXAppearance(用于更改主题【tí】和图【tú】标)、LXTask(任务【wù】管理器)等【děng】。

4.2. 启动LXDE

开机【jī】启动后,可【kě】手动输入密码123456登录,或者在串【chuàn】口终端执行【háng】(startx /usr/bin/lxsession -s LXDE &)命令进行登录【lù】,如【rú】图9-21:

图9-21:lxde登录界面


登录成功后【hòu】,由【yóu】于默认背景【jǐng】是黑【hēi】色的,可【kě】以点击鼠标右键后选择Desktop Preferences->Appearance->Wallpaper(/usr/share/lxde/wallpapers/lxde_blue.jpg)来选择背景图片【piàn】,如图9-21:

图9-21:lxde背景图片修改


背景图片修改成功,如图9-21:

图9-21:lxde背景图片


5. 参考资料

Linux kernel 开源社区

https://www.kernel.org/

ubuntu

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

freedesktop

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

标签: #我的世界162mod制作器