From c8a1fe3fc83899adfc44c355fe90e0706bea4f18 Mon Sep 17 00:00:00 2001 From: Andreas Loibl Date: Sat, 5 Mar 2011 23:53:28 +0100 Subject: [PATCH] added burg support --- backend/modules/common/01-partition | 15 ++++++++++ backend/modules/common/07-boot | 51 +++++++++++++++++++++++++++++++--- debian/changelog | 6 ++++ src/acritoxinstaller.cpp | 33 +++++++++++++++++----- src/mainwizard.ui | 13 --------- 5 files changed, 92 insertions(+), 26 deletions(-) diff --git a/backend/modules/common/01-partition b/backend/modules/common/01-partition index e642fcc..a2bdbc8 100644 --- a/backend/modules/common/01-partition +++ b/backend/modules/common/01-partition @@ -139,6 +139,21 @@ function list_bootloader_targets() esac } +# Synopsis: list_bootloaders +# +# This function lists all available bootloaders +function list_bootloaders() +{ + for bl in burg grub + do + [ -x /usr/sbin/$bl-setup ] || continue + case $bl in + burg) echo "BURG - Brand-new Universal loadeR from GRUB";; + grub) echo "GRUB - GRand Unified Bootloader";; + esac + done +} + function parted_list() { LC_ALL=C TERM=xterm expect -c 'spawn parted '$1'; expect "(parted)"; send -- "unit s\r"; expect "(parted)"; send -- "print free\r"; expect "(parted)"; send -- "quit\r"; exit' diff --git a/backend/modules/common/07-boot b/backend/modules/common/07-boot index 1b347c7..1f1c490 100644 --- a/backend/modules/common/07-boot +++ b/backend/modules/common/07-boot @@ -40,8 +40,9 @@ install_bootmanager_to_target() [ "$(ls $TARGET/boot/vmlinuz-*|wc -l)" = "1" ] || ln -sf vmlinuz-$BOOT_RUNNING_KERNEL $TARGET/boot/vmlinuz install_grub ;; - lilo) - # lilo not implemented + burg) + [ "$(ls $TARGET/boot/vmlinuz-*|wc -l)" = "1" ] || ln -sf vmlinuz-$BOOT_RUNNING_KERNEL $TARGET/boot/vmlinuz + install_burg ;; esac } @@ -99,6 +100,43 @@ install_grub() return 0 } +install_burg() +{ + rm -f $TARGET/boot/vmlinuz $TARGET/boot/System.map $TARGET/boot/initrd.img + + # install burg + INSTALL_TO=$(get_config bootloadertarget) + mkdir -p "$TARGET/boot/burg" + burg-install --recheck --no-floppy --root-directory=$TARGET "$INSTALL_TO" &>/dev/null || \ + burg-install --force --recheck --no-floppy --root-directory=$TARGET "$INSTALL_TO" &>/dev/null + + # create device.map and save it to target + export device_map=$TARGET/tmp/device.map + get_device_map > $device_map + cat $device_map > $TARGET/boot/burg/device.map + rm -f $device_map + + # preseed burg-pc with install-target + for path in /dev/disk/by-id/* + do + [ -e "$path" ] || continue + if [ "$(readlink -f "$path")" = "$(readlink -f "$INSTALL_TO")" ]; then + echo "burg-pc burg-pc/install_devices multiselect $path" | chroot_it debconf-set-selections &>/dev/null + break + fi + done + + write_kernel_img_conf + + #sed -i 's/\(GRUB_CMDLINE_LINUX=\).*/\1"quiet vga=791 splash"/' $TARGET/etc/default/grub + + # update burg + chroot_it update-burg &>/dev/null + DEBIAN_FRONTEND=noninteractive chroot_it dpkg-reconfigure burg-pc &>/dev/null + + return 0 +} + function get_device_map() { [ -z "$(get_config device_map)" ] && set_config device_map "$(create_device_map)" @@ -107,7 +145,10 @@ function get_device_map() function create_device_map() { - grub-mkdevicemap -n -m /tmp/acritoxinstaller.device.map + case "$(get_config bootloader)" in + grub) grub-mkdevicemap -n -m /tmp/acritoxinstaller.device.map;; + burg) burg-mkdevicemap -n -m /tmp/acritoxinstaller.device.map;; + esac map="$( Sat, 05 Mar 2011 23:35:00 +0100 + acritoxinstaller (0.1.49) unstable; urgency=low * preseed grub-pc with install-target diff --git a/src/acritoxinstaller.cpp b/src/acritoxinstaller.cpp index c1db99a..10f3511 100644 --- a/src/acritoxinstaller.cpp +++ b/src/acritoxinstaller.cpp @@ -475,11 +475,8 @@ void AcritoxInstaller::next() /********************************** Bootloader **********************************/ else if(this->currentPage() == wpBootloader) { - if(bootloader->currentItem() == 0) - backend->exec("set_config bootloader grub"); - else if(bootloader->currentItem() == 1) - backend->exec("set_config bootloader lilo"); - + backend->exec("set_config bootloader "+bootloader->currentText().section(" ",0,0).lower()); + if(bootDisk->isChecked()) backend->exec("set_config bootdisk 1"); else @@ -871,10 +868,30 @@ void AcritoxInstaller::pageChanged() /********************************** Bootloader **********************************/ else if(this->currentPage() == wpBootloader) { + backend->exec("list_bootloaders"); + backend->wait(); + QStringList interfacesList = QStringList::split( "\n", backend->getOutput() ); + QString oldBootloader; + if(bootloader->count()) + oldBootloader=bootloader->currentText().section(" ",0,0).lower(); + + bootloader->clear(); + for ( QStringList::Iterator it = interfacesList.begin(); it != interfacesList.end(); ++it ) { + QString line = *it; + bootloader->insertItem( line ); + } + bootloader->setCurrentItem(0); + for( int i = 0; i < bootloader->count(); i++) + { + if(bootloader->text(i).section(" ",0,0).lower() != oldBootloader) continue; + bootloader->setCurrentItem(i); + break; + } + backend->exec("list_bootloader_targets"); backend->wait(); - QStringList interfacesList = QStringList::split( "\n", backend->getOutput() ); + interfacesList = QStringList::split( "\n", backend->getOutput() ); QString oldBootloaderTarget; if(bootloaderTarget->count()) oldBootloaderTarget=bootloaderTarget->currentText().section(" ",1,1); @@ -962,8 +979,8 @@ void AcritoxInstaller::pageChanged() QString bootloader_description; if(bootloader == "grub") bootloader_description = i18n("%1 will be installed to %2").arg("GRUB").arg(bootloadertarget); - else if(bootloader == "lilo") - bootloader_description = i18n("%1 will be installed to %2").arg("Lilo").arg(bootloadertarget); + else if(bootloader == "burg") + bootloader_description = i18n("%1 will be installed to %2").arg("BURG").arg(bootloadertarget); confirmInstallationList->insertItem(AcriListInfo::AcriListInfo(0,i18n("Bootloader"),bootloader_description,"run")); } } diff --git a/src/mainwizard.ui b/src/mainwizard.ui index 3104d62..678ae39 100644 --- a/src/mainwizard.ui +++ b/src/mainwizard.ui @@ -777,22 +777,9 @@ check the checkbox and press <b>Next</b>.</p> - - - GRUB - - - - - Lilo - - bootloader - - false - -- 1.7.2.3