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 527 by niro, Fri Jun 27 23:33:40 2008 UTC alx-src/trunk/alxinstall-ng/bin/alxinstall-ng.sh.in revision 6817 by niro, Thu Jul 23 08:48:15 2015 UTC
# Line 1  Line 1 
1  #!/bin/sh  #!/bin/sh
2  #  #
3  # $Header: /home/cvsd/alx-cvs/alx-src/alxinstall-ng/bin/alxinstall-ng.sh,v 1.13 2008-06-27 23:33:40 niro Exp $  # $Header: /home/cvsd/alx-cvs/alx-src/alxinstall-ng/bin/alxinstall-ng.sh,v 1.15 2008-06-28 00:37:45 niro Exp $
4  #  #
5  # AutoSta_LX Installation Script  # AutoSta_LX Installation Script
6  #  #
# Line 11  Line 11 
11  # Install Navigation Gui  # Install Navigation Gui
12  #  #
13    
14  #images: (get ${CDIMAGENAME})  # ignore environment!
15    LC_ALL=C
16    
17    MLIBDIR="/usr/lib/alxinstall-ng"
18    
19    # images: (get ${CDIMAGENAME})
20  source /mnt/cdrom/system/images.conf  source /mnt/cdrom/system/images.conf
21    
22  #Includes  # includes
23  source /usr/lib/alxinstall-ng/functions/findhdd.sh > /dev/null  source ${MLIBDIR}/functions/hwdetection.sh
 ### bugfix ###############################  
 cdromdev="$(echo ${cdromdev} | sed 's/ //')"  
 ########################################  
