Magellan Linux

Diff of /alx-src/trunk/alxinstall-ng/bin/alxinstall-ng.sh.in

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

alx-src/trunk/alxinstall-ng/bin/alxinstall-ng.sh revision 261 by niro, Mon Apr 18 21:28:22 2005 UTC alx-src/trunk/alxinstall-ng/bin/alxinstall-ng.sh.in revision 6825 by niro, Thu Jul 23 10:50:11 2015 UTC
# Line 1  Line 1 
1  #!/bin/sh  #!/bin/sh
2  #  # $Id$
 # $Header: /home/cvsd/alx-cvs/alx-src/alxinstall-ng/bin/alxinstall-ng.sh,v 1.3 2005-04-18 21:28:22 niro Exp $  
 #  
 # AutoSta_LX Installation Script  
 # version: 0.8b  
 #  
 # Niels Rogalla <niro@magellan-linux.de>  
 # <rogalla@augusta-bochum.de>  
 #  
 #  
 # Install Navigation Gui  
 #  
3    
4  #source /etc/alx_version  # ignore environment!
5  #source /opt/alx-config/version  LC_ALL=C
6    
7  #source /etc/alx-config/config.rc  MLIBDIR="/usr/lib/alxinstall-ng"
8    
9  #images: (get ${CDIMAGENAME})  # images: (get ${CDIMAGENAME})
10  source /mnt/cdrom/system/images.conf  source /mnt/cdrom/system/images.conf
11    
12  #Includes  # includes
13  source /usr/lib/alxinstall-ng/functions/findhdd.sh > /dev/null  source ${MLIBDIR}/functions/hwdetection.sh
 ### bugfix ###############################  
 cdromdev="`echo $cdromdev|sed -e 's/ //'`"  
 ########################################  
14    
15  ### System/Config Version  ### System/Config Version
16  VERSION="0.1"  VERSION="@@VERSION@@"
17  TITLE="alxinstall-ng - ${VERSION}"  TITLE="alxinstall-ng - ${VERSION}"
18    
19  #CONFIGS_TEMPLATE="/opt/alx-config/configs"  # locations
   
20  CDPATH="/mnt/cdrom"  CDPATH="/mnt/cdrom"
21  INSTALLPATH="/mnt/magellan"  INSTALLPATH="/mnt/magellan"
22    
23  ### WICHTIG: anzahl lines in der autosta_lx.tar.gz -1  # default system settings
24    # standard kernel opts
25    DEFAULT_KERNELOPTS="quiet video=1024x768"
26    
27    # grub options
28    DEFAULT_GRUBLEGACYOPTS=""
29    DEFAULT_GRUB2OPTS=""
30    DEFAULT_GRUB2GFXPAYLOAD="1024x768x16,1024x768"
31    
32    # default specialdevices
33    DEFAULT_FORMFACTOR="desktop"
34    
35    # target filesystem
36    DEFAULT_FORMAT_FILESYSTEM="ext4"
37    
38    # initialize global variables so they are exportable
39    INSTALL_METHOD=""
40    KERNELOPTS=""
41    GRUBLEGACYOPTS=""
42    GRUB2OPTS=""
43    GRUB2GFXPAYLOAD=""
44    FORMFACTOR=""
45    FORMAT_FILESYSTEM=""
46    FDISKPARTIONBELOW256MB=0
47    SPECIALDEVICE=""
48    ### linecount of system.tar.gz -1 !
49  CURRENTLINE=0  CURRENTLINE=0
50  #TOTALLINES=11072 # -> now in images.conf  #TOTALLINES=11072 # -> now in images.conf
51    
   
52  #################################################  #################################################
53  #  DIALOG BOXEN #  #  DIALOG BOXES #
54  #################################################  #################################################
55    
56  die() {  die()
57   #clear  {
  #echo -e "\nhuch, da ist ein script gestorben -> $?\n"  
  #read  
  #exit 0  
58   ERROR=$1   ERROR=$1
59   RETVAL=$?   RETVAL=$?
60   dialog_install_failure   dialog_install_failure
61   exit 1   exit 1
62  }  }
63    
64  dialog_warning() {  dialog_warning()
65    {
66   dialog \   dialog \
67   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
68   --colors \   --colors \
69   --defaultno \   --defaultno \
70   --yesno "\Z1 !!! Achtung !!! \Zn\n\n\   --yesno "\Z1 !!! Achtung !!! \Zn\n\n\
71   Diese Festplatte wird unwiederruflich geloescht werden.\n\n\   Diese Festplatte wird unwiederruflich geloescht werden.\n\n\
72   Soll ich wirklich fortfahren ?" 10 70   Soll ich wirklich fortfahren ?" 10 70
73   RES=$?   RES=$?
74   if [ "$RES" == "1" ]   if [[ ${RES} -eq 1 ]]
75   then   then
76   clear   clear
77   echo "Der Vorgang wurde abgebrochen."   echo "Der Vorgang wurde abgebrochen."
# Line 72  dialog_warning() { Line 79  dialog_warning() {
79   fi   fi
80  }  }
81    
82  dialog_setup_hdd_info(){  dialog_setup_hdd_info()
83   local SHDD="`echo $HDD|sed -e 's/\/dev\///'`"  {
84     local SHDD="$(echo ${HDD} | sed 's/\/dev\///')"
85    
86   dialog \   dialog \
87   --colors \   --colors \
88   --title "[ Festplatten Partitionierung ]" \   --title "[ Festplatten Partitionierung ]" \
89   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
90   --ok-label "Weiter" \   --ok-label "Weiter" \
91   --msgbox "\nBitte legen Sie 3 Partitionen an.\n\n\   --msgbox "\nBitte legen Sie 3 Partitionen an.\n\n\
92   [ \Z3${SHDD}1\Zn ] Typ: \Z3Linux\Zn mit ca. 50MB\n\   [ \Z3${SHDD}1\Zn ] Typ: \Z3Linux\Zn mit ca. 50MB\n\
# Line 87  dialog_setup_hdd_info(){ Line 95  dialog_setup_hdd_info(){
95   Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81   Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81
96  }  }
97    
98  dialog_setup_hdd_menu() {  dialog_setup_hdd_info_single()
99    {
100     local SHDD="$(echo $HDD | sed 's/\/dev\///')"
101    
102     dialog \
103     --colors \
104     --title "[ Festplatten Partitionierung ]" \
105     --backtitle "${TITLE}" \
106     --ok-label "Weiter" \
107     --msgbox "\nBitte legen Sie 1 Partition an.\n\n\
108     [ \Z3${SHDD}1\Zn ] Typ: \Z3Linux\Zn mit dem gesamten Speicher\n\
109     Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81
110    }
111    
112    dialog_setup_hdd_info_auto()
113    {
114     local SHDD="$(echo $HDD | sed 's/\/dev\///')"
115    
116   I=`dialog \   dialog \
117   --backtitle "$TITLE" \   --colors \
118     --title "[ Festplatten Partitionierung ]" \
119     --backtitle "${TITLE}" \
120     --ok-label "Weiter" \
121     --msgbox "\nAchtung!\n\
122     Alle Daten werden von der Disk [ \Z3${HDD}\Zn ] gelöscht!" 12 81
123    }
124    
125    dialog_setup_system_menu()
126    {
127     local i
128    
129     i=$(dialog \
130     --backtitle "${TITLE}" \
131   --title "[ Festplatten Partitionierung ]" \   --title "[ Festplatten Partitionierung ]" \
132   --cancel-label "Abbrechen" \   --cancel-label "Abbrechen" \
133   --ok-label "Weiter" \   --ok-label "Weiter" \
134   --stdout \   --stdout \
135   --menu "\nWaehlen Sie zwischen Manuell und Automatisch" 14 70 5 \   --colors \
136   "1" "Manuell" \   --menu "\nWaehlen Sie die Installations-Methode" 14 70 5 \
137   "2" "Automatisch"`   "1" "Automatisches Setup (Empfohlen)" \
138     "" "" \
139     "" "\Z1Experten Modi:\Zn" \
140     "2" "Normale IDE-Disk (Manuell)" \
141     "3" "Normale IDE Disk (Single)")
142   RES=$?   RES=$?
143   if [ "$RES" == "1" ];then   [[ ${RES} -eq 1 ]] && return 1
144   return 1   if [[ ${RES} -eq 0 ]]
145   fi   then
146   if [ "$RES" == "0" ];then   case "${i}" in
147   case "$I" in   "1") run_install auto ;;
148           "1")   "2") run_install normal ;;
149   dialog_setup_hdd_found_manuell   "3") run_install single ;;
150   ;;   "") dialog_setup_system_menu;;
  "2")  
  dialog_warning  
  setup_hdd_partitions_silent  
      ;;  
