Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ipxe.lkrn does not detect L2 network interface in MBR
2016-12-17, 15:33
Post: #1
ipxe.lkrn does not detect L2 network interface in MBR
Hello,

I purpose to set pxe in grub,then MBR boot auto pxe after reboot os.

I have followed online instructions to download latest iPXE from git and run "make" which finished successfuly.

My attempt with undionly.ipxe for PXE was successful and acomplished what I expected.

Next logical step would be to add ipxe.lkrn to my grub configuration file which I did and ipxe.lkrn loads in MBR but it does not detect network interface.

I have two nics to be set pxe in BIOS, set two nics pxe are enable in BIOS. MBR boot from ipxe.lkrn may was successful.But I set one nic pxe is enable in BIOS. It does not detect network interface.

I trace to the code for this problem, I find the code is
Code:
    /* Call loader */
    undi_loader_entry = undirom->loader_entry;
    __asm__ __volatile__ ( REAL_CODE ( "pushl %%ebp\n\t" /* gcc bug */
                       "pushw %%ds\n\t"
                       "pushw %%ax\n\t"
                       "lcall *undi_loader_entry\n\t"
                       "popl %%ebp\n\t" /* discard */
                       "popl %%ebp\n\t" /* gcc bug */ )
                   : "=a" ( exit )
                   : "a" ( __from_data16 ( &undi_loader ) )
                   : "ebx", "ecx", "edx", "esi", "edi" );

    if ( exit != PXENV_EXIT_SUCCESS ) {
        /* Clear entry point */
        memset ( &undi_loader_entry, 0, sizeof ( undi_loader_entry ) );

        rc = -EUNDILOAD ( undi_loader.Status );
        DBGC ( undi, "UNDI %p loader failed: %s\n",
               undi, strerror ( rc ) );
        return rc;
    }

Well it is a strange situation that iPXE on the PXE finds and configures network interface successfully but ipxe.lkrn does not detect network interface.
Find all posts by this user
Quote this message in a reply
2016-12-17, 23:08
Post: #2
RE: ipxe.lkrn does not detect L2 network interface in MBR
ipxe.lkrn uses the drivers that is built in to ipxe, while undionly.kpxe chains the nics own undi stack. You can compare the behavior by using ipxe.pxe instead of ipxe.lkrn in your first test.

what is the pciid of the nics that are not found?

Use GitHub Discussions
VRAM bin
Visit this user's website Find all posts by this user
Quote this message in a reply
2016-12-19, 15:20
Post: #3
RE: ipxe.lkrn does not detect L2 network interface in MBR
(2016-12-17 23:08)NiKiZe Wrote:  ipxe.lkrn uses the drivers that is built in to ipxe, while undionly.kpxe chains the nics own undi stack. You can compare the behavior by using ipxe.pxe instead of ipxe.lkrn in your first test.

what is the pciid of the nics that are not found?

I purpose boot from ipxe after rebooting linux. ipxe.pxe is booting from pxe.I want to boot for harddisk. Do you know another way to finish this function? Thank you very much.
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)