Magellan Linux

Diff of /alx-src/branches/alxconf-060/init.d/alxsettings

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

revision 227 by niro, Wed Mar 9 00:04:23 2005 UTC revision 295 by niro, Thu Aug 18 07:39:00 2005 UTC
# Line 11  Line 11 
11  #%before:  #%before:
12  #%after:  #%after:
13    
14  # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/init.d/alxsettings,v 1.3 2005-03-09 00:04:23 niro Exp $  # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/init.d/alxsettings,v 1.16 2005-08-18 07:39:00 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 24  Line 24 
24  source /etc/sysconfig/rc  source /etc/sysconfig/rc
25  source $rc_functions  source $rc_functions
26    
27  #mysql settings  # mysql settings
28  source /etc/alxconfig-ng/config.rc  source /etc/alxconfig-ng/config.rc
29    
30    # 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_modules
34  source /usr/lib/alxconfig-ng/functions/config_network  source /usr/lib/alxconfig-ng/functions/config_network
35  source /usr/lib/alxconfig-ng/functions/config_printers  source /usr/lib/alxconfig-ng/functions/config_printers
36    source /usr/lib/alxconfig-ng/functions/config_sessions
37  source /usr/lib/alxconfig-ng/functions/config_x11  source /usr/lib/alxconfig-ng/functions/config_x11
38    source /usr/lib/alxconfig-ng/functions/config_auth
39    source /usr/lib/alxconfig-ng/functions/config_ssh_auth
40    
41  #check if mysql is available  # check if mysql is available
42  [ -x /usr/bin/mysql ] && MYSQL_ALX=true  [ -x /usr/bin/mysql ] && MYSQL_ALX=true
43    
44  #other needed vars  # other needed vars
45  ALX_HW_DETECT=false  ALX_HW_DETECT=false
46    ALX_FORCED_RECHECK=false
47    
48  #unset vars which may kill us  # unset vars which may kill us
49  unset ALX_SERIAL ALX_STATE  unset ALX_SERIAL ALX_STATE
50    
51    
52  #setup needed directories  # setup needed directories
53  [ ! -d /etc/alxconfig-ng/state ] && install -d /etc/alxconfig-ng/state  [ ! -d /etc/alxconfig-ng/state ] && install -d /etc/alxconfig-ng/state
54    
55    
 validate_sessions(){  
   
  local x i all LOCAL_SESSIONS DB_SESSIONS SETTINGSPATH count  
   
  #all arrays:  
  # ->  session1 session2 ... sessionN  
   
   
  #no LOCAL_SESSIONS here, needs bubblesort  
   
  #get settings from database  
  all=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \  
  "select session from cfg_sessions where serial='${ALX_SERIAL}'")  
   
  #split'em up and put in an array (only if $all not zero)  
  declare -i i=0  
  if [ -n "${all}" ]  
  then  
  for x in ${all}  
  do  
  DB_SESSIONS[${i}]=${x}  
  ((i++))  
  done  
  count=${i}  
  else  
  count=0  
  fi  
   
  ## no compare here, can only done with bubblesort or s.th like that  
  # shows only the new sessions  
  declare -i i=0  
  #count=${#DB_SESSIONS[*]} #---> not working gets always 1, why ?  
   
  echo "Number of new sessions: ${count}"  
  for ((i=0; i < count; i++))  
  do  
  echo "${i} - ${DB_SESSIONS[${i}]}"  
  done  
   
  #update local configs  
  SETTINGSPATH=${SETTINGS_TEMPLATE}/menu  
  declare -i i=0  
   
  #count=${#DB_SESSIONS[*]}  
   
  if [ ${count} -gt 0 ]  
  then  
  #create directory if not exist  
  [ ! -d ${SETTINGSPATH}/sessions ] && install -d ${SETTINGSPATH}/sessions  
   
  #delete old sessions  
  echo -n > ${SETTINGSPATH}/sessions/sessions  
   
  for ((i=0; i < count; i++))  
  do  
  echo "${DB_SESSIONS[${i}]}" >> ${SETTINGSPATH}/sessions/sessions  
  done  
   
  #set update flag  
  ALX_SESSION_SETUP=true  
  fi  
 }  
   
   
