insmod 실행 시 unknown symbol 에러 가끔 모듈을 컴파일 하여 insmod로 추가할 때 unknown symbol 에러로 추가가 안 될 경우가 있다. xpad.c를 따라할 때 해당 함수를 찾아 지우고 했지만, 이번 sensehat을 사용하려는 기본 함수는 지울 수 없어 이유를 찾아야 했다. [ 8890.395611] sensehat_core: loading out-of-tree module taints kernel. [ 8890.395805] sensehat_core: Unknown symbol __devm_regmap_init_i2c (err…… unkown symbol 계속 읽기
[태그:] c
linux pages
Pages 연속된 메모리를 할당을 테스트 했다. dmes로 보면 어느 정도 출력하다 끊어 버린다. 마지막 데이터를 확인 했다. #include<linux/kernel.h> #include<linux/init.h> #include<linux/module.h> #include <linux/slab.h> #include <linux/mempool.h> #define PAGES_ORDER 2 char* data; static int __init hello_world_init(void) /* Constructor */ { printk(KERN_INFO “hello, pages\n”); /* memory 할당*/ data = (char*)__get_free_pages(GFP_KERNEL, PAGES_ORDER); if (!data){ printk(“no pages allocated\n”); return ENOMEM; }…… linux pages 계속 읽기
linux memory pools
memory pools cache memory에 이어 memory pools를 실습했다. 역시 책만 보면 잘 모른다. nvme 드라이버- drivers/nvme/target/io-cmd-file.c – 중 mempool 관련 코드를 찾을 수 있다. #include<linux/kernel.h> #include<linux/init.h> #include<linux/module.h> #include <linux/slab.h> #include <linux/mempool.h> #define scullc_quantum 16 /* declare one cache pointer: use it for all devices */ /* kmem_cache_t 가 kmem_cache로 변경됨*/ struct kmem_cache *scullc_cache; static const…… linux memory pools 계속 읽기
linux cache memory
cache memroy 실습 linux device driver, 8장을 실습 했다. 컴파일 하여 실행하기 전에는 어떻게 돌아가는지 잘 알 수 없다. scullc을 보고 따라하려 했으나 잘 모르겠다. 메모리를 cache로 선언하고 일반 메모리를 쓰듯이 하면 된다. #include<linux/kernel.h> #include<linux/init.h> #include<linux/module.h> #include <linux/slab.h> #define scullc_quantum 16 /* declare one cache pointer: use it for all devices */ /* kmem_cache_t 가…… linux cache memory 계속 읽기
linux usb driver xbox360(5)
드디어 마지막이다. xbox 패드를 마우스처럼 사용하고 싶어 이렇게 동작하도록 수정했다. 처음 연결하면 조이스틱으로 동작하고, 가운데 버튼을 누르면 마우스로 동작하도록 했다. 리눅스에서 조이스틱 쓸 일이 있나?? 초기값을 마우스로 바꿨어야 했다. input_device에 name을 설정하지 않고 등록하면 xserver로 이벤트를 전달할 수 없다. input_device에 name을 설정하지 않으면 evtest에 이름이 표시되지 않는다. xbox 스틱으로 들어오는 값을 그대로 사용하면 값이 너무…… linux usb driver xbox360(5) 계속 읽기