【转】终于解决嵌入式linux的网卡热插拔自动获取IP

目的:板子上一插上网线,eth1就能自动获取IP,这应该是属于热插拔事件机制,
于是,百度了一下,看到下面这篇博客
http://blog.csdn.net/bingqingsuimeng/article/details/7924300

摘取里面一段内容:

call_usermodehelper 在kobject_uevent_env函数中要调用的用户空间程序由uevent_helper[0]来指定,所以如果我们能控制这个 uevent_helper[0],就能接收到设备加入系统移出系统等事件。那个if中的kobj_usermode_filter条件一般都会满足(除 非这是个特别注意个人隐私的设备,那就不好说了,人家偷偷加入系统就是不想让你知道你也没有办法,但是udev还是能知道的)。

/sys/kernel目录下找到uevent_helper这个文件。

然后写个脚本文件myhotplug.sh放在/sbin里面,内容就是

#!/bin/sh
/sbin/udhcpc -i eth1

记得更改脚本文件的 权限,chmod a+x myhotplug.sh
如果直接把脚本打入/sys/kernel/uevent_heper文件里面的话,重开机就会消失的。

于是,我便在/etc/profile脚本文件里面写上这句话
echo “/sbin/myhotplug.sh” > /sys/kernel/uevent_helper
让它开机自动执行那条指令。

这样就弄完了,实现过程就是一有热插拔事件发生,就执行/sbin/myhotplug这个脚本文件,这个脚本文件就是让eth1重新自动获取IP,也就是重启eth1 这个网卡的DHCP服务。

发表评论

邮箱地址不会被公开。 必填项已用*标注