Using PCMCIA cards in openSuSE

I’m a relative newbie with all things Linux, and still getting used to openSuSE 12.3.

One of my main goals is to be able to read from and write to PCMCIA linear flash cards. (If you want to know exactly why, I’m prepared to give this information.) I’ve given up on trying to make it work with Windows, and anyway I read somewhere that Linux has more powerful commands for using external storage devices.

Please can someone tell me what drivers and/or software I need to download from the repositories to enable SuSE to communicate with the Card Bus.

However, if the current kernel no longer supports this hardware, I’m prepared to backtrack and use an earlier version of the OS as I don’t particularly need all the included bells & whistles that 12.3 provides. I’m just not sure how far back to which kernel version I need to go.

It would also be good if there is a GUI program available for reading & writing to the cards, but I expect I will need to get my hands a bit dirty and use some CLI input. Would appreciate some basic starter commands to recognise, format and read/write from bin files to my cards (similar to Intel’s F2F file-to-flash exe program for DOS, if you’re familiar with that).

I’m using a Gericom Webgine XL laptop with 2.53GHz CPU and 2GB RAM with built-in PCMCIA card interface. I also have access to a desktop PC (ECS MCP61-M3 Mobo and AMD Sempron 2.7GHz processor) which has a Ricoh PCI-PCMCIA adapter card, both running 12.3.

But in both, Disk Utility does not even show the cards or their contents, although Hardware Info shows the Yenta Card Bus socket is present.

Please only reply if you yourself have definite and actual experience of using PCMCIA cards in a Linux setup, as it’s specific and precise info I need, not general advice. Thanks.

Just a few thoughts here:

  1. As a new user we welcome you to the openSUSE forums.
  2. All users who follow the openSUSE forums Terms and Condition may make a post here in an attempt to help.
  3. It is short sided and not conducive in getting advice by making a comment that says “Please only reply if you yourself have definite and actual experience of using PCMCIA cards in a Linux setup, as it’s specific and precise info I need, not general advice”
  4. I have used many older computers that used PCMCIA cards later called card bus, but there was a lot of different hardware out there, making it hard to find an exact match.
    5 Current Linux kernel support is a product of manufacture support and if any kernel developers have an interest in the same hardware you use.
  5. To use old hardware, I would keep the old stuff and OS that worked with it and to not expect it will get support in the future with new hardware.

One thing is for sure, I wish you all of the luck in the world with your issue and help request. Good Luck

Thank You,

  1. Thank you for your welcome.
  2. I will try to abide by all T & C’s and I hope I have not already transgressed any.
  3. I’ve had previous experience of other forums and I wish to avoid comments and suggestions from people who only wish to ‘muddy the waters’. Hence my comment, which I hope will separate the wheat from the chaff.
  4. Well, Gericom laptops are extremely common (at least in Europe, don’t know about the States) so I presume the card socket is fairly standard. The Ricoh PCMCIA-PCI adapter is probably also run of the mill. But I personally do not know much about them…but someone out there hopefully does.
  5. My question is to those who know the current Linux kernel in SuSE 12.3 back to front and inside out: does it have support for Card Bus Sockets & Linear Flash cards? If not, do I have to install an older version of SuSE or would I be better off with another distro? (Which?)
  6. The cards are not for ‘old computer hardware’ or ‘another OS’ so your comment is slightly irrelevant. They are actually for the Alesis Q-Series synths (eg QS6 & QS7). I have lots of sound banks as Sysex and IMG files and wish to burn them to cards and also to create my own custom banks. It is possible to write the flash cards via MIDI thru the keyboard but it is painstakingly S-L-O-W. Much quicker is to convert the data into bin files (I know how to to that) and write direct to the card in a card reader. But that last piece of the puzzle is so far eluding me.

Hope this makes it clearer.

Please share with me what you know about PCMCIA cards, what Linux distros/versions you were using, if you had a GUI or CLI input, what kinds of data you were writing to them, if you were using Linear Flash or ATA cards (make/type/model), any other useful info. Would be grateful.

As a HVAC control tech, PCMCIA cards at first were providing network access. Later they provided RS232 ports and RS485 ports which are used for such things MSTP BACnet. There were open interface cards for Lon Works networking. My most recent device was a Phone Modem on Card BUS that provided Internet access.

As for support in Linux you got to check with the manufacture first to see if they help. I have a lot of help in using and modifying any kernel version I can provide. You can modify kernel configurations that often bring out hidden hardware support not turned on by default. In the end, you will need to take the lead and do lots of internet searches to see what options you have if any. Here is my blog on the kernel. I ask you read it from top to bottom, comments too and the many links.

