임베디드 디바이스 드라이버 소스(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에서는 권장이란다.






Posted by 김용환 '김용환'

댓글을 달아 주세요