24    
25  ### System/Config Version  ### System/Config Version
26  VERSION="0.3"  VERSION="%VERSIONTAG%"
27  TITLE="alxinstall-ng - ${VERSION}"  TITLE="alxinstall-ng - ${VERSION}"
28    
29  CDPATH="/mnt/cdrom"  CDPATH="/mnt/cdrom"
# Line 31  INSTALLPATH="/mnt/magellan" Line 33  INSTALLPATH="/mnt/magellan"
33  CURRENTLINE=0  CURRENTLINE=0
34  #TOTALLINES=11072 # -> now in images.conf  #TOTALLINES=11072 # -> now in images.conf
35    
36    # standard kernel opts
37    KERNELOPTS="quiet video=1024x768"
38    
39    # grub options
40    GRUBLEGACYOPTS=""
41    GRUB2OPTS=""
42    GRUB2GFXPAYLOAD="1024x768x16,1024x768"
43    
44    # fdisk options
45    FDISKPARTIONBELOW256MB=0
46    
47    # default specialdevices
48    SPECIALDEVICE=""
49    FORMFACTOR="desktop"
50    
51    # target filesystem
52    FORMAT_FILESYSTEM="ext4"
53    
54  #################################################  #################################################
55  #  DIALOG BOXEN #  #  DIALOG BOXEN #
# Line 78  dialog_setup_hdd_info() Line 97  dialog_setup_hdd_info()
97   Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81   Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81
98  }  }
99    
100  dialog_setup_hdd_info_flash()  dialog_setup_hdd_info_simple()
101  {  {
102   local SHDD="$(echo $HDD | sed 's/\/dev\///')"   local SHDD="$(echo $HDD | sed 's/\/dev\///')"
103    
# Line 92  dialog_setup_hdd_info_flash() Line 111  dialog_setup_hdd_info_flash()
111   Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81   Bitte ${SHDD}1 als \Z3bootable\Zn markieren." 12 81
112  }  }
113    
114    dialog_setup_hdd_info_auto()
115    {
116     local SHDD="$(echo $HDD | sed 's/\/dev\///')"
117    
118     dialog \
119     --colors \
120     --title "[ Festplatten Partitionierung ]" \
121     --backtitle "${TITLE}" \
122     --ok-label "Weiter" \
123     --msgbox "\nAchtung!\n\
124     Alle Daten werden von der Disk [ \Z3${HDD}\Zn ] gelöscht!" 12 81
125    }
126    
127  dialog_setup_system_menu()  dialog_setup_system_menu()
128  {  {
129   local i   local i
# Line 102  dialog_setup_system_menu() Line 134  dialog_setup_system_menu()
134   --cancel-label "Abbrechen" \   --cancel-label "Abbrechen" \
135   --ok-label "Weiter" \   --ok-label "Weiter" \
136   --stdout \   --stdout \
137     --colors \
138   --menu "\nWaehlen Sie die Installations-Methode" 14 70 5 \   --menu "\nWaehlen Sie die Installations-Methode" 14 70 5 \
139   "1" "Normale IDE-Disk" \   "1" "Automatisches Setup (Empfohlen)" \
140   "2" "Flash-Speicher")   "" "" \
141     "" "\Z1Experten Modi:\Zn" \
142     "2" "Normale IDE-Disk (Manuell)" \
143     "3" "Flash-Speicher (Manuell)")
144   RES=$?   RES=$?
145   [[ ${RES} -eq 1 ]] && return 1   [[ ${RES} -eq 1 ]] && return 1
146   if [[ ${RES} -eq 0 ]]   if [[ ${RES} -eq 0 ]]
147   then   then
148   case "${i}" in   case "${i}" in
149           "1") run_install_normal ;;   "1") run_install_auto ;;
150   "2") run_install_flash ;;   "2") run_install_normal ;;
151     "3") run_install_simple ;;
152     "") dialog_setup_system_menu;;
153   esac   esac
154   fi   fi
155  }  }
156    
157  dialog_setup_hdd_found_manuell()  dialog_hardware_detection()
158  {  {
159   local i   local i
160     local hwtmp
161    
162   [[ ! -z ${installdevs} ]] && installdevs=""   if [ -x $(which mktemp &> /dev/null) ]
163     then
164     hwtmp="$(mktemp)"
165     else
166     hwtmp="/tmp/hwtmp.sh"
167     fi
168    
169   echo "dialog \\"  > /tmp/hddtmp.sh   run_hardware_detection_disks
  echo "--backtitle \"${TITLE}\" \\" >> /tmp/hddtmp.sh  
  echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh  
  echo "--stdout \\" >> /tmp/hddtmp.sh  
  echo "--colors \\" >> /tmp/hddtmp.sh  
  echo "--msgbox \"Gefundene Hardware:\n\n \\" >> /tmp/hddtmp.sh  
  echo " Festplatten:\n \\" >> /tmp/hddtmp.sh  
170    
171   if [[ ! -z ${scsidisks} ]]   echo "dialog \\"  > ${hwtmp}
172     echo "--backtitle \"${TITLE}\" \\" >> ${hwtmp}
173     echo "--ok-label \"Weiter\" \\" >> ${hwtmp}
174     echo "--stdout \\" >> ${hwtmp}
175     echo "--colors \\" >> ${hwtmp}
176     echo "--msgbox \"Gefundene Hardware:\n\n \\" >> ${hwtmp}
177     echo " Festplatten:\n \\" >> ${hwtmp}
178    
179     if [[ ! -z ${ALL_DISKS} ]]
180   then   then
181   for i in ${scsidisks}   for i in ${ALL_DISKS}
182   do   do
183   if [[ ${i} != ${cdromdev} ]]   echo " \\Z3${i}\\Zn\n \\" >> ${hwtmp}
  then  
  echo " \\Z7SCSI: \\Z3${i}\\Zn\n \\" >> /tmp/hddtmp.sh  
  installdevs="${installdevs} ${i}"  
  fi  
184   done   done
185   fi   fi
186    
187   if [[ ! -z ${idedisks} ]]   if [[ ! -z ${ALL_CDROMS} ]]
188   then   then
189   for i in ${idedisks}   echo " \n \\" >> ${hwtmp}
190     echo " CDROM Laufwerke:\n \\" >> ${hwtmp}
191     for i in ${ALL_CDROMS}
192   do   do
193   if [[ ${i} != ${cdromdev} ]]   echo " \\Z3${i}\\Zn\n \\" >> ${hwtmp}
  then  
  echo " \\Z7IDE:  \\Z3${i}\\Zn\n \\" >> /tmp/hddtmp.sh  
  installdevs="${installdevs} ${i}"  
  fi  
194   done   done
195   fi   fi
196    
197   if [[ ! -z ${cdromdev} ]]   # other devices
198     run_hardware_detection
199     case "${SPECIALDEVICE}" in
200     zotac*) echo " \n \\Z2Zotac Device erkannt.\\Zn \\" >> ${hwtmp} ;;
201     rangee) echo " \n \\Z2Rangee Device erkannt.\\Zn \\" >> ${hwtmp} ;;
202     maxdata) echo " \n \\Z2Maxdata Device erkannt.\\Zn \\" >> ${hwtmp} ;;
203     i845) echo " \n \\Z2Intel i845 Device erkannt.\\Zn \\" >> ${hwtmp} ;;
204     *) echo " \n \\ZnStandard Device erkannt.\\Zn \\" >> ${hwtmp} ;;
205     esac
206     if [[ ${FORMFACTOR} = laptop ]]
207   then   then
208   echo " \n \\" >> /tmp/hddtmp.sh   echo " \n \\ZnFormfactor Laptop, Powersave Modus 'ondemand' wird aktiviert.\\Zn \\" >> ${hwtmp}
209   echo " \\Z7andere Laufwerke:\n \\" >> /tmp/hddtmp.sh   fi
210   echo " CDROM: \\Z3${cdromdev}\\Zn\n \\" >> /tmp/hddtmp.sh  
211   fi   echo " \" 14 70" >> ${hwtmp}
212   echo " \" 13 70" >> /tmp/hddtmp.sh   chmod a+x ${hwtmp}
213   chmod a+x /tmp/hddtmp.sh   ${hwtmp}
214   /tmp/hddtmp.sh  
215     # remove tmp file
216     if [[ -f ${hwtmp} ]]
217     then
218     rm ${hwtmp}
219     fi
220  }  }
221    
222  dialog_setup_hdd_partitions_manuell()  dialog_setup_hdd_partitions_manuell()
223  {  {
224   local i   local i
225    
226   if [[ -z ${installdevs} ]]   if [[ -z ${ALL_DISKS} ]]
227   then   then
228   dialog \   dialog \
229   --backtitle "${TITLE}" \   --backtitle "${TITLE}" \
# Line 185  dialog_setup_hdd_partitions_manuell() Line 239  dialog_setup_hdd_partitions_manuell()
239   echo "--stdout \\" >> /tmp/hddtmp.sh   echo "--stdout \\" >> /tmp/hddtmp.sh
240   echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh   echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh
241    
242   for i in ${installdevs}   for i in ${ALL_DISKS}
243   do   do
244   echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh   echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh
245   done   done
# Line 203  dialog_setup_hdd_partitions_manuell() Line 257  dialog_setup_hdd_partitions_manuell()
257   fi   fi
258  }  }
259    
260  dialog_setup_hdd_partitions_manuell_flash()  dialog_setup_hdd_partitions_manuell_simple()
261    {
262     local i
263    
264     if [[ -z ${ALL_DISKS} ]]
265     then
266     dialog \
267     --backtitle "${TITLE}" \
268     --ok-label "Beenden" \
269     --msgbox "Kein geeignetes Laufwerk gefunden.\nDie Installation ist fehlgeschlagen." 6 70
270     exit 1
271     else
272    
273     echo "dialog \\" > /tmp/hddtmp.sh
274     echo "--backtitle \"${TITLE}\" \\" >> /tmp/hddtmp.sh
275     echo "--ok-label \"Weiter\" \\" >> /tmp/hddtmp.sh
276     echo "--cancel-label \"Beenden\" \\" >> /tmp/hddtmp.sh
277     echo "--stdout \\" >> /tmp/hddtmp.sh
278     echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh
279    
280     for i in ${ALL_DISKS}
281     do
282     echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh
283     done
284     echo -e "\n" >> /tmp/hddtmp.sh
285    
286     chmod a+x /tmp/hddtmp.sh
287     HDD="$(/tmp/hddtmp.sh)"
288     RES=$?
289     [[ ${RES} -eq 1 ]] && return 1
290     if [[ ${RES} -eq 0 ]]
291     then
292     dialog_setup_hdd_info_simple
293     setup_hdd_partitions_manuell_simple
294     fi
295     fi
296    }
297    
298    dialog_setup_hdd_partitions_auto()
299  {  {
300   local i   local i
301    
302   if [[ -z ${installdevs} ]]   if [[ -z ${ALL_DISKS} ]]
303   then   then
304   dialog \   dialog \
305   --backtitle "${TITLE}" \   --backtitle "${TITLE}" \
# Line 223  dialog_setup_hdd_partitions_manuell_flas Line 315  dialog_setup_hdd_partitions_manuell_flas
315   echo "--stdout \\" >> /tmp/hddtmp.sh   echo "--stdout \\" >> /tmp/hddtmp.sh
316   echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh   echo "--menu \"Installations Laufwerk auswaehlen:\" 10 70 3 \\" >> /tmp/hddtmp.sh
317    
318   for i in ${installdevs}   for i in ${ALL_DISKS}
319   do   do
320   echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh   echo "\"${i}\" \"\" \\" >> /tmp/hddtmp.sh
321   done   done
# Line 235  dialog_setup_hdd_partitions_manuell_flas Line 327  dialog_setup_hdd_partitions_manuell_flas
327   [[ ${RES} -eq 1 ]] && return 1   [[ ${RES} -eq 1 ]] && return 1
328   if [[ ${RES} -eq 0 ]]   if [[ ${RES} -eq 0 ]]
329   then   then
330   dialog_setup_hdd_info_flash   dialog_setup_hdd_info_auto
331   setup_hdd_partitions_manuell_flash   dialog_setup_hdd_create_partitions
332     setup_hdd_partitions_auto
333   fi   fi
334   fi   fi
335  }  }
336    
337    dialog_setup_hdd_create_partitions()
338    {
339     dialog \
340     --backtitle "${TITLE}" \
341     --infobox "Erstelle Disk Partitionen ..." 3 70
342    }
343    
344  dialog_setup_hdd_format()  dialog_setup_hdd_format()
345  {  {
346   dialog \   dialog \
# Line 322  dialog_main() Line 422  dialog_main()
422   if [[ ${RES} -eq 0 ]]   if [[ ${RES} -eq 0 ]]
423   then   then
424   case ${METHOD} in   case ${METHOD} in
425           "1") dialog_setup_system_menu ;;   "1") dialog_setup_system_menu ;;
426   "2") dialog_setup_hdd_found_manuell ;;   "2") dialog_hardware_detection ;;
427   "3") install_do_reboot ;;   "3") install_do_reboot ;;
428   "4") /bin/bash --login -i ;;   "4") /bin/bash --login -i ;;
429   esac   esac
# Line 334  dialog_main() Line 434  dialog_main()
434  #################################################  #################################################
435  # Install Komandos #  # Install Komandos #
436  #################################################  #################################################
437    run_hardware_detection()
438    {
439     local hwinfo
440    
441     hwinfo="$(hwinfo --bios --storage --pci --gfxcard --sys)"
442    
443     # check for special devices/clients:
444     # if zotac a zotac and the disk is a removeable device, then add rootdelay to kernelcmd
445     local removable=0
446     if [[ ! -z $(echo "${hwinfo}" | grep -i zotac) ]]
447     then
448     for i in /sys/block/[hs]d*/removable
449     do
450     if [[ $(< ${i}) = 1 ]]
451     then
452     removable=1
453     fi
454     done
455    
456     # only add this for grub legacy, grub2 detect these settings on its own
457     export GRUBLEGACYOPTS="rootdelay=8"
458     # there are two zotac types in the wild, nvidia based gfx and intel
459     if [[ ! -z $(echo "${hwinfo}" | grep -i nouveau) ]]
460     then
461     export SPECIALDEVICE="zotac_nvidia"
462     else
463     export SPECIALDEVICE="zotac_intel"
464     fi
465     fi
466    
467     # check for special devices/clients:
468     # if a rangee and disk ist smaller then 256mb move partion one block further ahead
469     if [[ ! -z $(echo "${hwinfo}" | grep -i CLE266) ]]
470     then
471     # for a rangee always define partion startblock +1
472     export FDISKPARTIONBELOW256MB="1"
473     export SPECIALDEVICE="rangee"
474     export GRUBLEGACYOPTS=""
475     fi
476    
477     # check for special devices/clients:
478     # check for maxdata / i810/ i815 Chipsets and disable KMS and use i810fb frambuffer
479     if [[ ! -z $(echo "${hwinfo}" | grep -i i810) ]] || [[ ! -z $(echo "${hwinfo}" | grep -i i815) ]]
480     then
481     export SPECIALDEVICE="maxdata"
482     export GRUBLEGACYOPTS=""
483     fi
484    
485     # check for i845 Chipsets and disable KMS and use 915 drm driver
486     if [[ ! -z $(echo "${hwinfo}" | grep -i i845) ]]
487     then
488     export SPECIALDEVICE="i845"
489     # unset default video=1024x768 opt or the drm driver breaks
490     export KERNELOPTS="quiet"
491     export GRUBLEGACYOPTS=""
492     # enable full kms support
493     export GRUB2GFXPAYLOAD="keep"
494     fi
495    
496     # check for radeon gfxcards
497     if [[ ! -z $(echo "${hwinfo}" | grep -i radeon) ]]
498     then
499     # enable full kms support
500     export GRUB2GFXPAYLOAD="keep"
501     fi
502    
503     # check for special devices/clients:
504     # check for laptops and activate cpufreq scaling
505     if [[ $(echo "${hwinfo}" | grep 'Formfactor:' | sed 's:.*Formfactor\:\ \"\(.*\)\":\1:') = laptop ]]
506     then
507     export FORMFACTOR="laptop"
508     export KERNELOPTS="${KERNELOPTS} cpufreq.governor=ondemand"
509     fi
510    }
511    
512    run_hardware_detection_disks()
513    {
514     local bootdev
515    
516     # all disks but exclude ramdisks
517     export ALL_DISKS=$(get_hwinfo disk | sed '/\/dev\/ram[0-9].*/d')
518     # remove the boot device from ALL_DISKS if it was an usbstick
519     if [[ $(grep '[[:space:]]/mnt/cdrom[[:space:]]' /proc/mounts | cut -d' ' -f3) != iso9660 ]]
520     then
521     bootdev="$(grep '[[:space:]]/mnt/cdrom[[:space:]]' /proc/mounts | cut -d' ' -f1 | sed 's:[0-9]::g')"
522     export ALL_DISKS=$(echo "${ALL_DISKS}" | grep -v "${bootdev}")
523     fi
524     export ALL_CDROMS="$(get_hwinfo cdrom)"
525    }
526    
527    hdd_size_below_256mb()
528    {
529     local hdd="$1"
530     local size
531     local retval
532     [[ -z ${hdd} ]] && die "Error: get_hdd_size() no \$hdd given!"
533    
534     size=$(fdisk -l ${hdd} | grep "Disk.*${hdd}" | sed 's:.*,\ \(.*\)\ byte.*:\1:')
535     if [[ ${size} -le 257000000 ]]
536     then
537     retval="0"
538     else
539     retval="1"
540     fi
541    
542     return "${retval}"
543    }
544    
545    setup_hdd_partitions_auto()
546    {
547     ROOTHDD="${HDD}1"
548    
549     # run this only if FDISKPARTITIONBELOW256MB is not already 1
550     if [[ ${FDISKPARTIONBELOW256MB} != 1 ]]
551     then
552     if hdd_size_below_256mb ${HDD}
553     then
554     FDISKPARTIONBELOW256MB=1
555     else
556     FDISKPARTIONBELOW256MB=0
557     fi
558     fi
559    
560     ## delete disk
561     dd if=/dev/zero of=${HDD} count=1 &> /dev/null || die
562    
563     if [[ ${FDISKPARTIONBELOW256MB} = 1 ]]
564     then
565     ## setup one bootable partition
566     #1. n= new disk
567     #2. p= primary disk
568     #3. 1= first partition
569     #4. 2= default sector start // small disk needs more space for grub2 mbr sector
570     #5. ''= defaul sector end
571     #6. a= bootable flag
572     #7. 1= boot flag for partition 1
573     #8. w= write/quit
574     fdisk ${HDD} &> /dev/null << EOF
575    n
576    p
577    1
578    2
579    
580    a
581    1
582    w
583    EOF
584     else
585     ## setup one bootable partition
586     #1. n= new disk
587     #2. p= primary disk
588     #3. 1= first partition
589     #4. ''= default sector start
590     #5. ''= defaul sector end
591     #6. a= bootable flag
592     #7. 1= boot flag for partition 1
593     #8. w= write/quit
594     fdisk ${HDD} &> /dev/null << EOF
595    n
596    p
597    1
598    
599    
600    a
601    1
602    w
603    EOF
604     fi
605    }
606    
607  setup_hdd_partitions_manuell()  setup_hdd_partitions_manuell()
608  {  {
609   BOOTHDD="${HDD}1"   BOOTHDD="${HDD}1"
# Line 344  setup_hdd_partitions_manuell() Line 614  setup_hdd_partitions_manuell()
614   cfdisk ${HDD} || die   cfdisk ${HDD} || die
615  }  }
616    
617  setup_hdd_partitions_manuell_flash()  setup_hdd_partitions_manuell_simple()
618  {  {
619   ROOTHDD="${HDD}1"   ROOTHDD="${HDD}1"
620    
# Line 359  setup_hdd_format() Line 629  setup_hdd_format()
629   mke2fs -j -q ${ROOTHDD} || die   mke2fs -j -q ${ROOTHDD} || die
630  }  }
631    
632  setup_hdd_format_flash()  setup_hdd_format_simple()
633  {  {
634   mke2fs -j -q ${ROOTHDD} || die   mke2fs -j -q ${ROOTHDD} || die
635  }  }
# Line 373  install_mount_rootfs() Line 643  install_mount_rootfs()
643   cd ${INSTALLPATH} || die   cd ${INSTALLPATH} || die
644  }  }
645    
646  install_mount_rootfs_flash()  install_mount_rootfs_simple()
647  {  {
648   mount ${ROOTHDD} ${INSTALLPATH} || die   mount ${ROOTHDD} ${INSTALLPATH} || die
649   install -d ${INSTALLPATH}/boot || die   install -d ${INSTALLPATH}/boot || die
# Line 387  install_system_image() Line 657  install_system_image()
657    
658  install_bootsector_chroot()  install_bootsector_chroot()
659  {  {
660   ### grubconf schreiben   local my_roothdd
661   source ${INSTALLPATH}/boot/kernelversion   local grubconf=${INSTALLPATH}/boot/grub/grub.conf
662     local grub2conf=/boot/grub/grub.cfg
663    
664   #for alx only   # check for grub2
665   if [ -e ${INSTALLPATH}/etc/alx_version ]   if [[ -f ${INSTALLPATH}/sbin/grub-mkconfig ]]
666   then   then
667   OLD_ALXVER="${ALXVER}"   # needed by grub-mkconfig on the first run
668   source ${INSTALLPATH}/etc/alx_version   if [[ ! -f ${INSTALLPATH}/boot/grub/video.lst ]]
669   KRNVER="ALX-${ALXVER}"   then
670   ALXVER="${OLD_ALXVER}"   install -m0644 ${INSTALLPATH}/lib/grub/*/video.lst ${INSTALLPATH}/boot/grub/video.lst || die
671   fi   fi
672    
673     # set kernelopts
674     if [[ -f ${INSTALLPATH}/etc/conf.d/grub ]]
675     then
676     sed -i "s:^\(export GRUB_CMDLINE_LINUX_DEFAULT=\).*:\1\"${KERNELOPTS}\":" ${INSTALLPATH}/etc/conf.d/grub || die
677     sed -i "s:^\(export GRUB_GFXPAYLOAD_LINUX=\).*:\1\"${GRUB2GFXPAYLOAD}\":" ${INSTALLPATH}/etc/conf.d/grub || die
678     else
679     echo "export GRUB_CMDLINE_LINUX_DEFAULT=\"${KERNELOPTS}\"" >  ${INSTALLPATH}/etc/conf.d/grub || die
680     echo "export GRUB_GFXPAYLOAD_LINUX=\"${GRUB2GFXPAYLOAD}\"" >>  ${INSTALLPATH}/etc/conf.d/grub || die
681     fi
682     echo 'grub-mkdevicemap' > ${INSTALLPATH}/root/.installrc || die
683     echo "LC_ALL=C grub-mkconfig -o ${grub2conf}  &> /dev/null" >> ${INSTALLPATH}/root/.installrc || die
684     echo "grub-install --no-floppy ${HDD} &> /dev/null" >> ${INSTALLPATH}/root/.installrc || die
685     echo "exit 0" >> ${INSTALLPATH}/root/.installrc || die
686    
687   [[ -z ${KRNVER} ]] && KRNVER="AutoSta_LX"   # grub-legacy
688   [[ -z ${KRNINITRD} ]] && KRNINITRD="initrd"   else
689     ### grubconf schreiben
690     source ${INSTALLPATH}/boot/kernelversion
691    
692   echo "default 0" > ${INSTALLPATH}/boot/grub/grub.conf || die   #for alx only
693   echo "timeout 0" >> ${INSTALLPATH}/boot/grub/grub.conf ||die   if [ -e ${INSTALLPATH}/etc/alx_version ]
694     then
695     OLD_ALXVER="${ALXVER}"
696     source ${INSTALLPATH}/etc/alx_version
697     KRNVER="ALX-${ALXVER}"
698     ALXVER="${OLD_ALXVER}"
699     fi
700    
701   echo -e "\ntitle=${KRNVER}" >> ${INSTALLPATH}/boot/grub/grub.conf || die   [[ -z ${KRNVER} ]] && KRNVER="AutoSta_LX"
702   echo "root (hd0,0)" >> ${INSTALLPATH}/boot/grub/grub.conf || die   [[ -z ${KRNINITRD} ]] && KRNINITRD="initrd"
703     [[ -z ${KRNIMG} ]] && KRNIMG="vmlinuz"
704   echo "kernel /boot/vmlinuz root=${ROOTHDD} quiet" >> ${INSTALLPATH}/boot/grub/grub.conf || die  
705   echo "initrd /boot/initrd" >> ${INSTALLPATH}/boot/grub/grub.conf || die   # uuid support
706     if is_uuid_supported
707   # bootsector schreiben chrooted schreiben (lfs/magellan)   then
708   cat > ${INSTALLPATH}/root/.bashrc << CHROOTEOF   my_roothdd="UUID=$(get_uuid ${ROOTHDD})"
709     else
710     my_roothdd="${ROOTHDD}"
711     fi
712    
713     : > ${grubconf} || die
714     echo "default 0" >> ${grubconf} || die
715     echo "timeout 3" >> ${grubconf} || die
716     # using current root password
717     echo "password --md5 $(cat ${INSTALLPATH}/etc/shadow | grep root | cut -d: -f2)"  >> ${grubconf} || die
718    
719     echo  >> ${grubconf} || die
720     echo "# normal boot" >> ${grubconf} || die
721     echo "title ${KRNVER}" >> ${grubconf} || die
722     echo "root (hd0,0)" >> ${grubconf} || die
723     echo "kernel /boot/${KRNIMG} root=${my_roothdd} ${KERNELOPTS} ${GRUBLEGACYOPTS}" >> ${grubconf} || die
724     if is_initrd_supported
725     then
726     echo "initrd /boot/${KRNINITRD}" >> ${grubconf} || die
727     fi
728    
729     echo >> ${grubconf} || die
730     echo "# admin boot" >> ${grubconf} || die
731     echo "title ${KRNVER} - Re-run hardware-detection" >> ${grubconf} || die
732     echo "lock"  >> ${grubconf} || die
733     echo "root (hd0,0)" >> ${grubconf} || die
734     echo "kernel /boot/${KRNIMG} root=${my_roothdd} ${KERNELOPTS} ${GRUBLEGACYOPTS} hardware-auto-detection" >> ${grubconf} || die
735     if is_initrd_supported
736     then
737     echo "initrd /boot/${KRNINITRD}" >> ${grubconf} || die
738     fi
739    
740     echo >> ${grubconf} || die
741     echo "title ${KRNVER} - Reset *all* local settings" >> ${grubconf} || die
742     echo "lock"  >> ${grubconf} || die
743     echo "root (hd0,0)" >> ${grubconf} || die
744     echo "kernel /boot/${KRNIMG} root=${my_roothdd} ${KERNELOPTS} ${GRUBLEGACYOPTS} alx-reset-settings" >> ${grubconf} || die
745     if is_initrd_supported
746     then
747     echo "initrd /boot/${KRNINITRD}" >> ${grubconf} || die
748     fi
749    
750     # bootsector schreiben chrooted schreiben (lfs/magellan)
751     cat > ${INSTALLPATH}/root/.installrc << CHROOTEOF
752  /usr/sbin/grub --no-floppy --batch << "EOF" 1> /dev/null 2> /dev/null  /usr/sbin/grub --no-floppy --batch << "EOF" 1> /dev/null 2> /dev/null
753  root (hd0,0)  root (hd0,0)
754  setup (hd0)  setup (hd0)
755  quit  quit
756  EOF  EOF
 echo "MODULES=\"ext3 amd74xx piix sis5513 via82cxxx\"" > /etc/conf.d/mkinitrd  
 mkinitrd -f /boot/$(readlink /boot/initrd) $(readlink /boot/vmlinuz | sed "s:kernel-::g")  
757  exit 0  exit 0
758  CHROOTEOF  CHROOTEOF
759     fi
760    
761   ## enters chroot   ## enters chroot
762   mount -t proc proc ${INSTALLPATH}/proc   mount -t proc proc ${INSTALLPATH}/proc
763   mount -t sysfs sysfs ${INSTALLPATH}/sys   mount -t sysfs sysfs ${INSTALLPATH}/sys
764   mount -o bind /dev ${INSTALLPATH}/dev   mount -o bind /dev ${INSTALLPATH}/dev
765   chroot ${INSTALLPATH} /bin/bash --rcfile /root/.bashrc -i   chroot ${INSTALLPATH} /bin/bash --rcfile /root/.installrc -i
766   umount ${INSTALLPATH}/proc   umount ${INSTALLPATH}/proc
767   umount ${INSTALLPATH}/sys   umount ${INSTALLPATH}/sys
768   umount ${INSTALLPATH}/dev   umount ${INSTALLPATH}/dev
769   rm ${INSTALLPATH}/root/.bashrc   rm ${INSTALLPATH}/root/.installrc
770    }
771    
772    is_initrd_supported()
773    {
774     # only generate initrds if the cmd exists
775     [[ -x ${INSTALLPATH}/sbin/mkinitrd ]] && return 0
776     return 1
777    }
778    
779    install_initrd_chroot()
780    {
781     # only generate initrds if the cmd exists
782     is_initrd_supported || return 0
783    
784     DISKMODS="sd_mod"
785     OLDPATAMODS="amd74xx piix sis5513 via82cxxx"
786     PATAMODS="ata_piix pata_amd pata_mpiix pata_oldpiix pata_sis pata_via"
787     SATAMODS="sata_via sata_sis sata_nv"
788     DRMMODS="i915 mga nouveau r128 radeon savage sis tdfx ttm via"
789     OTHERMODS=""
790     case ${SPECIALDEVICE} in
791     zotac_intel|i845) FBMODS=""; DRMMODS="i915" ;;
792     zotac_nvidia) FBMODS=""; DRMMODS="nouveau" ;;
793     rangee) FBMODS="" ;; ## fallback to vesafb, viafb does not run on all CLE266 boards
794     # not working with kms enabled drivers -> segfaults
795     #maxdata) FBMODS="i810fb" ;; ## check for maxdata / i810/ i815 Chipsets and disable KMS and use i810fb frambuffer
796     maxdata) FBMODS="" ;;
797     *) FBMODS="uvesafb" ;;
798     esac
799    
800     if [[ ${FORMFACTOR} = laptop ]]
801     then
802     OTHERMODS="acpi-cpufreq cpufreq_ondemand cpufreq_conservative cpufreq_powersave"
803     fi
804    
805     # install an appropriate uvesafb.conf
806     install -d ${INSTALLPATH}/etc/modprobe.d || die
807     echo "options uvesafb mode_option=1024x768-32@60 scroll=ywrap" > ${INSTALLPATH}/etc/modprobe.d/uvesafb.conf || die
808    
809     # install an appropriate viafb.conf
810     echo "options viafb viafb_mode=1024x768 viafb_refresh=60" > ${INSTALLPATH}/etc/modprobe.d/viafb.conf || die
811    
812     # install an appropriate i810fb.conf
813     echo "options i810fb xres=1024 yres=768 bpp=16 mtrr=1 hsync1=30 hsync2=62 vsync1=30 vsync2=60"  > ${INSTALLPATH}/etc/modprobe.d/i810fb.conf || die
814    
815     cat > ${INSTALLPATH}/root/.installrc << CHROOTEOF
816    echo "MODULES=\"${FORMAT_FILESYSTEM} ${DISKMODS} ${OLDATAMODS} ${PATAMODS} ${SATAMODS} ${DRMMODS} ${FBMODS} ${OTHERMODS}\"" > /etc/conf.d/mkinitrd
817    mkinitrd -f /boot/$(readlink /boot/initrd) $(readlink /boot/vmlinuz | sed "s:kernel-::g") > /dev/null
818    exit 0
819    CHROOTEOF
820    
821     ## enters chroot
822     mount -t proc proc ${INSTALLPATH}/proc
823     mount -t sysfs sysfs ${INSTALLPATH}/sys
824     mount -o bind /dev ${INSTALLPATH}/dev
825     chroot ${INSTALLPATH} /bin/bash --rcfile /root/.installrc -i
826     umount ${INSTALLPATH}/proc
827     umount ${INSTALLPATH}/sys
828     umount ${INSTALLPATH}/dev
829     rm ${INSTALLPATH}/root/.installrc
830    }
831    
832    is_uuid_supported()
833    {
834     if [[ -x $(which busybox.mkinitrd &> /dev/null) ]]
835     then
836     # only detect uuids if supported
837     if [[ ! -z $(busybox.mkinitrd | grep blkid) ]]
838     then
839     return 0
840     fi
841     fi
842    
843     return 1
844    }
845    
846    get_uuid()
847    {
848     local UUID
849     local SEC_TYPE
850     local TYPE
851    
852     local dev="$1"
853     [[ -z ${dev} ]] && die "no dev given"
854    
855     # check if given device is already an UUID
856     if [[ ${dev/UUID=/}x != ${dev}x ]]
857     then
858     eval "${dev}"
859     else
860     eval $(busybox.mkinitrd blkid ${dev} | grep "${dev}:" | sed 's/.*:\ //')
861     fi
862     echo "${UUID}"
863  }  }
864    
865  install_system_settings()  install_system_settings()
866  {  {
867   # schreibe fstab   # schreibe fstab
868   echo -e "${BOOTHDD}\t/boot\text3\tnoatime,noauto\t1 1" > ${INSTALLPATH}/etc/fstab || die   if is_uuid_supported
869   echo -e "${ROOTHDD}\t/\text3\tnoatime\t0 0" >> ${INSTALLPATH}/etc/fstab || die   then
870   echo -e "${SWAPHDD}\tswap\tswap\tpri=1\t0 0" >> ${INSTALLPATH}/etc/fstab || die   echo -e "UUID=$(get_uuid ${BOOTHDD})\t/boot\t${FORMAT_FILESYSTEM}\tnoatime,noauto\t1 1" > ${INSTALLPATH}/etc/fstab || die
871     echo -e "UUID=$(get_uuid ${ROOTHDD})\t/\t${FORMAT_FILESYSTEM}\tnoatime\t0 0" >> ${INSTALLPATH}/etc/fstab || die
872     else
873     echo -e "${BOOTHDD}\t/boot\t${FORMAT_FILESYSTEM}\tnoatime,noauto\t1 1" > ${INSTALLPATH}/etc/fstab || die
874     echo -e "${ROOTHDD}\t/\t${FORMAT_FILESYSTEM}\tnoatime\t0 0" >> ${INSTALLPATH}/etc/fstab || die
875     fi
876     # not needed busybox loads all with swapon -a, even if not mentioned in fstab
877     #echo -e "UUID='$(get_uuid ${SWAPHDD})'\tswap\tswap\tpri=1\t0 0" >> ${INSTALLPATH}/etc/fstab || die
878   echo -e "proc\t/proc\tproc\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die   echo -e "proc\t/proc\tproc\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die
879   echo -e "shm\t/dev/shm\ttmpfs\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die   echo -e "shm\t/dev/shm\ttmpfs\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die
880    
881     # install network config skeleton
882     install -m0644 ${INSTALLPATH}/etc/alxconfig-ng/skel/net/net.eth0 ${INSTALLPATH}/etc/conf.d/ || die
883    
884     # intel framebufer quirk
885     if [[ -e /proc/fb ]]
886     then
887     if [[ ! -z $(grep 'inteldrmfb' /proc/fb) ]]
888     then
889     fbdev=$(grep 'inteldrmfb' /proc/fb | sed 's:\([0-9]\).*:\1:')
890     if [[ ${fbdev} != 0 ]]
891     then
892     sed -i "s:^\(SPLASH_DEV=\).*:\1\"/dev/fb${fbdev}\":" ${INSTALLPATH}/etc/splash/splash.conf || die
893     fi
894     fi
895     fi
896  }  }
897    
898  install_system_settings_flash()  install_system_settings_simple()
899  {  {
900   # schreibe fstab   # schreibe fstab
901   echo -e "${ROOTHDD}\t/\text3\tnoatime\t0 0" > ${INSTALLPATH}/etc/fstab || die   if is_uuid_supported
902     then
903     echo -e "UUID=$(get_uuid ${ROOTHDD})\t/\t${FORMAT_FILESYSTEM}\tnoatime\t0 0" > ${INSTALLPATH}/etc/fstab || die
904     else
905     echo -e "${ROOTHDD}\t/\t${FORMAT_FILESYSTEM}\tnoatime\t0 0" > ${INSTALLPATH}/etc/fstab || die
906     fi
907   echo -e "proc\t/proc\tproc\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die   echo -e "proc\t/proc\tproc\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die
908   echo -e "shm\t/dev/shm\ttmpfs\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die   echo -e "shm\t/dev/shm\ttmpfs\tdefaults\t0 0" >> ${INSTALLPATH}/etc/fstab || die
909  }  }
# Line 460  install_umount_rootfs() Line 916  install_umount_rootfs()
916   swapoff ${SWAPHDD} || die   swapoff ${SWAPHDD} || die
917  }  }
918    
919  install_umount_rootfs_flash()  install_umount_rootfs_simple()
920  {  {
921   cd /   cd /
922   umount ${INSTALLPATH} || die   umount ${INSTALLPATH} || die
# Line 477  install_do_reboot() Line 933  install_do_reboot()
933    
934  run_install_normal()  run_install_normal()
935  {  {
936   dialog_setup_hdd_found_manuell   dialog_hardware_detection
937    
938   dialog_setup_hdd_partitions_manuell   dialog_setup_hdd_partitions_manuell
939   dialog_setup_hdd_format   dialog_setup_hdd_format
# Line 485  run_install_normal() Line 941  run_install_normal()
941   install_mount_rootfs   install_mount_rootfs
942   (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
943    
  dialog_install_bootsector  
  install_bootsector_chroot  
   
944   dialog_install_settings   dialog_install_settings
945   sleep 1   sleep 1
946   install_system_settings   install_system_settings
947     install_initrd_chroot
948    
949     dialog_install_bootsector
950     install_bootsector_chroot
951    
952   install_umount_rootfs   install_umount_rootfs
953   dialog_install_successful   dialog_install_successful
954  }  }
955    
956  run_install_flash()  run_install_simple()
957  {  {
958   dialog_setup_hdd_found_manuell   dialog_hardware_detection
959    
960   dialog_setup_hdd_partitions_manuell_flash   dialog_setup_hdd_partitions_manuell_simple
961   dialog_setup_hdd_format   dialog_setup_hdd_format
962   setup_hdd_format_flash > /dev/null   setup_hdd_format_simple > /dev/null
963   install_mount_rootfs_flash   install_mount_rootfs_simple
964   (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
965    
966     dialog_install_settings
967     sleep 1
968     install_system_settings_simple
969     install_initrd_chroot
970    
971   dialog_install_bootsector   dialog_install_bootsector
972   install_bootsector_chroot   install_bootsector_chroot
973    
974     install_umount_rootfs_simple
975     dialog_install_successful
976    }
977    
978    run_install_auto()
979    {
980     dialog_hardware_detection
981    
982     dialog_setup_hdd_partitions_auto
983     dialog_setup_hdd_format
984     setup_hdd_format_simple > /dev/null
985     install_mount_rootfs_simple
986     (install_system_image > /tmp/install.log) 2> /tmp/install_errors.log | dialog_install_meter | dialog_install_system_image
987    
988   dialog_install_settings   dialog_install_settings
989   sleep 1   sleep 1
990   install_system_settings_flash   install_system_settings_simple
991   install_umount_rootfs_flash   install_initrd_chroot
992    
993     dialog_install_bootsector
994     install_bootsector_chroot
995    
996     install_umount_rootfs_simple
997   dialog_install_successful   dialog_install_successful
998  }  }
999    

Legend:
Removed from v.527  
changed lines
  Added in v.6817