全志F1c200开发笔记——移植Debian文件系统

1.搭建环境

复制代码
sudo apt install qemu-user-static -y sudo apt install debootstrap -y mkdir rootfs

2.拉取文件系统

这边我参照墨云大神的文档,但是华为镜像已经没有armel了,我找到了官方仓库,还是有的,拉取速度比较慢

复制代码
sudo debootstrap --foreign --verbose --arch=armel buster rootfs http://archive.debian.org/debian/

这里遇到报错

Cannot check Release signature; keyring file not available /usr/share/keyrings/debian-archive-keyring.gpg

解决方法

复制代码
sudo apt-get install debian-archive-keyring

重新拉取

拉取完成

3.配置

3.1 进入虚拟系统

运行如下命令

复制代码
cd rootfs
sudo mount --bind /dev dev/
sudo mount --bind /sys sys/
sudo mount --bind /proc proc/
sudo mount --bind /dev/pts dev/pts/
cd ..
sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/
sudo chmod +x rootfs/usr/bin/qemu-arm-static
sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs /debootstrap/debootstrap --second-stage --verbose
sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs

可以看到我们现在进入了虚拟系统中

3.2.配置相关库

3.1 网络相关库

我们安装一下相应的库

3.2 SSH

设置允许root用户登录

复制代码
nano /etc/ssh/sshd_config

找到

修改为PermitRootLogin yes 然后保存退出

3.3 小火车

这里我想安装一个小火车玩,就

复制代码
apt update apt install sl

于是我输入如下命令

复制代码
./usr/games/sl

会得到一只小火车

3.3 修改密码

3.4 修改时区

4. rootfs打包

4.1 清理缓存

复制代码
apt-cache clean #删除安装包 
exit  #退出chroot
rm rootfs/usr/bin/qemu-arm-static

4.2 卸载挂载的文件夹

复制代码
cd rootfs
sudo umount   dev/pts/
sudo umount   dev/
sudo umount   sys/
sudo umount   proc/
sudo umount   dev/pts/

4.3打包

这里我们将TF卡连接ubuntu,因为debian有点大,我将TF卡的rootfs分区扩容到了1024MB,然后删除rootfs目录下的内容,将内容复制过去

cd rootfs #进到文件系统目录,如果已经在该文件夹下,可以忽略

复制代码
sudo cp -a ./ /media/nanqiu/rootfs/ sync sudo umount /media/nanqiu/rootfs

我在这边总是出现问题,经常是命令运行运行就卡死了,排查发现,是我的TF卡是低速卡导致的,娘的,某宝商家骗我,建议搭建换高速TF卡+USB3.0读卡器

这里每次出现问题,我就要强行拔除TF卡,然后再接入ubuntu,清空TF中的rootfs分区中的内容,然后重新操作,头疼,已下单好卡

5.启动

TF卡配置好后,我们连接开发板进行启动,正常应该如下

如果报错

Exec format error

可以看一下TF卡中的/bin目录下是不是很多文件为0字节,如果是,其实就是复制文件系统到TF卡的时候,系统没有将数据写到TF中,方法就是重新运行复制命令,将文件系统写入到TF卡中,保证数据写入进来了

如果和我一样一切正常的话

输入账密登录之后

输入如下命令

复制代码
/usr/games/sl

然后,你会收到一只在开发板上运行的小火车

此时,你的Debian系统就运行成功了,下一章节我们移植屏幕

相关推荐
咸鱼嵌入式5 分钟前
【AutoSAR】详解PDUR模块
网络
AI成长日志36 分钟前
【AI原生开发实战】1.2 传统开发 vs AI原生开发:思维转变与架构差异
服务器·架构·ai-native
戮戮36 分钟前
Spring Cloud Gateway 零拷贝参数校验:一种高性能网关架构实践
java·网络·架构·gateway
minji...39 分钟前
Linux 线程同步与互斥(二) 线程同步,条件变量,pthread_cond_init/wait/signal/broadcast
linux·运维·开发语言·jvm·数据结构·c++
2301_7807896642 分钟前
零信任架构在云安全落地过程中的最佳实践
服务器·人工智能·游戏·架构·零信任
虚伪的空想家1 小时前
k8s集群configmap和secrets备份脚本
linux·容器·kubernetes
[ ]8981 小时前
Stack_MLAG_知识点梳理
网络·笔记·网络协议
上海云盾-小余1 小时前
精准抵御流量攻击:高防 IP + 游戏盾组合部署实战详解
网络·tcp/ip·游戏
the sun341 小时前
从 QEMU 直接启动到 U-Boot 引导:嵌入式 Linux 启动流程的本质差异
linux·运维·服务器
三思守心1 小时前
从 0 到 1 搭建自动化内容工厂:深度测评楼兰AI及其在全平台发帖中的表现
运维·服务器·自动化