Add driver to initrd for pxe-boot

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Add driver to initrd for pxe-boot

markus.weich
Hello,

i have a Broadcom Corporation NetXtreme BCM57760 Gigabit Ethernet Card and it doesn't work out of box using autoyast (opensuse 12.1) over pxe. I already identified the necessary kernel modules broadcom.ko and tg3.ko. tg3 is compiled into the kernel but broadcom.ko is missing. I asked Uwe Gansert, the author of autoyast, and he told me that broadcom.ko needs to be in the initrd. But how do i get broadcom.ko into initrd?

1) unpacking initrd on the server is easy :-)
  mkdir /tmp/myinitrd
  cd /tmp/myinitrd/
  zcat /srv/tftp/initrd | cpio -i

2) getting the broadcom module from the installation source on the server was no problem :-)
  mkdir  /tmp/mykernelmods
  cd /tmp/mykernelmods/
  rpm2cpio /srv/ftp/akt/CD1/suse/i586/kernel-default-3.1.0-1.2.1.i586.rpm | cpio -idmv
  cp /tmp/mykernelmods/lib/modules/3.1.0-1.2-default/kernel/drivers/net/phy/broadcom.ko /tmp/myinitrd/modules/

3) And now i do have a problem:

  a) booting the client over pxe, switching to konsole and typing:
   modprobe tg3 #no problem
   modprobe broadcom #FATAL: Module broadcom not found.
   But the module is there, in /modules

  b) Okay, now i try something different.
    After unpacking, i did:
    depmod -b /tmp/myinitrd -C /tmp/myinitrd/etc/depmod.d/ 3.1.0-1.2-default
    This creates modules.dep, modules.alias, ...
   Booting over pxe now gives me the broadcom module, but not all the other modules from the kernel:
   modprobe tg3 #FATAL: Module tg3 not found
   modprobe broadcom #no problem

4) solution would be a mixture of 3a and 3b, but how? Can anyone help? I'm quite desperate now...

5) Ah ja, you can pack the initrd on the server via
  cd /tmp/myinitrd/; find ./ | cpio -H newc -o | gzip -n9 > ../initrd.ACER; cp /tmp/initrd.ACER /srv/tftp/

Thanks,
Markus
--
To unsubscribe, e-mail: [hidden email]
To contact the owner, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Add driver to initrd for pxe-boot

Philipp Thomas-3
[Please use a fixed line length of less than 80 characters as that's
much easier to read, specially when you use text mode MUAs]

On Fri, 17 Aug 2012 00:17:14 +0000, <[hidden email]>
wrote:

>I asked Uwe Gansert, the author of autoyast, and he told me
>that broadcom.ko needs to be in the initrd. But how do i get
>broadcom.ko into initrd?

For a normal system you would add the needed modules to INITRD_MODULES
in /etc/sysconfig/kernel and call mkinitrd to create the new initrd.
See 'man 8 mkinitrd' for the options mkinitrd supports.

Philipp
--
To unsubscribe, e-mail: [hidden email]
To contact the owner, e-mail: [hidden email]