임베디드 디바이스 드라이버 소스(vrd.c)를 이용한다.
[root@linux2 vrd]# ls
Makefile vrd.c vrd.ko vrd.mod.c vrd.mod.o vrd.o
[root@linux2 vrd]# ls -l /dev/vrd*
ls: /dev/vrd*: 그런 파일이나 디렉토리가 없음
[root@linux2 vrd]# insmod vrd.ko
[root@linux2 vrd]# ls -l /dev/vrd*
brw-r----- 1 root disk 240, 0 4월 22 11:48 /dev/vrda
brw-r----- 1 root disk 240, 1 4월 22 11:48 /dev/vrdb
[root@linux2 vrd]#
참고
두개는 동일
[root@linux2 vrd]# mke2fs
[root@linux2 vrd]# mkfs -t ext2
[root@linux2 vrd]# mke2fs /dev/vrda
mke2fs 1.37 (21-Mar-2005)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1024 inodes, 4096 blocks
204 blocks (4.98%) reserved for the super user
First data block=1
Maximum filesystem blocks=4194304
1 block group
8192 blocks per group, 8192 fragments per group
1024 inodes per group
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@linux2 vrd]#
[root@linux2 ~]# mkdir test
[root@linux2 ~]# ls test
아무것도 없음
[root@linux2 ~]# mount /dev/vrda test
[root@linux2 ~]# ls -al test
합계 21
drwxr-xr-x 3 root root 1024 4월 22 11:52 .
drwxr-x--- 22 root root 4096 4월 22 11:47 ..
drwx------ 2 root root 12288 4월 22 11:52 lost+found
테스트
[root@linux2 ~]# cp /etc/p*
[root@linux2 ~]# cd test
[root@linux2 test]# cp /etc/p* .
cp: omitting directory `/etc/pam.d'
cp: omitting directory `/etc/pango'
cp: omitting directory `/etc/pcmcia'
cp: omitting directory `/etc/php.d'
cp: omitting directory `/etc/pki'
cp: omitting directory `/etc/ppp'
cp: omitting directory `/etc/profile.d'
[root@linux2 test]# ls -al
해제
[root@linux2 ~]# umount test
[root@linux2 ~]# ls test
아무것도 없음
다시 mount
[root@linux2 ~]# mount /dev/vrda test
[root@linux2 ~]# ls -al test
합계 432
drwxr-xr-x 3 root root 1024 4월 22 11:54 .
drwxr-x--- 22 root root 4096 4월 22 11:47 ..
drwx------ 2 root root 12288 4월 22 11:52 lost+found
-rw-r--r-- 1 root root 10 4월 22 11:54 pam_smb.conf
-rw-r--r-- 1 root root 1891 4월 22 11:54 passwd
-rw------- 1 root root 1850 4월 22 11:54 passwd-
-rw-r--r-- 1 root root 1844 4월 22 11:54 passwd.OLD
-rw-r--r-- 1 root root 1362 4월 22 11:54 pbm2ppa.conf
-rw-r--r-- 1 root root 657 4월 22 11:54 pear.conf
-rw-r--r-- 1 root root 44117 4월 22 11:54 php.ini
-rw-r--r-- 1 root root 2888 4월 22 11:54 pinforc
-rw-r--r-- 1 root root 6300 4월 22 11:54 pnm2ppa.conf
-rw-r--r-- 1 root root 340940 4월 22 11:54 prelink.cache
-rw-r--r-- 1 root root 821 4월 22 11:54 prelink.conf
-rw-r--r-- 1 root root 218 4월 22 11:54 printcap
-rw-r--r-- 1 root root 840 4월 22 11:54 profile
-rw-r--r-- 1 root root 5834 4월 22 11:54 protocols
-rw-r--r-- 1 root root 134 4월 22 11:54 pwdb.conf
컸다 키면 다 날아감..
정리
[root@linux2 ~]# rmmod vrd
2.6에 devfs 파일 시스템에서 mknod하는 api 함수들이 소개되었다.
그러나, 최근에 sysfs 파일시스템에서 제공하는 api 함수들이 생기면서 이런 작업들을 다 포함하게 되었다..
내용은 별거 없는데, 왜이리 비슷한 반복이다. class, bus 등록하는거다.. 귀찮지만, linux 2.6에서는 권장이란다.
'c or linux' 카테고리의 다른 글
리눅스 프로세스 절대 위치 찾기 (0) | 2011.06.02 |
---|---|
GDB 테스트하기 (0) | 2011.05.11 |
개념 정리 (0) | 2011.04.22 |
[공부중] 커널모듈을 zImage로 넣기 & 커널모듈을 동적 모듈로 로딩하기 (0) | 2011.04.22 |
[공부중] mmap 예제 (0) | 2011.04.21 |