티스토리 뷰
동적으로 major number를 할당하고 device node를 생성하는 script~
 #!/bin/sh
 module="scull"
 device="scull"
 mode="664"
 # 스크립트로 전달한 모든 argument를 가지고 insmod를 호출한다.
 /sbin/insmod -f ./$module.o $* || exit 1
 # 기존에 존재하던 node를 제거한다.
 rm -f /dev/${device}[0-3]
 # /proc/devices 파일로 부터 major number를 읽어온다.
 major=`awk "\\$2==\*$module\" {print \\$1}" /proc/devices`
 # sed를 사용한 예제.
 # major=`sed -ne "/$module/s/ *\(.*\) *$module/\1/p" /proc/devices`
 mknod /dev/${device}0 c $major 0
 mknod /dev/${device}1 c $major 1
 mknod /dev/${device}2 c $major 2
 mknod /dev/${device}3 c $major 3
 group="staff"
 grep '^staff:' /etc/group > /dev/null || group="wheel"
 chgrp $group /dev/${device}[0-3]
 chmod $mode /dev/${device}[0-3]
동적으로 major number를 할당받는 device driver 예제
 result = register_chrdev( scull_major, "scull", &scull_fops);
 if( result < 0)
 {
      printk( KERN_WARNING "scull: can't get major %d\n", scull_major);
      return result;
 }
 if( scull_major == 0)
  scull_major = result; /* dynamic */
내용은 KLDP의 KTD님의 글에서 퍼왔습니다.
'Development > Linux' 카테고리의 다른 글
| Ubuntu 14.04에 Synergy 설치하여 시작 프로그램에 등록 하기 / 사라진 커서 보이게 하기 (0) | 2015.07.21 | 
|---|---|
| [Linux] Ubuntu 10.10 server 인터넷 연결하기 (0) | 2011.02.07 | 
| [Linux Driver] 리눅스 Kernel Module 드라이버 샘플 (0) | 2010.10.15 | 
| 리눅스에서 해당하는 함수의 라이브러리 찾기 (0) | 2010.05.17 | 
| FILE Input/Output System Call Function (0) | 2008.11.27 | 
- Total
- Today
- Yesterday
- database
- Quiz
- algorithm
- 안드로이드
- API
- C
- android
- driver
- java
- NDK
- jni
- MFC
- Python
- it
- gcc
- winapi
- AWS
- 음악
- 프로그래밍
- Visual C++
- kering
- jni강좌
- 드라이버
- Troubleshooting
- db
- source
- 리눅스
- linux
- C++
- Cloud
| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 |