Public bug reported: bootparamd in all releases of Ubuntu & Debian is the original v0.17 from http://ftp.linux.org.uk/pub/linux/Networking/netkit/ dated 2000-07-31
As many people have discovered, this version treats all return parameters as ipv4 addresses. Anything else is silently discarded. This doesn't work for jumpstarting Solaris clients, which use other types of parameters for setting boot time options. The client loops around asking for the root= options, doesn't get what it wants, so keeps asking, complaining rpc error. FreeBSD patched in 2005 https://lists.freebsd.org/pipermail/freebsd- questions/2005-August/096289.html and added multiple network support in 2010 https://lists.freebsd.org/pipermail/freebsd- bugs/2010-February/038347.html There is also another patch to allow wildcard hostnames http://web.mit.edu/ops/services/boot/bootparamd-wildcard.patch Gentoo have their own version of the jumpstart patch, perhaps with cleaner code, https://github.com/ClusterHQ/gentoo/blob/master/usr/portage/net-misc /netkit-bootparamd/files/0.17-jumpstart.patch The following patch works, but it would be nice to have one that combines jumpstart, wildcard and multi-homed, and uses clean, updated coding style, more debug output since bootparam is tricky work, and fixes warn_unused_result compile time warnings. Any capable and competent coders up for the small task? diff rpc.bootparamd.orig/rpc.bootparamd.c rpc.bootparamd.new/rpc.bootparamd.c 137,143c137,150 < path[sizeof(path)-1] = 0; < he = gethostbyname(hostname); < if (!he) goto failed; < bcopy( he->h_addr, &res.server_address.bp_address_u.ip_addr, 4); < res.server_name = hostname; < res.server_path = path; < res.server_address.address_type = IP_ADDR_TYPE; --- > path[sizeof(path)-1] = '\0'; > if (hostname[0] != '\0') { > he = gethostbyname(hostname); > if (!he) goto failed; > bcopy( he->h_addr, &res.server_address.bp_address_u.ip_addr, 4); > res.server_name = hostname; > res.server_path = path; > res.server_address.address_type = IP_ADDR_TYPE; > } > else { > res.server_name[0] = '\0'; > res.server_path = path; > bzero(&res.server_address.bp_address_u.ip_addr,4); > } ** Affects: netkit-bootparamd (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1610184 Title: bootparamd does not support parameters other than ipv4 addresses To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/netkit-bootparamd/+bug/1610184/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs