1 |
#!/bin/sh |
#!/bin/sh |
2 |
# $Header: /home/cvsd/magellan-cvs/magellan-src/mkinitrd/lib/linuxrc.sh,v 1.1 2006-02-21 00:02:17 niro Exp $ |
# $Header: /home/cvsd/magellan-cvs/magellan-src/mkinitrd/lib/linuxrc.sh,v 1.8 2007-04-29 20:55:30 niro Exp $ |
3 |
|
|
4 |
# loads given kernel modules |
# loads given kernel modules |
5 |
load_kernel_modules() |
load_kernel_modules() |
56 |
DOSCSI=no |
DOSCSI=no |
57 |
DOUSB=no |
DOUSB=no |
58 |
DOSATA=no |
DOSATA=no |
59 |
|
NOPATA=no |
60 |
|
|
61 |
## starts here ## |
## starts here ## |
62 |
|
|
67 |
# silencio |
# silencio |
68 |
echo 0 > /proc/sys/kernel/printk |
echo 0 > /proc/sys/kernel/printk |
69 |
|
|
|
echo "-- Creating inital device nodes ..." |
|
|
mount -o mode=0755 -t tmpfs udev /dev |
|
|
mkdir /dev/pts |
|
|
mkdir /dev/shm |
|
|
mkdir /dev/mapper |
|
|
mknod /dev/console c 5 1 |
|
|
mknod /dev/null c 1 3 |
|
|
mknod /dev/ram b 1 1 |
|
|
mknod /dev/rtc c 10 135 |
|
|
mknod /dev/systty c 4 0 |
|
|
mknod /dev/tty c 5 0 |
|
|
mknod /dev/zero c 1 5 |
|
|
mknod /dev/tty0 c 4 0 |
|
|
mknod /dev/tty1 c 4 1 |
|
|
mknod /dev/tty2 c 4 2 |
|
|
mknod /dev/tty3 c 4 3 |
|
|
mknod /dev/tty4 c 4 4 |
|
|
mknod /dev/tty5 c 4 5 |
|
|
mknod /dev/tty6 c 4 6 |
|
|
mknod /dev/tty7 c 4 7 |
|
|
mknod /dev/tty8 c 4 8 |
|
|
mknod /dev/tty9 c 4 9 |
|
|
mknod /dev/tty10 c 4 10 |
|
|
mknod /dev/tty11 c 4 11 |
|
|
mknod /dev/tty12 c 4 12 |
|
|
mknod /dev/ttyS0 c 4 64 |
|
|
mknod /dev/ttyS1 c 4 65 |
|
|
mknod /dev/ttyS2 c 4 66 |
|
|
mknod /dev/ttyS3 c 4 67 |
|
|
|
|
|
echo "-- Starting udevd ..." |
|
|
ln -snf bin /sbin |
|
|
/sbin/udevstart |
|
|
ln -snf /proc/self/fd /dev/fd |
|
|
ln -snf fd/0 /dev/stdin |
|
|
ln -snf fd/1 /dev/stdout |
|
|
ln -snf fd/2 /dev/stderr |
|
|
ln -snf /proc/kcore /dev/core |
|
|
touch /dev/.udev |
|
|
|
|
|
echo "-- Setting up hotplug ..." |
|
|
#echo "/sbin/hotplug" > /proc/sys/kernel/hotplug |
|
|
echo "/sbin/udev" > /proc/sys/kernel/hotplug |
|
|
|
|
70 |
# check command line for params |
# check command line for params |
71 |
for i in $(cat /proc/cmdline) |
for i in $(cat /proc/cmdline) |
72 |
do |
do |
80 |
dosata) |
dosata) |
81 |
DOSATA=yes |
DOSATA=yes |
82 |
;; |
;; |
83 |
|
nopata) |
84 |
|
NOPATA=yes |
85 |
|
;; |
86 |
esac |
esac |
87 |
done |
done |
88 |
|
|
89 |
# now load all needed modules |
# now load all needed modules |
90 |
load_kernel_modules "generic" |
load_kernel_modules "generic" |
91 |
|
[ "${NOPATA}" != "yes" ] && load_kernel_modules "pata" |
92 |
[ "${DOSCSI}" = "yes" ] && load_kernel_modules "scsi" |
[ "${DOSCSI}" = "yes" ] && load_kernel_modules "scsi" |
93 |
[ "${DOUSB}" = "yes" ] && load_kernel_modules "usb" |
[ "${DOUSB}" = "yes" ] && load_kernel_modules "usb" |
94 |
[ "${DOSATA}" = "yes" ] && load_kernel_modules "sata" |
[ "${DOSATA}" = "yes" ] && load_kernel_modules "sata" |
105 |
|
|
106 |
# needed for the usbstick, the timeout maybe to short |
# needed for the usbstick, the timeout maybe to short |
107 |
if [ "${DOUSB}" = "yes" ]; then |
if [ "${DOUSB}" = "yes" ]; then |
108 |
echo "-- Waiting 3 seconds for possible usb mount ..." |
echo "-- Waiting 8 seconds for possible usb mount ..." |
109 |
sleep 3 |
sleep 8 |
110 |
fi |
fi |
111 |
|
|
112 |
# searching cdrom with cdid |
# searching cdrom with cdid |
116 |
echo "Searching for a boot device ..." |
echo "Searching for a boot device ..." |
117 |
|
|
118 |
# searching usbstick |
# searching usbstick |
119 |
check_drives "/dev/scsi/host[0-99]/bus[0-99]/target[0-99]/lun[0-99]/part[0-99]" "vfat" |
if [ "${DOUSB}" = "yes" ]; then |
120 |
|
check_drives "/dev/sd*" "vfat" |
121 |
|
check_drives "/dev/sg*" "vfat" |
122 |
|
fi |
123 |
|
|
124 |
# for cdrom_device in $CDROM_LIST (ide) |
# for cdrom_device in $CDROM_LIST (ide) |
125 |
check_drives "/dev/cdroms/*" iso9660 |
check_drives "/dev/cdroms/*" iso9660 |
126 |
check_drives "/dev/hd*" iso9660 |
check_drives "/dev/hd*" iso9660 |
127 |
|
|
128 |
# scsi cdroms |
# scsi cdroms |
129 |
check_drives "/dev/sr*" iso9660 |
if [ "${DOSCSI}" = "yes" ] || [ "${DOSATA}" = "yes" ]; then |
130 |
|
check_drives "/dev/sr*" iso9660 |
131 |
|
check_drives "/dev/sg*" iso9660 |
132 |
|
check_drives "/dev/scd*" iso9660 |
133 |
|
fi |
134 |
|
|
135 |
# mount our rootfs from cdrom |
# mount our rootfs from cdrom |
136 |
if [ "${BOOT_DEVICE}" = "" ] |
if [ "${BOOT_DEVICE}" = "" ] |
159 |
do |
do |
160 |
ln -s mnt/cloop/${x} ${x} |
ln -s mnt/cloop/${x} ${x} |
161 |
done |
done |
162 |
mkdir -p initrd proc tmp sys var/tmp dev |
mkdir -p initrd proc tmp sys var/tmp dev media |
|
chmod 1777 tmp var/tmp |
|
163 |
|
|
164 |
# make /sysroot/dev/console & /mnt/dev/null |
# make /sysroot/dev/console & /mnt/dev/null |
165 |
[ ! -e /sysroot/dev/console ] && mknod -m 600 /sysroot/dev/console c 5 1 |
[ ! -e /sysroot/dev/console ] && mknod -m 600 /sysroot/dev/console c 5 1 |
167 |
|
|
168 |
(cd /sysroot/mnt/cloop; cp -a etc root home var /sysroot) |
(cd /sysroot/mnt/cloop; cp -a etc root home var /sysroot) |
169 |
|
|
170 |
# shurely change to correct permissions |
# ensure the right permissions |
171 |
chmod 1777 /sysroot/tmp |
chmod 1777 /sysroot/tmp |
172 |
chmod 1777 /sysroot/var/tmp |
chmod 1777 /sysroot/var/tmp |
173 |
fi |
fi |