author | Christian Taedcke <hacking@taedcke.com> |
Tue, 08 Nov 2011 09:52:40 +0000 | |
changeset 688 | 514108c6e4c4 |
parent 391 | 7802a7d5584f |
permissions | -rw-r--r-- |
391
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
1 |
#!/bin/sh |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
2 |
|
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
3 |
module="canf_ktest" |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
4 |
device="canf_ktest" |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
5 |
mode="664" |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
6 |
|
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
7 |
# insert neccessary modules |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
8 |
/sbin/insmod ../../drivers/can_virtual_kernel/can_virtual.ko |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
9 |
/sbin/insmod ../../src/canfestival.ko |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
10 |
|
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
11 |
# insert module with all arguments we got |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
12 |
# and use a pathname, as newer modutils don't look in . by default |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
13 |
/sbin/insmod ./$module.ko $* || exit 1 |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
14 |
|
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
15 |
# remove stale nodes |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
16 |
rm -f /dev/${device} |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
17 |
|
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
18 |
# create device file |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
19 |
major=$(awk "\$2==\"$device\" {print \$1; exit}" /proc/devices) |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
20 |
mknod /dev/${device} c $major 0 |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
21 |
|
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
22 |
# give appropriate group/permissions, and change the group. |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
23 |
# Not all distributions have staff, some have "wheel" instead. |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
24 |
group="staff" |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
25 |
grep -q '^staff:' /etc/group || group="wheel" |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
26 |
chgrp $group /dev/${device} |
7802a7d5584f
Accepted Vladimir Chren linux kernelspace port patch.
etisserant
parents:
diff
changeset
|
27 |
chmod $mode /dev/${device} |