Some Links also go to many bash scripts I have written: openSUSE and Installing New Linux Kernel Versions - Blogs - openSUSE Forums

Thank You,

As James already mentioned, you may have to do the necessary research for particular devices yourself. (Knowing/searching the chipset IDs is of help for this.) The CardBus Bridge effectively connects peripherals to the internal PCI bus. As such, many such devices are reported by ‘lspci’, and are thus supported by the same kernel drivers as their directly-connected PCI counterparts, (depending on the nature of the device in question).

For reference, I have the following CardBus hardware (not used much now days, although I have CF reader which I sometimes connect).

02:04.0 CardBus bridge [0607]: Ricoh Co Ltd RL5c476 II [1180:0476] (rev b6)
        Subsystem: Hewlett-Packard Company Compaq 6710b [103c:30c0]
        Kernel driver in use: yenta_cardbus

Devices not reported as PCI (bus) devices may be reported by ‘pccardctl’ instead, (part of the ‘pcmciautils’ package).

Appreciate your input.

However, if I read your post correctly, you were (are??) mainly involved with network and modem PCMCIA cards.

Sorry, but that’s NOT my situation. I’m trying to write data (bin files) to Linear Flash PCMCIA cards (and I don’t mean ATA PCMCIA cards either, they don’t work with my synth).

Although I am willing to get my hands a little bit dirty with some CLI, things like modifying the kernel are not really what I had in mind. I certainly did read your link in its entirety, including what everyone had added, and although I class my computer skills as above average (at least where Windows is concerned) I have to frankly admit that a lot of it was simply over my head. I don’t really want to have to study for years and years to get a PhD in computer science just in order to achieve what I want to achieve. I would much rather install a previous version of SuSE (or another distro) with a kernel that has direct and immediate support for Card Bus. That’s why I need some advice from someone who has grown up with all the various Linux incarnations using PCMCIA cards and will therefore have a fairly good overview of what each version can and can’t do.

Hope you don’t think I’m being deliberately obtuse and difficult.

Please tell me how you captured this piece of code to find out what the hardware is. I can then post this (for my laptop and for the desktop)
in the hope that someone will be able to guide me in the right direction.

It still makes no sense to me that SuSE 12.3 can see the Card Bus sockets, but not the card when it’s plugged in.

Sorry, I’ll rephrase the question (for some reason I am unable to edit my previous post).

How did you generate that hardware report (‘sudo lspci’ as a command in Terminal doesn’t work) and how did you save it as a text file so that you could post it?

sudo /sbin/lspci

should work
No need to redirect it to a text file. Use your mouse to select the desired output bits, right click and copy, or hit Ctrl-Shift-C, then paste it here, between CODE tags (the # in the editor)

sudo /sbin/lspci

should work
No need to redirect it to a text file. Use your mouse to select the desired output bits, right click and copy, or hit Ctrl-Shift-C, then paste it here, between CODE tags (the # in the editor)

Thanks for the tip.

Here is the output for the laptop

00:08.0 CardBus bridge: O2 Micro, Inc. OZ601/6912/711E0 CardBus/SmartCardBus Controller


Thanks for the tip. (See what I mean about being a noob? I feel such a fool now cos the answer was so easy.)

Here is the output for the laptop:

00:08.0 CardBus bridge: O2 Micro, Inc. OZ601/6912/711E0 CardBus/SmartCardBus Controller


and for the desktop (sorry, I made a mistake, this is actually SuSE 12.1 not 12.3 as I indicated before):

01:06.0 CardBus bridge: Ricoh Co Ltd RL5c475 (rev 81)


But I am unsure about where to go searching on the internet for these CardBus controllers, what I need to be looking for and then what I have to do with the information if and when I find it.

On 2013-11-04 07:32, roses2at wrote:
> 4) Well, Gericom laptops are extremely common (at least in Europe, don’t
> know about the States)

I live in Europe and I have never seen or heard of one. :-?

I have an old laptop with pcmcia card bay, but never used it, I don’t
have any card to to try and find out if it is supported.

Sorry.

I’d suggest you have a look at the kernel configuration to see the list
of devices it supports - it is possible that some devices are deactivated.

To do that, you have to install in yast the kernel development pattern.
Then:


cd /usr/src/linux
make cloneconfig
make menuconfig

and then browse the resulting menu.

If you want to find out if some other openSUSE version supports your
device, well, simply download and install versions. 11.4, 10.1, 9.2,
8.2, 7.3… Even if out of support, the install DVD iso image is still
obtainable. Unless somebody here happens to use the same hardware as
you, the question will be very difficult to answer.


Cheers / Saludos,

Carlos E. R.
(from 12.3 x86_64 “Dartmouth” at Telcontar)

On 11/04/2013 05:33 AM, Carlos E. R. wrote:
> On 2013-11-04 07:32, roses2at wrote:
>> 4) Well, Gericom laptops are extremely common (at least in Europe, don’t
>> know about the States)
>
> I live in Europe and I have never seen or heard of one. :-?
>
> I have an old laptop with pcmcia card bay, but never used it, I don’t
> have any card to to try and find out if it is supported.
>
> Sorry.
>
> I’d suggest you have a look at the kernel configuration to see the list
> of devices it supports - it is possible that some devices are deactivated.
>
> To do that, you have to install in yast the kernel development pattern.
> Then:
>
>


