NetGear card not recognised.....and no PCMCIA?

Hi, gang.

I see quite a few tales of woe concerning the dreaded Broadcom B43.

Having got r1_beta_4 nicely functional on the Pavilion desktop rig, I thought I’d try it on my 2009 Dell Latitude D630; Core2Duo, 4GB RAM, Nvidia Quadro graphics. The Anyboot iso runs very nicely from the USB stick I installed it to.

Touchpad is definitely “dodgy”; way over-sensitive, and as-is I can’t do anything with it, so I’m using a mouse for now.

As with all Dells of this vintage, it’s saddled with the Broadcom B43…for its sins! Even under Puppy, this thing, although it runs, drops out every couple of minutes and constantly requires re-connecting. Since the Latitude has a PCMCIA slot, I take the same route as I took with the even older Inspiron, and use a “period” NetGear card in this slot. Uses the ‘ath5k’ driver - which the Linux kernel has supported since, like, forever…and connects very easily.

Haiku doesn’t recognise this, either the PCMCIA slot OR the NetGear card. All it sees is the Broadcom Ethernet, which I never use.

Reading here:-

…surely to God I haven’t got to buy yet another wifi dongle just for that machine?

Mike. :face_with_raised_eyebrow:

1 Like

There is no PCMCIA support, nor is it ever likely I’d imagine - the volume of the remaining hardware that both uses it and is fully supported by Haiku otherwise (e.g. SSE2 for Web+) isn’t huge. Not to say that someone isn’t going to do it.

The device does not show up in listdev?

I am not really familiar with PCMCIA. I see we have a driver in the tree for it, but it looks pretty incomplete.

'Kayyy… Fair enough. So; out of curiosity, where do I find the supported hardware list…? I DO have another NetGear, this time a USB dongle using the RealTek r8192cu chipset, but this one’s always been a bit ‘iffy’ at best. Drops out without warning, then complains about re-connecting again…

Just wondering if this one might do the job.

Mike. :thinking:

You have the hw so i assume you could test it, right?

1 Like

PCMCIA is a kind of PCI device so it may be recognized if already plugged in when pressing PC power on button.

Original PCMCIA is modified ISA - although this card is probably actually Cardbus which is modified PCI.

Also, from very very degraded memories of trying to update the support in BeOS - which is based on the Linux Card Services project - there is a specific wake-up sequence required regardless of whether the card was installed on boot or not

@extrowerk

Aye, I can certainly test it, though I can’t do so until tomorrow at the earliest. I’m not where the machine in question happens to be ATM. I will give it a try, though.

@cian

I believe you’re right. I’m fairly sure it IS “CardBus”, so…yeah.

Mike. :wink:

Okay. Just tried Haiku again on the Dell Latitude. The NetGear USB dongle appears to work very well; this is a WNA 3100M, and using the rtl8192cu chipset. So far, seems much more stable than it does under Puppy…where it constantly “drops-out”.

Took a few seconds to figure out where to enter the connection details, but auto-connect works nicely after that. I’m impressed, guys!

Mike. :grinning:

1 Like

I remember this being an issue several years ago because I wanted to use Haiku on some older pentium 1 / pentium 2 class machines and use cardbus / PCMCIA network adapters, as I recall the required glue code to attach the PCI/ISA bus to the cardbus controller was never written because nobody had the need/interest or access to hardware to develop it.

Can you clarify what exactly you mean by the “glue code to attach the PCI/ISA bus to the cardbus controller”? Where would that even belong in Haiku’s infrastructure?

I assume that an on-board Cardbus (CB) controller would be attached to the PCI bus somehow?

It looks like Haiku has some of the Linux driver stuff and headers files from way back in the early 2000s in the source. I don’t know if any of that actually gets built and is present in the R1 beta releases, but I’m curious how that plugs into Haiku (perhaps it doesnt?) or if was just brought over from some previous work.

https://git.haiku-os.org/haiku/tree/headers/os/drivers/pcmcia
https://git.haiku-os.org/haiku/tree/src/add-ons/kernel/drivers/bus/pcmcia

This hcmcia code is probably from mmu_man’s previous work on zeta. But not built for Haiku and probably needing some changes.

Basically this needs a “hotplug” system like for USB to detect when a card is connected. After that, cardbus should be somewhat similar to PCI, but original PCMCIA is more like ISA and we don’t support that too well either.

This hardware is a bit too old and unusual to have attracted the attention of Haiku developers

@PulkoMandy
Okay, thanks for sharing. It definitely felt like it was somewhat extraneous, it was just a little unclear to me what was going on there.

Is it actually necessary to have proper “hotplug” detection (for PC Card or CardBus)? Or would it suffice to do some kind of hardware probing once at boot time to see what’s connected at startup?

That’s not to say that it wouldn’t be wise to exercise a bit more caution in accessing it, since it could technically be removed later. But I feel like hot-plugging support (on the software end) is isn’t strictly essential?

