快捷搜索:   nginx

PCMCIA配置文件——PCMCIA型的读卡器



  一次和几个同事出去玩,在回来的飞机上想用笔记本把大家的照片收集过来,发现在root方式下打MOUNT,拷贝等都遇到了许多问题。

  最突出的是两个问题。

  ? 有些卡插入时cardmgr会死掉,CPU占用会变成100%

  ? 有些卡在完成拷贝后,umount时,总是会报device is busy

  所以花了两天基本上解决了这些问题,现在就把这些经验贡献给大家。

  内部总共分三篇。

  ? PCMCIA的配置---pcmcia型的读卡器

  ? disk Mount的简单的方法---介绍一种方便的mount方法。

  ?udev 与Hotplug 使用udev规则 ---使特定的设备使用固定的设备名。

  

  我的环境 debian sarge pcmcia-cs 3.2.5-10

  读卡器基本上都是ide-cs设备,也就是说都是ide转pcmcia的硬件。我实际上使用了两个读卡器,

  我原来手上有一个很老的读卡器Sony Memory Stick/PC Card Adaptor MSAC-PC2。只支持memory stick

  这块卡比较旧,就是那块飞机上让我心痛的东西,现在就来分析一下它那么出问题的原因。

  在分析原因以前先介绍一下pcmcia主要的调试方法.

  cardctl 最重要的一个pcmcia的调试,控制工具。 可以查看card的识别信息,状态信息,配置信息,

  cardinfo 图形化界面的cardctl

  dump_cis, dump PCMCIA的配置信息

  cardmgr, pcmcia的监视daemon

  正常工作时的使用上面的工具得到的信息如下:cardctl config

  Socket 0:

  Vcc 3.3V Vpp1 0.0V Vpp2 0.0V

  interface type is "memory and I/O"

  irq 3 [exclusive] [level]

  function 0:

  config base 0x0200

  option 0x41 status 0x00 pin 0x00 copy 0x00

  io 0x0100-0x010f [auto]

  cardctl status

  Socket 0:

  3.3V 16-bit PC Card

  function 0: [ready], [bat dead], [bat low]

  cardctl ident

  product info: "SONY", "MEMORYSTICK(128M)", "1.0"

  manfid: 0x00f1, 0x0000

  function: 4 (fixed disk)

  /etc/pcmcia/config是pcmcia的配置文件,可能把卡加入到配置文件中

  card "SONY MSAC-PC2"

  manfid 0x00f1, 0x0000

  bind "ide-cs"

  这样,当卡插入时,就会自动识别,并用装载ide-cs的驱动程序。

  不过这块遇到最多的是cardmgr 死掉,系统CPU中用100%的情况,原因是,当这块卡不能正确识别时,他会使用

  card "Anonymous Memory"

  anonymous

  bind "memory_cs"

  由于kernel 2.6使用MTD支持memory_cs,memory_cs不会装载成功,此后CPU就会100%状态。

  kill掉cardmgr后系统恢复正常。(使用kill -9)

  也可以通过修改上面的bind,防止100%CPU。(如改成 bind "ide-cs")

  已经不想被这个破卡折磨了,昨天买了一块新的

  buffalo 的 MCR-5A, 支持MMC, SD ,MS, MS PRO (使用转接头的话,还支持ms duo, mini SD)

  这块卡比较新,没有那么多麻烦。Socket 0:

  product info: " ", "Memory Card Adapter"
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论