嵌入式Linux---将文件系统制作成系统镜像

【linux】rootfs根文件系统镜像制作 当根文件系统填充完成后,我们需要将其打包成xxx.img或者其他的镜像格式。本文以xxx.img镜像格式为例,描述如何将根文件系统打包成img的镜像文件。在嵌入式linux平台中,大部分工作则是填充根文件系统,在开发中,根文件系统一般都是以目录的方式放在开发宿主机上。其中mkdir为linux命令,用于创建一个目录;上述命令的意思则是创建一个2000M(约2G)的文件,内容全部填充为0。通过上述步骤,就将根文件系统完全打包成img镜像文件了。的文件,接下来就创建一个ext4的文件系统镜像。 阅读详情

假设已经制作好文件系统rootfs,下面就开始制作映像文件了:

1.创建文件系统 ramdisk8M.image  ,文件系统格式为ext2,大小最好不要超过32M

dd if=/dev/zero of=ramdisk8M.image bs=1024 count=8192

mke2fs -F ramdisk8M.image -L "ramdisk" -b 1024 -m 0

tune2fs ramdisk8M.image -i 0

chmod 777 ramdisk8M.image

2.通过挂载对镜像进行赋值

mkdir ramdisk

mount -o loop ramdisk8M.image ramdisk/

