[ipxe-devel] uncompressed (patchable) image?

Alessandro Salvatori sandr8 at gmail.com
Thu Nov 10 02:03:25 UTC 2011


yeah, the uncompressed images are working like a charm :-)

i kept one single driver i am interested in: rtl8139.

so if i build undi.iso, i get an image capable of booting oven any UNDI
interface.

if instead i build ipxe.iso, i get an image capable of booting on any
net/driver/* interface. which in my case is just rtl8139.

would there be a way to build a single image that works for rtl8139, or as
a fallback any UNDI interface?

thank you!
-alessandro-

alessandro at localhost   ~/iPXE/src  gmake bin/ipxe.iso.info
Elements             : ipxe
Prefix               : iso
Drivers              : rtl8139
ROM name             : ipxe
Media                : iso

PCI vendor           :
PCI device           :

LD driver symbols    : obj_rtl8139
LD ID symbols        : pci_vendor_id=0 pci_device_id=0
LD entry point       : _iso_start

LD target flags      :  -u _iso_start --defsym check__iso_start=_iso_start
  -u obj_rtl8139 --defsym check_obj_rtl8139=obj_rtl8139   -u obj_config
--defsym check_obj_config=obj_config  --defsym pci_vendor_id=0 --defsym
pci_device_id=0 -e _iso_start

Debugging objects    :
Replaced objects     :
alessandro at localhost   ~/iPXE/src  gmake bin/undi.iso.info
Elements             : undi
Prefix               : iso
Drivers              : undi
ROM name             : undi
Media                : iso

PCI vendor           :
PCI device           :

LD driver symbols    : obj_undi
LD ID symbols        : pci_vendor_id=0 pci_device_id=0
LD entry point       : _iso_start

LD target flags      :  -u _iso_start --defsym check__iso_start=_iso_start
  -u obj_undi --defsym check_obj_undi=obj_undi   -u obj_config --defsym
check_obj_config=obj_config  --defsym pci_vendor_id=0 --defsym
pci_device_id=0 -e _iso_start

Debugging objects    :
Replaced objects     :


-Alessandro-
 Here i am, A young man,
 A crashing computer program,
 Here is a pen, write out my name...

(from: The Servant - Orchestra)



On Tue, Nov 8, 2011 at 15:49, Alessandro Salvatori <sandr8 at gmail.com> wrote:

> more on my progress... i suspected these images might have been just too
> large. so with the help of ruby-elf and/or objdump, i stripped the source
> tree from anything i don't necessarily need. this way i got an image that
> is less than 1/10th of the size and that seems to come up... :)
>
> thank you, thank you!
> -Alessandro-
>  Here i am, A young man,
>  A crashing computer program,
>  Here is a pen, write out my name...
>
> (from: The Servant - Orchestra)
>
>
>
> On Tue, Nov 8, 2011 at 15:02, Alessandro Salvatori <sandr8 at gmail.com>wrote:
>
>> actually i hit the very same issues without patching the embedded script
>> image... seems that the problem is with uncompressed images...
>>
>> thanks!
>> -Alessandro-
>>  Here i am, A young man,
>>  A crashing computer program,
>>  Here is a pen, write out my name...
>>
>> (from: The Servant - Orchestra)
>>
>>
>>
>> On Tue, Nov 8, 2011 at 14:54, Alessandro Salvatori <sandr8 at gmail.com>wrote:
>>
>>> the #define COMPRESS 0 seems to do the trick, and after that I can
>>> easily patch the embedded script.
>>>
>>> is there some integrity check? the patched ipxe.iso prints a bunch of
>>> colored garbage on the console and then reboots. i assume it has a bogus
>>> bzImage kernel container and that might be doing some checksumming.
>>>
>>> the ipxe.dsk instead hangs after emitting "Loading ROM image" and 89
>>> dots...
>>>
>>> i guess if the ipxe.dsk worked, it could be used as an eltorito image
>>> for an otherwise empty cdrom, hence bypassing any issue with the bzImage
>>> container in the iso?
>>>
>>> thanks!
>>>
>>> -Alessandro-
>>>  Here i am, A young man,
>>>  A crashing computer program,
>>>  Here is a pen, write out my name...
>>>
>>> (from: The Servant - Orchestra)
>>>
>>>
>>>
>>> On Tue, Nov 8, 2011 at 03:43, Michael Brown <mbrown at fensystems.co.uk>wrote:
>>>
>>>> On Tuesday 08 Nov 2011 10:52:33 Alessandro Salvatori wrote:
>>>> > would it be easily possible to create non-zbin bootable images (rom,
>>>> iso,
>>>> > usb or dsk)?
>>>> >
>>>> > i was thinking of having a script as an embedded image, and having
>>>> > placeholders in it that could be "patched" with the desired values
>>>> just in
>>>> > time.
>>>> >
>>>> > alas, the compression gets in the way of easily patching the values
>>>> in...
>>>> > but the fact that my dsk image takes only 80kB out of 1440 available
>>>> makes
>>>> > me wonder if i couldn't do without the compression :-)
>>>>
>>>> There's no easily-accessible way to create non-compressed images, but
>>>> you can
>>>> try hacking it by setting
>>>>
>>>>  #define COMPRESS 0
>>>>
>>>> in arch/i386/prefix/libprefix.S.  This code path isn't used very often,
>>>> and may
>>>> not be functional.
>>>>
>>>> A cleaner solution would probably be to add code to lkrnprefix.S to
>>>> allow iPXE
>>>> to pick up and use an initrd image as though it were an embedded image.
>>>>  There
>>>> are some complications in doing this, primarily relating to memory
>>>> allocation.
>>>> (initrd images are typically placed at the top of memory, which is
>>>> exactly
>>>> where iPXE will try to install itself, so there's a good chance that
>>>> iPXE will
>>>> overwrite the initrd image.)  This would give you a solution for .iso
>>>> images
>>>> (which are based upon .lkrn images); similar schemes could be devised
>>>> for
>>>> other image formats.
>>>>
>>>> Michael
>>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20111109/3c853f08/attachment.htm>


More information about the ipxe-devel mailing list