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

Legend:
Removed from v.280  
changed lines
  Added in v.6832