File: load_module.sh

package info (click to toggle)
bochs 2.3-2etch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 14,116 kB
  • ctags: 16,927
  • sloc: cpp: 130,524; ansic: 18,822; sh: 7,922; makefile: 3,836; yacc: 1,056; asm: 463; perl: 381; lex: 280; csh: 3
file content (55 lines) | stat: -rwxr-xr-x 1,354 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#! /bin/bash
#
# A simple script to load up the kernel module and create the device nodes
# for it.
#
# Note:
# this must be run as root
#

# Work out where the module is
kmodule="`dirname $0`/../kernel/plex86.o"

# Check that root is executing us
if [ "$EUID" != "0" ]; then
    echo "Sorry, you need to be root for this script to work."
    echo "use 'su -c $0' and enter the root password when prompted"
    exit -1
fi

# Check if the module exists
if [ ! -f "$kmodule" ]; then
    echo "The kernel module ($kmodule) does not exist!"
    exit -1
fi

# Check if the module is already loaded
if [ "x`grep plex86 /proc/devices`" != "x" ]; then
    echo "The kernel module is already loaded!"
    exit -1
fi

# Remove any stale device nodes
# (extend for any minor devices created in the future)
rm -f /dev/plex86

# Load up the module with insmod
/sbin/insmod $kmodule

# Check if the module loaded
major=`grep plex86 /proc/devices | awk '/plex86/ {print $1;}'`
if [ "x$major" = "x" ]; then
    echo "The kernel module failed to load!"
    exit -1
fi

# Create the device node and set its permissions
# (extend for any minor devices created in the future)
if [ ! -c /dev/plex86 ]; then
    /bin/mknod /dev/plex86 c $major 0
fi
chmod a+rw /dev/plex86

# Job done - Give a little positive feedback
echo "The kernel module is sucessfully installed."
exit 0