summaryrefslogtreecommitdiff
path: root/livecd-functions.sh
diff options
context:
space:
mode:
Diffstat (limited to 'livecd-functions.sh')
-rw-r--r--livecd-functions.sh633
1 files changed, 0 insertions, 633 deletions
diff --git a/livecd-functions.sh b/livecd-functions.sh
deleted file mode 100644
index 91fe852..0000000
--- a/livecd-functions.sh
+++ /dev/null
@@ -1,633 +0,0 @@
-#!/bin/bash
-
-# Global Variables:
-# CDBOOT -- is booting off CD
-# LIVECD_CONSOLE -- console that is specified on commandline
-# -- (ttyS0, etc) Only defined if passed to kernel
-# LIVECD_CONSOLE_BAUD -- console baudrate specified
-# LIVECD_CONSOLE_PARITY -- console parity specified
-# LIVECD_CONSOLE_DATABITS -- console databits specified
-
-[[ ${RC_GOT_FUNCTIONS} != "yes" ]] && \
- [[ -e /etc/init.d/functions.sh ]] && \
- source /etc/init.d/functions.sh
-
-# emulating einfo since it's not always available from functions.sh
-# FIXME: fix functions.sh
-einfo() {
- [[ -x "/lib/rc/bin/einfo" ]] && /lib/rc/bin/einfo "${1}"\
- || echo "* ${1}"
-}
-
-livecd_parse_opt() {
- case "$1" in
- *\=*)
- echo "$1" | cut -f2 -d=
- ;;
- esac
-}
-
-livecd_check_root() {
- if [ "$(whoami)" != "root" ]
- then
- echo "ERROR: must be root to continue"
- return 1
- fi
-}
-
-livecd_get_cmdline() {
- echo "0" > /proc/sys/kernel/printk
- CMDLINE=$(cat /proc/cmdline)
- export CMDLINE
-}
-
-no_gl() {
-# einfo "If you have a card that you know is supported by either the ATI or"
-# einfo "NVIDIA binary drivers, please file a bug with the output of lspci"
-# einfo "on http://bugs.gentoo.org so we can resolve this."
- GLTYPE=xorg-x11
-}
-
-ati_gl() {
- einfo "ATI card detected."
- if [ -e /usr/lib/xorg/modules/drivers/fglrx_drv.so ] \
- || [ -e /usr/lib/modules/drivers/fglrx_drv.so ]
- then
- GLTYPE=ati
- else
- GLTYPE=xorg-x11
- fi
-}
-
-nv_gl() {
- einfo "NVIDIA card detected."
- if [ -e /usr/lib/xorg/modules/drivers/nvidia_drv.so ] \
- || [ -e /usr/lib/modules/drivers/nvidia_drv.so ]
- then
- GLTYPE=nvidia
- else
- GLTYPE=xorg-x11
- fi
-}
-
-nv_no_gl() {
- einfo "NVIDIA card detected."
- echo
- if [ -e /usr/lib/xorg/modules/drivers/nvidia_drv.so ] \
- || [ -e /usr/lib/modules/drivers/nvidia_drv.so ]
- then
- einfo "This card is not supported by the latest version of the NVIDIA"
- einfo "binary drivers. Switching to the X server's driver instead."
- fi
- GLTYPE=xorg-x11
- sed -i 's/nvidia/nv/' /etc/X11/xorg.conf
-}
-
-get_video_cards() {
- [ -x /sbin/lspci ] && VIDEO_CARDS="$(/sbin/lspci | grep ' VGA ')"
- [ -x /usr/sbin/lspci ] && VIDEO_CARDS="$(/usr/sbin/lspci | grep ' VGA ')"
- #NUM_CARDS="$(echo ${VIDEO_CARDS} | wc -l)"
- #if [ ${NUM_CARDS} -eq 1 ] # Disabled to support NVIDIA SLI devices
- #then
- NVIDIA=$(echo ${VIDEO_CARDS} | grep -i "nVidia Corporation")
- ATI=$(echo ${VIDEO_CARDS} | grep -i "ATI Technologies")
- if [ -n "${NVIDIA}" ]
- then
- # Always set NVIDIA OpenGL, since it's stupid doing the contrary because:
- # there's no X.Org free driver that supports OpenGL through MESA
- nv_gl
- elif [ -n "${ATI}" ]
- then
- ATI_CARD=$(echo ${ATI} | awk 'BEGIN {RS=" "} /(R|RV|RS|M)[0-9]+/ {print $1}')
- if [ $(echo ${ATI_CARD} | grep S) ]
- then
- ATI_CARD_OUT=$(echo ${ATI_CARD} | cut -dS -f2)
- elif [ $(echo ${ATI_CARD} | grep V) ]
- then
- ATI_CARD_OUT=$(echo ${ATI_CARD} | cut -dV -f2)
- elif [ $(echo ${ATI_CARD} | grep M) ]
- then
- # ATI Technologies Inc. M52 [ ATI Mobility Radeon X1300 ]
- ATI_CARD_OUT=$(echo ${ATI_CARD} | cut -dM -f2)
- else
- ATI_CARD_OUT=$(echo ${ATI_CARD} | cut -dR -f2)
- fi
-
- if [ -n "${ATI_CARD_OUT}" ] && [ ${ATI_CARD_OUT} -ge 300 ]
- then
- ati_gl
- elif [ -n "${ATI_CARD_OUT}" ] && [ -n "`echo ${ATI_CARD} | grep M`" ]
- then
- # this is an ATI Mxx card
- ati_gl
- # >8.29.6 does not support R200 anymore
- elif [ -n "${ATI_CARD_OUT}" ] && [ ${ATI_CARD_OUT} -ge 200 ]
- then
- no_gl
- else
- # set ATI OpenGL anyway
- ati_gl
- fi
- else
- no_gl
- fi
- #fi
-}
-
-livecd_config_wireless() {
- cd /tmp/setup.opts
- [ -x /usr/sbin/iwconfig ] && iwconfig=/usr/sbin/iwconfig
- [ -x /sbin/iwconfig ] && iwconfig=/sbin/iwconfig
- dialog --title "SSID" --inputbox "Please enter your SSID, or leave blank for selecting the nearest open network" 20 50 2> ${iface}.SSID
- SSID=$(tail -n 1 ${iface}.SSID)
- if [ -n "${SSID}" ]
- then
- dialog --title "WEP (Part 1)" --menu "Does your network use encryption?" 20 60 7 1 "Yes" 2 "No" 2> ${iface}.WEP
- WEP=$(tail -n 1 ${iface}.WEP)
- case ${WEP} in
- 1)
- dialog --title "WEP (Part 2)" --menu "Are you entering your WEP key in HEX or ASCII?" 20 60 7 1 "HEX" 2 "ASCII" 2> ${iface}.WEPTYPE
- WEP_TYPE=$(tail -n 1 ${iface}.WEPTYPE)
- case ${WEP_TYPE} in
- 1)
- dialog --title "WEP (Part 3)" --inputbox "Please enter your WEP key in the form of XXXX-XXXX-XX for 64-bit or XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XX for 128-bit" 20 50 2> ${iface}.WEPKEY
- WEP_KEY=$(tail -n 1 ${iface}.WEPKEY)
- if [ -n "${WEP_KEY}" ]
- then
- ${iwconfig} ${iface} essid "${SSID}"
- ${iwconfig} ${iface} key "${WEP_KEY}"
- fi
- ;;
- 2)
- dialog --title "WEP (Part 3)" --inputbox "Please enter your WEP key in ASCII form. This should be 5 or 13 characters for either 64-bit or 128-bit encryption, repectively" 20 50 2> ${iface}.WEPKEY
- WEP_KEY=$(tail -n 1 ${iface}.WEPKEY)
- if [ -n "${WEP_KEY}" ]
- then
- ${iwconfig} ${iface} essid "${SSID}"
- ${iwconfig} ${iface} key "s:${WEP_KEY}"
- fi
- ;;
- esac
- ;;
- 2)
- ${iwconfig} ${iface} essid "${SSID}"
- ${iwconfig} ${iface} key off
- ;;
- esac
- fi
-}
-
-livecd_write_wireless_conf() {
- cd /tmp/setup.opts
- SSID=$(tail -n 1 ${iface}.SSID)
- if [ -n "${SSID}" ]
- then
- echo "" >> /etc/conf.d/net
- echo "# This wireless configuration file was built by net-setup" > /etc/conf.d/net
- WEP=$(tail -n 1 ${iface}.WEPTYPE)
- case ${WEP} in
- 1)
- WEP_TYPE=$(tail -n 1 ${iface}.WEPTYPE)
- if [ -n "${WEP_TYPE}" ]
- then
- WEP_KEY=$(tail -n 1 ${iface}.WEPKEY)
- if [ -n "${WEP_KEY}" ]
- then
- SSID_TRANS=$(echo ${SSID//[![:word:]]/_})
- case ${WEP_TYPE} in
- 1)
- echo "key_${SSID_TRANS}=\"${WEP_KEY} enc open\"" >> /etc/conf.d/net
- ;;
- 2)
- echo "key_${SSID_TRANS}=\"s:${WEP_KEY} enc open\"" >> /etc/conf.d/net
- ;;
- esac
- fi
- fi
- ;;
- 2)
- :
- ;;
- esac
- echo "preferred_aps=( \"${SSID}\" )" >> /etc/conf.d/net
- echo "associate_order=\"forcepreferredonly\"" >> /etc/conf.d/net
- fi
-}
-
-livecd_config_ip() {
- cd /tmp/setup.opts
- dialog --title "TCP/IP setup" --menu "You can use DHCP to automatically configure a network interface or you can specify an IP and related settings manually. Choose one option:" 20 60 7 1 "Use DHCP to auto-detect my network settings" 2 "Specify an IP address manually" 2> ${iface}.DHCP
- DHCP=$(tail -n 1 ${iface}.DHCP)
- case ${DHCP} in
- 1)
- /sbin/dhclient -q -r -nw ${iface} &
- ;;
- 2)
- dialog --title "IP address" --inputbox "Please enter an IP address for ${iface}:" 20 50 "192.168.1.1" 2> ${iface}.IP
- IP=$(tail -n 1 ${iface}.IP)
- BC_TEMP=$(echo $IP|cut -d . -f 1).$(echo $IP|cut -d . -f 2).$(echo $IP|cut -d . -f 3).255
- dialog --title "Broadcast address" --inputbox "Please enter a Broadcast address for ${iface}:" 20 50 "${BC_TEMP}" 2> ${iface}.BC
- BROADCAST=$(tail -n 1 ${iface}.BC)
- dialog --title "Network mask" --inputbox "Please enter a Network Mask for ${iface}:" 20 50 "255.255.255.0" 2> ${iface}.NM
- NETMASK=$(tail -n 1 ${iface}.NM)
- dialog --title "Gateway" --inputbox "Please enter a Gateway for ${iface} (hit enter for none:)" 20 50 2> ${iface}.GW
- GATEWAY=$(tail -n 1 ${iface}.GW)
- dialog --title "DNS server" --inputbox "Please enter a name server to use (hit enter for none:)" 20 50 2> ${iface}.DNS
- DNS=$(tail -n 1 ${iface}.DNS)
- ifconfig ${iface} ${IP} broadcast ${BROADCAST} netmask ${NETMASK}
- if [ -n "${GATEWAY}" ]
- then
- route add default gw ${GATEWAY} dev ${iface} netmask 0.0.0.0 metric 1
- fi
- if [ -n "${DNS}" ]
- then
- dialog --title "DNS Search Suffix" --inputbox "Please enter any domains which you would like to search on DNS queries (hit enter for none:)" 20 50 2> ${iface}.SUFFIX
- SUFFIX=$(tail -n 1 ${iface}.SUFFIX)
- echo "nameserver ${DNS}" > /etc/resolv.conf
- if [ -n "${SUFFIX}" ]
- then
- echo "search ${SUFFIX}" >> /etc/resolv.conf
- fi
- fi
- ;;
- esac
-}
-
-livecd_write_net_conf() {
- cd /tmp/setup.opts
- echo "# Kogaion Linux static network configuration tool" > /etc/conf.d/net
- DHCP=$(tail -n 1 ${iface}.DHCP)
- case ${DHCP} in
- 1)
- echo "config_${iface}=\"dhcp\"" >> /etc/conf.d/net
- echo "dhcp_${iface}=\"nosendhost\"" >> /etc/conf.d/net
- ;;
- 2)
- IP=$(tail -n 1 ${iface}.IP)
- BROADCAST=$(tail -n 1 ${iface}.BC)
- NETMASK=$(tail -n 1 ${iface}.NM)
- GATEWAY=$(tail -n 1 ${iface}.GW)
- DNS="$(tail -n 1 ${iface}.DNS)"
- DOMAIN="$(tail -n 1 ${iface}.SUFFIX)"
- if [ -n "${IP}" -a -n "${BROADCAST}" -a -n "${NETMASK}" ]
- then
- echo "config_${iface}=\"${IP} netmask ${NETMASK} broadcast ${BROADCAST}\"" >> /etc/conf.d/net
- if [ -n "${GATEWAY}" ]
- then
- echo "routes_${iface}=\"default via ${GATEWAY}\"" >> /etc/conf.d/net
- fi
- if [ -n "${DNS}" ]
- then
- echo "dns_servers_${iface}=\"${DNS}\"" >> /etc/conf.d/net
- fi
- if [ -n "${DOMAIN}" ]
- then
- echo "dns_search_${iface}=\"${DOMAIN}\"" >> /etc/conf.d/net
- fi
- fi
- ;;
- esac
-}
-
-get_ifmac() {
- local iface=$1
-
- # Example: 00:01:6f:e1:7a:06
- cat /sys/class/net/${iface}/address
-}
-
-
-get_ifdriver() {
- local iface=$1
-
- # Example: ../../../bus/pci/drivers/forcedeth (wanted: forcedeth)
- local if_driver=$(readlink /sys/class/net/${iface}/device/driver)
- basename ${if_driver}
-}
-
-get_ifbus() {
- local iface=$1
-
- # Example: ../../../bus/pci (wanted: pci)
- # Example: ../../../../bus/pci (wanted: pci)
- # Example: ../../../../../../bus/usb (wanted: usb)
- local if_bus=$(readlink /sys/class/net/${iface}/device/bus)
- basename ${if_bus}
-}
-
-livecd_rev_string() {
- # See Sabayon #2522, cannot use /usr/bin/rev because
- # /usr might not be mounted
- local copy=${1}
- len=${#copy}
- for((i=$len-1;i>=0;i--)); do rev="$rev${copy:$i:1}"; done
- echo ${rev}
-}
-
-get_ifproduct() {
- local iface=$1
- local bus=$(get_ifbus ${iface})
- local if_pciaddr
- local if_devname
- local if_usbpath
- local if_usbmanufacturer
- local if_usbproduct
-
- if [[ ${bus} == "pci" ]]
- then
- # Example: ../../../devices/pci0000:00/0000:00:0a.0 (wanted: 0000:00:0a.0)
- # Example: ../../../devices/pci0000:00/0000:00:09.0/0000:01:07.0 (wanted: 0000:01:07.0)
- if_pciaddr=$(readlink /sys/class/net/${iface}/device)
- if_pciaddr=$(basename ${if_pciaddr})
-
- # Example: 00:0a.0 Bridge: nVidia Corporation CK804 Ethernet Controller (rev a3)
- # (wanted: nVidia Corporation CK804 Ethernet Controller)
- if_devname=$(lspci -s ${if_pciaddr})
- if_devname=${if_devname#*: }
- if_devname=${if_devname%(rev *)}
- fi
-
- if [[ ${bus} == "usb" ]]
- then
- if_usbpath=$(readlink /sys/class/net/${iface}/device)
- if_usbpath=/sys/class/net/${iface}/$(dirname ${if_usbpath})
- if_usbmanufacturer=$(< ${if_usbpath}/manufacturer)
- if_usbproduct=$(< ${if_usbpath}/product)
-
- [[ -n ${if_usbmanufacturer} ]] && if_devname="${if_usbmanufacturer} "
- [[ -n ${if_usbproduct} ]] && if_devname="${if_devname}${if_usbproduct}"
- fi
-
- if [[ ${bus} == "ieee1394" ]]
- then
- if_devname="IEEE1394 (FireWire) Network Adapter";
- fi
-
- echo ${if_devname}
-}
-
-get_ifdesc() {
- local iface=$1
- desc=$(get_ifproduct ${iface})
- if [[ -n ${desc} ]]
- then
- echo $desc
- return;
- fi
-
- desc=$(get_ifdriver ${iface})
- if [[ -n ${desc} ]]
- then
- echo $desc
- return;
- fi
-
- desc=$(get_ifmac ${iface})
- if [[ -n ${desc} ]]
- then
- echo $desc
- return;
- fi
-
- echo "Unknown"
-}
-
-show_ifmenu() {
- local opts ifname
- for ifname in /sys/class/net/*; do
- [[ ! -d "${ifname}" ]] && continue
- ifname=$(basename "${ifname}")
- [[ ${ifname} == "lo" ]] && continue
- opts="${opts} '${ifname}' '$(get_ifdesc ${ifname})'"
- done
-
- eval dialog --menu \"Please select the interface that you wish to configure from the list below:\" 0 0 0 $opts 2>iface
- [[ "$?" == "1" ]] && exit
-
- iface=$(< iface)
-}
-
-show_ifconfirm() {
- local iface=$1
- local if_mac=$(get_ifmac ${iface})
- local if_driver=$(get_ifdriver ${iface})
- local if_bus=$(get_ifbus ${iface})
- local if_product=$(get_ifproduct ${iface})
-
- local text="Details for network interface ${iface} are shown below.\n\nInterface name: ${iface}\n"
- [[ -n ${if_product} ]] && text="${text}Device: ${if_product}\n"
- [[ -n ${if_mac} ]] && text="${text}MAC address: ${if_mac}\n"
- [[ -n ${if_driver} ]] && text="${text}Driver: ${if_driver}\n"
- [[ -n ${if_bus} ]] && text="${text}Bus type: ${if_bus}\n"
- text="${text}\nIs this the interface that you wish to configure?"
-
- if ! dialog --title "Interface details" --yesno "${text}" 15 70
- then
- result="no"
- else
- result="yes"
- fi
-}
-
-livecd_console_settings() {
- # scan for a valid baud rate
- case "$1" in
- 300*)
- LIVECD_CONSOLE_BAUD=300
- ;;
- 600*)
- LIVECD_CONSOLE_BAUD=600
- ;;
- 1200*)
- LIVECD_CONSOLE_BAUD=1200
- ;;
- 2400*)
- LIVECD_CONSOLE_BAUD=2400
- ;;
- 4800*)
- LIVECD_CONSOLE_BAUD=4800
- ;;
- 9600*)
- LIVECD_CONSOLE_BAUD=9600
- ;;
- 14400*)
- LIVECD_CONSOLE_BAUD=14400
- ;;
- 19200*)
- LIVECD_CONSOLE_BAUD=19200
- ;;
- 28800*)
- LIVECD_CONSOLE_BAUD=28800
- ;;
- 38400*)
- LIVECD_CONSOLE_BAUD=38400
- ;;
- 57600*)
- LIVECD_CONSOLE_BAUD=57600
- ;;
- 115200*)
- LIVECD_CONSOLE_BAUD=115200
- ;;
- esac
- if [ "${LIVECD_CONSOLE_BAUD}" = "" ]
- then
- # If it's a virtual console, set baud to 38400, if it's a serial
- # console, set it to 9600 (by default anyhow)
- case ${LIVECD_CONSOLE} in
- tty[0-9])
- LIVECD_CONSOLE_BAUD=38400
- ;;
- *)
- LIVECD_CONSOLE_BAUD=9600
- ;;
- esac
- fi
- export LIVECD_CONSOLE_BAUD
-
- # scan for a valid parity
- # If the second to last byte is a [n,e,o] set parity
- local parity
- parity=$(livecd_rev_string $1 | cut -b 2-2)
- case "$parity" in
- [neo])
- LIVECD_CONSOLE_PARITY=$parity
- ;;
- esac
- export LIVECD_CONSOLE_PARITY
-
- # scan for databits
- # Only set databits if second to last character is parity
- if [ "${LIVECD_CONSOLE_PARITY}" != "" ]
- then
- LIVECD_CONSOLE_DATABITS=$(livecd_rev_string $1 | cut -b 1)
- fi
- export LIVECD_CONSOLE_DATABITS
- return 0
-}
-
-livecd_read_commandline() {
- livecd_get_cmdline || return 1
-
- for x in ${CMDLINE}
- do
- case "${x}" in
- cdroot)
- CDBOOT="yes"
- RC_NO_UMOUNTS="^(/|/dev|/dev/pts|/lib/rcscripts/init.d|/proc|/proc/.*|/sys|/mnt/livecd|/newroot)$"
- export CDBOOT RC_NO_UMOUNTS
- ;;
- cdroot\=*)
- CDBOOT="yes"
- RC_NO_UMOUNTS="^(/|/dev|/dev/pts|/lib/rcscripts/init.d|/proc|/proc/.*|/sys|/mnt/livecd|/newroot)$"
- export CDBOOT RC_NO_UMOUNTS
- ;;
- console\=*)
- local live_console
- live_console=$(livecd_parse_opt "${x}")
-
- # Parse the console line. No options specified if
- # no comma
- LIVECD_CONSOLE=$(echo ${live_console} | cut -f1 -d,)
- if [ "${LIVECD_CONSOLE}" = "" ]
- then
- # no options specified
- LIVECD_CONSOLE=${live_console}
- else
- # there are options, we need to parse them
- local livecd_console_opts
- livecd_console_opts=$(echo ${live_console} | cut -f2 -d,)
- livecd_console_settings ${livecd_console_opts}
- fi
- export LIVECD_CONSOLE
- ;;
- esac
- done
- return 0
-}
-
-livecd_fix_inittab() {
- if [ "${CDBOOT}" = "" ]
- then
- return 1
- fi
-
- # Create a backup
- cp -f /etc/inittab /etc/inittab.old
-
- # Comment out current getty settings
- sed -i -e '/^c[0-9]/ s/^/#/' /etc/inittab
- sed -i -e '/^s[01]/ s/^/#/' /etc/inittab
-
- # SPARC & HPPA console magic
- if [ "${HOSTTYPE}" = "sparc" -o "${HOSTTYPE}" = "hppa" -o "${HOSTTYPE}" = "ppc64" ]
- then
- # Mount openprom tree for user debugging purposes
- if [ "${HOSTTYPE}" = "sparc" ]
- then
- mount -t openpromfs none /proc/openprom
- fi
-
- # SPARC serial port A, HPPA mux / serial
- if [ -c "/dev/ttyS0" ]
- then
- LIVECD_CONSOLE_BAUD=$(stty -F /dev/ttyS0 speed)
- echo "s0:12345:respawn:/sbin/agetty -nl /bin/bashlogin ${LIVECD_CONSOLE_BAUD} ttyS0 vt100" >> /etc/inittab
- fi
- # HPPA software PDC console (K-models)
- if [ "${LIVECD_CONSOLE}" = "ttyB0" ]
- then
- mknod /dev/ttyB0 c 11 0
- LIVECD_CONSOLE_BAUD=$(stty -F /dev/ttyB0 speed)
- echo "b0:12345:respawn:/sbin/agetty -nl /bin/bashlogin ${LIVECD_CONSOLE_BAUD} ttyB0 vt100" >> /etc/inittab
- fi
- # FB / STI console
- if [ -c "/dev/vc/1" -o -c "/dev/tts/1" -o -c "/dev/tty2" ]
- then
- MODEL_NAME=$(cat /proc/cpuinfo |grep "model name"|sed 's/.*: //')
- if [ "${MODEL_NAME}" = "UML" ]
- then
- for x in 0 1 2 3 4 5 6
- do
- echo "c${x}:12345:respawn:/sbin/mingetty --noclear --autologin root tty${x}" >> /etc/inittab
- done
- else
- for x in 1 2 3 4 5 6
- do
- echo "c${x}:12345:respawn:/sbin/mingetty --noclear --autologin root tty${x}" >> /etc/inittab
- done
- fi
- fi
- if [ -c "/dev/hvc0" ]
- then
- einfo "Adding hvc console to inittab"
- echo "s0:12345:respawn:/sbin/agetty -nl /bin/bashlogin 9600 hvc0 vt320" >> /etc/inittab
- fi
-
-
- # The rest...
- else
- for x in 1 2 3 4 5 6
- do
- echo "c${x}:12345:respawn:/sbin/agetty -nl /bin/bashlogin 38400 tty${x} linux" >> /etc/inittab
- done
- fi
-
- # EFI-based machines should automatically hook up their console lines
- if dmesg | grep -q '^Adding console on'
- then
- dmesg | grep '^Adding console on' | while read x; do
- line=`echo "$x" | cut -d' ' -f4`
- id=e`echo "$line" | grep -o '.\{1,3\}$'`
- [ "${line}" = "${LIVECD_CONSOLE}" ] && continue # already setup above
- case "$x" in
- *options\ \'[0-9]*) speed=`echo "$x" | sed "s/.*options '//; s/[^0-9].*//"` ;;
- *) speed=9600 ;; # choose a default, only matters if it is serial
- esac
- echo "$id:12345:respawn:/sbin/agetty -nl /bin/bashlogin ${speed} ${line} vt100" >> /etc/inittab
- done
- fi
-
- # force reread of inittab
- kill -HUP 1
- return 0
-}