使用F1C200S从零制作掌机之构建debian文件系统

打印 上一主题 下一主题

主题 1712|帖子 1712|积分 5136

前情:使用buildrootfs构建的文件系统调试了好久NES模仿器,执行InfoNES模仿器的时候不停黑屏,无内容表现,调不通了,以是改用debian系统试试。
一、环境配置

首先下载两个工具:qemu-arm-static和debootstrap。


  • qemu-arm-static:通过qemu-arm-static,我们在x86的Ubuntu PC机上,可以模仿ARM处理器,就像运行在ARM上一样进行各种操作。如许既实现了ARM环境,又利用了x86 PC的处理本领。
  • debootstrap:是Debian/Ubuntu下的一个工具,用来构建一套基本的系统(根文件系统)。生成的目录符合Linux文件系统标准(FHS),即包罗了/boot、/etc、/bin、/usr等等目录,但它比发行版本的Linux体积小许多,固然功能也没那么强盛,因此,只能说是“基本的系统”。
  1. sudo apt install qemu-user-static -y
  2. sudo apt install debootstrap -y
  3. mkdir debian_rootfs
复制代码
二、构建

2.1 下载

使用清华镜像源抽取根文件系统。其中foreign表现若目标架构与本机架构不符时,需要携带该参数;arch代表架构,armhf (支持硬件浮点)、armel (软浮点);verbose表现不打印wget等包下载数据,进行静默安装。
从https://www.debian.org/mirror/list.zh-cn.html

华为镜像源

  1. cd debian_rootfs
  2. sudo debootstrap --foreign --verbose --arch=armel bullseye rootfs http://mirrors.huaweicloud.com/debian/
复制代码
至此,已经下载了最小的Debian系统, 你也可以将它想象为"最小系统"类似的存在,没有其他 “外设” 。这里改为bullseye,网上大部分使用的buster提示堕落,不知道以后bullseye会不会也堕落。在buster下找不到binary-armel。
2.2 文件挂载

  1. cd rootfs
  2. sudo mount --bind /dev dev/
  3. sudo mount --bind /sys sys/
  4. sudo mount --bind /proc proc/
  5. sudo mount --bind /dev/pts dev/pts/
复制代码
2.3 模仿

  1. sudo cp /usr/bin/qemu-arm-static  usr/bin/
  2. cd ..
  3. 对拉取的Debian根文件系统进行配置。
  4. sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs /debootstrap/debootstrap --second-stage --verbose
  5. 进入qemu虚拟器
  6. sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs
复制代码
2.4 配置

  1. 更新源
  2. vi /etc/apt/sources.list
  3. #写入: deb http://mirrors.huaweicloud.com/debian bullseye main
  4. apt-get update
  5. 安装软件
  6. apt-get install wpasupplicant #安装WIFI配置相关的组件
  7. apt-get install net-tools     #安装网络基础组件、如使用ifconfig等
  8. apt-get install udhcpc        #当wifi连接成功后,需要用这个组件去获取IP地址
  9. apt-get install evtest        #触摸屏测试
  10. apt-get install mplayer
  11. apt-get install alsa-utils    #音频测试
  12. apt-get install wireless-tools
  13. apt install sudo vim openssh-server htop
  14. apt install pciutils usbutils acpi #acpi我没有安装成功,换了其他的源也不可以
  15. 设置root账号密码
  16. passwd root
  17. 123456
  18. 配置时区
  19. cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  20. 配置SSH
  21. vi /etc/ssh/sshd_config
  22. #写入: PermitRootLogin yes
  23. apt clean #清理
  24. exit #退出chroot
  25. sudo rm rootfs/usr/bin/qemu-arm-static #删除之前拷贝的文件
  26. cd rootfs
  27. sudo umount   dev/pts/ # 一定要在/dev前面umount
  28. sudo umount   dev/
  29. sudo umount   sys/
  30. sudo umount   proc/
  31. sudo tar cvf ../rootfs.tar ./ #在rootfs目录下执行
复制代码
2.5 启动

  1. tar -xvf rootfs.tar -C /media/wang/rootfs/
复制代码
uboot bootargs:
  1. console=tty1 console=ttyS1,115200 panic=5 rootwait root=/dev/mmcblk0p2 rootfstype=ext4 earlyprintk rw Loglevel=7
复制代码
2.6 增长swap分区(按需,在开发板执行)

  1. free -m
  2. dd if=/dev/zero of=/swap1 bs=1M count=512  #count是SWAP大小,512就是512MB
  3. mkswap /swap1
  4. swapon /swap1
  5. vi /etc/fstab
  6. # 最后一行添加
  7. /swap1 swap swap defaults 0 0
复制代码
三、编译InfoNES

  1. apt-get install gcc
  2. apt-get install g++
  3. apt-get install make
  4. apt-get install libasound2-dev
  5. apt-get install zlib1g-dev
复制代码
使用的模仿器源码:https://files.cnblogs.com/files/twzy/arm-NES-linux-master.zip
源码进入linux目录,直接编译即可。拷贝nes游戏到文件系统。
开发启动程序,屏幕可表现游戏界面。
四、注意

debian的版本,使用buster会报错,使用oldstable无法启动。末了改用bullseye。
修改rootfs分区大小为2048M。
五、debian系统下外设

待完成。
六、移植好的文件系统

https://download.csdn.net/download/weixin_36117563/89524570
七、参考

https://whycan.com/t_4236_10.html
https://blog.csdn.net/qq_41709234/article/details/128570505
https://blog.csdn.net/qq_41709234/article/details/128758130
https://www.cnblogs.com/twzy/p/15356127.html
https://mirrors.tuna.tsinghua.edu.cn/debian/dists/oldstable/main/

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表