--- alx-src/trunk/tinyalxconfig-ng/init.d/alxsettings 2008/06/04 21:00:17 418 +++ alx-src/trunk/tinyalxconfig-ng/init.d/alxsettings 2008/06/08 10:05:01 489 @@ -11,7 +11,7 @@ #%before: #%after: -# $Header: /home/cvsd/alx-cvs/alx-src/tinyalxconfig-ng/init.d/alxsettings,v 1.7 2008-06-04 21:00:17 niro Exp $ +# $Header: /home/cvsd/alx-cvs/alx-src/tinyalxconfig-ng/init.d/alxsettings,v 1.14 2008-06-08 10:05:01 niro Exp $ # checks first if the client was already configured and if it has an valid serial # if not it runs the autoconfiguration script @@ -30,6 +30,7 @@ # helper functions source /usr/lib/alxconfig-ng/functions/mysqlfunctions source /usr/lib/alxconfig-ng/functions/serial_functions +source /usr/lib/alxconfig-ng/functions/config_driverkits source /usr/lib/alxconfig-ng/functions/config_modules source /usr/lib/alxconfig-ng/functions/config_network source /usr/lib/alxconfig-ng/functions/config_printers @@ -38,14 +39,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 @@ -72,6 +69,9 @@ { echo -e ${COLMAGENTA}"Checking system setup ..."${COLDEFAULT} + # install neccessary driverkits + config_driverkits + # get the modules settings # ! is the first thing that must be configured ! config_modules @@ -99,13 +99,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 @@ -296,83 +289,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 @@ -396,7 +337,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 @@ -461,51 +402,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 @@ -521,7 +439,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 } @@ -586,7 +504,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 @@ -715,86 +632,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 @@ -835,7 +675,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} ..."