大容量sd卡reread之后/dev下概率性出现无设备文件
sd卡reread调用 ioctl(fd, BLKRRPART)) 之后/dev下概率性出现没有设备节点问题(sigmstar 335芯片)
1、实际sd分区创建的位置,用的256G的sd卡,有两个分区,/sys/class/block下的文件只是链接到下面的文件
/sys/devices/soc0/soc/soc:sdmmc/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0/mmcblk0p1
/sys/devices/soc0/soc/soc:sdmmc/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0/mmcblk0p2
2、函数调用的时候不管/dev下是否有设备节点 ,以上的文件都创建成功了,驱动创建设备文件没问题
3、以下是创建设备节点/dev/* 调用的函数
int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,char *envp_ext[])
{#ifdef CONFIG_UEVENT_HELPER/* call uevent_helper, usually only enabled during early boot */if (uevent_helper[0] && !kobj_usermode_filter(kobj)) {struct subprocess_info *info;retval = add_uevent_var(env, "HOME=/");if (retval)goto exit;retval = add_uevent_var(env,"PATH=/sbin:/bin:/usr/sbin:/usr/bin");if (retval)goto exit;retval = init_uevent_argv(env, subsystem);if (retval)goto exit;retval = -ENOMEM;info = call_usermodehelper_setup(env->argv[0], env->argv,env->envp, GFP_KERNEL,NULL, cleanup_uevent_env, env);if (info) {//通过mknod的方式创建设备节点,最终调用应用层的mdev或者udev,原:retval = call_usermodehelper_exec(info, UMH_NO_WAIT);//不等待直接返回改:retval = call_usermodehelper_exec(info, UMH_WAIT_PROC);//等待创建完成再返回,该处改成UMH_WAIT_EXEC的时候还是不行,不得己改成UMH_WAIT_PROCenv = NULL; /* freed by cleanup_uevent_env */}}
}
4、修改原因:64G的sd卡没问题,基本可以正常格式化,但是128G的时候概率性出现问题,256G概率更大,最终在mdev源码加打印发现出错的原因都是创建的时候该UMH_NO_WAIT没等创建就返回,最后创建的内核线程在后台执行的时候先add了在remove(随机性),导致/dev下无设备节点,由于在后台执行只能输出重定向查看打印,基本原因是cpu性能不够,导致执行缓慢,最后随机执行add和remove操作,改完之后都会等先remove在add,最后就不会格式化失败了
大容量sd卡reread之后/dev下概率性出现无设备文件相关推荐
- WINCE5.0+S3C2440支持大容量SD卡(SDHC卡)
********************************LoongEmbedded************************ 作者:LoongEmbedded(kandi) 时间:201 ...
- Linux格式化sd卡博客,Linux下格式化U盘或者SD卡
前段时间用SD卡刻了用一个Linux系统(存储系统),插在windows下显示只有32MB(原卡16GB的).好了,问题来了,其他的空间去哪里了呢? 1.如何释放其他未使用的空间? 2.如何重新找回所 ...
- linux sd卡挂载脚本,Linux下实现U盘、SD卡自动挂载功能 .
在 Linux中我们经常用到U盘.SD卡的挂载问题,每次都手动挂载或卸载非常麻烦,我们可以采取以下方法实现自动挂载或卸载U盘.SD卡 1.首先在/etc/init.d/rsC中加入以下语句 echo ...
- SD卡在SPI模式下的初始化和详细的代码分析
SD卡在spi下的初始化: 1.初始化与SD卡链接的硬件条件(mcu的spi配置, IO口配置) 2.上电延时(>74个CLK) 3.复位卡(CMD0),进入idle状态 4.发送CMD8,检查 ...
- STC15单片机读写大容量SD卡(IO口模拟SPI模式)
使用的芯片是STC15系列的IAP15F2K61S2,开发板是51的xl2000.把芯片座上的51芯片拔掉换成STC的,混合模式.(配置够低吧) 源码由51开发板例程的实验26修改而来. 浏览了网上的 ...
- 【SD卡】关于DJYOS下SD卡驱动开发详解
关于DJYOS下SD卡驱动开发详解 王建忠 2011/6/21 1 开发环境及说明 硬件平台:tq2440(CPU: s3c2440) 操作系统:DJYOS1.0.0 1.1 说明 T ...
- esp32 支持 sd卡 micropython 文件系统_ESP32 下 micropython 使用 SD卡
此处讨论的是使用 SD 卡接口的使用,相对速度较快,不讨论以 SPI 方式的使用. 上下拉要求 直接使用会出现 CRC 校验错误的问题,报 0x107 或者 0x109 错误.见此Issues. 开启 ...
- linux sd卡修复工具,如何使用'fsck'修复Linux中的文件系统错误
文件系统负责组织数据的存储和恢复方式. 无论如何,随着时间的推移,文件系统可能会被破坏,并且可能无法访问它的某些部分. 如果您的文件系统出现这种不一致,建议验证其完整性. 这可以通过名为fsck的系统 ...
- linux更改文件属性宁静,shell /dev/null 21 ( linux空设备文件和重定向)
/dev/null代表 空文件设备 1表示系统标准输出,系统默认值是1, > /dev/null等同于1> /dev/null 对于 >dev/null 2>&11&g ...
- SD卡驱动分析(二)
三.下面分析一下高通的android2.3的代码中SD卡驱动的流程. 在kernel中,SD卡是作为平台设备加入到内核中去的,在/kernel/arch/arm/mach-msm/devices-ms ...
最新文章
- 硅谷初创公司工资期权调查报告出炉,你羡慕吗?
- 智源学者韩银和、蔡一茂入选2020年度国家杰出青年科学基金建议资助项目申请人名单...
- 各种登录源码来了!基础登录、验证码登录、小程序登录...全都要!
- python单词大全-python词汇大全
- LeetCode Edit Distance(动态规划)
- 移动网络安全不容忽视 对恶意程序打好防范补丁
- 作业3:基于墨刀的短视频APP
- 博客园是否提供trackback的rss
- ArcGIS中文注记图层发布服务后变乱码(方框乱码)/如何有效修改注记要素类文字样式
- Arts 第九周(5/13 ~ 5/19)
- syslog函数输出在哪个文件中_syslog服务详解
- 区块链“搅局”中介风云
- element上传图片校验尺寸
- AE自带抠像插件解释
- 安全扫描工具-appscan
- 小木虫网站登录返回404
- linux文件属性详细说明(网络转载,仅供学习之用)
- PHP水仙花数程序设计思路,php实现水仙花数示例分享
- java程序开发实用教程上机实训答案,京东高级java面试
- Win11网络适配器错误代码(10)WLAN消失
热门文章
- 软件测试有效性指标,软件测试用例评审有效性的44个衡量标准[1]
- 通过 百度网盘 分享文件
- Android之Material Dialogs详解(非原创)
- 电容或电感的电压_电容、电感是如何储能的?
- 用matlab开环增益,自控原理实验仿真部份
- 【高数】如何由解倒求微分方程?及微分方程的阶数、任意常数、特征根的关系
- 我的世界java追踪光影_探索MC的光线追踪 真实光影下的马赛克世界
- 一部手机背后的小镇青年:吃着蜜糖、喝着毒药
- 时间与空间的相对性——思想实验推导狭义相对论(四)
- 怎么把cad的图导入ps_CAD图如何导入Photoshop的方法