151   esac   esac
152   fi   fi
153  }  }
154    
155  dialog_setup_hdd_found_manuell() {  dialog_hardware_detection()
156   if [ ! -z "$installdevs" ]  {
157     local i
158     local hwtmp
159    
160     if [ -x $(which mktemp &> /dev/null) ]
161   then   then
162   installdevs=""   hwtmp="$(mktemp)"
163     else
164     hwtmp="/tmp/hwtmp.sh"
165   fi   fi
166    
167   echo "dialog \\"  > /tmp/hddtmp.sh   run_hardware_detection_disks
  echo "--backtitle \"$TITLE\" \\" >> /tmp/hddtmp.sh  
  echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh  
  echo "--stdout \\" >> /tmp/hddtmp.sh  
  echo "--colors \\" >> /tmp/hddtmp.sh  
  echo "--msgbox \"Gefundene Hardware:\n\n \\" >> /tmp/hddtmp.sh  
  echo " Festplatten:\n \\" >> /tmp/hddtmp.sh  
168    
169   if [ ! -z "$scsidisks" ]   echo "dialog \\"  > ${hwtmp}
170     echo "--backtitle \"${TITLE}\" \\" >> ${hwtmp}
171     echo "--ok-label \"Weiter\" \\" >> ${hwtmp}
172     echo "--stdout \\" >> ${hwtmp}
173     echo "--colors \\" >> ${hwtmp}
174     echo "--msgbox \"Gefundene Hardware:\n\n \\" >> ${hwtmp}
175     echo " Festplatten:\n \\" >> ${hwtmp}
176    
177     if [[ ! -z ${ALL_DISKS} ]]
178   then   then
179   for I in $scsidisks   for i in ${ALL_DISKS}
180   do   do
181   if [ "$I" != "$cdromdev" ]   echo " \\Z3${i}\\Zn\n \\" >> ${hwtmp}
  then  
  echo " \\Z7SCSI: \\Z3$I\\Zn\n \\" >> /tmp/hddtmp.sh  
  installdevs="$installdevs $I"  
  fi  
182   done   done
183   fi   fi
184    
185   if [ ! -z "$idedisks" ]   if [[ ! -z ${ALL_CDROMS} ]]
186   then   then
187   for I in $idedisks   echo " \n \\" >> ${hwtmp}
188     echo " CDROM Laufwerke:\n \\" >> ${hwtmp}
189     for i in ${ALL_CDROMS}
190   do   do
191   if [ "$I" != "$cdromdev" ]   echo " \\Z3${i}\\Zn\n \\" >> ${hwtmp}
  then  
  echo " \\Z7IDE:  \\Z3$I\\Zn\n \\" >> /tmp/hddtmp.sh  
  installdevs="$installdevs $I"  
  fi  
192   done   done
193   fi   fi
194    
195   if [ ! -z "$cdromdev" ]   # other devices
196     run_hardware_detection
197     case "${SPECIALDEVICE}" in
198     zotac*) echo " \n \\Z2Zotac Device erkannt.\\Zn \\" >> ${hwtmp} ;;
199     rangee) echo " \n \\Z2Rangee Device erkannt.\\Zn \\" >> ${hwtmp} ;;
200     maxdata) echo " \n \\Z2Maxdata Device erkannt.\\Zn \\" >> ${hwtmp} ;;
201     i845) echo " \n \\Z2Intel i845 Device erkannt.\\Zn \\" >> ${hwtmp} ;;
202     *) echo " \n \\ZnStandard Device erkannt.\\Zn \\" >> ${hwtmp} ;;
203     esac
204     if [[ ${FORMFACTOR} = laptop ]]
205     then
206     echo " \n \\ZnFormfactor Laptop, Powersave Modus 'ondemand' wird aktiviert.\\Zn \\" >> ${hwtmp}
207     fi
208    
209     echo " \" 14 70" >> ${hwtmp}
210     chmod a+x ${hwtmp}
211     ${hwtmp}
212    
213     # remove tmp file
214     if [[ -f ${hwtmp} ]]
215   then   then
216   echo " \n \\" >> /tmp/hddtmp.sh   rm ${hwtmp}
  echo " \\Z7andere Laufwerke:\n \\" >> /tmp/hddtmp.sh  
  echo " CDROM: \\Z3$cdromdev\\Zn\n \\" >> /tmp/hddtmp.sh  
217   fi   fi
  echo " \" 13 70" >> /tmp/hddtmp.sh  
  chmod a+x /tmp/hddtmp.sh  
  /tmp/hddtmp.sh  
