블로그 이미지
GUCCI

카테고리

전체보기 (111)
여행 (1)
기기 (2)
쇼핑 (0)
게임 (0)
etc. (6)
취업이야기 (0)
업무일지 (5)
리눅스 (38)
웹프로그래밍 (2)
네트워크 (4)
JAVA (17)
Android (0)
IOS (2)
LUA (8)
C/C++ (1)
Objective C (2)
SERVER (2)
그누보드4 (1)
MSSQL (2)
Programming (1)
자바스크립트 (4)
HTML/CSS (1)
LGNAS (0)
Total
Today
Yesterday

Linux Hotplug

리눅스 / 2012. 2. 10. 10:28

LinuxHotplug 를 사용하기 위한 준비 


  • 리눅스 커널 2.4 이상 

  • 커널 설정에서 General setup -> Support for hot-pluggable devices 옵션이 켜져있어야 한다.
  • hotplug 스크립트 

  • [http]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
    


Linux 2.6 


  • 리눅스 커널 2.6 에서는 장치의 클래스드라이버가 아닌 kobject수준에서 hotplug스크립트를 호출한다.
  • 더불어 각 장치에 대해 대응되는 sysfs의 경로가 함께 환경변수로 넘어온다.
  • SCSI, SCSI_HOST, SCSI_DEVICE, BLOCK, INPUT, NET 

ACTION=%s [add or remove]
DEVPATH=/%s/%s...

[edit]

LinuxHotplug의 실제 활용예 


gphoto2 

  • gphoto2는 여러 Unix시스템에서 쓸 수 있는 디지털카메라 관리 프로그램이다.
  • gphoto2를 설치하면 /etc/hotplug/usb/usbcam 스크립트가 등록된다.
  • usbcam스크립트는 gphoto2에서 지원하는 카메라가 연결되었을 때 현재 console을 쓰는 사용자에게 디지털카메라에 접근할 수 있는 허가권을 준다.

'리눅스' 카테고리의 다른 글

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
Posted by GUCCI
, |

최근에 달린 댓글

글 보관함