当前位置: 首页 > news >正文

使用ubuntu-base制作根文件系统

1:ubuntu官网下载最小根文件系统:

放置到电脑的ubuntu中,

Mkdir Ubuntu_rootfs

Cd Ubuntu_rootfs

Sudo tar –zxvf Ubuntu-bash-xxxxxx.tar.gz

2:电脑的ubuntu安装qemu搭建arm模拟系统

将/usr/bin/qemu-arm-static/(64位拷贝)qemu-aachr64-static到解压的目录中的/usr/bin中

sudo apt install qemu-user-static

sudo /usr/bin/qemu-arm-static Ubuntu_rootfs/usr/bin

3:拷贝电脑ubuntu的网络联网文件

Sudo cp /etc/resolv.conf  Ubuntu_rootfs/etc/resolv.conf

如果电脑的源已经可以使用的就不用自己添加源,需要修改的话修改一下文件

Sudo vim Ubuntu_rootfs/etc/apt/source.list

4:编写挂载文件和卸载文件:

####mymount.sh
#!/bin/bash
echo "mountting..."
sudo mount -t proc /proc /home/my_linux/ubuntu_rootfs/proc
sudo mount -t sysfs /sys /home/my_linux/ubuntu_rootfs/sys
sudo mount -o bind /dev /home/my_linux/ubuntu_rootfs/dev
sudo mount -o bind /dev/pts /home/my_linux/ubuntu_rootfs/dev/pts
sudo chroot /home/my_linux/ubuntu_rootfs
####myumount.sh#!/bin/bash
echo "umountting..."
sudo umount -f /home/my_linux/ubuntu_rootfs/dev/pts
sudo umount -f /home/my_linux/ubuntu_rootfs/dev
sudo umount /home/my_linux/ubuntu_rootfs/sys
sudo umount /home/my_linux/ubuntu_rootfs/proc

附加执行权限:

Sudo chmod 777 mymount.sh

Sudo chmod 777 myumount.sh

运行脚本挂载系统:

Source mymount.sh

6:安装ubuntu文件系统所需软件(在挂在后的文件系统中安装,指令:apt install xxx)

所需软件如下:

Make,gcc,device-tree-compiler,rsyslog,net-tool,ssh,language-pack-en-base, kmod,nano,xorg等

7:添加用户:

Passwd root

Adduser cjqzynq

为用户添加权限:打开/etc/sudoers

8: 修改终端tty打印(很重要)

操作如下:如果没搞对,会出现以下问题:

/bin/sh : cannot accese tty  turn off ….

如果修改的不对会有:

解决办法:

Tty需要根据板卡设置的串口进行设置,操作如下:ttyPS0是kernel和uboot,设备树中配置开启的终端输出串口

9:退出根文件系统制作:

Exit

运行卸载:

Source ./myumount.sh

使用tar打包ubuntu_rootfs/

然后烧录到ddr,再用ext4write,写进mmc,在进去mmc做解压,需要解压到mmcblk0p1

不能有额外多的路径:正确如下:

前期需要uboot和kernel都能识别到mmc,然后使用randisk进去系统,针对mmc做格式化和分区:使用Fdisk指令和mke2fs mmcblk0

10:启动系统(同样使用ext4write将ddr中的uimage.dtb放进mmc中)

然后就叫可以使用cmd指令和args从mmc中引导起来

setenv bootargs  "console=ttyPS0,115200 root=/dev/mmcblk0p1 rootfstype=ext4 rw rootwait "setenv bootcmd "echo zIamge is loading ... ... && ext4load mmc 0:1 0x2000000 zImage && echo zIamge is loading ... ... && ext4load mmc 0:1 0x6a00000 system-top.dtb && echo zIamge is loading ... ... && bootz 0x2000000 - 0x6a00000"

参考链接:

搭建最小ubuntu20.04系统_ubuntu20.04最小化安装_代码撸起的博客-CSDN博客

基于ubuntu-base进行根文件系统的修改与打包_根文件系统打包_里先森的博客-CSDN博客

http://www.lryc.cn/news/112798.html

相关文章:

  • springboot-mybatis的分页查询的接口
  • 网络音频终端音频编码解码终端
  • cordova 12 编译失败Could not find method compile() for arguments [com....]
  • 快速开发平台 WebBuilder 9 发布
  • GPT-5出世,需5万张H100!英伟达GPU陷短缺风暴
  • Jmeter学习和一个关于jmeter获取X-XSRF-TOKEN时的坑
  • SQL注入总结
  • Java 实现 后端分页
  • 数据结构 | 搜索和排序——排序
  • 【嵌入式环境下linux内核及驱动学习笔记-(18)LCD驱动框架1-LCD控制原理】
  • 【unity】ShaderGraph实现等高线和高程渐变设色
  • 快速修复应用程序中的问题的利器—— Android热修复
  • 什么是全局代理,手机怎么设置全局代理
  • 技术领先产品ASSAR300一一基于SAR成像的角雷达产品,助力自动泊车
  • 单元测试之 - Spring框架提供的单元/集成测试注解
  • 深入学习 Redis - 事务、实现原理、指令使用及场景
  • 异步javaScript
  • 看跨境电商世界区域分布,Live Market教你深入参与跨境创业
  • python中的装饰器的真正含义和用法
  • opencv基础-38 形态学操作-闭运算(先膨胀,后腐蚀)cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
  • RocketMQ生产者和消费者都开启Message Trace后,Consume Message Trace没有消费轨迹
  • JDV背后的技术-助力618 | 京东云技术团队
  • 0基础学习VR全景平台篇 第78篇:全景相机-拍摄VR全景
  • Spring MVC简介与概述
  • java基础复习(第六日)
  • 商用服务机器人公司【Richtech Robotics】申请纳斯达克IPO上市
  • 关于nn.Embedding如何使用预定义词表
  • 怎么设置文件夹密码?文件夹密码设置方法合集
  • PEMFC氢氧质子交换燃料电池MATLAB仿真模型
  • 创建PVC注意事项