0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何修改buildroot和debian文件系统

2132110287 来源:万象奥科 2024-07-22 17:46 次阅读

本文档主要介绍在没有编译环境的情况下,如何修改buildroot和debian文件系统方法,如在buildroot文件系统中添加文件、修改目录等文件操作,在debian文件系统中,安装软件库、工具、扩大文件系统空间等等操作。

1.Debian文件系统

1.1此操作可在虚拟机中完成,首先需要创建一个文件夹

sudo mkdir debian/

1.2 然后将文件系统镜像 linaro-rootfs.img挂载到debian文件夹

sudo mount linaro-rootfs.img debian/

1.3 进入debian就可以看到文件系统的结构了

6f95ccc747a2e4bba2052cb7a218dfbb.png

这时可以对文件系统进行文件操作,修改完成后取消挂载即可

1.4 如果需要安装一些软件库或者某些工具则需要依赖qemu工具,先在本地环境安装qemu-user-static工具

sudoaptupdate
sudo apt-getinstallqemu-user-static

1.5 然后需要将安装的qemu工具复制到固件挂载的对应目录下,这样是为了在宿主机上模拟ARM架构时,可以确保在模拟环境中运行的程序能够找到并使用这个工具,从而保持环境的一致性。

sudo cp /usr/bin/qemu-aarch64-static debian-mount/usr/bin/

这里的aarch64代表是ARM架构的64位版本

1.6 然后再使用ch-mount.sh脚本进入到固件内部

#!/bin/bash
IP="www.baidu.com"
NUM=3


func_ping()
{
  ping $IP -c $NUM > ping.txt
  echo ""
  echo ""
  echo ""
  if [ ! -z "`grep "reachable" ping.txt`" ]; then
    echo "----------------------------------"
    echo " "
    echo " Now is unreachable! Please check whether the computer has Internet access."
    echo " "
    echo "----------------------------------"
    rm ping.txt
  exit
  fi 
  echo "Internet is OK."
  rm ping.txt
}

function mnt() {
  echo "MOUNTING"
  echo "To exit, press 'ctrl + d'"
  sudo mount -t proc /proc ${2}/proc
  sudo mount -t sysfs /sys ${2}/sys
  sudo mount -o bind /dev ${2}/dev
  sudo chroot ${2}
}
function umnt() {
  echo "UNMOUNTING"
  sudo umount ${2}/proc
  sudo umount ${2}/sys
  sudo umount ${2}/dev
}


if [ "$1" == "-m" ] && [ -n "$2" ] ;
then
  mnt $1 $2
  umnt $1 $2
elif [ "$1" == "-u" ] && [ -n "$2" ];
then
  umnt $1 $2
else
  echo ""
  echo "Either 1'st, 2'nd or both parameters were missing"
  echo ""
  echo "1'st parameter can be one of these: -m(mount) OR -u(umount)"
  echo "2'nd parameter is the full path of rootfs directory(with trailing '/')"
  echo ""
  echo "For example: ch-mount -m /media/sdcard/"
  echo ""
  echo 1st parameter : ${1}
  echo 2nd parameter : ${2}
fi

如果使用脚本挂载报错,则很有可能是qemu-aarch64-static工具没有复制到对应目录下

如果模拟挂载成功,就能看到文件系统内部,这时就可以在文件系统内部中使用apt工具,安装所需要的版本库和对应工具,安装完成后按下“ctrl + d”可以保存推出挂载。

fb2c275bf17dc747851bfddcddbddc5c.png

1.7 如果在固件内部安装工具时,发现空间不足,则需要使用到qemu-kvm工具来修改镜像大小,首先要在本地环境安装qemu-kvm工具

sudo apt-get install qemu-kvm

1.8 修改固件镜像大小需要对debian挂载目录进行权限修改

sudo mount -o remount linaro-rootfs.img debian/

1.9 这时候就可以对文件系统大小进行修改,修改大小“+”后面的单位有K、M、G

sudo qemu-img resize -f raw linaro-rootfs.img +1G

2.0 然后需要取消挂载再使用resize2fs工具调整文件系统的大小

sudo umount /work/bsp/rk356x_bsp/rockdev/debian
sudo resize2fs-f linaro-rootfs.img

8bd38facdebfbceb3549f49443e56c2c.png

打印这些信息就说明文件系统修改成功,可以再使用ch-mount.sh挂载进去查看df -h查看是否修改成功

2.Buildroot文件系统

Buildroot文件系统我们提供的标准固件没有apt工具,所以并不能通过qemu工具模拟ARM架构,来apt安装工具,如果需要,则还是用工具源码交叉编译后手动移植到文件系统中。

Buildroot文件系统可以直接挂载进去来对文件或者目录进行操作,取消挂载即可保存。

