iPXE discussion forum

Full Version: Problems building under Ubuntu 14.10
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello all,

First off I'm an IPXE newbie so forgive me if this turns out to be a stupid question. I looked around in the forum and did not see any mentio of it (not that I could locate searching). Huh

I am trying to rebuild ipxe to embed a simple wmiboot script. First I used the GIT version and ran into errors, then I tried the 'release version from the Ubunto catalogs and had different problems. I can succesfully build the version from the catalogs, which is older, but it does not work (I get errors 'failed load ldlinux.c32' from iso and 'Boot Error' from the liso version). I am trying to boot them in a Hyper-V VM to test them before going to a remote site to setup a classroom with stations using ipxe. The version I can build from the ubuntu catalogs is 1.0.0+git-20131111.c3d1e78 (builds but will not boot). The prebuilt iso downloaded from your site boots fine on the same VM.

When I try to build the GIT version I get what appear to be errors from the bash scripts geniso and gendsk (also tried a floppy image). I get these errors from the GIT version whether I EMBED the script or not.

The errors I get from the GIT version are:
after issuing make bin/ipxe.iso Sad

[GENISO] bin/ipxe.iso
util/geniso: line 4: $'\r' command not found
util/geniso: line 5: syntax error near unexpected element ┬┤$'\r''
'til/geniso: line 5: ┬┤function help() {
arch/i386/Makefile.pcbios:59: recipe for target 'bin/ipxe.iso
' failed
make: ***[bin/ipxe.iso] Error 2

NOTE: I am working on a spanish language system and 'translating' the messages so they may not be precise. on third line the element starts with a backtick, but my international keyboard may not have generated it correctly.

Any ideas ?
It could be an issue with the parsing of output from some commands ending up in Spanish instead of English because of your locale. It would be useful to try and set your language to English, reboot the machine and try to compile the git version again. I'm going to assume that you have all of the dependencies listed in http://ipxe.org/download already installed and working.
Just tried that. The error messages are now in English so I can tell you that 'unexpected element' should say 'unexpected token' but otherwise the error is identical..

Rechecked dependencies and everything seems fine.

Which sepcific ZLIB package is required ?
(installed zlib1g-bin and dev but not sure if you require more)

Thanks !
Still stuck on building, but I needed to move the project forward so I built with rom-o-matic. That got me through the build and the scripting overall, but when I went to test it on our equipment I found it could not detect the NIC. The NIC is old but fairly common its an Intel Pro 100/VE.

Is there anything we can do buldwise or any branch we can use to get this NIC to operate ?


SMALL UPDATE> Managed to build with some debug flags, but nothing is being detected from what I can tell. Is there a debug flag for the device detection process or for bus scanning ?

I see the debug info on other machines *intel:3,eepro:3,eepro100:3
For the moment I'm talking to myself, but I found the build issue. Switched from our international source archive to main in Ubuntu, apt-get updated sources, updated bintools and now it builds. Seems to be a glitch in something internationalized, not enough to change the region, language, must also switch source to pull main versions.. Then it builds.

I have run squarely into another problem though.

I build the ISO but whin I boot I get
Failed to load ldlinux.c32

Suspect I am choking on a syslinux issue, possibly from working on an x64 machine *will try installing 32 bit syslinux ??
For those of you working under Ubuntu 14.10

Took several steps to fix this, I'm not a Linux person primarily so they may not all be needed.
apt-get install syslinux-dev
apt-get install syslinux-stuff
apt-get install syslinux-legacy

Followed by a small change to geniso script in src/util. That script assumes that the ldlinux.c32 file requiered by syslinux 6.x.x will exist in the same folder as the binary. Under Ubuntu 14.10 it does not. Since the script does a blind copy and presents no messages when it is not found you get a succesful build that will not boot rendering it useless. The lack of any error message or failure sent me all over the place looking. It is possible none of the additional packages are even needed.

I changed the geniso script line to look like this and got my builds working(Literal path reference):
LDLINUX_C32=/usr/lib/syslinux/modules/bios/ldlinux.c32

Thanks Robin for your assistance.. Maybe the lack of an error message or failure merits a bug report ??
Reference URL's