> cd /usr/src/linux
> make cloneconfig
> make menuconfig
> 

>
> and then browse the resulting menu.
>
>
> If you want to find out if some other openSUSE version supports your
> device, well, simply download and install versions. 11.4, 10.1, 9.2,
> 8.2, 7.3… Even if out of support, the install DVD iso image is still
> obtainable. Unless somebody here happens to use the same hardware as
> you, the question will be very difficult to answer.

In openSUSE, PCMCIA cards are supported, but see below. I have an ancient laptop
with such an adapter. On it, I use BCM4306 and BCM4318 cards in that form factor
as my primary network connection. In addition, I periodically test the PCMCIA
version of a SCSI adapter with a CD reader that I have.

Of course, it is possible that if a particular device has not been tested,
bitrot may have occurred and it no longer works. If that has happened, it is not
an openSUSE problem, but one with the kernel. As such, it will affect all distros.

Well, this is a bit off-topic, but I suggest you take a look at some auction sites such as eBay.

Then why are you replying to this thread?

As a Linux noob, this is WAY over my head.

So you’re suggesting I spend days and days and weeks and weeks installing every version of SuSE until I find one that works with my PCMCIA cards??? Sort of shot in the dark or needle in a haystack tactics?

With respect, that’s why I come to this forum because I’m sure that someone out there reading this will know which version of this distro is likely to work as they used to (or still do) read and write to linear flash cards.

Again, like James in the post above, you’re using your PCMCIA cards as adapters (network, SCSI).

I repeat, this is not my situation. I want to read and write data to/from linear flash cards. These types of cards are used in many applications such as Cisco routers. I don’t know what programs/scripts/data or other info is put on them, or if the routers themselves write their setup to the cards. But it’s possible that an operator has to pre-program the cards before use and it’s possible that s/he is using a Linux PC to do it. So there must be a way.

Since we now know that you’re using openSUSE 12.1, why not try connecting the device and capture the kernel message output via the following terminal command

dmesg|tail

You can also run

/sbin/lspci -nnk

This will (hopefully) provide any associated kernel driver with your hardware

On 11/04/2013 11:43 AM, roses2at wrote:
>
> lwfinger;2595555 Wrote:
>> I have an ancient laptop
>> with such an adapter. On it, I use BCM4306 and BCM4318 cards in that
>> form factor
>> as my primary network connection. In addition, I periodically test the
>> PCMCIA
>> version of a SCSI adapter with a CD reader that I have.
>
> Again, like James in the post above, you’re using your PCMCIA cards as
> adapters (network, SCSI).
>
> I repeat, this is not my situation. I want to read and write data
> to/from linear flash cards. These types of cards are used in many
> applications such as Cisco routers. I don’t know what
> programs/scripts/data or other info is put on them, or if the routers
> themselves write their setup to the cards. But it’s possible that an
> operator has to pre-program the cards before use and it’s possible that
> s/he is using a Linux PC to do it. So there must be a way.

Your situation is not that different from mine.

The PCMCIA adapter is a bridge. It converts from a PCI bus on the CPU side to
CardBus on the output side. The card you plug in will determine what kind of bus
you get. In my case, it is PCI, but yours might be a simpler form. Even if your
adapter is functional, that does not assert that there is a driver for your
linear flash card.

There is an additional utility. With the card plugged in, what does ‘pccardctl
ls’ show? In my case, the cards are PCI and it tells you to use lspci, and that
is where my wireless device is found. Until your device shows up in one of these
scans, there is no hope of using it.

Here are the requested outputs…but you’re gonna have to help me as I don’t know what those commands do and even less what the messages mean (if anything) in relation to my initial query.

