[ipxe-devel] iPXE fail to execute dhcp on old system

Thomas Miletich thomas.miletich at gmail.com
Mon Aug 19 16:04:09 UTC 2013


Thanks.
Those numbers tell us that iPXE allocates the memory for the card at a
little over 255MB, which is what we would expect on a 256MB machine (iPXE
tries to locate itself as high in memory as possible).


It might be the case that your machine, for some reason, doesn't like us
using that memory address. As a test/workaround, you can open the file

ipxe/src/arch/i386/core/relocate.c
find the line that says:

#define MAX_ADDR (0xfff00000UL)

and replace it with:
#define MAX_ADDR (128 * 1024 * 1024)

This will force iPXE to stay just under 128MB in memory. Please let me know
if it still freezes with those changes applied.

Additionally a log from iPXE built with DEBUG=memmap *without* the above
modifications applied would be very helpful.
The memmap debugging output will show us what the BIOS tells us if that
memory region is supposed to be usable or not.

Thanks
Thomas


On Mon, Aug 19, 2013 at 5:24 PM, Arnaud Adamy <arnaud.adamy at free.fr> wrote:

>   With ipxe.lkrn it freeze and the debug output is:
> 3c90c: 0xca3f0 bus: 0ff58230
>
> Consequently, I haven’t test the ISO.
>
> Arnaud
>
>  *From:* Thomas Miletich <thomas.miletich at gmail.com>
> *Sent:* Monday, August 19, 2013 4:00 PM
> *To:* Arnaud Adamy <arnaud.adamy at free.fr>
> *Subject:* Re: [ipxe-devel] iPXE fail to execute dhcp on old system
>
>    Ok, thanks for testing.
>
> Just thinking out loudly:
> We are most likely seeing some sort of memory corruption that is caused by
> the card. We give the card a memory address where we want it to put the
> received packets. As soon as the card has the address, iPXE freezes. If
> there's no network cable connected the card can't receive anything.
> Therefore it doesn't write to that memory address, and iPXE doesn't crash.
>
> I can't think of any reason why the memory address we give to the card
> could be invalid though. Normally the grub4dos iso emulation code stays in
> memory, even after the iso booted. Maybe grub4dos doesn't indicate it's
> used memory in the memory map, or iPXE somehow fails to recognize this.
>
>
> To verify this theory I have attached two files.
> Please boot ipxe.lkrn directly from grub4dos, or any other bootloader of
> your choice. This will eliminate any issues that might be caused by the iso
> emulation.
> This version of iPXE will print some values after you open the interface.
> Please let me know what those values are, and if iPXE freezes.
>
> The second file is another iso which will also print the same values as
> the lkrn file. If iPXE crashes with the lkrn file there is no point in
> testing this iso also. If iPXE didn't crash in the first test, please run
> this iso also, and again tell me the values it prints after ifopen.
>
> That way we can compare if the memory addresses differ in both runs.
>
> Thanks again for all your testing efforts!
> Thomas
>
>
> On Mon, Aug 19, 2013 at 3:27 PM, Arnaud Adamy <arnaud.adamy at free.fr>wrote:
>
>>   Humm, is is freezing the same way as before with normal boot and by
>> doing ifopen from the command line.
>>
>> Arnaud
>>
>>  *From:* Thomas Miletich <thomas.miletich at gmail.com>
>> *Sent:* Monday, August 19, 2013 3:06 PM
>>  *To:* Arnaud Adamy <arnaud.adamy at free.fr>
>> *Subject:* Re: [ipxe-devel] iPXE fail to execute dhcp on old system
>>
>>   Here it is. Maybe you could use another way to load iPXE, to avoid
>> having to burn another CD?
>>
>> floppy disk, use another, working, NIC to chainload iPXE, etc?
>>
>>
>> On Mon, Aug 19, 2013 at 2:57 PM, Arnaud Adamy <arnaud.adamy at free.fr>wrote:
>>
>>>   with http://git.ipxe.org/people/meteger/ipxe.git I got:
>>> fatal: http://git.ipxe.org/people/meteger/ipxe.git/info/refs not valid:
>>> is this a git repository?
>>> I can access many git repos without errors , so to avoid wasting time
>>> with it, please can you send a iso image built from your source and join it
>>> as attached file?
>>> Thank you.
>>>
>>> Arnaud
>>>
>>>  *From:* Thomas Miletich <thomas.miletich at gmail.com>
>>> *Sent:* Monday, August 19, 2013 2:49 PM
>>>  *To:* Arnaud Adamy <arnaud.adamy at free.fr>
>>> *Cc:* ipxe-devel at lists.ipxe.org
>>> *Subject:* Re: [ipxe-devel] iPXE fail to execute dhcp on old system
>>>
>>>
>>>
>>>
>>> On Mon, Aug 19, 2013 at 2:45 PM, Arnaud Adamy <arnaud.adamy at free.fr>wrote:
>>>
>>>>   Just tested with the cable unplugged and no freeze. The command
>>>> promt iPXE> is displayed and I can enter new commands.
>>>>
>>>
>>> That's very good to know. Thanks
>>>
>>>
>>>>   I tried to get the sources, but from this repo, git send the
>>>> following message:
>>>> Cloning into 'ipxe'...
>>>> fatal: the remote end hung up unexpectedly
>>>>
>>>> so I can’t get them. An idea about what is causing this?
>>>>
>>>
>>> Maybe a firewall that is blocking the git protocol/port? Try the http
>>> link instead:
>>>
>>> git clone http://git.ipxe.org/people/meteger/ipxe.git
>>>
>>>
>>>>   Arnaud
>>>>
>>>>  *From:* Thomas Miletich <thomas.miletich at gmail.com>
>>>> *Sent:* Monday, August 19, 2013 1:56 PM
>>>>  *To:* Arnaud Adamy <arnaud.adamy at free.fr>
>>>> *Cc:* ipxe-devel at lists.ipxe.org
>>>>  *Subject:* Re: [ipxe-devel] iPXE fail to execute dhcp on old system
>>>>
>>>>      Hello Arnaud,
>>>> can you check if ifopen also freezes if the network cable is
>>>> disconnected?
>>>>
>>>> I have also pushed some modifications to the 3c90x driver here:
>>>> https://git.ipxe.org/people/meteger/ipxe.git/shortlog/refs/heads/3c90x
>>>>
>>>> One of the commits has a very slim chance of fixing your issue, I
>>>> wouldn't hold my breath though.
>>>> You can get it with:
>>>>
>>>> git clone git://git.ipxe.org/people/meteger/ipxe.git
>>>> cd ipxe/src
>>>> git checkout 3c90x
>>>>
>>>> Then build iPXE as usual.
>>>>
>>>> Thomas
>>>>
>>>>
>>>> On Mon, Aug 19, 2013 at 1:41 PM, Arnaud Adamy <arnaud.adamy at free.fr>wrote:
>>>>
>>>>>   Thanks.
>>>>> The card works perfectly in Windows 98 SE, in Windows 2000 and with
>>>>> Debian 7.
>>>>> In the BIOS, the plug&play option is set to off, the mainboard an ISA
>>>>> card, an AGP video card and some PCI cards too.
>>>>> The PC needs to be used today, but there is another 3C905C-TX in a
>>>>> box, I’ll try with it in another computer. And if it works, I’ll exchange
>>>>> the two cards.
>>>>> Maybe it is an IRQ or a bus problem. I’ll try to put the card in
>>>>> another PCI location and test it again the late afternoon.
>>>>> Moreover I’ve done tests again early this morning and it freeze every
>>>>> time. I cannot explain why if worked the first time....
>>>>>  I confirm the vendor is 10B7 and the device id is 9200
>>>>>
>>>>>  Arnaud
>>>>>   *From:* Thomas Miletich <thomas.miletich at gmail.com>
>>>>> *Sent:* Monday, August 19, 2013 12:08 PM
>>>>>  *To:* Arnaud Adamy <arnaud.adamy at free.fr>
>>>>> *Subject:* Re: [ipxe-devel] iPXE fail to execute dhcp on old system
>>>>>
>>>>>    I just tried to reproduce the problem, but everything worked fine
>>>>> here. I tested with a 3c905C, PCI ID 10B7:9200, the same as yours.
>>>>>
>>>>> Could you put the 3c90x card into another machine and see if iPXE
>>>>> freezes in that machine too? Does the card work in Linux or Windows or
>>>>> whatever OS you use?
>>>>>
>>>>> This should be valuable information in trying to track down the issue.
>>>>> I'll also see if I can spot anything obvious in the driver code.
>>>>>
>>>>> Thomas
>>>>>
>>>>>
>>>>> On Sat, Aug 17, 2013 at 10:37 PM, Arnaud Adamy <arnaud.adamy at free.fr>wrote:
>>>>>
>>>>>>   What I wanted to say is if I don’t press Ctrl+B, the message to
>>>>>> press it disappear and only the messages to the Features line remain.
>>>>>>
>>>>>> I just made the test again with the debug version I’ve build, and
>>>>>> indeed, when I use ifopen or ifopen net0, it crach with the same messages
>>>>>> as the debug for dhcp do.
>>>>>> And I retested with the live CD and it freeze too.
>>>>>> That’s strange... I’ve done hard reboot, stop and run again, but the
>>>>>> fact is, now it crash every time with ifopen.
>>>>>>
>>>>>> I have done a memtest86 with 3 passes and 64% of the fourth and no
>>>>>> errors detected. The machine is very stable and haven’t had any problem in
>>>>>> the past.
>>>>>>
>>>>>>   *From:* Thomas Miletich <thomas.miletich at gmail.com>
>>>>>> *Sent:* Saturday, August 17, 2013 8:48 PM
>>>>>> *To:* Arnaud Adamy <arnaud.adamy at free.fr>
>>>>>>  *Subject:* Re: [ipxe-devel] iPXE fail to execute dhcp on old system
>>>>>>
>>>>>>      Thanks for the log file.
>>>>>>
>>>>>> I'm quite puzzled by the output. You said you could open and close
>>>>>> the interface manually, yet the log shows that it freezes in the open
>>>>>> function.
>>>>>>
>>>>>> It seems to freeze right when we send the receive ring buffer address
>>>>>> to the card.
>>>>>>
>>>>>> Can you get us another log, where you execute the following commands:
>>>>>> ifopen net0
>>>>>> dhcp net0
>>>>>>
>>>>>> Although there shouldn't be any difference, as dhcp calls open
>>>>>> internally, I'd like to know why your manual ifopen didn't freeze.
>>>>>>
>>>>>> > For test purpose I’m using the live CD (1.0.0+ (c692a)) from your
>>>>>> web site. It load SysLinux and iPXE and stop after the “Features:”
>>>>>> sentence. Just the cursor blink forever.
>>>>>> > When I enter the console with Crtl+B, I get:
>>>>>>
>>>>>> I'm not sure what you're saying here. iPXE freezes after the
>>>>>> "Feature" line, but you can press CTRL+B to get to the iPXE prompt? iPXE
>>>>>> should try to autoboot after the feature line.
>>>>>>
>>>>>> If it doesn't try to autoboot, please run memtest86+ or something
>>>>>> similar on the machine and let it do a couple of passes, just to make sure
>>>>>> we're not seeing any weird hardware issues.
>>>>>>
>>>>>> Thanks
>>>>>> Thomas
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20130819/2b0c9e97/attachment.htm>


More information about the ipxe-devel mailing list