218  }  }
219    
220  dialog_setup_hdd_partitions_manuell() {  dialog_setup_hdd_partitions_manuell()
221   if [ -z "$installdevs" ]  {
222     local i
223    
224     if [[ -z ${ALL_DISKS} ]]
225   then   then
226   dialog \   dialog \
227   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
228   --ok-label "Beenden" \   --ok-label "Beenden" \
229   --msgbox "Kein geeignetes Laufwerk gefunden.\nDie Installation ist fehlgeschlagen." 6 70   --msgbox "Kein geeignetes Laufwerk gefunden.\nDie Installation ist fehlgeschlagen." 6 70
230   exit 1   exit 1
231   else   else
232    
233   echo "dialog \\" > /tmp/hddtmp.sh   echo "dialog \\" > /tmp/hddtmp.sh
234   echo "--backtitle \"$TITLE\" \\" >> /tmp/hddtmp.sh   echo "--backtitle \"${TITLE}\" \\" >> /tmp/hddtmp.sh
235   echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh   echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh
236   echo "--cancel-label \"Beenden\" \\" >> /tmp/hddtmp.sh   echo "--cancel-label \"Beenden\" \\" >> /tmp/hddtmp.sh
237   echo "--stdout \\" >> /tmp/hddtmp.sh   echo "--stdout \\" >> /tmp/hddtmp.sh
238   echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh   echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh
239    
240   for I in $installdevs   for i in ${ALL_DISKS}
241   do   do
242   echo "\"$I\" \"\" \\" >> /tmp/hddtmp.sh   echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh
243   done   done
244   echo -e "\n" >> /tmp/hddtmp.sh   echo -e "\n" >> /tmp/hddtmp.sh
245    
246   chmod a+x /tmp/hddtmp.sh   chmod a+x /tmp/hddtmp.sh
247   HDD="`/tmp/hddtmp.sh`"   HDD="$(/tmp/hddtmp.sh)"
248   RES=$?   RES=$?
249   if [ "$RES" == "1" ]   [[ ${RES} -eq 1 ]] && return 1
250   then   if [[ ${RES} -eq 0 ]]
  return 1  
  fi  
  if [ "$RES" == "0" ]  
251   then   then
252   dialog_setup_hdd_info   dialog_setup_hdd_info
253   setup_hdd_partitions_manuell   setup_hdd_partitions_manuell
# Line 202  dialog_setup_hdd_partitions_manuell() { Line 255  dialog_setup_hdd_partitions_manuell() {
255   fi   fi
256  }  }
257    
258  dialog_setup_hdd_partitions_silent() {  dialog_setup_hdd_partitions_manuell_single()
259    {
260     local i
261    
262     if [[ -z ${ALL_DISKS} ]]
263     then
264     dialog \
265     --backtitle "${TITLE}" \
266     --ok-label "Beenden" \
267     --msgbox "Kein geeignetes Laufwerk gefunden.\nDie Installation ist fehlgeschlagen." 6 70
268     exit 1
269     else
270    
271     echo "dialog \\" > /tmp/hddtmp.sh
272     echo "--backtitle \"${TITLE}\" \\" >> /tmp/hddtmp.sh
273     echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh
274     echo "--cancel-label \"Beenden\" \\" >> /tmp/hddtmp.sh
275     echo "--stdout \\" >> /tmp/hddtmp.sh
276     echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh
277    
278     for i in ${ALL_DISKS}
279     do
280     echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh
281     done
282     echo -e "\n" >> /tmp/hddtmp.sh
283    
284     chmod a+x /tmp/hddtmp.sh
285     HDD="$(/tmp/hddtmp.sh)"
286     RES=$?
287     [[ ${RES} -eq 1 ]] && return 1
288     if [[ ${RES} -eq 0 ]]
289     then
290     dialog_setup_hdd_info_single
291     setup_hdd_partitions_manuell_single
292     fi
293     fi
294    }
295    
296    dialog_setup_hdd_partitions_auto()
297    {
298     local i
299    
300     if [[ -z ${ALL_DISKS} ]]
301     then
302     dialog \
303     --backtitle "${TITLE}" \
304     --ok-label "Beenden" \
305     --msgbox "Kein geeignetes Laufwerk gefunden.\nDie Installation ist fehlgeschlagen." 6 70
306     exit 1
307     else
308    
309     echo "dialog \\" > /tmp/hddtmp.sh
310     echo "--backtitle \"${TITLE}\" \\" >> /tmp/hddtmp.sh
311     echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh
312     echo "--cancel-label \"Beenden\" \\" >> /tmp/hddtmp.sh
313     echo "--stdout \\" >> /tmp/hddtmp.sh
314     echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh
315    
316     for i in ${ALL_DISKS}
317     do
318     echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh
319     done
320     echo -e "\n" >> /tmp/hddtmp.sh
321    
322     chmod a+x /tmp/hddtmp.sh
323     HDD="$(/tmp/hddtmp.sh)"
324     RES=$?
325     [[ ${RES} -eq 1 ]] && return 1
326     if [[ ${RES} -eq 0 ]]
327     then
328     dialog_setup_hdd_info_auto
329     dialog_setup_hdd_create_partitions
330     setup_hdd_partitions_auto
331     fi
332     fi
333    }
334    
335    dialog_setup_hdd_create_partitions()
336    {
337   dialog \   dialog \
338   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
339   --infobox "Erstelle Partitionen ..." 3 70   --infobox "Erstelle Disk Partitionen ..." 3 70
340  }  }
341    
342  dialog_setup_hdd_format() {  dialog_setup_hdd_format()
343    {
344   dialog \   dialog \
345   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
346   --infobox "Erstelle Datei-Systeme ..." 3 70   --infobox "Erstelle Datei-Systeme ..." 3 70
347  }  }
348    
349  dialog_install_settings() {  dialog_install_settings()
350    {
351   dialog \   dialog \
352   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
353   --infobox "Speichere System-Einstellungen ..." 3 70   --infobox "Speichere System-Einstellungen ..." 3 70
354  }  }
355    
356  dialog_install_system_image() {  dialog_install_system_image()
357    {
358   dialog \   dialog \
359   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
360   --gauge "Kopiere System-Image ..." 6 80   --gauge "Kopiere System-Image ..." 6 80
361  }  }
362    
363  dialog_install_meter() {  dialog_install_meter()
364   while [ "${CURRENTLINE}" != "${TOTALLINES}" ] ; do  {
365   CURRENTLINE=`grep --count . /tmp/install.log`   while [[ ${CURRENTLINE} != ${TOTALLINES} ]]
366   PERCENT=`expr ${CURRENTLINE} \* 100 / ${TOTALLINES}`   do
367     CURRENTLINE=$(grep -c . /tmp/install.log)
368     PERCENT=$(( ${CURRENTLINE} * 100 / ${TOTALLINES}))
369   echo ${PERCENT}   echo ${PERCENT}
370   sleep 1   sleep 1
371   done   done
# Line 237  dialog_install_meter() { Line 373  dialog_install_meter() {
373   return 0   return 0
374  }  }
375    
376    dialog_install_bootsector()
377  dialog_install_bootsector() {  {
378   dialog \   dialog \
379   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
380   --infobox "Schreibe den Bootsektor ..." 3 70   --infobox "Schreibe den Bootsektor ..." 3 70
381  }  }
382    
383  dialog_install_alxconfig() {  dialog_install_successful()
384   dialog \  {
  --backtitle "$TITLE" \  
  --infobox "Installiere die ALX Setup-Tools ..." 3 70  
 }  
   
 dialog_install_kernel_image() {  
  dialog \  
  --backtitle "$TITLE" \  
  --infobox "Installiere den System-Kernel ..." 3 70  
   
 }  
   
 dialog_install_hotfixes() {  
385   dialog \   dialog \
386   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
  --infobox "Installiere Hotfixes ..." 3 70  
   
 }  
   
 dialog_install_successful() {  
  dialog \  
  --backtitle "$TITLE" \  
387   --colors \   --colors \
388   --msgbox "Die Installation war \Z2erfolgreich\Zn." 5 81   --msgbox "Die Installation war \Z2erfolgreich\Zn." 5 81
389  }  }
390    
391  dialog_install_failure() {  dialog_install_failure()
392    {
393   dialog \   dialog \
394   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
395   --colors \   --colors \
396   --msgbox "Die Installation ist \Z1Fehlgeschlagen\Zn.\n\n\   --msgbox "Die Installation ist \Z1Fehlgeschlagen\Zn.\n\n\
397   Fehler bei $ERROR, RetVal: $RETVAL \   Fehler bei ${ERROR}, RetVal: ${RETVAL} \
398   " 10 81   " 10 81
399  }  }
400    
401  dialog_install_method() {  dialog_main()
402    {
  METHOD=`dialog \  
  --backtitle "$TITLE" \  
  --cancel-label "Abbrechen" \  
  --ok-label "Weiter" \  
  --stdout \  
  --menu "Konfiguration" 14 70 5 \  
  "1" "Normale Installation" \  
  "2" "Silent Installation"`  
  RES=$?  
  if [ "$RES" == "1" ];then  
  return 1  
  fi  
  if [ "$RES" == "0" ];then  
  case "$METHOD" in  
          "1")  
  run_install_normal  
  ;;  
  "2")  
  dialog_warning  
  run_install_silent  
      ;;  
  esac  
  fi  
 }  
   
 dialog_main() {  
403   METHOD=0   METHOD=0
404    
405   while [ $METHOD -le 2 ]   while [[ ${METHOD} -le 2 ]]
406   do   do
407   METHOD=`dialog \   METHOD=$(dialog \
408   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
409   --no-cancel \   --no-cancel \
410   --ok-label "Weiter" \   --ok-label "Weiter" \
411   --stdout \   --stdout \
# Line 321  dialog_main() { Line 413  dialog_main() {
413   "1" "AutoSta_LX installieren" \   "1" "AutoSta_LX installieren" \
414   "2" "Uebersicht gefundener Laufwerke" \   "2" "Uebersicht gefundener Laufwerke" \
415   "3" "Beenden und neustarten" \   "3" "Beenden und neustarten" \
416   "4" "Beenden und eine Shell starten" `   "4" "Beenden und eine Shell starten")
417   RES=$?   RES=$?
418   if [ "$RES" == "1" ];then   [[ ${RES} -eq 1 ]] && exit 1
419   exit 1   if [[ ${RES} -eq 0 ]]
420   fi   then
421   if [ "$RES" == "0" ];then   case ${METHOD} in
422   case "$METHOD" in   "1") dialog_setup_system_menu ;;
423           "1")   "2") dialog_hardware_detection ;;
424   #only for now later it will be used again   "3") install_do_reboot ;;
425   #with 6.1-r2 only one install method available   "4") /bin/bash --login -i ;;
  #dialog_install_method  
  run_install_normal  
  ;;  
  "2") dialog_setup_hdd_found_manuell  
  ;;  
  "3") install_do_reboot  
  ;;  
  "4") /bin/bash --login -i  
  ;;  
