触觉智能分享-SSD20X Ubuntu 20.04 文件系统的移植

​本文适用于SSD20X移植Ubuntu系统。

IDO-SOM2D0X基于SigmaStar SSD201/202 SoC的超小SOM模组,双核A7 1.2GHz主频,1080P视频解码,支持MIPI/RGB显示接口,支持双以太网,支持SDIO/USB/SPI/I2C/UART/DMIC/I2S,集成音频Codec,支持麦克风阵列;模组集成了WIFI和NAND Flash;支持Linux系统;高性能,低成本;批量供货保障,主要应用于智能楼宇室内机,智能家居中控,86盒家庭中控,电梯楼层显示器,IP网络广播设备等。

核心板在小而精致的空间上集成了SPI Flash/WIFI芯片,还有RTC电路,SSD201/202全部功能引脚引出,只需轻松扩展底板接口,省心又省力。

更多详情资料请查看:触智能 觉未来- 深圳触觉智能科技有限公司 (industio.cn) 

获取资源

下载Ubuntu base arm 根文件系统:

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

这里我们选硬浮点。

将下载好的ubuntu-base-20.04.1-base-armhf.tar.gz,拷贝至虚拟机并解压。

安装qemu-user-static工具

​在虚拟机Ubuntu环境下安装:

sudo apt-get install qemu-user-static

将qemu-user-static拷贝解压出来的根文件系统中:

sudo cp /usr/bin/qemu-arm-static /home/xxxx/ssd20x/ubuntu_base/usr/bin/

 修改Ubuntu base 根文件系统的配置

​这里我们提前修改配置,为后边安装工具做准备

修改tmp目录权限为 777,在apt update的时候会在tmp目录下创建一些临时文件,所以要给tmp目录写权限

#chmod 777 ssd20x/ubuntu_base/tmp

修改resolv.conf文件,添加dns

#vim ssd20x/ubuntu_base/etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

 将base文件系统挂载到虚拟机下

  • 编写挂载脚本

在解压目录的上一级目录下新建一个ms.sh文件,文件内容如下,并赋予文件777的权限

#!/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
  • 挂载

sudo ./ms.sh -m home/xxxx/ssd20x/ubuntu_base/
  • 卸载

sudo ./ms.sh -u home/xxxx/ssd20x/ubuntu_base/

模拟root也可以使用chroot命令替代

安装软件

​挂载后即可进入该系统,为系统安装软件。

apt update
apt install usbutils
apt install sudo
apt install language-pack-en-base
apt install ssh
apt install net-tools
apt install ethtool
apt install ifupdown
apt install iputils-ping
apt install rsyslog
apt install htop
apt install vi
apt install dhcpcd5
apt install samba samba-common
apt install wpasupplicant
apt install jq
apt install alsa-base
apt install minicom

 用户配置

  • 设置用户密码

passwd root
  • 设置主机名称

echo "industio" > /etc/hostname
echo "127.0.0.1 localhost" >> /etc/hosts
echo "127.0.1.1 industio" >> /etc/hosts

 配置串口

需要安装ssh后才有/lib/systemd/system/getty@.service:

​vi /lib/systemd/system/getty@.service

修改为ttyS0:

串口问题导致:进入系统无法调试

报以下错误

[ TIME ] Timed out waiting for device dev-ttyS0.device. [DEPEND] Dependency failed for Serial Getty on ttyS0.

https://dev.t-firefly.com/thread-4903-1-4.html

解决办法参考以上链接

# cp /lib/systemd/system/serial-getty\@.service /lib/systemd/system/serial-getty\@ttyS0.service

# ln -s /lib/systemd/system/serial-getty\@ttyS0.service /etc/systemd/system/getty.target.wants/

到此输入 exit 退出挂载界面,并卸载文件系统

sudo ./ms.sh -u home/xxxx/ssd20x/ubuntu_base/

压缩文件系统:

cd ubuntu_base/
sudo tar -cvf rootfs.tar ./*

将文件系统打包并挂载到SD卡:

#vi make_sd_rootfs.sh
#!/bin/sh
PWD=$(pwd)
images_dir=${PWD}/images_for_mksdcard
if [ "$1" == "" ]; then
echo "!!!!!!!!!!!! ./make_sd_rootfs.sh /dev/sdb !!!!!!!!!!!"
exit 0
fi
sfdisk ${1}
mkfs.ext3 -F -j ${1}1
mkdir tmp_rootfs
mount -t ext3 ${1}1 tmp_rootfs
tar -xvf ./rootfs.tar -C tmp_rootfs
umount tmp_rootfs
rm -rf tmp_rootfs

把SD卡接入到ubuntu中,首先要把SD umount掉,再执行:

#这里根据你的挂载路径来
umount /media/xxxx/xxxx

sudo ./make_sd_rootfs.sh /dev/sdb

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Industio_触觉智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值