首页
论坛
专栏
课程

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

2019-6-9 10:49 971

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

2019-6-9 10:49
971
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上还从来没遇到过这样的问题:(



[公告]安全服务和外包项目请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最新回复 (14)
kxzpy 2019-6-9 11:46
2
0
是手机上的 终端模拟器 查看的,还是电脑 adb
petersonhz 2019-6-9 11:52
3
0
kxzpy 是手机上的 终端模拟器 查看的,还是电脑 adb
有区别么?这里用的是adb
kxzpy 2019-6-9 12:00
4
0
petersonhz 有区别么?这里用的是adb
我手机上是这样的,差不多
上传的附件:
chsml 1 2019-6-9 13:36
5
1
fuse 是用户文件系统,这个dev是操作点,不是真正的SD物理设备
vold 是android用来管理sd卡的,这个dev也是虚拟的,不是真正的sd物理设备.  他后边的两个数字才是对应到真正的物理节点
也就是说,应该还有个dev节点,看一下 /proc/partitions 
chsml 1 2019-6-9 13:40
6
0
现在linux都流行在kernel中做个操作接口,然后具体逻辑,全部放到userspace来实现
kernel创建一个misc或者fs之类的设备,然后检查到物理设备状态变化的时候用netlink通知用户程序,用户程序用文件操作来控制
比如 fuse, 比如usb gadget的configfs等,很多都这样。。。
kernel就只有一个stub,不用公布驱动程序逻辑了
petersonhz 2019-6-9 17:37
7
0
kxzpy 我手机上是这样的,差不多
在手机上用termial,是否输入台麻烦了? 你用上蓝牙键盘了么
kxzpy 2019-6-10 07:38
8
0
adb感觉是有点麻烦,还要驱动,没有蓝牙键盘,就是手机上操作的
petersonhz 2019-6-10 09:07
9
0
kxzpy adb感觉是有点麻烦,还要驱动,没有蓝牙键盘,就是手机上操作的
触摸键聊天还行,但是敲命令太慢了
你用的什么终端?
petersonhz 2019-6-10 09:10
10
0
chsml fuse 是用户文件系统,这个dev是操作点,不是真正的SD物理设备 vold 是android用来管理sd卡的,这个dev也是虚拟的,不是真正的sd物理设备. 他后边的两个数字才是对应到真正的物 ...
/proc是内存文件系统,/dev也是内存文件系统?
chsml 1 2019-6-10 18:19
11
1
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设备程序


petersonhz 2019-6-10 19:41
12
0
chsml linux 一切都是文件【除了网络设备】, /dev 是设备文件, 这个目录是默认放设备文件的地方,调用标准kernel api创建设备,他自己就在这里建立文件节点了 比如 创建一个 misc ...
/dev目录下文件是存放在硬盘上的么?还是临时创建的内存文件系统?
chsml 1 2019-6-12 13:49
13
1
刚刚看了代码,大概是这样的
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编辑 ,原因:
chsml 1 2019-6-12 14:02
14
1
chsml device 对应的文件是属于 sysfs sysfs 是内存文件系统
好像device对应的属性才是sysfs (/sys/class) 
/dev 是什么我记不住了, 要读代码确认 。。。
上边的 sysfs 不对
petersonhz 2019-6-12 15:17
15
0
chsml 好像device对应的属性才是sysfs (/sys/class) /dev 是什么我记不住了, 要读代码确认 。。。 上边的 sysfs 不对
你使用si读代码么?看的哪个版本的kernel?
游客
登录 | 注册 方可回帖
返回