426   esac   esac
427   fi   fi
428   done   done
429  }  }
430    
431  #################################################  #################################################
432  # Install Komandos #  # Install Commands #
433  #################################################  #################################################
434  setup_hdd_partitions_manuell() {  run_hardware_detection()
435   BOOTHDD="${HDD}1"  {
436   SWAPHDD="${HDD}2"   local hwinfo
437   ROOTHDD="${HDD}3"   hwinfo="$(hwinfo --bios --storage --pci --gfxcard --sys)"
438    
439     # check for special devices/clients:
440     # if zotac a zotac and the disk is a removeable device, then add rootdelay to kernelcmd
441     local removable=0
442     if [[ ! -z $(echo "${hwinfo}" | grep -i zotac) ]]
443     then
444     for i in /sys/block/[hs]d*/removable
445     do
446     if [[ $(< ${i}) = 1 ]]
447     then
448     removable=1
449     fi
450     done
451    
452   ## hdds partitionieren manuell   # only add this for grub legacy, grub2 detect these settings on its own
453   cfdisk $HDD || die   export GRUBLEGACYOPTS="rootdelay=8"
454  }   # there are two zotac types in the wild, nvidia based gfx and intel
455     if [[ ! -z $(echo "${hwinfo}" | grep -i nouveau) ]]
456     then
457     export SPECIALDEVICE="zotac_nvidia"
458     else
459     export SPECIALDEVICE="zotac_intel"
460     fi
461     fi
462    
463  setup_hdd_partitions_silent() {   # check for special devices/clients:
464   ## hdds löschen   # if a rangee and disk ist smaller then 256mb move partion one block further ahead
465   dd if=/dev/zero of=$HDD bs=1024k count=1 || die   if [[ ! -z $(echo "${hwinfo}" | grep -i CLE266) ]]
466   ## hdds partitionieren silent   then
467   fdisk $HDD < $CONFIGS_TEMPLATE/fdisksettings #1> /dev/null 3> /dev/null || die   # for a rangee always define partion startblock +1
468     export FDISKPARTIONBELOW256MB="1"
469   read   export SPECIALDEVICE="rangee"
470  }   export GRUBLEGACYOPTS=""
471     fi
472    
473  setup_hdd_format() {   # check for special devices/clients:
474   mkswap $SWAPHDD || die   # check for maxdata / i810/ i815 Chipsets and disable KMS and use i810fb frambuffer
475   mke2fs -j -q $BOOTHDD || die   if [[ ! -z $(echo "${hwinfo}" | grep -i i810) ]] || [[ ! -z $(echo "${hwinfo}" | grep -i i815) ]]
476   mke2fs -j -q $ROOTHDD || die   then
477  }   export SPECIALDEVICE="maxdata"
478     export GRUBLEGACYOPTS=""
479     fi
480    
481  install_mount_rootfs() {   # check for i845 Chipsets and disable KMS and use 915 drm driver
482   swapon $SWAPHDD || die   if [[ ! -z $(echo "${hwinfo}" | grep -i i845) ]]
483   mount $ROOTHDD $INSTALLPATH || die   then
484   install -d $INSTALLPATH/boot || die   export SPECIALDEVICE="i845"
485   mount $BOOTHDD $INSTALLPATH/boot || die   # unset default video=1024x768 opt or the drm driver breaks
486   cd $INSTALLPATH || die   export KERNELOPTS="quiet"
487  }   export GRUBLEGACYOPTS=""
488     # enable full kms support
489     export GRUB2GFXPAYLOAD="keep"
490     fi
491    
492  install_system_image() {   # check for radeon gfxcards
493   #tar xvzpf $CDPATH/system/autosta_lx.tar.gz   if [[ ! -z $(echo "${hwinfo}" | grep -i radeon) ]]
494   tar xvjpf ${CDPATH}/system/${CDIMAGENAME} -C ${INSTALLPATH}   then
495  }   # enable full kms support
496     export GRUB2GFXPAYLOAD="keep"
497     fi
498    
499     # check for special devices/clients:
500     # check for laptops and activate cpufreq scaling
501     if [[ $(echo "${hwinfo}" | grep 'Formfactor:' | sed 's:.*Formfactor\:\ \"\(.*\)\":\1:') = laptop ]]
502     then
503     export FORMFACTOR="laptop"
504     export KERNELOPTS="${KERNELOPTS} cpufreq.governor=ondemand"
505     fi
506    }
507    
508  install_kernel_image() {  run_hardware_detection_disks()
509   declare -i CPUTYPE=`cat /proc/cpuinfo |grep "cpu family"|cut -d ' ' -f3`  {
510     local bootdev
511    
512   if [ $CPUTYPE -le 5 ];then   # all disks but exclude ramdisks
513                  #echo -e "\033[1;6m\033[36m""i386 Architektur gefunden.""\033[0m"   export ALL_DISKS=$(get_hwinfo disk | sed '/\/dev\/ram[0-9].*/d')
514                  #echo -e "Installiere i386 Kernel..."   # remove the boot device from ALL_DISKS if it was an usbstick
515     if [[ $(grep '[[:space:]]/mnt/cdrom[[:space:]]' /proc/mounts | cut -d' ' -f3) != iso9660 ]]
516     then
517     bootdev="$(grep '[[:space:]]/mnt/cdrom[[:space:]]' /proc/mounts | cut -d' ' -f1 | sed 's:[0-9]::g')"
518     export ALL_DISKS=$(echo "${ALL_DISKS}" | grep -v "${bootdev}")
519     fi
520     export ALL_CDROMS="$(get_hwinfo cdrom)"
521    }
522    
523   lastdir="`pwd`"  hdd_size_below_256mb()
524    {
525     local hdd="$1"
526     local size
527     local retval
528     [[ -z ${hdd} ]] && die "Error: get_hdd_size() no \$hdd given!"
529    
530   mkdir -p $INSTALLPATH/INSTALL/kernel || die   size=$(fdisk -l ${hdd} | grep "Disk.*${hdd}" | sed 's:.*,\ \(.*\)\ byte.*:\1:')
531   cd $INSTALLPATH/INSTALL/kernel || die   if [[ ${size} -le 257000000 ]]
532   tar xzpf $CDPATH/kernels/kernel-i386.tar.gz || die   then
533   source $INSTALLPATH/INSTALL/kernel/kernelversion || die   retval="0"
534     else
535     retval="1"
536     fi
537    
538   cp -aRf $INSTALLPATH/INSTALL/kernel/$KRNLIB $INSTALLPATH/lib/modules || die   return "${retval}"
539   cp -aRf $INSTALLPATH/INSTALL/kernel/$KRNIMG $INSTALLPATH/boot || die  }
  cp -aRf $INSTALLPATH/INSTALL/kernel/$KRNINITRD $INSTALLPATH/boot || die  
  cp -aRf $INSTALLPATH/INSTALL/kernel/kernelversion $INSTALLPATH/boot || die  
540    
541   cd $lastdir || die  setup_hdd_partitions_auto()
542    {
543     ROOTHDD="${HDD}1"
544    
545          elif [ $CPUTYPE -ge 6 ];then   # run this only if FDISKPARTITIONBELOW256MB is not already 1
546                  #echo -e "\033[1;6m\033[36m""i686 Architektur gefunden.""\033[0m"   if [[ ${FDISKPARTIONBELOW256MB} != 1 ]]
547                  #echo -e "Installiere i686 Kernel..."   then
548     if hdd_size_below_256mb ${HDD}
549     then
550     FDISKPARTIONBELOW256MB=1
551     else
552     FDISKPARTIONBELOW256MB=0
553     fi
554     fi
555    
556   lastdir="`pwd`"   ## delete disk
557     dd if=/dev/zero of=${HDD} count=1 &> /dev/null || die
558    
559   mkdir -p $INSTALLPATH/INSTALL/kernel || die   if [[ ${FDISKPARTIONBELOW256MB} = 1 ]]
560   cd $INSTALLPATH/INSTALL/kernel || die   then
561   tar xzpf $CDPATH/kernels/kernel-i686.tar.gz || die   ## setup one bootable partition
562   source $INSTALLPATH/INSTALL/kernel/kernelversion || die   #1. n= new disk
563     #2. p= primary disk
564     #3. 1= first partition
565     #4. 2= default sector start // small disk needs more space for grub2 mbr sector
566     #5. ''= defaul sector end
567     #6. a= bootable flag
568     #7. 1= boot flag for partition 1
569     #8. w= write/quit
570     fdisk ${HDD} &> /dev/null << EOF
571    n
572    p
573    1
574    2
575    
576    a
577    1
578    w
579    EOF
580     else
581     ## setup one bootable partition
582     #1. n= new disk
583     #2. p= primary disk
584     #3. 1= first partition
585     #4. ''= default sector start
586     #5. ''= defaul sector end
587     #6. a= bootable flag
588     #7. 1= boot flag for partition 1
589     #8. w= write/quit
590     fdisk ${HDD} &> /dev/null << EOF
591    n
592    p
593    1
594    
595    
596    a
597    1
598    w
599    EOF
600     fi
601    }
602    
603   cp -aRf $INSTALLPATH/INSTALL/kernel/$KRNLIB $INSTALLPATH/lib/modules || die  setup_hdd_partitions_manuell()
604   cp -aRf $INSTALLPATH/INSTALL/kernel/$KRNIMG $INSTALLPATH/boot || die  {
605   cp -aRf $INSTALLPATH/INSTALL/kernel/$KRNINITRD $INSTALLPATH/boot || die   case "${INSTALL_METHOD}" in
606   cp -aRf $INSTALLPATH/INSTALL/kernel/kernelversion $INSTALLPATH/boot || die   normal)
607     BOOTHDD="${HDD}1"
608     SWAPHDD="${HDD}2"
609     ROOTHDD="${HDD}3"
610     ;;
611    
612     single|auto)
613     ROOTHDD="${HDD}1"
614     ;;
615     esac
616    
617   cd $lastdir || die   ## hdds partitionieren manuell
618          fi   cfdisk ${HDD} || die
619  }  }
620    
621  install_bootsector() {  setup_hdd_format()
622   ### grubconf schreiben  {
623   source $INSTALLPATH/INSTALL/kernel/kernelversion   if [[ -n ${SWAPHDD} ]]
   
  if [ -z $KRNVER ]  
624   then   then
625   KRNVER="AutoSta_LX"   mkswap ${SWAPHDD} || die
626   fi   fi
627     if [[ -n ${BOOTHDD} ]]
  if [ -z $KRNIMG ]  
628   then   then
629   KRNIMG="bzImage"   mke2fs -j -q ${BOOTHDD} || die
630   fi   fi
631     if [[ -n ${ROOTHDD} ]]
  if [ -z $KRNINITRD ]  
632   then   then
633   KRNINITRD="initrd"   mke2fs -j -q ${ROOTHDD} || die
634   fi   fi
   
  echo -e "default 0" > $INSTALLPATH/boot/grub/grub.conf || die  
  echo -e "timeout 03" >> $INSTALLPATH/boot/grub/grub.conf ||die  
  #no support for splash image in 6.1-r2  
  #echo -e "splashimage=(hd0,0)/boot/grub/splash.xpm.gz" >> $INSTALLPATH/boot/grub/grub.conf || die  
  echo -e "\ntitle=${KRNVER}" >> $INSTALLPATH/boot/grub/grub.conf || die  
  echo -e "root (hd0,0)" >> $INSTALLPATH/boot/grub/grub.conf || die  
   
  #s3 cards don't support this  
  #echo -e "kernel (hd0,0)/boot/${KRNIMG} root=$ROOTHDD vga=0x317 video:vesa:ywrap,mtrr splash=silent quiet" >> $INSTALLPATH/boot/grub/grub.conf || die  
  #that's more safer:  
  echo -e "kernel (hd0,0)/boot/${KRNIMG} root=$ROOTHDD quiet" >> $INSTALLPATH/boot/grub/grub.conf || die  
   
  #not needed without bootsplash support  
  #echo -e "initrd=/boot/${KRNINITRD}" >> $INSTALLPATH/boot/grub/grub.conf || die  
   
  ### bootsector schreiben  
  #grub --no-floppy < $CONFIGS_TEMPLATE/grubsettings || die  
  /sbin/grub --no-floppy --batch << "EOF" 1> /dev/null 2> /dev/null || die  
 root (hd0,0)  
 setup (hd0)  
 quit  
 EOF  
635  }  }
636    
637  install_bootsector_chroot() {  install_mount_rootfs()
638   ### grubconf schreiben  {
639   #source $INSTALLPATH/INSTALL/kernel/kernelversion   if [[ -n ${SWAPHDD} ]]
  source $INSTALLPATH/boot/kernelversion  
   
  #for alx only  
  if [ -e ${INSTALLPATH}/etc/alx_version ]  
640   then   then
641   OLD_ALXVER="${ALXVER}"   swapon ${SWAPHDD} || die
  source ${INSTALLPATH}/etc/alx_version  
  KRNVER="ALX-${ALXVER}"  
  ALXVER="${OLD_ALXVER}"  
642   fi   fi
643     if [[ -n ${ROOTHDD} ]]
  if [ -z "$KRNVER" ]  
644   then   then
645   KRNVER="AutoSta_LX"   mount ${ROOTHDD} ${INSTALLPATH} || die
646   fi   fi
647     if [[ -n ${BOOTHDD} ]]
  if [ -z "$KRNIMG" ]  
648   then   then
649   KRNIMG="bzImage"   install -d ${INSTALLPATH}/boot || die
650     mount ${BOOTHDD} ${INSTALLPATH}/boot || die
651   fi   fi
652    
653   if [ -z "$KRNINITRD" ]   cd ${INSTALLPATH} || die
654   then  }
  KRNINITRD="initrd"  
  fi  
