Magellan Linux

Diff of /alx-src/tags/alxconf-0_6_0-rc7/init.d/alxsettings

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

revision 2010 by niro, Mon May 9 15:44:33 2011 UTC revision 2156 by niro, Tue May 17 21:41:48 2011 UTC
# Line 26  source $rc_functions Line 26  source $rc_functions
26  source /etc/alxconfig-ng/config.rc  source /etc/alxconfig-ng/config.rc
27    
28  # helper functions  # helper functions
29    source /usr/lib/alxconfig-ng/functions/common
30  source /usr/lib/alxconfig-ng/functions/mysqlfunctions  source /usr/lib/alxconfig-ng/functions/mysqlfunctions
31  source /usr/lib/alxconfig-ng/functions/serial_functions  source /usr/lib/alxconfig-ng/functions/serial_functions
32  source /usr/lib/alxconfig-ng/functions/config_modules  source /usr/lib/alxconfig-ng/functions/config_modules
# Line 66  read_cmdline() Line 67  read_cmdline()
67    
68  update_system_settings()  update_system_settings()
69  {  {
70   echo -e ${COLMAGENTA}"Checking system setup ..."${COLDEFAULT}   rc_mecho Checking system setup ...
71    
72   # get the modules settings   # get the modules settings
73   # ! is the first thing that must be configured !   # ! is the first thing that must be configured !
# Line 125  get_system_serial() Line 126  get_system_serial()
126   CUR_MAC=$(ifconfig ${ALX_IFACE} | grep HWaddr | cut -d ' ' -f11)   CUR_MAC=$(ifconfig ${ALX_IFACE} | grep HWaddr | cut -d ' ' -f11)
127   CUR_MTIME=$(date +%s)   CUR_MTIME=$(date +%s)
128    
129   echo -e ${COLOREDSTAR} "Trying to validate my serial ..."   rc_print "Trying to validate my serial ..."
130    
131   # nice serial output   # nice serial output
132   $CURS_UP   $CURS_UP
# Line 148  get_system_serial() Line 149  get_system_serial()
149   echo   echo
150   if [[ ${ALX_FORCED_RECHECK} = true ]]   if [[ ${ALX_FORCED_RECHECK} = true ]]
151   then   then
152   echo -e ${COLMAGENTA}"Hardware autodetection forced by system-administrator"${COLDEFAULT}   rc_mecho "Hardware autodetection forced by system-administrator"
153   # always disable CONFD_NETWORKING here   # always disable CONFD_NETWORKING here
154   export ALX_CONFD_NETWORKING="false"   export ALX_CONFD_NETWORKING="false"
155   else   else
156   echo -e ${COLMAGENTA}"Preparing system for first boot"${COLDEFAULT}   rc_mecho "Preparing system for first boot"
157   fi   fi
158   ALX_HW_DETECT=true   ALX_HW_DETECT=true
159   hwsetup   hwsetup
# Line 177  get_system_serial() Line 178  get_system_serial()
178   exit 1   exit 1
179   fi   fi
180    
181    
182   CUR_IP=$(/sbin/ifconfig eth0 | sed -n '/addr:/s/ [^r]*..//gp')   CUR_IP=$(/sbin/ifconfig eth0 | sed -n '/addr:/s/ [^r]*..//gp')
183   CUR_MAC=$(/sbin/ifconfig eth0 | grep HWaddr | cut -d ' ' -f11)   CUR_MAC=$(/sbin/ifconfig eth0 | grep HWaddr | cut -d ' ' -f11)
184   CUR_MTIME=$(date +%s)   CUR_MTIME=$(date +%s)
# Line 187  get_system_serial() Line 189  get_system_serial()
189   # but first check the serial   # but first check the serial
190   source /etc/alxconfig-ng/serial   source /etc/alxconfig-ng/serial
191    
192   echo -e ${COLOREDSTAR} "Trying to validate my serial ..."   rc_print "Trying to validate my serial ..."
193    
194   # nice serial output   # nice serial output
195   $CURS_UP   $CURS_UP
# Line 215  get_system_serial() Line 217  get_system_serial()
217   return 0   return 0
218   fi   fi
219    
220   echo -e ${COLOREDSTAR} "Trying to get new serial ..."   rc_print "Trying to get new serial ..."
221    
222   # request a new serial; one command now (cause must be done in the same session)   # request a new serial; one command now (cause must be done in the same session)
223   ALX_SERIAL=$(mysqldo "insert into client_serials (mtime, mac) values('${CUR_MTIME}','${CUR_MAC}');   ALX_SERIAL=$(mysqldo "insert into client_serials (mtime, mac) values('${CUR_MTIME}','${CUR_MAC}');
# Line 287  import_settings_to_db() Line 289  import_settings_to_db()
289   source /etc/conf.d/hwsetup/mouse   source /etc/conf.d/hwsetup/mouse
290    
291   echo   echo
292   echo -e ${COLMAGENTA}"Importing detected settings to database"${COLDEFAULT}   rc_mecho "Importing detected settings to database"
293    
294   # network   # network
295   echo -e "      Network settings ..."   rc_mecho "      Network settings ..."
296   if [[ ${ALX_CONFD_NETWORKING} = true ]]   if [[ ${ALX_CONFD_NETWORKING} = true ]]
297   then   then
298   # get settings   # get settings
  #source ${rc_base}/init.d/network &> /dev/null  
299   for iface in $(onboot_interface_list ${network_settings}/net.*)   for iface in $(onboot_interface_list ${network_settings}/net.*)
300   do   do
301   [[ $(< ${SETTINGSPATH}/confd-networking) != ${iface} ]] && continue   [[ $(< ${SETTINGSPATH}/confd-networking) != ${iface} ]] && continue
302   echo "WARNING: only importing settings for interface [ ${iface} ] !"   rc_echo "WARNING: only importing settings for interface [ ${iface} ] !"
303   source ${network_settings}/net.${iface} || exit 1   source ${network_settings}/net.${iface} || echo "Error: could not read '${network_settings}/net.${iface}'"
304   NETCARD_DRIVER="$(cat /etc/modules.d/net.${iface} | cut -d' ' -f3)"   NETCARD_DRIVER="$(cat /etc/modprobe.d/net.${iface}.conf | cut -d' ' -f3)"
305    
306   mysqldo "insert into cfg_network(   mysqldo "insert into cfg_network(
307   hostname,   hostname,
# Line 371  import_settings_to_db() Line 372  import_settings_to_db()
372   evaluate_retval   evaluate_retval
373    
374   # xserver   # xserver
375   echo -e "      Graphic settings ..."   rc_mecho "      Graphic settings ..."
376   # xserver general   # xserver general
377   ( mysqldo "insert into cfg_graphic(   ( mysqldo "insert into cfg_graphic(
378   serial,   serial,
# Line 390  import_settings_to_db() Line 391  import_settings_to_db()
391   evaluate_retval   evaluate_retval
392    
393   # input   # input
394   echo -e "      Input settings ..."   rc_mecho "      Input settings ..."
395   mysqldo "insert into cfg_input(serial,mouse) values('${ALX_SERIAL}','${XMOUSETYPE}');"   mysqldo "insert into cfg_input(serial,mouse) values('${ALX_SERIAL}','${XMOUSETYPE}');"
396   evaluate_retval   evaluate_retval
397    
398   # auth   # auth
399   echo -e "      Authentification settings ..."   rc_mecho "      Authentification settings ..."
400   mysqldo "insert into client_auth(   mysqldo "insert into client_auth(
401   serial,   serial,
402   username,   username,
# Line 416  import_settings_to_db() Line 417  import_settings_to_db()
417    
418   # exchange ssh rsa keys - the first boot needs this !   # exchange ssh rsa keys - the first boot needs this !
419   # or no reboot will work via the webadmin   # or no reboot will work via the webadmin
420   echo -e "      SSH authentification settings ..."   rc_mecho "      SSH authentification settings ..."
421   HOME=/root config_ssh_auth   HOME=/root config_ssh_auth
422   evaluate_retval   evaluate_retval
423    
424   # autostart   # autostart
425   echo -e "      Autostart settings ..."   rc_mecho "      Autostart settings ..."
426   mysqldo "insert into cfg_autostart(serial,session) values('${ALX_SERIAL}','');"   mysqldo "insert into cfg_autostart(serial,session) values('${ALX_SERIAL}','');"
427    
428   # screensaver   # screensaver
429   echo -e "      Screensaver settings ..."   rc_mecho "      Screensaver settings ..."
430   mysqldo "insert into cfg_screensaver(serial,screensaver) values('${ALX_SERIAL}','')"   mysqldo "insert into cfg_screensaver(serial,screensaver) values('${ALX_SERIAL}','')"
431    
432   # version info   # version info
433     rc_mecho "      OS version info ..."
434   local alx_os   local alx_os
435   local alx_utils   local alx_utils
436   alx_os="$(< /etc/mageversion)"   alx_os="$(< /etc/mageversion)"
# Line 460  update_settings_in_db() Line 462  update_settings_in_db()
462   source /etc/conf.d/hwsetup/mouse   source /etc/conf.d/hwsetup/mouse
463    
464   echo   echo
465   echo -e ${COLMAGENTA}"Updating detected settings in database"${COLDEFAULT}   rc_mecho "Updating detected settings in database"
466    
467   # network   # network
468   echo -e "      Network settings ..."   rc_mecho "      Network settings ..."
469   if [[ ${ALX_CONFD_NETWORKING} = true ]]   if [[ ${ALX_CONFD_NETWORKING} = true ]]
470   then   then
471   # get settings   # get settings
# Line 471  update_settings_in_db() Line 473  update_settings_in_db()
473   for iface in $(onboot_interface_list ${network_settings}/net.*)   for iface in $(onboot_interface_list ${network_settings}/net.*)
474   do   do
475   [[ $(< ${SETTINGSPATH}/confd-networking) != ${iface} ]] && continue   [[ $(< ${SETTINGSPATH}/confd-networking) != ${iface} ]] && continue
476   echo "WARNING: only importing settings for interface [ ${iface} ] !"   rc_echo "WARNING: only importing settings for interface [ ${iface} ] !"
477   source ${network_settings}/net.${iface} || exit 1   source ${network_settings}/net.${iface} || exit 1
478   NETCARD_DRIVER="$(cat /etc/modules.d/net.${iface} | cut -d' ' -f3)"   NETCARD_DRIVER="$(cat /etc/modprobe.d/net.${iface}.conf | cut -d' ' -f3)"
479    
480   mysqldo "update cfg_network set   mysqldo "update cfg_network set
481   hostname='${ALX_DEFAULT_HOSTNAME}',   hostname='${ALX_DEFAULT_HOSTNAME}',
# Line 512  update_settings_in_db() Line 514  update_settings_in_db()
514   evaluate_retval   evaluate_retval
515    
516   # xserver   # xserver
517   echo -e "      Graphic settings ..."   rc_mecho "      Graphic settings ..."
518   # xserver general   # xserver general
519   mysqldo "update cfg_graphic set   mysqldo "update cfg_graphic set
520   module='${XMODULE}',   module='${XMODULE}',
# Line 523  update_settings_in_db() Line 525  update_settings_in_db()
525   evaluate_retval   evaluate_retval
526    
527   # input   # input
528   echo -e "      Input settings ..."   rc_mecho "      Input settings ..."
529   mysqldo "update cfg_input set mouse='${XMOUSETYPE}' where serial=${ALX_SERIAL};"   mysqldo "update cfg_input set mouse='${XMOUSETYPE}' where serial=${ALX_SERIAL};"
530   evaluate_retval   evaluate_retval
531    
532   # version info   # version info
533     rc_mecho "      OS version info ..."
534   local alx_os   local alx_os
535   local alx_utils   local alx_utils
536   alx_os="$(< /etc/mageversion)"   alx_os="$(< /etc/mageversion)"
# Line 556  import_settings_local() Line 559  import_settings_local()
559   source /etc/conf.d/hwsetup/knoppix   source /etc/conf.d/hwsetup/knoppix
560    
561   echo   echo
562   echo -e ${COLMAGENTA}"Importing detected settings to local system"${COLDEFAULT}   rc_mecho "Importing detected settings to local system"
563    
564   if [[ ${ALX_CONFD_NETWORKING} = false ]]   if [[ ${ALX_CONFD_NETWORKING} = false ]]
565   then   then
566   #[ ! -d ${SETTINGSPATH} ] && install -d ${SETTINGSPATH}   # set an device alias for modprobe.conf
  #echo "${NETCARD_DRIVER}" > ${SETTINGSPATH}/modules  
   
  # set an device alias for modprobe.conf and modules.conf  
  [ ! -d /etc/modules.d ] && install -d /etc/modules.d  
567   [ ! -d /etc/modprobe.d ] && install -d /etc/modprobe.d   [ ! -d /etc/modprobe.d ] && install -d /etc/modprobe.d
568   echo "alias eth0 ${NETCARD_DRIVER}" > /etc/modules.d/net.eth0   echo "alias eth0 ${NETCARD_DRIVER}" > /etc/modprobe.d/net.eth0.conf
  echo "alias eth0 ${NETCARD_DRIVER}" > /etc/modprobe.d/net.eth0  
569    
570   # regenerate modprobe.conf   # regenerate modprobe.conf
571   [ -x $(which modules-update) ] && modules-update || echo "cannot regen modprobe.conf"   [ -x $(which modules-update) ] && modules-update || rc_echo "modules-update not found!"
572   evaluate_retval   evaluate_retval
573   fi   fi
574    
# Line 590  import_settings_local() Line 588  import_settings_local()
588   # now generate fluxbox config files   # now generate fluxbox config files
589    
590   # fluxbox main config   # fluxbox main config
591   cat ${ALX_SKELETONS}/fluxbox/init \   cat ${ALX_SKELETONS}/fluxbox/init > ${ALX_UNPRIV_HOME}/.fluxbox/init
  > ${ALX_UNPRIV_HOME}/.fluxbox/init  
592    
593   # fluxbox autostart   # fluxbox autostart
594   cat ${ALX_SKELETONS}/fluxbox/apps \   cat ${ALX_SKELETONS}/fluxbox/apps > ${ALX_UNPRIV_HOME}/.fluxbox/apps
  > ${ALX_UNPRIV_HOME}/.fluxbox/apps  
595    
596   # fluxbox menu header   # fluxbox menu header
597   cat ${ALX_SKELETONS}/fluxbox/menu.header \   cat ${ALX_SKELETONS}/fluxbox/menu.header > ${ALX_UNPRIV_HOME}/.fluxbox/menu
  > ${ALX_UNPRIV_HOME}/.fluxbox/menu  
598    
599   # now fix it with proper messages :P   # now fix it with proper messages :P
600   local ver="$(< /etc/mageversion)"   local ver="$(< /etc/mageversion)"
601   sed -i "s:@CHANGEME@:alx-${ver}  #${ALX_SERIAL}:g" \   sed -i "s:@CHANGEME@:alx-${ver}  #${ALX_SERIAL}:g" ${ALX_UNPRIV_HOME}/.fluxbox/menu
  ${ALX_UNPRIV_HOME}/.fluxbox/menu  
602    
603   # add a newline (maybe there is no crlf in the header)   # add a newline (maybe there is no crlf in the header)
604   echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu   echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
605    
606   # fluxbox menu footer   # fluxbox menu footer
607   cat ${ALX_SKELETONS}/fluxbox/menu.footer \   cat ${ALX_SKELETONS}/fluxbox/menu.footer >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
  >> ${ALX_UNPRIV_HOME}/.fluxbox/menu  
608    
609   # add a newline (maybe there is no crlf in the footer)   # add a newline (maybe there is no crlf in the footer)
610   echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu   echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
# Line 667  import_settings_local() Line 660  import_settings_local()
660  preliminary_network()  preliminary_network()
661  {  {
662   local module   local module
  local modulesconf  
663    
664   if [ -f /etc/alxconfig-ng/state/configured ]   if [ -f /etc/alxconfig-ng/state/configured ]
665   then   then
# Line 679  preliminary_network() Line 671  preliminary_network()
671   modprobe ${module}   modprobe ${module}
672   fi   fi
673    
  # check modprobe.conf  
  if [[ $(kernel_major_version) = 2.4 ]]  
  then  
  modulesconf="/etc/modules.conf"  
  else  
  modulesconf="/etc/modprobe.conf"  
  fi  
  if [[ -z $(grep eth0 ${modulesconf}) ]]  
  then  
  modules-update force  
  fi  
674   else   else
675   # vars used by hwsetup   # vars used by hwsetup
676   local NETCARD_FULLNAME NETCARD_DRIVER MOUSE_FULLNAME MOUSE_DEVICE SOUND_FULLNAME   local NETCARD_FULLNAME NETCARD_DRIVER MOUSE_FULLNAME MOUSE_DEVICE SOUND_FULLNAME
# Line 705  preliminary_network() Line 686  preliminary_network()
686   # keeping like always safe:   # keeping like always safe:
687   # no network should be startet here,   # no network should be startet here,
688   # so we can delete all pid files if one exists   # so we can delete all pid files if one exists
689   if ps -A|grep udhcpc > /dev/null   if [[ ! -z $(pidof $(basename ${ALX_DHCP_PROG})) ]]
690   then   then
691   echo -e ${COLMAGENTA}"Forcing network down"${COLDEFAULT}   rc_mecho "Forcing network down"
692   killall udhcpc   killall $(basename ${ALX_DHCP_PROG}) &> /dev/null
693   sleep 1   sleep 1
694   fi   fi
695   [[ ${ALX_CONFD_NETWORKING} = true ]] && [[ ${RUNLEVEL} != S ]] && \   [[ ${ALX_CONFD_NETWORKING} = true ]] && ${rc_base}/init.d/network stop
  ${rc_base}/init.d/network stop  
696    
697   echo -e ${COLMAGENTA}"Starting preliminary networking ... "${COLDEFAULT}   rc_mecho "Starting preliminary networking ... "
698    
699   # start network configured from /etc/conf.d   # start network configured from /etc/conf.d
700   if [[ ${ALX_CONFD_NETWORKING} = true ]]   if [[ ${ALX_CONFD_NETWORKING} = true ]]
701   then   then
702   ${rc_base}/init.d/network start   ${rc_base}/init.d/network start
703   else   else
704   echo -e ${COLOREDSTAR}"Starting default dhcp based networking ... "${COLDEFAULT}   rc_print "Starting default dhcp based networking ... "
705   # -t 10 timeout of 10 secs   ${ALX_DHCP_PROG} ${ALX_DHCP_START} &> /dev/null
  dhcpcd -t 10 &> /dev/null  
706   evaluate_retval   evaluate_retval
707   fi   fi
708   ;;   ;;
709    
710   stop)   stop)
711   echo -e ${COLMAGENTA}"Stopping preliminary networking ... "${COLDEFAULT}   rc_mecho "Stopping preliminary networking ... "
712   if [[ ${ALX_CONFD_NETWORKING} = true ]]   if [[ ${ALX_CONFD_NETWORKING} = true ]]
713   then   then
714   ${rc_base}/init.d/network stop   ${rc_base}/init.d/network stop
715   else   else
716   echo -e ${COLOREDSTAR}"Stopping default dhcp based networking ... "${COLDEFAULT}   rc_print "Stopping default dhcp based networking ... "
717   ifconfig eth0 down   ifconfig ${ALX_IFACE} down
718   fi   fi
719   if ps -A|grep dhcpcd > /dev/null   if [[ ! -z $(pidof $(basename ${ALX_DHCP_PROG})) ]]
720   then   then
721   dhcpcd -z  &> /dev/null   killall $(basename ${ALX_DHCP_PROG}) &> /dev/null
722   sleep 1   sleep 1
723   fi   fi
724   evaluate_retval   evaluate_retval
# Line 755  reset_system_settings() Line 734  reset_system_settings()
734  {  {
735   # force load of de kbdkeys   # force load of de kbdkeys
736   loadkeys -q de   loadkeys -q de
737   echo   rc_echo
738   echo -en ${COLRED}   rc_echo -en ${COLRED}
739   echo -n "*** Warning: you are about to reset *all* local settings on this system!"   rc_echo -n "*** Warning: you are about to reset *all* local settings on this system!"
740   echo -e ${COLDEFAULT}   rc_echo -e ${COLDEFAULT}
741   echo "*** Do you really want to continue ?"   rc_echo "*** Do you really want to continue ?"
742   echo -n "*** Enter 'yes' to continue, anything else to abort: "   rc_echo -n "*** Enter 'yes' to continue, anything else to abort: "
743   read kbinsert   read kbinsert
744   if [[ ${kbinsert} = yes ]]   if [[ ${kbinsert} = yes ]]
745   then   then
746   echo -en ${COLRED}   rc_echo -en ${COLRED}
747   echo -n "*** OK, you really want it ... killing all settings: "   rc_echo -n "*** OK, you really want it ... killing all settings: "
748   for i in 3 2 1 now   for i in 3 2 1 now
749   do   do
750   echo -n " ${i}"   rc_echo -n " ${i}"
751   sleep 1   sleep 1
752   done   done
753   echo -e ${COLDEFAULT}   rc_echo -e ${COLDEFAULT}
754    
755   ## reset all settings:   ## reset all settings:
756   rm -rf ${SETTINGSPATH}/*   rm -rf ${SETTINGSPATH}/*
# Line 779  reset_system_settings() Line 758  reset_system_settings()
758   rm -rf /etc/alxconfig-ng/state   rm -rf /etc/alxconfig-ng/state
759    
760   # clear all printers & net-shares   # clear all printers & net-shares
761   :> /etc/cups/printers.conf   :> /etc/printcap
  :> /etc/samba/smb.conf  
762    
763   # remove inetd, cups & smb from init   # remove lprng
764   rc-config del inetd &> /dev/null   rc-config del lprng &> /dev/null
  rc-config del cups &> /dev/null  
  rc-config del samba &> /dev/null  
765    
766   # remove all user settings   # remove all user settings
767   [ -d ${ALX_UNPRIV_HOME} ] && rm -rf ${ALX_UNPRIV_HOME}   [ -d ${ALX_UNPRIV_HOME} ] && rm -rf ${ALX_UNPRIV_HOME}
# Line 795  reset_system_settings() Line 771  reset_system_settings()
771    
772   # remove all old nics and modules configs   # remove all old nics and modules configs
773   find /etc/conf.d -type f -name 'net.*' | xargs rm   find /etc/conf.d -type f -name 'net.*' | xargs rm
774   find /etc/modules.d -type f -name 'net.*' | xargs rm   find /etc/modprobe.d -type f -name 'net.*' | xargs rm
775    
776   # restore default networking   # restore default networking
777   cat ${ALX_SKELETONS}/net/net.eth0 > /etc/conf.d/net.eth0   cat ${ALX_SKELETONS}/net/net.eth0 > /etc/conf.d/net.eth0
778    
779   echo "I am done now, press [Enter] to reboot system ..."   rc_echo "I am done now, press [Enter] to reboot system ..."
780   else   else
781   echo "Aborted, press [Enter] to reboot system ..."   rc_echo "Aborted, press [Enter] to reboot system ..."
782   fi   fi
783   read   read
784   reboot   reboot
# Line 930  case $1 in Line 906  case $1 in
906   [ -f /etc/alxconfig-ng/state/state ] && rm /etc/alxconfig-ng/state/state   [ -f /etc/alxconfig-ng/state/state ] && rm /etc/alxconfig-ng/state/state
907   sleep 0.1   sleep 0.1
908   ;;   ;;
909    
910   *)   *)
911   echo "Usage: $0 {start|stop} ..."   echo "Usage: $0 {start|stop} ..."
912   ;;   ;;
913  esac  esac
   

Legend:
Removed from v.2010  
changed lines
  Added in v.2156