56  update_system_settings(){  update_system_settings(){
57   echo -e ${COLMAGENTA}"Checking system setup ..."${COLDEFAULT}   echo -e ${COLMAGENTA}"Checking system setup ..."${COLDEFAULT}
58    
59     # get the modules settings
60     # ! is the first thing that must be configured !
61     config_modules
62    
63   # imports network settings from db   # imports network settings from db
64   config_networking   config_networking
65    
66   # imports x11 settings from db   # imports x11 settings from db
67   config_x11   config_x11
68    
69   #echo   # imports session settings from db
70   #echo "sessions"   config_sessions
  #validate_sessions  
  #echo  
71    
72   # imports printer settings from db   # imports printer settings from db
73   config_printing   config_printing
74    
75     # imports auth settings from db
76     config_auth
77    
78     # exchange ssh rsa keys
79     HOME=/root config_ssh_auth
80  }  }
81    
82  get_system_serial(){  get_system_serial(){
83    
84   local CUR_IP CUR_MAC CUR_MTIME   local CUR_IP CUR_MAC CUR_MTIME
85    
86   #check if serial file exists   # check if serial file exists
87   if [ -f /etc/alxconfig-ng/serial ]   if [ -f /etc/alxconfig-ng/serial ] && [ ! -f /hardware-auto-detection ]
88   then   then
89   source /etc/alxconfig-ng/serial   source /etc/alxconfig-ng/serial
90    
91   # if system is already configured, it *has* a hostname.   # start preliminary networking (dhcp)
  # so we take the hostname of this system here  
  source /etc/hostname  
   
  #start preliminary networking (dhcp)  
92   preliminary_network start   preliminary_network start
93    
94     # check if mysql server is reachable
95     # if not abort this script
96     if ! reach_mysql_server
97     then
98     preliminary_network stop
99     exit 1
100     fi
101    
102   CUR_IP=$(/sbin/ifconfig eth0 | sed -n '/addr:/s/ [^r]*..//gp')   CUR_IP=$(/sbin/ifconfig eth0 | sed -n '/addr:/s/ [^r]*..//gp')
103   CUR_MAC=$(/sbin/ifconfig eth0 | grep HWaddr | cut -d ' ' -f11)   CUR_MAC=$(/sbin/ifconfig eth0 | grep HWaddr | cut -d ' ' -f11)
104   CUR_MTIME=$(date +%s)   CUR_MTIME=$(date +%s)
105    
106   echo -e ${COLOREDSTAR} "Trying to validate my serial ..."   echo -e ${COLOREDSTAR} "Trying to validate my serial ..."
107    
108   #nice serial output   # nice serial output
109   $CURS_UP   $CURS_UP
110   $SET_WCOL   $SET_WCOL
111   echo "[ SN: ${ALX_SERIAL} ]"   echo "[ SN: ${ALX_SERIAL} ]"
# Line 163  get_system_serial(){ Line 118  get_system_serial(){
118   fi   fi
119    
120   else   else
121   #run hardware detection   # run hardware detection
122   echo   echo
123   echo -e ${COLMAGENTA}"Preparing system for first boot"${COLDEFAULT}   if [ -f /hardware-auto-detection ]
124     then
125     echo -e ${COLMAGENTA}"Hardware autodetection forced by system-administrator"${COLDEFAULT}
126     else
127     echo -e ${COLMAGENTA}"Preparing system for first boot"${COLDEFAULT}
128     fi
129   ALX_HW_DETECT=true   ALX_HW_DETECT=true
130   /etc/init.d/hwdetect start   /etc/init.d/hwdetect start
131    
132   #set hostname to alx_default_hostname   # set hostname to alx_default_hostname
133     # use old hostname if this is a forced re-check
134     [ -f /hardware-auto-detection ] && ALX_DEFAULT_HOSTNAME="$(< /etc/hostname)"
135   [ -z "${ALX_DEFAULT_HOSTNAME}" ] && ALX_DEFAULT_HOSTNAME=magellan-alx   [ -z "${ALX_DEFAULT_HOSTNAME}" ] && ALX_DEFAULT_HOSTNAME=magellan-alx
136   HOSTNAME="${ALX_DEFAULT_HOSTNAME}"   HOSTNAME="${ALX_DEFAULT_HOSTNAME}"
137    
138   #update the hostname on the system for sure   # update the hostname on the system for sure
139   echo "HOSTNAME=${HOSTNAME}" > /etc/hostname   echo "${HOSTNAME}" > /etc/hostname
140    
141   #start preliminary networking (dhcp)   # start preliminary networking (dhcp)
142   preliminary_network start   preliminary_network start
143    
144     # check if mysql server is reachable
145     # if not abort this script
146     if ! reach_mysql_server
147     then
148     preliminary_network stop
149     exit 1
150     fi
151    
152   CUR_IP=$(/sbin/ifconfig eth0 | sed -n '/addr:/s/ [^r]*..//gp')   CUR_IP=$(/sbin/ifconfig eth0 | sed -n '/addr:/s/ [^r]*..//gp')
153   CUR_MAC=$(/sbin/ifconfig eth0 | grep HWaddr | cut -d ' ' -f11)   CUR_MAC=$(/sbin/ifconfig eth0 | grep HWaddr | cut -d ' ' -f11)
154   CUR_MTIME=$(date +%s)   CUR_MTIME=$(date +%s)
155    
156     # abort now if this is a forced re-check
157     if [ -f /hardware-auto-detection ]
158     then
159     # but first check the serial
160     source /etc/alxconfig-ng/serial
161    
162     echo -e ${COLOREDSTAR} "Trying to validate my serial ..."
163    
164     # nice serial output
165     $CURS_UP
166     $SET_WCOL
167     echo "[ SN: ${ALX_SERIAL} ]"
168    
169     if validate_serial "${ALX_SERIAL}" "${ALX_REG_DATE}" "${CUR_MAC}"
170     then
171     ALX_STATE="ok"
172     else
173     ALX_STATE="invalid serial"
174     fi
175    
176     # write current state to temp file
177     echo "ALX_STATE=${ALX_STATE}" > /etc/alxconfig-ng/state/state
178     rm /hardware-auto-detection
179    
180     # now export ALX_FORCED_RECHECK=true
181     # that the setting will be updated not inserted !
182     export ALX_FORCED_RECHECK=true
183     return 0
184     fi
185    
186   echo -e ${COLOREDSTAR} "Trying to get new serial ..."   echo -e ${COLOREDSTAR} "Trying to get new serial ..."
187    
188   #request new serial   # request new serial
189   #ALX_REG_DATE="$(date +%F)"   # ALX_REG_DATE="$(date +%F)"
190    
191   #we're using the mtime now (better for vaildating the serial)   # we're using the mtime now (better for vaildating the serial)
192   mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
193   "insert into client_serials(   "insert into client_serials(
194   mtime,   mtime,
# Line 199  get_system_serial(){ Line 199  get_system_serial(){
199   '${CUR_MAC}'   '${CUR_MAC}'
200   );"   );"
201    
202   #then validate and retrieve serial   # then validate and retrieve serial
203    
204   ### warning must be changed that only the LAST ID will be fetched,  ###   ### warning must be changed that only the LAST ID will be fetched,  ###
205   ### or you get error if the computer name and date are the same     ###   ### or you get error if the computer name and date are the same     ###
206   ### you have more than one serial number then                       ###   ### you have more than one serial number then                       ###
207    
208   #select highest id only (added max)   # select highest id only (added max)
209   ALX_SERIAL=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   ALX_SERIAL=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
210   "select max(serial) from client_serials where mtime='${CUR_MTIME}' and mac='${CUR_MAC}'")   "select max(serial) from client_serials where mtime='${CUR_MTIME}' and mac='${CUR_MAC}'")
211    
212   if [ "${ALX_SERIAL}" != NULL ]   if [ "${ALX_SERIAL}" != NULL ]
213   then   then
214   #nice serial output   # nice serial output
215   $CURS_UP   $CURS_UP
216   $SET_WCOL   $SET_WCOL
217   echo "[ SN: ${ALX_SERIAL} ]"   echo "[ SN: ${ALX_SERIAL} ]"
218    
219   #set ALX_STATE to ok so everybody that everything was ok   # set ALX_STATE to ok so everybody that everything was ok
220   ALX_STATE=ok   ALX_STATE=ok
221    
222   echo "ALX_SERIAL=${ALX_SERIAL}" > /etc/alxconfig-ng/serial   echo "ALX_SERIAL=${ALX_SERIAL}" > /etc/alxconfig-ng/serial
# Line 224  get_system_serial(){ Line 224  get_system_serial(){
224    
225   evaluate_retval   evaluate_retval
226   else   else
227   #print false (works only if this is the first statement here)   # print false (works only if this is the first statement here)
228   evaluate_retval   evaluate_retval
229    
230   #set ALX_STATE to error so everybody sees there was an error   # set ALX_STATE to error so everybody sees there was an error
231   ALX_STATE=error   ALX_STATE=error
232    
233   #show an error that no new serial was found   # show an error that no new serial was found
234   #nice serial output   # nice serial output
235   $CURS_UP   $CURS_UP
236   $SET_WCOL   $SET_WCOL
237   echo -e "[ SN: ${COLRED}None, 0${COLDEFAULT} ]"   echo -e "[ SN: ${COLRED}None, 0${COLDEFAULT} ]"
238   fi   fi
239   fi   fi
240    
241   #write current state to temp file   # write current state to temp file
242   echo "ALX_STATE=${ALX_STATE}" > /etc/alxconfig-ng/state/state   echo "ALX_STATE=${ALX_STATE}" > /etc/alxconfig-ng/state/state
243  }  }
244    
# Line 255  check_is_configured() { Line 255  check_is_configured() {
255    
256  # imports current settings to the database resolved by the hardware detection  # imports current settings to the database resolved by the hardware detection
257  import_settings_to_db() {  import_settings_to_db() {
258   #note: networking is always 'dhcp' if hw was autodetected   # note: networking is always 'dhcp' if hw was autodetected
259   #note: default_domain/hostname is set in config.rc   # note: default_domain/hostname is set in config.rc
260    
261   #to be safe, we do some sanity checks   # to be safe, we do some sanity checks
262   [ -z "${ALX_DEFAULT_DOMAIN}" ] && ALX_DEFAULT_DOMAIN=localdomain   [ -z "${ALX_DEFAULT_DOMAIN}" ] && ALX_DEFAULT_DOMAIN=localdomain
263   [ -z "${ALX_DEFAULT_HOSTNAME}" ] && ALX_DEFAULT_HOSTNAME=magellan-alx   [ -z "${ALX_DEFAULT_HOSTNAME}" ] && ALX_DEFAULT_HOSTNAME=magellan-alx
264    
265   #vars used by hwdetect   # vars used by hwdetect
266   local NETCARD_FULLNAME NETCARD_DRIVER MOUSE_FULLNAME MOUSE_DEVICE SOUND_FULLNAME   local NETCARD_FULLNAME NETCARD_DRIVER MOUSE_FULLNAME MOUSE_DEVICE SOUND_FULLNAME
267   local SOUND_DRIVER XSERVER XMODULE XDESC FLOPPY_FULLNAME FLOPPY_DEVICE FLOPPY_DRIVER   local SOUND_DRIVER XSERVER XMODULE XDESC FLOPPY_FULLNAME FLOPPY_DEVICE FLOPPY_DRIVER
268   local MOUSETYPE XMOUSETYPE FULLNAME DEVICE   local MOUSETYPE XMOUSETYPE FULLNAME DEVICE
269    
270   #get setting from hwdetect   # get setting from hwdetect
271   source /etc/sysconfig/hwsetup/knoppix   source /etc/sysconfig/hwsetup/knoppix
272   source /etc/sysconfig/hwsetup/mouse   source /etc/sysconfig/hwsetup/mouse
273    
274   echo   echo
275   echo -e ${COLMAGENTA}"Importing detected settings to database"${COLDEFAULT}   echo -e ${COLMAGENTA}"Importing detected settings to database"${COLDEFAULT}
276    
277   #network   # network
278   echo -e "      Network settings ..."   echo -e "      Network settings ..."
279   mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
280   "insert into cfg_network(   "insert into cfg_network(
# Line 292  import_settings_to_db() { Line 292  import_settings_to_db() {
292   'dhcp'   'dhcp'
293   );"   );"
294   evaluate_retval   evaluate_retval
295    
296   #xserver   # xserver
297   echo -e "      Graphic settings ..."   echo -e "      Graphic settings ..."
298   #xserver general   # xserver general
299   ( mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   ( mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
300   "insert into cfg_graphic(   "insert into cfg_graphic(
301   serial,   serial,
302   module,   module,
303   resolution,   resolution,
304   depth   depth,
305     monitorid
306   )   )
307   values(   values(
308   '${ALX_SERIAL}',   '${ALX_SERIAL}',
309   '${XMODULE}',   '${XMODULE}',
310   '1024x768',   '1024x768',
311   '16'   '16',
312   );";   '0'
313   #xserver monitor   );"; )
314    mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   evaluate_retval
315   "insert into cfg_monitor(  
316     # input
317     echo -e "      Input settings ..."
318     mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
319     "insert into cfg_input(serial,mouse) values('${ALX_SERIAL}','${XMOUSETYPE}');"
320     evaluate_retval
321    
322     # auth
323     echo -e "      Authentifcation settings ..."
324     mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
325     "insert into client_auth(
326   serial,   serial,
327   vendor,   username,
328   model,   shell,
329   hsync,   vnc,
330   vrefresh   samba,
331     station
332   )   )
333   values(   values(
334   '${ALX_SERIAL}',   '${ALX_SERIAL}',
335   'Aamazing',   '${ALX_UNPRIV_USER}',
336   'CM-1528-FS',   '',
337   '28-64',   '',
338   '47-104'   '',
339   );";   ''
340     );"
341     evaluate_retval
342    
343     # exchange ssh rsa keys - the first boot needs this !
344     # or no reboot will work via the webadmin
345     echo -e "      SSH authentifcation settings ..."
346     HOME=/root config_ssh_auth
347     evaluate_retval
348    
349   # input   # input
350    mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   echo -e "      Autostart settings ..."
351   "insert into cfg_input(serial,mouse) values('${ALX_SERIAL}','${XMOUSETYPE}');";)   mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
352     "insert into cfg_autostart(serial,session) values('${ALX_SERIAL}','');"
353     evaluate_retval
354    }
355    
356    # imports current settings to the database resolved by the hardware detection
357    update_settings_in_db() {
358     # note: networking is always 'dhcp' if hw was autodetected
359     # note: default_domain/hostname is set in config.rc or exported
360     # note: we updating only hardware settings here !
361    
362     # to be safe, we do some sanity checks
363     [ -z "${ALX_DEFAULT_DOMAIN}" ] && ALX_DEFAULT_DOMAIN=localdomain
364     [ -z "${ALX_DEFAULT_HOSTNAME}" ] && ALX_DEFAULT_HOSTNAME=magellan-alx
365    
366     # vars used by hwdetect
367     local NETCARD_FULLNAME NETCARD_DRIVER MOUSE_FULLNAME MOUSE_DEVICE SOUND_FULLNAME
368     local SOUND_DRIVER XSERVER XMODULE XDESC FLOPPY_FULLNAME FLOPPY_DEVICE FLOPPY_DRIVER
369     local MOUSETYPE XMOUSETYPE FULLNAME DEVICE
370    
371     # get setting from hwdetect
372     source /etc/sysconfig/hwsetup/knoppix
373     source /etc/sysconfig/hwsetup/mouse
374    
375     echo
376     echo -e ${COLMAGENTA}"Updating detected settings in database"${COLDEFAULT}
377    
378     # network
379     echo -e "      Network settings ..."
380    
381     mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
382     "update cfg_network set
383     hostname='${ALX_DEFAULT_HOSTNAME}',
384     module='${NETCARD_DRIVER}',
385     domain='${ALX_DEFAULT_DOMAIN}',
386     networking='dhcp'
387     where serial=${ALX_SERIAL};"
388     evaluate_retval
389    
390     # xserver
391     echo -e "      Graphic settings ..."
392     # xserver general
393     mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
394     "update cfg_graphic set
395     module='${XMODULE}',
396     resolution='1024x768',
397     depth='16',
398     monitorid='0'
399     where serial=${ALX_SERIAL};"
400     evaluate_retval
401    
402     # input
403     echo -e "      Input settings ..."
404     mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
405     "update cfg_input set
406     mouse='${XMOUSETYPE}'
407     where serial=${ALX_SERIAL};"
408   evaluate_retval   evaluate_retval
409  }  }
410    
411  # imports current settings to the local system resolved by the hardware detection  # imports current settings to the local system resolved by the hardware detection
412  # we only need the network settings  # we only need the network settings
413  import_settings_local(){  import_settings_local(){
414   #note: networking is always 'dhcp' if hw was autodetected   # note: networking is always 'dhcp' if hw was autodetected
415   #note: default_domain/hostname is set in config.rc   # note: default_domain/hostname is set in config.rc
416    
417   #to be safe, we do some sanity checks   # to be safe, we do some sanity checks
418   [ -z "${ALX_DEFAULT_DOMAIN}" ] && ALX_DEFAULT_DOMAIN=localdomain   [ -z "${ALX_DEFAULT_DOMAIN}" ] && ALX_DEFAULT_DOMAIN=localdomain
419   [ -z "${ALX_DEFAULT_HOSTNAME}" ] && ALX_DEFAULT_HOSTNAME=magellan-alx   [ -z "${ALX_DEFAULT_HOSTNAME}" ] && ALX_DEFAULT_HOSTNAME=magellan-alx
420    
421   #vars used by hwdetect   # vars used by hwdetect
422   local NETCARD_FULLNAME NETCARD_DRIVER MOUSE_FULLNAME MOUSE_DEVICE SOUND_FULLNAME   local NETCARD_FULLNAME NETCARD_DRIVER MOUSE_FULLNAME MOUSE_DEVICE SOUND_FULLNAME
423   local SOUND_DRIVER XSERVER XMODULE XDESC FLOPPY_FULLNAME FLOPPY_DEVICE FLOPPY_DRIVER   local SOUND_DRIVER XSERVER XMODULE XDESC FLOPPY_FULLNAME FLOPPY_DEVICE FLOPPY_DRIVER
424   local MOUSETYPE XMOUSETYPE FULLNAME DEVICE   local MOUSETYPE XMOUSETYPE FULLNAME DEVICE
425    
426   #get setting from hwdetect   # get setting from hwdetect
427   source /etc/sysconfig/hwsetup/knoppix   source /etc/sysconfig/hwsetup/knoppix
428    
429   echo   echo
# Line 357  import_settings_local(){ Line 433  import_settings_local(){
433   echo "${NETCARD_DRIVER}" > ${SETTINGSPATH}/modules   echo "${NETCARD_DRIVER}" > ${SETTINGSPATH}/modules
434   evaluate_retval   evaluate_retval
435    
436   #set system state to 'already configured'   # set system state to 'already configured'
437   touch /etc/alxconfig-ng/state/configured   touch /etc/alxconfig-ng/state/configured
438    
439     # create a fresh fluxbox directory
440     [ -d ${ALX_UNPRIV_HOME}/.fluxbox ] && rm -rf ${ALX_UNPRIV_HOME}/.fluxbox
441     install -d ${ALX_UNPRIV_HOME}/.fluxbox
442    
443     # now generate fluxbox config files
444    
445     # fluxbox main config
446     cat ${ALX_SKELETONS}/fluxbox/init \
447     > ${ALX_UNPRIV_HOME}/.fluxbox/init
448    
449     # fluxbox menu header
450     cat ${ALX_SKELETONS}/fluxbox/menu.header \
451     > ${ALX_UNPRIV_HOME}/.fluxbox/menu
452    
453     # add a newline (maybe there is no crlf in the header)
454     echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
455    
456     # fluxbox menu footer
457     cat ${ALX_SKELETONS}/fluxbox/menu.footer \
458     >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
459    
460     # add a newline (maybe there is no crlf in the footer)
461     echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
462    
463     # set correct permissions
464     chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}
465     chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}/.fluxbox
466     chmod 0755 ${ALX_UNPRIV_HOME}/.fluxbox
467    
468     # default passwords are bad
469     #usermod -p $(perl -e "printf(crypt('foobar','AD'))") root
470     #usermod -p $(perl -e "printf(crypt('foobar','AD'))") ${ALX_UNPRIV_USER}
471     #smbpasswd -a root foobar
472  }  }
473    
474  #start|stop  # start|stop
475  preliminary_network(){  preliminary_network(){
476   local module   local module
477    
478   if [ -f /etc/alxconfig-ng/state/configured ]   if [ -f /etc/alxconfig-ng/state/configured ]
479   then   then
480   #get module name   # get module name
481   module=$(cat ${SETTINGSPATH}/modules)   module=$(cat ${SETTINGSPATH}/modules)
482   modprobe ${module}   modprobe ${module}
483   else   else
484   #vars used by hwdetect   # vars used by hwdetect
485   local NETCARD_FULLNAME NETCARD_DRIVER MOUSE_FULLNAME MOUSE_DEVICE SOUND_FULLNAME   local NETCARD_FULLNAME NETCARD_DRIVER MOUSE_FULLNAME MOUSE_DEVICE SOUND_FULLNAME
486   local SOUND_DRIVER XSERVER XMODULE XDESC FLOPPY_FULLNAME FLOPPY_DEVICE FLOPPY_DRIVER   local SOUND_DRIVER XSERVER XMODULE XDESC FLOPPY_FULLNAME FLOPPY_DEVICE FLOPPY_DRIVER
487    
488   #get setting from hwdetect   # get setting from hwdetect
489   source /etc/sysconfig/hwsetup/knoppix   source /etc/sysconfig/hwsetup/knoppix
490   modprobe ${NETCARD_DRIVER}   modprobe ${NETCARD_DRIVER}
491   fi   fi
# Line 395  preliminary_network(){ Line 505  preliminary_network(){
505   fi   fi
506    
507   echo -e ${COLMAGENTA}"Starting preliminary network ... "${COLDEFAULT}   echo -e ${COLMAGENTA}"Starting preliminary network ... "${COLDEFAULT}
508   dhcpcd &> /dev/null   # -t 10 timeout of 10 secs
509     dhcpcd -t 10 &> /dev/null
510    
511   # aka_fix ########################################   # aka_fix ########################################
512   #ifconfig eth0 128.20.222.222 netmask 255.255.0.0 up   #ifconfig eth0 128.20.222.222 netmask 255.255.0.0 up
# Line 425  preliminary_network(){ Line 536  preliminary_network(){
536    
537  case $1 in  case $1 in
538   start)   start)
539   #retrieve or validate current serial   # retrieve or validate current serial
540   get_system_serial   get_system_serial
541   if [ "${ALX_HW_DETECT}" == "true" ]   if [[ ${ALX_HW_DETECT} = true ]]
542   then   then
543   import_settings_to_db   if [[ ${ALX_FORCED_RECHECK} = true ]]
544     then
545     update_settings_in_db
546     else
547     import_settings_to_db
548     fi
549   import_settings_local   import_settings_local
550    
551     # here we should also exchange the ssh keys
552     # or the system cannot be rebooted after
553     # the first start via the alx-webadmin
554     config_ssh_auth
555   fi   fi
556    
557   #now setup system configuration   # now setup system configuration
558   #alx_setup_or_whatever_it_will_be_called()   # alx_setup_or_whatever_it_will_be_called()
559   [ "${ALX_HW_DETECT}" == "false" ] && update_system_settings   [ "${ALX_HW_DETECT}" == "false" ] && update_system_settings
560    
561   #stop at last the preliminary networking (dhcp)   # stop at last the preliminary networking (dhcp)
562   preliminary_network stop   preliminary_network stop
563   ;;   ;;
564    
565   stop)   stop)
566   #unset_alx_connected #--> now in alxsetstate-rc6   # unset_alx_connected #--> now in alxsetstate-rc6
567   # ! important !: del systemstate   # ! important !: del systemstate
568   [ -f /etc/alxconfig-ng/state/state ] && rm /etc/alxconfig-ng/state/state   [ -f /etc/alxconfig-ng/state/state ] && rm /etc/alxconfig-ng/state/state
569   sleep 0.1   sleep 0.1
# Line 451  case $1 in Line 572  case $1 in
572   echo "Usage: $0 {start|stop} ..."   echo "Usage: $0 {start|stop} ..."
573   ;;   ;;
574  esac  esac
575    

Legend:
Removed from v.227  
changed lines
  Added in v.295