scull_load
上传用户:wudi5211
上传日期:2010-01-21
资源大小:607k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

C/C++

  1. #!/bin/sh
  2. module="scull"
  3. device="scull"
  4. mode="664"
  5. # Group: since distributions do it differently, look for wheel or use staff
  6. if grep '^staff:' /etc/group > /dev/null; then
  7.     group="staff"
  8. else
  9.     group="wheel"
  10. fi
  11. # invoke insmod with all arguments we got
  12. # and use a pathname, as newer modutils don't look in . by default
  13. /sbin/insmod -f ./$module.o $* || exit 1
  14. major=`cat /proc/devices | awk "\$2=="$module" {print \$1}"`
  15. # Remove stale nodes and replace them, then give gid and perms
  16. # Usually the script is shorter, it's scull that has several devices in it.
  17. rm -f /dev/${device}[0-3]
  18. mknod /dev/${device}0 c $major 0
  19. mknod /dev/${device}1 c $major 1
  20. mknod /dev/${device}2 c $major 2
  21. mknod /dev/${device}3 c $major 3
  22. ln -sf ${device}0 /dev/${device}
  23. chgrp $group /dev/${device}[0-3] 
  24. chmod $mode  /dev/${device}[0-3]
  25. rm -f /dev/${device}priv
  26. mknod /dev/${device}priv  c $major 16
  27. chgrp $group /dev/${device}priv
  28. chmod $mode  /dev/${device}priv
  29. rm -f /dev/${device}pipe[0-3]
  30. mknod /dev/${device}pipe0 c $major 32
  31. mknod /dev/${device}pipe1 c $major 33
  32. mknod /dev/${device}pipe2 c $major 34
  33. mknod /dev/${device}pipe3 c $major 35
  34. ln -sf ${device}pipe0 /dev/${device}pipe
  35. chgrp $group /dev/${device}pipe[0-3] 
  36. chmod $mode  /dev/${device}pipe[0-3]
  37. rm -f /dev/${device}single
  38. mknod /dev/${device}single  c $major 48
  39. chgrp $group /dev/${device}single
  40. chmod $mode  /dev/${device}single
  41. rm -f /dev/${device}uid
  42. mknod /dev/${device}uid   c $major 64
  43. chgrp $group /dev/${device}uid
  44. chmod $mode  /dev/${device}uid
  45. rm -f /dev/${device}wuid
  46. mknod /dev/${device}wuid  c $major 80
  47. chgrp $group /dev/${device}wuid
  48. chmod $mode  /dev/${device}wuid