Magellan Linux

Diff of /alx-src/trunk/tinyalxconfig-ng/init.d/alxsettings

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 418 by niro, Wed Jun 4 21:00:17 2008 UTC revision 489 by niro, Sun Jun 8 10:05:01 2008 UTC
# Line 11  Line 11 
11  #%before:  #%before:
12  #%after:  #%after:
13    
14  # $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 $
15    
16  # checks first if the client was already configured and if it has an valid serial  # checks first if the client was already configured and if it has an valid serial
17  # if not it runs the autoconfiguration script  # if not it runs the autoconfiguration script
# Line 30  source /etc/alxconfig-ng/config.rc Line 30  source /etc/alxconfig-ng/config.rc
30  # helper functions  # helper functions
31  source /usr/lib/alxconfig-ng/functions/mysqlfunctions  source /usr/lib/alxconfig-ng/functions/mysqlfunctions
32  source /usr/lib/alxconfig-ng/functions/serial_functions  source /usr/lib/alxconfig-ng/functions/serial_functions
33    source /usr/lib/alxconfig-ng/functions/config_driverkits
34  source /usr/lib/alxconfig-ng/functions/config_modules  source /usr/lib/alxconfig-ng/functions/config_modules
35  source /usr/lib/alxconfig-ng/functions/config_network  source /usr/lib/alxconfig-ng/functions/config_network
36  source /usr/lib/alxconfig-ng/functions/config_printers  source /usr/lib/alxconfig-ng/functions/config_printers
# Line 38  source /usr/lib/alxconfig-ng/functions/c Line 39  source /usr/lib/alxconfig-ng/functions/c
39  source /usr/lib/alxconfig-ng/functions/config_auth  source /usr/lib/alxconfig-ng/functions/config_auth
40  source /usr/lib/alxconfig-ng/functions/config_ssh_auth  source /usr/lib/alxconfig-ng/functions/config_ssh_auth
41    
 # check if mysql is available  
 [ -x /usr/bin/mysql ] && MYSQL_ALX=true  
   
42  # other needed vars  # other needed vars
43  ALX_HW_DETECT=false  ALX_HW_DETECT=false
44  ALX_FORCED_RECHECK=false  ALX_FORCED_RECHECK=false
45  ALX_RESET_SETTINGS=false  ALX_RESET_SETTINGS=false
 ALX_CONFD_NETWORKING=false  
