Magellan Linux

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

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

revision 386 by niro, Wed Jun 4 16:47:56 2008 UTC revision 449 by niro, Thu Jun 5 17:23:38 2008 UTC
# Line 2  Line 2 
2    
3  # <niro@magellan-linux.de>  # <niro@magellan-linux.de>
4    
5  #%rlevels: 7:s 0:k 6:k  #%rlevels: 7:s 0:k
6  #%start: 41  #%start: 41
7  #%stop: 01  #%stop: 01
8    
# 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.1 2008-06-04 16:47:56 niro Exp $  # $Header: /home/cvsd/alx-cvs/alx-src/tinyalxconfig-ng/init.d/alxsettings,v 1.11 2008-06-05 17:23:38 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 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    
102   if [[ ${ALX_CONFD_NETWORKING} = true ]]   if [[ -f ${SETTINGSPATH}/confd-networking ]]
103   then   then
104   ALX_IFACE="$(< ${SETTINGSPATH}/confd-networking)"   ALX_IFACE="$(< ${SETTINGSPATH}/confd-networking)"
105   else   else
# Line 153  get_system_serial() Line 153  get_system_serial()
153   else   else
154   echo -e ${COLMAGENTA}"Preparing system for first boot"${COLDEFAULT}   echo -e ${COLMAGENTA}"Preparing system for first boot"${COLDEFAULT}
155   fi   fi
156     # cleaning up old data-crap
157     if [ -d /etc/sysconfig/hwsetup ]
158     then
159     echo -e ${COLOREDSTAR}"Cleaning up old data ..."
160     rm -f /etc/sysconfig/hwsetup/*
161     fi
162   ALX_HW_DETECT=true   ALX_HW_DETECT=true
163   /etc/init.d/hwdetect start   echo -en "${COLOREDSTAR}";hwsetup -p > /dev/null
164    
165   # set hostname to alx_default_hostname   # set hostname to alx_default_hostname
166   # use old hostname if this is a forced re-check   # use old hostname if this is a forced re-check
# Line 290  import_settings_to_db() Line 296  import_settings_to_db()
296    
297   # network   # network
298   echo -e "      Network settings ..."   echo -e "      Network settings ..."
299   if [[ ${ALX_CONFD_NETWORKING} = true ]]   # global settings
300   then   mysqldo "insert into cfg_network(serial, hostname, domain )
301   # 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}'  
  );"  
302    
303   # only insert the *FIRST* iface   # let udev decide which module should be loaded
304   break   # get all devices from sysfs
305   done   local i
306   else   local iface
307   mysqldo "insert into cfg_network(   for i in /sys/class/net/eth?
308   hostname,   do
309   serial,   iface=$(basename ${i})
310   module,   NETCARD_DRIVER=$(source /sys/class/net/${iface}/uevent; echo ${PHYSDEVDRIVER})
311   domain,   mysqldo "insert into cfg_interfaces(
312   networking   serial,
313     iface,
314     module,
315     networking
316   )   )
317   values(   values(
  '${ALX_DEFAULT_HOSTNAME}',  
318   '${ALX_SERIAL}',   '${ALX_SERIAL}',
319     '${iface}',
320   '${NETCARD_DRIVER}',   '${NETCARD_DRIVER}',
  '${ALX_DEFAULT_DOMAIN}',  
321   'dhcp'   'dhcp'
322   );"   );"
323   fi   done
324   evaluate_retval   evaluate_retval
325    
326   # xserver   # xserver
# Line 390  import_settings_to_db() Line 344  import_settings_to_db()
344    
345   # input   # input
346   echo -e "      Input settings ..."   echo -e "      Input settings ..."
347   mysqldo "insert into cfg_input(serial,mouse) values('${ALX_SERIAL}','${XMOUSETYPE}');"   mysqldo "insert into cfg_input(serial,mouse,keyboard) values('${ALX_SERIAL}','${XMOUSETYPE}','kbd');"
348   evaluate_retval   evaluate_retval
349    
350   # auth   # auth
# Line 455  update_settings_in_db() Line 409  update_settings_in_db()
409    
410   # network   # network
411   echo -e "      Network settings ..."   echo -e "      Network settings ..."
412   if [[ ${ALX_CONFD_NETWORKING} = true ]]   mysqldo "update cfg_network set
413   then   hostname='${ALX_DEFAULT_HOSTNAME}',
414   # get settings   domain='${ALX_DEFAULT_DOMAIN}';
415   #source ${rc_base}/init.d/network &> /dev/null   where serial=${ALX_SERIAL};"
416   for iface in $(onboot_interface_list ${network_settings}/net.*)  
417   do   # let udev decide which module should be loaded
418   [[ $(< ${SETTINGSPATH}/confd-networking) != ${iface} ]] && continue   # get all devices from sysfs
419   echo "WARNING: only importing settings for interface [ ${iface} ] !"   local i
420   source ${network_settings}/net.${iface} || exit 1   local iface
421   NETCARD_DRIVER="$(cat /etc/modules.d/net.${iface} | cut -d' ' -f3)"   for i in /sys/class/net/eth?
422     do
423   mysqldo "update cfg_network set   iface=$(basename ${i})
424   hostname='${ALX_DEFAULT_HOSTNAME}',   NETCARD_DRIVER=$(source /sys/class/net/${iface}/uevent; echo ${PHYSDEVDRIVER})
425   module='${NETCARD_DRIVER}',   mysqldo "update cfg_interfaces set
426   domain='${ALX_DEFAULT_DOMAIN}',   iface='${iface}',
427   networking='${NETWORKING}',   module='${NETCARD_DRIVER}',
428   netmask='${NETMASK}',   networking='${NETWORKING}',
429   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};"  
430    
431   # only insert the *FIRST* iface   # only insert the *FIRST* iface
432   break   break
433   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  
434   evaluate_retval   evaluate_retval
435    
436   # xserver   # xserver
# Line 515  update_settings_in_db() Line 446  update_settings_in_db()
446    
447   # input   # input
448   echo -e "      Input settings ..."   echo -e "      Input settings ..."
449   mysqldo "update cfg_input set mouse='${XMOUSETYPE}' where serial=${ALX_SERIAL};"   mysqldo "update cfg_input set mouse='${XMOUSETYPE}', keyboard='kbd' where serial=${ALX_SERIAL};"
450   evaluate_retval   evaluate_retval
451  }  }
452    
# Line 541  import_settings_local() Line 472  import_settings_local()
472   echo   echo
473   echo -e ${COLMAGENTA}"Importing detected settings to local system"${COLDEFAULT}   echo -e ${COLMAGENTA}"Importing detected settings to local system"${COLDEFAULT}
474    
  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  
   
475   # set system state to 'already configured'   # set system state to 'already configured'
476   touch /etc/alxconfig-ng/state/configured   touch /etc/alxconfig-ng/state/configured
477    
# Line 594  import_settings_local() Line 511  import_settings_local()
511   # add a newline (maybe there is no crlf in the footer)   # add a newline (maybe there is no crlf in the footer)
512   echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu   echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
513    
   
514   # setup some standart icons (sysinfo.lnk)   # setup some standart icons (sysinfo.lnk)
515   # basic config   # basic config
516   cat ${ALX_SKELETONS}/xtdesktop/xtdeskrc > ${ALX_UNPRIV_HOME}/.xtdeskrc   cat ${ALX_SKELETONS}/xtdesktop/xtdeskrc > ${ALX_UNPRIV_HOME}/.xtdeskrc
# Line 644  import_settings_local() Line 560  import_settings_local()
560  # start|stop  # start|stop
561  preliminary_network()  preliminary_network()
562  {  {
  local module  
   
  if [ -f /etc/alxconfig-ng/state/configured ]  
  then  
  # compat for old clients  
  if [ -f ${SETTINGSPATH}/modules ]  
  then  
  # get module name  
  module=$(cat ${SETTINGSPATH}/modules)  
  modprobe ${module}  
  fi  
  else  
  # vars used by hwdetect  
  local NETCARD_FULLNAME NETCARD_DRIVER MOUSE_FULLNAME MOUSE_DEVICE SOUND_FULLNAME  
  local SOUND_DRIVER XSERVER XMODULE XDESC FLOPPY_FULLNAME FLOPPY_DEVICE FLOPPY_DRIVER  
   
  # get setting from hwdetect  
  source /etc/sysconfig/hwsetup/knoppix  
  modprobe ${NETCARD_DRIVER}  
  fi  
   
563   case $1 in   case $1 in
564   start)   start)
565   # keeping like always safe:   # keeping like always safe:
566   # no network should be startet here,   # no network should be started here
567   # so we can delete all pid files if one exists   ${rc_base}/init.d/network stop
  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  
568    
569   echo -e ${COLMAGENTA}"Starting preliminary networking ... "${COLDEFAULT}   echo -e ${COLMAGENTA}"Starting preliminary networking ... "${COLDEFAULT}
   
570   # start network configured from /etc/conf.d   # start network configured from /etc/conf.d
571   if [[ ${ALX_CONFD_NETWORKING} = true ]]   ${rc_base}/init.d/network start
  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  
572   ;;   ;;
573    
574   stop)   stop)
575   echo -e ${COLMAGENTA}"Stopping preliminary networking ... "${COLDEFAULT}   echo -e ${COLMAGENTA}"Stopping preliminary networking ... "${COLDEFAULT}
576   if [[ ${ALX_CONFD_NETWORKING} = true ]]   ${rc_base}/init.d/network stop
  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  
577   ;;   ;;
578    
579   *)   *)
# Line 774  reset_system_settings() Line 639  reset_system_settings()
639   reboot   reboot
640  }  }
641    
 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}"  
 }  
   
642  case $1 in  case $1 in
643   start)   start)
644   # check for global overrides   # check for global overrides
# Line 894  case $1 in Line 683  case $1 in
683   # unset_alx_connected #--> now in alxsetstate-rc6   # unset_alx_connected #--> now in alxsetstate-rc6
684   # ! important !: del systemstate   # ! important !: del systemstate
685   [ -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  
686   ;;   ;;
687   *)   *)
688   echo "Usage: $0 {start|stop} ..."   echo "Usage: $0 {start|stop} ..."

Legend:
Removed from v.386  
changed lines
  Added in v.449