Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ipxe.lkrn does not detect Atheros L2 network interface
2016-11-30, 21:52 (This post was last modified: 2016-11-30 23:18 by Andromeda_x.)
Post: #5
RE: ipxe.lkrn does not detect Atheros L2 network interface
Hello,

thank you for pointing out that floppy used UNDI interface (I didn't pay attention to it as I am not familiar with enternals of iPXE).

Ok, I did recompiled undionly.kpxe with embedded script and it does work as expected. I have created a group in DHCP configuration file dedicated to undionly.kpxe boot file.

And here it is a "git diff" on my source directory

Code:
andromeda@moon:~/tmp/ipxe$ git diff
diff --git a/src/drivers/net/atl1e.c b/src/drivers/net/atl1e.c
index d010d8c..7054a0d 100644
--- a/src/drivers/net/atl1e.c
+++ b/src/drivers/net/atl1e.c
@@ -59,6 +59,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
static struct pci_device_id atl1e_pci_tbl[] = {
        PCI_ROM(0x1969, 0x1026, "atl1e_26", "Attansic L1E 0x1026", 0),
        PCI_ROM(0x1969, 0x1066, "atl1e_66", "Attansic L1E 0x1066", 0),
+       PCI_ROM(0x1969, 0x2048, "atl2e_48", "Attansic L2E 0x2048", 0),
};

static void atl1e_setup_mac_ctrl(struct atl1e_adapter *adapter);

Nothing special as you would expect....

I've attempted to recompile Debian's source package for iPXE (taken from here - iPXE source package) and no miracle happened -- same behavour.

Note: stock ipxe Debian 7 package able to proceede properly with pxelinux.0 + ipxe.lkrn. I've taken a quick look at source they use and what patches they apply in most recent package which I referred in the link above and I did not find any magic. They made some changes in configuration header file general.h

Code:
#define ROM_BANNER_TIMEOUT 0

#define NET_PROTO_IPV6
#define DOWNLOAD_PROTO_NFS

and applied following patch

Code:
diff --git a/src/arch/x86/prefix/romprefix.S b/src/arch/x86/prefix/romprefix.S
index f4ca206..14ff752 100644
--- a/src/arch/x86/prefix/romprefix.S
+++ b/src/arch/x86/prefix/romprefix.S
@@ -28,7 +28,9 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )
#define PCI_FUNC_MASK 0x07

/* ROM banner timeout, converted to a number of (18Hz) timer ticks. */
+#ifndef ROM_BANNER_TIMEOUT_TICKS
#define ROM_BANNER_TIMEOUT_TICKS ( ( 18 * ROM_BANNER_TIMEOUT ) / 10 )
+#endif

/* Allow payload to be excluded from ROM size
  */

and following patch related to efi

Code:
diff --git a/src/util/elf2efi.c b/src/util/elf2efi.c
index 152bf53..91baa75 100644
--- a/src/util/elf2efi.c
+++ b/src/util/elf2efi.c
@@ -18,6 +18,7 @@
  */

#define FILE_LICENCE(...) extern void __file_licence ( void )
+#define _GNU_SOURCE
#include <stdint.h>
#include <stddef.h>
#include <stdlib.h>
@@ -34,7 +35,6 @@
#include <elf.h>
#include <ipxe/efi/Uefi.h>
#include <ipxe/efi/IndustryStandard/PeImage.h>
-#include <libgen.h>

#define eprintf(...) fprintf ( stderr, __VA_ARGS__ )

rest of changes is Debian related: installation, grub and iso generation related...

Andromeda X
Well,

all I did to recompile ipxe.lkrn was

cd tmp/ipxe/src
make

and then copy file of interest in proper location on TFTP server.

Andromeda X
Ok, I decided to follow your advice to look at 'ipxe.pxe' module.

I've reconfigured DHCP server to "serve this file" on PXE request from test computer, restarted DHCP server and rebooted test computer.

Well, it loaded the file; gave information about UNDI and would not continue as despite my expectation.

This moment I thought it might be related that my "ipxe" script is not embedded into ipxe.pxe file.

Code:
cd tmp/ipxe/src
make bin/ipxe.pxe EMBED=my.ipxe

then ipxe.pxe was copied to proper location on TFTP server and test computer rebooted.

And I got a screen in following picture iPXE screen

Andromeda X
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: ipxe.lkrn does not detect Atheros L2 network interface - Andromeda_x - 2016-11-30 21:52



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