summaryrefslogtreecommitdiffstats
path: root/initramfs/stage3-stuff/etc/functions
diff options
context:
space:
mode:
authorSebastian Schmelzer2010-09-02 17:50:49 +0200
committerSebastian Schmelzer2010-09-02 17:50:49 +0200
commit416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5 (patch)
tree4715f7d742fec50931017f38fe6ff0a89d4ceccc /initramfs/stage3-stuff/etc/functions
parentFix for the problem reported on the list (sed filter forgotten for the (diff)
downloadcore-416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5.tar.gz
core-416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5.tar.xz
core-416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5.zip
change dir structure
Diffstat (limited to 'initramfs/stage3-stuff/etc/functions')
-rw-r--r--initramfs/stage3-stuff/etc/functions1029
1 files changed, 0 insertions, 1029 deletions
diff --git a/initramfs/stage3-stuff/etc/functions b/initramfs/stage3-stuff/etc/functions
deleted file mode 100644
index 3985bd57..00000000
--- a/initramfs/stage3-stuff/etc/functions
+++ /dev/null
@@ -1,1029 +0,0 @@
-# Copyright (c) 2003..2006 - RZ Uni Freiburg
-# Copyright (c) 2006..2009 - 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"
-# set LOGFILE if not defined
-[ -z "${LOGFILE}" ] && LOGFILE="/dev/null"
-# 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/sh
- 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
-# ticket #232
-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, remove duplicate "//"
- path) echo "$path" | sed -e 's,§§§§§,\:\:,g;s,//,/,' ;;
- port) echo "$port" ;;
- query) echo "$query" ;;
-esac
-}
-#############################################################################
-# mounter for different file sources
-fsmount () {
-local proto=$1
-local server=$2
-local srcpath=$3
-local target=$4
-local mntopt=$5
-local transport
-testmkd ${target}
-case "${proto}" in
- *nbd)
- # TODO: to be filled in ...
- ;;
- lbdev)
- # we expect the stuff on toplevel directory, filesystem type should be
- # autodetected here ... (vmimgserv is blockdev here)
- vmbdev=/dev/${server}
- waitfor ${vmbdev} 20000
- mount -o ro ${vmbdev} ${target} || error "$scfg_evmlm" nonfatal
- ;;
- nfs)
- # we expect nfs mounts here ... check that nfs module is loaded before
- cat /proc/filesystems | grep -q -E "[[:space:]]nfs" || \
- { modprobe ${MODPRV} nfs 2>/dev/null || error "$error_nfsmod" nonfatal; }
- for transport in tcp udp fail; do
- [ $transport = "fail" ] && { error "$init_nfs" nonfatal;
- noimg=yes; break;}
- mount -n -t nfs -o ${mntopt},nolock,${transport} \
- ${server}:${srcpath} ${target} && break
- done
- ;;
- smb|cifs)
- # cifs mounts might be problematic if accessed with superuser id
- mount -n -o ${mntopt},user=guest,guest,file_mode=0755,dir_mode=0755 \
- -t ${proto} //${server}${srcpath} ${target}
- #d_mkrlscript entry boot.slx "/opt/openslx/uclib-rootfs/bin/mount -n \
- #-o ${mntopt},guest,user=guest,file_mode=0755,dir_mode=0755 -t ${proto} \
- #//${server}${srcpath} ${target#/mnt}"
- ;;
-esac
-}
-#############################################################################
-# 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
-}
-#############################################################################
-# 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
-[ -f /lib/ld-linux.so.2 ] || ln -s /mnt/lib/ld-linux.so.2 /lib/ld-linux.so.2
-for fs in xfs reiserfs ext2 ; 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 ] && continue
- else break
- fi
-done
-}
-
-#############################################################################
-# dhcp client function
-rundhcp ()
-{
-local vci="$1"
-# ensure the interface is up - might produce conflicts - nbd could fail!!
-# fixme: really needed?
-# [ -n "$noipyet" ] && ip link set dev $nwif up
-[ -f /lib/modules/${KERNEL}/kernel/net/packet/af_packet.ko ] && \
- modprobe ${MODPRV} af_packet
-echo "Starting udhcpc for IP configuration"
-mkdir /var/lib/dhcp >/dev/null 2>&1
-[ -n $vci ] && vci="-V $vci"
-testmkd /usr/share/udhcpc
-ln -sf /bin/dhcpmkconfig /usr/share/udhcpc/default.script
-# see for options.c file in udhcp subdir of busybox for accepted "-O option"
-udhcpc -O nissrv -O nisdomain -t 8 -q $vci \
- -s /usr/share/udhcpc/default.script -i $nwif 2>/dev/null
-}
-
-#############################################################################
-# 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
-}
-
-# tftp wrapper
-# usage tftp_get <path> <tftpdserver> [count]
-# count is optional - default is 3 - use -1 for indefinit
-tftp_get () {
- local file="$1"
- local file_server="$2"
- local download_successful=0
- local countdown="$3"
-
- if [ -z "$1" -o -z "$2" ]; then
- [ $DEBUGLEVEL -ge 1 ] && \
- echo "[tftp_get] Usage: tftp_get <path> <server> [count]"
- return 1;
- fi
-
- [ "$countdown" = "" ] && countdown=3
-
- until [ $download_successful -eq 1 ]
- do
- if [ "$countdown" = "0" ]; then
- [ $DEBUGLEVEL -ge 1 ] && \
- echo "[tftp_get] download of \"$file\" from \"$file_server\" ... failed"
- return 0;
- fi
- tftp -g -r $file -l /tmp/$(basename $file) $file_server
- [ -s /tmp/$(basename $file) ] && download_successful=1
- countdown=$(expr $countdown - 1)
- usleep 200000
- done
- [ $DEBUGLEVEL -ge 1 ] && \
- echo "[tftp_get] download of \"$file\" from \"$file_server\" ... successful"
- return 0;
-}
-
-
-# wget wrapper
-# usage wget_get <path> <ftp/httpserver> [count]
-# count is optional - default is 3 - use -1 for indefinit
-wget_get () {
- local file="$1"
- local file_server="$2"
- local download_successful=0
- local countdown="$3"
-
- if [ -z "$1" -o -z "$2" ]; then
- [ $DEBUGLEVEL -ge 1 ] && \
- echo "[wget_get] Usage: wget_get <path> <server> [count]"
- return 1;
- fi
-
- [ "$countdown" = "" ] && countdown=3
-
- until [ $download_successful -eq 1 ]
- do
- if [ "$countdown" = "0" ]; then
- [ $DEBUGLEVEL -ge 1 ] && \
- echo "[wget_get] download of \"$file\" from \"$file_server\" ... failed"
- return 0;
- fi
- wget -q $file_server$file -O /tmp/$(basename $file)
- [ -s /tmp/$(basename $file) ] && download_successful=1
- countdown=$(expr $countdown - 1)
- usleep 200000
- done
- [ $DEBUGLEVEL -ge 1 ] && \
- echo "[wget_get] download of \"$file\" from \"$file_server\" ... successful"
- return 0;
-}
-
-
-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})
- # wait for dns if "fileserv" is a name and not lbd device
- [ "$fileprot" != "lbd" ] && \
- echo ${fileserv} | grep -qi [a-z] && waitfor /tmp/dhcp-done 10000
- [ $DEBUGLEVEL -ge 1 ] && echo "fileget - fileprot:$fileprot, filepath:\
-$filepath, fileserv:$fileserv" >>$LOGFILE
- case "$fileprot" in
- ftp|http)
- wget_get $cfgfile $fileprot://$fileserv \
- && { unpack /tmp/$(basename $cfgfile) && break; } 2>>$LOGFILE
- ;;
- lbd)
- local ldev=$fileserv
- echo "Waiting for configuration file ${cfgfile} ...."
- [ $DEBUGLEVEL -ge 1 ] && echo "fileget - fileprot:$fileprot, filepath:\
-$filepath, fileserv:$fileserv" >>$LOGFILE
- waitfor /mnt/${cfgfile} 10000
- if [ -f /mnt/${cfgfile} ]; then
- unpack /mnt/$cfgfile
- else
- error "$init_errlfg"
- fi
- ;;
- *)
- tftp_get $cfgfile $fileserv \
- && unpack /tmp/$(basename $cfgfile) 2>>$LOGFILE
- ;;
- 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})
- [ $DEBUGLEVEL -ge 1 ] && echo "fileget - fileprot:$fileprot, filepath:\
-$filepath, fileserv:$fileserv" >>$LOGFILE
- # try to get configuration files successively; start with distro client
- # and try last distro default ...
- 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>>$LOGFILE && { unpack /tmp/$(basename $cfgfile) && break; }
- ;;
- tftp)
- tftp_get $cfgfile $fileserv \
- 2>>$LOGFILE && { unpack /tmp/$(basename $cfgfile) && break; }
- ;;
- esac
- done
- echo -e "\n## Configuration via fileget from ${fileprot}://${fileserv}/\
-${cfgfile}\n# Hierarchy is distro client and as last distro/default" \
- >>/tmp/confviafile
-fi
-cat /initramfs/machine-setup >>/tmp/confviafile 2>/dev/null || \
- error "$nomachsetup"
-echo "fileget via $fileprot from $fileserv/$cfgfile finished" >/tmp/file-done
-[ $DEBUGLEVEL -ge 1 ] && echo "fileget from $cfgfile finished" >>$LOGFILE
-}
-
-#############################################################################
-# function for creating directories after testing of their existance avoids
-# to recreate directories in union mounts. If second and/or third parameters
-# are given check for permission patterns
-testmkd () {
- test -d $1 || mkdir -p $1 >/dev/null 2>&1
- [ $# -ge 2 ] && for i in "$2" "$3" ; do
- echo "$i" | grep -q -E "^[0-9]{3,4}$" && chmod "$i" $1 >/dev/null 2>&1
- echo "$i" | grep -q -E ":." && 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 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
-}
-
-#############################################################################
-# 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 (we expect ldconfig not to be a dynamically
-# linked tool)
-# 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 () {
-# hack (see Ticket #206)
-root_pw="$1"
-# 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
- echo "## Stage3 configuration via initial/early /etc/initramfs-setup" \
- >/etc/ext-initramfs-setup
- for config in /etc/initramfs-setup /tmp/confviadhcp /tmp/confviafile \
- /tmp/confvialdap
- do test -f $config && cat $config >>/etc/ext-initramfs-setup
- done
-# check again and replace @@@serverip@@@ and produce a final version for
-# stage4 (no much use, just debugging)
-sed "s,@@@serverip@@@,$serverip," -i /etc/ext-initramfs-setup
-. /etc/ext-initramfs-setup
-cp /etc/ext-initramfs-setup /mnt/etc/machine-setup
-mv /etc/ext-initramfs-setup /etc/initramfs-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
- /bin/init-wrapper $hook_script $DEBUGLEVEL
- . /tmp/env/wrapper.env
- 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.UTF-8"
- 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.UTF-8"
- 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.UTF-8"
- # 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.UTF-8"
- LANG="es_ES"
- KEYTABLE="es"
- XKEYBOARD="es"
- KDEKEYBOARD="es"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="de,us,fr"
- TZ="Europe/Madrid"
- ;;
- # Finland
- fi)
- COUNTRY="fi"
- LANG="fi_FI.UTF-8"
- KEYTABLE="fi"
- XKEYBOARD="fi"
- KDEKEYBOARD="fi"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="us"
- TZ="Europe/Helsinki"
- ;;
- # France
- fr*)
- COUNTRY="fr"
- LANG="fr_FR.UTF-8"
- 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.UTF-8"
- KEYTABLE="us"
- XKEYBOARD="us"
- KDEKEYBOARD="il"
- CHARSET="iso8859-8"
- KDEKEYBOARDS="us,fr,de"
- TZ="Asia/Jerusalem"
- ;;
- # Ireland
- ie)
- COUNTRY="ie"
- LANG="en_IE.UTF-8"
- 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.UTF-8"
- KEYTABLE="it"
- XKEYBOARD="it"
- KDEKEYBOARD="it"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="fr,us,de"
- TZ="Europe/Rome"
- ;;
- # Japan
- ja)
- COUNTRY="jp"
- LANG="ja_JP.UTF-8"
- 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.UTF-8"
- KEYTABLE="us"
- XKEYBOARD="us"
- KDEKEYBOARD="en_US"
- CHARSET="iso8859-15"
- KDEKEYBOARDS="nl,de,fr"
- TZ="Europe/Amsterdam"
- ;;
- # Poland
- pl)
- COUNTRY="pl"
- LANG="pl_PL.UTF-8"
- 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.UTF-8"
- 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_SK.UTF-8"
- 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.UTF-8"
- 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.UTF-8"
- 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.UTF-8"
- 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.UTF-8"
- 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
-}
-
-#############################################################################
-# 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)
- # activate kernel nfs if not present, 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/testlog
- #FIXME: do mount
- ;;
- 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
-
-# setup initial boot scripts (for most standard distributions, gentoo is to
-# be handled differently)
-initial_boot () {
-:
-}
-# function for udev configuration
-config_udev () {
-:
-}
-# 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
-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 () {
-:
-}
-# set up localization like keytable, console
-dlocale () {
-:
-}