2010-06-03 4 views
2

나는 그것을 위해 나는 세 가지 모듈을 만든, 리눅스 커널 장치 드라이버에 대해 배우려고 노력 해요 :Hal에 의해 리눅스 디바이스를 보는 것이 필요합니까?

  • 버스 유형
  • 장치 드라이버
  • 지금 아무것도하지 않는 가짜 장치 , 오직 등록되어 있습니다

모든 것이 잘 작동합니다, 나는 버스, 드라이버 및 장치를 생성하는 모듈을로드 할 수 있습니다. 장치와 장치 드라이버가 바인드되었음을 나타내는 링크를 포함하여 모든 것이 sysfs에 나타납니다.

그리고 드라이버와 장치가로드 될 때, 나는 또한 일부 이벤트가 자극되어 udevadm monitor를 사용하여 볼 수 있습니다
KERNEL[1275564332.144997] add  /module/bustest_driver (module) 
KERNEL[1275564332.145289] add  /bus/bustest/drivers/bustest_example (drivers) 
UDEV [1275564332.157428] add  /module/bustest_driver (module) 
UDEV [1275564332.157483] add  /bus/bustest/drivers/bustest_example (drivers) 
KERNEL[1275564337.656650] add  /module/bustest_device (module) 
KERNEL[1275564337.656817] add  /devices/bustest_device (bustest) 
UDEV [1275564337.658294] add  /module/bustest_device (module) 
UDEV [1275564337.664707] add  /devices/bustest_device (bustest) 

그러나 모든 후, 장치가 복도에 나타나지 않습니다

. 다른 장치로 볼 장치가 필요합니까?

답변

0

모든 장치에 좋아 보인다, 문제는 핼는 각 서브 시스템 (처리기의 목록이 hald/linux/device.c에서 찾을 수 있습니다)에 대한 처리기를 필요로하고 분명 복도가 bustest 지원하지 않는 즉, 서브 시스템에 대한 발명 이 경우. 버스가 이름 대신 "의사"로 등록되어있는 경우

는 "bustest은"복도가 데이터베이스 항목을 초기화하는 가짜 장치에 대해 정의 핸들러의 집합을 사용하여 등록하고 DeviceAdded 이벤트를 보냅니다.

관련 문제