655    
656   echo -e "default 0" > $INSTALLPATH/boot/grub/grub.conf || die  install_system_image()
657   echo -e "timeout 03" >> $INSTALLPATH/boot/grub/grub.conf ||die  {
658     tar xvjpf ${CDPATH}/system/${CDIMAGENAME} -C ${INSTALLPATH}
659   #no support for splash image in 6.1-r2  }
  #echo -e "splashimage=(hd0,0)/boot/grub/splash.xpm.gz" >> $INSTALLPATH/boot/grub/grub.conf || die  
   
  echo -e "\ntitle=${KRNVER}" >> $INSTALLPATH/boot/grub/grub.conf || die  
  echo -e "root (hd0,0)" >> $INSTALLPATH/boot/grub/grub.conf || die  
   
  #s3 cards don't support this  
  #echo -e "kernel (hd0,0)/boot/${KRNIMG} root=$ROOTHDD vga=0x317 video:vesa:ywrap,mtrr splash=silent quiet" >> $INSTALLPATH/boot/grub/grub.conf || die  
  #that's more safer:  
  echo -e "kernel (hd0,0)/boot/${KRNIMG} root=$ROOTHDD quiet" >> $INSTALLPATH/boot/grub/grub.conf || die  
   
  #not needed without bootsplash support  
  #echo -e "initrd=/boot/${KRNINITRD}" >> $INSTALLPATH/boot/grub/grub.conf || die  
660    
661    install_bootsector_chroot()
662    {
663     local my_roothdd
664     local grubconf=${INSTALLPATH}/boot/grub/grub.conf
665     local grub2conf=/boot/grub/grub.cfg
666    
667   ### bootsector schreiben chrooted schreiben (gentoo)   # check for grub2
668   if [ -f $INSTALLPATH/sbin/grub ]   if [[ -f ${INSTALLPATH}/sbin/grub-mkconfig ]]
669   then   then
670   cat > $INSTALLPATH/root/.bashrc << CHROOTEOF   # needed by grub-mkconfig on the first run
671  /sbin/grub --no-floppy --batch << "EOF" 1> /dev/null 2> /dev/null   if [[ ! -f ${INSTALLPATH}/boot/grub/video.lst ]]
672     then
673     install -m0644 ${INSTALLPATH}/lib/grub/*/video.lst ${INSTALLPATH}/boot/grub/video.lst || die
674     fi
675    
676     # set kernelopts
677     if [[ -f ${INSTALLPATH}/etc/conf.d/grub ]]
678     then
679     sed -i "s:^\(export GRUB_CMDLINE_LINUX_DEFAULT=\).*:\1\"${KERNELOPTS}\":" ${INSTALLPATH}/etc/conf.d/grub || die
680     sed -i "s:^\(export GRUB_GFXPAYLOAD_LINUX=\).*:\1\"${GRUB2GFXPAYLOAD}\":" ${INSTALLPATH}/etc/conf.d/grub || die
681     else
682     echo "export GRUB_CMDLINE_LINUX_DEFAULT=\"${KERNELOPTS}\"" >  ${INSTALLPATH}/etc/conf.d/grub || die
683     echo "export GRUB_GFXPAYLOAD_LINUX=\"${GRUB2GFXPAYLOAD}\"" >>  ${INSTALLPATH}/etc/conf.d/grub || die
684     fi
685     echo 'grub-mkdevicemap' > ${INSTALLPATH}/root/.installrc || die
686     echo "LC_ALL=C grub-mkconfig -o ${grub2conf}  &> /dev/null" >> ${INSTALLPATH}/root/.installrc || die
687     echo "grub-install --no-floppy ${HDD} &> /dev/null" >> ${INSTALLPATH}/root/.installrc || die
688     echo "exit 0" >> ${INSTALLPATH}/root/.installrc || die
689    
690     # grub-legacy
691     else
692     ### grubconf schreiben
693     source ${INSTALLPATH}/boot/kernelversion
694    
695     #for alx only
696     if [ -e ${INSTALLPATH}/etc/alx_version ]
697     then
698     OLD_ALXVER="${ALXVER}"
699     source ${INSTALLPATH}/etc/alx_version
700     KRNVER="ALX-${ALXVER}"
701     ALXVER="${OLD_ALXVER}"
702     fi
703    
704     [[ -z ${KRNVER} ]] && KRNVER="AutoSta_LX"
705     [[ -z ${KRNINITRD} ]] && KRNINITRD="initrd"
706     [[ -z ${KRNIMG} ]] && KRNIMG="vmlinuz"
707    
708     # uuid support
709     if is_uuid_supported
710     then
711     my_roothdd="UUID=$(get_uuid ${ROOTHDD})"
712     else
713     my_roothdd="${ROOTHDD}"
714     fi
715    
716     : > ${grubconf} || die
717     echo "default 0" >> ${grubconf} || die
718     echo "timeout 3" >> ${grubconf} || die
719     # using current root password
720     echo "password --md5 $(cat ${INSTALLPATH}/etc/shadow | grep root | cut -d: -f2)"  >> ${grubconf} || die
721    
722     echo  >> ${grubconf} || die
723     echo "# normal boot" >> ${grubconf} || die
724     echo "title ${KRNVER}" >> ${grubconf} || die
725     echo "root (hd0,0)" >> ${grubconf} || die
726     echo "kernel /boot/${KRNIMG} root=${my_roothdd} ${KERNELOPTS} ${GRUBLEGACYOPTS}" >> ${grubconf} || die
727     if is_initrd_supported
728     then
729     echo "initrd /boot/${KRNINITRD}" >> ${grubconf} || die
730     fi
731    
732     echo >> ${grubconf} || die
733     echo "# admin boot" >> ${grubconf} || die
734     echo "title ${KRNVER} - Re-run hardware-detection" >> ${grubconf} || die
735     echo "lock"  >> ${grubconf} || die
736     echo "root (hd0,0)" >> ${grubconf} || die
737     echo "kernel /boot/${KRNIMG} root=${my_roothdd} ${KERNELOPTS} ${GRUBLEGACYOPTS} hardware-auto-detection" >> ${grubconf} || die
738     if is_initrd_supported
739     then
740     echo "initrd /boot/${KRNINITRD}" >> ${grubconf} || die
741     fi
742    
743     echo >> ${grubconf} || die
744     echo "title ${KRNVER} - Reset *all* local settings" >> ${grubconf} || die
745     echo "lock"  >> ${grubconf} || die
746     echo "root (hd0,0)" >> ${grubconf} || die
747     echo "kernel /boot/${KRNIMG} root=${my_roothdd} ${KERNELOPTS} ${GRUBLEGACYOPTS} alx-reset-settings" >> ${grubconf} || die
748     if is_initrd_supported
749     then
750     echo "initrd /boot/${KRNINITRD}" >> ${grubconf} || die
751     fi
752    
753     # write bootsector chrooted (lfs/magellan)
754     cat > ${INSTALLPATH}/root/.installrc << CHROOTEOF
755    /usr/sbin/grub --no-floppy --batch << "EOF" 1> /dev/null 2> /dev/null
756  root (hd0,0)  root (hd0,0)
757  setup (hd0)  setup (hd0)
758  quit  quit
# Line 530  exit 0 Line 761  exit 0
761  CHROOTEOF  CHROOTEOF
762   fi   fi
763    
764   ### bootsector schreiben chrooted schreiben (lfs/magellan)   ## enters chroot
765   if [ -f $INSTALLPATH/usr/sbin/grub ]   mount -t proc proc ${INSTALLPATH}/proc
766   then   mount -t sysfs sysfs ${INSTALLPATH}/sys
767   cat > $INSTALLPATH/root/.bashrc << CHROOTEOF   mount -o bind /dev ${INSTALLPATH}/dev
768  /usr/sbin/grub --no-floppy --batch << "EOF" 1> /dev/null 2> /dev/null   chroot ${INSTALLPATH} /bin/bash --rcfile /root/.installrc -i
769  root (hd0,0)   umount ${INSTALLPATH}/proc
770  setup (hd0)   umount ${INSTALLPATH}/sys
771  quit   umount ${INSTALLPATH}/dev
772  EOF   rm ${INSTALLPATH}/root/.installrc
773    }
774    
775    is_initrd_supported()
776    {
777     # only generate initrds if the cmd exists
778     [[ -x ${INSTALLPATH}/sbin/mkinitrd ]] && return 0
779     return 1
780    }
781    
782    install_initrd_chroot()
783    {
784     # only generate initrds if the cmd exists
785     is_initrd_supported || return 0
786    
787     DISKMODS="sd_mod"
788     OLDPATAMODS="amd74xx piix sis5513 via82cxxx"
789     PATAMODS="ata_piix pata_amd pata_mpiix pata_oldpiix pata_sis pata_via"
790     SATAMODS="sata_via sata_sis sata_nv"
791     DRMMODS="i915 mga nouveau r128 radeon savage sis tdfx ttm via"
792     OTHERMODS=""
793     case ${SPECIALDEVICE} in
794     zotac_intel|i845) FBMODS=""; DRMMODS="i915" ;;
795     zotac_nvidia) FBMODS=""; DRMMODS="nouveau" ;;
796     rangee) FBMODS="" ;; ## fallback to vesafb, viafb does not run on all CLE266 boards
797     # not working with kms enabled drivers -> segfaults
798     #maxdata) FBMODS="i810fb" ;; ## check for maxdata / i810/ i815 Chipsets and disable KMS and use i810fb frambuffer
799     maxdata) FBMODS="" ;;
800     *) FBMODS="uvesafb" ;;
801     esac
802    
803     if [[ ${FORMFACTOR} = laptop ]]
804     then
805     OTHERMODS="acpi-cpufreq cpufreq_ondemand cpufreq_conservative cpufreq_powersave"
806     fi
807    
808     # install an appropriate uvesafb.conf
809     install -d ${INSTALLPATH}/etc/modprobe.d || die
810     echo "options uvesafb mode_option=1024x768-32@60 scroll=ywrap" > ${INSTALLPATH}/etc/modprobe.d/uvesafb.conf || die
811    
812     # install an appropriate viafb.conf
813     echo "options viafb viafb_mode=1024x768 viafb_refresh=60" > ${INSTALLPATH}/etc/modprobe.d/viafb.conf || die
814    
815     # install an appropriate i810fb.conf
816     echo "options i810fb xres=1024 yres=768 bpp=16 mtrr=1 hsync1=30 hsync2=62 vsync1=30 vsync2=60"  > ${INSTALLPATH}/etc/modprobe.d/i810fb.conf || die
817    
818     cat > ${INSTALLPATH}/root/.installrc << CHROOTEOF
819    echo "MODULES=\"${FORMAT_FILESYSTEM} ${DISKMODS} ${OLDATAMODS} ${PATAMODS} ${SATAMODS} ${DRMMODS} ${FBMODS} ${OTHERMODS}\"" > /etc/conf.d/mkinitrd
820    mkinitrd -f /boot/$(readlink /boot/initrd) $(readlink /boot/vmlinuz | sed "s:kernel-::g") > /dev/null
821  exit 0  exit 0
822  CHROOTEOF  CHROOTEOF
823    
824     ## enters chroot
825     mount -t proc proc ${INSTALLPATH}/proc
826     mount -t sysfs sysfs ${INSTALLPATH}/sys
827     mount -o bind /dev ${INSTALLPATH}/dev
828     chroot ${INSTALLPATH} /bin/bash --rcfile /root/.installrc -i
829     umount ${INSTALLPATH}/proc
830     umount ${INSTALLPATH}/sys
831     umount ${INSTALLPATH}/dev
832     rm ${INSTALLPATH}/root/.installrc
833    }
834    
835    is_uuid_supported()
836    {
837     if [[ -x $(which busybox.mkinitrd &> /dev/null) ]]
838     then
839     # only detect uuids if supported
840     if [[ ! -z $(busybox.mkinitrd | grep blkid) ]]
841     then
842     return 0
843     fi
844   fi   fi
845    
846   ##enters chroot   return 1
  mount -t proc none $INSTALLPATH/proc  
  # bind /dev to get the devices right,  
  # if bootet from a 2.6 kernel with udev  
  mount -o bind /dev $INSTALLPATH/dev  
  chroot $INSTALLPATH /bin/bash --rcfile /root/.bashrc -i  
  umount $INSTALLPATH/proc  
  umount $INSTALLPATH/dev  
  rm $INSTALLPATH/root/.bashrc  
847  }  }
848    
849  install_alxconfig(){  get_uuid()
850   lastdir="`pwd`"  {
851     local UUID
852     local SEC_TYPE
853     local TYPE
854    
855   mkdir -p $INSTALLPATH/opt/alx-config || die   local dev="$1"
856   cd $INSTALLPATH/opt/alx-config || die   [[ -z ${dev} ]] && die "no dev given"
  tar xzpf $CDPATH/alx-config/alx-config.tar.gz || die  
  chmod a+x $INSTALLPATH/opt/alx-config/Configurator/config_functions.sh || die  
  chmod a+x $INSTALLPATH/opt/alx-config/Configurator/config_menu.sh || die  
  ln -sf /opt/alx-config/Configurator/config_menu.sh $INSTALLPATH/bin/ALXConfig || die  
857    
858   cd $lastdir || die   # check if given device is already an UUID
859     if [[ ${dev/UUID=/}x != ${dev}x ]]
860     then
861     eval "${dev}"
862     else
863     eval $(busybox.mkinitrd blkid ${dev} | grep "${dev}:" | sed 's/.*:\ //')
864     fi
865     echo "${UUID}"
866  }  }
867    
868    install_system_settings()
869    {
870     # schreibe fstab
871     if is_uuid_supported
872     then
873     if [[ -n ${BOOTHDD} ]]
874     then
875     echo -e "UUID=$(get_uuid ${BOOTHDD})\t/boot\t${FORMAT_FILESYSTEM}\tnoatime,noauto\t1 1" > ${INSTALLPATH}/etc/fstab || die
876     fi
877     if [[ -n ${ROOTHDD} ]]
878     then
879     echo -e "UUID=$(get_uuid ${ROOTHDD})\t/\t${FORMAT_FILESYSTEM}\tnoatime\t0 0" >> ${INSTALLPATH}/etc/fstab || die
880     fi
881     else
882     if [[ -n ${BOOTHDD} ]]
883     then
884     echo -e "${BOOTHDD}\t/boot\t${FORMAT_FILESYSTEM}\tnoatime,noauto\t1 1" > ${INSTALLPATH}/etc/fstab || die
885     fi
886     if [[ -n ${ROOTHDD} ]]
887     then
888     echo -e "${ROOTHDD}\t/\t${FORMAT_FILESYSTEM}\tnoatime\t0 0" >> ${INSTALLPATH}/etc/fstab || die
889     fi
890     fi
891     # not needed busybox loads all with swapon -a, even if not mentioned in fstab
892     #echo -e "UUID='$(get_uuid ${SWAPHDD})'\tswap\tswap\tpri=1\t0 0" >> ${INSTALLPATH}/etc/fstab || die
893     echo -e "proc\t/proc\tproc\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die
894     echo -e "shm\t/dev/shm\ttmpfs\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die
895    
896  install_system_settings(){   # install network config skeleton
897   ### schreibe fstab   install -m0644 ${INSTALLPATH}/etc/alxconfig-ng/skel/net/net.eth0 ${INSTALLPATH}/etc/conf.d/ || die
  echo -e "$BOOTHDD\t/\text3\tnoatime,noauto\t1 1" > $INSTALLPATH/etc/fstab || die  
  echo -e "$ROOTHDD\t/\text3\tnoatime\t0 0" >> $INSTALLPATH/etc/fstab || die  
  echo -e "$SWAPHDD\tswap\tswap\tpri=1\t0 0" >> $INSTALLPATH/etc/fstab || die  
  echo -e "none\t/proc\tproc\tdefaults\t0 0" >> $INSTALLPATH/etc/fstab || die  
   
  #deprecated  
  #echo -e "devpts\t/dev/pts\tdevpts\tgid=4,mode=620\t0 0" >> $INSTALLPATH/etc/fstab || die  
   
  echo -e "none\t/dev/shm\ttmpfs\tdefaults\t0 0" >> $INSTALLPATH/etc/fstab || die  
  echo -e "none\t/proc/bus/usb\tusbfs\tdefaults\t0 0" >> $INSTALLPATH/etc/fstab || die  
 }  
898    
899  install_hotfixes(){   # intel framebufer quirk
900   if [ -f $CDPATH/hotfixes/hotfixes.sh ]   if [[ -e /proc/fb ]]
901   then   then
902   dialog_hotfixes   if [[ ! -z $(grep 'inteldrmfb' /proc/fb) ]]
903   sleep1   then
904   $CDPATH/hotfixes/hotfixes.sh   fbdev=$(grep 'inteldrmfb' /proc/fb | sed 's:\([0-9]\).*:\1:')
905     if [[ ${fbdev} != 0 ]]
906     then
907     sed -i "s:^\(SPLASH_DEV=\).*:\1\"/dev/fb${fbdev}\":" ${INSTALLPATH}/etc/splash/splash.conf || die
908     fi
909     fi
910   fi   fi
911  }  }
912    
913  install_umount_rootfs() {  install_umount_rootfs()
914    {
915   cd /   cd /
916   umount $INSTALLPATH/boot || die   if [[ -n ${BOOTHDD} ]]
917   umount $INSTALLPATH || die   then
918   swapoff $SWAPHDD || die   umount ${INSTALLPATH}/boot || die
919     fi
920     if [[ -n ${ROOTHDD} ]]
921     then
922     umount ${INSTALLPATH} || die
923     fi
924     if [[ -n ${SWAPHDD} ]]
925     then
926     swapoff ${SWAPHDD} || die
927     fi
928  }  }
929    
930  install_do_reboot() {  install_do_reboot()
931    {
  #only for now later it will be used again  
  #with 6.1-r2 these options are not available  
  #cd /  
  #umount $CDPATH  
  #eject  
  #clear  
   
932   reboot   reboot
933  }  }
934    
935  #################################################  #################################################
936  #     Install Ablauf Scripte #  #     Install Main Scripts #
937  #################################################  #################################################
938    
939  run_install_normal() {  run_install()
940   #only for now later it will be used again  {
941   #with 6.1-r2 only one install method available   local method="$1"
942   #dialog_setup_hdd_menu  
943   dialog_setup_hdd_found_manuell   # setup install environment
944     export KERNELOPTS="${DEFAULT_KERNELOPTS}"
945   dialog_setup_hdd_partitions_manuell   export GRUBLEGACYOPTS="${GRUBLEGACYOPTS}"
946     export GRUB2OPTS="${GRUB2OPTS}"
947     export GRUB2GFXPAYLOAD="${DEFAULT_GRUB2GFXPAYLOAD}"
948     export FORMFACTOR="${DEFAULT_FORMFACTOR}"
949     export FORMAT_FILESYSTEM="${DEFAULT_FORMAT_FILESYSTEM}"
950    
951     case "${method}" in
952     auto)
953     export INSTALL_METHOD="${method}"
954     ;;
955     normal)
956     export INSTALL_METHOD="${method}"
957     ;;
958     single)
959     export INSTALL_METHOD="${method}"
960     ;;
961     *)
962     echo "Unknown install method '${method}', aborting."
963     exit 1
964     ;;
965     esac
966    
967     dialog_hardware_detection
968    
969     case "${INSTALL_METHOD}" in
970     auto) dialog_setup_hdd_partitions_auto ;;
971     *) dialog_setup_hdd_partitions_manuell ;;
972     esac
973   dialog_setup_hdd_format   dialog_setup_hdd_format
974   setup_hdd_format > /dev/null   setup_hdd_format > /dev/null
975   install_mount_rootfs   install_mount_rootfs
976   (install_system_image > /tmp/install.log) 2> /tmp/install_errors.log | dialog_install_meter | dialog_install_system_image   (install_system_image > /tmp/install.log) 2> /tmp/install_errors.log | dialog_install_meter | dialog_install_system_image
977    
  #only for now later it will be used again  
  #with 6.1-r2 variable kernels are not available  
  #dialog_install_kernel_image  
  #install_kernel_image  
   
  dialog_install_bootsector  
  install_bootsector_chroot  
   
  #only for now later it will be used again  
  #with 6.1-r2 highest version of alx-config is already included  
  #dialog_install_alxconfig  
  #sleep 1  
  #install_alxconfig  
   
978   dialog_install_settings   dialog_install_settings
979   sleep 1   sleep 1
980   install_system_settings   install_system_settings
981   install_hotfixes   install_initrd_chroot
  install_umount_rootfs  
  dialog_install_successful  
 }  
982    
983  run_install_silent() {   dialog_install_bootsector
984   echo "starting silent install ..."   install_bootsector_chroot
  sleep 1  
 }  
985    
986  run_install_unattended() {   install_umount_rootfs
987   echo "starting unattended install ..."   dialog_install_successful
  sleep 1  
988  }  }
989    
990  if [ "$1" == "unattended" ]  dialog_main
 then  
  run_install_unattended  
 else  
  dialog_main  
 fi  
991    
992  exit 0  exit 0

Legend:
Removed from v.261  
changed lines
  Added in v.6825