Laptop (12.3) dmesg/tail



  509.008246]  <c05fba62>]dev_watchdog+0x1c2/0x1d0
  509.008255]  <c0245a54>]call_timer_fn+0x24/0xe0
  509.008263]  <c02473e0>]run_timer_softirq+0x180/0x220
  509.008272]  <c02401b9>]__do_softirq+0x99/0x1a0
  509.008278]  <c02042e6>]do_softirq+0x76/0xb0
  509.008290]  <0000001e>]0x1d
  509.008294] --- end trace4aa62bc1f7fe3149 ]---
  509.008299] eth0: Transmit timeout,status 00000004 00000000
  509.617237] eth0: Media Link On100mbps full-duplex
  515.879957] nf_conntrack: automatichelper assignment is deprecated and it will be removed soon. 
Use the iptables CT target to attachhelpers instead.

Laptop (12.3) lspci /nnk



00:00.0 Host bridge [0600]: SiliconIntegrated Systems [SiS] SiS645DX Host & Memory & AGPController [1039:0646]
	Kernel driver in use: agpgart-sis
00:01.0 PCI bridge [0604]: SiliconIntegrated Systems [SiS] AGP Port (virtual PCI-to-PCI bridge)[1039:0001]
00:02.0 ISA bridge [0601]: SiliconIntegrated Systems [SiS] SiS962 [MuTIOL Media IO] LPC Controller[1039:0962] (rev 04)
00:02.1 SMBus [0c05]: SiliconIntegrated Systems [SiS] SiS961/2/3 SMBus controller [1039:0016]
00:02.3 FireWire (IEEE 1394) [0c00]:Silicon Integrated Systems [SiS] FireWire Controller [1039:7007]
	Subsystem: Uniwill Computer CorpDevice [1584:7007]
	Kernel driver in use: firewire_ohci
00:02.5 IDE interface [0101]: SiliconIntegrated Systems [SiS] 5513 IDE Controller [1039:5513]
	Subsystem: Uniwill Computer CorpDevice [1584:5513]
	Kernel driver in use: pata_sis
00:02.6 Modem [0703]: SiliconIntegrated Systems [SiS] AC'97 Modem Controller [1039:7013] (rev a0)
	Subsystem: Uniwill Computer CorpDevice [1584:4003]
	Kernel driver in use: snd_intel8x0m
00:02.7 Multimedia audio controller[0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 SoundController [1039:7012] (rev a0)
	Subsystem: Uniwill Computer CorpDevice [1584:5101]
	Kernel driver in use: snd_intel8x0
00:03.0 USB controller [0c03]: SiliconIntegrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f)
	Subsystem: Uniwill Computer CorpDevice [1584:7001]
	Kernel driver in use: ohci_hcd
00:03.1 USB controller [0c03]: SiliconIntegrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f)
	Subsystem: Uniwill Computer CorpDevice [1584:7001]
	Kernel driver in use: ohci_hcd
00:03.2 USB controller [0c03]: SiliconIntegrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f)
	Subsystem: Uniwill Computer CorpDevice [1584:7001]
	Kernel driver in use: ohci_hcd
00:03.3 USB controller [0c03]: SiliconIntegrated Systems [SiS] USB 2.0 Controller [1039:7002]
	Subsystem: Uniwill Computer CorpDevice [1584:7002]
	Kernel driver in use: ehci_hcd
00:04.0 Ethernet controller [0200]:Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet [1039:0900](rev 91)
	Subsystem: Uniwill Computer CorpDevice [1584:5100]
	Kernel driver in use: sis900
00:08.0 CardBus bridge [0607]: O2Micro, Inc. OZ601/6912/711E0 CardBus/SmartCardBus Controller[1217:6972]
	Subsystem: Uniwill Computer CorpDevice [1584:3000]
	Kernel driver in use: yenta_cardbus
01:00.0 VGA compatible controller[0300]: NVIDIA Corporation NV17 [GeForce4 420 Go 32M] [10de:0176](rev a3)
	Subsystem: Uniwill Computer CorpDevice [1584:2241]
	Kernel driver in use: nvidia 

And for the desktop (12.1)

    8.955412] ALSA hda_intel.c:1492 Enable sync_write for stable communication    8.963982] HDMI status: Codec=0 Pin=3 Presence_Detect=0 ELD_Valid=0
    8.964478] input: HDA ATI HDMI HDMI/DP as /devices/pci0000:00/0000:00:09.0/0000:03:00.1/sound/card1/input5
    9.543754] forcedeth 0000:00:07.0: irq 45 for MSI/MSI-X
    9.849546] bootsplash: status on console 0 changed to on
   10.803674] fuse init (API version 7.17)
   10.860707] NET: Registered protocol family 17
   10.979625] EXT4-fs (sda2): re-mounted. Opts: acl,user_xattr,commit=0
   11.011314] EXT4-fs (sda3): re-mounted. Opts: acl,user_xattr,commit=0
   19.888015] eth0: no IPv6 routers present