46    
47  # unset vars which may kill us  # unset vars which may kill us
48  unset ALX_SERIAL ALX_STATE  unset ALX_SERIAL ALX_STATE
# Line 72  update_system_settings() Line 69  update_system_settings()
69  {  {
70   echo -e ${COLMAGENTA}"Checking system setup ..."${COLDEFAULT}   echo -e ${COLMAGENTA}"Checking system setup ..."${COLDEFAULT}
71    
72     # install neccessary driverkits
73     config_driverkits
74    
75   # get the modules settings   # get the modules settings
76   # ! is the first thing that must be configured !   # ! is the first thing that must be configured !
77   config_modules   config_modules
# Line 99  get_system_serial() Line 99  get_system_serial()
99  {  {
100   local CUR_IP CUR_MAC CUR_MTIME ALX_IFACE   local CUR_IP CUR_MAC CUR_MTIME ALX_IFACE
101    
  if [[ ${ALX_CONFD_NETWORKING} = true ]]  
  then  
  ALX_IFACE="$(< ${SETTINGSPATH}/confd-networking)"  
  else  
  ALX_IFACE="eth0"  
  fi  
   
102   # check if serial file exists   # check if serial file exists
103   if [ -f /etc/alxconfig-ng/serial ] && [[ ${ALX_FORCED_RECHECK} = false ]]   if [ -f /etc/alxconfig-ng/serial ] && [[ ${ALX_FORCED_RECHECK} = false ]]
104   then   then
# Line 296  import_settings_to_db() Line 289  import_settings_to_db()
289    
290   # network   # network
291   echo -e "      Network settings ..."   echo -e "      Network settings ..."
292   if [[ ${ALX_CONFD_NETWORKING} = true ]]   # global settings
293   then   mysqldo "insert into cfg_network(serial, hostname, domain )
294   # get settings   values('${ALX_SERIAL}', '${ALX_DEFAULT_HOSTNAME}','${ALX_DEFAULT_DOMAIN}');"
  #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}'  
  );"  
295    
296   # only insert the *FIRST* iface   # let udev decide which module should be loaded
297   break   # get all devices from sysfs
298   done   local i
299   else   local iface
300   mysqldo "insert into cfg_network(   for i in /sys/class/net/eth?
301   hostname,   do
302   serial,   iface=$(basename ${i})
303   module,   NETCARD_DRIVER=$(source /sys/class/net/${iface}/uevent; echo ${PHYSDEVDRIVER})
304   domain,   mysqldo "insert into cfg_interfaces(
305   networking   serial,
306     iface,
307     module,
308     networking
309   )   )
310   values(   values(
  '${ALX_DEFAULT_HOSTNAME}',  
311   '${ALX_SERIAL}',   '${ALX_SERIAL}',
312     '${iface}',
313   '${NETCARD_DRIVER}',   '${NETCARD_DRIVER}',
  '${ALX_DEFAULT_DOMAIN}',  
314   'dhcp'   'dhcp'
315   );"   );"
316   fi   done
317   evaluate_retval   evaluate_retval
318    
319   # xserver   # xserver
# Line 396  import_settings_to_db() Line 337  import_settings_to_db()
337    
338   # input   # input
339   echo -e "      Input settings ..."   echo -e "      Input settings ..."
340   mysqldo "insert into cfg_input(serial,mouse) values('${ALX_SERIAL}','${XMOUSETYPE}');"   mysqldo "insert into cfg_input(serial,mouse,keyboard) values('${ALX_SERIAL}','${XMOUSETYPE}','kbd');"
341   evaluate_retval   evaluate_retval
342    
343   # auth   # auth
# Line 461  update_settings_in_db() Line 402  update_settings_in_db()
402    
403   # network   # network
404   echo -e "      Network settings ..."   echo -e "      Network settings ..."
405   if [[ ${ALX_CONFD_NETWORKING} = true ]]   mysqldo "update cfg_network set
406   then   hostname='${ALX_DEFAULT_HOSTNAME}',
407   # get settings   domain='${ALX_DEFAULT_DOMAIN}';
408   #source ${rc_base}/init.d/network &> /dev/null   where serial=${ALX_SERIAL};"
409   for iface in $(onboot_interface_list ${network_settings}/net.*)  
410   do   # let udev decide which module should be loaded
411   [[ $(< ${SETTINGSPATH}/confd-networking) != ${iface} ]] && continue   # get all devices from sysfs
412   echo "WARNING: only importing settings for interface [ ${iface} ] !"   local i
413   source ${network_settings}/net.${iface} || exit 1   local iface
414   NETCARD_DRIVER="$(cat /etc/modules.d/net.${iface} | cut -d' ' -f3)"   for i in /sys/class/net/eth?
415     do
416   mysqldo "update cfg_network set   iface=$(basename ${i})
417   hostname='${ALX_DEFAULT_HOSTNAME}',   NETCARD_DRIVER=$(source /sys/class/net/${iface}/uevent; echo ${PHYSDEVDRIVER})
418   module='${NETCARD_DRIVER}',   mysqldo "update cfg_interfaces set
419   domain='${ALX_DEFAULT_DOMAIN}',   iface='${iface}',
420   networking='${NETWORKING}',   module='${NETCARD_DRIVER}',
421   netmask='${NETMASK}',   networking='${NETWORKING}',
422   dns='${NAMESERVER}',   where serial=${ALX_SERIAL};"
  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};"  
423    
424   # only insert the *FIRST* iface   # only insert the *FIRST* iface
425   break   break
426   done   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  
427   evaluate_retval   evaluate_retval
428    
429   # xserver   # xserver
# Line 521  update_settings_in_db() Line 439  update_settings_in_db()
439    
440   # input   # input
441   echo -e "      Input settings ..."   echo -e "      Input settings ..."
442   mysqldo "update cfg_input set mouse='${XMOUSETYPE}' where serial=${ALX_SERIAL};"   mysqldo "update cfg_input set mouse='${XMOUSETYPE}', keyboard='kbd' where serial=${ALX_SERIAL};"
443   evaluate_retval   evaluate_retval
444  }  }
445    
# Line 586  import_settings_local() Line 504  import_settings_local()
504   # add a newline (maybe there is no crlf in the footer)   # add a newline (maybe there is no crlf in the footer)
505   echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu   echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
506    
   
507   # setup some standart icons (sysinfo.lnk)   # setup some standart icons (sysinfo.lnk)
508   # basic config   # basic config
509   cat ${ALX_SKELETONS}/xtdesktop/xtdeskrc > ${ALX_UNPRIV_HOME}/.xtdeskrc   cat ${ALX_SKELETONS}/xtdesktop/xtdeskrc > ${ALX_UNPRIV_HOME}/.xtdeskrc
# Line 715  reset_system_settings() Line 632  reset_system_settings()
632   reboot   reboot
633  }  }
634    
 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}"  
 }  
   
635  case $1 in  case $1 in
636   start)   start)
637   # check for global overrides   # check for global overrides
  [ -f ${SETTINGSPATH}/confd-networking ] && ALX_CONFD_NETWORKING=true  
638   [ -f /hardware-auto-detection ] && ALX_FORCED_RECHECK=true   [ -f /hardware-auto-detection ] && ALX_FORCED_RECHECK=true
639   read_cmdline hardware-auto-detection && ALX_FORCED_RECHECK=true   read_cmdline hardware-auto-detection && ALX_FORCED_RECHECK=true
640   read_cmdline alx-reset-settings && ALX_RESET_SETTINGS=true   read_cmdline alx-reset-settings && ALX_RESET_SETTINGS=true
# Line 835  case $1 in Line 675  case $1 in
675   # unset_alx_connected #--> now in alxsetstate-rc6   # unset_alx_connected #--> now in alxsetstate-rc6
676   # ! important !: del systemstate   # ! important !: del systemstate
677   [ -f /etc/alxconfig-ng/state/state ] && rm /etc/alxconfig-ng/state/state   [ -f /etc/alxconfig-ng/state/state ] && rm /etc/alxconfig-ng/state/state
  sleep 0.1  
678   ;;   ;;
679   *)   *)
680   echo "Usage: $0 {start|stop} ..."   echo "Usage: $0 {start|stop} ..."

Legend:
Removed from v.418  
changed lines
  Added in v.489