From 82d845ccae6b7ac696fb54e7b79bb07f0403d813 Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Sat, 1 Jun 2013 03:00:41 -0300 Subject: mksyslinux: add new package to libre repo for rebranding --- libre/mksyslinux/PKGBUILD | 26 +++++++ libre/mksyslinux/boot.msg | 15 ++++ libre/mksyslinux/mksyslinux | 143 +++++++++++++++++++++++++++++++++++++++ libre/mksyslinux/mksyslinux.conf | 34 ++++++++++ libre/mksyslinux/options.msg | 6 ++ 5 files changed, 224 insertions(+) create mode 100644 libre/mksyslinux/PKGBUILD create mode 100644 libre/mksyslinux/boot.msg create mode 100755 libre/mksyslinux/mksyslinux create mode 100644 libre/mksyslinux/mksyslinux.conf create mode 100644 libre/mksyslinux/options.msg (limited to 'libre/mksyslinux') diff --git a/libre/mksyslinux/PKGBUILD b/libre/mksyslinux/PKGBUILD new file mode 100644 index 000000000..d963d19d3 --- /dev/null +++ b/libre/mksyslinux/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 186874 2013-05-31 13:27:18Z tpowa $ +# Maintainer : Tobias Powalowski + +pkgname=mksyslinux +pkgver=2013.05 +pkgrel=1 +pkgdesc="Advanced, modular syslinux boot image creation utility (Parabola rebranded)" +arch=(any) +license=('GPL') +url="https://parabolagnulinux.org/" +depends=('mkinitcpio' 'syslinux' 'pciutils') +backup=(etc/mksyslinux.conf) +source=('boot.msg' 'mksyslinux' 'mksyslinux.conf' 'options.msg') + +package() +{ + cd "$srcdir/" + install -D -m755 mksyslinux "$pkgdir/usr/bin/mksyslinux" + install -D -m644 mksyslinux.conf "$pkgdir/etc/mksyslinux.conf" + install -D -m644 boot.msg "$pkgdir/usr/share/mksyslinux/boot.msg" + install -D -m644 options.msg "$pkgdir/usr/share/mksyslinux/options.msg" +} +md5sums=('6a269fc5b58c7bcc6688efeaa2075606' + 'fa5443022923fa0e2ebbbe127be621d6' + '67e7c685e8ed30e723187b28a5e21b96' + 'b211c5f7e30d2ee36cde20f71aa3f2b8') diff --git a/libre/mksyslinux/boot.msg b/libre/mksyslinux/boot.msg new file mode 100644 index 000000000..15476f2bd --- /dev/null +++ b/libre/mksyslinux/boot.msg @@ -0,0 +1,15 @@ + + +------------------------------------------------------------------------------ +Parabola GNU/Linux-libre +SYSLINUX BOOT +created with 'mksyslinux' by Tobias Powalowski +rebranded for Parabola by André Silva + +Press ENTER or type 'parabola' to boot image. + +If you wish to change your defaults to boot into your existing system, +type 'vmlinuz initrd=initrd.img ' +Use the F2 key for troubleshooting and options. +------------------------------------------------------------------------------ + diff --git a/libre/mksyslinux/mksyslinux b/libre/mksyslinux/mksyslinux new file mode 100755 index 000000000..4db771f83 --- /dev/null +++ b/libre/mksyslinux/mksyslinux @@ -0,0 +1,143 @@ +#! /bin/sh +# Created by Tobias Powalowski +# Settings +APPNAME=$(basename "${0}") +CONFIG="/etc/mksyslinux.conf" +export TEMPDIR=$(mktemp /tmp/mksyslinux.XXX) +TMPDIR=$(mktemp -d /tmp/mksyslinux-image.XXX) +BOOTDIRNAME=boot/syslinux + +usage () +{ + echo "${APPNAME}: usage" + echo "WRITING TO DEVICE:" + echo "- PREPARATION: Your device must have a bootable first partition in FAT16 format!" + echo "- ATTENTION: The MBR of your DEVICE will be overwritten! You have been warned!" + echo "" + echo "CREATING AN IMAGE FILE:" + echo "- For creating an image file use the -i=IMAGEFILE switch" + echo "- use 'dd if= of=' to write to your device afterwards." + echo "" + echo "PARAMETERS:" + echo " -d=DEVICE Your DEVICE first partition from /dev/xxx tree to install" + echo " -i=IMAGENAME Your IMAGENAME" + echo " -c=CONFIG Use CONFIG file. default: /etc/mksyslinux.conf" + echo " -h This message." + exit 1 +} + +[ "$1" == "" ] && usage && exit 1 + + +while [ $# -gt 0 ]; do + case $1 in + -c=*|--c=*) CONFIG="$(echo $1 | awk -F= '{print $2;}')" ;; + -d=*|--d=*) DEVICE="$(echo $1 | awk -F= '{print $2;}')" ;; + -i=*|--i=*) IMAGENAME="$(echo $1 | awk -F= '{print $2;}')" ;; + -h|--h|?) usage ;; + *) usage ;; + esac + shift +done + +if [ ! -f "${CONFIG}" ]; then + echo "config file '${CONFIG}' cannot be found, aborting..." + exit 1 +fi + +if [ "${IMAGENAME}" = "" ]; then + if [ "${DEVICE}" = "" ]; then + echo "ERROR: No DEVICE name specified, please use the -d option" + exit 1 + fi +fi + +if ! [ $UID -eq 0 ]; then + echo "ERROR: only works when run as root!" + exit 1 +fi + +. "${CONFIG}" +# export for mkinitcpio +[ -n "${APPENDBOOTMESSAGE}" ] && export APPENDBOOTMESSAGE +[ -n "${APPENDBOOTMESSAGE_SYSLINUX}" ] && export APPENDBOOTMESSAGE_SYSLINUX +[ -n "${APPENDOPTIONSBOOTMESSAGE}" ] && export APPENDOPTIONSBOOTMESSAGE + +MBRDEVICE="$(echo ${DEVICE} | sed -e 's/[0-9]//g')" + +export RUNPROGRAM="${APPNAME}" +[ "${BOOTMESSAGE}" = "" ] && export BOOTMESSAGE=$(mktemp /tmp/bootmessage.XXXX) +[ "${OPTIONSBOOTMESSAGE}" = "" ] && export OPTIONSBOOTMESSAGE=$(mktemp /tmp/optionsbootmessage.XXXX) +export USEKERNEL=${VERSION} +# begin script +[ -e ${TEMPDIR} ] && rm -r ${TEMPDIR} +mkdir -p ${TEMPDIR}/$BOOTDIRNAME +echo ":: Mounting ${DEVICE} ..." +if ! [ "${IMAGENAME}" = "" ]; then + modprobe loop +else + mount ${DEVICE} ${TEMPDIR} || exit 1 +fi +# prepare syslinux bootloader +install -m755 /usr/lib/syslinux/isolinux.bin ${TEMPDIR}/${BOOTDIRNAME}/isolinux.bin +for i in /usr/lib/syslinux/*.c32; do + install -m644 $i ${TEMPDIR}/${BOOTDIRNAME}/$(basename $i) +done +install -m644 /usr/share/hwdata/pci.ids ${TEMPDIR}/${BOOTDIRNAME}/pci.ids + +# create syslinux.cfg +echo ":: Creating syslinux.cfg ..." +if [ "${SYSLINUXCFG}" = "" ]; then + [ -e ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg ] && rm ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg + echo "prompt ${PROMPT}" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg + echo "timeout ${TIMEOUT}" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg + echo "display boot.msg" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg + echo "F1 boot.msg" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg + echo "F2 options.msg" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg + echo "default parabola" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg + echo "label parabola" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg + echo "kernel /boot/vmlinuz" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg + echo "append initrd=/boot/initrd.img ${KERNEL_BOOT_OPTIONS}" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg +else + sed "s|@@PROMPT@@|${PROMPT}|g;s|@@TIMEOUT@@|${TIMEOUT}|g;s|@@KERNEL_BOOT_OPTIONS@@|${KERNEL_BOOT_OPTIONS}|g" \ + ${SYSLINUXCFG} > ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg +fi +[ ! -s ${TEMPDIR}/syslinux.cfg ] && echo "No syslinux.cfg found" && exit 1 +echo ":: Calling mkinitcpio CONFIG=${MKINITCPIO_CONFIG} KERNEL=${VERSION} ..." +# generate initramdisk +echo ":: Creating initramdisk ..." + mkinitcpio -c ${MKINITCPIO_CONFIG} -k ${VERSION} -g ${TEMPDIR}/boot/initrd.img +echo ":: Using ${KERNEL} as image kernel ..." + install -m644 ${KERNEL} ${TEMPDIR}/boot/vmlinuz + install -m644 ${BOOTMESSAGE} ${TEMPDIR}/${BOOTDIRNAME}/boot.msg + install -m644 ${OPTIONSBOOTMESSAGE} ${TEMPDIR}/${BOOTDIRNAME}/options.msg + [ ! -s ${TEMPDIR}/${BOOTDIRNAME}/boot.msg ] && echo 'ERROR:no boot.msg found, aborting!' && exit 1 + [ ! -s ${TEMPDIR}/${BOOTDIRNAME}/options.msg ] && echo 'ERROR:no options.msg found, aborting!' && exit 1 +if ! [ "${IMAGENAME}" = "" ]; then + # ext2 overhead's upper bound is 6% + # empirically tested up to 1GB + rootsize=$(du -bs ${TEMPDIR}|cut -f1) + IMGSZ=$(( (${rootsize}*106)/100/512 + 1)) # image size in sectors + # create the filesystem image file + dd if=/dev/zero of="${IMAGENAME}" bs=512 count="${IMGSZ}" + # create a filesystem on the image + mkfs.vfat "${IMAGENAME}" + mount -o loop ${IMAGENAME} ${TMPDIR} || exit 1 + cp -r "${TEMPDIR}"/* "$TMPDIR" + umount ${TMPDIR} +else + echo ":: Unmounting ${DEVICE} ..." + umount ${TEMPDIR} || exit 1 +fi +if ! [ "${IMAGENAME}" = "" ]; then + echo ":: Installing SYSLINUX on ${IMAGENAME} ..." + syslinux ${IMAGENAME} && echo "Installation completed." +else + echo ":: Installing MBR on ${MBRDEVICE} ..." + cat ${MBR} > ${MBRDEVICE} + echo ":: Installing SYSLINUX on ${DEVICE} ..." + syslinux -o offset ${DEVICE} && echo "Installation completed." +fi +# clean /tmp +rm -r ${TEMPDIR} +! [ ${IMAGENAME} = "" ] && rm -r ${TMPDIR} diff --git a/libre/mksyslinux/mksyslinux.conf b/libre/mksyslinux/mksyslinux.conf new file mode 100644 index 000000000..ab2d4978a --- /dev/null +++ b/libre/mksyslinux/mksyslinux.conf @@ -0,0 +1,34 @@ +# Created by Tobias Powalowski +# Rebranded for Parabola by André Silva +# config file of mksyslinux + +# DEFAULT kernel boot options like root=/dev/sda3 etc. +# add your root= option, if you boot from a disk device +# and don't want to add it by hand on each boot +KERNEL_BOOT_OPTIONS="" + +# mkinitcpio config file, defaulted to stock config file +MKINITCPIO_CONFIG="/etc/mkinitcpio.conf" + +# kernel version, defaulted to build for runtime kernel +VERSION="$(uname -r)" + +# kernel image, defaulted to stock libre kernel +KERNEL="/boot/vmlinuz-linux-libre" + +# boot message files +BOOTMESSAGE="/usr/share/mksyslinux/boot.msg" +OPTIONSBOOTMESSAGE="/usr/share/mksyslinux/options.msg" + +syslinux.cfg file to use +SYSLINUXCFG="" + +# Prompt on boot, 1=yes 0=no +PROMPT="1" + +# Timeout, 30 seconds to fix usb keyboard issues +# 0 means wait for prompt +TIMEOUT="300" + +# default MBR +MBR="/usr/lib/syslinux/mbr.bin" diff --git a/libre/mksyslinux/options.msg b/libre/mksyslinux/options.msg new file mode 100644 index 000000000..16c6b2eda --- /dev/null +++ b/libre/mksyslinux/options.msg @@ -0,0 +1,6 @@ +------------------------------------------------------------------------------ +Parabola GNU/Linux-libre options and troubleshooting: + +- If your system hangs during the boot process, any combinations of the + boot options noapic acpi=off pci=routeirq nosmp nomsi may be useful. +------------------------------------------------------------------------------ -- cgit v1.2.3-54-g00ecf From 3859b8bf65ecc310a6a2ea14496be3c3a913333b Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Sat, 1 Jun 2013 03:19:52 -0300 Subject: mksyslinux: update md5sum --- libre/mksyslinux/PKGBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'libre/mksyslinux') diff --git a/libre/mksyslinux/PKGBUILD b/libre/mksyslinux/PKGBUILD index d963d19d3..16d595f12 100644 --- a/libre/mksyslinux/PKGBUILD +++ b/libre/mksyslinux/PKGBUILD @@ -20,7 +20,7 @@ package() install -D -m644 boot.msg "$pkgdir/usr/share/mksyslinux/boot.msg" install -D -m644 options.msg "$pkgdir/usr/share/mksyslinux/options.msg" } -md5sums=('6a269fc5b58c7bcc6688efeaa2075606' - 'fa5443022923fa0e2ebbbe127be621d6' - '67e7c685e8ed30e723187b28a5e21b96' - 'b211c5f7e30d2ee36cde20f71aa3f2b8') +md5sums=('287aad9693ca8061495e248c41ba43a7' + 'd958575945e4ce8a9002bd056e2f14be' + '1f1e2d80e28b087e4103282bc5c44071' + 'ae0007d6679b5a575b2a9e5ac3664baf') -- cgit v1.2.3-54-g00ecf From 8da103e14072dc4cc04231cbca851293f7185e74 Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Wed, 5 Jun 2013 12:17:57 -0300 Subject: mksyslinux-2013.06-1: updating version --- libre/mksyslinux/PKGBUILD | 8 ++++---- libre/mksyslinux/mksyslinux | 7 ++++--- libre/mksyslinux/mksyslinux.conf | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) (limited to 'libre/mksyslinux') diff --git a/libre/mksyslinux/PKGBUILD b/libre/mksyslinux/PKGBUILD index 16d595f12..a64f141fd 100644 --- a/libre/mksyslinux/PKGBUILD +++ b/libre/mksyslinux/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 186874 2013-05-31 13:27:18Z tpowa $ +# $Id: PKGBUILD 187120 2013-06-04 06:46:39Z tpowa $ # Maintainer : Tobias Powalowski pkgname=mksyslinux -pkgver=2013.05 +pkgver=2013.06 pkgrel=1 pkgdesc="Advanced, modular syslinux boot image creation utility (Parabola rebranded)" arch=(any) @@ -21,6 +21,6 @@ package() install -D -m644 options.msg "$pkgdir/usr/share/mksyslinux/options.msg" } md5sums=('287aad9693ca8061495e248c41ba43a7' - 'd958575945e4ce8a9002bd056e2f14be' - '1f1e2d80e28b087e4103282bc5c44071' + '0a9fd93356b5d98ab386f28bc849b808' + '15742e47e40a46491694b4b7680d4e38' 'ae0007d6679b5a575b2a9e5ac3664baf') diff --git a/libre/mksyslinux/mksyslinux b/libre/mksyslinux/mksyslinux index 4db771f83..96ad45133 100755 --- a/libre/mksyslinux/mksyslinux +++ b/libre/mksyslinux/mksyslinux @@ -71,13 +71,14 @@ export RUNPROGRAM="${APPNAME}" export USEKERNEL=${VERSION} # begin script [ -e ${TEMPDIR} ] && rm -r ${TEMPDIR} -mkdir -p ${TEMPDIR}/$BOOTDIRNAME +mkdir -p ${TEMPDIR} echo ":: Mounting ${DEVICE} ..." if ! [ "${IMAGENAME}" = "" ]; then modprobe loop else mount ${DEVICE} ${TEMPDIR} || exit 1 fi +mkdir -p ${TEMPDIR}/${BOOTDIRNAME} # prepare syslinux bootloader install -m755 /usr/lib/syslinux/isolinux.bin ${TEMPDIR}/${BOOTDIRNAME}/isolinux.bin for i in /usr/lib/syslinux/*.c32; do @@ -102,7 +103,7 @@ else sed "s|@@PROMPT@@|${PROMPT}|g;s|@@TIMEOUT@@|${TIMEOUT}|g;s|@@KERNEL_BOOT_OPTIONS@@|${KERNEL_BOOT_OPTIONS}|g" \ ${SYSLINUXCFG} > ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg fi -[ ! -s ${TEMPDIR}/syslinux.cfg ] && echo "No syslinux.cfg found" && exit 1 +[ ! -s ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg ] && echo "No syslinux.cfg found" && exit 1 echo ":: Calling mkinitcpio CONFIG=${MKINITCPIO_CONFIG} KERNEL=${VERSION} ..." # generate initramdisk echo ":: Creating initramdisk ..." @@ -136,7 +137,7 @@ else echo ":: Installing MBR on ${MBRDEVICE} ..." cat ${MBR} > ${MBRDEVICE} echo ":: Installing SYSLINUX on ${DEVICE} ..." - syslinux -o offset ${DEVICE} && echo "Installation completed." + syslinux -t offset ${DEVICE} && echo "Installation completed." fi # clean /tmp rm -r ${TEMPDIR} diff --git a/libre/mksyslinux/mksyslinux.conf b/libre/mksyslinux/mksyslinux.conf index ab2d4978a..cfbfc49d8 100644 --- a/libre/mksyslinux/mksyslinux.conf +++ b/libre/mksyslinux/mksyslinux.conf @@ -20,7 +20,7 @@ KERNEL="/boot/vmlinuz-linux-libre" BOOTMESSAGE="/usr/share/mksyslinux/boot.msg" OPTIONSBOOTMESSAGE="/usr/share/mksyslinux/options.msg" -syslinux.cfg file to use +# syslinux.cfg file to use SYSLINUXCFG="" # Prompt on boot, 1=yes 0=no -- cgit v1.2.3-54-g00ecf