linux内核mtd分区,linux-kernel – 在运行时调整MTD分区大小
我正在使用嵌入式设备,并希望能够通过
Linux调整其MTD分区大小而无需重新启动.
问题是我的Linux映像大小已经增加,它所在的当前MTD分区(mtd0)现在太小了.但是,它之后的分区(mtd1)是用于存储配置信息的JFFS2部分,因此重新调整大小不是一个选项,因为配置可能会丢失.
我的目标是:
1. Copy contents of JFFS2 into /tmp/
2. Unmount JFFS2 from mtd1
3. Increase the starting offset + reduce size of mtd1 by X bytes (or delete mtd1 and create new mtd of proper size and offset)
4. Mount JFFS2 on new mtd1 and restore contents from /tmp/
5. Increase the size of mtd0 by X bytes
6. Burn new (larger) Linux image into mtd0 (the new image will contain a device tree with an updated partition structure)
7. Reboot
几年前我找到了“mtd-utils”的补丁:
http://article.gmane.org/gmane.linux.drivers.mtd/30949
http://article.gmane.org/gmane.linux.drivers.mtd/30950
http://article.gmane.org/gmane.linux.drivers.mtd/30951
以此为指导,我能够编写内核和用户空间代码来创建一个新的MTD分区,我可以在其上安装JFFS2.但是,此代码无法正确删除分区.即使从mtd1卸载JFFS2并调用put_mtd_device,当调用del_mtd_device时,内核会抱怨:
user.notice kernel: Removing MTD device #1 (jffs2) with use count 1
我想知道的是:
1. How to fix the patch to allow deleting my old mtd1
2. How to change the starting offset of mtd1 instead of creating/deleting partitions
我尝试联系该补丁的作者,但他们的电子邮件不再有效,所以我将不胜感激任何建议!
更新:
似乎mtdchar.c中的mtd_open()触发了get_mtd_device(),这可能会占用额外的usecount增量.但我的用户空间应用程序需要调用分区上的open()来发送一个ioctl()来删除分区:/ catch 22?有没有更正确的方法呢?
linux内核mtd分区,linux-kernel – 在运行时调整MTD分区大小相关推荐
- 编译Linux内核没有zImage,Linux 编译系统的简单介绍与内核编译安装
这里不只是讲怎样编译.安装Linux内核的,更主要的是介绍内核的编译系统和各个重要的文件.最后还利用学到的编译.安装Linux内核去修改Linux的01调度变成随机调度.如果你只是需要编译.安装内核的 ...
- 简述arm linux内核启动流程,Linux内核启动过程和Bootloader(总述)
1.Linux内核启动过程概述 一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(Bootloader),Linux 内核,文件系统,应用程序.其中 Bootloader是系统启 ...
- 武汉linux内核好找吗,Linux内核入门
Linux内核入门 收藏 如何获取Linux内核源代码 下载Linux内核当然要去http://www.kernel.org/了,网站提供了两种文件下载,一种是完整的Linux内核,另一种是内核增量补 ...
- 低温linux内核启动readl,Linux内核启动流程分析(一)
很久以前分析的,一直在电脑的一个角落,今天发现贴出来和大家分享下.由于是word直接粘过来的有点乱,敬请谅解! S3C2410 Linux 2.6.35.7启动分析(第一阶段) 1.依据arch/ar ...
- Linux 内核及 GNU/Linux 操作系统的基本体系结构
1. Linux 内核简介 内核:在计算机科学中是一个用来管理软件发出的数据 I/O(输入与输出)要求的计算机程序,将这些要求转 译为数据处理的指令并交由中央处理器(CPU)及计算机中其他电子组件进行 ...
- 手机linux内核版本了解,Linux内核版本介绍与查询
Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息 ...
- 【Linux 内核】编译 Linux 内核 ⑤ ( 查看 .config 编译配置文件 | 正式编译内核 )
文章目录 一.查看 .config 编译配置文件 二.正式编译内核 一.查看 .config 编译配置文件 在上一篇博客 [Linux 内核]编译 Linux 内核 ④ ( 打开 Linux 内核编译 ...
- 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的 Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 )
文章目录 一.下载 Linux 内核 1.下载最新版本 Linux 内核 2.下载指定版本 Linux 内核 二.Linux 内核版本号含义 一.下载 Linux 内核 1.下载最新版本 Linux ...
- linux内核err实现,Linux中IS_ERR()函数的理解
在Linux源码中的fs部分,经常会碰到这样的函数(位于kernel/include/linux/fs.h): /* * Kernel pointers have redundant informat ...
最新文章
- [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
- Mysql学习(三)之数据库管理工具Navicat
- C语言内存管理之结构体
- 修改yapf中的列宽限制值
- 大数据统计学之概率论(三)
- YouTube将关闭原创节目部门
- Centos0S7手动安装OpenStack Pike版--(Evironment)
- 巧妙检查WinXP系统漏洞
- Nginx安装负载均衡配置 fair check扩展
- 谈论高并发(三)锁的一些基本概念
- eda技术试卷_EDA技术试题库
- [Pytorch系列-33]:数据集 - torchvision与CIFAR10/CIFAR100详解
- iOS开发者账户注册/添加调试设备
- 地图学的基础知识_天文坐标系_大地坐标系_地心坐标系及其相关概念
- 小米无线显示电脑连接到服务器,小米手机无线连接电脑_小米手机无线显示电脑...
- 虚拟服务器伪静态怎么设置,虚拟主机如何设置伪静态
- 笔记本计算机屏幕亮度暗,笔记本屏幕暗,教您怎么解决
- PPTP(Point to Point Tunneling Protocol),即点对点隧道协议。
- Cookie | Cookie的理论基础、Cookie中常用的方法
- 产品经理三大领域的技术
热门文章
- java占位符填充_Java使用freemark生成word
- ORA-01861: 文字与格式字符串不匹配
- 滑动关机代码bat_BAT面试算法进阶--(2) 无重复字符的最长子串(滑动法优化+ASCII码法)...
- FYFG的完整形式是什么?
- 不稳定学习器适合做基分类器_分类稳定性
- cd-rom门锁定什么意思_CD-ROM XA的完整格式是什么?
- Java Scanner next()方法与示例
- 大数据数据可视化设计原则_数据可视化设计的8顶帽子
- java reverse_Java Integer类reverse()方法与示例
- 我们在使用计算机时,不能做什么?,11秋季学期计算机应用技术基础学习周期_01任务-在线作业[1]1...