--- alx-src/trunk/tinyalxconfig-ng/init.d/alxsettings 2008/06/04 16:52:25 387 +++ alx-src/trunk/tinyalxconfig-ng/init.d/alxsettings 2008/06/07 18:25:00 488 @@ -2,7 +2,7 @@ # -#%rlevels: 7:s 0:k 6:k +#%rlevels: 7:s 0:k #%start: 41 #%stop: 01 @@ -11,7 +11,7 @@ #%before: #%after: -# $Header: /home/cvsd/alx-cvs/alx-src/tinyalxconfig-ng/init.d/alxsettings,v 1.2 2008-06-04 16:52:25 niro Exp $ +# $Header: /home/cvsd/alx-cvs/alx-src/tinyalxconfig-ng/init.d/alxsettings,v 1.13 2008-06-07 18:25:00 niro Exp $ # checks first if the client was already configured and if it has an valid serial # if not it runs the autoconfiguration script @@ -38,14 +38,10 @@ source /usr/lib/alxconfig-ng/functions/config_auth source /usr/lib/alxconfig-ng/functions/config_ssh_auth -# check if mysql is available -[ -x /usr/bin/mysql ] && MYSQL_ALX=true - # other needed vars ALX_HW_DETECT=false ALX_FORCED_RECHECK=false ALX_RESET_SETTINGS=false -ALX_CONFD_NETWORKING=false # unset vars which may kill us unset ALX_SERIAL ALX_STATE @@ -99,13 +95,6 @@ { local CUR_IP CUR_MAC CUR_MTIME ALX_IFACE - if [[ ${ALX_CONFD_NETWORKING} = true ]] - then - ALX_IFACE="$(< ${SETTINGSPATH}/confd-networking)" - else - ALX_IFACE="eth0" - fi - # check if serial file exists if [ -f /etc/alxconfig-ng/serial ] && [[ ${ALX_FORCED_RECHECK} = false ]] then @@ -153,8 +142,14 @@ else echo -e ${COLMAGENTA}"Preparing system for first boot"${COLDEFAULT} fi + # cleaning up old data-crap + if [ -d /etc/sysconfig/hwsetup ] + then + echo -e ${COLOREDSTAR}"Cleaning up old data ..." + rm -f /etc/sysconfig/hwsetup/* + fi ALX_HW_DETECT=true - /etc/init.d/hwdetect start + echo -en "${COLOREDSTAR}";hwsetup -p > /dev/null # set hostname to alx_default_hostname # use old hostname if this is a forced re-check @@ -290,83 +285,31 @@ # network echo -e " Network settings ..." - if [[ ${ALX_CONFD_NETWORKING} = true ]] - then - # get settings - #source ${rc_base}/init.d/network &> /dev/null - for iface in $(onboot_interface_list ${network_settings}/net.*) - do - [[ $(< ${SETTINGSPATH}/confd-networking) != ${iface} ]] && continue - echo "WARNING: only importing settings for interface [ ${iface} ] !" - source ${network_settings}/net.${iface} || exit 1 - NETCARD_DRIVER="$(cat /etc/modules.d/net.${iface} | cut -d' ' -f3)" - - mysqldo "insert into cfg_network( - hostname, - serial, - module, - domain, - networking, - netmask, - dns, - gateway, - broadcast, - ip, - forcemacto, - wireless_bitrate, - wireless_channel, - wireless_essid, - wireless_frequency, - wireless_mode, - wireless_nick, - wireless_auth_mode, - wireless_key_length, - wireless_key, - wireless_key_ascii - ) - values( - '${ALX_DEFAULT_HOSTNAME}', - '${ALX_SERIAL}', - '${NETCARD_DRIVER}', - '${ALX_DEFAULT_DOMAIN}', - '${NETWORKING}', - '${NETMASK}', - '${NAMESERVER}', - '${GATEWAY}', - '${BROADCAST}', - '${IP}', - '${FORCE_MAC_TO}', - '${WIRELESS_BITRATE}', - '${WIRELESS_CHANNEL}', - '${WIRELESS_ESSID}', - '${WIRELESS_FREQUENCY}', - '${WIRELESS_MODE}', - '${WIRELESS_NICK}', - '${WIRELESS_AUTH_MODE}', - '${WIRELESS_KEY_LENGTH}', - '${WIRELESS_KEY}', - '${WIRELESS_KEY_ASCII}' - );" + # global settings + mysqldo "insert into cfg_network(serial, hostname, domain ) + values('${ALX_SERIAL}', '${ALX_DEFAULT_HOSTNAME}','${ALX_DEFAULT_DOMAIN}');" - # only insert the *FIRST* iface - break - done - else - mysqldo "insert into cfg_network( - hostname, - serial, - module, - domain, - networking + # let udev decide which module should be loaded + # get all devices from sysfs + local i + local iface + for i in /sys/class/net/eth? + do + iface=$(basename ${i}) + NETCARD_DRIVER=$(source /sys/class/net/${iface}/uevent; echo ${PHYSDEVDRIVER}) + mysqldo "insert into cfg_interfaces( + serial, + iface, + module, + networking ) values( - '${ALX_DEFAULT_HOSTNAME}', '${ALX_SERIAL}', + '${iface}', '${NETCARD_DRIVER}', - '${ALX_DEFAULT_DOMAIN}', 'dhcp' );" - fi + done evaluate_retval # xserver @@ -390,7 +333,7 @@ # input echo -e " Input settings ..." - mysqldo "insert into cfg_input(serial,mouse) values('${ALX_SERIAL}','${XMOUSETYPE}');" + mysqldo "insert into cfg_input(serial,mouse,keyboard) values('${ALX_SERIAL}','${XMOUSETYPE}','kbd');" evaluate_retval # auth @@ -455,51 +398,28 @@ # network echo -e " Network settings ..." - if [[ ${ALX_CONFD_NETWORKING} = true ]] - then - # get settings - #source ${rc_base}/init.d/network &> /dev/null - for iface in $(onboot_interface_list ${network_settings}/net.*) - do - [[ $(< ${SETTINGSPATH}/confd-networking) != ${iface} ]] && continue - echo "WARNING: only importing settings for interface [ ${iface} ] !" - source ${network_settings}/net.${iface} || exit 1 - NETCARD_DRIVER="$(cat /etc/modules.d/net.${iface} | cut -d' ' -f3)" - - mysqldo "update cfg_network set - hostname='${ALX_DEFAULT_HOSTNAME}', - module='${NETCARD_DRIVER}', - domain='${ALX_DEFAULT_DOMAIN}', - networking='${NETWORKING}', - netmask='${NETMASK}', - dns='${NAMESERVER}', - gateway='${GATEWAY}', - broadcast='${BROADCAST}', - ip='${IP}', - forcemacto='${FORCE_MAC_TO}', - wireless_bitrate='${WIRELESS_BITRATE}', - wireless_channel='${WIRELESS_CHANNEL}', - wireless_essid='${WIRELESS_ESSID}', - wireless_frequency='${WIRELESS_FREQUENCY}', - wireless_mode='${WIRELESS_MODE}', - wireless_nick='${WIRELESS_NICK}', - wireless_auth_mode='${WIRELESS_AUTH_MODE}', - wireless_key_length='${WIRELESS_KEY_LENGTH}', - wireless_key='${WIRELESS_KEY}', - wireless_key_ascii='${WIRELESS_KEY_ASCII}' - where serial=${ALX_SERIAL};" + mysqldo "update cfg_network set + hostname='${ALX_DEFAULT_HOSTNAME}', + domain='${ALX_DEFAULT_DOMAIN}'; + where serial=${ALX_SERIAL};" + + # let udev decide which module should be loaded + # get all devices from sysfs + local i + local iface + for i in /sys/class/net/eth? + do + iface=$(basename ${i}) + NETCARD_DRIVER=$(source /sys/class/net/${iface}/uevent; echo ${PHYSDEVDRIVER}) + mysqldo "update cfg_interfaces set + iface='${iface}', + module='${NETCARD_DRIVER}', + networking='${NETWORKING}', + where serial=${ALX_SERIAL};" # only insert the *FIRST* iface break done - else - mysqldo "update cfg_network set - hostname='${ALX_DEFAULT_HOSTNAME}', - module='${NETCARD_DRIVER}', - domain='${ALX_DEFAULT_DOMAIN}', - networking='dhcp' - where serial=${ALX_SERIAL};" - fi evaluate_retval # xserver @@ -515,7 +435,7 @@ # input echo -e " Input settings ..." - mysqldo "update cfg_input set mouse='${XMOUSETYPE}' where serial=${ALX_SERIAL};" + mysqldo "update cfg_input set mouse='${XMOUSETYPE}', keyboard='kbd' where serial=${ALX_SERIAL};" evaluate_retval } @@ -541,20 +461,6 @@ echo echo -e ${COLMAGENTA}"Importing detected settings to local system"${COLDEFAULT} - if [[ ${ALX_CONFD_NETWORKING} = false ]] - then - #[ ! -d ${SETTINGSPATH} ] && install -d ${SETTINGSPATH} - #echo "${NETCARD_DRIVER}" > ${SETTINGSPATH}/modules - - # set an device alias for modprobe.conf - [ ! -d /etc/modules.d ] && install -d /etc/modules.d - echo "alias eth0 ${NETCARD_DRIVER}" > /etc/modules.d/net.eth0 - - # regenerate modprobe.conf - [ -x $(which modules-update) ] && modules-update || echo "cannot regen modprobe.conf" - evaluate_retval - fi - # set system state to 'already configured' touch /etc/alxconfig-ng/state/configured @@ -594,7 +500,6 @@ # add a newline (maybe there is no crlf in the footer) echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu - # setup some standart icons (sysinfo.lnk) # basic config cat ${ALX_SKELETONS}/xtdesktop/xtdeskrc > ${ALX_UNPRIV_HOME}/.xtdeskrc @@ -647,47 +552,17 @@ case $1 in start) # keeping like always safe: - # no network should be startet here, - # so we can delete all pid files if one exists - if ps -A|grep dhcpcd > /dev/null - then - echo -e ${COLMAGENTA}"Forcing network down"${COLDEFAULT} - dhcpcd -k - sleep 1 - else - rm -f /var/run/dhcpcd-eth?.pid - fi - [[ ${ALX_CONFD_NETWORKING} = true ]] && [[ ${RUNLEVEL} != S ]] && \ - ${rc_base}/init.d/network stop + # no network should be started here + ${rc_base}/init.d/network stop echo -e ${COLMAGENTA}"Starting preliminary networking ... "${COLDEFAULT} - # start network configured from /etc/conf.d - if [[ ${ALX_CONFD_NETWORKING} = true ]] - then - ${rc_base}/init.d/network start - else - echo -e ${COLOREDSTAR}"Starting default dhcp based networking ... "${COLDEFAULT} - # -t 10 timeout of 10 secs - dhcpcd -t 10 &> /dev/null - evaluate_retval - fi + ${rc_base}/init.d/network start ;; stop) echo -e ${COLMAGENTA}"Stopping preliminary networking ... "${COLDEFAULT} - if [[ ${ALX_CONFD_NETWORKING} = true ]] - then - ${rc_base}/init.d/network stop - else - echo -e ${COLOREDSTAR}"Stopping default dhcp based networking ... "${COLDEFAULT} - ifconfig eth0 down - fi - if ps -A|grep dhcpcd > /dev/null - then - dhcpcd -z &> /dev/null - fi - evaluate_retval + ${rc_base}/init.d/network stop ;; *) @@ -753,86 +628,9 @@ reboot } -onboot_interface_list() -{ - local file - local devices - local iface - - # get list of all devices - for file in $@ - do - if [[ $(read_value ONBOOT ${file}) = yes ]] - then - iface="$(basename ${file} | sed s/net.//)" - # exclude backup files - case "${iface}" in - *~) ;; - *) devices="${devices} $(basename ${file} | sed s/net.//)" ;; - esac - fi - done - - echo "${devices}" -} - -# read values from net.* files -read_value() -{ - local var="$1" - local file="$2" - local value - - # local all possible vars - # global - local ONBOOT - local NETWORKING - - # static - local IP - local NETMASK - local BROADCAST - local NETWORKING - local FORCE_MAC_TO - - # dhcp - local DHCP_PROG - local DHCP_START - local DHCP_STOP - - # default gw - local GATEWAY - local GATEWAY_IF - - # wireless extensions - local WIRELESS_AP - local WIRELESS_AUTH_MODE - local WIRELESS_BITRATE - local WIRELESS_CHANNEL - local WIRELESS_DEFAULT_KEY - local WIRELESS_ESSID - local WIRELESS_FREQUENCY - local WIRELESS_KEY - local WIRELESS_KEY_ASCII - local WIRELESS_KEY_0 - local WIRELESS_KEY_1 - local WIRELESS_KEY_2 - local WIRELESS_KEY_3 - local WIRELESS_KEY_LENGTH - local WIRELESS_MODE - local WIRELESS_NICK - local WIRELESS_NWID - local WIRELESS_POWER - - source ${file} - eval value=\$$(echo ${var}) - echo "${value}" -} - case $1 in start) # check for global overrides - [ -f ${SETTINGSPATH}/confd-networking ] && ALX_CONFD_NETWORKING=true [ -f /hardware-auto-detection ] && ALX_FORCED_RECHECK=true read_cmdline hardware-auto-detection && ALX_FORCED_RECHECK=true read_cmdline alx-reset-settings && ALX_RESET_SETTINGS=true @@ -873,7 +671,6 @@ # unset_alx_connected #--> now in alxsetstate-rc6 # ! important !: del systemstate [ -f /etc/alxconfig-ng/state/state ] && rm /etc/alxconfig-ng/state/state - sleep 0.1 ;; *) echo "Usage: $0 {start|stop} ..."