linux字符设备模块加载脚本 发表于 2014-03-13 | 分类于 Kernel , 设备驱动 设备号动态分配的字符设备模块加载及设备节点创建脚本:(摘自LDD3)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#!/bin/sh# $Id: scull_load,v 1.4 2004/11/03 06:19:49 rubini Exp $module="scull"device="scull"mode="664"# Group: since distributions do it differently, look for wheel or use staffif grep -q '^staff:' /etc/group; then group="staff"else group="wheel"fi# invoke insmod with all arguments we got# and use a pathname, as insmod doesn't look in . by default/sbin/insmod ./$module.ko $* || exit 1# retrieve major numbermajor=$(awk "\$2==\"$module\" {print \$1}" /proc/devices)# Remove stale nodes and replace them, then give gid and perms# Usually the script is shorter, it's scull that has several devices in it.rm -f /dev/${device}[0-3]mknod /dev/${device}0 c $major 0mknod /dev/${device}1 c $major 1mknod /dev/${device}2 c $major 2mknod /dev/${device}3 c $major 3ln -sf ${device}0 /dev/${device}chgrp $group /dev/${device}[0-3]chmod $mode /dev/${device}[0-3]rm -f /dev/${device}pipe[0-3]mknod /dev/${device}pipe0 c $major 4mknod /dev/${device}pipe1 c $major 5mknod /dev/${device}pipe2 c $major 6mknod /dev/${device}pipe3 c $major 7ln -sf ${device}pipe0 /dev/${device}pipechgrp $group /dev/${device}pipe[0-3]chmod $mode /dev/${device}pipe[0-3]rm -f /dev/${device}singlemknod /dev/${device}single c $major 8chgrp $group /dev/${device}singlechmod $mode /dev/${device}singlerm -f /dev/${device}uidmknod /dev/${device}uid c $major 9chgrp $group /dev/${device}uidchmod $mode /dev/${device}uidrm -f /dev/${device}wuidmknod /dev/${device}wuid c $major 10chgrp $group /dev/${device}wuidchmod $mode /dev/${device}wuidrm -f /dev/${device}privmknod /dev/${device}priv c $major 11chgrp $group /dev/${device}privchmod $mode /dev/${device}priv 获取动态分配到的主设备号:12# retrieve major numbermajor=$(awk "\$2==\"$module\" {print \$1}" /proc/devices)