diff options
author | Brian Bidulock | 2022-06-19 15:08:56 -0600 |
---|---|---|
committer | Brian Bidulock | 2022-06-19 15:08:56 -0600 |
commit | c9c66fa958c55dfc8c6e77205b5b4075e5a3f173 (patch) | |
tree | 7c2ca6552d95d7022daeacc234c3b365c52c45ba | |
download | aur-c9c66fa958c55dfc8c6e77205b5b4075e5a3f173.tar.gz |
initial version
-rw-r--r-- | .SRCINFO | 22 | ||||
-rw-r--r-- | PKGBUILD | 27 | ||||
-rw-r--r-- | boot.msg | 14 | ||||
-rwxr-xr-x | mkpxelinux | 90 | ||||
-rw-r--r-- | mkpxelinux.conf | 36 | ||||
-rw-r--r-- | options.msg | 6 |
6 files changed, 195 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..100ab8139a26 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,22 @@ +pkgbase = mkpxelinux + pkgdesc = Advanced, modular network pxe boot image creation utility + pkgver = 2013.10 + pkgrel = 3 + url = http://www.archlinux.org/ + arch = any + license = GPL + depends = mkinitcpio + depends = tftp-hpa + depends = syslinux + optdepends = dhcp: for dhcp server usage + backup = etc/mkpxelinux.conf + source = boot.msg + source = mkpxelinux + source = mkpxelinux.conf + source = options.msg + md5sums = f4a30ab94fdc1974f4fbdfd7235ca512 + md5sums = 90dd31f0501df4defdbe975368446f27 + md5sums = 1b6aa3d4e77d6d7a61590d242d34a138 + md5sums = b211c5f7e30d2ee36cde20f71aa3f2b8 + +pkgname = mkpxelinux diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..835c3dd2f390 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,27 @@ +# Maintainer : Brian Bidulock <bidulock@openss7.org> +# Contributor : Tobias Powalowski <tpowa@archlinux.org> + +pkgname=mkpxelinux +pkgver=2013.10 +pkgrel=3 +pkgdesc="Advanced, modular network pxe boot image creation utility" +arch=(any) +license=('GPL') +url="http://www.archlinux.org/" +depends=('mkinitcpio' 'tftp-hpa' 'syslinux') +backup=(etc/mkpxelinux.conf) +optdepends=('dhcp: for dhcp server usage') +source=('boot.msg' 'mkpxelinux' 'mkpxelinux.conf' 'options.msg') + +package() +{ + cd "$srcdir/" + install -D -m755 mkpxelinux "$pkgdir/usr/bin/mkpxelinux" + install -D -m644 mkpxelinux.conf "$pkgdir/etc/mkpxelinux.conf" + install -D -m644 boot.msg "$pkgdir/usr/share/mkpxelinux/boot.msg" + install -D -m644 options.msg "$pkgdir/usr/share/mkpxelinux/options.msg" +} +md5sums=('f4a30ab94fdc1974f4fbdfd7235ca512' + '90dd31f0501df4defdbe975368446f27' + '1b6aa3d4e77d6d7a61590d242d34a138' + 'b211c5f7e30d2ee36cde20f71aa3f2b8') diff --git a/boot.msg b/boot.msg new file mode 100644 index 000000000000..f8e8fa1f7526 --- /dev/null +++ b/boot.msg @@ -0,0 +1,14 @@ + + +------------------------------------------------------------------------------ +Arch Linux +PXELINUX BOOT +created with 'mkpxelinux' written by Tobias Powalowski <tpowa@archlinux.org> + +Press ENTER or type 'arch' to boot image. + +If you wish to change your defaults to boot into your existing system, +type 'vmlinuz initrd=initrd.img <any_other_boot_option>' +Use the F2 key for troubleshooting and options. +------------------------------------------------------------------------------ + diff --git a/mkpxelinux b/mkpxelinux new file mode 100755 index 000000000000..7459eaa77f54 --- /dev/null +++ b/mkpxelinux @@ -0,0 +1,90 @@ +#! /bin/sh +# Created by Tobias Powalowski <tpowa@archlinux.org> +# Settings +APPNAME=$(basename "${0}") +CONFIG="/etc/mkpxelinux.conf" + +usage () +{ + echo "${APPNAME}: usage" + echo"" + echo " -d=INSTALLDIR Your INSTALLDIR overwrites config default" + echo " -c=CONFIG Use CONFIG file. default: /etc/mkpxelinux.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=*) CUSTOMINSTALLDIR="$(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 + +. "${CONFIG}" +# export for mkinitcpio +[ -n "${APPENDBOOTMESSAGE}" ] && export APPENDBOOTMESSAGE +[ -n "${APPENDOPTIONSBOOTMESSAGE}" ] && export APPENDOPTIONSBOOTMESSAGE + +! [ "${CUSTOMINSTALLDIR}" = "" ] && INSTALLDIR=${CUSTOMINSTALLDIR} + +if [ "${INSTALLDIR}" = "" ]; then + echo "ERROR: No INSTALLDIR name specified, please use the -d option" + exit 1 +fi + +if ! [ $UID -eq 0 ]; then + echo "ERROR: only works when run as root!" + exit 1 +fi + +! [ -e ${INSTALLDIR} ] && echo "No ${INSTALLDIR} found!" && exit 1 +export TEMPDIR=${NFSROOTDIR} +export INSTALLDIR=${INSTALLDIR} +export RUNPROGRAM="${APPNAME}" +[ "${BOOTMESSAGE}" = "" ] && export BOOTMESSAGE=$(mktemp /tmp/bootmessage.XXXX) +[ "${OPTIONSBOOTMESSAGE}" = "" ] && export OPTIONSBOOTMESSAGE=$(mktemp /tmp/optionsbootmessage.XXXX) +export USEKERNEL=${VERSION} +# begin script +# create default +echo ":: Creating pxelinux default config file ..." +mkdir -p ${INSTALLDIR}/pxelinux.cfg +if [ "${PXELINUX_DEFAULT}" = "" ]; then + [ -e ${INSTALLDIR}/pxelinux.cfg/default ] && rm ${INSTALLDIR}/pxelinux.cfg/default + echo "prompt ${PROMPT}" >> ${INSTALLDIR}/pxelinux.cfg/default + echo "timeout ${TIMEOUT}" >> ${INSTALLDIR}/pxelinux.cfg/default + echo "display boot.msg" >> ${INSTALLDIR}/pxelinux.cfg/default + echo "F1 boot.msg" >> ${INSTALLDIR}/pxelinux.cfg/default + echo "F2 options.msg" >> ${INSTALLDIR}/pxelinux.cfg/default + echo "default arch" >> ${INSTALLDIR}/pxelinux.cfg/default + echo "label arch" >> ${INSTALLDIR}/pxelinux.cfg/default + echo "kernel vmlinuz" >> ${INSTALLDIR}/pxelinux.cfg/default + echo "append initrd=initrd.img ${KERNEL_BOOT_OPTIONS}" >> ${INSTALLDIR}/pxelinux.cfg/default +else + sed "s|@@PROMPT@@|${PROMPT}|g;s|@@TIMEOUT@@|${TIMEOUT}|g;s|@@KERNEL_BOOT_OPTIONS@@|${KERNEL_BOOT_OPTIONS}|g" \ + ${PXELINUX_DEFAULT} > ${INSTALLDIR}/pxelinux.cfg/default +fi +[ ! -s ${INSTALLDIR}/pxelinux.cfg/default ] && echo "No pxelinux default config found" && exit 1 +echo ":: Calling mkinitcpio CONFIG=${MKINITCPIO_CONFIG} KERNEL=${VERSION} ..." +# generate initramdisk +echo ":: Creating initramdisk ..." + mkinitcpio -c ${MKINITCPIO_CONFIG} -k ${VERSION} -g ${INSTALLDIR}/initrd.img +echo ":: Using ${KERNEL} as image kernel ..." + install -m644 ${KERNEL} ${INSTALLDIR}/vmlinuz +echo ":: Installing message files to ${INSTALLDIR} ..." + install -m644 ${BOOTMESSAGE} ${INSTALLDIR}/boot.msg + install -m644 ${OPTIONSBOOTMESSAGE} ${INSTALLDIR}/options.msg + [ ! -s ${INSTALLDIR}/boot.msg ] && echo 'ERROR:no boot.msg found, aborting!' && exit 1 + [ ! -s ${INSTALLDIR}/options.msg ] && echo 'ERROR:no options.msg found, aborting!' && exit 1 +echo ":: Installing PXELINUX to ${INSTALLDIR} ..." + install -m644 /usr/lib/syslinux/bios/pxelinux.0 ${INSTALLDIR}/pxelinux.0 && echo "Installation completed." diff --git a/mkpxelinux.conf b/mkpxelinux.conf new file mode 100644 index 000000000000..f2427486f098 --- /dev/null +++ b/mkpxelinux.conf @@ -0,0 +1,36 @@ +# Created by Tobias Powalowski <tpowa@archlinux.org> +# config file of mkpxelinux + +# DEFAULT kernel boot options like ip=:::::eth0:dhcp 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 arch kernel +KERNEL="/boot/vmlinuz-linux" + +# boot message files +BOOTMESSAGE="/usr/share/mkpxelinux/boot.msg" +OPTIONSBOOTMESSAGE="/usr/share/mkpxelinux/options.msg" + +#pxelinux default config file to use +PXELINUX_DEFAULT="" + +# Prompt on boot, 1=yes 0=no +PROMPT="1" + +# Timeout, 30 seconds to fix usb keyboard issues +# 0 means wait for prompt +TIMEOUT="300" + +# Installdir of tftp, default location +INSTALLDIR="/var/tftpboot" + +# Nfsrootdir, for hooks that might need it +NFSROOTDIR="" diff --git a/options.msg b/options.msg new file mode 100644 index 000000000000..3324145e1a08 --- /dev/null +++ b/options.msg @@ -0,0 +1,6 @@ +------------------------------------------------------------------------------ +Arch Linux 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. +------------------------------------------------------------------------------
\ No newline at end of file |