more init fixes
[hdw-linux/hdw-linux.git] / packages / base / 00-init-conf / 00-init-conf
1 # hdw - linux 00-int-conf package
2 #
3 # author: hackbard@hackdaworld.dyndns.org
4 #
5 # we don't need source
6 # [S] 2-17
7 # [V] 0.1
8
9 custmain="1"
10
11 custmain()      {
12         # check for minit/sysvinit
13         if [ ! -d $root/etc/minit ]; then
14                 # copy init scripts
15                 cp -v ${hdw_home_dir}/misc/sysfiles/etc/init.d/[!C]* \
16                         $root/etc/init.d
17                 # linking in rc2.d
18                 ((counter=0)); ((counter2=100))
19                 for i in sysklogd cron network nscd; do
20                 ((counter+=10)); ((counter2-=10))
21                 ln -vfs ../$i $root/etc/init.d/rc2.d/S`echo $counter`$i
22                 ln -vfs ../$i $root/etc/init.d/rc2.d/K`echo $counter2`$i
23                 done
24                 # symbolic link to sbin
25                 rm -f $root/sbin/init.d
26                 ln -svf ../etc/init.d $root/sbin/init.d
27         else
28                 # create minit files
29                 mkdir -p $root/etc/minit/default
30                 rm -f $root/etc/minit/default/depends
31                 # trivial initis
32                 for i in $confdir/*.init; do
33                         create_init $i
34                         echo "`basename $i | awk -F. '{ print $1 }'`" >> \
35                                 $root/etc/minit/default/depends
36                 done
37                 # none trivial inits
38                 for i in getty krng ofid clean klogd keymap; do
39                         mkdir -p $root/etc/minit/$i
40                         echo $i >> $root/etc/minit/default/depends
41                 done
42                 # clean
43                 cat > $root/etc/minit/clean/run << EOF
44 #!/bin/bash
45 cp -f /dev/null /etc/mtab
46 rm -f /var/run/* /var/lock/* /var/lock/*/*
47 touch /var/run/utmp ; chmod 664 /var/run/utmp ; chown root.tty /var/run/utmp
48 EOF
49                 touch $root/etc/minit/clean/sync
50                 echo "mount" > $root/etc/minit/clean/depends
51                 # klogd
52                 cat > $root/etc/minit/klogd/run << EOF
53 #!/bin/bash
54 echo "writing /var/log/boot.msg ..."
55 klogd -f /var/log/boot.new -o
56 grep '.' < /var/log/boot.new > /var/log/boot.msg
57 rm /var/log/boot.new
58 EOF
59                 touch $root/etc/minit/klogd/sync
60                 # keymap
61                 cat > $root/etc/minit/keymap/run << EOF
62 #!/bin/bash
63 echo "setting keyboard keymappings ..."
64 if [ -L /etc/default.keymap ] ; then
65         oldpwd="`pwd`" ; cd /etc
66         loadkeys `ls -l default.keymap | tr -s ' ' | cut -f11 -d' '`
67         cd "$oldpwd" ; unset oldpwd
68 elif [ -f /etc/default.keymap ] ; then
69         loadkeys /etc/default.keymap
70 else
71         echo "no /etc/default.keymap found, no keymap loaded."
72 fi
73 EOF
74                 touch $root/etc/minit/keymap/sync
75                 # ofid
76                 cat > $root/etc/minit/ofid/run << EOF
77 #!/bin/bash
78 echo 'setting overflow uid and gid kernel parameters ...'
79 sysctl -w kernel.overflowuid=`id -u nobody` | tr -d '\n'
80 echo -n ', ' ; sysctl -w kernel.overflowgid=`id -g nobody`
81 EOF
82                 # krng
83                 cat > $root/etc/minit/krng/run << EOF
84 #!/bin/bash
85 echo "initializing kernel random number generator ..."
86 [ -f /var/state/random-seed ] && cat /var/state/random-seed >/dev/urandom
87 dd if=/dev/urandom of=/var/state/random-seed count=1 2> /dev/null
88 EOF
89                 # getty's
90                 # check for {f,a}getty
91                 my_getty="agetty" getty_opt="-f /etc/issue 38400 vc/\$i linux"
92                 if [ -f $root/sbin/fgetty ] ; then
93                         echo "fyi: using fgetty ..."
94                         my_getty="fgetty" 
95                         getty_opt="vc/\$i --noclear"
96                 fi
97                 for i in 1 2 3 4 5 6; do
98                         mkdir -p $root/etc/minit/getty/$i
99                         rm -f $root/etc/minit/getty/$i/{run,params,depends}
100                         touch $root/etc/minit/getty/$i/respawn
101                         for param in $getty_opt; do
102                                 echo "$param" >> $root/etc/minit/getty/$i/params
103                         done
104                         ln -sv $root/sbin/$my_getty $root/etc/minit/getty/$i/run
105                 done
106         fi      
107                 }