Linux Hotplug
리눅스 / 2012. 2. 10. 10:28
LinuxHotplug 를 사용하기 위한 준비
- 리눅스 커널 2.4 이상
- 커널 설정에서 General setup -> Support for hot-pluggable devices 옵션이 켜져있어야 한다.
- hotplug 스크립트
- Linux Hotplugging에서 받아서 설치한다.
- hotplug가 가능한 하드웨어
- usb, ieee1394, pci, pcmcia(2.6.13이상) hotplug장치 등등.
LinuxHotplug 동작방식
- hotplug를 지원하는 장치가 연결된다.
- 연결되면 장치의 클래스 드라이버에서 /proc/sys/kernel/hotplug에 등록된 프로그램을 호출한다. (주로 /sbin/hotplug )
- hotplug의 인자로 장치클래스의 이름이 붙는다. (ex: usb, ieee1394 ...)
- /sbin/hotplug에서는 /etc/hotplug.d/장치클래스/*.hotplug 와 /etc/hotplug.d/default/*.hotplug 스크립트를 수행한다.
- 각각의 스크립트를 hotplug agent라고 부른다.
- /etc/hotplug.d/default/default.hotplug는 linux-hotplug.sf.net에서 제공하는 것으로 해당 장치가 필요로 하는 커널 모듈을 적재하는 역할을 한다.
- /etc/hotplug.d/default/udev.hotplug는 리눅스 2.6에서 동작하는 것으로 기존의 devfs를 교체하고 유연한 장치이름을 제공한다.
- /etc/hotplug.d/default/hal.hotplug는 HAL Daemon에 해당장치가 연결되었다는 것을 dbus를 통해 알려준다.
- 각 스크립트에서 환경변수를 참조해서 장치에 대한 작업을 수행한다.
- 환경변수는 다음과 같다.
Linux 2.4
- USB
ACTION=%s [add or remove] DEVPATH=%s PRODUCT=%x/%x/%x INTERFACE=%d/%d/%d [ for interface 0, if TYPE=0/*/* ] TYPE=%d/%d/%d
- IEEE1394
ACTION=%s [add or remove] VENDOR_ID=%x [24 bit vendor id] GUID=%x [64 bit globally unique id] SPEFICIER_ID=%x [24 bit id of owner of specification] VERSION=%d.%d [version of specification]
- PCI
ACTION=%s [add or remove] PCI_CLASS=%06X PCI_ID=%04X:%04X PCI_SLOT_NAME=%s PCI_SUBSYS_ID=%04X:%04X
'리눅스' 카테고리의 다른 글
start-stop-daemon (1) | 2012.02.15 |
---|---|
portmap 데몬 (2) | 2012.02.15 |
리눅스 부팅 과정 (2) | 2012.02.10 |
/dev/null 2>&1 의 의미 (1) | 2012.02.10 |
Vi/Vim 단축키 모음 키보드그림 (4) | 2012.02.09 |