Buildroot和Debian文件系统修改方法

本文档主要介绍在没有编译环境的情况下,如何修改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就可以看到文件系统的结构了    

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

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

sudo apt updatesudo apt-get install qemu-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/bashIP="www.baidu.com"NUM=3func_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}
functionmnt() {    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}}functionumnt() {    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$2elif [ "$1" == "-u" ] && [ -n "$2" ];then    umnt $1$2else    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”可以保存推出挂载。

 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

sudoqemu-imgresize-frawlinaro-rootfs.img +1G

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

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

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

2.Buildroot文件系统   
Buildroot文件系统我们提供的标准固件没有apt工具,所以并不能通过qemu工具模拟ARM架构,来apt安装工具,如果需要,则还是用工具源码交叉编译后手动移植到文件系统中。
Buildroot文件系统可以直接挂载进去来对文件或者目录进行操作,取消挂载即可保存。

    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/696218.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python从入门到进阶】57、Pandas入门:背景、应用场景与基本操作

一、引言 1、Pandas简介 在数字化时代,数据已经成为企业决策和个人洞察的重要基础。无论是金融市场的波动、零售业的销售趋势,还是科研实验的结果,都蕴含在大量的数据之中。然而,如何有效地提取、分析和解读这些数据&#xff0c…

嵌入式应用之FIFO模块原理与实现

FIFO介绍与原理 FIFO是First-In First-Out的缩写,它是一个具有先入先出特点的缓冲区。FIFO在嵌入式应用的非常广泛,可以说有数据收发的地方,基本就有FIFO的存在。或者为了降低CPU负担,提高数据处理效率,可以在积累到一…

2、数据操作

索引从0开始 一行 [1,:] 一列[:,1] 子区域:[1:3,1:] 第一行和第二行,从第一列开始 [::3,::2] 每3行一跳,每2列一跳 torch.tensor([[1,2,3,4]] 按位置算 xy ,x-y x*y x**y(幂) 1、广播机制形状不一样,…

一个简单好用的 C# Easing Animation 缓动动画类库

文章目录 1.类库说明2.使用步骤2.1 创建一个Windows Form 项目2.2 安装类库2.3 编码2.4 效果 3. 扩展方法3.1 MoveTo 动画3.2 使用回调函数的Color动画3.3 属性动画3.4 自定义缓动函数 4.该库支持的内置缓动函数5.代码下载 1.类库说明 App.Animations 类库是一个很精炼、好用的…

C-MAPSS数据集探索性分析

实验数据为商用模块化航空推进系统仿真C-MAPSS数据集,该数据集为NASA格林中心为2008年第一届预测与健康管理国际会议(PHM08)竞赛提供的引擎性能退化模拟数据集,数据集整体信息如下所示: 涡扇发动机仿真模拟模型如下图所示。 仿真建模主要针对…

【前端】使用window.print() 前端实现网页打印详细教程(含代码示例)

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 🤓 同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深…

Vuex3学习笔记

文章目录 1,入门案例辅助函数 2,mutations传参辅助函数 3,actions辅助函数 4,getters辅助函数 5,模块拆分6,访问子模块的state辅助函数 7,访问子模块的getters辅助函数 8,访问子模块…

Java--递归

1.递归就是A方法调用A方法,也就是调用自己本身 2.利用递归可以用简单的程序来解决一些复杂的问题,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复…

【MySQL数据库】:MySQL索引特性

目录 索引的概念 磁盘 磁盘的基本特征 MySQL与磁盘交互的基本单位 索引的理解 建立测试表 理解单个Page 理解多个Page 页目录 单页情况 多页情况 索引的数据结构 聚簇索引 VS 非聚簇索引 索引操作 创建主键索引 创建唯一索引 创建普通索引 创建全文索引 查询…

Nginx服务配置

一、Nginx服务的主配置文件nginx.conf vim /usr/local/nginx/conf/nginx.conf 全局块:全局配置,对全局生效;events块:配置影响 Nginx 服务器与用户的网络连接;http块:配置代理,缓存&#xff0c…

重温共射放大电路

1、放大概念 小功率信号变成一个大功率信号,需要一个核心器件做这件事,核心器件的能量由电源提供,通过核心器件用小功率的信号去控制大电源,来实现能量的转换和控制,前提是不能失真,可以用一系列正弦波进行…

conda 创建环境失败

conda create -n pylableimg python3.10在conda (base)环境下,创建新的环境,失败。 报错: LookupError: didn’t find info-scipy-1.11.3-py310h309d312_0 component in C:\Users\Jane.conda\pkgs\scipy-1.11.3-py310h…

RK3568-修改fiq-debugger调试串口

瑞芯微SDK默认将uart2_m0作为调试串口,以下方法将调试串口修改为uart5_m1。修改bootloader 修改/OK3568-linux-source/rkbin/tools/ddrbin_param.txt文件,5表示串口5。1表示复用m1。执行./ddrbin_tool ddrbin_param.txt ../bin/rk35/rk3568_ddr_1560MHz_v1.11.bin命令修改ub…

素数的无穷大的证明

素数的无穷大——欧几里得的证明 文章目录 一、说明二、欧几里得证据三、哥德巴赫对素数无穷性的证明(1730)四、Frstenberg 对素数无穷性的证明(1955)五、库默尔对欧几里得证明的重述 一、说明 众所周知,素数是无限多的。然而,两…

代码随想录算法训练营第36期DAY56

DAY56 套磁很顺利,发现又有书读了! 300最长递增子序列 朴素法,这个好想,但是不对,比如 0 1 0 3 2 3 我的算法会找出0 1 3作为答案,而不是0 1 2 3 可以看出,后面的状态依赖于前面的状态&am…

CMake详细解读

原文来自:CMake 保姆级教程 视频来自B站:CMake 保姆级教程C/C 1、快速操作: 原文来自:在 VScode 中使用 CMake 快速创建cpp工程 首先创建一个 C/C 工程文件夹 CALC,用 VSCode 打开,目录结构如下&#x…

探索软件工程师在新能源汽车研发中的角色与贡献

随着全球对可持续发展的关注不断增加,新能源汽车的研发与应用成为了汽车行业的一个重要方向。作为软件工程师,参与新能源汽车研发不仅能够推动科技创新,还能为环保事业贡献力量。本文将深入探讨软件工程师在新能源汽车研发中的具体贡献、所需…

如何画系统架构图学习

原文链接:https://learn.lianglianglee.com/%E4%B8%93%E6%A0%8F/%E4%BB%8E%200%20%E5%BC%80%E5%A7%8B%E5%AD%A6%E6%9E%B6%E6%9E%84/51%20%E5%A6%82%E4%BD%95%E7%94%BB%E5%87%BA%E4%BC%98%E7%A7%80%E7%9A%84%E8%BD%AF%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E5%9B%BE%EF…

C语言学习系列:初识C语言

前言,C语言是什么 语言,比如中文、英语、法语、德语等,是人与人交流的工具。 C语言也是语言,不过是一种特殊的语言,是人与计算机交流的工具。 为什么叫C语言呢? 这就要从C语言的历史说起了。 一&#…

RAG vs Fine-Tuning 微调哪种大模型(LLM)技术更好?

数据科学和机器学习的研究人员和从业者都在不断探索创新策略来增强语言模型的能力。在众多方法中,出现了两种突出的技术,即检索增强生成 (RAG)和微调。本文旨在探讨模型性能的重要性以及 RAG 和微调策略的比较分析。 模型性能在 NLP 中的重要性 增强用…