基于易百纳SS928或者欧拉派移植ubuntu20.04和ROS环境

基于易百纳SS928或者欧拉派移植ubuntu20.04和ROS环境 oldmtn 2024-01-07 22:19:19 1760

欧拉派(海鸥派)ROS环境搭建

欧拉派套件其中重要的一个功能,面向机器人快速开发套件,除了支持openEuler操作系统,用于运行ROS,其本身也支持ubuntu,这一章重点介绍其ubuntu 下的ros环境搭建。

准备活动
  1. 从易百纳或者其它正规渠道购买欧拉派或易百纳开发板。
  2. 从易百纳技术社区获取最新 SOC SDK。
  3. 准备一台装有 ubuntu PC 端电脑,PC 端 ubuntu 系统上安装了 ROS1 Noetic,用于板端运行 ROS 任务时,PC 端通过 RVIZ 看运行过程。
  4. 准备一张 tf 卡,单板需要支持接入 tf 卡,在 ubuntu PC 端电脑将 tf 卡格式化为ext4。
  5. 装有 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 系统镜像

操作步骤:
  1. 安装 qemu
    PC 端 ubuntu 电脑需要连外网,安装 qemu,安装命令如下:
    注意如果找不到包需要更新一下源,一般清华的源比较完整和稳定
    sudo apt-get update
    sudo apt-get install qemu-user-static

  2. 准备虚拟化脚本

在 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.04
ubuntu-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
编辑主机IP
vim /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 卡分区

文章目录

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
oldmtn
红包 5 2 评论 打赏
评论
3个
内容存在敏感词
手气红包
  • 毛巾卷 2024-01-23 18:07:14
    回复
    大佬,chroot进去后没有网络呀,你怎么实现update和apt install的
  • 毛巾卷 2024-01-23 15:22:19
    回复
    厉害,后面试试
  • hpj 2024-01-08 18:52:23
    回复
    给力,收藏后面研究
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
oldmtn
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区