Please disregard my last post, I believe the problem is solved. Thanks
again to all, especially Thomas Graf.
The essential things to learn from this exercise are:
1. A network driver compiled into the kernel must have an initialization
function that allocates the 'net_device' structure and passes this to
the kernel through the 'register_netdev()' call. You can reuse the
module-version initialization function; rename it and prefix it's
declaration with 'static __init'.
2. Add the 'module_init( init_fcn )' macro after the initialization
function. This will cause the kernel to execute that code when booting.
Onward and upward.
Bob Wirka
Realtime Control Works
Bob Wirka wrote:
Hello,
I'm trying to build a kernel that mounts a NFS root file system. This
is an embedded system; it uses an SMSC LAN91C111 network chip that is
hardwired to I/O addres 0x300 and IRQ 5. I've been using the driver
(as supplied by SMSC) as a module, and it works fine. Now I'm trying
to incorporate it into the kernel build so that I can mount an NFS
file system when the system boots.
I've added the source code to the kernel tree, and modified the
Makefile(s) and Config.in files so that the driver <<appears>> to be
compiled into the kernel. The kernel will load, but the chip is not
initialized and the NFS fails.
Since I don't know how to pass the io address and irq number to the
kernel, I've hard-coded them into the driver's init function (which I
don't see being called).
If someone could point me in the right direction, I'd appreciate it.
Thank you,
Bob Wirka
Realtime Control Works
|