From 62d50ee54faf59a724198721e25ec75f65ce6731 Mon Sep 17 00:00:00 2001 From: ppatpat Date: Fri, 8 May 2015 07:44:37 -0600 Subject: [PATCH 1/5] Update miso If we retrieved the squashed files by HTTP we consider the "device" is found.... --- initcpio/hooks/miso | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/initcpio/hooks/miso b/initcpio/hooks/miso index b09c0ea..9ebff4c 100644 --- a/initcpio/hooks/miso +++ b/initcpio/hooks/miso @@ -126,6 +126,12 @@ testdevice() { } probedevice() { + + if [[ -n "${ip}" && -n "${miso_http_srv}" && -f "${isomounts}" ]]; then + found="yes" + return + fi + # Loop device test every second up to some limit if [ "x${usbdelay}" != "x" ]; then waittime=${usbdelay} From 3020585e3325c84687a018184d9b7211af27664f Mon Sep 17 00:00:00 2001 From: ppatpat Date: Fri, 8 May 2015 07:46:27 -0600 Subject: [PATCH 2/5] Create miso_pxe_common --- initcpio/hooks/miso_pxe_common | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 initcpio/hooks/miso_pxe_common diff --git a/initcpio/hooks/miso_pxe_common b/initcpio/hooks/miso_pxe_common new file mode 100644 index 0000000..d8ac709 --- /dev/null +++ b/initcpio/hooks/miso_pxe_common @@ -0,0 +1,50 @@ +# vim: set ft=sh: + +run_hook () { + local i net_mac bootif_mac bootif_dev + # These variables will be parsed from /tmp/net-*.conf generated by ipconfig + local DEVICE + local IPV4ADDR IPV4BROADCAST IPV4NETMASK IPV4GATEWAY IPV4DNS0 IPV4DNS1 + local HOSTNAME DNSDOMAIN NISDOMAIN ROOTSERVER ROOTPATH + local filename + # /tmp/net-*.conf + + if [[ -n "${ip}" ]]; then + if [[ -n "${BOOTIF}" ]]; then + bootif_mac=${BOOTIF#01-} + bootif_mac=${bootif_mac//-/:} + for i in /sys/class/net/*/address; do + read net_mac < ${i} + if [[ "${bootif_mac}" == "${net_mac}" ]]; then + bootif_dev=${i#/sys/class/net/} + bootif_dev=${bootif_dev%/address} + break + fi + done + ip="${ip}::${bootif_dev}" + fi + + # setup network and save some values + ipconfig "ip=${ip}" + + . /tmp/net-*.conf + + pxeserver=${ROOTSERVER} + + # setup DNS resolver + if [[ "${IPV4DNS0}" != "0.0.0.0" ]]; then + echo "nameserver ${IPV4DNS0}" > /etc/resolv.conf + fi + if [[ "${IPV4DNS1}" != "0.0.0.0" ]]; then + echo "nameserver ${IPV4DNS1}" >> /etc/resolv.conf + fi + fi +} + +run_latehook () { + [[ -z "${copy_resolvconf}" ]] && copy_resolvconf="y" + + if [[ "${copy_resolvconf}" != "n" && -f /etc/resolv.conf ]]; then + cp /etc/resolv.conf /new_root/etc/resolv.conf + fi +} From 3d86ee39cde1ce2aab442a6995a19b87ebdce315 Mon Sep 17 00:00:00 2001 From: ppatpat Date: Fri, 8 May 2015 07:47:11 -0600 Subject: [PATCH 3/5] Create miso_pxe_http --- initcpio/hooks/miso_pxe_http | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 initcpio/hooks/miso_pxe_http diff --git a/initcpio/hooks/miso_pxe_http b/initcpio/hooks/miso_pxe_http new file mode 100644 index 0000000..cf699c8 --- /dev/null +++ b/initcpio/hooks/miso_pxe_http @@ -0,0 +1,47 @@ +# vim: set ft=sh: + +run_hook() { + if [[ -n "${ip}" && -n "${miso_http_srv}" ]]; then + + miso_http_srv=$(eval echo ${miso_http_srv}) + [[ -z "${miso_http_spc}" ]] && miso_http_spc="75%" + + mount_handler="miso_pxe_http_mount_handler" + fi +} + +# Fetch a file with CURL +# +# $1 URL +# $2 Destination directory inside httpspace/${misobasedir} +_curl_get() { + local _url="${1}" + local _dst="${2}" + + msg ":: Downloading '${_url}'" + if ! curl -L -f -o "${_dst}" --create-dirs "${_url}"; then + echo "ERROR: Downloading '${_url}'" + echo " Falling back to interactive prompt" + echo " You can try to fix the problem manually, log out when you are finished" + launch_interactive_shell + fi +} + +miso_pxe_http_mount_handler () { + newroot="${1}" + + _curl_get "${miso_http_srv}${misobasedir}/isomounts" "${isomounts}" + + msg ":: Retrieving images" + while read img imgarch mountpoint type kernelarg; do + # check if this line is a comment (starts with #) + [ "${img#"#"}" != "${img}" ] && continue + + [ "$imgarch" != "$arch" ] && continue + + _curl_get "${miso_http_srv}${misobasedir}/${img}" "/bootmnt/${misobasedir}/${img}" + + done < "${isomounts}" + + miso_mount_handler ${newroot} +} From 66ffc146cbac60d27327e460efb07452b0a53d00 Mon Sep 17 00:00:00 2001 From: ppatpat Date: Fri, 8 May 2015 08:22:11 -0600 Subject: [PATCH 4/5] Create miso_pxe_common --- initcpio/inst/miso_pxe_common | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 initcpio/inst/miso_pxe_common diff --git a/initcpio/inst/miso_pxe_common b/initcpio/inst/miso_pxe_common new file mode 100644 index 0000000..1f458c1 --- /dev/null +++ b/initcpio/inst/miso_pxe_common @@ -0,0 +1,12 @@ +#!/bin/bash + +build() { + + add_runscript +} + +help() { +cat< Date: Fri, 8 May 2015 08:23:03 -0600 Subject: [PATCH 5/5] Create miso_pxe_http --- initcpio/inst/miso_pxe_http | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 initcpio/inst/miso_pxe_http diff --git a/initcpio/inst/miso_pxe_http b/initcpio/inst/miso_pxe_http new file mode 100644 index 0000000..287f185 --- /dev/null +++ b/initcpio/inst/miso_pxe_http @@ -0,0 +1,12 @@ +#!/bin/bash + +build() { + + add_runscript +} + +help() { +cat<