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

2024-04-29

2849

来源:米尔电子
1.概述
Linux系统平台上有许多开源的系统构建框架,这些框架方便了开发者进行嵌入式系统的构建和定制化开发,目前比较常见的有Buildroot, Yocto, OpenEmbedded等等。
同时更多的传统的桌面系统也加入到嵌入式环境体系中,如Ubuntu,debian等,为嵌入式提供更方便实用的系统。本文主要介绍基于ubuntu22.04 core和米尔核心板定制一个完整的嵌入式ubuntu22.04系统的完整流程,其中包括开发环境的准备,ubuntu22.04系统的获取与移植, LXDE轻量级桌面管理等。
本文档并不包含Linux BSP系统相关基础知识的介绍,将直接使用米尔发布的myir-image-full提供的的BSP。如需了解BSP文件的制作请查看《Remi Pi_Linux软件开发指南》。
1.1. 软件资源
Remi Pi使用的Ubuntu系统基于ubuntu-base-22.04-base-arm64.tar.gz版本制作(下载地址如下),在此版本基础上添加了丰富的系统资源和其他软件资源。
Ubuntu Base 22.04.2 LTS (Jammy Jellyfish)
功能项 | 文件名 |
Ubuntu22.04 base | ubuntu-base-22.04-base-arm64.tar.gz |
启动管理 | Xinit |
网络管理 | network-manager network-manager-gnome |
⾳频管理 | xine |
视频播放器 | xine |
注意:米尔提供的ubuntu系统的登录名为:root 密码为:123456
2. 开发环境准备
基于ubuntu base系统在开发过程中所需的一些软硬件环境,包括必要的开发主机环境,必备的软件工具,代码和资料的获取等,具体的准备工作下面将进行详细介绍。
2.1. 开发主机环境
本节将介绍如何搭建适用于瑞萨Remi Pi平台的开发环境,该平台使用的RZ/G系列处理器是多核异构的处理器,RZ/G2L拥有两个2个ARM Cortex A53。通过阅读本章节,您将了解相关硬件工具,软件开发调试工具的安装和使用。并能快速的搭建相关开发环境,为后面的开发和调试做准备。
主机硬件
整个SDK包项目的构建对开发主机的要求比较高,要求处理器具有双核以上CPU,8GB以上 内存,100GB硬盘或更高配置。可以是安装Linux系统的PC或服务器,也可以是运行Linux系统的虚拟机,Windows系统下的WSL2等。
主机操作系统
一般选择在安装Fedora, openSUSE, Debian, Ubuntu, RHEL或者 CentOS等Linux发行版的本地主机上进行,这里推荐的是Ubuntu22.04 64bit桌面版系统,后续开发也是以此系统为例进行介绍。
安装必备软件包
基础软件包请查看《Remi Pi_Linux软件开发指南》进行安装,这里只需安装一个软件包即可。
PC@system1:~$ sudo apt-get update PC@system1:~$ sudo apt-get install qemu-user-static
3. Ubuntu 22.04 文件系统移植
3.1. 简介
ubuntu-base 是Ubuntu官方构建的ubuntu最小文件系统,包含debain软件包管理器,基础包大小通常只有几十兆,其背后有整个ubuntu软件源支持,ubuntu软件一般稳定性比较好,基于ubuntu-base按需安装Linux软件,深度可定制等,常用于嵌入式rootfs构建。
嵌入式常见的几种文件系统构建方法:busybox、yocto、buildroot,但Ubuntu方便,强大的包管系统,有强大的社区支持,可以直接apt-get install来安装新软件包。本文介绍了如何基于Ubuntu-base构建完整的ubuntu 系统。ubuntu支持很多架构,arm、X86、powerpc、ppc等,本文主要基于arm为例,构建一个较为完整的ubuntu系统。
3.2. 获取源码
我们提供两种获取源码的方式,一种是直接从米尔光盘镜像04-sources目录中获取压缩包,另外一种是使用wget获取位官方的上源码进行构建,请用户根据实际需要选择其中一种进行构建。
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
创建rootfs目录,然后将下载的ubuntu-base-22.04-base-arm64.tar.gz压缩包解压到rootfs目录下:(用户请根据自己实际路径和目录操作)
PC@system1:~$ mkdir rootfs PC@system1:~$ tar -xf ubuntu-base-22.04.1-base-arm64.tar.gz -C rootfs/
解压出的目录内容如下:
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. 准备chroot环境
3.3.1. 安装模拟器
PC@system1:~$ cp /usr/bin/qemu-aarch64-static ./rootfs/usr/bin/
(如果主机没有安装qemu-user-static工具包,可输入以下命令安装工具包)
PC@system1:~$ sudo apt install qemu-user-static
拷贝主机 DNS 配置文件到 arm 架构 Ubuntu 文件系统内(必须拷贝,否则可能会导致下面操作无法进行)。
PC@system1:~$ cp /etc/resolv.conf ./rootfs/etc/resolv.conf
3.3.2. 制作挂载脚本
将下列脚本代码拷贝到ch-mount.sh文件中,并改变权限(777)为可执行。
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. 挂载系统
首先使用ch-mount.sh将ubuntu文件系统挂载。
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文件系统与安装一些必要的软件。
3.4.2. 基础包安装
可根据需要自行安装下列包文件,推荐全部安装。(请按照顺序安装,避免安装时出错)
root@system1:/# chmod 777 /tmp (避免update时失败) 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,用户调试ubuntu系统的调试
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
安装网络和语言包支持
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. 桌面系统的安装
LXDE桌面系统安装
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. 创建用户
设置root密码: 123456
root@system1:/# passwd root Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
可删除root用户密码登录
root@system1:/# passwd -d root
一定要执行下面的指令,不然会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
创建一个用户名为: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
设置权限
sudo vi /etc/sudoers root ALL=(ALL:ALL) ALL myir(根据自己添加的用户来添加) ALL=(ALL:ALL) ALL
上面添加用户的时候,中间出现的警告可使用下列命令:
root@system1:/# export LC_ALL=C
3.4.5. 其他配置
设置hosts和主机名称,添加127.0.0.1 myir
root@system1:/# vi /etc/hosts
清空hostname文件内容,添加myir(根据实际添加的用户名来添加)
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
创建链接文件(一定要执行,不然执行二进制可执行程序时会报错)
root@system1:/# ln -s /lib /lib64
配置网卡接口,添加如下内容
root@system1:/# vi /etc/network/interfaces auto eth0 iface eth0 inet dhcp
3.4.6. 卸载系统
以上步骤操作完成后即可卸载系统。直接在系统中输入exit退出系统,并使用命令来卸载
root@system1:/# exit exit PC@system1:~$ PC@system1:~$ ./ch-mount.sh -u ubuntu-rootfs/ UNMOUNTING
至此ubuntu 文件系统已经配置完成。
3.5. ubuntu系统打包
3.5.1. 制作ext4格式文件
根据以上步骤已经制作好了ubuntu-rootfs文件系统,此时要将它制作成.ext4格式的文件,用于刷写到开发板中。
PC@system1:~$ dd if=/dev/zero of=ubuntu22.04.ext4 bs=1M count=3300
请用户根据实际情况来决定大小,这里以3.3G大小举例制作。
PC@system1:~$ mkfs.ext4 ubuntu22.04.ext4
创建一个临时目录temp,然后将ubuntu22.04.ext4文件挂载
PC@system1:~$ mkdir temp PC@system1:~$ sudo mount ubuntu22.04.ext4 temp
将ubuntu-rootfs目录中的内容复制到挂载的文件系统中,然后卸载。
PC@system1:~$ sudo cp -avrf ubuntu-rootfs/* temp PC@system1:~$ sudo umount temp
3.5.2. 制作SD启动镜像
先将下载资源的03_Tools/myir tools目录下的RemiPi_SDUpdate.tar.bz2解压到虚拟机中(用户请根据自己实际情况解压)
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文件系统替换到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"
修改自己实际路径的配置,这个请参考《RemiPi_Linux 软件开发指南》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
烧录步骤请参考《RemiPi_Linux 软件开发指南》中4.2章节。
4. 认识LXDE
4.1. LXDE介绍
LXDE是一个轻量级和快速的桌面环境。它被设计为用户友好和占用资源少,同时保持资源使用率低。LXDE使用更少的内存和CPU来尽可能地展现功能丰富的桌面环境。与其它的桌面环境不同,LXDE努力成为模块化的桌面环境,所以每个组件可以独立使用。这使得移植LXDE不同分布和平台更容易。
LXDE包含多个核心组件,可用于桌面环境下来管理整个系统资源。主要组件如下:
LXPanel:这是LXDE的面板系统,类似于GNOME的GNOME Panel或KDE的Kicker。它提供了快速访问应用程序、系统工具、文件夹和剪贴板的方式。
LXSession:这是LXDE的会话管理器,它负责启动和终止LXDE桌面环境。
LXDE-OpenBox: 这是一个窗口管理器,提供窗口布局和导航。LXDE使用OpenBox作为其默认的窗口管理器。
PCManFM:这是一个轻量级的文件管理器,提供文件和目录的浏览、复制、移动、删除等操作
除了这些核心组件外,LXDE还有其他一些辅助工具,如LXAppearance(用于更改主题和图标)、LXTask(任务管理器)等。
4.2. 启动LXDE
开机启动后,可手动输入密码123456登录,或者在串口终端执行(startx /usr/bin/lxsession -s LXDE &)命令进行登录,如图4-1:
图4-1:lxde登录界面
登录成功后,由于默认背景是黑色的,可以点击鼠标右键后选择Desktop Preferences->Appearance->Wallpaper(/usr/share/lxde/wallpapers/lxde_blue.jpg)来选择背景图片,如图4-2:
图4-2:lxde背景图片修改
背景图片修改成功,如图4-3:
图4-3:lxde背景图片
5. 参考资料
Linux kernel 开源社区
ubuntu
http://cdimage.ubuntu.com/ubuntu-base/releases/18.04.5/release/
freedesktop
https://www.freedesktop.org/wiki/
米尔瑞米派 Remi Pi
如需了解板卡,您可以通过访问以下米尔电子官网链接:
https://www.myir.cn/shows/23/14.html
更多关于Remi Pi技术问题讨论请登录米尔官方论坛:
https://bbs.myir-tech.com/forum-66-1.html
购买链接:
https://detail.tmall.com/item.htm?id=763219500729&skuId=5425000934998
2025-08-14
12路1080P高清视频流,米尔RK3576开发板重塑视频处理极限
在智能视觉技术不断发展的今天,多路摄像数据的处理与传输已成为众多应用场景的核心需求。从智能安防监控领域的全面覆盖,到工业视觉处理网关的精准检测,再到车载环视融合平台的实时驾驶辅助以及智慧社区AI防控的快速响应,多路摄像数据的处理与传输已成为关键需求,而高效且低延时的解决方案则是实现这些应用的核心。目前多路摄像传输方案往往存在一定局限,接入路数有限,难以满足大规模监控场景的需求,且延迟较高,影响实时
2025-08-14
共建生态,米尔将出席2025安路科技FPGA技术沙龙
在数字化浪潮席卷全球的今天,FPGA技术正成为驱动创新的核心引擎。2025年8月21日,深圳将迎来一场聚焦FPGA技术与产业应用的盛会——2025安路科技FPGA技术沙龙。本次沙龙以“定制未来 共建生态”为主题,汇聚行业专家、企业代表及技术开发者,探讨前沿技术趋势,解锁定制化解决方案,共建开放共赢的FPGA生态圈!米尔作为领先的嵌入式处理器模组厂商,将携安路FPGA核心板和开发板亮相,并发表主题演
2025-08-08
如何在RK3576开发板上板端编译OpenCV并搭建应用
本文将介绍基于米尔电子MYD-LR3576开发板(米尔基于瑞芯微 RK3576开发板)的板端编译OpenCV及环境搭建方案的开发测试。摘自优秀创作者-短笛君RK3576具有如下配置:4× Cortex-A72(大核,主频最高 2.2GHz)4× Cortex-A53(小核,主频最高 1.8GHz)NPU(AI加速单元):独立 NPU,算力典型值6 TOPS(INT8)支持 TensorFlow L
2025-08-08
倒计时!米尔-安路飞龙派创意秀奖品等您领~~
创意秀活动进入倒计时阶段2025年米尔-安路飞龙派FPGA FPSoC创意开发大赛即将于8月15日正式收官(原定于6月15日,已延期到8月15日)。作为国产工业级FPGA领域的赛事,本次活动已吸引多支开发团队参与,基于MYD-YM90X开发板产出了众多创新解决方案。现距截稿仅剩7天,米尔特别提醒尚未提交作品的开发者把握最后几天,分享您的技术创作,申领米尔电子的奖品。活动链接:https://mp
2025-07-25
如何在RK3576开发板上运行TinyMaix :超轻量级推理框架--基于米尔MYD-LR3576开发板
本文将介绍基于米尔电子MYD-LR3576开发平台部署超轻量级推理框架方案:TinyMaix摘自优秀创作者-短笛君TinyMaix 是面向单片机的超轻量级的神经网络推理库,即 TinyML 推理库,可以让你在任意低资源MCU上运行轻量级深度学习模型。关键特性核心代码少于 400行(tm_layers.c+tm_model.c+arch_cpu.h),代码段(.text)少于3KB低内存消耗支持 I
2025-07-21
RKDC2025 丨米尔亮相第九届瑞芯微开发者大会,共绘工业数智新图景
2025年7月17日,第九届瑞芯微开发者大会(RKDC!2025)在福州海峡国际会展中心开幕。米尔电子作为瑞芯微IDH生态合作伙伴受邀出席此次盛会。米尔不仅为广大用户带来米尔基于RK35系列处理器的核心板和开发板/工控机,更展示了多款针对不同行业的解决方案,吸引了广大参观者前来参观了解。展台现场此次米尔电子重点展出了基于瑞芯微RK3576、RK3568、RK3562、RK3506处理器的核心板,搭
2025-07-10
米尔将出席瑞芯微第九届开发者大会
2025年7月17日~18日,第九届瑞芯微开发者大会(RKDC!2025)将在福州海峡国际会展中心盛大启幕。米尔电子作为瑞芯微IDH生态合作伙伴,将携RK系列核心板、开发板、解决方案等产品出席此次盛会。届时,诚邀您莅临现场参观指导(展位号:F11),共话AI新技术的浪潮,推动电子产品从“IoT功能设备”向“场景化智能终端的演进,见证技术突破与生态协同!
2025-07-10
两款SoC方案评测:国产芯遍地开花
在工业自动化、电力智能设备等领域,传统欧美芯片长期占据主导地位。瑞芯微推出的RK3506J以及RK3562J工业级处理器,以“性价比+多核异构+工业级设计”为核心竞争力,直面工业场景对实时性、可靠性的严苛需求。米尔电子基于该系列芯片打造的开发板(MYD-YR3506J & MYD-YR3562J)凭借工业级的宽温运行、丰富的高速接口、多种外设资源,成为国产工业芯片落地的重要载体。本期视频与
2025-07-03
如何部署流媒体服务实现监控功能--基于米尔TI AM62x开发板
本文将介绍基于米尔电子MYD-YM62X开发板(米尔基于TI AM62开发板)的部署流媒体服务实现监控功能方案的开发测试。摘自优秀创作者-HonestQiao米尔-TI AM62x开发板除了可以用官方的CSI摄像头,还可以直接使用第三方的USB摄像头,我手头正好有几个个USB摄像头:经过实测,可以很好的在米尔-TI AM62x开发板上使用。这篇分享,就是在这块开发板上部署流媒体服务,通过USB摄像
2025-06-26
米尔STM32MP25系列产品荣获“2024‘物联之星’创新产品奖”
在“2024‘物联之星’中国物联网行业年度评选”中,米尔电子的MYC-LD25X核心板及开发板凭借其高性能、多接口、边缘算力等优势,荣获2024“物联之星”创新产品奖。米尔MYC-LD25X核心板及开发板获奖图获奖产品介绍MYC-LD25X核心板及开发板:米尔基于STM32MP257设计的嵌入式处理器模块MYC-LD25X核心板及开发板。核心板基于STM32MP2系列是意法半导体推出最新一代工