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 280 by niro, Wed Aug 17 03:35:09 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.5 2005-08-17 03:35:09 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.2"  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_info_flash(){  dialog_setup_hdd_info_single()
99   local SHDD="`echo $HDD|sed -e 's/\/dev\///'`"  {
100     local SHDD="$(echo $HDD | sed 's/\/dev\///')"
101    
102   dialog \   dialog \
103   --colors \   --colors \
104   --title "[ Festplatten Partitionierung ]" \   --title "[ Festplatten Partitionierung ]" \
105   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
106   --ok-label "Weiter" \   --ok-label "Weiter" \
107   --msgbox "\nBitte legen Sie 1 Partition an.\n\n\   --msgbox "\nBitte legen Sie 1 Partition an.\n\n\
108   [ \Z3${SHDD}1\Zn ] Typ: \Z3Linux\Zn mit dem gesamten Speicher\n\   [ \Z3${SHDD}1\Zn ] Typ: \Z3Linux\Zn mit dem gesamten Speicher\n\
109   Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81   Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81
110  }  }
111    
112  dialog_setup_system_menu() {  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     --colors \
136   --menu "\nWaehlen Sie die Installations-Methode" 14 70 5 \   --menu "\nWaehlen Sie die Installations-Methode" 14 70 5 \
137   "1" "Normale IDE-Disk" \   "1" "Automatisches Setup (Empfohlen)" \
138   "2" "Flash-Speicher"`   "" "" \
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   run_install_normal   "3") run_install single ;;
150   ;;   "") dialog_setup_system_menu;;
  "2")  
  run_install_flash  
  ;;  
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
168   echo "--backtitle \"$TITLE\" \\" >> /tmp/hddtmp.sh  
169   echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh   echo "dialog \\"  > ${hwtmp}
170   echo "--stdout \\" >> /tmp/hddtmp.sh   echo "--backtitle \"${TITLE}\" \\" >> ${hwtmp}
171   echo "--colors \\" >> /tmp/hddtmp.sh   echo "--ok-label \"Weiter\" \\" >> ${hwtmp}
172   echo "--msgbox \"Gefundene Hardware:\n\n \\" >> /tmp/hddtmp.sh   echo "--stdout \\" >> ${hwtmp}
173   echo " Festplatten:\n \\" >> /tmp/hddtmp.sh   echo "--colors \\" >> ${hwtmp}
174     echo "--msgbox \"Gefundene Hardware:\n\n \\" >> ${hwtmp}
175     echo " Festplatten:\n \\" >> ${hwtmp}
176    
177   if [ ! -z "$scsidisks" ]   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 214  dialog_setup_hdd_partitions_manuell() { Line 255  dialog_setup_hdd_partitions_manuell() {
255   fi   fi
256  }  }
257    
258  dialog_setup_hdd_partitions_manuell_flash() {  dialog_setup_hdd_partitions_manuell_single()
259   if [ -z "$installdevs" ]  {
260     local i
261    
262     if [[ -z ${ALL_DISKS} ]]
263   then   then
264   dialog \   dialog \
265   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
266   --ok-label "Beenden" \   --ok-label "Beenden" \
267   --msgbox "Kein geeignetes Laufwerk gefunden.\nDie Installation ist fehlgeschlagen." 6 70   --msgbox "Kein geeignetes Laufwerk gefunden.\nDie Installation ist fehlgeschlagen." 6 70
268   exit 1   exit 1
269   else   else
270    
271   echo "dialog \\" > /tmp/hddtmp.sh   echo "dialog \\" > /tmp/hddtmp.sh
272   echo "--backtitle \"$TITLE\" \\" >> /tmp/hddtmp.sh   echo "--backtitle \"${TITLE}\" \\" >> /tmp/hddtmp.sh
273   echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh   echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh
274   echo "--cancel-label \"Beenden\" \\" >> /tmp/hddtmp.sh   echo "--cancel-label \"Beenden\" \\" >> /tmp/hddtmp.sh
275   echo "--stdout \\" >> /tmp/hddtmp.sh   echo "--stdout \\" >> /tmp/hddtmp.sh
276   echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh   echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh
277    
278   for I in $installdevs   for i in ${ALL_DISKS}
279   do   do
280   echo "\"$I\" \"\" \\" >> /tmp/hddtmp.sh   echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh
281   done   done
282   echo -e "\n" >> /tmp/hddtmp.sh   echo -e "\n" >> /tmp/hddtmp.sh
283    
284   chmod a+x /tmp/hddtmp.sh   chmod a+x /tmp/hddtmp.sh
285   HDD="`/tmp/hddtmp.sh`"   HDD="$(/tmp/hddtmp.sh)"
286   RES=$?   RES=$?
287   if [ "$RES" == "1" ]   [[ ${RES} -eq 1 ]] && return 1
288     if [[ ${RES} -eq 0 ]]
289   then   then
290   return 1   dialog_setup_hdd_info_single
291     setup_hdd_partitions_manuell_single
292   fi   fi
293   if [ "$RES" == "0" ]   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   then
328   dialog_setup_hdd_info_flash   dialog_setup_hdd_info_auto
329   setup_hdd_partitions_manuell_flash   dialog_setup_hdd_create_partitions
330     setup_hdd_partitions_auto
331   fi   fi
332   fi   fi
333  }  }
334    
335  dialog_setup_hdd_partitions_silent() {  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 287  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() {  
385   dialog \   dialog \
386   --backtitle "$TITLE" \   --backtitle "${TITLE}" \
  --infobox "Installiere den System-Kernel ..." 3 70  
   
 }  
   
 dialog_install_hotfixes() {  
  dialog \  
  --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 371  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  
  dialog_setup_system_menu  
  ;;  
  "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   ## hdds partitionieren manuell   # check for special devices/clients:
440   cfdisk $HDD || die   # 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  setup_hdd_partitions_manuell_flash() {   # only add this for grub legacy, grub2 detect these settings on its own
453   ROOTHDD="${HDD}1"   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   ## hdds partitionieren manuell   # check for special devices/clients:
464   cfdisk $HDD || die   # if a rangee and disk ist smaller then 256mb move partion one block further ahead
465  }   if [[ ! -z $(echo "${hwinfo}" | grep -i CLE266) ]]
466     then
467     # for a rangee always define partion startblock +1
468     export FDISKPARTIONBELOW256MB="1"
469     export SPECIALDEVICE="rangee"
470     export GRUBLEGACYOPTS=""
471     fi
472    
473  setup_hdd_partitions_silent() {   # check for special devices/clients:
474   ## hdds löschen   # check for maxdata / i810/ i815 Chipsets and disable KMS and use i810fb frambuffer
475   dd if=/dev/zero of=$HDD bs=1024k count=1 || die   if [[ ! -z $(echo "${hwinfo}" | grep -i i810) ]] || [[ ! -z $(echo "${hwinfo}" | grep -i i815) ]]
476   ## hdds partitionieren silent   then
477   fdisk $HDD < $CONFIGS_TEMPLATE/fdisksettings #1> /dev/null 3> /dev/null || die   export SPECIALDEVICE="maxdata"
478     export GRUBLEGACYOPTS=""
479   read   fi
 }  
480    
481  setup_hdd_format() {   # check for i845 Chipsets and disable KMS and use 915 drm driver
482   mkswap $SWAPHDD || die   if [[ ! -z $(echo "${hwinfo}" | grep -i i845) ]]
483   mke2fs -j -q $BOOTHDD || die   then
484   mke2fs -j -q $ROOTHDD || die   export SPECIALDEVICE="i845"
485  }   # unset default video=1024x768 opt or the drm driver breaks
486     export KERNELOPTS="quiet"
487     export GRUBLEGACYOPTS=""
488     # enable full kms support
489     export GRUB2GFXPAYLOAD="keep"
490     fi
491    
492  setup_hdd_format_flash() {   # check for radeon gfxcards
493  # mkswap $SWAPHDD || die   if [[ ! -z $(echo "${hwinfo}" | grep -i radeon) ]]
494  # mke2fs -j -q $BOOTHDD || die   then
495   mke2fs -j -q $ROOTHDD || die   # enable full kms support
496  }   export GRUB2GFXPAYLOAD="keep"
497     fi
498    
499  install_mount_rootfs() {   # check for special devices/clients:
500   swapon $SWAPHDD || die   # check for laptops and activate cpufreq scaling
501   mount $ROOTHDD $INSTALLPATH || die   if [[ $(echo "${hwinfo}" | grep 'Formfactor:' | sed 's:.*Formfactor\:\ \"\(.*\)\":\1:') = laptop ]]
502   install -d $INSTALLPATH/boot || die   then
503   mount $BOOTHDD $INSTALLPATH/boot || die   export FORMFACTOR="laptop"
504   cd $INSTALLPATH || die   export KERNELOPTS="${KERNELOPTS} cpufreq.governor=ondemand"
505     fi
506  }  }
507    
508  install_mount_rootfs_flash() {  run_hardware_detection_disks()
509  # swapon $SWAPHDD || die  {
510   mount $ROOTHDD $INSTALLPATH || die   local bootdev
  install -d $INSTALLPATH/boot || die  
 # mount $BOOTHDD $INSTALLPATH/boot || die  
  cd $INSTALLPATH || die  
 }  
511    
512  install_system_image() {   # all disks but exclude ramdisks
513   #tar xvzpf $CDPATH/system/autosta_lx.tar.gz   export ALL_DISKS=$(get_hwinfo disk | sed '/\/dev\/ram[0-9].*/d')
514   tar xvjpf ${CDPATH}/system/${CDIMAGENAME} -C ${INSTALLPATH}   # 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    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  install_kernel_image() {   size=$(fdisk -l ${hdd} | grep "Disk.*${hdd}" | sed 's:.*,\ \(.*\)\ byte.*:\1:')
531   declare -i CPUTYPE=`cat /proc/cpuinfo |grep "cpu family"|cut -d ' ' -f3`   if [[ ${size} -le 257000000 ]]
532     then
533   if [ $CPUTYPE -le 5 ];then   retval="0"
534                  #echo -e "\033[1;6m\033[36m""i386 Architektur gefunden.""\033[0m"   else
535                  #echo -e "Installiere i386 Kernel..."   retval="1"
536     fi
  lastdir="`pwd`"  
   
  mkdir -p $INSTALLPATH/INSTALL/kernel || die  
  cd $INSTALLPATH/INSTALL/kernel || die  
  tar xzpf $CDPATH/kernels/kernel-i386.tar.gz || die  
  source $INSTALLPATH/INSTALL/kernel/kernelversion || die  
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 0" >> $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 602  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/boot\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  
 }  
   
 install_system_settings_flash(){  
  ### schreibe fstab  
 # echo -e "$BOOTHDD\t/boot\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  
898    
899   echo -e "none\t/dev/shm\ttmpfs\tdefaults\t0 0" >> $INSTALLPATH/etc/fstab || die   # intel framebufer quirk
900   echo -e "none\t/proc/bus/usb\tusbfs\tdefaults\t0 0" >> $INSTALLPATH/etc/fstab || die   if [[ -e /proc/fb ]]
 }  
 install_hotfixes(){  
  if [ -f $CDPATH/hotfixes/hotfixes.sh ]  
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  install_umount_rootfs_flash() {   then
922   cd /   umount ${INSTALLPATH} || die
923  # umount $INSTALLPATH/boot || die   fi
924   umount $INSTALLPATH || die   if [[ -n ${SWAPHDD} ]]
925  # swapoff $SWAPHDD || die   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    
 run_install_flash() {  
  #only for now later it will be used again  
  #with 6.1-r2 only one install method available  
  #dialog_setup_hdd_menu  
  dialog_setup_hdd_found_manuell  
   
  dialog_setup_hdd_partitions_manuell_flash  
  dialog_setup_hdd_format  
  setup_hdd_format_flash > /dev/null  
  install_mount_rootfs_flash  
  (install_system_image > /tmp/install.log) 2> /tmp/install_errors.log | dialog_install_meter | dialog_install_system_image  
   
  #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  
   
983   dialog_install_bootsector   dialog_install_bootsector
984   install_bootsector_chroot   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  
   
  dialog_install_settings  
  sleep 1  
  install_system_settings_flash  
  install_hotfixes  
  install_umount_rootfs_flash  
  dialog_install_successful  
 }  
   
 run_install_silent() {  
  echo "starting silent install ..."  
  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.280  
changed lines
  Added in v.6825