기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

리눅스 보드에 usb를 연결한후 lsusb를 하면 연결된 장치목록이 추가되어 있는것을 확인 할 수있습니다.

usb의 bus, device 번호가 나오는데 해당 연결된 bus, device 번호에 맞는 노드파일을 생성해볼려고 하니 잘 안되더라구요

 

usb_probe()  함수에서 장치 인식을 하여 bus, device번호를 얻은후에

/dev/bus/usb/(bus-Num)/(debice_num) 만 동적으로 생성 삭제만 해주면 되는 시나리오 인데 잘 생각보다 잘 안됩니다;;

 

claass_create() 함수를 이용해서  디바이스 노드 파일을 생성시켜보긴했는데요

/dev/ 폴더의 상위폴더에만 생성이 되고 더 깊이 있는폴더(/dev/bus/usb) 이렇곳에서는 생성이 안되더라구요

경로를 /dev/bus/usb/xxxx 이렇게 잡고 class_create()를 써서 실행시키면 /dev/xxxx 이렇게 노드파일이 생성이 됩니다..;;

 

usb 노드파일에 보면 메이져번호는 189로 정해져있고 마이너는 임의로 이어서 할당하거나 제가 메이져/마이너 지정해도

생성/삭제가 잘 되면 상관없을것 같은데요

 

usb 노드파일 동적으로 생성하는 함수? 나 방법좀 알려주시면 감사하겠습니다


ice179

2014.02.28 01:30:02
*.190.105.1

좀더 찾아보니

보드에 udev를 포팅하여 rues 파일을 생성하여 하면 된다는것 같기도한데 맞는방법인가요? 일단 이방법으로 테스트 해볼려고 합니다.

고도리

2014.02.28 02:33:02
*.200.239.210

busybox를 쓰신다면 mdev를 쓰셔도 되고요.


udev를 쓰셔도 됩니다.

위의 두가지 uevent 처리기의 경우는 rootfs 구성에 따라 다르기 때문에

현재, rootfs가 어떻게 구성되어 있는지 확인하셔야 할 듯 합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort

사용자 로그인