4dc932141a58214e6fe037a0da9fe444.png    

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 文件系统
    +关注

    关注

    0

    文章

    278

    浏览量

    19814
  • 虚拟机
    +关注

    关注

    1

    文章

    884

    浏览量

    27768
  • Buildroot
    +关注

    关注

    1

    文章

    48

    浏览量

    1332
  • Debian
    +关注

    关注

    0

    文章

    74

    浏览量

    1083

原文标题:如何快速修改Buildroot及Debian文件系统?

文章出处:【微信号:万象奥科,微信公众号:万象奥科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于Buildroot的Linux系统构建之根文件系统

    基本的Linux根文件系统是Unix文件夹目录层次结构,skeleton是构建根文件系统的基础。   skeleton配置入口:   System configuration ---》Root FS skeleton   
    发表于 04-01 10:46 2472次阅读

    STM32MP157D使用buildroot生成根文件系统时就无法正常显示,为什么?

    )时能正常显示,如下图,但是我自己使用buildroot生成的根文件系统时就无法正常显示了,使用\"echo test_heool > /dev/tty1\"屏幕无输出
    发表于 07-26 06:21

    Debian文件系统的构建步骤

    迅为IMX6ULL开发板-Debian文件系统的构建
    发表于 12-28 06:58

    怎样使用buildroot构建根文件系统

    使用buildroot构建根文件系统一、buildroot介绍使用busybox 构建文件系统的时候,busybox 仅仅只是帮我们构建好了一些常用的命令和
    发表于 11-05 08:13

    buildroot构建根文件系统报错是什么原因

    buildroot构建根文件系统报错:xtyc@ubuntu:~/work/buildroot-2019.02.9$ sudo make>>>
    发表于 01-07 07:13

    Firefly Debian文件系统使用手册指南

    Debian 是一个根文件系统,所以只需要将 Firefly 官方提供的固件的 rootfs.img 根文件系统替换成 Debian文件系统
    发表于 07-12 17:56

    使用Buildroot构建根文件系统的方法简析

    1、怎么使用Buildroot构建根文件系统?  制作根文件系统有归多种方法:  使用Busybox手工制作  Busybox本身包含了很了Linux命令,但是要编译其他程序的话需要手工下载、编译
    发表于 11-04 15:41

    如何定制Buildroot文件系统-基于TQT507开发板

    本文档介绍在开发时 如何定制文件系统 (buildroot添加应用软件/文件),适用于天嵌开发板TQT507 。 **1.Buildroot简介**
    发表于 06-01 09:03

    Linux文件系统课程

    本章学习目标理解什么是文件系统了解文件系统工作原理理解Fedora Core Linux文件系统的结构掌握Fedora Core Linux文件系统的类型、权限和
    发表于 04-10 17:07 0次下载

    debian安装zfs文件系统

    ZFS文件系统的英文名称为Zettabyte File System,也叫动态文件系统,是第一个128位文件系统。最初是由Sun公司为Solaris 10操作系统开发的
    的头像 发表于 02-12 16:47 1w次阅读
    <b class='flag-5'>debian</b>安装zfs<b class='flag-5'>文件系统</b>

    Debian可以从F2FS根文件系统运行了

    不少用户希望通过将 Flash-Friendly File-System (F2FS) 作为根文件系统来启动和运行 Debian,现在这个目标将有望达成了。
    的头像 发表于 01-13 14:37 2527次阅读

    嵌入式Linux学习之旅(10)— 使用buildroot构建根文件系统

    使用buildroot构建根文件系统一、buildroot介绍使用busybox 构建文件系统的时候,busybox 仅仅只是帮我们构建好了一些常用的命令和
    发表于 11-02 14:36 10次下载
    嵌入式Linux学习之旅(10)— 使用<b class='flag-5'>buildroot</b>构建根<b class='flag-5'>文件系统</b>

    从EVB3568开发板打包备份Debian文件系统的方法

    本文以EVB3568开发板为例,介绍从开发板打包备份Debian文件系统的方法,以及将备份出的文件制作成可以用于烧录的文件系统镜像和完整固件包的方法。
    的头像 发表于 07-10 13:12 2592次阅读

    【北京迅为】i.MX6ULL开发板移植 Debian 文件系统

    【北京迅为】i.MX6ULL开发板移植 Debian 文件系统
    的头像 发表于 02-10 15:34 1001次阅读
    【北京迅为】i.MX6ULL开发板移植 <b class='flag-5'>Debian</b> <b class='flag-5'>文件系统</b>

    技术分享 | RK3568开发板 buildroot编译配置

    启扬智能RK3568开发板提供两种文件系统,一种是Debian,另外一种是BuildRoot。在使用过程中,有些客户需要添加属于自己的软件包,所以在此分享启扬RK3568关于BuildRoot
    的头像 发表于 04-13 10:32 3530次阅读
    技术分享 | RK3568开发板 <b class='flag-5'>buildroot</b>编译配置