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

Legend:
Removed from v.259  
changed lines
  Added in v.6848