IDA 사용하기 고유한 번호를 부여하기 위하여 define_ida, ida_simple_get, ida_simple_remove 형식으로 사용한다. //사용할 구조체 선언. struct usb_xpad{ struct input_dev *dev; /* input device interface */ … int pad_nr; // order }; … static DEFINE_IDA(xpad_pad_seq); static int xpad_led_probe(struct usb_xpad *xpad) { //ida 할당 //pad_nr을 계속 증가.. //led가 몇번에 연결되어 있는지 알 수 있음. //0~0x8,000,000 – 1까지 증가…… linux usb driver xbox360(3) 계속 읽기
[태그:] driver
linux usb driver xbox360(2)
LED 제어하기 xbox 360 컨트롤러가 4개 LED를 가지고 있다. 총 4명 플레이어가 있을 경우 1 ~ 4까지 시계 방향으로 램프를 켜주게 된다. usb -> input 버튼 입력을 받아 들이기 전 간단해 보는 LED 제어를 해보기로 했다. 하..어렵다. 입력 받아들이는 것 보다 더 어려운 듯 하다. cdev_led_register를 실행하면 /sys/class/led에 led 모듈이 등록된다. pi@raspberrypi:/sys/class/leds $ dmesg |…… linux usb driver xbox360(2) 계속 읽기
linux usb driver xbox360(1)
집에서 놀고 있던 8년 전에 구매한 xbox 360 유선 usb 패드를 raspberry pi4에 등록하여 사용하고 싶다. 나온 지 오래되어 이미 xpad 리눅스 드라이버가 공개되어 있다. 그러나 usb, input을 한번에 사용하여 잘 이해되지 않는다. 남은 출장 기간 중 천천히 공부 하기로 했다. usb를 등록하려면 vendor id, product id, 연결되면 실행되는 call back probe, disconnect 등 을…… linux usb driver xbox360(1) 계속 읽기
Essential Linux Device Drivers
isbn: 9788960771499 한글판 제목이 너무 길어 원서 제목을 썼다. 임베디드 개발자면 쉽게 이해하겠지만 배경 지식이 없는 나에게는 너무 어렵다. 그럼에도 기록을 남겨, 나중에 어떤 책이 좋은지 다시 판단하는 시간을 줄이고, 다시 보려 한다. 책 내용에 코드가 많은데 독자가 실행시킬 수 없어 어떻게 돌아가는지 알 수 없다. 커널을 설명한 부분도 있는데, 이미 알고 있다면 안 읽어도…… Essential Linux Device Drivers 계속 읽기
xbox 360 드라이버 만지기1
내 라즈베리 파이에 usb 타입 xbox360 패드를 붙여 보고싶다. 리눅스 커널 xpad.c에 마이크로소프트 거의 모든 제품 usb vendor, product id가 등록되어 있다. xpad.c가 조금 복작하여 usb 인터럽트 사용 방법을 잘 이해할 수 없다. 키 입력 설정을 어떻게 할지는 나중 문제고… usb-skeletion.c 문서 역시 어렵다. 여기는 인터럽트 대신 대용량 데이터 전송을 목표로 했다. 그 중 가장…… xbox 360 드라이버 만지기1 계속 읽기