Has anyone even tried adding any ExpressCard (EC) support?

I know it was somewhat niche, uncommon, and short-lived by comparison to regular PC Card/CardBus, but there is at least 64-bit hardware with support for 6-8 GB+ of ram that had ExpressCard slots.


Personally,I think it’s kind of a shame (in a neutral and objective sense – not blaming you guys) that Haiku doesn’t support hardware that’s still fairly common at least as far as availability and which Linux actually supports pretty well for the most part on capable hardware.

I would love to see it have at least some basic support, at least to the extent of being able to use basic storage media (ATA Flash, CF->ATA adapters, etc) and some network adapters (especially 10/100 Ethernet devices, but a lot of people have previously expressed some interest in WiFi adapters).

Obviously I’m not too concerned about other PCMCIA hardware like: Memory/SRAM, 56k Modems/Fax Modem, Serial or Parallel port cards, TV tuners, MPEG decoders, etc.


I should be clear that I wouldn’t mind working on this myself, as I can program in C and muddle along in C++. But it would be necessary for me to properly set up a machine for Haiku development first.

I’ve got a bunch of old laptops (most somewhere between really old and merely outdated ala 1st/2nd generation Intel Core i3/i5) and some PC Card/CardBus stuff kicking around. Not sure if any of it will run Haiku nicely off LiveCD/LiveDVD media, but I could test that out.

9 posts were split to a new topic: GPL license usage in Haiku

Right, but investing our time in PCMCIA, a technology from the late 80s, is not going to help a lot in that regard. Machines with PCMCIA are old and probably not so well suited to run Haiku anyway.

Even Linux is starting to remove it: Linux 6.4 Slated To Start Removing Old, Unused & Unmaintained PCMCIA Drivers - Phoronix

They are planning to keep CardBus which is closer to PCI and does not need as much support.

So, that’s the first question: is the hardware you want to use based on Cardbus or old style PCMCIA? In the latter case, as I said, not only you have to do the “hotplug” support (even if it is only a simplified version that scans the card once at boot), you probably also have to do the ISA plug-n-play initialization, which we never did in Haiku because it started its life in 2001, and by then, ISA cards support was already on the way out, and so no one felt a need to implement that.

Cardbus is possibly a bit easier, since it is PCI and we do supprot that. And the hotplug support would not be unwelcome, since it is also reusable on ExpressCard (hot pluggable PCI express) and Thunderbolt as well as some laptop docking stations.

2 Likes

You have a definite point there, but I would note that in some systems the controller supports both types of card in either slot.

No idea how the controllers actually handle that in practice, though. I.e. Is the controller connected to both the PCI and ISA bus (when present), does it integrate a PCI-ISA bridge, or does it just sort of simulate the needed bus accesses…

Their arguments are not unreasonable and do make a certain amount of sense, but I feel like the kernel developers make an awful a lot of assumptions about the numbers of people using any given hardware.

For example, whether or not a driver’s code has seen recent activity (like patching) is a really dumb measure, because if the driver works fine and does not need significant fixes it will likely be left untouched for a long time.


I suppose I will take a look around and make myself a list of what hardware I have.

I’m not sure which I have more of, but definitely some of each type. As far as CardBus devices, I’m sure that I have several WiFi adapters and possibly a LAN/Ethernet card, but will have to see what else is kicking around.

It would be great to have support for both PC Card and CardBus devices, but I do agree that working on CardBus appears to be of more immediate practical value. That’s especially true considering that Haiku already has the underlying software needed to interact with PCI devices.

The place to start (just skimming the source code) seems to be writing a driver for whatever PC Card/CardBus controller happens to be present in the prospective hardware used for testing. Is that a reasonable conclusion?

I can only guess since I have not looked very closely at PCMCIA and CardBus specifications, but here is how I would start:

  • You need a driver for your specific cardbus/pcmcia controller. This will handle the low level part of somehow activating the cards
  • For cardbus, I think you can then handover control to the PCI bus_manager and bus. This will take care of enumerating the device and making it visible in the device tree and in listdev
  • Then you can write drivers for each cardbus card, as you would do for any normal PCI device. Possibly, existing drivers (for network cards for example) will just pick them up and start to work immediately

For ISA Plug-N-Play:

  • You will need a driver for the cardbus/pcmcia host as above
  • You will need an isapnp bus_manager that enumerates devices using the Plug N Play specific sequence of IO operations to enumerate all devices. This should also publish the devices in the device tree
  • And then you need drivers for these devices once Plug N Play has finished its work

For ISA non-Plug-N-Play:

  • In this case, each driver needs to send command to “well known” addresses to see if there is something there. I hope we can avoid at least this part of the thing.

Maybe @mmu_man who worked on porting pcmcia-cs for Zeta I think? can explain a bit more of what’s involved for PCMCIA and CardBus

1 Like