103 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			103 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
								 | 
							
								#!/bin/sh
							 | 
						||
| 
								 | 
							
								# Nico Schottelius
							 | 
						||
| 
								 | 
							
								# cinit: install basic setup
							 | 
						||
| 
								 | 
							
								# Date: 2005-08-07
							 | 
						||
| 
								 | 
							
								# 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								. $(dirname $0)/cinit.read-conf
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								echo "****************************************************************************"
							 | 
						||
| 
								 | 
							
								echo "******************************* WARNING ************************************"
							 | 
						||
| 
								 | 
							
								echo "****************************************************************************"
							 | 
						||
| 
								 | 
							
								echo ""
							 | 
						||
| 
								 | 
							
								echo "This will install a minimal cinit configuration."
							 | 
						||
| 
								 | 
							
								echo "This configuration _SHOULD_ be able to run on _MOST_ systems."
							 | 
						||
| 
								 | 
							
								echo "Still, it's highly EXPERIEMENTAL, use with CAUTION."
							 | 
						||
| 
								 | 
							
								echo ""
							 | 
						||
| 
								 | 
							
								echo "Please make sure, that"
							 | 
						||
| 
								 | 
							
								echo "   - you are using a journaling filesystem (fsck is not used)"
							 | 
						||
| 
								 | 
							
								echo "   - you have agetty, fgetty or mingetty installed"
							 | 
						||
| 
								 | 
							
								echo "   - you are runnig Linux 2.6 (sysfs is used)"
							 | 
						||
| 
								 | 
							
								echo "   - you have udev or static device nodes (you need /dev/tty*)"
							 | 
						||
| 
								 | 
							
								echo "   - getties will run on tty2-tty7, tty1 is used or logging"
							 | 
						||
| 
								 | 
							
								echo ""
							 | 
						||
| 
								 | 
							
								echo "****************************************************************************"
							 | 
						||
| 
								 | 
							
								echo "******************************* WARNING ************************************"
							 | 
						||
| 
								 | 
							
								echo "****************************************************************************"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								notosoftwarepatents="Please keep an eye on software patents, they are evil."
							 | 
						||
| 
								 | 
							
								read -p "Do you really want to continue? [y/N] " notosoftwarepatents
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ "$notosoftwarepatents" = "y" -o "$notosoftwarepatents" = "Y" ]; then
							 | 
						||
| 
								 | 
							
								   echo "Let us try it ..."
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								   echo 'Bye bye!'
							 | 
						||
| 
								 | 
							
								   exit 0
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								set -e
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Create basic layout
							 | 
						||
| 
								 | 
							
								$(dirname $0)/cinit.install.standard-dirs
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Install services:
							 | 
						||
| 
								 | 
							
								# - mount root r/w
							 | 
						||
| 
								 | 
							
								# - mount /proc
							 | 
						||
| 
								 | 
							
								# - mount /sys
							 | 
						||
| 
								 | 
							
								# - install getties on tty2-tty7
							 | 
						||
| 
								 | 
							
								# - add cleanup for /etc/mtab
							 | 
						||
| 
								 | 
							
								# - add loopback device
							 | 
						||
| 
								 | 
							
								# - init service + echo
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								################################### mount #####################################
							 | 
						||
| 
								 | 
							
								# mount root read/write
							 | 
						||
| 
								 | 
							
								$(dirname $0)/cinit.install.service.mount-root
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# - mount /proc
							 | 
						||
| 
								 | 
							
								$(dirname $0)/cinit.install.service.mount-proc
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# - mount /sys
							 | 
						||
| 
								 | 
							
								$(dirname $0)/cinit.install.service.mount-sys
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# mount needs everything below it
							 | 
						||
| 
								 | 
							
								"$INSTALL_PROG"      "$INSTALL_DIRECTORY"  "${DESTDIR}/${CINIT_DIR}/mount/$C_NEEDS"
							 | 
						||
| 
								 | 
							
								ln -sf "${DESTDIR}/${CINIT_DIR}/mount/root" "${DESTDIR}/${CINIT_DIR}/mount/$C_NEEDS"
							 | 
						||
