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

来看看linux的热插拔事件

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
当用户向系统添加或删除设备时,内核会产生一个热插拔事件,并在/proc/sys/kernel/hotplug文件里查找处理设备连接的用户空间程序,这个用户空间程序主要有/sbin/hotplug与/sbin/mdev. 9 \, L+ V" J, z5 @
echo /sbin/hotplug > /proc/sys/kernel/hotplug
" w7 c7 i9 y! ~0 L8 d或者 . y: Y! E, h- p: m2 V! W7 }4 u/ I
echo /sbin/mdev > /proc/sys/kernel/hotplug
; T5 G$ |9 \2 m& |: r) Mmdev -s, u$ a( S! P0 \3 I

& z! x5 N# b: [0 H
( ^+ i+ w- E4 z6 x* I) l4 ghotplug

4 t, _5 _, y6 b4 f- |; @) _) z4 z是一个bash脚本具有如下类似的代码:
& W9 z+ {: y  L, L6 M" ?
' s/ O3 n9 z- h: |
  • 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 12 w1 S: m8 i0 |3 N9 I

0 q; j4 i1 o( p  S$ w
$ C( C; ~8 S3 t1 n5 a" K

1 J1 L6 H7 a  V7 S5 t1) 当driver执行kobject_uevent会调用hotplughelper,从而调用这个/sbin/hotplug脚本。
7 V* O- Y2 e) ]* c' k% M2) 该脚本在/etc/hotplug.d目录搜索所有以hotplug为后缀的程序并调用, 1 ^. ^" C! U) z
3) 传递给被调用的程序的参数就是事件的名字, " ~# l0 c& |- j% d
4) 被调用的程序还可以读取大量的环境变量,包括ACTION、DEVPATH、SUBSYSTEM等。
7 W+ U1 Y/ B8 R5 d5) 被调用的程序根据这些环境变量在/lib/module/KERNEL_VERSION/modules.*map文件找到对应需要加载的模块并加载。 0 q- y2 f6 y* X; X& R& R5 v4 `
(*.map是当驱动程序使用MODULE_DEVICE_TABLE宏时,depmod程序使用这些信息并创建了/lib/module/KERNEL_VERSION/modules.*map文件。)6 W' F% y: u' }+ D6 I
; V" `; \! t& W! j* i+ B$ f

& K4 n/ j1 R" ], k* J% ~* ?& wudev/mdev/vold

# N8 ?" T5 z7 ^0 ]' i
游客,如果您要查看本帖隐藏内容请回复
# R2 G  S- ~6 i% [

$ v0 i# N5 e1 X6 j$ z# C( n8 f9 x& v* M3 s; R
  • TA的每日心情

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

    [LV.5]常住居民I

    2#
    发表于 2019-11-6 17:34 | 只看该作者
    学习学习学习
    7 Q* ^  d" T3 [4 m$ b7 U
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-25 02:30 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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