From 416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5 Mon Sep 17 00:00:00 2001 From: Sebastian Schmelzer Date: Thu, 2 Sep 2010 17:50:49 +0200 Subject: change dir structure --- initramfs/stage3-stuff/etc/functions | 1029 ---------------------------------- 1 file changed, 1029 deletions(-) delete mode 100644 initramfs/stage3-stuff/etc/functions (limited to 'initramfs/stage3-stuff/etc/functions') 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 [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 [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 [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 [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 /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 () { -: -} -- cgit v1.2.3-55-g7522