00:00.0 RAM memory [0500]: nVidia Corporation MCP61 Memory Controller [10de:03ea] (rev a1)	Subsystem: Elitegroup Computer Systems Device [1019:2242]
00:01.0 ISA bridge [0601]: nVidia Corporation MCP61 LPC Bridge [10de:03e0] (rev a2)
	Subsystem: Elitegroup Computer Systems Device [1019:2242]
00:01.1 SMBus [0c05]: nVidia Corporation MCP61 SMBus [10de:03eb] (rev a2)
	Subsystem: Elitegroup Computer Systems Device [1019:2242]
	Kernel driver in use: nForce2_smbus
00:01.2 RAM memory [0500]: nVidia Corporation MCP61 Memory Controller [10de:03f5] (rev a2)
	Subsystem: Elitegroup Computer Systems Device [1019:2242]
00:02.0 USB Controller [0c03]: nVidia Corporation MCP61 USB Controller [10de:03f1] (rev a3)
	Subsystem: Elitegroup Computer Systems Device [1019:2242]
	Kernel driver in use: ohci_hcd
00:02.1 USB Controller [0c03]: nVidia Corporation MCP61 USB Controller [10de:03f2] (rev a3)
	Subsystem: Elitegroup Computer Systems Device [1019:2242]
	Kernel driver in use: ehci_hcd
00:04.0 PCI bridge [0604]: nVidia Corporation MCP61 PCI bridge [10de:03f3] (rev a1)
00:05.0 Audio device [0403]: nVidia Corporation MCP61 High Definition Audio [10de:03f0] (rev a2)
	Subsystem: Elitegroup Computer Systems Device [1019:2242]
	Kernel driver in use: snd_hda_intel
00:06.0 IDE interface [0101]: nVidia Corporation MCP61 IDE [10de:03ec] (rev a2)
	Subsystem: Elitegroup Computer Systems Device [1019:2242]
	Kernel driver in use: pata_amd
00:07.0 Bridge [0680]: nVidia Corporation MCP61 Ethernet [10de:03ef] (rev a2)
	Subsystem: Elitegroup Computer Systems Device [1019:2242]
	Kernel driver in use: forcedeth
00:08.0 IDE interface [0101]: nVidia Corporation MCP61 SATA Controller [10de:03f6] (rev a2)
	Subsystem: Elitegroup Computer Systems Device [1019:2242]
	Kernel driver in use: sata_nv
00:08.1 IDE interface [0101]: nVidia Corporation MCP61 SATA Controller [10de:03f6] (rev a2)
	Subsystem: Elitegroup Computer Systems Device [1019:2242]
	Kernel driver in use: sata_nv
00:09.0 PCI bridge [0604]: nVidia Corporation MCP61 PCI Express bridge [10de:03e8] (rev a2)
	Kernel driver in use: pcieport
00:0b.0 PCI bridge [0604]: nVidia Corporation MCP61 PCI Express bridge [10de:03e9] (rev a2)
	Kernel driver in use: pcieport
00:0c.0 PCI bridge [0604]: nVidia Corporation MCP61 PCI Express bridge [10de:03e9] (rev a2)
	Kernel driver in use: pcieport
00:18.0 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration [1022:1200]
00:18.1 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor Address Map [1022:1201]
00:18.2 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller [1022:1202]
00:18.3 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control [1022:1203]
	Kernel driver in use: k10temp
00:18.4 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor Link Control [1022:1204]
01:05.0 SCSI storage controller [0100]: BusLogic Flashpoint LT [104b:8130] (rev 01)
01:06.0 CardBus bridge [0607]: Ricoh Co Ltd RL5c475 [1180:0475] (rev 81)
	Kernel driver in use: yenta_cardbus
03:00.0 VGA compatible controller [0300]: ATI Technologies Inc RV710 [Radeon HD 4350] [1002:954f]
	Subsystem: ASUSTeK Computer Inc. Device [1043:02a8]
	Kernel driver in use: radeon
03:00.1 Audio device [0403]: ATI Technologies Inc RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
	Subsystem: ASUSTeK Computer Inc. Device [1043:aa38]
	Kernel driver in use: snd_hda_intel



So from how I understand it so far, I also need drivers for the card as well as the Card Bus adapter??

How can I switch those on in my kernel, or do i need to download them?