








			   Linux PCMCIA HOWTO İ

		 : David Hinds, dhinds@hyper.stanford.edu

: л HSIEH Kun-Chung, ̨ л Taiwan, Republic of China (NOT Peo
	    ple's Republic of China) (linuxer.bbs@cis.nctu.edu.tw )

			     1998219 v2.5



				   Abstract

     ļҪ  Linux °װʹ PCMCIA ʽش
     ҳʵ⡣ļµİ汾 <URL:ftp://hyper.stan
     ford.edu/pub/pcmcia/doc>  HTML 汾ᱻ
     <URL:http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html>



1.  һѶӲҪ

1.1  

 Linux ʹõĿƬʽǸ֧Ԯ PCMCIA ׼  PCMCIA
ʽӦóʽһ׿ģ顢һ׸
رƬʹõĿͻʽʽһɷӦƬ롢Ҫ
жʽĿƬ顣 ֧Ԯ `` Ȼ '' PCMCIA 
ƬأƬͿκʱˡ

ڷչУԿڳʽС棬Сʹáҽ
֪ʹĳʽ⣬
ҲҾ޷֪ڡˣʹʽŸ
ʹþ飬Ǻǻ

κĽļıҲ֪ (dhinds@hyper.stan
ford.edu)

1.2  Ȩ޿

Ȩ Copyright (c) 1998 David A. Hinds

ļҵ¼κʽرƻɢļκ ޸Ĺİ汾
(Եİ汾 ) Ҳѵرɢ ֻ
Ҫ֪㲢ڲ𺦱µİȨǰ¡

ļҵŵҵԵɢϣȻⲻǱҪģ
Һϣܸйʹá뽫ļ浽鼮ϣ
һ£ȷµİ汾

ļֻ ``  '' ıֶѣûκԻʾκεı֤
ѱеʹñļѶ֮ա


Linux PCMCIA HOWTO İ						      1





Linux PCMCIA HOWTO İ						      2



1.3  °汾ĸҿɴĶõ

ĿǰµĿƬʽΪ 3.0 棬 С޸Ļİ汾Ϊ 3.0.1 3.0.2
ȵơ

µԭʼʽɴ	     hyper.stanford.edu 	 ڵ /pub/pcmcia
Ŀ¼ҵ  pcmcia-cs-3.0.?.tar.gz
Ƕͨ汾ڡֻͨµļ޸İڴ˴
汾ͨδʽɵĳʽ룬Ҳһȶ
ǶԱʱ֮衣ڵȶΪ 2.9.12 棬Ҫʹĸ汾Ϻ
أ˼ CHANGES ڻ򵥵İ汾Ƚϡ

hyper.stanford.edu  ᱻӳ sunsite.unc.edu (Լ  sunsite ӳվ
)  /pub/Linux/kernel/pcmcia ڡ

ʹԼ  PCMCIA  ʽĻ Ҫ Linux Ӧ Slackware
Red HatCalderaYggdrasil ȵȶѱõĳʽʹ á

1.4  Щϵͳ֧Ԯأ

ЩʽӦÿ Linux ݵıʼ͵ PCMCIA
֧Ԯ Щ³̣ Intel Cirrus VademVLSI Ricoh 
Databook chips ֧Ԯ IBM  Toshiba ıʼ͵ԡֻҪ ֱӲ ISA 
(SCSI-to-PCMCIA   IDE-to-PCMCIA ) ǵ ͵֮ PCMCIA
װ֧Ԯ

CardBus  Žӿѭ ``Yenta'' ݴ ( TI Cir
rusSMCO2MicroOmega Micro  Ricoh ľƬ ) ֧Ԯ  32 λԪ
CardBus Ƭֻʵʡʽ汾 3.0   CardBus
Ҳֻ֧Ԯ 16 λԪĿ 춱ʼ͵Ӳ
ƼĿٽͿʱ֣ˣµĲƷг
ӳʽ֧ԮпܻЩʱϵĳ롣

 Hyundai ʼ͵ʹõ Motorola 6AHC05GA ֧Ԯ  HP Omni
book 600 ϵ PCMCIA ಻֧Ԯ

1.5  ЩPCMCIA֧Ԯأ

Ŀǰİ汾· ݿвSCSI 濨ATA/IDE Ӳ Լ֧Ԯ
SRAM Ϳ忨ļ俨ʽSUPPORTED.CARDS
ڰ˸汾֧Ԯ PC ƣһϵͳϿʹý 룩

бڵ PC Ҳпܿʹáϣеݿʹ á
Щδ·Ǳ֧ԮĿ֮ OEM 汾ʹá IO
绺忨Чȵȣ󲿷Ŀǰ֧Ԯ Ϊ
дʽ

1.6  ʲʱҵ¿ƬŻᱻ֧Ԯأ

źǣЩ̲ûиκγд豸ʽˣ
Ŀ֧ԮҪ¡ ϣҽϲ Linux 
ģʽ༴Ҫ PCMCIA ĺĳʽ룬  PC
ʽϡ SUPPORTED.CARDS ᵽЩ ʽڽС
ĵطһᾡæ ͸ Email








Linux PCMCIA HOWTO İ						      3



豸ʽǺЧʵġ

ȤԼ˾ĲƷ  Linux ֧Ԯһ Ǣѯ밲š

1.7  ʼἰѶԴ

άһ Linux PCMCIA ʹʼᡣѽҵҳ
ɡ峬ýšվͷһϵй Linux PCMCIA ѶĿ 
ԲͬʽĿƬ֮װ趨PCMCIA ֮سʽ  Linux
PCMCIA Ѷҳ http: //hyper.stanford.edu/HyperNews/get/pcmcia/home.html
ϡʹ߿뾭ɵʼķʽ֪ͨϸȤѶϢ
ӿԽЩ	HOWTO ( ) Χ۱Ϊһ
ʵõѶ⡣

иԱʼ͵ʹ Linux ʼ ``linux-laptop''  ʼ ᡣ
ҪһѶ һ⺬ ``help'' һֵĵʼ majordomo@vger.rut
gers.edu ҪѶһ⺬ ``subscribe linux-laptop''
ĵʼͬ Email ַ ʼһй Linux PCMCIA
Ĳ̳Ŷ

Linux Laptop ҳ http://www.cs.utexas.edu/users/kharker/linux-laptop ϣ
ضıʼ͵ڰװ Linux  PCMCIA ʱ
ѶһݿѰϵͳѶϿ⡣

1.8  ᲻ṩ PCMCIA Ķλأ

Ҷԣṩλҡе㸴ӣΪЩֻڱ
ʱѡ񣬶 PCMCIA ģʵĺĽԣֻ
ʵĺ֮δģ顣ңҪװһǬϵͳ
ʱҪδģġ һ˵ÿ Linux Ӧ̻Ҫڰװ 趨
PCMCIA ʹĹܡÿӦ̶Լĳ
ӦŵǺе㲻̫ʺϡ

PCMCIA Ҫ  Linux Ӧ̵һˣ  Red Hat Caldera
SlackwareYggdrasilCraftworks  Nascent Technology

1.9  Ϊʲ PCMCIA ׼أ

! Ҫ˵ǣĲеʽģֻԼ 200 K
Ĵŵռѡ óʽݼԼ 70K /etc/pcmcia  Լ
30KִʱPCMCIA ĺģռԼ 48K ϵͳ塣ͨ  cardmgr
ڿƬƳʱⶼᱻƳġ  ׼ĴС DOS
ĿƬʽִʱжĲ

 DOS ĵƺǵĺá ر˲ʹõ PCMCIA
йܣ˵ԴȻܡ Ϊ
ֻ֧ԮһֻĿƬԼ֧Ԯ PCMCIA Կ
СһЩҪд͵ݻͷܻ
ƬĹܶӽȥӦͬĿƬԼˡ


2.  밲װ










Linux PCMCIA HOWTO İ						      4



2.1  ׼趨

ڿʼǰ ӦǷҪԼ PCMCIA ׼ Ϊ󲿷ݵ Linux
Ӧ̰汾Ѻѱ PCMCIA ʽ׼һ˵
Ҫµʽ  Linux Ӧ̰汾ڵĺĺԭ  PCMCIA
ʽ޷ʱŻҪԼ Ȼ PCMCIA
׼ڼϲѣҪ Linux һϤġ

еĶʼװPCMCIAʽ֮ǰаװ׵

    һ汾 2.0.*   2.1.* ϵеĺԭʼʽ

      һ׺ʵģ鹫óʽ

     (ѡ ) ``XForms'' X11 ʹ߽湤

Ŀǰʽ׼ʵϿںİ汾  1.2.8 ʼĺİ汾
þһĺİ汾ͱЩòҪ

Ҫ Linux ԭʼʽ ֻ°ĺӳ񵵾Ϳ  PCM
CIA ׼ġ PCMCIA ģ麬һЩԺԭʼʽĲο ָ
ҲЩҪʽĺģ	 ǰװ PCMCIA
Ҫ

Ŀǰȶĵĺĳʽԭʼ޲ <URL:ftp://sun
site.unc.edu/pub/Linux/kernel/v2.0> 
<URL:ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0> ҵ
չеĺĳʽ v2.1 Ŀ¼ҵĿǰģ鹫 ʽҲͬĵطҵ

ں 2.0  2.1 õ Linux ԭʼʽڵ Documentation/Changes
˺ĳʽҪĸϵͳԪɼ˶
ϵͳǷΪ°汾䵱Ѹ˺ĳʽ ʹ 2.1 
ģȷȷĳʽģ鹤ߵϡ

ʱƻҪ PCMCIA ·Ӧô·֧Ԯ 
Linux  ·ʽ  ڴͿЯʽͽ濨 PCMCIA
·ʽƳɿʽģ飬 Խʽ뵽
ĳʽֻ˷ѿռѡ

Ҫʹ SLIPPPP  PLIPڽʱЩܴ򿪣
ʹЩܵĿģ汾 ں 1.2.X 汾½ҵʱ
СȱǲΪʽģ趨ѡ ( SLIP ѹ )
Ҫܣֻý SLIP ᵽĳġˡ

ΪҪʹ PCMCIA ء· ĺĳʽӦý  ``Token  Ring driver sup
port'' (CONFIG_TR) Ŀ CONFIG_IBMTR رա

Ҫʹ PCMCIA IDE Ժ 1.3.72  2.1.7 棬 Ľ ʱӦҪ
CONFIG_BLK_DEV_IDE_PCMCIA ܴ򿪣ɰĺĲ ֧Ԯʽ IDE
豸µĺľͲر趨ˡ

Ҫʹ PCMCIA SCSI  ڽʱӦ CONFIG_SCSI  ܴ򿪡
ңҪʹõ SCSI 豸Ŀ֮ʽ (SCSI ŵ
ŴΨȵ )иض濨ĵͲʽӦ








Linux PCMCIA HOWTO İ						      5



ҪصΪֻռÿռѡ

Ѹ PCMCIA 豸ʹõʽģ黯޸ /etc/pcmcia/config
ָЩģֿƬʹ豻롣磬вʽ
ģ黯ˣᴮв豸ĶӦ£

     device "serial_cs"
       class "serial" module "misc/serial", "serial_cs"

׼и X ʹõĿƬ״̬óʽ cardinfo ˳ʽ
ǵ춨һѹӦʹ߽湤׼ XForms ʽ⡣ͨ 󲿷ݵ
Linux Ӧ̵ĲƷڡ 뽨 cardinfo  PCMCIA ׼ǰװ
XForms еһ  X ʽͷʽ⡣

2.2  װ

ǰװ̵ļҪ裺

    ⿪ pcmcia-cs-3.0.?.tar.gz  /usr/srcĿ¼

    µ  pcmcia-cs-3.0.? Ŀ¼ִ  ``make  config''

    ִ ``make   all''ִ ``make install''

    Ϊϵͳ /etc/pcmcia Զ PCMCIA ָѡ񵵰 

밲װҪ PCMCIA ׼ʽĿͻʽ ǽ⿪
PCMCIA ԭʼʽĶ㣬Ľָɽ
ӵʽ뼰װ

ִ ``make config'' гһЩѡϵͳȶ
ЩѡǷϰװ PCMCIA ֧ԮСļѶϢ
ıʱ

 PCMCIA ׼ʹãڽִָеָ
ĿĿ¼ʱָĿ¼ӦǸ·е PCMCIA 
߽װĿ¼λáȻᣬͿ tar Ŀ¼
ٰϣѹĿ¼ٰװǵʵ ط

 PCMCIA ׼ʹãڽִָеҪָ
ĿĿ¼ʱָĿ¼ ӦǸ·е PCMCIA
߽װĿ¼λáȻᣬͿ tar Ŀ¼
ٰϣѹĿ¼ٰװǵʵ ĵط

룬ָ Ի
a.out  ELF ϵͳʱ档ָҪΪʱ ʹõıꡣ

ĳЩ֧Ԯóʽ (cardctl   cardinfo) ڰȫ
ʽ±롣ڰȫʽ¿Էֹ root ʹ߸ĿƬĽ
ŵʽһʹִͣÿƬıĿǰ
ĽָҪóʽɰȫŵʽڶΪ ȫʽ

ЩĳʽѡӰ쵽 PCMCIA Ĺߡָ壨һ״£
ִкĳʽʱƶϳЩӰ졣⣬Ǳװ








Linux PCMCIA HOWTO İ						      6



ϵģܴӺԭʼʽЩǻ趨ÿѡ 

ִ ``make all'' ᣬ ``make install'' װ
ĳʽģ鼰óʽ ģᱻװ  /lib/modules/< 汾 >/pcmcia ڡ
cardmgr  cardctl ʽ װ /sbin Ŀ¼ڡ  cardinfo
бĻ װ /usr/bin/X11 

ᱻװ /etc/pcmcia Ŀ¼ڡװһɰ
֮ϣľɰ潨ָᱻᱻǵĵ ƻᱻӸ
*.~1~*.~2~ ֮ĵ

֪    PCMCIA    ƾƬʲ᳧Ƶģ	ʹ cardmgr/
Ŀ¼µ probe óʽ̽ĿǰҪ ľƬУDatabook TCIC-2 Ƭ
Intel i82365SL ݾƬ

£probe ޷ԶжĿ֮  и Halikan
NBD 486 ϵͳ иڲͬط TCIC-2   ʱҪ޸ rc.pcmcia
 tcic ģ飬 ҽ PCIC_OPTS 趨 ``tcic_base=0x02c0''

Щʹ Cirrus ϵͳ  NEC Versa M ϵͳ BIOS ϵ
ͳʱһر״̬¡ϵͳϣprobe
޷ҵκ֪  PCMCIA   £ ޸ rc.pcmcia
 PCIC Ϊ i82365 PCIC_OPTS  Ϊ ``wakeup=1''

2.3  װᣨʹBSD ָϵͳ

Щ Linux Ӧ̣ Slackwareʹ BSD İŷʽΪϵͳ ָķš
 /etc/rc.d/rc.M ϵͳ ġװ /etc/rc.d ڵ rc.pcm
cia ָ ر PCMCIA ϵͳ  ``make install'' ʱ probe 
Ŀಢʵ޸ rc.pcmcia ݡϵͳ 
/etc/rc.d/rc.M	ڼһִָ  PCMCIA ָ塣

     /etc/rc.d/rc.pcmcia start

вǰ涼ԣֻҪ PCMCIA ʽ syslogd  ɡ

2.4  װᣨʹSystem V ָϵͳ

2.5  װᣨʹ  System  V ʼָϵͳ

 Red Hat Caldera   Debian ȹӦ̵ Linux ʹ System V ͵İϵͳ
 и /etc/init.d   /etc/rc.d/init.d Ŀ¼ϵͳ͡
rc.pcmcia	 ָᱻװ /etc/rc.d/init.d/pcmcia   /etc/init.d/pcm
cia ¡Զ PCMCIA ܣȥ޸κεָˡ

  /etc/sysconfig   Ŀ¼ϵͳڣ  һ /etc/sysconfig/pcmcia
ᱻΪѡ  Ҫκεģѡ ( PCIC= 
PCIC_OPTS= 趨 ) ֻ ༭޸ PCMCIA
ָ塣˵Ҳᱻ İװǵ

Щǰİ汾ʹ /etc/sysconfig/pcmcia-scripts Ŀ¼ ڵ /etc/pcmcia
Ŀ¼еϵͳİ汾ѻ򽫸  /etc/pcmcia Ŀ¼ˣ










Linux PCMCIA HOWTO İ						      7



2.6  ʽѡ

Щ PCMCIA ӵĹܻܿҲܲᱻرϵͳ
ʽҲûа취⵽ǷЩܱ
ʽ man ˵ҳĿЩĹܡ

ͽ׵Ĳʽ tcic  i82365 ŷʱ
ڲøٴϵͳʱЩ޸ġʱ֢״Ƭ
⡢ظµıʸߣ豸ܱ ص
man ҳиϸڣڴ˼£

    Cirrus ɽķʱ ҪӦ cmd_time ꣬
      PCMCIA	ڵĳȡ ٶȿ 486 ϵͳ DX4-100
     ½ 6 (ڶֵ ) ӴΪ 12  16 ʱɿЧ

    Cirrus PD6729 PCI  fast_pci ꣬ PCI ŵ ȱ 25 MHz
     ʱӦ趨

    Vadem VG-468  Databook  TCIC-2 ڵ async_clock
     Ϊ PCMCIA źԵٶȡ
     ʹĳЩӵȴʱ䡣ȻҺû˵ĸʼ͵
     Ҫġ

    pcmcia_core ģи cis_speed  ȡ濨 ƬĿƬѶṹ
     Card Information Structure (CIS) ֮ٶȡ
     ЩٶȿĻʱϵͳϣ磬ƬĴȡ
     ԽƬʶ⡣

    ǲ۷ʱ⣬ϵͳһϵ ISA-to-PCMCIA
     Ĳʱi82365 ģӦ úͲΪ   1	
     extra_sockets   һ룬    PCI-to-PCMCIA  PCI-to-CardBus
     Ž߾Ͳ

еЩѡӦ޸ /etc/rc.d/rc.pcmcia磺

     # Should be either i82365 or tcic
     PCIC=i82365
     # Put socket driver timing parameters here
     PCIC_OPTS="cmd_time=12"
     # Put pcmcia_core options here
     CORE_OPTS="cis_speed=500"

һЩϵͳķʱ趨

      ARM Pentium-90  Midwest Micro Soundbook Plus ϣ ʹ
     ``freq_bypass=1 cmd_time=8''

      Midwest Micro Soundbook Eliteʹ ``cmd_time=12'' 

      Gateway Liberty ϣ ``cmd_time=16''

2.7  ϵͳԴ趨

 ƬϵͳӦԶȥ䵽ѱ׼豸ʹ˵  IO








Linux PCMCIA HOWTO İ						      8



ͲϡҲⱾ벻֪豸ĳͻֻǺ ȫɿ
Σ		  Ҫ /etc/pcmcia/config.opts
ڵԴų

ĳЩضıʼ͵֮Դ趨

     AMS SoundPro, ų irq 10.

    Щ AMS TravelPro 5300 models, use memory 0xc8000-0xcffff.

     BMX 486DX2-66, ų irq 5, irq 9.

     Chicony NB5, use memory 0xda000-0xdffff.

     Compaq Presario 1020, ų port 0x2f8-0x2ff, irq 3, irq 5.

     HP Omnibook 4000C, ų port 0x300-0x30f.

     Micron Millenia Transport, ų irq 5, irq 9.

      NEC Versa M, ų irq 9, port 0x2e0-2ff.

      NEC Versa P/75, ų irq 5, irq 9.

      NEC Versa S, ų irq 9, irq 12.

      NEC Versa 6000 ϵ, ų port 0x300-0x33f, irq 9, irq 10.

     ProStar 9200, Altima Virage,  Acquiline Hurricane DX4-100,   irq
     5, port 0x330-0x35f. ʹ memory 0xd8000-0xdffff.

      Siemens Nixdorf SIMATIC PG 720C, ʹmemory 0xc0000-0xcffff, port
     0x300-0x3bf.

      TI TravelMate 5000,ʹ memory 0xd4000-0xdffff.

      Toshiba   T4900   CT,	ų  irq  5,  port  0x2e0-0x2e8,  port
     0x330-0x338.

     Twinhead  5100, HP 4000, Sharp PC-8700  PC-8900, ų irq 9 ( Ч ),
     irq 12.

     MPC 800 ϵУų irq 5, port 0x300-0x30f Ǹ CD-ROM õġ


3.  װ뽨

 ڱ½ڡָһЩ PCMCIA ϵͳʧģʽ
Щҳ֢֮״ֻһĴ⣬
˲ضĿƬʽ

Ҫ	PCMCIA װװ Linux ʱ PCMCIA 
ʽ⼸ܡܴ֢״֪ķ⣬Ҫ
İװƬֺѣ޷ Linux ϵͳ´ȡʱ ҪԶװƬ ȫҪ








Linux PCMCIA HOWTO İ						      9



Linux ӦߵĵѡˣҲڱļġΧڡ һ ˵
ѵĲʹķװ Linux Ȼõµ PCMCIA
ʽᣬЩԴڵ⡣

3.1   PCMCIA ģ鲢û

 ֢״:

     İ汾ϡ֮ѶϢ PCMCIA ִָʱ֡

    ᣬ lsmod ûκε PCMCIA ģ顣

    cardmgr  ִб ``no pcmcia driver in /proc/devices'' ϵͳ־С

ģаİ汾Ѷģ鱻ʱڵĺ˶ԡ ķʽ
CONFIG_MODVERSIONS ѡ ĿǷ ģ
İ汾ͻᱻ뵽ÿһģڣ insmod 
Ƿִеĺϵġ  CONFIG_MODVERSIONS 
yesᱨÿŻᱻһݼ (Checksum)Щʽ
붼ᱻӦĳʽȶģ顣ּģǼ 汾ȣ
ΪֻںĽʱŻ䶯 Ҷ
ССĺĸάԭͬʵϣѱɸ
ϸΪĺĽ涼ڱʱʱѡ趨
ңһжݶȵļ˱۵Ĺˡ

Щ PCMCIA ģҪķʽЩʽܴڻ򲻴ڣ
ȫҪĵĽ 磬SCSI ƿʽҪѱ ֧Ԯ SCSI
ˡ·ʽҪ֧Ԯ·ĺġȱһ ҪĹܣinsmod
ܻᱨδķŶȥģ 

Ľǣģܵİ汾ԼĺĽѡ
趨ϡһ˵ 2.0.31 һ鱻õģ鲢޷ ĺ
2.0.31 汾ʹáرע⵽ͬ
趨⣬ЩӦѱõĺģĹе 

мѡ

    ӵе Linux Ӧ֮δʽ ʹ
     ĺǺ͸ùӦһδĺġʹδģ
     һ˵ʹĺġ

    ½ĺˣҪͰװµ PCMCIA  
     Ѿаװ˺ԭʼĻ¾͵ˡ ο PCMCIA-HOWTO
     иϸָʾ

    ĳЩ£ϵͳԪĲݿܻᵼ޷ȷģ Ԫ
     Լģ      עģԭʼ֮ Documenta
     tion/Changes  ģ鹫óʽλ ʽС
     (``minimal requirements'')

3.2  ɨʧ

֢״:









Linux PCMCIA HOWTO İ						     10



     PCMCIA ʽʱϵͳȴҲ㲢ûпƬʱҲһ 

    ϵͳ־ϵͳǰʾɹ⵽ PCMCIA ûʾ
     Ľʱ

ڱ PCMCIA ֮ᣬʽĲϺ롣
ΪÿȻǿĲʽ, Ȼһ ``  '' ϣ
ǷϿԱȷر⵽Щʱ⵽һЩ
ʱӰ쵽ϵͳ豸

ǣҪӳõĲϡ (磬Щ κ
Linux  豸ʽԤģ  Ҳʵ PCMCIA
ģ豸ûʽġ)

жּķ:

    ̽⹤ʹòʽڵ  irq_list 趨
     ֻĳЩʵʩѡ ``irq_list=5, 9, 10'' ֻ
     ɨ̽ѡе PCMCIA 豸ᱻֻʹ⼸ ϶
     (Թ⶯ )ҪԼʧܲٽ
     زҵЩϿԱȫʹõġ

    ̽⹤Աȫعرյʽʱʹ ``do_scan=0''
     ѡԭĲ嵥ʹѾʹЩѾ
     豸ռ˵Ĳϡ

һǿʹ PCMCIA ָָ PCIC_OPTS  趨:

     PCIC_OPTS="irq_list=5,9,10"

3.3  ʧ

֢״:

    ʽڿƬʱȷ룬ϵͳ־Ҳûκ 

    ϵͳ˺ͣκοƬ뵫κǰ¿

ǣ

    κοƬʱһ

    κοƬ ``anonymous memory cards''

    ϵͳ־˵кܶļΧѱųˡ

ģʽڵһβ뿨Ƭʹһɨ衣Ǳڿܵ
浽ӳ豸⣬pre-3.0.0 汾ǰʽ׼
ֽʽ汾һɨ衣崰Ǳ /etc/pcmcia/con
fig.opts ڡ ԤĴںܴܻ
ɨ赽խġΧȽϺġΧԿµλַ
0xd0000-0xdffff, 0xc0000-0xcffff, 0xc8000-0xcffff,  0xd8000-0xdffff

 DOS  Windows  PCMCIA ʽ Ϳ you may be able to








Linux PCMCIA HOWTO İ						     11



deduce what memory region those drivers use. ǵ DOS  λַͨʹ
``  '' λַʽҲὫβ͵ʮλԪ ʡԵ	 0xd0000
ľλַ	0xd000	  ǵڸ /etc/pcmcia/config.opts ʱҪȷ

3.4  ⿨ƬĲ

֢״

    ڿʹƬв⵽ȷرˡ

    ʽᷴӦ汻ƳǼ¼ϵͳ־ʱ 

һ˵ʽ (i82365  tcic) ԶⲢѡ
һʺϵĲͿƬ״̬ĸ ĳЩ Intel ݿԶ
ⲻܹ  Cirrus Ƭװ IBM ThinkPads ϵľƬ
ʱ豸޷𶯣ĲҲǡõġ״̬£
ʽҲһѱװʹеĲʹá

 i82365  tcic ʽ irq_list  ѡ
ЩϿԱԵġбɱƳֻ PCMCIA 
ʹûؿƬ״̬ĸı䡣  cs_irq ѡ׵趨
ĸҪؿƬ״̬ĸıġ

޷ҵĲϺ룬һƱѡ״̬ģʽã  i82365 
tcic  poll_interval=100 ѡ
ƱѡƬÿĸı״̬ϵͳѶȱɱ PCMCIA ʹ
ĲʱѡҲԱʹáرϵͳһϵ PCMCIA 
ʱͱעˡ

еЩѡ PCIC_OPTS= 趨 ϵͳ /etc/rc.d/rc.pcm
cia  /etc/sysconfig/pcmcia 

3.5  ſ֮Դͻ

Symptoms:

    ſƬڸԶʹʱԹ

    ſһ𱻲ʱȴֻһ

ͨͱʾѾĳ Linux ֪ϵͳ豸ͻˡPCMCIA 豸
Ǳ̬ģԣ磬ڱҪʱģر
ָرĿƬǲ۵ġһԴ嵥Ƭ
ʱرָɸԴġ״£ᱻĿƬᱻָ
ɵһǿաԴˡ

ɼϵͳ־ЩԴڹĿƬռ /etc/pcmcia/con
fig.opts   Щų⣬	 cardmgr ԴϿ⡣

3.6  豸û

֢״










Linux PCMCIA HOWTO İ						     12



    һƬʱȷʵһ졣

    ĿƬǲƳǡ

ʾƬѱɹرˡ cardmgr ĳЩԭ޷
пܵԭڿƬ趨ָĳһ豻סˡһ
·ʱûнһе·ʱ·ָ屻סˣ
õӡ

Ҫҳġִֶһ趨ָǱĶ
ġָͷ /etc/pcmcia Ŀ¼ڡǻʹö 豸Ƽ
cardmgr Ѽ¼¼ϵͳ־ ڡ 磬 ϵͳ־ʾ
`./network  ʼ eth0'' Ǳ cardmgr
һִеµ׷ָ壺

     cd /etc/pcmcia
     sh -x ./network start eth0


4.  ʹ÷Լɫ

4.1  Լ  PCMCIA 豸Ĺ

еģ鶼ȷˣûпƬ״̬£ lsmod
ῴеӡ

     Module		     Size  Used by
     ds 		     5640   2
     i82365		    15452   2
     pcmcia_core	    30012   3  [ds i82365]

ϵͳ־ҲӦðʽЩˡм
⵽˵

4.1.1  cardmgr

cardmgr 鸺 PCMCIA ۣҪʱ
ʽִʹ߽ײָӦƬĲƳ
Ķ¼ϵͳ־ڲӦƬ״̬ĸı䡣
ʾǳɹʧܡʾƬѱɹر
ˡһһʾƬӣĳЩԭ޷һ
ʾƬ޷ӡ

Cardmgr ÿһ۵豸Ѷ¼ /var/run/stab  /var/run/stab
бӣ

     Socket 0: Adaptec APA-1460 SlimSCSI
     0	     scsi    aha152x_cs      0	     sda     8	     0
     0	     scsi    aha152x_cs      1	     scd0    11      0
     Socket 1: Serial or Modem Card
     1	     serial  serial_cs	     0	     ttyS1   5	     65

⼸豸УһλʾۡڶΪ豸𡢵Ϊ
ʽơıָͬһʽʹõÿ豸ȡ롢








Linux PCMCIA HOWTO İ						     13



豸ơλ豸ҪҪ롣 ҵĻ

cardmgr ݱ /etc/pcmcia/config ڵ֪֮
ƬϿЩƬʽԼ
αĿƬĸʽĸƬġĸʽ pcmcia(5) 
man ҳϸϡ

4.1.2  cardctl  cardinfo óʽ

cardctl ۵״̬ αġ
ҲԱʾһƬĽ״̬	 и    ``cardctl config''
ӣ

     Socket 0:
     Socket 1:
       Vcc = 5.0, Vpp1 = 0.0, Vpp2 = 0.0
       Card type is memory and I/O
       IRQ 3 is dynamic shared, level mode, enabled
       Speaker output is enabled
       Function 0:
	 Config register base = 0x0800
	   Option = 0x63, status = 0x08
	 I/O window 1: 0x0280 to 0x02bf, auto sized
	 I/O window 2: 0x02f8 to 0x02ff, 8 bit

``cardctl suspend''  ``cardctl resume'' 
ڲжʽ״¹رտƬ``cardctl reset''
趨Ƭ  ``cardctl  insert''   ``cardctl  eject''
⵱һʵĿƬʱĶ
жʽԼر豸

ִ X cardinfo óʽһͼ ʾʾе	PCMCIA
۵ֿ  ݺִ   ``cardctl config'' ơṩ cardctl
ܵͼλܡ

4.1.3  Ƭ

ϣκʱƳ PCMCIA ƬȻڱ
ʽʹеĿƬƳǸ⡣ں 1.1.77 ǰϵͳ
ڴУݻƬƳʱɵˡ

4.1.4  ƬʽԴ

ƬʽԱ֧Ԯ   APM   (  Դ )  
Ѱװ׼ϵͳڵĻ  APM  ں 1.3.46
ͱˡ	  ׼	  Rick	  Faith (faith@cs.unc.edu)
ά     APM      ߿
<URL:ftp://ftp.cs.unc.edu/pub/users/faith/linux> õϵ
ͳиݵİ汾ڵĻ  PCMCIA  ģᱻԶؽ֧Ԯ APMM ܡ

ûн  APM  ıʼǵǰִ  ``cardctl sus
pend''Լڻظִ ``cardctl resume''ʵع ϻ	PCMCIA
 ʹеݻã 
ʽ޷Ӧݻ








Linux PCMCIA HOWTO İ						     14



APM Щϵͳƺе㲻̫ȶ  APM  PCMCIA ʱ
κ⣬ʽС汨ǰ򻯡

Щʽ ˵ PCMCIA SCSI ʽ޷ã¶
»ظ ʹ  PCMCIA  SCSI  ʱ ϵͳǰִ ``cardctl
eject''

4.1.5  ر PCMCIA ϵͳ

Ҫж PCMCIA ׼ invoke rc.pcmcia with:

     /etc/rc.d/rc.pcmcia stop

ָỨִУȫĿͻԶʽعر и PCM
CIA 豸ʹУؿܲعرգЩ ģܲᱻж¡
Ҫֹ״	   ִ rc.pcmcia  ֮ǰʹ ``cardctl eject''
رеĲۡ cardctl 뿪״̬ʾκεĲ۲ܱرյġ

4.2  PCMCIAָĸҪ

ÿһ PCMCIA 豸иӦ ``  '' Ӧα
ġЩ豸ʽ֯ /etc/pcmcia/config
ڡĿǰ豸 ( · SCSI cdromӲԼ )
Լּ豸 ( FTL)ÿһУжָ
/etc/pcmcia/config ڣһҪָ (磬  /etc/pcmcia/scsi  SCSI 
 )Լһѡָ (磬 /etc/pcmcia/scsi.opts)
ָڿƬʱᱻ豸Ƭʱص豸
֧Ԯ豸ĿƬԸͬ豸ָ嶼ᱻá

 config ָ /var/run/stab һЩй豸ϵ Ͽʼ
ÿһָṹһ `` 豸λַ ''Ƕһ޶λַ 豸
ADDRESS shell ڱҪ󱻽ķʽ ݵ *.opts ָϣ
ָٻӦйλַϵ豸Ӧ ҪؽſԵѶ Щ豸
豸λַǲۺ롣
豸Ѷ豸
磬·豸ᴫǵӲ̫·λַΪ豸λַһݣ  net
work.opts  ָܹʹѶ಻ͬĽ ȷѡ

е豸λַҪĿǰ PCMCIA ``scheme''Ǳ
ֻһⲿʹָʱ豸֮趨ġ Ӧã
ǿи ``home'' scheme Լһ ``work'' scheme
ǰ˲ͬ·ϡ   Ŀǰ	scheme	  ʹ ``cardctl
scheme'' ѡû scheme ָĻ ڶֵ趨

һԭϣҪ Linux ڱʼ͵ʱPCMCIA 豸ֻܱ   PCMCIA
豸ָ  벻Խ̶豸ķʽ PCMCIA 豸ȻЩ
Linux Ӧṩѽѵ豸 ϵ PCMCIA
׼£µļ޷ʹã
ӦӦûԼļ

4.3  PCMCIA ·

Linux ̫·ͨ eth0eth1 ȵȡ ͬر
ȻǱ	 tr0	tr1   ȵȡ ifconfig








Linux PCMCIA HOWTO İ						     15



Ǳۿ޸·״̬ġLinux һ
·沢豸һرһ  /dev 
ͷĵ /dev Ҳʱ벻Ҫþȡ

һ PCMCIA ̫·⵽ʱᱻָΪһõĽ濨 ֣
ͨΪ	   eth0     Cardmgr	   ִ /etc/pcmcia/network
ָĽ档

 PCMCIA ̫· /etc/rc.d/rc.inet1  
Ϊָ屻ִʱҲƬڲۡ  rc.inet1 
˻عĿ֮⣬	뽫ע	޸ /etc/pcm
cia/network.opts	 ı·趨 network  network.opts
ָֻ̫·ʱ ᱻִС    ϵͳԶ·ʽ
ҲҲ PCMCIA-aware  Linux Ӧ汾ļв鿴Ƿ PCM
CIA  ·豸ǷҪʹԶֻ༭  network.opts  ɡ

 network.opts  豸λַаĸԶֿλ
schemeۺ롢豸鼰ƬӲ̫·λַ豸
·ĿƬȡ֮ãͨΪ 0಻ͬʹĿ
صĿƬʱһղλöѡӦñ趨ͬڣ

     case "$ADDRESS" in
     *,0,*,*)
	 # definitions for network card in socket 0
	 ;;
     *,1,*,*)
	 # definitions for network card in socket 1
	 ;;
     esac

ǣǿܱԼӲλַ£

     case "$ADDRESS" in
     *,*,*,00:80:C8:76:00:B1)
	 # definitions for a D-Link card
	 ;;
     *,*,*,08:00:5A:44:80:01)
	 # definitions for an IBM card
     esac

4.3.1  ·豸

 µĲ network.optsڱʹã

      IF_PORT
	    ָ̫·շͣ  Щ޷ԶĿʹá  뿴
	    ``man ifport'' շơ

      BOOTP
	      (y/n)  趨 ʾǷ	IP  λַͷ·ѶǷԾ
	    BOOTP Эȡ

      IPADDR
	    ָIPλַ








Linux PCMCIA HOWTO İ						     16



      NETMASK, BROADCAST, NETWORK
	    ·  networking HOWTO

      GATEWAY
	    ·ʹõͨѶբ IP λַֻҪ·ķ
	    ᱻתբ

      DOMAIN
	    · domain name /etc/resolv.conf

      DNS_1, DNS_2, DNS_3
	    ƻ    IP	  λַ     nameservers	ӵ
	    /etc/resolv.confڡ

      MOUNTS
	    A ʹ  NFS б

      IPX_FRAME, IPX_NETNUM
	     IPX ·: frame	type  ·뽫䵽  ipx_interface
	    ϡ

磺

     case "$ADDRESS" in
     *,*,*,*)
	 IF_PORT="10base2"
	 BOOTP="n"
	 IPADDR="10.0.0.1"
	 NETMASK="255.255.255.0"
	 NETWORK="10.0.0.0"
	 BROADCAST="10.0.0.255"
	 GATEWAY="10.0.0.1"
	 DOMAIN="domain.org"
	 DNS_1="dns1.domain.org"
	 ;;
     esac

Զϻж·ϵͳȽϵͳӵ /etc/fstab
ڣڹѡϼ noauto  network.opts  ʹ  MOUNTS
ϵͳĹ㡣  رʹ cardctl  cardinfo
رյ·ϵͳ
ϵ·ʱûԤ·Ƴʱ޷ȫж
·ϵͳġ

һ·֮⣬network.opts ָڽѾ
򱻹رĶʱʹá  network.opts  һ
start_fn 㹦ܺУ 汻ᱻ
·ָãƽᱻ͵ܺΪһҲ
ֻͬأ stop_fn ˣڹرһ ǰá

շͿ IF_PORT 趨 PCMCIA ֮ǰ汾
ֵʾʶշĹؼ֡е·ʽܽ趨Ϊ
⣨ܵĻ 10baseT ġ ifport 
趨Ŀǰշͣ磺








Linux PCMCIA HOWTO İ						     17



     # ifport eth0 10base2
     #
     # ifport eth0
     eth0    2 (10base2)

Ŀǰ 3c589 ʽ汾Զ·ᣬ ޷ȫ
ĹܡԶ·ǰ·Ӧ
·ϵġҪȻ·Ӻᣬʹʽ ᣺

     ifconfig eth0 down up

4.3.2  ضƬ

    ʹ IBM CCAE  Socket EA ·豸ʱ  
     (10base210baseTAUI)ȷϵͳ־¼Ľ
     ͬ

     SMCMegahertz Ositech  3Com ƬʽӦûԶ
     ·  (10base2	  10baseT)   ʽʱ
     շ忨Ƭ ``һβ''

    Farallon EtherWave ʵǺ 3Com 3c589 ͬģ иշ 
     Ȼ EtherWave ʹ 10baseT ӷʽ շҪ 3c589 
     10base2 ģʽ

    ʹ IBM CCAENE4100 Thomas Conrad  Kingston 濨ʱ
     ⣬  pcnet_cs ģڵ mem_speed=# ѡ
     Ӽȡʱ䡣ڱ׼ config.opts и
     ġԿٶ 1000 ns()ϡ

    New Media ̫·ڽӵĳЩϵͳʱҪ pcmcia_core
     ģ鱻ʱ  io_speed=# ѡ IO Ĵȡʱ䡣 ָ
     CORE_OPTS	ѡ趨

    New Media ̫·ʽĶ๤֧Ԯµʽ
     汾๤һʹãԹ๤ģʽӦ
     Թˡ

     IBM  3Com token ring ʽڿƬδһ ring ʱ
     ʼǻе⡣һǵڿǰһҪЩƬ
     ·һ ʽҲҪõ IO  0xa20-0xa27 Χ
     ڡЩϵͳϣԶ IO ͻж˵Χ
     ǿõġ     ǿ԰Ѳرյ	 ֻҪ 
     pcmcia_core ģʱ趨 probe_io=0ɡ

    Newer Linksys  D-Link ĿƬиѡշʽĿǰ Linux
     ʽܿơ ֻһͨķ DOS ʹó
     Ĺóʽѡշᣬů Linux  Ҳ
     Ѱ״εĲʹ Linux ĹóʽЩܡ

     WaveLAN ·˵Jean Tourrilhes (jt@hplb.hpl.hp.com)
     дһƪߵ  (豸  )  wireless   HOWTO    <URL:http: //www-
     uk.hpl.hp.com/people/jt/Linux/Wavelan.html> ڡ









Linux PCMCIA HOWTO İ						     18



4.3.3  ·

    ĿƬбӳ̫·? 鿴ϵͳ־ȷ  cardmgr
     ȷرſһ·ʽˡûУ
     ĿƬҲܻǿʹãֻҪһֱ֧ԮĿƬݵĻֻҪ
     ⿨Ƭ NE2000 ݵĿƬ

    Ƭ׵ر?   ʹõǱ֧ԮĿƬ  ѱ cardm
     grˣ޷Ϊ豸
     ϻ򲺵ĳͻˡſƬʹЩԴ (ϵͳ־ )
     Ȼ /etc/pcmcia/config.opts ڰЩų
     ʹƬʹԴ

    ĿƬƺ׵ؽˣʱǻܶ
     ߸ʱҪıĲʽķʱϸ  2.3
     (section 2.6, page 7) ¡

    ڴȡ·ʹ ``network unreachable'' ѶϢ  
     /etc/pcmcia/network.opts 趨ĵط ⣬
     ؽĿƬͨᰲط⡣

    Ҫ /etc/pcmcia/network.opts ڵĴ ʼ ǵ IP
     λַ ping ͬһ·ϵͳȻ ping բ
     Ȼ·ڻЩϼ򵥵ĲᣬԻ 
     Ping

    Ҫȷĸ  PCMCIA  ⡣  DOS Գ̹Ӧ
     ʽǷԹжϡٴθ
     /etc/pcmcia/network.opts ָڵκ޸ġȷ ``T''
     ͷն˵ȵȵԪ

4.4  PCMCIA ݻ豸

Linux Ĵ豸Ǳ /dev/cua*  /dev/ttyS* 豸ȡá ttyS*
豸ʹڽӣֱ ӵն˻cua*
豸ʹӣ˵ݻ ÿһʵ崮в ttyS  cua
豸 Ҫʹ ĸʵ豸Ӧ϶

춴豸Ľʹ setserial ޸ġ

һ PCMCIA пݿ⵽ʱᱻָΪһõ
豸ͨ /dev/ttyS1 (cua1)  /dev/ttyS2 (cua2)
ɿԭڽĴвĿ  ttyS* 豸ᱻ    /var/run/stab    ڡ
ԭڶĴ豸ѡָ /etc/pcmcia/serial.opts Ὣ֮ᵽӦ cua* 
Ϊ /dev/modemͺܱˡ

ʹ /etc/rc.d/rc.serial  PCMCIA ݻ
ӦֻܱЩǿƶ豸Ҫ趨ݻ
κرĶʱ޸ /etc/pcmcia/serial.opts  塣 ⣬
Ҳʹ setserial ı PCMCIA 豸豸 IO Ͳ趨
ֻߴʽԵĵطѰҴ
ı俨ƬӲ巽ʵнָָ  set
serial	ѡ ԼǷ /etc/inittab Ϊһ趨









Linux PCMCIA HOWTO İ						     19



촫͵ serial.opts 豸λַɶֿλ һ scheme
ڶǲۺԼ	device instance The device instance
Ϊ֧ԮമвĿѡöݣ춵һ˵  Զ㡣
㳣ʹòֻһ PCMCIAl ݻҪ
ڵݻͬ趨£

     case "$ADDRESS" in
     *,0,*)
	 # Options for modem in socket 0
	 LINK=/dev/modem0
	 ;;
     *,1,*)
	 # Options for modem in socket 1
	 LINK=/dev/modem1
	 ;;
     esac

 PCMCIA ݿ Linux ʱˣ ѱ
ʶΪһڽвˡȻ޺ǣ PCMCIA 
ʽݻʱ ᱻָɳɲһ豸ס  parse
/var/run/stab	ʹ	/dev/modem   PCMCIA
ݻǱָɳͬ豸

㽨ĺ	Linux вʽΪһģ飬 
/etc/pcmcia/config ָģ뱻롣  ޴豸£

     device "serial_cs"
       class "serial" module "misc/serial", "serial_cs"

4.4.1  װò

µĲԲ serial.optsڱ壺

      LINK
	    Ϊ (symbolic  link)ָҪ·  ``dialout''  
	    /dev/cua* 豸

      SERIAL_OPTS
	    ָЩѡ͵ setserial 

      INITTAB
	    ָĻ inittab Ϊ豸һĿ

磺

     case "$ADDRESS" in
     *,*,*,*)
	 LINK="/dev/modem"
	 SERIAL_OPTS=""
	 INITTAB="/sbin/getty"

4.4.2  ϴ豸










Linux PCMCIA HOWTO İ						     20



    ĿΪǸݻ? ϵͳ־ȷ cardmgr ȷ
     رʶſ serial_cs ʽûУ Ҫ
     /etc/pcmcia/config  мһӦñʵ رʶĿϸ뿴½
     3.6 (section 6.1, page 31)

    ݿɹر serial_cs ? һΣ ϵͳ־ 
     serial_cs	     ʽѶϢ	 㿴 ``register_serial()
     failed''  I/O 豸ͻ ˡ һ鱨ǣ
     豸˵Ǹ 8250;  󲿷ڵ PCMCIA ݿӦǱӳ
     16550A UART ͵ġһ ͻˣ /etc/pcmcia/con
     fig.opts ѱø ĲΧų

    ˲ϳͻ? ϵͳ־ƺܺãݿǺܹ
      setserial  irq ĳ 0 ٿݻǷԹ
     ˡôʽʹһһЩƱѡģʽʹò
     ⣬Ǿϵͳĳ豸ʹ ˱
     serial_cs ѡõĲڹӦ /etc/pcmcia/config.opts
     мһϸų

    ݻֻعͺԵǸϳͻˡ

    ȷǸ PCMCIA ⡣ʹԭ̵ʽ DOS
     ¿Ƿ֪⣬ȷ򵥵
     ǰ벻Ҫʹøӵķʽԣ˵ SLIP  PPP
     ʹ SLIP ʱȴǣӦþǳ SLIP ϣ  PCM
     CIA

    õԺĵѶϢָ serial_cs ģ޷롣 Ǿͱʾ
     ĺĲ֧Ԯ豸ѽʽһģˣ
     ޸ /etc/pcmcia/config  serial ģӦ  serial_cs
     ǰͱˡ

4.5  PCMCIA SCSI

Ŀǰб֧Ԯ PCMCIA SCSI е ISA ſ 
QlogicAdaptec AHA-152X  Future Domain TMC-16x0PCMCIA 
ʽ  PCMCIA  رʽ  ( qlogic_cs.c toaster_cs.c 
fdomain_cs.c) Լ Linux SCSI  ʽ

һµ SCSI ⵽ʱ SCSI ʽѰ豸
ϵͳ־豸ȷ⵽ˡµ SCSI 豸ᱻָΪ һõ
SCSI 豸һ SCSI Ӳ /dev/sdaһ  SCSI	Ŵ  /dev/st0
У һ  CD-ROM   /dev/scd0

 1.3.X ( ) ĺġPCMCIA ʽԴϵͳ Щ
SCSI 豸ڽ濨ϡǻᱻб /var/run/stab   SCSI ָ
/etc/pcmcia/scsi Ҳᱻÿһ
豸رո豸ڶָ岢κν SCSI 豸
Ķ׵ڽ濨ʱж SCSI 豸ϵϵͳ

 1.2.X ġPCMCIA ʽ޷ԶƲĸ豸װĸ ض SCSI
濨ϡȻһ SCSI 豸֮ ԽЩ豸
/etc/pcmcia/scsi.opts С磬 и SCSI ŵԼһ CD-
ROMʹ£








Linux PCMCIA HOWTO İ						     21



     # For 1.2 kernels: list of attached devices
     SCSI_DEVICES="sda scd0"

 <scsi.opts 豸λַе㸴ӣ ΪĶ Աӵ
SCSI 濨ϡЩλַ˲ 6  7 Զ ֿλϣ
ڵļܹ豸ࡢۺ롢SCSI Ƶʶ
š߼λ룬ԼѡԵķָ롣豸ֱΪ ``sd'' ָŵ ``st''
ָŴ``sr'' ָ CD-ROM 豸  ``sg'' ָһ SCSI 豸
󲿷ݵ趨УSCSI Ƶ߼λ붼Ϊ 0
ŵָĴŵ豸scsi.opts ȱ 5 λλַ С
ָӦҪһ  PARTS  Щָ  Ȼᣬ scsi.opts
ᱻÿһԽϳ 7 λλַʹá

ĺûض SCSI 豸ϲʽ (ŵŴ )
Щ豸Ͳᱻ PCMCIA ʽи߼ЧӦǣ
豸	/var/run/stab  ڻΪ ``sd#nnnn'' ֡ ``nnnn'' Ǹ
4 ֵʮλ롣ֻҪ cardmgr ޷תһ SCSI 豸ʶ뵽Ӧ
Linux 豸ʱᷢ ¡

Ҫϲ SCSI ʽģ黯ֻе	PCMCIA SCSI ⵽ʱ
ǲŻᱻпܵġҪҪ /etc/pcmcia/config  cardmgr
ĸģڽ濨ʱҲҪ롣 磺

     device "aha152x_cs"
       class "scsi" module "scsi/scsi_mod", "scsi/sd_mod", "aha152x_cs"

һ PCMCIA ʽģǰҪ SCSI ģϲĴŵ
ʽģ롣PCMCIA ָ岻Զⱻģ黯˵ SCSI
ģ飬ֶѡ SCSI ֧ԮĹܴ򿪡

ÿڿıʼ͵ǰȽ SCSI 豸ڲƿǰ  SCSI
Żڿƿȷرֹ⻹Ҫע SCSI ƿ
ǵҪȷڳƿǰ SCSI 豸ȷ жرˡ
õȷϷʵƬǰʹ cardctl  cardinfo ҪƬƳ
е SCSI 豸 ڲ SCSI
ƿǰѿ˵Դƿͣػʼ
ǰҪġ

ʹһ ISA Ž濨ʱܻǱڵĸԣ ޷   SCSI
ŴһΪʵʹñʽ SCSI ն `` ն˵Դ ''
źšPCMCIA SCSI Ӧն˵ԴҪõ
ԴĻͱӵ豸ӦЩӵ SCSI 豸Ա
ɹӦն˵Դģ Zip ŵԼ Syquest EZ-Drive
ʹʽն˵ͲҪˡʱ򣬿Ҫʹһر ˵
APS SCSI Sentry 2иӵĵԴӦ  SCSI
豸ʱעǷκε豸Ҫṩն˵Դ 

Adaptec APA-460 SlimSCSI ֧Ԯſԭ Trantor  Ʊģ
 Adaptec  Trantor ᣬԼ Adaptec  ̱ Trantor
ĿAPA-460 еκһ Linux  ʽݡ

ҲȷҪдʽжѣ ҲΪκ˿Դ Adaptec 
õѶ









Linux PCMCIA HOWTO İ						     22



(δ֧Ԯ ) Trantor SlimSCSI ·ʶ

     Trantor / Adaptec APA-460 SlimSCSI
     FCC ID: IE8T460
     Shipped with SCSIworks! driver software

(δ֧Ԯ) Adaptec SlimSCSI ·ʶ

     Adaptec APA-1460 SlimSCSI
     FCC ID: FGT1460
     P/N: 900100
     Shipped with EZ-SCSI driver software

4.5.1  SCSI  豸Ĳ

µĲԱ scsi.optsڣ

      DO_FSTAB
	     (y/n) 趨ָǷ豸Ӧ /etc/fstab ڼӸ Ŀ

      DO_FSCK
	     (y/n) 趨ָǷ񵵰ϵͳӦڱǰ ``fsck -Ta''
	    һ¡

      DO_MOUNT
	     (y/n) 趨 ָǷ豸ӦڿƬͬʱԶر
	    ϡ

      FSTYPE, OPTS, MOUNTPT
	    ϵͳ̬ ѡԼΪ fstab Ŀϸ
	    Ĺϵ㡣

磬һһ SCSI ID Ϊ 3 2 ָĴŵ豸 һ SCSI ID
Ϊ 6  CD-ROM ָ֮壺




























Linux PCMCIA HOWTO İ						     23



     case "$ADDRESS" in
     *,sd,*,0,3,0)
	 # This device has two partitions...
	 PARTS="1 2"
	 ;;
     *,sd,*,0,3,0,1)
	 # Options for partition 1:
	 #  update /etc/fstab, and mount an ext2 fs on /usr1
	 DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
	 FSTYPE="ext2"
	 OPTS=""
	 MOUNTPT="/usr1"
	 ;;
     *,sd,*,0,3,0,2)
	 # Options for partition 2:
	 #  update /etc/fstab, and mount an MS-DOS fs on /usr2
	 DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
	 FSTYPE="msdos"
	 OPTS=""
	 MOUNTPT="/usr2"
	 ;;
     *,sr,*,0,6,0)
	 # Options for CD-ROM at SCSI ID 6
	 PARTS=""
	 DO_FSTAB="y" ; DO_FSCK="n" ; DO_MOUNT="y"
	 FSTYPE="iso9660"
	 OPTS="ro"
	 MOUNTPT="/cdrom"
	 ;;
     esac

4.5.2  SCSI

    ʹ aha152x_cs ʽ ( Adaptec New Media ԼЩ ʹ
     )ƺ SCSI ӣ֧ԮʱʹôŴʱ
     Ҫ /etc/pcmcia/config.opts м У

	  module "aha152x_cs" opts "reconnect=0"

    㽫 SCSI ֧Ԯģ (CONFIG_SCSI is ``m'')   PCMCIA
     ʱ ָҪѽ  SCSI  ʽ ҲҪ޸ /etc/pcmcia/config
     ʺϵ *_cs ʽ ǰ SCSI ģ顣

      SCSI  ű̽⵽ʱ   ``aborting   command	due  to time
     out'' ѶϢʱ󲿷иϳͻˡ

4.6  PCMCIA 俨

1tt/memory_cs/ ʽ̬俨 һṩЩ
ܵĿ PCMCIA λַռֱӴȡܡʱ
һԪ豸塣 뿴ģ man ҳи
ȡ豸ŵ͵Ĵȡ (͹ϵϵ ͳȵ
)Ԫ豸 " δӹ " δ֮λ϶ д









Linux PCMCIA HOWTO İ						     24



͵ memory.opts 豸λַ 2 λ ܹͲۺ
롣ѡӦļ俨ڵĵһָͬС

Щ͵ļ俨 д󲿷ݵļ򵥾̬ RAM ȱ `` ƬѶ ܹ ''
(CIS)e PCMCIA ѵһ scheme һ˵  cardmgr
Ὣκȱ CIS ĿƬΪһ򵥼俨  memory_cs ʽ
ˣи߼ЧӦǣһʶ
ʽĿƬܻرΪ俨ˡ

memory_cs   ʽʹ  heuristic  ²ЩƬ heuristic
д뱣ĿƬϲ޷	ʱпܻ
Ƭˣʹ dd  mkfs ʱ
ӦҪȷرָ

4.6.1  豸

вԷ memory.optsڣ

      DO_FSTAB
	     (y/n) 趨ָǷ豸Ӧ /etc/fstab ڼӸ Ŀ

      DO_FSCK
	      (y/n)  趨  ָǷ񵵰ϵͳӦڱǰ   ``fsck
	    -Ta'' һ¡

      DO_MOUNT
	     (y/n) 趨 ָǷ豸ӦڿƬͬʱԶر
	    ϡ

      FSTYPE, OPTS, MOUNTPT
	    ϵͳ̬ ѡԼΪ fstab Ŀϸ
	    Ĺϵ㡣

¡Բһ۵ļ俨Զ϶ָ壺

     case "$ADDRESS" in
     *,0,0)
	 # Mount filesystem, but don't update /etc/fstab
	 DO_FSTAB="n" ; DO_FSCK="y" ; DO_MOUNT="y"
	 FSTYPE="ext2" ; OPTS=""
	 MOUNTPT="/mem0"
	 ;;
     *,1,0)
	 # Mount filesystem, but don't update /etc/fstab
	 DO_FSTAB="n" ; DO_FSCK="y" ; DO_MOUNT="y"
	 FSTYPE="ext2" ; OPTS=""
	 MOUNTPT="/mem1"
	 ;;
     esac

4.6.2  ʹÿ俨

 ftl.opts ڵ豸λַ 3  4 λ the scheme
롢Լѡָ롣󲿷ݵĿֻһ








Linux PCMCIA HOWTO İ						     25



Դ󲿷ݵ붼 0 ġ

Ҫ俨һĴŵʹã Ҫ FTL `` ת㼶 (flash
translation layer)''һʹ  ftl_format 豸ɵһָ
˿
ʽ豸ָϸڣÿƬǸ򵥵豸 磺

     ftl_format -i /dev/mem0c0c

ǵǾ `` δӹ '' 忨ƬȡƬġһ ʽᣬ
ͿԾ ftl_cs ʽһ 豸ȡˡ磺

     mke2fs /dev/ftl0c0
     mount -t ext2 /dev/ftl0c0 /mnt

 FTL 豸еֵֹġMinor device numbers  :
Ƭ롢ƬڵԼѡڵķָ
ԱΪûзָĵһ豸  (Ƭһ ) 
ҲԱָǸӲ豸һ ``ftl0c0'' 豸ǿƬ 0ͬ Ϊ
0     ѱָˣ    ``ftl0c0p1'' 
``ftl0c0p4'' 豸ֶ 1  4 ˡ

忨ƬҪĸʽ:   FTL	 ʽ   Լ	 Microsoft
Ŀϵͳ	Flash File SystemFTL ʽеԵ
Ϊһκθ߽׵ϵͳ (ext2ms-dos ȵ ) Ϊһ
ŵ豸ʹáFFS ȫǸͬĵϵͳˡLinux Ŀ ǰ޷
FFS ʽĿƬ

4.7  PCMCIA ATA/IDE ʽӲ

 ATA/IDE  ŵ֧ԮҪ  1.3.72 µĺİ汾 ʽ ָ PCMCIA
Ĳ fixed_cs ǵڳ ATA/IDE ǰʹ  cardctl  cardinfo
ʽȹرգ Ϊʽ ûбƳɿ ``ֹû''

͵	 fixed.opts    ڵ豸λðĸλ:   Ŀǰ
schemeۺ롢ŵԼѡķָ롣ide_info   IDE
ŵš ʹ SCSI 豸ʱfixed.opts  һαи豸趨
  fixed.opts  Ӧһ PARTS ڵһָѶ
ָͻΪÿһָ 

4.7.1  ATA/IDE ̶ŵ豸

µĲԱ fixed.optsڣ

      DO_FSTAB
	     (y/n) 趨ָǷ豸Ӧ /etc/fstab ڼӸ Ŀ

      DO_FSCK
	     (y/n) 趨ָǷ񵵰ϵͳӦڱǰ ``fsck -Ta''
	    һ¡

      DO_MOUNT
	     (y/n) 趨 ָǷ豸ӦڿƬͬʱԶر
	    ϡ








Linux PCMCIA HOWTO İ						     26



      FSTYPE, OPTS, MOUNTPT
	    ϵͳ̬ ѡԼΪ fstab Ŀϸ
	    Ĺϵ㡣

Ǹ fixed.opts һ ATA/IDE ĵһ ָ /mnt
Ŀ¼ϡ

     case "$ADDRESS" in
     *,*,*)
	 PARTS="1"
	 ;;
     *,*,*,1)
	 DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
	 FSTYPE="msdos"
	 OPTS=""
	 MOUNTPT="/mnt"
	 ;;
     esac

4.7.2   ATA/IDE 

    Щ IDE ŵ PCMCIA  ĹʹñƬ趨ʱ
     ʱ𶯡ҪʹЩƬ pcmcia_core ģ 趨:

	  CORE_OPTS="unreset_delay=400"

    Ҫʹ ATA/IDE CD-ROM 豸ĺı뽫 CONFIG_BLK_DEV_IDECD
     ܴұȥͨ׼ĺĶ֧ԮˣȻ
     ĺǵҪЩ

4.8  ๦ܿ

 1.3.73 Linux ĿʼʽԹõһϣв
ʽһ̫·ʽµĺʹö๦ܿƬʱ
ĿƬԲʽ״ʹÿƬйܡ

ܶӲ峧˲̫ܻݵ	(Щ˵Ƕ ) Ϲ
ģʹöĹܡЩƬ (Diamonds  Ositech Jack 3Com 
3c562Linksys) ʽȷ֧Ԯģȡ Щ (ر
Megahertz) ܡ

ڵĺĲ֧ԮϷͬ豸ʽҪ PCMCIA 
ʽܽ˿Ƭģ̫·ݿĴȡ̫·
вʽᱻԶ롣Ȼڶ̫·ʽ `` ӵ  ''
ſƬĲϡҪʹݻж̫·ʽȻ
ʹз½в:

     ifconfig eth0 down
     rmmod 3c589_cs
     setserial /dev/modem autoconfig auto_irq
     setserial /dev/modem

ڶ setserial ֤òǰ̫·ʽʹ Ĳϡ









Linux PCMCIA HOWTO İ						     27



5.  ׵

5.1  PCMCIA 豸Դ

ϣ һϱʹõĸ豸϶ûϵ ֻҪ ( )
豸ʹͬĲϼɡ /etc/pcmcia/config.opts
ԷиطųЩ PCMCIA 豸ʹĲϡ

ͬأҲûа취ֱָ I/O λַһ PCMCIA ʹá /etc/pcm
cia/config.opts  ָɱе  PCMCIA 豸ʹõĲΧ
ųЩ豸ͻĲΧ

޸  /etc/pcmcia/config.optsᣬʹ ``kill -HUP''  card
mgr

ӿƬ״̬Ĳ cardmgr  /etc/pcmcia/config
֮ǰɵͽ׵Ĳʽģ (i82365  tcic) ѡ
ġ˸ıʲӰ졣Ҫ趨ϣڲ
ʽʱ趨 /etc/rc.d/rc.pcmcia ڵ PCIC_OPTS ʹ cs_irq= ѡ

еĿͻ˿Ƭʽи irq_list Ĳ ָ
ЩϿøǵġЩʽѡӦñ趨  /etc/pcm
cia/config :

     device "serial_cs"
       module "serial_cs" opts "irq_list=8,12"
       ...

ָвʽֻʹ  irq  8  irq  12  irq_list 趨Σ
Ƭʽ Card Services ѱ豸ʹ
˵ĲϣڽųĲϡ

5.2  Ϊͥʹ豸趨?

ǿԺܼ򵥵ʹ PCMCIA ``scheme'' ֧Ԯɡ ʹֲͬ 
schemesֱ ``home''  ``work'' Ǹ scheme ָ 趨 net
work.opts ָ:

     case "$ADDRESS" in
     work,*,*,*)
	 # definitions for network card in work scheme
	 ...
	 ;;
     home,*,*,*|default,*,*,*)
	 # definitions for network card in home scheme
	 ...
	 ;;
     esac

PCMCIA	豸λַҪݶǽ  scheme У ڶ ``case''
ӻ ``homee''  ``default'' schemes ѡһ  ˣκ
scheme û趨ˣڶֵ ``home'' 趨

ڣҪڶ趨ͷѡһִ:








Linux PCMCIA HOWTO İ						     28



     cardctl scheme home



     cardctl scheme work

cardctl  ൱춹صеĿƬǡ  PCMCIA
ϵͳǷ룬ɰȫرִСڵʱʹ  PCM
CIA 豸ʱܻʧܡ (ȻǵĽȫ  scheme 趨 )

Ҫ֪Ŀǰ PCMCIA scheme 趨ִ:

     cardctl scheme

5.3   PCMCIA 豸

Ҫһ PCMCIA  豸ϵͳҪˣСϷУ Ϊ Linux  PCMCIA
ϵͳûƳӵĳʽϡҪԪʽ
ģԼʹģʽ  cardmgr һѾִеϵͳ ϡĵ
``initrd''  Linux ʹһСĸ
ӳ񵵡ʽʱԵĶ̬ŵȻ¹
һͬĸϵͳʱĸϵͳԽ PCMCIA 豸Ȼ
¹ҳһϵͳ

initrd	ӳ񵵾Աһɿ豸: һ˵޷  PCMCIA
豸ˡΪ BIOS ƣɲǺĵơ  ֱܹ ``
ɿ (boot-able)'' 豸 (磬κο ʹõ豸 )  ``
ϵͳ (root-able)'' 豸 (磬Ա Ϊϵͳ豸    )
ĲͬҲǺҪġ	 ``    ɿ (Boot-able) '' 豸 BIOS ģ
ͨڲӲʽŵ `` ϵͳ (root-able)''
豸κοڱ뼴 ֧Ԯ豸 initrd
Ĺܿʹ豸 `` ϵͳ (root-able)'' ``ɿ (boot-
able)''

Щ Linux Ӧ汾װ PCMCIA SCSI 豸ϡʹ
ض˿֧Ԯ  PCMCIA  SCSI  CD-ROM  豸װı߼ЧӦ Ȼ
ĿǰΪֹ ûκ  Linux	װ֧ԮһԴ PCMCIA
ϵͳϿ  Linux  ĺ  ``initrd'' һ PCMCIA  
Linux ϵͳҪʹ  Linux  ϵͳһ ``initrd''
ӳ񵵰ûпõ Linux ϵͳһ Сװ PCMCIA
ŵϣһ initrd ӳ񵵣Ȼ װ PCMCIA Ŀ豸ϡ

 Linux Bootdisk-HOWTO һЩ趨ŵƬһѶȴ
ûκй initrd Ѷ initrd Ҫļµĺĳ
ʽ빩Ӧ汾ͷ  	 linux/Documentation/initrd.txt
ڿʼǰӦҪȶһļ  lilo ϤҲ ġ Ҫʹ
initrd ҲҪи  CONFIG_BLK_DEV_RAM   CONFIG_BLK_DEV_INITRD
ܴĺġ

ǸߵȽ Ҫ Linux Լ PCMCIA ϵͳһ̶ȵ
ϤȡȷĶصļٿʼ `` ʳ '' Ӧ ǿеģ
һաĻ ͻܿؽδ֪ `` ֧Ԯ ''
ط͵Լġ









Linux PCMCIA HOWTO İ						     29



ⷽҪһҪʹ PCMCIA ʽ 2.9.5 µİ汾ſԡ ɵ PCMCIA
׼ǸԪ initrd ʹá벻Ҫͬ İ汾Ԫˡ

5.3.1  pcinitrd Աָ

pcinitrd  ָһʹ	PCMCIA ָ Linux Ļ   initrd
ӳ񵵡   ӳ񵵡һСĿ¼㼶ṹ 
Լõ豸һЩλóʽ⵵Լһ PCMCIA ʽģ顣
ִ pcinitrd ʱҪָҪҪȥӳ ʽģơ Ҫ
PCMCIA	Ԫ  pcmcia_core  dsᱻԶذȥ

磬ıʼǵʹһ i82365 ͬݵ PCMCIA  һ
Adaptec SlimSCSI װиϵͳӲ Linux Խһʵ
initrd ӳ񵵣:

     pcinitrd -v initrd pcmcia/i82365.o pcmcia/aha152x_cs.o

Զ initrd ʹų̣ʹ ``loopback'' 豸
ϸӳ񵵰:

     mount -o loop -t ext2 initrd /mnt

Ȼ linuxrc ָ塣 PCMCIA ĵᱻװӳ񵵰 ͷ    /etc
ڣ   ȻҲ趨	 ϸ뿴 pcinitrd  man ҳ

5.3.2  һ initrd Ƭ

ڽ pcinitrd ӳᣬ ÿĵķʽһƬ ɿĴŵƬ
ѱѹ initrd ӳ񵵡֧Ԯ lilo ʹ ĵһſհ״ŵƬϡ
ӣ ǼҪ  PCMCIA 豸 /dev/sda1:

     mke2fs /dev/fd0
     mount /dev/fd0 /mnt
     mkdir /mnt/etc /mnt/boot /mnt/dev
     cp -a /dev/fd0 /dev/sda1 /mnt/dev
     cp [kernel-image] /mnt/vmlinuz
     gzip < [initrd-image] > /mnt/initrd

һݵ /mnt/etc/lilo.conf :

     boot=/dev/fd0
     compact
     image=/vmlinuz
	 label=linux
	 initrd=/initrd
	 read-only
	 root=/dev/sda1

ᣬִ lilo :

     lilo -r /mnt

 lilo ִʱʹ -r ѡ뱻ָĸ Ŀ¼ض  
/mnt/dev   豸ǣ ĸĿ¼ģʽ lilo








Linux PCMCIA HOWTO İ						     30



޷ʹ /dev  ĵ

5.3.3  װ initrd ӳ󵵵Linux ŵ

initrd	һ㶼ʹڵڲӲɸҵϵͳʹʱ  Linux
Լ initrd  ӳ񵵿Աڷ  Linux Ĵָڣ 	lilo  
LOADLIN   Ա趨Щӳ Linux ϵͳ

иѱúʵĸ豸 initrd ӳ񵵱ϵ ͳˣ
Linux ϵͳ׷ʹ LOADLIN:

     LOADLIN <kernel> initrd=<initrd-image>

һĿ Linux Ϳ԰װ lilo  ֱӵ
Linux ˡ 磬 /dev/hda1 Ǹ Linux Ŀָ /mnt
ԱΪ㡣 ȣĿ ָϽһ Linux Ŀ¼:

     mount /dev/hda1 /mnt
     mkdir /mnt/linux
     cp [kernel-image] /mnt/linux/vmlinuz
     cp [initrd-image] /mnt/linux/initrd

У  /dev/sda1 ҪΪ Linux ָ ŵ Ǹ
PCMCIA	SCSI  ϵ  SCSI	Ӳ Ҫװ lilo뽨һݵ
lilo.conf :

     boot=/dev/hda
     map=/mnt/linux/map
     compact
     image=/mnt/linux/vmlinuz
	     label=linux
	     root=/dev/sda1
	     initrd=/mnt/linux/initrd
	     read-only
     other=/dev/hda1
	     table=/dev/hda
	     label=windows

 boot= С˵Ҫָ豸֮¼  MBR( master boot record)
װʽ root= ָ initrd ӳ
Ҫʹõĸϵͳӳ񵵡ὨǾͲ ˡ  
other=	 ˵ҵϵͳװ /dev/hda1 

Ҫװӡ lilo ʹ:

     lilo -C lilo.conf

ǵӡlilo.conf ʹ˰ /mnt 
ľλַӵԭĿ굵ϵͳһ֧Ԯʹ boot=  root=
ѡ Linux 豸Ľ












Linux PCMCIA HOWTO İ						     31



6.  ʹδ֧ԮĿƬ

6.1  ޷ӵĿƬ

ǼĿƬѱеʽ֧ԮҪ /etc/pcm
cia/config мһĿ cardmgr 
ſЩʽҪᵽſƬϡĸʽϸ 鿴  pcm
cia    man  ҳ  һŲϵõĿƬ cardmgr
˵¼һЩѶϵͳ־ϣ ǿ
ЩѶĽĿ

Ǹ cardmgr νδ֧Ԯı浽 /usr/adm/messages ڵӡ

     cardmgr[460]: unsupported card in socket 1
     cardmgr[460]: version info: "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM"

Ӧ/etc/pcmcia/config Ŀ:

     card "Megahertz XJ2288 V.34 Fax Modem"
       version "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM"
       bind "serial_cs"

ʹ ``*'' 治õִ汾 дµĽ
ĿʱСĵذִȥԭеĴСдԼհ
ԪУȷϽĿ뱻浽־ͬĿִ 

μָκεʽһſʹãֻǺҵ
ŪǸЧʵҲܺ˵طе
ʽ֧ԮĿƬȻ󲿷ݵĽЩʽ޷Ҳ
пܻ߼ЧӦϵͳˡһ豸ʽֻ̽
ʵĿƬ̽ PCMCIA 豸Ĺ cardmgr ִУ
ʽ豸ͨǰɶȷ϶ġ

ڱ /etc/pcmcia/config  ֮ᣬ ԰ʾ cardmgr õʹ:

     kill -HUP `cat /var/run/cardmgr.pid`

趨һµĿƬһ趨ңҾͿ԰
׼

6.2  ж NE2000̫·֧Ԯ

ȣ Ȳ鿴ſǷѱ cardmgr ʶ Щûб SUPPORTED.CARDS
ڵĿƬʵЩ֧ԮĿ OEM 汾
㷢ĿƬ֪ܰӵбڡ

ĿƬû𵽣  3.6 (section 6.1, page 31) 
ĲΪĿƬһĿſƬϵ pcnet_cs ʽ
ִ cardmgr ʹñµĽˡ

 pcnet_cs  ʽ˵޷ĿƬ֮Ӳ̫·λַ
½ĿſƬϵϼ忨Ƭʽ memory_cs ϡ
ִ cardmgr ʹñµĽ
ˡҪ֪ĿƬӲ̫·λֵַλַǸԶʮ








Linux PCMCIA HOWTO İ						     32



λԪԪųɵ֣ͨᱻӡڿƬϡûӡ
ڿƬϣʹ DOS ʽʾλַ ֻҪһ֪
ִֵ:

     dd if=/dev/mem0a count=20 | od -Ax -t x1

ȻѰλַֻ֮żλԪ鱻ˣ˿Ժӡ
ڵλԪ顣λַĵһλԪʮλԪλơڣ mod
ules/pcnet_cs.c Ѱ hw_info 졣ҪΪ
ƬһµĿһλǼλơλ͵
ӲλַǰλԪ顣һλпƬرܵ; ʼʱ
Ϊ 0

	 pcnet_cs.c    ᣬ   밲װµģ顣   ٴ޸ /etc/pcmcia/con
fig Ȼı俨Ƭϵ  memory_cs 
pcnet_cs˳ָʾ뽨ˡĸ һhw_info
ԼĿݡ

ûʮλӡҵĿƬӲλַһ  pcnet_cs
ģʼʱҪ ``hard-wire( ӲӺ )'' п ܵġ /etc/pcmcia/con
fig.opts  hw_addr= ѡ:

     module "pcnet_cs" opts "hw_addr=0x00,0x80,0xc8,0x01,0x02,0x03"

˵ĵطԼĿƬ֮ӲλַȻСѾ
ˣĿƬͲ̫Ǹ NE2000 ݿˡʵϣҲ ȷǷ
κ  Ƭھǰַ֮һỹõ 

6.3  PCMCIA 濨

 Compaq Aero һЩʼ͵ʹõ  PCMCIA 濨Ŀ
ǰδ֧Ԯ Ҫϰ Aero ƺʹԶ  PCMCIA ʹ DMA
֧Ԯڲΰ쵽£Ǿ޷ҳ 

 Aero ʱ濨ǲģ Aero  BIOS ͻὨ ʱ
Linux Ϊһ Linux  PCMCIA ʽ ʱ
ǻ쵽⿨ѱѸ Linux ʽϣ
ҲᱻԲˡԣڿʱƬǾͿʹ
ã߱ȻĹܡ

6.4  ֧Ԯ Xircom ˣ

Ŀǰ PCMCIA ׼кһԮ  Xircom ̫·̫·  /
ݻʽ Ҫл Werner Koch һר Xircom
ʽۡĳýţ <URL:http://hyper.stanford.edu/hypernews/get/pcm
cia/xircom.html>

ǰ Xircom û֧ԮΪ Xircom ˾вܡ¶ǵĿƬ֮
ѶǷЩ涨ṩʽѶ


7.  СɼʽѶ










Linux PCMCIA HOWTO İ						     33



7.1  õС汨

С汨õķʹ Linux PCMCIA ѶվĳýѶ
Ϣб֪µЩ (޸Ļı䷽ )
С汨Ӧеϣ

    ϵͳͣԼ probe ѶϢ

    ʹЩ PCMCIA 

     Linux ĳʽ汾 PCMCIA ʽ汾

     /etc/pcmcia  PCMCIA ָĸı䡣

     ϵͳ־ PCMCIA йصѶϢ

е PCMCIA ʽģ cardmgr ϵͳ־ѶϢ ͨΪ
/var/log/messages   /usr/adm/messages
׷һʱӦʱһҪ쿴ĵطС汨ʱ
ͬ      ϵͳѶϢκʱ	     /etc/sys
logd.conf ЩͬѶϢ𱻴ˡ

С汨ǰһȷʹõ°ʽ׼
ȿѱҸıĻԸһ£Ȼе
ûԵعҵѪˡ

ǺĵĲݣӴĵط֮ӡֻܹ׷ݴ λַ EIP
á Ҫڣ System.map
ڵλַҳĹܺĵطڿʽģڣ
ͺ׷ˡ ʹĿǰģ鹤 ``ksyms -m'' һÿ
һģĻλַѡȡ EIP λַģ飬Ȼ EIP 
λַɻģڵλơ Ȼᣬ ִ gdb ڸģϣʹ list
ҵλơ ֻʹ -g ѡڱ
ģʱ˳ѶĹܡ

ûʹ·С汨ҲԼĵ dhinds@hyper.stanford.edu
ңҽϣܰС汨ҵվϣҲ 

7.2  ͽ PCMCIA 

PCMCIA ģ麬ĳ롣 󲿷ݵЩ붼ǰô PCMCIA_DEBUG
Ŀ¡û壬Ͳᱻ 趨λ
0ᱻ뵫ᱻáָ ø߳ˡ  PCM
CIA_DEBUG ģ鶼и pc_debug֮ѡ
ģ鱻ʱԵ
ڲ±ʹԱƳÿģΪλˡ

 PCMCIA Ӧڵ debug_tools/  Ŀ¼һЩĹ ߡ dump_tcic 
dump_i365 óʽ PCMCIA 
ݴӡҽݴѶĽ롣ж
ĿƾƬȡĻ	 ЩѶõˡ   dump_tuples
óʽг˿Ƭ CIS (ƬѶṹ )һЩҪϽ 
dump_cisreg  óʽʾƬıض˽ݴ(local configuration regis
ters)ϡ








Linux PCMCIA HOWTO İ						     34



ʱ memory_cs 忨ʽܺáκ  PCMCIA
ӣҲŵʽԱ
οƬԼͨüֱӴȡ

7.3  Ϊ¿ƬдƬʽ

Linux PCMCIA ʽʦָ Linux PCMCIA ļ µ
汾㶼Դ hyper.stanford.edu  /pub/pcmcia/doc Ŀ¼ڻվ
<URL:http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html> ҵ

Щӽһ   ISA  豸˵  ҲʹѴڵ Linux
ʽʱϰ޸һѴڵʽ
ʹڿᴦƳ豸еʽУֻм Ψһ ``
Ұ '' ʽ  Linux ĺĵ ๤

ںܶУҪ֧Ԯһ¿ϰ춴Ƕõ Ѷ
Ҫ֪˭ŶԻǽЩѶǱҲѡ	  Ȼ
ֻ⣬ûд쳧õѶҪдÿ
ʽѡ

дһ˱ע˵йһʽ Card ʽ
ͨļܹʽ	   	  PCMCIA	ԭʼ mod
ules/skeleton.c ҵ

7.4   PCMCIA ͻԶʽߵָ

ҾҪӦе PCMCIA ͻʽΪ PCMCIA ׼һ
ݵĻʺҡÿһµʽҪ׼
άҰЩʽҲ᲻ؽάĹǶ
תƵҵϡˣһʹߵԼάԸķ
ʽǷҪЩӦʽЩںװ
ʽҽЩʽ߿ʹķ
ʽΪӦá

ʽĵӦñŷ PCMCIA ԴӦ̵ͬĿ¼ṹ
ˣʽͿɱ⿪ PCMCIA ԭʼʽˡһ
ʽӦðԭʼʽ ( ./modules/) man ҳ ( ./man/) (
./etc/) ϲĿ¼ ҲӦи README ҵ

ϲĿ¼ҲӦðһ makefileһִ ``make -f ... all''
Լ ``make -f...  install'' ʽװ ʵĵ makefile
и .mk ӵԶ رϲ Makefile   all Լ install
Ŀ ʱִС

һ   makefile	αӣ

















Linux PCMCIA HOWTO İ						     35



     # Sample Makefile for contributed client driver
     FILES = sample_cs.mk README.sample_cs \
	     modules/sample_cs.c modules/sample_cs.h \
	     etc/sample etc/sample.opts man/sample_cs.4
     all:
	     $(MAKE) -C modules MODULES=sample_cs.o
     install:
	     $(MAKE) -C modules install-modules MODULES=sample_cs.o
	     $(MAKE) -C etc install-clients CLIENTS=sample
	     $(MAKE) -C man install-man4 MAN4=sample_cs.4
     dist:
	     tar czvf sample_cs.tar.gz $(FILES)

 makefile ʹ 2.9.10 汾 PCMCIA װʽ
װĿءһ ``dist'' Ŀʽ߷ 
ҲҪϰ汾ŵװϡ	 (磬 sam
ple_cs-1.5.tar.gz)һӦ£

     sample_cs.mk
     README.sample_cs
     modules/sample_cs.c
     modules/sample_cs.h
     etc/sample
     etc/sample.opts
     man/sample_cs.4

İţӦ汾ʽ⿪ʱΪ PCMCIA ԭʼʽ
ıҪԱͿʹ PCMCIA ͷԼʹϵͳ
ĻܡԶԼ飬Ǹ `` һ '' ͻʽһ 

ҽЩ׼ĿͻʽǷҵ  FTP  վ
hyper.stanford.edu   /pub/pcmcia/contrib Ŀ¼ڡĿ¼ڵ README
ν⿪Ӧʽ

PCMCIA ͻʽһֱûб䶯ܶ࣬ һб
ݵĹܡһͻʽҪ PCMCIA ׼Сݵĸ
ʱ͵һΡҲ֪ͨЩӦʽ߶ǵ
ʽҪĵط

7.5   Linux Ӧ汾άԱĵ

ʹõĹӦ̰汾ṩϵͳ߳ʽʹע PCMCIA ݣ ʹ
/etc/pcmcia  ڵ *.opts ϡ Щܡʹ߱뼰װ°
PCMCIA ׼ʱǽᱻ ޸ָٰװµ PCMCIA
׼ʱ⽫ĵ
ԶָǶж֮ǰ뽨߼ӡ
дʵѡָ壬硣

ܽʹõĹӦ̰汾й PCMCIA ׼ʹ뱾ļ֮ͬ
ĵطдļʹԼұġرǣļ
ϸָ弰ֹĲͬ

 Linux Ӧ PCMCIAҲѷ PCMCIA Ҫʽ
ʽһȥΪ˷άһᾡؽ׼ĴС








Linux PCMCIA HOWTO İ						     36



һΧڣҾûᱻҸȤĲݲŻټӽȥ
ǰ˵ʽᱻֿعӦ춱Ϻͷֿ춺Ĳ
ʽ֮綨ЩʷԵģǲΪ
ƷκεĲͬ

:

߰: ڷ뱾ƪµĹУη뵽һԭ
±ŵ״ˣĿз벻ӻ֮뷢
ִطŵ linuxer.bbs@cis.nctu.edu.tw ңԱлл!




















































Linux PCMCIA HOWTO İ						     37





































































				   CONTENTS



1. һѶӲҪ ....................................................... 1
   1.1  ................................................................. 1
   1.2 Ȩ޿ ................................................. 1
   1.3 °汾ĸҿɴĶõ ..................................... 2
   1.4 Щϵͳ֧Ԯأ ................................................... 2
   1.5 ЩPCMCIA֧Ԯأ ............................................... 2
   1.6 ʲʱҵ¿ƬŻᱻ֧Ԯأ ..................................... 2
   1.7 ʼἰѶԴ ............................................... 3
   1.8 ᲻ṩ PCMCIA Ķλأ ..................................... 3
   1.9 Ϊʲ PCMCIA ׼أ ......................................... 3

2. 밲װ ............................................................... 3
   2.1 ׼趨 ................................................... 4
   2.2 װ ................................................................. 5
   2.3 װᣨʹBSD ָϵͳ ................................... 6
   2.4 װᣨʹSystem V ָϵͳ .............................. 6
   2.5 װᣨʹ  System  V ʼָϵͳ   ......................... 6
   2.6 ʽѡ  .................................................... 7
   2.7 ϵͳԴ趨 ......................................................... 7

3. װ뽨 ..................................................... 8
   3.1  PCMCIA ģ鲢û ......................................... 9
   3.2 ɨʧ ......................................................... 9
   3.3 ʧ ...................................................... 10
   3.4 ⿨ƬĲ .......................................... 11
   3.5 ſ֮Դͻ .............................................. 11
   3.6 豸û .................................................. 11

4. ʹ÷Լɫ ........................................................ 12
   4.1 Լ  PCMCIA 豸Ĺ ................................. 12
   4.2 PCMCIAָĸҪ ................................................ 14
   4.3 PCMCIA · ....................................................... 14
   4.4 PCMCIA ݻ豸 ............................................. 18
   4.5 PCMCIA SCSI ....................................................... 20
   4.6 PCMCIA 俨 ....................................................... 23
   4.7 PCMCIA ATA/IDE ʽӲ ........................................... 25
   4.8 ๦ܿ ............................................................ 26

5. ׵ .............................................................. 27
   5.1 PCMCIA 豸Դ ............................................... 27
   5.2 Ϊͥʹ豸趨? ..................... 27
   5.3  PCMCIA 豸 .................................................. 28

6. ʹδ֧ԮĿƬ ...................................................... 31
   6.1 ޷ӵĿƬ ................................................ 31
   6.2 ж NE2000̫·֧Ԯ ................................... 31
   6.3 PCMCIA 濨 ................................................. 32
   6.4 ֧Ԯ Xircom ˣ .......................................... 32




				       i









7. СɼʽѶ ................................................ 32
   7.1 õС汨 .................................................. 33
   7.2 ͽ PCMCIA  ................................................ 33
   7.3 Ϊ¿ƬдƬʽ .......................................... 34
   7.4  PCMCIA ͻԶʽߵָ .............................. 34
   7.5  Linux Ӧ汾άԱĵ	.................................... 35


















































				       ii


