基于易百纳SS928或者欧拉派移植ubuntu20.04和ROS环境
欧拉派(海鸥派)ROS环境搭建
欧拉派套件其中重要的一个功能,面向机器人快速开发套件,除了支持openEuler操作系统,用于运行ROS,其本身也支持ubuntu,这一章重点介绍其ubuntu 下的ros环境搭建。
准备活动
- 从易百纳或者其它正规渠道购买欧拉派或易百纳开发板。
- 从易百纳技术社区获取最新 SOC SDK。
- 准备一台装有 ubuntu PC 端电脑,PC 端 ubuntu 系统上安装了 ROS1 Noetic,用于板端运行 ROS 任务时,PC 端通过 RVIZ 看运行过程。
- 准备一张 tf 卡,单板需要支持接入 tf 卡,在 ubuntu PC 端电脑将 tf 卡格式化为ext4。
- 装有 ubuntu PC 端电脑可联外网。
为了在板端可以正确使用 Ubuntu 和 ROS 系统,需要打开内核的某些选项
打开 CGROUP
安装 ubuntu 系统,内核需要打开该选项,打开方法如果:
menuconfig 中打开General Setup-> Control Group support (CGROUP)(即CONFIG_CGROUPS)
内核编译方法请参考请参考 SDK 文档(SS928最新版本SDK 022) 两种 uboot 镜像,一般选择“非安全启动”uboot:
boot_image.bin,如果烧写失败可以尝试另一个 uboot:u-boot-ss928v100.bin
内核配置完成之后,接下来就是在 Ubuntu PC 端进行 ARM 侧 ubuntu20.04 系统镜像
操作步骤:
安装 qemu
PC 端 ubuntu 电脑需要连外网,安装 qemu,安装命令如下:
注意如果找不到包需要更新一下源,一般清华的源比较完整和稳定sudo apt-get update
sudo apt-get install qemu-user-static
准备虚拟化脚本
在 PC 端 ubuntu 电脑上保存以下内容为 virtualization.sh 脚本
#!/bin/bash
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}
}
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
echo "mnt -m pwd"
elif [ "$1" = "-u" ] && [ -n "$2" ];
then
umnt $1 $2
echo "mnt -u pwd"
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
添加执行权限
Chmod +x virtualization.sh
下载 ubuntu arm 镜像ARM64 版本ubuntu 20.04ubuntu-base-20.04.5-base-arm64.tar.gz
解压到 mnt 目录
mkdir mnt
tar xzf ubuntu-base-20.04.5-base-arm64.tar.gz -C mnt/
进入 ARM64 执行环境
执行上面脚本后进入 ARM64 执行环境,安装常见的系统软件和设置 root 密码。sudo sh virtualization.sh -m mnt/
ARM64 执行环境安装
chmod 777 tmp
apt update
apt install net-tools iputils-ping vim udev systemd systemd-sysv systemd-timesyncd kmod
dos2unix unzip netplan.io apt-utils dialog locales nfs-common openssh-server curl haveged
gnupg2
设置多用户模式和 root 用户的账号和密码
systemctl set-default multi-user.target
passwd root
修改主机名和主机 IP
编辑主机名文件vi /etc/hostname
改为如下内容,ros为自定义主机名ros
编辑主机IPvim /etc/hosts
#改为如下内容,xx.xx.xx.xx为自己的固定IP
127.0.0.1 localhost
xx.xx.xx.xx ros
设置 root 用户 ssh 登录
#编辑ssh配置文件
vi /etc/ssh/sshd_config
#在最后添加如下内容
PermitRootLogin yes
退出 ARM64 执行环境
exit
# 退出后才会进入到X86环境
sudo sh virtualization.sh -u mnt/
制作板端 ubuntu 文件系统
将 tf 卡插入到电脑,格式化为 EXT4 文件系统,将 mnt/ 目录下内容拷贝至 tf 卡,然后tf 卡插入板端。
启动内核配置方法
tf 卡文件系统格式为 ext4,参考如下:
setenv bootargs 'mem=4096M console=ttyAMA0,115200 clk_ignore_unused rw rootwait
root=/dev/mmcblk1p1 rootfstype=ext4
blkdevparts=mmcblk0:1M(uboot.bin),11M(kernel),128M(rootfs.ext4),-';sa
setenv bootcmd 'mmc read 0 0x50000000 0x800 0x5800; bootm 50000000';sa
其中/dev/mmcblk1p1 为 tf 卡分区
文章目录
- 分享
- 举报
-
毛巾卷 2024-01-23 18:07:14回复 举报大佬,chroot进去后没有网络呀,你怎么实现update和apt install的
-
毛巾卷 2024-01-23 15:22:19回复 举报厉害,后面试试
-
hpj 2024-01-08 18:52:23回复 举报给力,收藏后面研究
-
浏览量:862次2024-06-06 10:17:20
-
浏览量:895次2024-04-04 22:59:26
-
浏览量:764次2024-02-28 10:42:48
-
浏览量:6235次2022-11-10 14:33:49
-
浏览量:5821次2023-03-17 19:33:35
-
浏览量:3695次2023-04-12 16:05:14
-
浏览量:1196次2024-03-29 11:19:21
-
浏览量:719次2024-07-12 08:58:25
-
浏览量:1280次2024-03-29 10:57:19
-
2024-03-29 15:14:19
-
浏览量:1120次2023-10-28 16:08:09
-
浏览量:1253次2024-04-12 11:37:26
-
2024-05-30 09:29:48
-
2023-05-15 16:10:49
-
浏览量:2103次2024-05-23 13:45:40
-
浏览量:1525次2022-12-13 16:47:02
-
浏览量:3734次2023-04-12 17:43:32
-
2023-12-18 10:42:29
-
浏览量:97次2024-09-13 17:34:13
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
oldmtn
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明