register_chrdev 함수에서 장치 이름을 지정해야합니다. 비록 우리가 동일한 메이저 넘버를 가진 다른 이름을 가진 디바이스를 만들지 만 올바르게 작동합니다. 그렇다면 그 기능에 이름을 부여하는 것의 의미는 무엇입니까?LKMG chardev.c register_chrdev 함수에 대한 질문
The name parameter is a short name for the device
and is displayed in the The /proc/devices list. It also
must exactly match the name passed to unregister_chrdev
function when releasing the functions.
그래서, 이름이 정말 모든 방법을 제외하고 커널을 사용하지 않습니다 :
나는 이것에 초보자가 register_chrdev()에 대한 man 페이지 당으로
[udev] (http://en.wikipedia.org/wiki/Udev)는/dev에있는 항목을 생성하고 파기해야합니다. 올바른 작업을 자동으로 수행하지 못하면 장치에 대한 새 규칙을 작성할 수 있습니다. – Karmastan
[Linux Device Drivers, Third Edition] (http://lwn.net/Kernel/LDD3/)을 읽으십시오. 이 책의 제 3 장은 또한 똑같은 것을 말합니다. "예를 들어, 의 경우,/dev/null과/dev/zero는 모두 드라이버 1에 의해 관리되는 반면 가상 콘은솔과 직렬 터미널은 드라이버 4에 의해 관리됩니다. , vcs1 및 vcsa1 모두 장치는 드라이버 7에서 관리합니다. 최신 Linux 커널을 사용하면 여러 드라이버가 주요 번호를 공유 할 수 있지만 표시되는 대부분의 장치는 여전히 1 대 1 드라이버 원칙에 따라 구성됩니다. " –