DEVICEDRIVER

포스트: 3
Tags

Posts

3 posts

insmod시 버젼 안맞는다고 에러 나올때..ㅡ.ㅡ;

sudo insmod thermal-device-driver.ko하고 나서 아래와 같이 문제가 발생함. │insmod: ERROR: could not insert module thermal-device-driver.ko: Invalid module format dmesg 를 보면 아래와 같은 에러가 나옴. [4920918.875527] thermal_device_driver: disagrees about version of symbol module_layout 결국 버젼이 안맞아서 생기는 문제인데. 흠.. 라즈베리의 버젼은 pi@raspberrypi:/proc $ uname -r5.4.35-v7+ 그런데 빌드할 때 저 버젼을 받지 못해서 강제로 아래와 같이 셋팅을 해서 빌드를 했다. KDIR :=/

Character Device Driver(캐릭터 디바이스 드라이버) - Overview

Guillermo Austin Kim|2017년 12월 5일

캐릭터 디바이스 코드를 보다가 한 가지 의문이 생겼어요.아래 코드는 캐릭터 타입 디바이스의 메이저 번호를 0으로 설정하네요. 어라?이거 잘못된 코드인가? static int pacman_probe(struct platform_device *pdev){ pr_debug("%s: %s version %s\n", __func__, DEVICE_NAME, PACMAN_VERSION); pacman_ctl.dev_num = register_chrdev(0, DEVICE_NAME, &pacman_fops); //<<-- if (pacman_ctl.dev_num < 0) { pr_err("%s: register_chrdev failed\n", __func__);

tty driver - overview

Guillermo Austin Kim|2017년 12월 5일

각 시스템 마다 tty driver 타입으로 등록된 디바이스 드라이버를 디버깅해야 할 때가 있어요처음 시스템을 부팅시키거나 tty driver 관련 문제가 나왔을 때 필요하죠. 이럴 때 참고하면 아주 좋은 변수가 있어요. tty_driver랍니다.자, 이렇게 선언되어 있어요. 주석문이 많은 걸 알려주죠.LIST_HEAD(tty_drivers); /* linked list of tty drivers */ tty driver는 tty_register_driver() 함수를 호출하거든요. 그런데 아래 tty_drivers란 링크드 리스트에 등록을 하죠. int tty_register_driver(struct tty_driver *driver){ int error; int i;// ...생략... mu