insmod 실행 시 unknown symbol 에러 가끔 모듈을 컴파일 하여 insmod로 추가할 때 unknown symbol 에러로 추가가 안 될 경우가 있다. xpad.c를 따라할 때 해당 함수를 찾아 지우고 했지만, 이번 sensehat을 사용하려는 기본 함수는 지울 수 없어 이유를 찾아야 했다. 결과적으로 devm_regmap_init_i2c를 사용하려면 먼저 regmap_i2c를 로딩해야 하는데, 이 작업을 하지 않아 그렇다. 부팅한 버전과 일치하는regmap-i2c.ko를 […]
[태그:] driver
linux memory pools
memory pools cache memory에 이어 memory pools를 실습했다. 역시 책만 보면 잘 모른다. nvme 드라이버- drivers/nvme/target/io-cmd-file.c – 중 mempool 관련 코드를 찾을 수 있다.
linux cache memory
cache memroy 실습 linux device driver, 8장을 실습 했다. 컴파일 하여 실행하기 전에는 어떻게 돌아가는지 잘 알 수 없다. scullc을 보고 따라하려 했으나 잘 모르겠다. 메모리를 cache로 선언하고 일반 메모리를 쓰듯이 하면 된다. cache 메모리를 얼마나 사용하고 있는지 알아보는 유틸리티가 있을 것 같은데 못 찾았다. 참조 사이트 struct and pointer crash utility for Arm curses.h […]
드디어 마지막이다. xbox 패드를 마우스처럼 사용하고 싶어 이렇게 동작하도록 수정했다. 처음 연결하면 조이스틱으로 동작하고, 가운데 버튼을 누르면 마우스로 동작하도록 했다. 리눅스에서 조이스틱 쓸 일이 있나?? 초기값을 마우스로 바꿨어야 했다. input_device에 name을 설정하지 않고 등록하면 xserver로 이벤트를 전달할 수 없다. input_device에 name을 설정하지 않으면 evtest에 이름이 표시되지 않는다. xbox 스틱으로 들어오는 값을 그대로 사용하면 값이 너무 […]
input 테스트 usb로 들어오는 버튼 입력을 테스트 했다. LED를 켜는 출력과 비슷하게 진행된다. 역시 출력을 보는 작업이 제일 어려웠다. 입력 디바이스 할당: input_allocate_device(); urb 할당 usb_alloc_coherent usb_alloc_urb 인터럽트로 urb 설정: usb_rcvintpipe, usb_fill_int_urb input device 주소 변경?: input_set_drvdata open, close 함수 오버로드 input_dev->open = xpad_open input_dev->close = xpad_close usb_submit_urb call back 함수 설정 input_dev->close에 usb_kill_urb로 urb를 […]