| 
								 | 
							
								ln -sf "${DESTDIR}/${CINIT_DIR}/mount/proc" "${DESTDIR}/${CINIT_DIR}/mount/$C_NEEDS"
							 | 
						||
| 
								 | 
							
								ln -sf "${DESTDIR}/${CINIT_DIR}/mount/sys"  "${DESTDIR}/${CINIT_DIR}/mount/$C_NEEDS"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								################################### getty #####################################
							 | 
						||
| 
								 | 
							
								# mount root read/write
							 | 
						||
| 
								 | 
							
								# install getties
							 | 
						||
| 
								 | 
							
								begin_getty=2
							 | 
						||
| 
								 | 
							
								end_getty=7
							 | 
						||
| 
								 | 
							
								i=$begin_getty
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								"$INSTALL_PROG"      "$INSTALL_DIRECTORY" "${DESTDIR}/${CINIT_DIR}/getty/$C_WANTS"
							 | 
						||
| 
								 | 
							
								while [ "$i" -le "$end_getty" ]; do
							 | 
						||
| 
								 | 
							
								   $(dirname $0)/cinit.add.getty
							 | 
						||
| 
								 | 
							
								   ln -sf "${DESTDIR}/${CINIT_DIR}/getty/$i" "${DESTDIR}/${CINIT_DIR}/getty/$C_WANTS"
							 | 
						||
| 
								 | 
							
								   i=$(($i+1))
							 | 
						||
| 
								 | 
							
								done
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								################################### mtab  #####################################
							 | 
						||
| 
								 | 
							
								# - add cleanup for /etc/mtab
							 | 
						||
| 
								 | 
							
								"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DESTDIR}/${CINIT_DIR}/local-tuning/$C_NEEDS"
							 | 
						||
| 
								 | 
							
								$(dirname $0)/cinit.install.service.cleanup-mtab
							 | 
						||
| 
								 | 
							
								ln -sf "${DESTDIR}/${CINIT_DIR}/local-tuning/cleanup-mtab" "${DESTDIR}/${CINIT_DIR}/local-tuning/$C_NEEDS"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								################################### lo    #####################################
							 | 
						||
| 
								 | 
							
								# - add loopback device
							 | 
						||
| 
								 | 
							
								"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DESTDIR}/${CINIT_DIR}/network/$C_NEEDS"
							 | 
						||
| 
								 | 
							
								$(dirname $0)/cinit.install.service.network-lo
							 | 
						||
| 
								 | 
							
								ln -sf "${DESTDIR}/${CINIT_DIR}/network/lo" "${DESTDIR}/${CINIT_DIR}/network/$C_NEEDS"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# - init service + echo
							 | 
						||
| 
								 | 
							
								# init depends on mount, getty -> everything from base-layout
							 | 
						||
| 
								 | 
							
								$(dirname $0)/cinit.install.service.init
							 | 
						||
| 
								 | 
							
								"$INSTALL_PROG" "$INSTALL_DIRECTORY"  "${DESTDIR}/${CINIT_DIR}/${C_INIT}/${C_NEEDS}"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ln -sf "${DESTDIR}/${CINIT_DIR}/local-services/" "${DESTDIR}/${CINIT_DIR}/${C_INIT}/${C_NEEDS}"
							 | 
						||
| 
								 | 
							
								ln -sf "${DESTDIR}/${CINIT_DIR}/getty/" "${DESTDIR}/${CINIT_DIR}/${C_INIT}/${C_NEEDS}"
							 | 
						||
| 
								 | 
							
								ln -sf "${DESTDIR}/${CINIT_DIR}/local-tuning/" "${DESTDIR}/${CINIT_DIR}/${C_INIT}/${C_NEEDS}"
							 | 
						||
| 
								 | 
							
								ln -sf "${DESTDIR}/${CINIT_DIR}/network/" "${DESTDIR}/${CINIT_DIR}/${C_INIT}/${C_NEEDS}"
							 |