cp -R rootfs/*  ramdisk   (R表示递归 包含子文件夹)

这样镜像的内容就是rootfs的内容了,将其卸载就可以生成完整的镜像文件

umount ramdisk/

gzip -9 ramdisk8M.image


3.生成uramdisk

mkimage -A arm -T ramdisk -C gzip -n Ramdisk -d ramdisk8M.image.gz uramdisk.image.gz


嵌入式系统篇--系统镜像制作与备份 整个构建过程可以在安装Linux系统的PC或服务器上进行,也可以在64位树莓派上进行(推荐使用基地2.0最新的u3),我使用x64平台的Debian进行演示,过程中我会说明与使用树莓派不同的地方,没有说明的就是通用的。我们首先来创建镜像文件,这次我们构建的是lite系统不包含桌面环境,所以我创建一个3G的镜像(其实2G就够),这里可以根据自己定制的需要改变镜像的大小。树莓派系统镜像有两个分区,一个boot分区类型为FAT32,一个rootfs根分区类型为ext4,下面开始分区。fat32分区格式化工具。 阅读详情

相关推荐

根文件系统镜像的制作与使用

根文件系统镜像 = 准备的文件 + 存储时的索引信息整合到一个文件中去 linux系统支持多种类型的文件系统:fat ext4 yaffs jffs ubifs ... 1 基于掉电不丢失设备的文件系统镜像 1.1 jffs2文件系统 专门针对norflash芯片开发的文件系统 1.2 yaffs2文件系统 专门针对nandflash芯片开发的文件系统 1.3 cramfs 它是...

奇怪的博客 1681

使用busybox制作根文件系统,作为 RAM disk ,并使用qemu加载

rootfs.img 是制作成功的根文件系统 RAM disk 格式镜像。我是:busybox-1.31.1.tar.bz2。menuconfig:需要配置静态编译。已经有编译好的linux内核镜像,busybox安装在源码目录下的。放到linux内同级目录,核解压。然后,在当前目录下生成。

TuringEvo专栏 2733

Linux内核镜像及根文件系统制作

简单介绍了Linux内核的配置和编译过程,在实验平台上完成了内核的下载和启动。

wzs94620的专栏 3784

嵌入式linux生成bin文件,嵌入式linux之根文件系统制作

host$代表在主机(ubuntu14.04)下操作target$代表在开发板下操作[ username ]​表示你的用户名,例如root一,busybox源码下载二,解压编译以busybox-1.20.2.tar​​​.bz2为例,虚拟机ubuntu14.0464位1.修改/opt及其子目录,文件的用户和组host$ cd/opt​host$ sudo chown[username] /opt ...

weixin_39889788的博客 705

LINUX 平台 制作RAMDISK 镜像的方法

描述如何制作ramdisk镜像,以及如何在u-boot设置启动参数。

Halcon实战:5分钟搞定灰度图转热力图(附完整代码)

本文提供了一份Halcon实战指南,详细讲解如何在5分钟内将灰度图转换为直观的热力图。通过核心代码演示了利用HSV颜色模型进行色彩映射的原理与步骤,包括图像归一化、通道构建与空间转换,并附赠了深度图可视化等进阶应用技巧,帮助工程师快速提升图像分析效果。

weixin_29240343的博客 282

制作 Linux 根文件系统镜像

运行环境 系统版本 Ubuntu 22.04 LTS 内核版本 5.15.0-25-generic GCC版本 gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0 源码下载 需要准备 Linux 内核源码和 busybox 源码 内核源码下载地址(我选择的是 linux-5.17.4) https://kernel.org/ 官网 https://mirrors.aliyun.com/linux-k

QCZL_CC的博客 1701

计算机组成原理汉字编码与校验设计实验报告(汉字国标码转区位码实验、汉字机内码获取实验、海明编码电路设计与海明解码)

这次实验利用logisim进行设计,进行了以下这四个实验,其中分为汉字国标码转区位码实验、汉字机内码获取实验、海明编码电路设计与海明解码,实验报告分为四个部分,在这四个部分中依次对四个实验的方案设计,设计思路进行了介绍

zhang2gongzi的博客 6万+

ARM嵌入式——制作根文件系统并使用NFS挂载运行。

制作根文件系统并使用NFS挂载运行。 上位机准备: 准备busybox,安装menuconfig所需依赖的库: sudo apt-get install build-essential sudo apt-get install libncurses5 sudo apt-get install libncurses5-dev 在busybox中执行make menuconfig Li...

跑不了的你的博客 636

WPF插件架构-如何动态加载封装好的第三方DLL的界面

插件架构中如何自动加载第三方DLL中的UI界面

lg24k的博客 1882

如何使用apifox打包测试用例生成测试套件自动化执行

使用apifox打包测试用例生成测试套件自动化执行

weixin_55613512的博客 2886

嵌入式linux 新建目录,构建嵌入式linux根文件系统小步骤

所谓构建嵌入式linux根文件系统,就是创建各种目录,并且在里面创建各种文件。这次构建将使用Busybox 和glibc,并使用yaffs映象文件工具制作成yaffs格式的镜像文件。1. 进入busybox目录下,执行make menuconfig,配置busybox。2. 修改busybox目录下的顶层Makefile文件,指定交叉编译器,ARCH ?= $(SUBARCH)CROSS_COMP...

weixin_39524183的博客 656

【天工Godwork精品教程】天工3.1.7安装教程(附Godwork完整版下载地址)

本文讲解天工3.1.7安装过程(附Godwork完整版网盘下载地址)。 一、天工3.1.7安装教程 1. 安装GodWork-AT 3.1.7 2. 安装GodWork-AT 3.1.7补丁 3. 安装GodWork-EOS-Setup-2017B-1231 4. 安装GodWork-EOS补丁 5. 运行godwokr软件 6. 生成ZC码 7. 输入ZC码 8. eos插

智慧空间实验室 5284

嵌入式linux创建镜像,嵌入式linux系统的开发——基于JFSS2文件系统的分区及镜像制作...

前言对于嵌入式Linux系统来说,绝大多数硬件设备采用Flash作为存储介质,LEDE/OPENWRT发行版会使用squash文件系统和jffs2文件系统相结合的方式作为整个系统的文件系统,其中squash文件系统是一种压缩只读文件系统,而jffs2文件系统支持可读可写操作。当uboot启动kernel后,kernel加载由squashFS文件系统格式化的ROM分区,将其挂载到/rom目录,由JF...

weixin_32591455的博客 486

YOLOv11官方代码库与预训练模型下载:介绍Ultralytics官方GitHub及模型权重(yolov11n.pt, yolov11s.pt等)

本文介绍了Ultralytics官方GitHub仓库和YOLOv11预训练模型。Ultralytics仓库是YOLO系列算法的官方实现,包含YOLOv11最新代码、预训练模型、文档和工具。仓库采用清晰的代码结构和活跃的更新策略,支持全流程开发。YOLOv11提供了5种不同规模的模型变体(YOLOv11n/s/m/l/x),在精度、速度和模型大小间权衡,适用于从移动设备到高精度检测等不同场景。各模型在COCO数据集上预训练,可直接使用或微调,满足多样化应用需求。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 5827

VN5620以太网测试——环境搭建篇

CANoe(CAN open environment)VN5620 :是一个紧凑而强大的接口,用于以太网网络的分析、仿真、测试和验证。VN5620 接口支持各种可能的应用。它适用于与其他总线系统、网络参与(例如在模拟和生成帧、测试中的负载和错误)的同步以太网监控。在2021年Vector公司的以太网接口卡VN5610和VN5640设备已经陆续停产,相应被VN5620和VN5650代替。

诊断协议那些事儿's blog 8929

嵌入式Linux根文件系统制作

一个完整的嵌入式Linux系统,包含uboot,Linux内核,根文件系统三个部分。其启动顺序为,在系统刚一上电的时候,先执行uboot,由uboot引导内核,内核启动成功之后挂载根文件系统。根文件系统挂载成功以后,嵌入式Linux系统就启动成功了。在开发板上看到的现象是:用户可以在串口控制台上输入命令与Linux系统进行交互。可以将文件系统在字面上分为俩部分来理解,一部分是文件,一部分是系统。那文件系统是不是可以理解成是组织和管理文件的一个系统呢。

wei_Embedded_z的博客 1461

课堂练习及课后作业2.1:外部中断

本关任务:通过相关知识以及实验回答:版本 1 内核的第 6 次时钟中断发生时,断点和恢复点(指令地址)分别是多少?本关任务:修改版本 0 内核,使得每发生 100 次时钟中断,就在屏幕上输出一个字符‘t’和当时的进程号,如“t(0)”表示0号进程运行时发生了时钟中断。本关任务:通过实际操作回答在输出第一行 0/1 字符的过程中(如下图所示),共发生了几次时钟中断?本关任务:修改版本 1 内核源码,使得每次时钟中断发生时,都在屏幕上输出字符‘t’。分析版本1内核,找到第一次时钟中断的恢复点地址。

Junds0的博客 1万+

嵌入式Linux系统镜像制作(基于SD卡)

嵌入式Linux在开发过程中对于软件方面通常是 bootloader、linux kernel、rootfs、applications 分开进行处理的,但到了生产阶段这样就不方便了。比较常见的做法是将所有内容整合到一起制作成系统镜像,这样在生产的时候只要烧录系统进行即可。这篇文件将介绍基于SD卡的系统镜像制作方法。......

Naisu的各种笔记 8062

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

通用的嵌入式 Linux 系统镜像制作流程

嵌入式 Linux 镜像制作的本质是“硬件驱动软件,软件适配硬件阶段核心产出物解决的核心问题环境搭建交叉工具链+硬件信息确保能为目标硬件编译代码Bootloader 制作u-boot.bin解决“如何初始化硬件并加载内核”内核与设备树制作解决“内核如何识别并驱动硬件”根文件系统构建rootfs解决“用户如何与系统交互、运行应用”镜像集成与烧写完整系统镜像解决“如何将软件组合并写入硬件存储”

Go_ahead_forever的博客 1471

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

嵌入式linux-根文件系统制作

如嵌入式Linux文件系统中通常不会放置内核源码,因而存的 常不会放置内核源码,因而存的 常不会放置内核源码,因而存放源码的 /usr/src目录是不必要的, 甚至连头文件也不需要,即/usr/include目录也不必要;这里只是拷贝动态链接库。要构建一个可用的Linux根文件系统,需要的二进制和库都不少,完全从零开始也是不现实的,推荐参考其它现有可用的文件系统,在原基础上按需修改;,目录里都是二进制命令工具,这还不足以构成 一个可用的根文件系统,必须进行其它完善工作,才能构建一个可用的根文件系统。

yinzhongzhang的博客 1144

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

制作嵌入式Linux根文件系统

文章目录1. 获取BusyBox源码2. 解压源码并进入根目录3. 配置BusyBox3-1. 选择编译静态库3-2. 选择交叉编译工具链3-3. 选择安装目录3-4. 编译安装 1. 获取BusyBox源码   Busybox的官方源码下载路径为:https://busybox.net/downloads/。   目前最新版本为busybox-1.29.3.tar.bz2。 2. 解压源码并进入...

zhangyzh656的博客 9012

15-最小 linux 文件系统的制作及烧写

我们总说linux系统,但到底什么是linux系统?又什么是最小linux系统?一个操作系统宏观上分为两个部分:kernel和shell(核和壳)。kernel就是操作系统内核,shell在kernel之上,提供与用户交互的界面,包括CLI(命令行界面)和GUI(图形用户界面),除此之外还有基础运行库(如c库、posix)等基础软件。最小Linux系统(Minimal Linux System)是一种超小型系统,它是一种使用Linux系统内核和一些必要的包(程序,驱动程序等)来替换复杂操作系统的方法。

Eva20192020的博客 8158

【UBI文件系统制作】-(3)制作UBI文件系统镜像

系列文章: 【UBI文件系统制作】-(1)UBI文件系统简介https://blog.youkuaiyun.com/weixin_40407893/article/details/101214434 【UBI文件系统制作】-(2)Busybox制作根文件系统 https://blog.youkuaiyun.com/weixin_40407893/article/details/101214693      3.2 制作U...

weixin_40407893的博客 3799

嵌入式Linux根文件系统制作与移植

本文以 RK3568 开发板为例,介绍 BusyBox 与 Buildroot 两种根文件系统的制作流程与移植验证方法,并总结常见启动故障的排查思路。

分享一些嵌入式Linux学习笔记和工具使用 1199
上一篇: LINUX-BSP开发问题以及解决--如何缩短启动时间(针对ZYNQ 7010)
下一篇: 嵌入式Linux-系统优化
linux_0416
博客等级 码龄9年 79粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值