首页
社区
课程
招聘
[讨论]为何一个tf卡,对应多个设备?
发表于: 2019-6-9 10:49 2930

[讨论]为何一个tf卡,对应多个设备?

2019-6-9 10:49
2930
root@HM2014813:/ # mount | grep sdcard1
/dev/fuse /storage/sdcard1 fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1
023,default_permissions,allow_other 0 0
/dev/block/vold/179:65 /mnt/media_rw/sdcard1 vfat rw,dirsync,nosuid,nodev,noexec
,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,
iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

/dev/fuse和/dev/block/vold/179:65是同一个东西么?
为何一张卡,对应两个设备呢?
在linux上还从来没遇到过这样的问题:(


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
是手机上的 终端模拟器 查看的,还是电脑 adb
2019-6-9 11:46
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
kxzpy 是手机上的 终端模拟器 查看的,还是电脑 adb
有区别么?这里用的是adb
2019-6-9 11:52
0
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
petersonhz 有区别么?这里用的是adb
我手机上是这样的,差不多
上传的附件:
2019-6-9 12:00
0
雪    币: 274
活跃值: (85)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
fuse 是用户文件系统,这个dev是操作点,不是真正的SD物理设备
vold 是android用来管理sd卡的,这个dev也是虚拟的,不是真正的sd物理设备.  他后边的两个数字才是对应到真正的物理节点
也就是说,应该还有个dev节点,看一下 /proc/partitions 
2019-6-9 13:36
1
雪    币: 274
活跃值: (85)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
现在linux都流行在kernel中做个操作接口,然后具体逻辑,全部放到userspace来实现
kernel创建一个misc或者fs之类的设备,然后检查到物理设备状态变化的时候用netlink通知用户程序,用户程序用文件操作来控制
比如 fuse, 比如usb gadget的configfs等,很多都这样。。。
kernel就只有一个stub,不用公布驱动程序逻辑了
2019-6-9 13:40
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
kxzpy 我手机上是这样的,差不多
在手机上用termial,是否输入台麻烦了? 你用上蓝牙键盘了么
2019-6-9 17:37
0
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
adb感觉是有点麻烦,还要驱动,没有蓝牙键盘,就是手机上操作的
2019-6-10 07:38
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
kxzpy adb感觉是有点麻烦,还要驱动,没有蓝牙键盘,就是手机上操作的
触摸键聊天还行,但是敲命令太慢了
你用的什么终端?
2019-6-10 09:07
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
chsml fuse 是用户文件系统,这个dev是操作点,不是真正的SD物理设备 vold 是android用来管理sd卡的,这个dev也是虚拟的,不是真正的sd物理设备. 他后边的两个数字才是对应到真正的物 ...
/proc是内存文件系统,/dev也是内存文件系统?
2019-6-10 09:10
0
雪    币: 274
活跃值: (85)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
linux 一切都是文件【除了网络设备】,
/dev 是设备文件, 
这个目录是默认放设备文件的地方,调用标准kernel api创建设备,他自己就在这里建立文件节点了
比如 创建一个 misc设备
static struct miscdevice misc_device = {
    .name = "test_misc_device",
    .fops = &文件操作函数结构体,
    .XXXX = XXXX,
};

misc_register(&misc_device);

执行之后
就会在 /dev目录建立一个文件
/dev/test_misc_device

然后你可以 ioctrl 也可以 open read write 这个文件来操作你的misc设备程序


2019-6-10 18:19
1
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
chsml linux 一切都是文件【除了网络设备】, /dev 是设备文件, 这个目录是默认放设备文件的地方,调用标准kernel api创建设备,他自己就在这里建立文件节点了 比如 创建一个 misc ...
/dev目录下文件是存放在硬盘上的么?还是临时创建的内存文件系统?
2019-6-10 19:41
0
雪    币: 274
活跃值: (85)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
刚刚看了代码,大概是这样的
device_create --> device_create_file --> sysfs_create_file 创建了 /sys 节点中的文件(sysfs)
然后用户空间进程udev根据 /sys节点信息 创建了 /dev中的文件 (udev可以运行在任何文件系统上,但通常是tempfs。)
老版本linux是devfs创建的
sysfs tempfs devfs 都是虚拟文件系统 内存文件系统
最后于 2019-6-12 14:18 被chsml编辑 ,原因:
2019-6-12 13:49
1
雪    币: 274
活跃值: (85)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
chsml device 对应的文件是属于 sysfs sysfs 是内存文件系统
好像device对应的属性才是sysfs (/sys/class) 
/dev 是什么我记不住了, 要读代码确认 。。。
上边的 sysfs 不对
2019-6-12 14:02
1
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
chsml 好像device对应的属性才是sysfs (/sys/class) /dev 是什么我记不住了, 要读代码确认 。。。 上边的 sysfs 不对
你使用si读代码么?看的哪个版本的kernel?
2019-6-12 15:17
0
游客
登录 | 注册 方可回帖
返回
//