====== Boot-scripts (source, 20150429) ======
The scripts in their present state are available at the [[http://git.tinycorelinux.net/index.cgi?url=dCore-scripts.git/|GIT-repository]].
===== 'init' (on initrd) =====
1 #!/bb/ash
2 /bb/mount proc
3 /bb/grep -qw multivt /proc/cmdline && /bb/sed -i s/^#tty/tty/ /etc/inittab
4 if ! /bb/grep -qw noembed /proc/cmdline; then
5 /bb/mount / -o remount,size=90%
6 /bb/umount proc
7 exec /bb/init
8 fi
9 /bb/umount proc
10 if /bb/mount -t tmpfs -o size=90% tmpfs /mnt; then
11 if /bb/tar -C / --exclude=mnt -cf - . | /bb/tar -C /mnt/ -xf - ; then
12 /bb/mkdir /mnt/mnt
13 exec /bb/switch_root mnt /bb/init
14 fi
15 fi
16 exec /bb/init
===== '/etc/inittab' =====
1 # /etc/inittab: init configuration for busybox init.
2 # Boot-time system configuration/initialization script.
3 #
4 ::sysinit:/etc/init.d/rcS
5
6 # /bb/getty respawn shell invocations for selected ttys.
7 tty1::respawn:/bb/getty -nl /sbin/autologin 38400 tty1
8 #tty2::respawn:/bb/getty 38400 tty2
9 #tty3::respawn:/bb/getty 38400 tty3
10 #tty4::askfirst:/bb/getty 38400 tty4
11 #tty5::askfirst:/bb/getty 38400 tty5
12 #tty6::askfirst:/bb/getty 38400 tty6
13
14 # Stuff to do when restarting the init
15 # process, or before rebooting.
16 ::restart:/etc/init.d/rc.shutdown
17 ::restart:/bb/init
18 ::ctrlaltdel:/bb/reboot
19 ::shutdown:/etc/init.d/rc.shutdown
===== '/etc/init.d/rcS' =====
1 #!/bb/ash
2 # RC Script for Tiny Core Linux
3 # (c) Robert Shingledecker 2004-2012
4
5 # Mount /proc.
6 [ -f /proc/cmdline ] || /bb/mount /proc
7
8 # Remount rootfs rw.
9 /bb/mount -o remount,rw /
10
11 # Mount system devices from /etc/fstab.
12 /bb/mount -a
13
14 /etc/init.d/tc-config
===== '/etc/init.d/tc-config' =====
1 #!/bb/ash
2 # RC Script for Tiny Core Linux
3 # (c) Robert Shingledecker 2004-2012
4 # Several modifications for speed by Curaga
5 . /etc/init.d/tc-functions
6
7 PATH="/bb:/bin:/sbin:/usr/bin:/usr/sbin"
8 export PATH
9 USER="tc"
10 TCEDIR="/tmp/tce"
11 TCLOOP="/tmp/tcloop"
12 TCEINSTALLED="/usr/local/tce.installed"
13 INSTALLED=""
14 VERSION="$(cat /usr/share/doc/tc/release.txt)"
15 KERNEL="$(uname -r)"
16
17 addUser(){
18 echo "${GREEN}Adding user ${YELLOW} $USER ${NORMAL}"
19 /bb/adduser -s /bb/sh -G staff -D "$USER"
20 echo "$USER":tcuser | /bb/chpasswd -m
21 echo -e "$USER\tALL=NOPASSWD: ALL" >> /etc/sudoers
22 }
23
24 ### END functions
25
26 # Main
27 clear
28 echo "${GREEN}Booting ${YELLOW}dCore $VERSION ${NORMAL}"
29 echo "${GREEN}Running Linux Kernel ${YELLOW}$KERNEL${GREEN}.${NORMAL}"
30 export PATH=/usr/local/sbin:/usr/local/bin:"$PATH"
31
32 # Here we check all the boot parameters using the fastest way known to men, case & loop
33 echo -n "${BLUE}Checking boot options...${NORMAL}"
34 for i in `cat /proc/cmdline`; do
35 case $i in
36 *=*)
37 case $i in
38 waitusb*) WAITUSB=${i#*=} ;;
39 lang*) LANGUAGE=${i#*=} ;;
40 kmap*) KEYMAP=${i#*=} ;;
41 tz*) TZ=${i#*=} ;;
42 desktop*) DESKTOP=${i#*=} ;;
43 icons*) ICONS=${i#*=} ;;
44 noicons*) NOICONS=${i#*=} ;;
45 user*) USER=${i#*=} ;;
46 home*) MYHOME=${i#*=} ;;
47 tcvd*) TCVD=${i#*=} ;;
48 opt*) MYOPT=${i#*=} ;;
49 swapfile*) SWAPFILE=${i#*=} ;;
50 resume*) RESUME=${i#*=} ;;
51 host*) HOST=1 ;;
52 nfsmount* ) NFSMOUNT=${i#*=} ;;
53 tftplist* ) TFTPLIST=${i#*=} ;;
54 httplist* ) HTTPLIST=${i#*=} ;;
55 aoe* ) AOE=${i#*=} ;;
56 nbd* ) NBD=${i#*=} ;;
57 mydata* ) MYDATA=${i#*=} ;;
58 pretce* ) PRETCE=${i#*=} ;;
59 xvesa* ) XVESA=${i#*=} ;;
60 rsyslog=* ) RSYSLOG=${i#*=}; SYSLOG=1 ;;
61 blacklist* ) BLACKLIST="$BLACKLIST ${i#*=}" ;;
62 iso* ) ISOFILE=${i#*=} ;;
63 esac
64 ;;
65 *)
66 case $i in
67 checkfs) CHECKFS=1 ;;
68 nozswap) NOZSWAP=1 ;;
69 nofstab) NOFSTAB=1 ;;
70 nortc) NORTC=1 ;;
71 syslog) SYSLOG=1 ;;
72 noutc) NOUTC=1 ;;
73 nodhcp) NODHCP=1 ;;
74 noicons) NOICONS=1 ;;
75 text) TEXT=1 ;;
76 xonly) XONLY=1 ;;
77 superuser) SUPERUSER=1 ;;
78 noswap) NOSWAP=1 ;;
79 secure) SECURE=1 ;;
80 protect) PROTECT=1 ;;
81 cron) CRON=1 ;;
82 xsetup) XSETUP=1 ;;
83 laptop) LAPTOP=1 ;;
84 base) ONLYBASE=1 ;;
85 showapps) SHOWAPPS=1 ;;
86 norestore) NORESTORE=1 ;;
87 noautologin) NOAUTOLOGIN=1 ;;
88 pause) PAUSE=1 ;;
89 esac
90 ;;
91 esac
92 done
93 echo "${GREEN}Done.${NORMAL}"
94
95 if [ -n "$BLACKLIST" ]; then
96 mkdir -p /etc/modprobe.d
97 for i in $BLACKLIST; do
98 echo "$i" | tr ',' '\n' | while read j ; do
99 echo "blacklist $j" >> /etc/modprobe.d/blacklist.conf
100 done
101 done
102 fi
103
104 # Start Udev to populate /dev and handle hotplug events
105 echo -n "${BLUE}Starting udev daemon for hotplug support...${NORMAL}"
106 #/sbin/udevd --daemon 2>/dev/null >/dev/null
107 /sbin/udevd --daemon 2>&1 >/dev/null
108 #/sbin/udevadm trigger --action=add 2>/dev/null >/dev/null &
109 /sbin/udevadm trigger --action=add 2>&1 >/dev/null &
110 [ -x /etc/init.d/tc-mkdev ] && /etc/init.d/tc-mkdev
111 /usr/bin/rotdash $!
112 echo "${GREEN}Done.${NORMAL}"
113
114 [ -n "$WAITUSB" ] && (
115 case $WAITUSB in
116 *LABEL*)
117 timeout=${WAITUSB%:*}
118 ID=${WAITUSB#*:}
119 PART=${ID#*=}
120 mkdir /tmp/testusbdevice
121 while [ $timeout -gt 0 ]; do
122 echo -en "${BLUE}\rWaiting as requested ... ${NORMAL} $timeout "
123 timeout=$(($timeout - 1))
124 DEV1=$(blkid -L "$PART")
125 sleep 1
126 [ -n "$DEV1" ] || continue
127 /bb/mount "$DEV1" /tmp/testusbdevice > /dev/null 2>&1 && timeout=0
128
129 done
130 umount "$DEV1"
131 rmdir /tmp/testusbdevice
132 echo
133 ;;
134 *UUID*)
135 timeout=${WAITUSB%:*}
136 ID=${WAITUSB#*:}
137 PART=${ID#*=}
138 mkdir /tmp/testusbdevice
139
140 while [ $timeout -gt 0 ]; do
141 echo -en "${BLUE}\rWaiting as requested ... ${NORMAL} $timeout "
142 timeout=$(($timeout - 1))
143 DEV1=$(blkid -U "$PART")
144 sleep 1
145 [ -n "$DEV1" ] || continue
146 /bb/mount "$DEV1" /tmp/testusbdevice > /dev/null 2>&1 && timeout=0
147
148 done
149 umount "$DEV1"
150 rmdir /tmp/testusbdevice
151 echo
152 ;;
153 *) sleep "$WAITUSB"
154 ;;
155 esac
156 )
157
158 modprobe loop 2>/dev/null
159 modprobe ohci_hcd 2>/dev/null
160
161 #if [ -n "$NOZSWAP" ]; then
162 # echo "${BLUE}Skipping compressed swap in ram as requested from the boot command line.${NORMAL}"
163 #else
164 # modprobe -q zram
165 # modprobe -q zcache
166 #
167 # while [ ! -e /dev/zram0 ]; do usleep 50000; done
168 # grep MemFree /proc/meminfo | awk '{print $2/4 "K"}' > /sys/block/zram0/disksize
169 # mkswap /dev/zram0 >/dev/null 2>&1
170 # swapon /dev/zram0
171 # echo "/dev/zram0 swap swap defaults,noauto 0 0" >> /etc/fstab # Lets swapoff -a work
172 #fi
173
174 if [ -n "$NOFSTAB" ]; then
175 echo "${BLUE}Skipping /etc/fstab creation as requested from the boot command line.${NORMAL}"
176 else
177 echo "${BLUE}Scanning hard disk partitions to create ${YELLOW}/etc/fstab ${NORMAL}"
178 modprobe scsi_wait_scan 2>/dev/null
179 /usr/sbin/rebuildfstab & fstab_pid=$!
180 mv /tmp/98-tc.rules /etc/udev/rules.d/. 2>/dev/null
181 /sbin/udevadm control --reload-rules &
182 fi
183
184 checkfs() {
185 FS=/dev/"$1"
186 if ! grep "^$FS$" /tmp/checkfs > /dev/null 2>&1; then
187 if grep "$FS" /etc/mtab > /dev/null 2>&1; then
188 :
189 else
190 if grep "$FS" /etc/fstab | grep ext[2,3,4] > /dev/null 2>&1; then
191 e2fsck -n "$FS" > /tmp/checkfs."$1" 2>&1
192 if [ "$?" != "0" ]; then
193 echo "$FS" "$2" >> /tmp/checkfs.errors
194
195 echo -n "${YELLOW}"$FS" ${RED}being used for "$2" contains filesystem errors. Advised to reboot \
196 with "base" option to fix them. Proceed anyway? (y/N:)"
197 read ans
198 if [ "$ans" == "y" ] || [ "$ans" == "Y" ]; then
199 :
200 else
201 echo "${YELLOW}Rebooting..${NORMAL}"
202 /bb/reboot
203 fi
204 fi
205 echo "$FS" >> /tmp/checkfs
206 else
207 echo "Filesystem is not ext[2,3,4] and cannot be checked." > /tmp/checkfs."$1"
208 fi
209 fi
210 fi
211 }
212
213 if [ -n "$SYSLOG" ]; then
214 [ -z "$RSYSLOG" ] || SOPTS=" -L -R $RSYSLOG "
215 /bb/syslogd ${SOPTS} && echo "${GREEN}syslog started.${NORMAL}"
216 /bb/klogd && echo "${GREEN}klog started."
217 fi
218
219 [ -n "$LANGUAGE" ] || LANGUAGE="C"
220 echo -n "${GREEN}Setting Language to ${MAGENTA}$LANGUAGE"
221 echo "LANG=$LANGUAGE" > /etc/sysconfig/language
222 export LANG=$LANGUAGE
223 echo "${GREEN} Done.${NORMAL}"
224
225 if [ -n "$TZ" ]; then
226 echo -n "${GREEN}Setting Timezone to ${MAGENTA}$TZ"
227 export TZ && echo "TZ=$TZ" > /etc/sysconfig/timezone
228 echo "${GREEN} Done.${NORMAL}"
229 fi
230
231 #if [ -n "$NORTC" ]; then
232 # echo "${BLUE}Skipping rtc as requested from the boot command line.${NORMAL}"
233 #else
234 # while [ ! -e /dev/rtc0 ]; do usleep 50000; done
235 # if [ -n "$NOUTC" ]; then
236 # hwclock -l -s &
237 # else
238 # hwclock -u -s &
239 # fi
240 #fi
241
242 if [ -n "$HOST" ]; then
243 sethostname
244 else
245 /bb/hostname -F /etc/hostname
246 fi
247
248 /bb/ifconfig lo 127.0.0.1 up
249 /bb/route add 127.0.0.1 lo &
250
251 if [ -n "$AOE" ]; then
252 IFACE=$( echo $AOE | awk -F: '{ print $1 }')
253 DEV=$( echo $AOE | awk -F: '{ print $2 }')
254 ifconfig $IFACE up
255 modprobe aoe
256 echo "${BLUE}Waiting for $DEV${NORMAL}"
257 CNT=120
258 until [ -e /dev/etherd/interfaces ]
259 do
260 [ $((--CNT)) -le 0 ] && break
261 echo -ne "${RED}$CNT \r"
262 sleep 1
263 done
264 printf "%s\0" $IFACE > /dev/etherd/interfaces
265 echo > /dev/etherd/discover
266 until [ -e /dev/etherd/$DEV ]
267 do
268 [ $((--CNT)) -le 0 ] && break
269 echo -ne "${RED}$CNT \r"
270 sleep 1
271 done
272 if [ $CNT -gt 0 ] ; then
273 ln -s /dev/etherd/$DEV /dev/$DEV
274 mkdir -p /mnt/$DEV
275 mount /dev/$DEV /mnt/$DEV >/dev/null 2>&1
276 else
277 echo -ne "\n$DEV NOT mounted! Press " ; read junk
278 fi
279 echo "${NORMAL}"
280 fi
281
282 # dhcp.sh runs udhcpc async, so it exits before network is up
283 wait4Server() {
284 /etc/init.d/dhcp.sh
285 SERVER=$1 ; NOPING=$2 ; CNT=0
286 if [ "$NOPING" == "1" ] ; then
287 until ifconfig | grep -q Bcast
288 do
289 [ $((CNT++)) -gt 60 ] && break || sleep 1
290 done
291 sleep 1
292 else
293 until ping -c 1 $SERVER >/dev/null 2>&1
294 do
295 [ $((CNT++)) -gt 60 ] && break || sleep 1
296 done
297 fi
298 DHCP_RAN=1
299 }
300
301 if [ -n "$USER" ]; then
302 if ! grep "$USER" /etc/passwd >/dev/null; then addUser; fi
303 else
304 USER="tc"
305 fi
306 echo "$USER" > /etc/sysconfig/tcuser
307 mkdir -p /home/"$USER"
308
309 if [ -n "$SUPERUSER" ]; then
310 touch /etc/sysconfig/superuser
311 fi
312
313 # Setup base directories for TCE Applicatons
314 [ -d "$TCEINSTALLED" ] || mkdir "$TCEINSTALLED"
315 [ -d "$TCEDIR" ] || mkdir "$TCEDIR"
316 [ -d "$TCLOOP" ] || mkdir "$TCLOOP"
317 ln -sf "$TCEDIR" /etc/sysconfig/tcedir
318 chgrp staff "$TCEDIR" "$TCEINSTALLED" "$TCLOOP"
319 chmod g+w "$TCEDIR" "$TCEINSTALLED" "$TCLOOP"
320
321 chmod u+s /bin/busybox /usr/bin/sudo
322
323 get_app() {
324 LOADER=loadsce ; PKG=sce
325 PROTO=$1
326 HOST=${2%%/*}
327 REST=${2#*/}
328 LENG=$((${#HOST}-1)) ; LAST=${HOST:$LENG:1}
329 [ "$LAST" == ":" ] && HOST=${HOST:0:$LENG}
330 FILE=${REST%:*}
331 NAME=${FILE##*/}
332 OPTS=${REST#*:}
333 [ "$OPTS" == "no-ping" ] && NOPING=1 || NOPING=0
334 [ -z "$DHCP_RAN" ] && wait4Server $HOST $NOPING
335 ( TCE=/tmp/tce/$PKG
336 mkdir -p $TCE
337 cd $TCE
338 [ "$PROTO" = "TFTP" ] && tftp -g -r $FILE $HOST
339 [ "$PROTO" = "HTTP" ] && wget -q http://${HOST}/${FILE}
340 [ $SHOWAPPS ] && echo -ne "${BLUE}TFTP Loading Extensions ${YELLOW}"
341 dos2unix -u $NAME
342 while read FILE FL
343 do
344 APP=${FILE##*/}
345 [ "$PROTO" = "TFTP" ] && tftp -g -r $FILE $HOST
346 [ "$PROTO" = "HTTP" ] && wget -q http://${HOST}/${FILE}
347 [ $SHOWAPPS ] && echo -ne "$APP "
348 if [ "$FL" = "-d" ] ; then
349 ( su "$USER" -c "$LOADER $FL $TCE/$APP" ) &
350 sleep 5
351 else
352 su "$USER" -c "$LOADER $FL $TCE/$APP"
353 fi
354 [ "$FL" == "-c" ] && rm $APP
355 done < $NAME
356 [ $SHOWAPPS ] && echo "${GREEN} Done.${NORMAL}"
357 rm $NAME
358 )
359 }
360
361 # Preload drivers needed for tce/opt/home on lvm/RAID etc
362 if [ -n "$PRETCE" ]; then
363 PKG=sce ; LOADER=loadsce ; LIST=sceboot.lst
364 RAM=/tmp/tce
365 CPTOFS=""
366 if [ "$PRETCE" == "RAM" ] ; then
367 SRC=$RAM
368 else
369 PPATH=${PRETCE%%/*}
370 mkdir -p /mnt/$PPATH
371 mount /dev/$PPATH /mnt/$PPATH
372 SRC=/mnt/$PRETCE
373 [ -x $SRC/onpre.sh ] && cp $SRC/onpre.sh /tmp
374 fi
375 while read NAME OPT
376 do
377 su "$USER" -c "/usr/bin/$LOADER $SRC/$PKG/$NAME"
378 done < $SRC/$LIST
379 [ -x /tmp/onpre.sh ] && /tmp/onpre.sh
380 fi
381
382 # First process tftp and http entries
383 modprobe -q squashfs 2>/dev/null
384 [ -n "$TFTPLIST" ] && get_app "TFTP" $TFTPLIST
385 [ -n "$HTTPLIST" ] && get_app "HTTP" $HTTPLIST
386
387 if [ -n "$NFSMOUNT" ]; then
388 SERVER=$( echo $NFSMOUNT | awk -F: '{ print $1 }')
389 DIR=$( echo $NFSMOUNT | awk -F: '{ print $2 }')
390 OPTS=$( echo $NFSMOUNT | awk -F: '{ print $3 }')
391 [ "$OPTS" == "no-ping" ] && NOPING=1 || NOPING=0
392 [ -z "$DHCP_RAN" ] && wait4Server $SERVER $NOPING
393 wait $fstab_pid
394 [ -x /bin/mount ] && NOLOCK="" || NOLOCK=",nolock"
395 echo "${SERVER}:${DIR} /mnt/nfs nfs defaults${NOLOCK} 0 0" >> /etc/fstab
396 [ $SHOWAPPS ] && echo "Mounting ${SERVER}:${DIR}"
397 mkdir /mnt/nfs
398 mount /mnt/nfs >/dev/null 2>&1
399 fi
400
401 touch /var/tmp/k5_skip
402 if [ -n "$NBD" ]; then
403 modprobe -q nbd
404 SERVER=$( echo $NBD | awk -F: '{ print $1 }')
405 PORT=$( echo $NBD | awk -F: '{ print $2 }')
406 OPTS=$( echo $NBD | awk -F: '{ print $3 }')
407 [ "$OPTS" == "no-ping" ] && NOPING=1 || NOPING=0
408 [ -z "$DHCP_RAN" ] && wait4Server $SERVER $NOPING
409 nbd-client $SERVER $PORT /dev/nbd0
410 mkdir /mnt/nbd0
411 mount /dev/nbd0 /mnt/nbd0 2>&1
412 pidof nbd-client nbd0 >> /var/tmp/k5_skip
413 fi
414
415 if grep -q "^/dev/root" /proc/mounts; then
416 INSTALLED=1
417 echo "${RED}Detected Traditional Hard drive installation.${NORMAL}"
418 fi
419
420 /sbin/ldconfig 2>/dev/null
421
422 [ -n "$TEXT" ] && touch /etc/sysconfig/text
423 [ -n "$XONLY" ] && touch /etc/sysconfig/xonly
424
425 #Check for Virtual Hard Drive
426 if [ -n "$TCVD" ]; then
427 wait $fstab_pid
428 TCVD="${TCVD#/}"
429 TCVD="${TCVD#dev/}"
430 TCVD_DEVICE="${TCVD%%/*}"
431 TCVD_LOOPFILE="${TCVD#*/}"
432 if [ "$TCVD_DEVICE" == "$TCVD_LOOPFILE" ]; then
433 TCVD_DEVICE="$(autoscan $TCVD_LOOPFILE 'f')"
434 fi
435 PARTITION="${TCVD_DEVICE##/dev/}"
436 find_mountpoint "$PARTITION"
437 if [ -n "$MOUNTPOINT" ]; then
438 [ "$MOUNTED" == "yes" ] || /bb/mount "$MOUNTPOINT"
439 usleep_progress
440 if [ -f "$MOUNTPOINT"/"$TCVD_LOOPFILE" ]; then
441 [ -d /mnt/tcvd ] || /bb/mkdir /mnt/tcvd
442 ln -sf "$MOUNTPOINT"/"$TCVD_LOOPFILE" /dev/tcvd
443 printf "/dev/tcvd \t/mnt/tcvd \text2\tloop\t0 0 #Added by TC\n" >> /etc/fstab
444 sync
445 fi
446 fi
447 fi
448
449 unset HOME_SETUP
450 if [ -n "$MYHOME" ]; then
451 wait $fstab_pid
452 PARTITION=${MYHOME##/dev/}
453 find_mountpoint "$PARTITION"
454 if [ -n "$MOUNTPOINT" ]; then
455 if [ "$CHECKFS" == "1" ]; then
456 THISDEV=`echo "$MOUNTPOINT" | sed 's:/mnt/::'`
457 checkfs "$THISDEV" HOME
458 fi
459 [ "$MOUNTED" == "yes" ] || mount "$MOUNTPOINT"
460
461 MS_MNTS=`mount|awk '$5~/fat|vfat|msdos|ntfs/{printf "%s ",$3}'`
462 case "$MS_MNTS" in
463 *"$MOUNTPOINT"* )
464 echo "Persistent HOME not supported on Microsoft File Systems."
465 echo "${YELLOW}Request for persistent HOME on $PARTITION ignored."
466 echo -n "${RED}Press Enter key.${NORMAL}"; read ans
467 ;;
468 * )
469 if [ -d "$MOUNTPOINT/home/$USER" ]; then
470 echo "${GREEN}Mounting ${YELLOW}/home ${GREEN} on ${YELLOW}"$MOUNTPOINT"/home.${NORMAL}"
471 mount --bind "$MOUNTPOINT/home" /home
472 HOME_SETUP=1
473 else
474 echo "${GREEN}Mounting ${YELLOW}/home ${GREEN} on ${YELLOW}"$MOUNTPOINT"/home.${NORMAL}"
475 mkdir -p "$MOUNTPOINT/home/$USER"
476 mount --bind "$MOUNTPOINT/home" /home
477 fi
478 ;;
479 esac
480
481 else
482 echo "Invalid device specified. Ignoring persistent HOME request!"
483 fi
484 fi
485
486 setupHome
487
488 unset OPT_SETUP
489 if [ -n "$MYOPT" ]; then
490 wait $fstab_pid
491 PARTITION=${MYOPT##/dev/}
492 find_mountpoint "$PARTITION"
493 if [ -n "$MOUNTPOINT" ]; then
494 if [ "$CHECKFS" == "1" ]; then
495 THISDEV=`echo "$MOUNTPOINT" | sed 's:/mnt/::'`
496 checkfs "$THISDEV" OPT
497 fi
498 [ "$MOUNTED" == "yes" ] || mount "$MOUNTPOINT"
499
500 MS_MNTS=`mount|awk '$5~/fat|vfat|msdos|ntfs/{printf "%s ",$3}'`
501 case "$MS_MNTS" in
502 *"$MOUNTPOINT"* )
503 echo "Persistent OPT not supported on Microsoft File Systems."
504 echo "${YELLOW}Request for persistent OPT on $PARTITION ignored."
505 echo -n "${RED}Press Enter key.${NORMAL}"; read ans
506 ;;
507 * )
508 echo "${GREEN}Mounting ${YELLOW}/opt ${GREEN} on ${YELLOW}"$MOUNTPOINT"/opt.${NORMAL}"
509 [ -d "$MOUNTPOINT"/opt ] || mkdir "$MOUNTPOINT"/opt
510 yes n | cp -ai /opt/. "$MOUNTPOINT"/opt/ 2>/dev/null
511 mount --bind "$MOUNTPOINT"/opt/ /opt/
512 chgrp -R staff /opt/ >/dev/null 2>&1
513 chmod -R g+w /opt/ >/dev/null 2>&1
514 chmod g+s /opt/ >/dev/null 2>&1
515 ;;
516 esac
517
518 else
519 echo "Invalid device specified. Skipping persistent OPT request!"
520 fi
521 fi
522
523 [ -n "$XSETUP" ] && touch /tmp/xsetup_requested
524
525 if [ -n "$LAPTOP" ]; then
526 modprobe ac && modprobe battery 2>/dev/null
527 modprobe yenta_socket >/dev/null 2>&1 || modprobe i82365 >/dev/null 2>&1
528 /sbin/udevadm trigger 2>/dev/null >/dev/null &
529 echo " ${GREEN}Laptop options enabled (AC,Battery, & PCMCIA).${NORMAL}"
530 fi
531
532 if [ -n "$NOSWAP" ]; then
533 echo "${BLUE}Ignoring swap partition(s) seek as requested.${NORMAL}"
534 else
535 wait $fstab_pid
536 /bb/swapon -a 2>/dev/null
537 if [ "$?" == 0 ]; then echo "${GREEN}Possible swap partition(s) enabled.${NORMAL}"; fi
538 fi
539
540 if [ -n "$SWAPFILE" ]; then
541 wait $fstab_pid
542 SWAPFILE=${SWAPFILE##/dev/}
543 find_mountpoint "$SWAPFILE"
544 if [ -n "$MOUNTPOINT" ]; then
545 if [ "$MOUNTED" == "yes" ]; then
546 swapon "$MOUNTPOINT"/tc.swp
547 else
548 mount "$MOUNTPOINT" && swapon "$MOUNTPOINT"/tc.swp
549 fi
550 fi
551 fi
552
553 if [ -n "$RESUME" ]; then
554 rm -f /etc/sysconfig/tc.resume 2>/dev/null
555 RESUME=`basename $RESUME`
556 SWAP_SIZE=$(cat /proc/swaps | grep "$RESUME" | awk '{print $3}')
557 [ -z "$SWAP_SIZE" ] && /bb/swapon /dev/"$RESUME" && SWAP_SIZE=$(cat /proc/swaps | grep "$RESUME" | awk '{print $3}')
558 [ -z "$SWAP_SIZE" ] && exit 1
559 MEM_SIZE=$(cat /proc/meminfo | awk '/MemTotal/{print $2}')
560 if [ $SWAP_SIZE -gt $MEM_SIZE ]; then
561 grep -q disk /sys/power/state && echo "disk" > /etc/sysconfig/tc.resume
562 fi
563 fi
564
565 if [ "$NOICONS" == 1 ]; then
566 > /etc/sysconfig/icons
567 else
568 # If icon manager is specified use that
569 if [ -n "$ICONS" ]; then
570 echo "$ICONS" > /etc/sysconfig/icons
571 else
572 [ -s /etc/sysconfig/icons ] && ICONS=`cat /etc/sysconfig/icons`
573 fi
574 fi
575 [ "$NOICONS" == "ondemand" ] && touch /etc/sysconfig/noondemandicons
576 sync
577
578 wait $fstab_pid
579 if [ "$CHECKFS" == "1" ]; then
580
581 for i in `cat /proc/cmdline`; do
582 case $i in
583 tce=*) TCE=${i#*=} ;;
584 esac
585 done
586 [ -z "$TCE" ] && TCE="$(autoscan 'tce' 'd')"/tce
587 if [ "$TCE" != "/tce" ]; then
588 TCE_DEVICE="${TCE%%/*}"
589 find_mountpoint "$TCE_DEVICE"
590 THISDEV=`echo "$MOUNTPOINT" | sed 's:/mnt/::'`
591 checkfs "$THISDEV" TCE
592 fi
593
594 fi
595
596 MSSG="${BLUE}Loading extensions...${NORMAL}"
597 if [ -n "$SHOWAPPS" ]; then
598 touch /etc/sysconfig/showapps
599 echo "$MSSG"
600 /usr/bin/tce-setup "booting"
601 [ -n "$ISOFILE" ] && /usr/bin/fromISOfile "$ISOFILE"
602 rm /etc/sysconfig/showapps
603 echo "${GREEN}Done.${NORMAL}"
604 else
605 echo -n "$MSSG"
606 /usr/bin/tce-setup "booting" > /dev/null 2>&1 &
607 /usr/bin/rotdash $!
608 [ -n "$ISOFILE" ] && /usr/bin/fromISOfile "$ISOFILE" > /dev/null 2>&1 &
609 /usr/bin/rotdash $!
610 echo "${GREEN}Done.${NORMAL}"
611 if [ -s /tmp/aberr ]; then
612 echo "${RED}Warning! Errors occured during the loading of the extensions.${YELLOW}"
613 cat /tmp/aberr
614 echo -n "${RED}Press Enter key.${NORMAL}"; read ans
615 fi
616 fi
617
618 [ -n "$KEYMAP" ] || KEYMAP="us"
619 if [ -f "/usr/share/kmap/$KEYMAP.kmap" ]; then
620 echo -n "${GREEN}Setting keymap to ${MAGENTA}$KEYMAP"
621 /bb/loadkmap < /usr/share/kmap/$KEYMAP.kmap
622 echo "KEYMAP=$KEYMAP" > /etc/sysconfig/keymap
623 echo "${GREEN} Done.${NORMAL}"
624 fi
625
626 if [ -n "$SECURE" ]; then
627 getpasswd "root"
628 echo "root:$PASSWD" | chpasswd -m
629 getpasswd "$USER"
630 echo "$USER:$PASSWD" | chpasswd -m
631 fi
632 if [ -n "$PROTECT" ]; then
633 getpasswd "encryption"
634 echo "$PASSWD" > /etc/sysconfig/bfe
635 chown ${USER}:root /etc/sysconfig/bfe
636 chmod 600 /etc/sysconfig/bfe
637 fi
638
639 [ -n "$XVESA" ] && sed -i 's/1024x768x32/'"$XVESA"'/' /home/"$USER"/.xsession 2>/dev/null
640
641 # If desktop is specified use that
642 if [ -n "$DESKTOP" ]; then
643 echo "$DESKTOP" > /etc/sysconfig/desktop
644 else
645 [ -s /etc/sysconfig/desktop ] && DESKTOP=`cat /etc/sysconfig/desktop`
646 fi
647
648 # If restore then also pass TCE directory for quick look of mydata.tgz backupfile
649 if [ -n "$MYDATA" ]; then
650 echo "$MYDATA" > /etc/sysconfig/mydata
651 else
652 echo "mydata" > /etc/sysconfig/mydata
653 fi
654 if [ -n "$NORESTORE" ]; then
655 echo "${GREEN}Skipping restore as requested from the command line.${NORMAL}"
656 else
657 TCEDIR=`readlink /etc/sysconfig/tcedir`
658 /etc/init.d/tc-restore.sh "$TCEDIR"
659 fi
660
661 # After restore items
662 if [ -n "$NODHCP" ]; then
663 echo "${GREEN}Skipping DHCP broadcast/network detection as requested on boot commandline.${NORMAL}"
664 else
665 [ -z "$DHCP_RAN" ] && /etc/init.d/dhcp.sh &
666 [ -z "$NORTC" ] || /etc/init.d/settime.sh &
667 fi
668
669 [ -n "$CRON" ] && /etc/init.d/services/crond start
670
671 /sbin/loadcpufreq 2>/dev/null &
672
673 /opt/bootsync.sh
674
675 rm /etc/udev/rules.d/60-persistent-storage.rules
676 /sbin/udevadm trigger 2>&1 >/dev/null &&
677
678 /bb/addgroup "$USER" cdrom
679 /bb/addgroup "$USER" tty
680 /bb/addgroup "$USER" dialout
681 /bb/addgroup "$USER" audio
682 /bb/addgroup "$USER" video
683 /bb/addgroup "$USER" plugdev
684
685
686 [ -n "$NOAUTOLOGIN" ] && echo "booting" > /etc/sysconfig/noautologin
687
688
689 if [ -n "$PAUSE" ]; then
690 echo -n "${BLUE}Boot time configuration completed. Press to continue.${NORMAL}"
691 read junk
692 fi
===== '/etc/profile' =====
1 # /etc/profile: system-wide .profile file for the Bourne shells
2
3 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/bb"
4
5 # Prompt format for Ash (Bash use /etc/bashrc).
6 #
7 if [ "`id -u`" -eq 0 ]; then
8 # Light green and blue colored prompt.
9 #PS1='\e[1;31m\u@\h\e[0m:\e[1;34m\w\e[0m\# '
10 PS1='\u@\h:\w\# '
11 else
12 # Light green and blue colored prompt.
13 PS1='\e[1;32m\u@\h\e[0m:\e[1;34m\w\e[0m\$ '
14 #PS1='\u@\h:\w\$ '
15 fi
16
17 # Screen display for X and encoding for GTK+ apps.
18 #
19 G_FILENAME_ENCODING=iso8859-1
20
21 # ldd fake
22 #
23 which ldd > /dev/null || alias ldd=LD_TRACE_LOADED_OBJECTS=1
24
25 # Export all variables definied above and set mask.
26 #
27 export PATH LD_LIBRARY_PATH PS1 G_FILENAME_ENCODING ignoreeof
28 umask 022
29
30 if [ -f /etc/sysconfig/language ]; then
31 . /etc/sysconfig/language
32 export LANG LC_ALL
33 fi
34
35 if [ -f /etc/sysconfig/timezone ]; then
36 . /etc/sysconfig/timezone
37 export TZ
38 fi
39
40 for i in /etc/profile.d/*.sh ; do
41 if [ -r "$i" ]; then
42 . $i
43 fi
44 done
===== '~/.profile' =====
1 # ~/.profile: Executed by Bourne-compatible login SHells.
2 #
3 # Path to personal scripts and executables (~/.local/bin).
4 [ -d "$HOME/.local/bin" ] || mkdir -p "$HOME/.local/bin"
5 export PATH=$HOME/.local/bin:$PATH
6
7 ONDEMAND=/etc/sysconfig/tcedir/ondemand
8 [ -d "$ONDEMAND" ] && export PATH=$PATH:"$ONDEMAND"
9
10 # Environment variables and prompt for Ash SHell
11 # or Bash. Default is a classic prompt.
12 #
13 PS1='\u@\h:\w\$ '
14 PAGER='less -EM'
15 MANPAGER='less -isR'
16 LANG=en_US.UTF8
17
18 `which editor >/dev/null` && EDITOR=editor || EDITOR=vi
19
20 export PS1 PAGER LANG EDITOR MANPAGER
21
22 export BACKUP=1
23 [ "`id -un`" = "`cat /etc/sysconfig/tcuser`" ] && echo "$BACKUP" | sudo tee /etc/sysconfig/backup >/dev/null 2>&1
24 export FLWM_TITLEBAR_COLOR="58:7D:AA"
25
26 if [ -f "$HOME/.ashrc" ]; then
27 export ENV="$HOME/.ashrc"
28 . "$HOME/.ashrc"
29 fi
30
31 TERMTYPE=`/bb/tty`
32 [ ${TERMTYPE:5:3} == "tty" ] && (
33 [ ! -f /usr/bin/Xorg ] ||
34 [ -f /etc/sysconfig/text ] ||
35 [ -e /tmp/.X11-unix/X0 ] ||
36 startx
37 )
===== '~/.ashrc' =====
1 # ~/.ashrc: Executed by SHells.
2 #
3 . /etc/init.d/tc-functions
4
5 # Alias definitions.
6 #
7 alias df='df -h'
8 alias du='du -h'
9
10 alias ls='ls -p'
11 alias ll='ls -l'
12 alias la='ls -la'
13
14 # Avoid errors... use -f to skip confirmation.
15 alias cp='cp -i'
16 alias mv='mv -i'
17 alias rm='rm -i'
===== '~/.xinitrc' =====