[arch-general] PCMCIA Kernel 2.6
How do I make kernel 2.6 boot from NFS using a PCMCIA network card? Without initrd would be preferred. -- Regards, Nilesh Govindarajan Facebook: http://www.facebook.com/nilesh.gr Twitter: http://twitter.com/nileshgr Website: http://www.itech7.com Cheap and Reliable VPS Hosting: http://j.mp/arHk5e
Am 14.07.2010 16:21, schrieb Nilesh Govindarajan:
How do I make kernel 2.6 boot from NFS using a PCMCIA network card? Without initrd would be preferred.
You need to build a kernel with PCMCIA, your PCMCIA host bridge and the network card driver built-in ... that _might_ work, if the PCMCIA card does not require userspace-based initialization. Additionally you need to build in NFS support and kernel level NFS autoconfiguration. This is much simplified if you use initramfs, mkinitcpio should be able to do it, even with the default Arch kernel, you may need to add some drivers manually though.
On Wed, Jul 14, 2010 at 8:43 PM, Thomas Bächler <thomas@archlinux.org> wrote:
Am 14.07.2010 16:21, schrieb Nilesh Govindarajan:
How do I make kernel 2.6 boot from NFS using a PCMCIA network card? Without initrd would be preferred.
You need to build a kernel with PCMCIA, your PCMCIA host bridge and the network card driver built-in ... that _might_ work, if the PCMCIA card does not require userspace-based initialization. Additionally you need to build in NFS support and kernel level NFS autoconfiguration.
This is much simplified if you use initramfs, mkinitcpio should be able to do it, even with the default Arch kernel, you may need to add some drivers manually though.
I can't use arch kernel because its too big for my diskless client. Further, I don't see any PCMCIA option while compiling kernel 2.6 I tried kernel 2.4 also, it has the exact driver for my card, but then glibc complains. Later I tried to compile glib with --enable-kernel=2.4, won't compile. So the only way out for me seems kernel 2.6 Could anyone provide me more info on compiling PCMCIA drivers right inside vmlinuz image? If not inside vmlinuz, with initrd. -- Regards, Nilesh Govindarajan Facebook: http://www.facebook.com/nilesh.gr Twitter: http://twitter.com/nileshgr Website: http://www.itech7.com Cheap and Reliable VPS Hosting: http://j.mp/arHk5e
2010/7/14 Nilesh Govindarajan <lists@itech7.com>:
Further, I don't see any PCMCIA option while compiling kernel 2.6
-> Device Drivers -> Network device support (NETDEVICES [=y]) -> PCMCIA network device support (NET_PCMCIA [=n]) Hint: press / when in menuconfig and type your search string ;-)
Am 14.07.2010 17:39, schrieb Nilesh Govindarajan:
I can't use arch kernel because its too big for my diskless client.
Okay.
Further, I don't see any PCMCIA option while compiling kernel 2.6
They are there. More below.
I tried kernel 2.4 also, it has the exact driver for my card, but then glibc complains. Later I tried to compile glib with --enable-kernel=2.4, won't compile.
You would need a very ancient glibc, version 2.2 or older iirc. Even if you could glibc going, Arch Linux depends on Linux 2.6 in so many places, 2.4 simply won't do it.
So the only way out for me seems kernel 2.6 Could anyone provide me more info on compiling PCMCIA drivers right inside vmlinuz image? If not inside vmlinuz, with initrd.
First, we need to clarify a few things: There are (16 Bit) PCMCIA cards and (32 Bit) CardBus cards (which are often referred to as PCMCIA, too). (I don't know if all the terminology is correct, please correct me if I am wrong) The PCMCIA variants require special drivers (they usually have 'cs' in their name) and need initialization from userspace - this initialization is done automatically by udev. However, these cards will not work without initramfs, as the kernel cannot initialize them on its own. The CardBus variants show up in the system as normal PCI cards and use the same drivers as their PCI counterparts. They work out of the box and you should be able to use them for booting without initramfs. We first need to find out which one you have - the first variant will show up in lspcmcia, the second one in lspci, but not in lspcmcia.
Okay all, I found the option. I had hotplug disabled, so it was now showing up. The / trick helped :D I compiled the 3c589_cs driver into the vmlinuz image (loadable module support disabled), but it doesn't seem to recognize the hardware. As per Thomas, the initialization has to be done by initrd, but how can a kernel and initrd fit on a 1.44 MB floppy? and btw, udev is disabled in my install, I am using static /dev nodes. -- Regards, Nilesh Govindarajan Facebook: http://www.facebook.com/nilesh.gr Twitter: http://twitter.com/nileshgr Website: http://www.itech7.com Cheap and Reliable VPS Hosting: http://j.mp/arHk5e
Am 15.07.2010 08:58, schrieb Nilesh Govindarajan:
Okay all, I found the option. I had hotplug disabled, so it was now showing up. The / trick helped :D I compiled the 3c589_cs driver into the vmlinuz image (loadable module support disabled), but it doesn't seem to recognize the hardware. As per Thomas, the initialization has to be done by initrd, but how can a kernel and initrd fit on a 1.44 MB floppy? and btw, udev is disabled in my install, I am using static /dev nodes.
If you try to boot via network, you could try to use gPXE - if you are lucky, it has support for your network card (it supports very many cards). gPXE can then load kernel and initrd via network (NFS, tftp, http, ftp, whatever you like). gPXE usually fits on a floppy, even with network drivers included.
On Thu, Jul 15, 2010 at 12:40 PM, Thomas Bächler <thomas@archlinux.org> wrote:
Am 15.07.2010 08:58, schrieb Nilesh Govindarajan:
Okay all, I found the option. I had hotplug disabled, so it was now showing up. The / trick helped :D I compiled the 3c589_cs driver into the vmlinuz image (loadable module support disabled), but it doesn't seem to recognize the hardware. As per Thomas, the initialization has to be done by initrd, but how can a kernel and initrd fit on a 1.44 MB floppy? and btw, udev is disabled in my install, I am using static /dev nodes.
If you try to boot via network, you could try to use gPXE - if you are lucky, it has support for your network card (it supports very many cards). gPXE can then load kernel and initrd via network (NFS, tftp, http, ftp, whatever you like). gPXE usually fits on a floppy, even with network drivers included.
I don't think gPXE supports PCMCIA network cards. Leave all that, what am I supposed to do to initialize the PCMCIA card? -- Regards, Nilesh Govindarajan Facebook: http://www.facebook.com/nilesh.gr Twitter: http://twitter.com/nileshgr Website: http://www.itech7.com Cheap and Reliable VPS Hosting: http://j.mp/arHk5e
Am 15.07.2010 15:51, schrieb Nilesh Govindarajan:
I don't think gPXE supports PCMCIA network cards.
Sadly, I think you are right. gPXE would have allowed you to load arbitrarily large kernel and initrd images over the network :(
Leave all that, what am I supposed to do to initialize the PCMCIA card?
Udev does that automatically. Looking at it more closely, I think I was wrong. pcmciautils only contains two tools called "pcmcia-check-broken-cis" and "pcmcia-socket-startup". The former is necessary to enable devices with broken vendor/product id, the latter starts up some pcmcia sockets ... it looks like you can live without those if your hardware is not broken. Details about pcmcia-specific initialization are in /lib/udev/rules.d/60-pcmcia.rules (pcmcia-utils). Guessing a bit further, it might be that you didn't build your PCMCMIA host bridge into your kernel (most of the time it is yenta_socket) and therefore don't see your card.
On Thu, Jul 15, 2010 at 7:35 PM, Thomas Bächler <thomas@archlinux.org> wrote:
Am 15.07.2010 15:51, schrieb Nilesh Govindarajan:
I don't think gPXE supports PCMCIA network cards.
Sadly, I think you are right. gPXE would have allowed you to load arbitrarily large kernel and initrd images over the network :(
Leave all that, what am I supposed to do to initialize the PCMCIA card?
Udev does that automatically. Looking at it more closely, I think I was wrong. pcmciautils only contains two tools called "pcmcia-check-broken-cis" and "pcmcia-socket-startup". The former is necessary to enable devices with broken vendor/product id, the latter starts up some pcmcia sockets ... it looks like you can live without those if your hardware is not broken. Details about pcmcia-specific initialization are in /lib/udev/rules.d/60-pcmcia.rules (pcmcia-utils).
Guessing a bit further, it might be that you didn't build your PCMCMIA host bridge into your kernel (most of the time it is yenta_socket) and therefore don't see your card.
Yes that was it, yenta_socket enabling recognizes the card, but doesn't recognize it as an ethernet card (No Initrd, static kernel). -- Regards, Nilesh Govindarajan Facebook: http://www.facebook.com/nilesh.gr Twitter: http://twitter.com/nileshgr Website: http://www.itech7.com Cheap and Reliable VPS Hosting: http://j.mp/arHk5e
On 15-07-10 15:51, Nilesh Govindarajan wrote:
On Thu, Jul 15, 2010 at 12:40 PM, Thomas Bächler<thomas@archlinux.org> wrote: [...]
If you try to boot via network, you could try to use gPXE - if you are lucky, it has support for your network card (it supports very many cards). gPXE can then load kernel and initrd via network (NFS, tftp, http, ftp, whatever you like). gPXE usually fits on a floppy, even with network drivers included.
I don't think gPXE supports PCMCIA network cards. Leave all that, what am I supposed to do to initialize the PCMCIA card?
look like you're right about gPXE: http://www.etherboot.org/wiki/pcmcia_support But that page also mentions: "If you are http://www.ltsp.org LTSP user, look at the LTSP “wireless” packages at http://sourceforge.net/project/showfiles.php?group_id=17723 That package contains a floppy image that can be used to boot off wireless or wirebound PCMCIA network cards (probably other wireless [=NICs=] as well). " Maybe you can find something in the LTSP website/archives... HTH mvg, Guus
Okay, now udev, etc. doesn't work. The thing doesn't recognize the card as ethernet card. I have put in the drivers statically inside the kernel, now how do I include pcmcia-socket-startup inside initrd and run it? Something tells me that's what I'm missing: Some initialization stuff. Can someone give some details about initializing the pcmcia ethernet card via initrd (no udev, modules)? -- Regards, Nilesh Govindarajan Facebook: http://www.facebook.com/nilesh.gr Twitter: http://twitter.com/nileshgr Website: http://www.itech7.com Cheap and Reliable VPS Hosting: http://j.mp/arHk5e
participants (4)
-
bardo
-
Guus Snijders
-
Nilesh Govindarajan
-
Thomas Bächler