找回密码
 注册
关于网站域名变更的通知
查看: 443|回复: 1
打印 上一主题 下一主题

来看看linux的热插拔事件

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-11-6 10:20 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
当用户向系统添加或删除设备时,内核会产生一个热插拔事件,并在/proc/sys/kernel/hotplug文件里查找处理设备连接的用户空间程序,这个用户空间程序主要有/sbin/hotplug与/sbin/mdev. ) F1 \4 r: ], l! s
echo /sbin/hotplug > /proc/sys/kernel/hotplug 8 |+ ]1 T& \& t3 N& e! ~
或者 # {/ x3 i. G) j! S( A- d4 }6 I
echo /sbin/mdev > /proc/sys/kernel/hotplug ( x- e& W5 [) B9 b* s
mdev -s) t. x4 c1 V3 g' @
* s, C( h) v2 @; k9 z0 ^$ v
5 C$ H( U9 U' ^0 W  N
hotplug

9 h; n/ v- r6 z- ]1 b是一个bash脚本具有如下类似的代码:
1 |9 g. ?5 j8 |# d7 e
. I4 S6 E! X9 l0 q5 o
  • DIR="/etc/hotplug.d"
  • for I in "${DIR}/$1"*.hotplug "${DIR}/"default/*.hotplug ; do
  •     if [-f $I]; then
  •         test -x $I && $I $1;
  •     fi
  • done
  • exit 1
    . L+ T. D2 O* H
0 e6 k3 g5 _7 m. r

. f5 V4 x& U9 c6 F, R2 C* f, K% Z7 T7 s  o# j. y
1) 当driver执行kobject_uevent会调用hotplughelper,从而调用这个/sbin/hotplug脚本。 2 B1 N0 [; a# P/ i* P# f0 _
2) 该脚本在/etc/hotplug.d目录搜索所有以hotplug为后缀的程序并调用, . c- j" n4 Y0 x  y7 f
3) 传递给被调用的程序的参数就是事件的名字,
7 n% _& ~5 F/ z4) 被调用的程序还可以读取大量的环境变量,包括ACTION、DEVPATH、SUBSYSTEM等。
- F$ y3 Y! `  ]0 W  N( c4 a5) 被调用的程序根据这些环境变量在/lib/module/KERNEL_VERSION/modules.*map文件找到对应需要加载的模块并加载。 3 y/ B4 z  L6 M
(*.map是当驱动程序使用MODULE_DEVICE_TABLE宏时,depmod程序使用这些信息并创建了/lib/module/KERNEL_VERSION/modules.*map文件。)
% d5 O. `/ `, }0 J* I. Z! Y  f* t# e& k/ e* Q! ^
% L! l$ {" F0 c3 C
udev/mdev/vold

+ f! P6 M) H2 x7 x+ x
游客,如果您要查看本帖隐藏内容请回复
5 `# D' |: K- u+ s
3 F" j' N( n$ l& H/ e. _. L' p* Y

- ]0 N5 f, y0 z, r& J3 q
  • TA的每日心情

    2020-6-21 15:40
  • 签到天数: 44 天

    [LV.5]常住居民I

    2#
    发表于 2019-11-6 17:34 | 只看该作者
    学习学习学习% q/ e: h, o, E7 @( m
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-25 03:23 , Processed in 0.156250 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表