summaryrefslogtreecommitdiffstats
path: root/initramfs/initrd-stuff/etc/functions
diff options
context:
space:
mode:
authorOliver Tappe2008-08-20 14:20:07 +0200
committerOliver Tappe2008-08-20 14:20:07 +0200
commit0677328054a51160b79af3fb982b852294c5e175 (patch)
treeeecc8c2a1808aa61296dd50ebceef4b887f9dba4 /initramfs/initrd-stuff/etc/functions
parentThere is no working 64bit version of the old initramfs ... (diff)
downloadcore-0677328054a51160b79af3fb982b852294c5e175.tar.gz
core-0677328054a51160b79af3fb982b852294c5e175.tar.xz
core-0677328054a51160b79af3fb982b852294c5e175.zip
* merged branch 'initramfs-ng' back intro trunk - requires careful testing ...
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2055 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'initramfs/initrd-stuff/etc/functions')
-rw-r--r--initramfs/initrd-stuff/etc/functions1009
1 files changed, 0 insertions, 1009 deletions
diff --git a/initramfs/initrd-stuff/etc/functions b/initramfs/initrd-stuff/etc/functions
deleted file mode 100644
index ca3da314..00000000
--- a/initramfs/initrd-stuff/etc/functions
+++ /dev/null
@@ -1,1009 +0,0 @@
-# Copyright (c) 2003 - 2006 - RZ Uni Freiburg
-# Copyright (c) 2006, 2007 - OpenSLX GmbH
-#
-# This program/file is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your feedback to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org
-#
-# Common functions file for the configuration of linux diskless clients
-# (included by init, hwautocfg, servconfig, ... within OpenSLX initialramfs)
-
-#############################################################################
-# set of empty dummy functions (loaded before real functions in the
-# distro specific files - to have no undeclared function in init, serv-
-# config, hwautocfg, ...
-
-# distro specific funtion called at the beginning of init script
-preinit () {
-:
-}
-# distro specific funtion called at the end of init script
-postinit () {
-:
-}
-# distro specific general function called from servconfig script
-config_distro () {
-:
-}
-
-#############################################################################
-# produce error message and if $2 is empty run (debug) shell
-error () {
-local e_msg="$1"
-# check if LOGFILE is really writeable
-if [ -n "${LOGFILE}" ] ; then
- [ "${LOGFILE}" != "/dev/null" ] && \
- [ -w /mnt/${LOGFILE} ] || LOGFILE="/dev/null"
-else LOGFILE="/dev/null"
-fi
-# if nonfatal error else fatal error message and shell
-if [ -n "$2" ] ; then
- [ "$DEBUGLEVEL" -ge 1 -a "$DEBUGLEVEL" != 8 ] && \
- echo -e "${error_msg}${e_msg}${error_nfe}" >> ${LOGFILE}
- [ "$DEBUGLEVEL" -gt 1 -a "$DEBUGLEVEL" != 8 ] && \
- echo -e "${error_msg}${e_msg}${error_nfe}"
- [ "$DEBUGLEVEL" -gt 2 -a "$DEBUGLEVEL" != 8 ] && usleep 10
-else
- echo -e "${error_msg}${e_msg}${error_shell}"
- /bin/ash
- echo -n "Reboot now? [y] (nothing happens here at the moment)"
- exec < /dev/console > /dev/console
- #input="y"
- #read input
- #[ -z "$input" -o "$input" = "y" -o "$input" = "Y" ] && {
- # sleep 4
- # [ -f /proc/sysrq-trigger ] || mount -t proc none /proc
- # echo "b" > /proc/sysrq-trigger
- #}
-fi
-}
-#############################################################################
-# system uptime for performance analysis
-sysup () {
-uptime=$(sed -e "s, .*,," /proc/uptime)
-echo "${uptime} s."
-# if start times are kept, a summary of runtimes would be possible too
-}
-#############################################################################
-# (re)generate dynamic linked libraries cache from /etc/ld.so.conf
-ldcfg () {
-[ -n "${ldsc}" ] && echo -e "$init_ldcfg" && ldconfig /tmp/ld.so.cache &
-}
-#############################################################################
-# URI interpreter $1 variable to interprete, $2 type of token to return
-# prot: tftp, http, nbd, ... server: IP or FQDN
-uri_token () {
-local var=$1
-local prot
-local rest
-local server
-local path
-local port
-local tmpval
-local query=""
-# first check if URI starts with prot:// - URI scheme
-if strinstr "://" "$1" ; then
- prot=${var%://*}
- rest=${var#*://}
-else
- rest="$var"
- prot=""
-fi
-# remove temporary '::' from path, since it conflicts with port specification
-if strinstr "::" "$rest" ; then
- rest=$(echo $rest | sed -e 's,::,§§§§§,g')
-elif strinstr "\:\:" "$rest" ; then
- rest=$(echo $rest | sed -e 's,\:\:,§§§§§,g')
-fi
-# get the server IP or name and port - URI authority
-# you get the path or other token without leading "/" - add it later if
-# needed (fixme: port might be broken)
-if strinstr ":" "$rest" ; then
- server="${rest%:*}"
- rest="${rest#*:}"
- path="${rest#*/}"
- port="${rest%/$path}"
-else
- tmpval=$rest
- rest="${rest#*/}"
- server="$(echo $tmpval|sed 's,/.*,,')"
- path="${tmpval#${server}}"
- port=""
-fi
-# get path and query components - URI path, query
-if strinstr "\?" "$rest" ; then
- path="${path%\?*}"
- query="${rest#*\?}"
-fi
-# return the requested token
-case "$2" in
- prot) echo "$prot" ;;
- server) echo "$server" ;;
- # add '::' again to path
- path) echo "$path" | sed -e 's,§§§§§,\:\:,g' ;;
- port) echo "$port" ;;
- query) echo "$query" ;;
-esac
-}
-#############################################################################
-# compute prefix bit number from netmask
-nm2pref () {
-set $(IFS="."; echo $1)
-local n=0
-local i
- for i in $1 $2 $3 $4 ; do
- case $i in
- 0) break ;;
- 128) n=$(($n + 1)) ; break ;;
- 192) n=$(($n + 2)) ; break ;;
- 224) n=$(($n + 3)) ; break ;;
- 240) n=$(($n + 4)) ; break ;;
- 252) n=$(($n + 6)) ; break ;;
- 254) n=$(($n + 7)) ; break ;;
- 255) n=$(($n + 8)) ; continue ;;
- esac
- done
-echo $n
-}
-#############################################################################
-# replace @@@serverip@@@ with real serverip. Allows the usage of a variable
-# for the server ip address (e.g. in machine-setup or kernel commandline)
-checkip ()
-{
-if [ "@@@serverip@@@" = "$1" -a -n "$serverip" ] ; then
- echo $serverip
-else
- echo $1
-fi
-}
-#############################################################################
-# definition of wlan interface name and wireless connect
-wlanlinksetup () {
-local wlanif=$(iwconfig 2>/dev/null|sed -n "/ESSID:/p"|sed "s/ .*//")
-if [ -n "$if" ] ; then
- ip link set dev ${wlanif} up
- if iwconfig ${wlanif} mode managed essid "${essid}"; then
- nwif=${wlanif}
- else
- error "$init_nowlan"
- fi
-else
- error "$init_nowlan"
-fi
-}
-#############################################################################
-# replacement for which command to find executables inside stage4 rootfs
-binfinder()
-{
-local program="$1"
-local s4path
-local notfound=1
-for s4path in bin sbin usr/bin usr/sbin usr/local/bin \
- usr/local/sbin usr/bin/X11; do
- if [ -f "/mnt/$s4path/$program" ] && \
- [ -x "/mnt/$s4path/$program" ]; then
- printf '%s\n' "/$s4path/$program"
- notfound=0
- break
- fi
-done
-return $notfound
-}
-#############################################################################
-# disk formatter and mounter. some proper error message output should be
-# added. It uses programs invoked from stage 4 root filesystem. First
-# argument is blockdev or file to be formatted, second mountpoint if not
-# /mnt/tmp (default)
-diskfm () {
-local target=$1
-local mntpnt=$2
-local fs
-local path
-for fs in xfs ext2 reiserfs ; do
- if strinfile "$fs" /proc/filesystems || modprobe ${MODPRV} $fs ; then
- unset $found
- for path in /sbin /bin /usr/sbin /usr/bin ; do
- if test -x /mnt/$path/mkfs.$fs ; then
- found=yes
- case mkfs.$fs in
- mkfs.xfs)
- fopt="-f"
- mopt="-o noexec"
- ;;
- mkfs.ext2)
- fopt="-Fq"
- mopt="-o nocheck,noexec"
- ;;
- mkfs.reiserfs)
- fopt="-f"
- mopt="-o noexec"
- ;;
- esac
- LD_LIBRARY_PATH=/mnt/lib /mnt/$path/mkfs.$fs $fopt $target \
- >/dev/null 2>&1 #|| error
- if [ -z $mntpnt ] ; then
- umount /mnt/tmp 2>/dev/null
- if mount -t $fs -n $mopt $target /mnt/tmp 2>/dev/null; then
- return 0
- else
- mount -n -t tmpfs none /mnt/tmp
- fi
- else
- testmkd $mntpnt
- mount -t $fs -n -o loop $target $mntpnt 2>/dev/null
- return 0
- fi
- fi
- done
- [ -z $found ] && break
- else break
- fi
-done
-}
-#############################################################################
-# create configuration file for dhclient
-mkdhclconf () {
-local vci=$1
-# provide dhclient with proper configuration
-echo -e "option bootlocal-script code 221\t= string;\n\
-option language code 222\t\t= string;\n\
-option start-x code 223\t\t\t= string;\n\
-option start-snmp code 224\t\t= string;\n\
-option start-sshd code 225\t\t= string;\n\
-option start-xdmcp code 226\t\t= string;\n\
-option start-cron code 227\t\t= string;\n\
-option crontab-entries code 228\t\t= string;\n\
-option start-rwhod code 229\t\t= string;\n\
-option start-printdaemon code 230\t= string;\n\
-option desktop-session code 231\t\t= string;\n\
-option tex-enable code 232\t\t= string;\n\
-option netbios-workgroup code 233\t= string;\n\
-option vmware code 234\t\t\t= string;\n\
-option hw-mouse code 252\t\t= string;\n\
-option hw-graphic code 253\t\t= string;\n\
-option hw-monitor code 254\t\t= string;\n\n\
-send dhcp-lease-time 86400;\nsend dhcp-max-message-size 1400;\n\
-request;\nscript \"/bin/dhclient-script\";" >> /etc/dhclient.conf
-if [ -n "$vci" ] ; then
- echo "send vendor-class-identifier \"$vci\";" >> /etc/dhclient.conf
-fi
-}
-
-#############################################################################
-# dhcp client function (supporting dhclient and udhcp, latter is preferred)
-rundhcp ()
-{
-local vci="$1"
-for dhcp in dhclient udhcpc none; do
- test -e /bin/$dhcp && break;
-done
-if [ "$dhcp" = "none" ] ; then
- error "$error_nodhcp" nonfatal
-else
- # ensure the interface is up - might produce conflicts - nbd could
- # fail!!
- [ -n "$noipyet" ] && \
- ip link set dev $nwif up
- [ -f /lib/modules/@@@KERNVER@@@/kernel/net/packet/af_packet.ko ] && \
- modprobe ${MODPRV} af_packet
- echo "Starting $dhcp for configuration"
- mkdir /var/lib/dhcp >/dev/null 2>&1
-fi
-export client="$dhcp"
-case $dhcp in
- dhclient)
- mkdhclconf $vci
- ln -s /bin/dhcpmkconfig /bin/dhclient-script
- dhclient -cf /etc/dhclient.conf -lf /var/lib/dhcp/dhclient.leases \
- -q $nwif >/dev/null 2>&1 || error "$error_dhclient"
- ;;
- # udhcpc is a busybox applet
- udhcpc)
- [ -n $vci ] && vci="-V $vci"
- testmkd /usr/share/udhcpc
- ln -s /bin/dhcpmkconfig /usr/share/udhcpc/default.script
- # -b option is suboptimal here ...
- udhcpc -t 8 -q $vci -s /usr/share/udhcpc/default.script -i $nwif 2>/dev/null
- ;;
-esac
-echo "dhcp finished at $(sysup)" >/tmp/dhcp-done
-}
-
-#############################################################################
-# function for retrieving configuration file (machine-setup) via tftp from a
-# predefined server or given source (file=tftp-server:/path via kernel
-# command line)
-unpack () {
-# $1 is config file name to get, $2 IP of server to get file from
-local dst=$1
-if [ -s $dst ] ; then
- # fixme: handle different types of packaging (gzip/bzip2)??
- if ! tar -xpzf $dst 2> /tmp/ConfTGZ-tar-error ; then
- cat /tmp/ConfTGZ-tar-error
- error "$unpack_ConfTGZ" nonfatal
- rm /tmp/ConfTGZ-tar-error
- fi
- [ "$DEBUGLEVEL" -le 2 -o "$DEBUGLEVEL" -eq 8 ] && rm $dst
- return 0
-else
- return 1
-fi
-}
-fileget () {
-# normally tftp would be used, alternatively use wget for ftp or http
-# if local device file is specified - mount and unmount after copying
-local cfgfile
-[ "x$fileprot" = "x" ] && fileprot=tftp
-if [ "x$filepath" != "x" ] ; then
- cfgfile="${filepath}"
- [ "x$fileserv" = "x" ] && fileserv=$(checkip ${serverip})
- case "$fileprot" in
- ftp|http)
- wget $fileprot://$fileserv/$cfgfile -O /tmp/$(basename $cfgfile) \
- 2>/dev/null && { unpack /tmp/$(basename $cfgfile) && break; }
- ;;
- file)
- local ldev=$fileserv
- echo "Waiting for /mnt/etc ...."
- waitfor /mnt/etc 10000
- mkdir /tmp/$ldev
- echo -e "ext2\nreiserfs\nvfat\nxfs" >/etc/filesystems
- mount -o ro /dev/$ldev /tmp/$ldev || error "$init_errlfg"
- unpack /tmp/$ldev/"$cfgfile"
- umount /dev/$ldev
- ;;
- *)
- tftp -g -r "$cfgfile" -l /tmp/$(basename "$cfgfile") $fileserv \
- && unpack /tmp/$(basename "$cfgfile")
- ;;
- esac
-else
- # predefined value for openslx environment; it is expected that this
- # directory is just below the tftpboot (path to which the daemon is
- # restricted to)
- filepath="client-config"
- [ "x$fileserv" = "x" ] && fileserv=$(checkip ${serverip})
- # try to get configuration files successively; start with distro client
- # and try last distro default ...
- echo -e "\n## Configuration via fileget: Hierarchy is distro client \
-and as last\n# distro/default" >> /tmp/confviafile
- mac=$(echo $macaddr|sed "s/:/-/g")
- for cfgfile in "${filepath}/${SYSTEM_NAME}/01-${mac}.tgz" \
- "${filepath}/${SYSTEM_NAME}/default.tgz" ; do
- case "$fileprot" in
- ftp|http)
- wget $fileprot://$fileserv/"$cfgfile" -O /tmp/$(basename "$cfgfile") \
- 2>/dev/null && { unpack /tmp/$(basename "$cfgfile") && break; }
- ;;
- tftp)
- tftp -g -r "$cfgfile" -l /tmp/$(basename "$cfgfile") $fileserv \
- && { unpack /tmp/$(basename "$cfgfile") && break; }
- ;;
- esac
- done
-fi
-test -f /initramfs/machine-setup && \
- cat /initramfs/machine-setup >> /tmp/confviafile
-echo "fileget via $fileprot from $fileserv/$cfgfile finished" >/tmp/file-done
-}
-
-#############################################################################
-# function for creating directories after testing of their existance avoids
-# to recreate directories in union mounts
-testmkd () {
- test -d $1 || mkdir -p $1 >/dev/null 2>&1
- [ $# -ge 2 ] && for i in "$2" "$3" ; do
- echo "$i"|grep -E "^[0-9]{3,4}$" >/dev/null 2>&1 && \
- chmod "$i" $1 >/dev/null 2>&1
- echo "$i"|grep -E ":." >/dev/null 2>&1 && \
- chown "$i" $1 >/dev/null 2>&1
- done
-}
-
-#############################################################################
-# function for writing a syslog-ng.conf file. First parameter is absolute
-# destination (incl. /mnt prefix)
-# sysngwriter $dest $start_syslog
-sysngwriter () {
-local mysyslogngcfg=$1
-# logging servers might be specified in $log_servers (from e.g. dhcp)
-# fixme!? only first logserver from dhcp variable is used
-[ -n "$log_servers" ] && start_syslog="syslog://${log_servers% *}:514/udp"
-echo -e "# File written by $0 within InitRamFS\n\
-source src {\n\tfile(\"/proc/kmsg\");\n\
-\tunix-dgram(\"/dev/log\");\n\tinternal();\n};\ndestination console_all {\
-\n\tfile(\"/dev/tty10\");\n};" >$mysyslogngcfg
-case "$start_syslog" in
- yes|Yes|YES)
- echo -e "\nlog {\n\tsource(src);\n\tdestination(console_all);\n};" \
- >>$mysyslogngcfg
- ;;
- file)
- echo -e "destination allmessages {\n\tfile(\"/var/log/allmessages\");\n};\
-\nlog {\n\tsource(src); destination(allmessages);\n};" >>$mysyslogngcfg
- ;;
- *)
- syslogsrv=$(uri_token $start_syslog server)
- syslogport=$(uri_token $start_syslog port)
- syslogprot=$(uri_token $start_syslog path)
- [ -z ${syslogport} ] && syslogport=514
- [ -z ${syslogprot} ] && syslogprot=udp
- echo -e "destination loghost {\n\t${syslogprot}(\"${syslogsrv}\" \
-port(${syslogport}));\n};\nlog {\n\tsource(src);\n\tdestination(loghost);\n};"\
- >>$mysyslogngcfg
- ;;
-esac
-}
-
-#############################################################################
-# simple basename replacement
-basename () {
- local b=${1##*/}
- echo ${b%$2}
-}
-
-#############################################################################
-# simple string in string search
-strinstr (){
- case "$2" in *$1*) return 0;; esac
- return 1
-}
-
-#############################################################################
-# simple string in file search, for the future grep should be used instead
-strinfile (){
- case "$(cat $2)" in *$1*) return 0;; esac
- return 1
-}
-
-
-#############################################################################
-# check boot commandline for specified option
-inkernelcmdline (){
-strinstr " $1" "${KCMDLINE}"
-return "$?"
-}
-
-#############################################################################
-# wait for a file to appear and stop after maxwait counts
-waitfor () {
-local file=$1
-local maxwait=$2
-local count=0
-[ -z $file ] && return 0
-[ -z $maxwait ] && maxwait=5000
-while [ ! -e $file ] ; do
- usleep 1000
- count=$(($count + 1))
- [ $count -gt $maxwait ] && return 1
-done
-return 0
-}
-
-#############################################################################
-# ldconfig is needed if rootfilesystem is composed of several parts. Search
-# for ldconfig and execute it
-# check that /mnt/etc/ld.so.conf is never lost
-ldconfig () {
-local cachefile="$1"
-for ldcfg in /mnt/sbin/ldconfig \
- /mnt/bin/ldconfig \
- /mnt/usr/sbin/ldconfig; do
- test -x $ldcfg && {
- $ldcfg -r /mnt -C $cachefile; break; }
-done
-echo "finished at $(sysup)" >/tmp/ldcfg
-}
-
-#############################################################################
-# base passwd/shadow, the standard user present in every system. All other
-# system users should be generated within the service function
-basepasswd () {
-# strip every line with userid between 500 and 99999 from the passwd
-# file
-sed '/^[a-zA-Z0-9]*:[a-zA-Z0-9]*:[1-9][0-9]\{3,4\}:/d;/^+:*/d;/^+$/d;
- /^[a-zA-Z0-9]*:[a-zA-Z0-9]*:[5-9][0-9]\{2\}:/d' /mnt/etc/passwd \
- > /tmp/newpasswd
-# and add user nobody again (is there a more elegant way?)
-sed -n -e '/nobody/p' /mnt/etc/passwd >> /tmp/newpasswd
-# create the shadow from passwd file
-echo -e "root:"${root_pw}":12958:0:10000::::" > /mnt/etc/shadow
-sed 's/:.*/:!:13078:0:99999:7:::/;/^root.*/d' /tmp/newpasswd \
- >> /mnt/etc/shadow
-mv /tmp/newpasswd /mnt/etc/passwd
-chmod 0640 /mnt/etc/shadow
-}
-
-#############################################################################
-# wait for the completion of configuration file (machine-setup). It is
-# composed from different sources
-cfgcomplete () {
-waitfor /tmp/dhcp-done 10000 || error "$error_errdcfg" nonfatal
-waitfor /tmp/file-done 10000 || error "$error_errfcfg" nonfatal
-waitfor /tmp/ldap-done 10000 || error "$error_errlcfg" nonfatal
-# concatenate the different files now into the central config file, order
-# matters - ldap (not implemented yet) data has highest priority
-if ! test -f /tmp/cfgcomplete ; then
- for config in /etc/initramfs-setup /tmp/confviadhcp /tmp/confviafile \
- /tmp/confvialdap
- do test -f $config && cat $config >> /etc/machine-setup
- done
-# check again and replace @@@serverip@@@
-. /etc/machine-setup
-sed "s,@@@serverip@@@,$serverip," -i /etc/machine-setup
-echo "config completed" > /tmp/cfgcomplete
-fi
-}
-
-#############################################################################
-# execute all shell scripts in the given init-hook folder
-runinithook () {
-local hook=$1
-if [ -d /etc/init-hooks/$hook ]; then
- for hook_script in /etc/init-hooks/$hook/*.sh; do
- if [ -e $hook_script ]; then
- . $hook_script
- fi
- done
-fi
-}
-
-#############################################################################
-# localization simply derived from $language variable set in machine-setup or
-# other sources - mostly taken from knoppix
-localization () {
-country="$1"
-CONSOLE_FONT="lat9w-16.psfu"
-case "$country" in
- # German version
- de*)
- COUNTRY="de"
- LANG="de_DE.UTF8"
- KEYTABLE="de-latin1-nodeadkeys"
- XKEYBOARD="de"
- KDEKEYBOARD="de"
- CHARSET="utf8"
- KDEKEYBOARDS="us,fr"
- TZ="Europe/Berlin"
- ;;
- # Belgian version
- be*)
- COUNTRY="be"
- LANG="C"
- KEYTABLE="be2-latin1"
- XKEYBOARD="be"
- KDEKEYBOARD="be"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="us,de,fr"
- TZ="Europe/Brussels"
- ;;
- # Bulgarian version
- bg*)
- COUNTRY="bg"
- LANG="bg_BG"
- KEYTABLE="bg"
- XKEYBOARD="bg"
- KDEKEYBOARD="bg"
- CHARSET="microsoft-cp1251"
- KDEKEYBOARDS="us,de,fr"
- TZ="Europe/Sofia"
- ;;
- # Switzerland (basically de with some modifications)
- ch)
- LANGUAGE="de"
- COUNTRY="ch"
- LANG="de_CH"
- KEYTABLE="sg-latin1"
- XKEYBOARD="de_CH"
- KDEKEYBOARD="de_CH"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Zurich"
- ;;
- # Simplified Chinese
- cn)
- COUNTRY="cn"
- LANG="zh_CN.GB2312"
- KEYTABLE="us"
- XKEYBOARD="us"
- KDEKEYBOARD="us"
- CHARSET="gb2312.1980-0"
- KDEKEYBOARDS="us,de,fr"
- XMODIFIERS="@im=Chinput"
- TZ="Asia/Shanghai"
- ;;
- # Czechoslovakia
- cs|cz)
- LANGUAGE="cs"
- COUNTRY="cs"
- LANG="cs_CZ"
- KEYTABLE="cz-lat2"
- XKEYBOARD="cs"
- KDEKEYBOARD="cz"
- CHARSET="iso8859-2"
- KDEKEYBOARDS="us,de,fr"
- TZ="Europe/Prague"
- CONSOLE_FONT="iso02g"
- ;;
- # Denmark
- dk|da)
- COUNTRY="dk"
- LANG="da_DK"
- # Workaround: "dk" broken in gettext, use da:da_DK
- LANGUAGE="da:da_DK"
- KEYTABLE="dk"
- XKEYBOARD="dk"
- KDEKEYBOARD="dk"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="dk,de,us,fr"
- TZ="Europe/Copenhagen"
- ;;
- es)
- # Spain
- COUNTRY="es"
- LANG="es_ES@euro"
- KEYTABLE="es"
- XKEYBOARD="es"
- KDEKEYBOARD="es"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Madrid"
- ;;
- # Finland
- fi)
- COUNTRY="fi"
- LANG="fi_FI@euro"
- KEYTABLE="fi"
- XKEYBOARD="fi"
- KDEKEYBOARD="fi"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="us"
- TZ="Europe/Helsinki"
- ;;
- # France
- fr*)
- COUNTRY="fr"
- LANG="fr_FR@euro"
- KEYTABLE="fr"
- XKEYBOARD="fr"
- KDEKEYBOARD="fr"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="de,us"
- TZ="Europe/Paris"
- ;;
- he|il)
- # Hebrew version
- LANGUAGE="he"
- COUNTRY="il"
- LANG="he_IL"
- KEYTABLE="us"
- XKEYBOARD="us"
- KDEKEYBOARD="il"
- CHARSET="iso8859-8"
- KDEKEYBOARDS="us,fr,de"
- TZ="Asia/Jerusalem"
- ;;
- # Ireland
- ie)
- COUNTRY="ie"
- LANG="en_IE@euro"
- KEYTABLE="uk"
- XKEYBOARD="uk"
- KDEKEYBOARD="gb"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="us,de,es,fr,it"
- TZ="Europe/Dublin"
- ;;
- # Italy
- it)
- COUNTRY="it"
- LANG="it_IT@euro"
- KEYTABLE="it"
- XKEYBOARD="it"
- KDEKEYBOARD="it"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="fr,us,de"
- TZ="Europe/Rome"
- ;;
- # Japan
- ja)
- COUNTRY="jp"
- LANG="ja_JP"
- LANGUAGE="ja"
- KEYTABLE="us"
- XKEYBOARD="us"
- KDEKEYBOARD="us"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="fr,us,de"
- TZ="Asia/Tokyo"
- ;;
- # The Netherlands
- nl)
- COUNTRY="nl"
- LANG="nl_NL@euro"
- KEYTABLE="us"
- XKEYBOARD="us"
- KDEKEYBOARD="en_US"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="nl,de,fr"
- TZ="Europe/Amsterdam"
- ;;
- # Poland
- pl)
- COUNTRY="pl"
- LANG="pl_PL"
- KEYTABLE="pl"
- XKEYBOARD="pl"
- KDEKEYBOARD="pl"
- CHARSET="iso8859-2"
- KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Warsaw"
- CONSOLE_FONT="iso02g"
- ;;
- # Russia
- ru)
- COUNTRY="ru"
- LANG="ru_RU.KOI8-R"
- KEYTABLE="ru"
- XKEYBOARD="ru"
- KDEKEYBOARD="ru"
- CHARSET="koi8-r"
- CONSOLE_FONT="Cyr_a8x16"
- KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Moscow"
- ;;
- # Slovakia
- sk)
- COUNTRY="sk"
- LANG="sk"
- KEYTABLE="sk-qwerty"
- XKEYBOARD="sk"
- KDEKEYBOARD="sk"
- CHARSET="iso8859-2"
- KDEKEYBOARDS="us,de"
- TZ="Europe/Bratislava"
- CONSOLE_FONT="iso02g"
- ;;
- # Slovenia
- sl)
- LANGUAGE="sl"
- COUNTRY="si"
- LANG="sl_SI"
- KEYTABLE="slovene"
- XKEYBOARD="sl"
- KDEKEYBOARD="si"
- CHARSET="iso8859-2"
- KDEKEYBOARDS="us,de"
- TZ="Europe/Ljubljana"
- CONSOLE_FONT="iso02g"
- ;;
- tr)
-# Turkish version (guessed)
- COUNTRY="tr"
- LANG="tr_TR"
- KEYTABLE="tr_q-latin5"
- XKEYBOARD="tr"
- KDEKEYBOARD="tr"
- CHARSET="iso8859-9"
- KDEKEYBOARDS="us,de,fr"
- TZ="Europe/Istanbul"
- ;;
- # Taiwan - Traditional Chinese version
- tw)
- COUNTRY="tw"
- LANG="zh_TW.Big5"
- LANGUAGE="zh_TW.Big5"
- KEYTABLE="us"
- XKEYBOARD="us"
- KDEKEYBOARD="us"
- CHARSET="iso8859-1"
- KDEKEYBOARDS="us"
- XMODIFIERS="@im=xcin"
- TZ="Asia/Taipei"
- ;;
- # Great Britian
- uk)
- COUNTRY="uk"
- LANG="en_GB"
- LANGUAGE="en"
- KEYTABLE="uk"
- XKEYBOARD="uk"
- KDEKEYBOARD="gb"
- CHARSET="iso8859-1"
- KDEKEYBOARDS="us"
- TZ="Europe/London"
- ;;
- # US and default configuration
- *)
- LANGUAGE="us"
- COUNTRY="us"
- LANG="C"
- KEYTABLE="us"
- XKEYBOARD="us"
- KDEKEYBOARD="us"
- CHARSET="iso8859-1"
- KDEKEYBOARDS="de,fr"
- TZ="America/New_York"
- ;;
-esac
-}
-#############################################################################
-# setup initial boot scripts (for most standard distributions, gentoo is to
-# be handled differently)
-initial_boot () {
-local scripts=$*
-local count=10
-# boot.slx is a special runlevel script generated within initialramfs which
-# should be executed before the normal runlevel scripts. Proper shutdown is
-# not needed!?
-for i in boot.slx $scripts; do
- count=$(($count + 1))
- echo "boot-runlevelscript $i"
- ln -sf /etc${D_INITDIR}/$i /mnt/etc/${D_INITBOOTD}/S${count}$i
- # uncomment if proper shutdown of bootup scripts is required
- #revcnt=$((41 - $count))
- #ln -sf /etc${D_INITDIR}/$i /mnt/etc/${D_INITBOOTD}/K${revcnt}$i
-done
-}
-
-# This function gets an uri or a comma separated list of uris as parameter.
-# It will then try to mount these uris and add them to the union at /
-include_in_fsroot_union () {
- union_id=0 # used to have guarantee differing names for the unions mount point
- union_type=$1
- for ROOTFS in $(echo $2 |sed 's/,/ /g'); do
- union_id=$(($union_id + 1))
- srvproto=$(uri_token $ROOTFS prot)
- case $srvproto in
- nfs)
- # nfsroot consists now of two different parts
- root_path=$(uri_token $ROOTFS path)
- nfsserver=$(uri_token $ROOTFS server)
- mkdir -p /mnt/tmp/${root_path}_${union_id}
- for proto in tcp udp fail; do
- [ $proto = "fail" ] && { error "$scfg_nfs"; break; }
- mount -n -t nfs -o ro,nolock,$proto $nfsserver:$root_path \
- /mnt/tmp/${root_path}_${union_id} && break
- done
- ;;
- *nbd)
- echo "Not working yet"
- nbdmod=$srvproto
- # get settings for nbd-client, filesystem equals to path in URI
- # notation
- nbdhost=$(uri_token $ROOTFS server)
- nbdport=$(uri_token $ROOTFS port)
- nbdrfst=$(uri_token $ROOTFS path)
- echo -e "(D)NBD $ROOTFS parsed to $srvproto - $nbdhost - \
- $nbdport - $nbdrfst" >> /tmp/felixtestlog
- #FIXME: mount durchführen
- ;;
- aoe)
- echo "Not implemented yet"
- ;;
- iscsi)
- echo "Not implemented yet"
- #iscsiserver=$(uri_token $ROOTFS server)
- #iscsiport=$(uri_token $ROOTFS port)
- #iscsitarget=$(uri_token $ROOTFS path)
- ;;
- esac
- if [ "X$union_type" == "XUnionFS" ]; then
- [ "$DEBUGLEVEL" -gt 2 -a "$DEBUGLEVEL" != 8 ] && \
- echo "Using unionctl to mount ${root_path}_${union_id} (type: \
- $union_type)"
- unionctl /mnt/ --add --after 1 --mode ro /mnt/tmp/${root_path}_${union_id}
- elif [ "X$union_type" == "XAUFS" ]; then
- # unionctl for aufs is a sh script needing tools not included in our
- # initramfs
- [ "$DEBUGLEVEL" -gt 2 -a "$DEBUGLEVEL" != 8 ] && \
- echo "Using aufs-mount to mount ${root_path}_${union_id} (type: $union_type)"
- mount -n -o remount,add:1:/mnt/tmp/${root_path}_${union_id}=ro none /mnt
- else
- error ${init_loadunions} nonfatal
- fi
- done
-}
-
-#############################################################################
-# dummy functions - avoid undefined functions in servconfig (functions are
-# normally overwritten by settings within distro-functions) - a file
-# generated by mkdxsinitrd from <distro>/functions-default & ~-version
-
-# find out if prerequisites for special X server modules are met (distro
-# specific) and enable tvout if required
-checkgraphix () {
-:
-}
-# overwrite xorg configuration set by hwautocfg
-displayvars () {
-:
-}
-# function for ntp configuration
-config_ntp () {
-:
-}
-# function for afs
-config_afs () {
-:
-}
-# function for atd
-config_atd () {
-:
-}
-# function for configuration of cron services
-config_cron () {
-:
-}
-# syslog service
-config_syslog () {
-:
-}
-# secure shell service
-config_sshd () {
-:
-}
-# snmp agent for remote monitoring
-config_snmp () {
-:
-}
-# consolefont
-consolefont () {
-:
-}
-# acpi and powersave
-config_acpi () {
-:
-}
-# configure hal, dbus, resmgr and services like that
-config_dreshal () {
-:
-}
-# configure automounter, simple NFSv3 imports only
-config_automount () {
-:
-}
-# configure print services / start requested printer daemon
-config_printer () {
-:
-}
-# configure bluetooth services
-config_bt () {
-:
-}
-# create a compliant runlevel script, needed for boot.slx and vmware-prep
-d_mkrlscript () {
-:
-}
-# start name service caching daemon
-config_nscd () {
-:
-}
-# configure automounter
-config_automount () {
-:
-}
-# configure samba service (not winbind, but nmbd, smbd)
-config_samba () {
-:
-}
-# start portmapper (needed at least for nfs and nis services)
-config_portmap () {
-:
-}
-# start nis/ypbind
-config_nis () {
-:
-}
-# configure nfsv4 stuff
-config_nfsv4 () {
-:
-}
-# configure keyboard layout
-keytable () {
-:
-}