








			   Linux PCMCIA HOWTO 媩

		 @: David Hinds, dhinds@hyper.stanford.edu

Ķ: ±X HSIEH Kun-Chung, xW إ Taiwan, Republic of China (NOT Peo
	    ple's Republic of China) (linuxer.bbs@cis.nctu.edu.tw )

			     1998~219 v2.5



				   Abstract

     Dnyzpb  Linux UwˤΨϥ PCMCIA dAȵ{æ^j
     a`ݨ쪺DCo̷s|b <URL:ftp://hyper.stan
     ford.edu/pub/pcmcia/doc> Ct~ HTML |Qb
     <URL:http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html>C



1.  @TεwnD

1.1  ²

 Linux ϥΪdAȵ{Oӧ䴩 PCMCIA MC ]tFզ PCMCIA
dAȵ{ε{@MiJҲաB@M
SOdϥΪȤXʵ{B@ӥiXdJBXè̻ݭn
JΨUXʵ{d޲zFC 䴩 `` 洫 '' PCMCIA d
A]OAdNiHbɶJΩXFC

n餴boiAҥHib{ئpAбzpߨϥΡCڱNɤO
کҪDDץAiOpGziDڱzbϥΤWҵoͪ{DA
]\ڴNLkDDҦbC]ApGzϥγoӵ{AШӫHiDڱz
ϥθgA׬OnOaC

pGz˧io_QNA]ڪD (dhinds@hyper.stan
ford.edu)C

1.2  ۧ@vŧiPѰ״

ۧ@vݩ Copyright (c) 1998 David A. Hinds

󤣻ݦbڪƥ\UYiΦaQƻsδGC󪺥 קL
(o]t½ĶLy ) ]iHKOaQGA u
nL̪DoIåBbl`峹veUC

󤣻ݦbڪƥդUΦbӷ~ʪGWAMoOnA
ګܧƱziDڦzϥΡCpGzQNXyWAбz
Pڳs@UAHTwz̷sC

uO `` e{ '' {ӤwAèSηtܥ󪺫OC
zۤwӾϥΥحTIC


Linux PCMCIA HOWTO 媩						      1





Linux PCMCIA HOWTO 媩						      2



1.3  ̷sOӡHڥiqளH

ثe̷sdAȵ{ 3.0 A pTקΰL 3.0.1B 3.0.2
pC

̷sl{Xiq	     hyper.stanford.edu 	  /pub/pcmcia
ؿA s pcmcia-cs-3.0.?.tar.gzC
bq`|ƭӪbCq`ڥu|̷sXӭק睊bBCs
q`]tF{XA]ڤ]|W@íwץ
bHƤɤݡC{bíw 2.9.12 AnϥέӪn
OHHzNաCb CHANGES ɮפ|²檺tC

hyper.stanford.edu  |QM sunsite.unc.edu (HΩҦ  sunsite MW
)  /pub/Linux/kernel/pcmcia C

ϱzQۤvsĶ  PCMCIA  {ܡA WDn Linux Ӧp SlackwareB
Red HatBCalderaBYggdrasil wsĶn{i ΡC

1.4  ǨtγQ䴩OH

oǵ{ӥiHb Linux ۮeOqW`u@C` PCMCIA
䴩A oǥ]AHUtӡG IntelB CirrusB VademBVLSIB Ricoh 
Databook chipsC 䴩 IBM  Toshiba OqCun OW ISA 
(SCSI-to-PCMCIA   IDE-to-PCMCIA ) ެO Wq PCMCIA
Ѹ˸m䴩C

CardBus  ` ``Yenta'' ȦsW (]A TI BCir
rusBSMCBO2MicroBOmega Micro M Ricoh  ) Q䴩A  32 줸
CardBus duݩʽCXʵ{ 3.0  ٦b CardBus
Ѥ]u䴩 16 줸dC ѩ󵧰Oqw
ުֳtiBAsɱ`X{A]As~X{bWP
MXʵ{䴩Wi|ǮɶWXJC

b Hyundai OqWϥΪ Motorola 6AHC05GA äQ䴩C b HP Omni
book 600 W PCMCIA 礣Q䴩C

1.5  PCMCIAdQ䴩OH

ثedB ƾڥdBCdBSCSI dBATA/IDE wХd HΤ䴩
SRAM Mְ{OdOХdXʵ{ASUPPORTED.CARDS
ɮפ]tFU䴩 PC dW١]ܤ֦b@ӨtΤWiϥάҦC J^C

bC PC d]iiHϥΡC򥻤WAҦƾڥdiH ΡC
ǥCJdYL̬OQ䴩d OEM iϥΡCL IO
d]pwİOdBĥd^jثe䴩A DH
̼gXʵ{C

1.6  ɭԧڪsd~|Q䴩OH

٪OAoǼtӨèSIڥSҨӼg]Xʵ{C]ApG
zQzdQ䴩Azܤ֭nIơC zQWAڸw Linux 
ߨ˪ҦYڥDntd PCMCIA ֤ߵ{XALBͫh^mb S PC
dXʵ{WCb SUPPORTED.CARDS ɮפ즳ǥd ҥXʵ{biBC
bگOҤΪaڷ|qA LzL Email








Linux PCMCIA HOWTO 媩						      3



Ӱ֤߳]Xʵ{äOܦĲvC

syӭYۤvq~Q  Linux Ҥ䴩iPڳsi@B ߻PwơC

1.7  lHWUΨLTӷ

ڴg@@ Linux PCMCIA ϥΪ̶lHWUCӲ{bڤwNڪ
վ㦨WCsDAY@tC Linux PCMCIA T G
w藍Pdw˻P]wBPCMCIA d{]pP Co Linux
PCMCIA Tb http: //hyper.stanford.edu/HyperNews/get/pcmcia/home.html
WCϥΪ̥iHӽиgѹqll󪺤覡ӳqzP쪺sTCڴ
oˤliHNoǶWL	HOWTO (򰵡 ) d򪺰DQܬ@
ΪT_wC

ӰwﵧOqϥ Linux lHWUs ``linux-laptop''  lH WUC
Yni@BTA бH@ʧt ``help'' @rqll majordomo@vger.rut
gers.eduC Yznq\oTAбH@ʧt ``subscribe linux-laptop''
qllWۦP Email a}Co lHWUO@ Linux PCMCIA
׾®@C

Linux Laptop b http://www.cs.utexas.edu/users/kharker/linux-laptop WA
حsܯSwOqbw Linux ] PCMCIA ^ɪ
TC٦@iMtΫغcTƮwC

1.8  򤣴 PCMCIA GiXOH

ڦӨAѤGiX|xڡCoIA]ǥ\ubsĶ
ɳQܡAӥB PCMCIA ҲդS̿XA֤߫غcCҥHAڥuണ
ѦHۦXA֤ߤsĶҲաCpBAnw˨@ӰbtΤW
ɬO̻ݭnsĶҲժC @ӻAC Linux ӷ|ݭnbw L{]w
PCMCIA ӨϥΥ\CCӨӳۤv{ǡAҥH
ڨӨ}ήںϺеL̦nIӾAXC

PCMCIA {bwO\hDn  Linux Ӫ@FA o]t Red HatB CalderaB
SlackwareBYggdrasilBCraftworks  Nascent TechnologyC

1.9   PCMCIA MojOH

! ڭnOAujCҦXʵ{Ҳե[_ӥuݬ 200 K
ϺЪŶӤwC ε{[_Ӭ 70KAb /etc/pcmcia ت Ƭ
30KCɡAPCMCIA ֤߼Ҳզά 48K tΰOCq ` cardmgr
FFbdQJβXɥ~|QXO骺C Ҧ M󪺤jpä| DOS
dAȵ{ɦhjtOC

oP DOS IҥξۤG٤񥦭̪nC SOOHä|ϥΨ PCMCIA
Ҧ\Gp෽޲zμ洫\C ]Iҥξj
uݤ䴩@ةΤֳ\dHΤ䴩ֳ\ PCMCIA AҥHiH
op@ǡCpGHngӤѤ~ƾھ}ҾAYi|\h
dAȪ\ೣ[ih~IPdtӥHαFC


2.  sĶPw










Linux PCMCIA HOWTO 媩						      4



2.1  ǳƤu@P֤߳]w

b}leA zӷQQO_ݭnۤvӽsĶ PCMCIA MC ]j Linux
ӪwtwsĶL PCMCIA Xʵ{MC@WӻA
pGzݭn̷sXʵ{αzʪ  Linux Ӫ֤ߩMz  PCMCIA
Xʵ{Lkۮeɤ~|ݭnۤvʤⰵC MsĶ PCMCIA
Mb޳NWäA٬Oݭnz Linux w@wxC

UCF襲bz}lwPCMCIA{ew˧G

    @Ӫ 2.0.*   2.1.* tC֤߭l{C

      @MXAҲդε{C

     (ܩ ) ``XForms'' X11 ϥΪ̬ɭu

ثeXʵ{MƹWib֤ߪ  1.2.8 }l֤ߪW`u
@Cӥ¤@I֤ߪNIDӹFǡA̦nnoˡC

zٻݭn㪺 Linux l{A Ou̷s֤߬MɴNi ӽsĶ PCM
CIA M󪺡C PCMCIA Ҳէt@ǹ֤߭l{ɮתѦ OA
]\z|QӤtǤnXʵ{֤ߡA	 Ow PCMCIA
äݭnzo򰵡C

ثeíw֤ߵ{lɤέ׸ɥiHb <URL:ftp://sun
site.unc.edu/pub/Linux/kernel/v2.0> 
<URL:ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0> C
oi֤ߵ{ib v2.1 ؿAثeҲդ {]ibP˪aC

b֤ 2.0  2.1 ҥΪ Linux l{𤺪 Documentation/Changes
ɮפyzF֤ߵ{һݭnUOtΤCzi˵îֹz
tάO_̷sAרzwsF֤ߵ{C pGzϥ 2.1 
֤ߡAнT{zΤFT{wMҲդu㪺զXC

zغc֤߮ɡApGzpen PCMCIA dAzӥ}䴩 W`
Linux  dXʵ{A  o]AfUi⦡dC PCMCIA
dXʵ{]piJҲաA ҥHNXʵ{sĶ
ߵ{u|OŶӤwC

pGznϥ SLIPBPPP  PLIPAibإ֤߮߮ɱNoǥ\ॴ}AΪ
ϥγoǥ\઺iJҲժC Ob֤ 1.2.X Uغc@~ɦ
pʾ١ANOରJҲճ]wغcﶵ (Ҧp SLIP Y )AҥHp
Gzݭnoӥ\AunN SLIP s֤ߵ{ؤFC

Fnϥ PCMCIA ݾdA z֤ߵ{ӱN  ``Token  Ring driver sup
port'' (CONFIG_TR) oض}ҡAñN CONFIG_IBMTR oC

pGznϥ PCMCIA IDE dAw֤ 1.3.72  2.1.7 A ֤߫غc ӭnN
CONFIG_BLK_DEV_IDE_PCMCIA \ॴ}Aª֤ߨä 䴩i IDE
]ơAӸs֤ߴNݳoSO]wFC

pGznϥ PCMCIA SCSI dA bغc֤߮N CONFIG_SCSI \ ॴ}C
åBANznϥΪ SCSI ]ƶؤXʵ{} (SCSI Ϻ
BϱaBŪо )CҦSwdChXʵ{








Linux PCMCIA HOWTO 媩						      5



nA]̥u|ΪŶӤwC

pGzQ⵹ PCMCIA ]ƨϥΪXʵ{ҲդơAЭק /etc/pcmcia/config
ӫwǼҲզbإdϥΤUݳQJCҦpApGCXʵ{Q
ҲդƤFAC]ƪwqӦpUG

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

bM٦ X ҨϥΪdAε{ cardinfoC {
Owb@ӧKOϥΪ̤uM XForms {wCq`Qb j
Linux Ӫ~C pGzQسy cardinfoAzob غc PCMCIA Mew˦n
XForms MҦ@  X {Yɤε{wC

2.2  w

HUOw˹L{²nBJG

    Ѷ} pcmcia-cs-3.0.?.tar.gz  /usr/srcؿ

    bs  pcmcia-cs-3.0.? ؿ  ``make  config''

     ``make   all''AA ``make install''C

    ztΦb /etc/pcmcia ۭq PCMCIA ҰʤZMɮ C

pGzQw˨LDDn PCMCIA ɮM{ҥ]tȤXʵ{A N̸Ѷ}
PCMCIA l{𪺳hAḀ`سyOAYiNo
W[Xʵ{sĶΦw˰_ӡC

 ``make config'' |CX@ǫغcﶵAˬdztΨä
oǿﶵO_ŦXw PCMCIA 䴩CФpˬdROXT
Aר䦳DɡC

pGzQsĶ PCMCIA M󵹨LϥΡAbغcZX{w
ؼХؿɽЫwӴNؿAӬOӵ|AҦ PCMCIA u
NQw˦boؿ۹mءCMAzNiH tar oӥؿ_
ӡAA⥦LWAY۹ؿWAw˥̨A aC

pGzQsĶ PCMCIA M󵹨LϥΡAbغcZnDz
wؼХؿɽЫwӴNؿA ӬOӵ|AҦ PCMCIA
uNQw˦boؿ۹mءCMAzNiH tar oӥؿ
_ӡAA⥦LWAY۹ؿWAw˥̨A aC

pGzbLqWesĶAziHwNɦWsĶγsC oVX
a.out  ELF tήɫܦUqCZ|nDJ ϥΪsĶXСC

YǤ䴩ε{ (cardctl  M cardinfo) iHbwΥiH
ΦUsĶCbwΦUiHD root ϥΪ̧dغcC
iHΦU\@ϥΪ̰ȰB~BmdROΧܥثe
غcCغcZ|ݧAnNε{sĶwΥiHΦAww ΦC

Ǯ֤ߵ{غcﶵ|vT PCMCIA uCغcZ]@몬pU^
|b֤ߵ{ɱ_XoǼvTCt~ApGzOsĶӦw˨L








Linux PCMCIA HOWTO 媩						      6



WAq֤߭l{ŪoǫغcAάOʦa]wCӿﶵ C

 ``make all'' A ``make install'' Nإߨæw
֤ߵ{ҲդΤε{C ֤߼Ҳշ|Qw˦b  /lib/modules/<  >/pcmcia C
cardmgr M cardctl {Qw ˦b /sbin ؿC pG cardinfo
QإߪܡA| Qw˦b /usr/bin/X11 ءC

غcɷ|Qw˦b /etc/pcmcia ؿCpGzw˦b@ª
WAzªغcZ|Qƥ_Ӥ|Q\AQOsUӪɮצW ٷ|Q[
*.~1~B*.~2~ ɦWC

pGzDz    PCMCIA    OtPA	ziHϥ cardmgr/
ؿU probe ε{ӱCثe̥Dn GDatabook TCIC-2 
Intel i82365SL ۮeC

bּƱpUAprobe RONLk۰ʦaP_zOC p Gz Halikan
NBD 486 tΡA өbPa誺 TCIC-2  G ɱzNݭnק rc.pcmcia
ӸJ tcic ҲաA åBN PCIC_OPTS ѼƳ]w ``tcic_base=0x02c0''C

Ǩϥ Cirrus tΡA ]A NEC Versa M tΪ BIOS |bt
αҰʮɱNm@ӯSOamAUCbotΤWAprobe
ROõLkw  PCMCIA  C pGoͳoبơA Эק rc.pcmcia
N PCIC ] i82365A PCIC_OPTS   ``wakeup=1''C

2.3  w˧]ϥBSD ҰʤZtΡ^

 Linux ӡA]A SlackwareAϥ BSD wƤ覡tαҰ ZơC
pG /etc/rc.d/rc.M oɪtδNݳo Cw˦b /etc/rc.d  rc.pcm
cia Z|ҰʩM  PCMCIA tΡC b ``make install'' ɷ| probe RO
ӨMwzþAק rc.pcmcia eCzibtα 
/etc/rc.d/rc.M	[W@pUOӰ  PCMCIA ҰʤZC

     /etc/rc.d/rc.pcmcia start

No洡ƦbeiHAun PCMCIA Xʵ{b syslogd  ҰʧYiC

2.4  w˧]ϥSystem V ҰʤZtΡ^

2.5  w˧]ϥ  System  V _lZtΡ^

 Red HatB Caldera   Debian Ӫ Linux ϥ System V wƨtαҰ
ɮסC pG /etc/init.d   /etc/rc.d/init.d ؿtδNOoC
rc.pcmcia	 Z|Qw˨ /etc/rc.d/init.d/pcmcia  άO /etc/init.d/pcm
cia UC|۰ʱҰ PCMCIA \Ahק󪺱ҰʤZFC

pG  /etc/sysconfig   ؿbtΤA  򦳥t@ӫغc /etc/sysconfig/pcmcia
|Qإ߰_ӰҰʿﶵC pGz n󪺼Ҳտﶵ (p PCIC= 
PCIC_OPTS= ]w )A u ݽsoӫغcɦӤקu PCMCIA
ҰʤZCɮפ]|Q ᪺w˦л\C

ǥHeϥ /etc/sysconfig/pcmcia-scripts ؿӤ O{b /etc/pcmcia
ؿC{bҦtΪwαN  /etc/pcmcia ؿFAC










Linux PCMCIA HOWTO 媩						      7



2.6  Xʵ{ﶵ

 PCMCIA ֦L\i|]iण|QSOtΩұĥ
CӴXʵ{]SkO_oǥ\QĥλP_Cˬdz
Xʵ{ man ݬݱzǨL\C

CXʵ{ tcic  i82365 \h׬yƤɰѼƯS
OObĥΰtBztΤWɻݰǭקCɵoͰDgd
{DBbtUB~vAάOy]ƩʯܮtCԱ аѾ\
man |hӸ`Ab²zpUG

    Cirrus \hiغcɰѼơC ̭nӬO cmd_time XСA
     ΨӨMw PCMCIA	׬yƶgסC tק֪ 486 tΡ]p DX4-100
     ^UNq 6 (w ) [j 12  16 ɥiݨ쥦ĪGC

    Cirrus PD6729 PCI  fast_pci XСApG PCI ׬yƪt פ 25 MHz
     ֮ӳ]wC

    Vadem VG-468  Databook  TCIC-2  async_clock
     XХאּP PCMCIA ׬yƩMD׬yƬ۹諸gtסCoӺX
     з|ϬYǾާ@WW[ݪɶCMӡAڦn٨SťӵOq
     ݭno򰵪C

    pcmcia_core Ҳզ cis_speed ѼơA OΨӧsd dTc
     Card Information Structure (CIS) OtסC
     ǳtק֪׬yƮɧǪtΤWAW[oӰѼơ]ҦpACds^
     iHѨMdѪDC

    oاڭ̨ëDQפɪĳDApGztΤW@ӥHW ISA-to-PCMCIA
     ΦbXRWLѮɡAi82365 Ҳ өMѼƳ]   1	
     extra_sockets   @_QJA    PCI-to-PCMCIA  PCI-to-CardBus
     ̴No򰵡C

Ҧoǿﶵק /etc/rc.d/rc.pcmciaӫغcAҦpG

     # 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"

oئ@ǯStΪɳ]wG

     b ARM Pentium-90  Midwest Micro Soundbook Plus WA ϥ
     ``freq_bypass=1 cmd_time=8''C

     b Midwest Micro Soundbook EliteAϥ ``cmd_time=12'' C

     b Gateway Liberty WAո ``cmd_time=16''C

2.7  tθ귽]w

 dAȨtӦ۰ʦahקKtwQLзǳ]ƨϥΤF  IO








Linux PCMCIA HOWTO 媩						      8



M_C]|յ۰PW]ƶĬAuL٤Oܧ iaC
pGJoرΡA		  zݭnN /etc/pcmcia/config.opts
귽ưC

HUOYǯSwOq귽]wG

    b AMS SoundPro, ư irq 10.

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

    b BMX 486DX2-66, ư irq 5, irq 9.

    b Chicony NB5, use memory 0xda000-0xdffff.

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

    b HP Omnibook 4000C, ư port 0x300-0x30f.

    b Micron Millenia Transport, ư irq 5, irq 9.

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

    b  NEC Versa P/75, ư irq 5, irq 9.

    b  NEC Versa S, ư irq 9, irq 12.

    b  NEC Versa 6000 tC, ư port 0x300-0x33f, irq 9, irq 10.

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

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

    b  TI TravelMate 5000,ϥ memory 0xd4000-0xdffff.

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

    b Twinhead  5100, HP 4000, Sharp PC-8700 M PC-8900, ư irq 9 (  ),
     irq 12.

    b MPC 800 tCAư irq 5, port 0x300-0x30f O CD-ROM ΪC


3.  ѨMw˻PغcD

 b`ط|X@Ǳ` PCMCIA ltΪѼҦCбzյۦb
oǨҤlXzҹJ쪺DgCuyz@몺~DA
]äwSwdXʵ{C

Qnbڭ̸յ۸g	PCMCIA ˸mӦw Linux ɹJ쪺 PCMCIA X
ʵ{DXGiCƦܱzqgDO譱DAQn
w˺ϤSAרOLkb Linux tΤUsɡC nۭqw˺Ϥ n








Linux PCMCIA HOWTO 媩						      9



Linux ̪ܤFAo]b󪺽d򤺡C @ ӻA
̨ΪBJOϥΨLkӦw˦n LinuxA M᮳̷s PCMCIA
Xʵ{AAӰǤsbDC

3.1   PCMCIA ֤߼ҲըèSJ

 g:

     ֤ߪŦX~Tb PCMCIA ҰʤZɥX{C

    bҰʫA lsmod èSqX PCMCIA ҲաC

    cardmgr  i ``no pcmcia driver in /proc/devices'' btΤxC

֤߼Ҳդ]AT|bҲճQJɻP{b֤߬ۮֹCˬd 覡
CONFIG_MODVERSIONS o֤߿ﶵӬݡC pGoجO_ wA
֤ߪXN|QsĶC@ӼҲդA insmod |ˬd
oO_P椤֤߬O۲ŦXC pG CONFIG_MODVERSIONS O
yesA֤ߩҴCӲŸ|Q@ˬd` (Checksum)Coǵ{
X|QP۹{XۤsĶҲաCo򰵦bҲխ̴ ̿סA
]ˬd`u|b֤ߤʮɤ~|ܰʡA B
pp֤ߧsɯŴXGPӬۦPCbȤWAˬd`wܦ[
YA]\h֤ߤ̿ObsĶɴɮ֤߿ﶵ]wC
BAˬd`vܦ@ӧP_ۮeתݴd[uFC

 PCMCIA Ҳջݭn֤ߪAȵ{AoǪAȵ{isbΤsbA
onݮ֤ߪغcC ҦpASCSI dXʵ{Nݭn֤ߤwQغc 䴩F SCSI
FCXʵ{Nݭn䴩֤ߡCpG֤߯ʤ֤F@ ݭn\Ainsmod
i|iXwqŸӤhJӼҲ C

o~򪺵GOA֤߼ҲպKaP֤ߪHγ\h֤߫غcﶵ
]w۵XC@ӻA֤ 2.0.31 @ճQsĶnҲըõLkQ L֤
2.0.31 WϥΡCDSOa`NNӫغcۦP
]wCoӰDANǨwsĶn֤߼Ҳժu@ܱoI_ǤF C

zXؿﶵG

    pGz֦O Linux gsĶXʵ{A ˬdzҨϥ
     ֤߬OMӨ@_gsĶ֤ߡCpGzQϥΥgsĶҲ
     A@ӻAoϥλPQ񪺮֤ߡC

    pGAsغcΤɯŧA֤ߤFAAiݭnsĶMw˷s PCMCIA M C
     pGAwgwˤF֤߭l𪺸ܡAoƴNoeFC аѦ PCMCIA-HOWTO
     ԲӪܡC

    bYǱΤUAPLtΤ󪺤ۮei|ɭPLkTJ֤߼Ҳ C
     pGzۤvɯŮ֤ߡA      Ъ`NԦCҲխlɮ׾𤺤 Documenta
     tion/Changes  ɮפwҲդε{ΤGi줽 {C̤pݨD
     (``minimal requirements'')C

3.2  _y

g:









Linux PCMCIA HOWTO 媩						     10



     PCMCIA Xʵ{QJɨtΫoʤ]ʡANèSdۮɤ]@ ˡC

    tΤxbtηꦺeܦ\a PCMCIA A٨S
     _GɡC

b PCMCIA AXʵ{|ŵ۪_XCoӰ
@|CMOŵ۪_{, MᲣͤ@ `` n '' _A
ӬݬݬO_oӴ_iHQTaQCǮɭԡA@ǯS
_ɷ|vTLtγ]ơC

o򰻴zѬOAڭ̭nXuŵۥiΪ_C (ҦpAǤO QL
Linux  ]Xʵ{ҹwd۪A  ]ëDWws PCMCIA
AάOwsۨL]ƦèSXʵ{C)

G~򪺤k:

    _u@iHϥδXʵ{  irq_list ѼƳ]wӭ
     uYǴѹIӤwCҦp ``irq_list=5, 9, 10'' |uo
     TӴ_yӤwCҦ PCMCIA ]Ʒ|QuϥγoXӴ _Ӥw
     (p̲LFʧ@ )CAiݭn|մXѨæAAF
     a~Ǵ_iHQwaϥΪC

    _u@iHQaAbJXʵ{ɨϥΤF ``do_scan=0''
     ﶵCo򰵡A|w_MQϥεۡA̤wgקKϥΨǤwg
     QL]ƩҦΤF_C

t@ӤkAڭ̥iHϥΦb PCMCIA ҰʤZw PCIC_OPTS  ]wAҦp:

     PCIC_OPTS="irq_list=5,9,10"

3.3  O鰻

g:

    DXʵ{bdäsۮɳQTaJAӥBbtΤx]S ~C

    tηʤFMΥdJbnT_eNs}C

άOG

    dJɷ|ͤ@ӰnAۧCHnC

    dQ~{ ``anonymous memory cards''C

    tΤxiܦhOdwQưb~FC

DҲյ{bĤ@Jdϰ@wO鱽yCoӰʧ@bia
zALOMg]ơCt~Apre-3.0.0 eXʵ{M
|{Xʵ{i@ByCO鵡OQwqb /etc/pcmcia/con
fig.opts C w]fܤjAҥHi|
UӭydCXzdiլݬݥ]tiHU}
G0xd0000-0xdffff, 0xc0000-0xcffff, 0xc8000-0xcffff,  0xd8000-0xdffffC

pGA DOS  Windows  PCMCIA Xʵ{A ANiH you may be able to








Linux PCMCIA HOWTO 媩						     11



deduce what memory region those drivers use. аOo DOS  O}q`ϥ
`` q '' }ΦA]NO|NڪQ줸 Ʀrٲ]ҥH	 0xd0000
}NO	0xd000	^C  Oob /etc/pcmcia/config.opts ɭnT{oC

3.4  ~adJPX

gG

    b}ϥdۨóQBTaQغcFC

    Xʵ{|XdQJβXAάOObtΤxBήɹnT C

@ӻAdXʵ{ (i82365  tcic) |۰ʦaÿ
ܤ@ӾAX_ӶǰedAʡC Y Intel ۮe۰
_u@C ]t Cirrus M˦b IBM ThinkPads WC
pGbɳ]ƵLk_ʡA_]|OmCoتAUAdX
ʵ{]\|D@ӤwQL˸mϥΤ_ӨϥΡC

b i82365 M tcic Xʵ{ت irq_list  ﶵiH
ΨӭǴ_iHQժCoӴ_CiQuQ PCMCIA d
ҨϥΩΥΨӺʱdAܡC t~ cs_irq ﶵiզa]w
Ӵ_nQΨӺʱdAܪC

pGzLki`u@_XA٦@Ӳ窱AҦiΡG O i82365 
tcic  poll_interval=100 oﶵA
ΨӲdCܪACpGztΤwuʥiQ PCMCIA dϥ
_ɳoӿﶵ]iHQϥΡCSOObtΤ@إHW PCMCIA 
ɴN`NoIFC

Ҧoǿﶵb PCIC_OPTS= oӳ]wA ݱztάO]b /etc/rc.d/rc.pcm
cia ةάO /etc/sysconfig/pcmcia C

3.5  id귽۽Ĭ

Symptoms:

    idbUۿWۨϥήɥiHu@A

    id@_QۮɡAou@ӥiH`u@C

q`oNܤwgMY Linux Dtγ]Ƭ۽ĬFCPCMCIA ]
OQʺAغcAҥHAҦpA_ObQݭnɳQtAӤOSOQ
wSOdάOѪC{b@ӥiθ귽MAd|bL
Qغcɨ̧ǦaQ귽CboتpUA̫Qغcd|Q
@ӨëDOŶ۪귽WFC

ziˬdtΤxǸ귽QDbu@dҦεۡCb /etc/pcmcia/con
fig.opts   اoǱưb~A	AsҰ cardmgr FӦAJ귽ƮwC

3.6  ]ƫغcèS

gG










Linux PCMCIA HOWTO 媩						     12



    @ӥdQJɡATiť@ӰnTC

    UӪdެOJβXQzBC

oܥdwQ\aFCO cardmgr ]Yǭ]wLk
غc{ǡC̦i઺]Obd]wZY@BJQxFC@
dQJɨèSW@ӥʤWɡAZQxFA
oNO̦nҤlC

nXDXbءAAiHʰ@ӳ]wZӬݬݥOQxb
CoӤZNb /etc/pcmcia ؿCL̷|ϥΤGӰѼ G]ƦW٤ΰʥC
cardmgr |OغcROObtΤx C ҦpA btΤxܥX
`./network  RO}lF eth0'' OQ cardmgr
̫@Ӱ檺ROAHURO|lܳoӤZG

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


4.  ϥΤkHίS

4.1  ΨӫغcHκʱ  PCMCIA ]ƪu

pGҦҲճQTaJFAbSdQJAUA lsmod
ROX|ݰ_ӹHCˤlC

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

tΤx]ӥ]tXʵ{ǥDQo{FBXӴ
QFXC

4.1.1  cardmgrغcF

cardmgr Ftdʱ PCMCIA ѡAݭnɸJ
LXʵ{AåBϥΪ̶hZӤdJPXC
|⥦ʧ@ObtΤxåιnӦ^dAܡCn
ժܫغcBJO\٬OѡCӰnTܨBwQ\aP
غcFC@@CnTܥdQA]Yǭ]LkQغcC@
CnܥdLkQC

Cardmgr |C@ӴѪ]ƸTOb /var/run/stab ءCHUO /var/run/stab
CҤlG

     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

boXҴyz]ƤAĤ@ܴѡBĤG]OBĤT
Xʵ{W١Bĥ|QΨӫwbP@Xʵ{UϥΪCӳ]ƨXB








Linux PCMCIA HOWTO 媩						     13



ĤӬO]ƦW١B̫Ooӳ]ƪDnΦnXC]pGi 쪺ܡ^

cardmgr F̾ڳQsb /etc/pcmcia/config w
dƮwӫغcoǥdCoɮ״yzF\hӧOXʵ{AHΦp
\hdA٦Xʵ{ݩӥdCoɮת榡b pcmcia(5) 
man ئԲӪơC

4.1.2  cardctl  cardinfo ε{

cardctl ROiHΨˬdѪAA άݥ̬OpQغcC
]iHQΨĵܤ@ӥdغcAC	 o঳    ``cardctl config''
ROXҤlG

     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'' M ``cardctl resume'' өROiH
ӦbݨUXʵ{pUdC``cardctl reset''
RO|s]wΫغcdC  ``cardctl  insert''  M ``cardctl  eject''
N@ӹ骺dJΩXɩҰʧ@
Ao]tJΨUXʵ{HΫغc]ơC

pGz XA cardinfo ε{|ͤ@ӹ ܨܩҦ	PCMCIA
Ѫ{pA  eM   ``cardctl config'' CٴѨL cardctl
\઺ϧΤƥ\C

4.1.3  JPXd

bzפWAAiHbɶJβX PCMCIA dCMӡA⥿bQ
L{ϥΤdXӨäOӦnDNCb֤ 1.1.77 Het
`|bCƾھdQXɳyA{bwץkFC

4.1.4  dAȵ{Pi෽޲z

dAȵ{iHsĶ䴩   APM   (  i෽޲z )  A
pGAwwˤFoӮMAtΤܡC  APM  b֤ 1.3.46
]t^HNQXFC	  {boMQ	  Rick	  Faith (faith@cs.unc.edu)
Һ@A     APM      uiH
<URL:ftp://ftp.cs.unc.edu/pub/users/faith/linux> CpGAt
γQXӬۮebܡA  PCMCIA  Ҳշ|Q۰ʦaغc䴩 APMM \C

pGSǵ  APMA  AiHbamAOqe  ``cardctl sus
pend''AHΦb^Ы ``cardctl resume''A~Aa WέҧA	PCMCIA
dC o勵bϥΤƾھäAΡA Ц]
CXʵ{õLkxsP^ƾھB@ѼơC








Linux PCMCIA HOWTO 媩						     14



APM bǨtΤWGIíwC pGAJ APM M PCMCIA @ή
DAбzbX{pieյۧD²ơC

Xʵ{A p PCMCIA SCSI Xʵ{ALkqamsʧ@g
U^йLӡC bϥ  PCMCIA  SCSI  dɡA bamtΫe ``cardctl
eject''C

4.1.5   PCMCIA t

nUӪ PCMCIA MA invoke rc.pcmcia with:

     /etc/rc.d/rc.pcmcia stop

oӤZ|XӰAȤۭqXʵ{ӧa CpG PCM
CIA ]ƥQϥΤAoiण|ܧaA ֤߼Ҳեiण|QUC
noͳoتpA	   Цb rc.pcmcia  eϥ ``cardctl eject''
ҦѡC cardctl RO}A|ܦpG󪺴ѤQC

4.2  PCMCIAغcZn

C@ PCMCIA ]Ƴ|Ӭ۹ `` O '' ӴyzӦpQ
cP޲zCoOP]Xʵ{Q´b /etc/pcmcia/config
Cثe@ؿXJ]ƪO ( B SCSIB cdromBwХHΦC )
HΤGذO]O (OP FTL)CbC@OAGӤZb
/etc/pcmcia/config G@ӥDnغcZ (ҦpA  /etc/pcmcia/scsi O SCSI ]
ƪ )AHΤ@ӿﶵZ (ҦpA /etc/pcmcia/scsi.opts)C
DZbdQJɷ|QҥΨӫغcӳ]ơAdQXӳ]
C䴩hس]ƪdAwUOP]ƪZ|QҥΡC

o config Z|q /var/run/stab ظѥX@Ǧ]ƤW ƶ}lC
C@ӤZ|cv@ `` ]Ʀ} ''AOW@LG} ΨӴyzӳ]Ʀb
ADDRESS shell ܼƤQnDQغc覡C| Qǻ *.opts ZWA
ӤZA^bo}W] ӭn˦aغc~iHTC ǳ]ơA
]Ʀ}NOѸXC
٦L]ơA|]tt~θTiHΨӨMwpӫغcӳ]
CҦpA]Ʒ|ǻL̪wФAӺ}]Ʀ}@A  net
work.opts  ZϥγoTӱq\hPغc TܡC

Ҧ]Ʀ}nOثe PCMCIA ``scheme''CoӰѼƬOQ
bu@ӥ~ϥΪ̫wܼƮɥΨӹ]ƫغchس]wC󥦪 ΡA
Ҧpڭ̥iH ``home'' scheme HΤ@ ``work'' schemeA
̥]AFPغcѼƪզXC   ثe	scheme	  iHϥ ``cardctl
scheme'' ROӰܡCpGS scheme QwܴN HwȨӳ]wC

@hWAnغc Linux bOqWɡAPCMCIA ]ƥuQg   PCMCIA
]ƤZӫغcC  ФHյۥHغcTw]ƪ覡ӫغc PCMCIA ]ơCMӡA
Linux ӴѤwbL̦ۤw]ƫغc uW PCMCIA
MCboرpUAHUXӥDDiLkϥΡA
ӷ|L̦ۤvoC

4.3  PCMCIA d

Linux Aӫdq`Qٰ eth0Beth1 C dP˦aQݫݡC
Mӥ̳Qٰ	 tr0B	tr1   C ifconfig








Linux PCMCIA HOWTO 媩						     15



ROOQΨ[ݤέקACLinux t@S
IOä|L]Ƥ@˦aQݦO@Ӧb  /dev 
YɮסCҥHpGzb /dev 䤣쥦̮ɽФnıoYC

@ PCMCIA AӺdQɡA|QwĤ@ӥiΪd WrA
q`	   eth0C     Cardmgr	   RO| /etc/pcmcia/network
ZӫغcC

ФűNz PCMCIA AӺdغcb /etc/rc.d/rc.inet1  
A]oӤZQɤ]\däbءC b rc.inet1 
F^kؤ~A	䥦ROCбNL̵ѱC	ӥt~ק /etc/pcm
cia/network.opts	 ӰtXza]wC network M network.opts
ZubzAӺdsbɤ~ |QC    pGztΦ۰ʺغc{A
]\O]\O PCMCIA-awareC бqz Linux 󤤬dݬݬO_ PCM
CIA  ]ƬO_ݭnϥΦ۰ʤƤuӫغcΥuݽs  network.opts Y iC

Ǩ network.opts  ]Ʀ}]tF|ӥHrӤ}G
schemeBѸXB]ƴĳΥdw骺AӺ}C]ƴĳOΨ
\hdXΡAq` 0CpGz\hPϥΥ
adɡAt@ӴѦmӫغcﶵӳQ]wApPbG

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

άOḀiQHۤvw}QغcApUG

     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  ]ưѼ

 HUѼƥib network.optsQϥΡG

      IF_PORT
	    wAӺoA  oOw墨ǵLk۰ʰdϥΡC  Ь
	    ``man ifport'' oW١C

      BOOTP
	    L  (y/n)  ]wG ܬO_D	IP  }MTO_iHg
	    BOOTP wC

      IPADDR
	    wIP}C








Linux PCMCIA HOWTO 媩						     16



      NETMASK, BROADCAST, NETWORK
	    򥻺ѼơG аѾ\ networking HOWTO

      GATEWAY
	    DlϥΪqTh IP }CunOboӤlH~ʥ]
	    |QoӹhDC

      DOMAIN
	    D domain nameAQΨӫإ /etc/resolv.confC

      DNS_1, DNS_2, DNS_3
	    DW٩άO    IP	  }oӤ     nameserversA	Q[
	    /etc/resolv.confC

      MOUNTS
	    A oӤϥΨӰ  NFS JICC

      IPX_FRAME, IPX_NETNUM
	     IPX : frame	type  κXNQǿ  ipx_interface
	    ROWC

ҦpG

     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

YQ۰ʱWΨUɮרtΡANɮרtΥ[ /etc/fstab
AbWﶵW[W noautoC b network.opts  ϥ  MOUNTS
ܼƦCɮרtΪJIC  oSOObϥ cardctl  cardinfo
ROɮרtάOγoӤk
غcӱWdɡCpGbSwĵUdQXɡAOLka
UɮרtΪC

F@몺غcѼƤ~Anetwork.opts ZiΨӦbwg
Qغc_γQᰵt~ʧ@ɨϥΡC pG network.opts w qF@ӥs
start_fn ROh\IsA Qغcᥦ|Q
ZұҥΡAӤWٱN|Qǰeoӥ\ưĤ@ӰѼơ]]
uoӡ^CۦPaApG stop_fn QwqFA򥦷|b@ eQҥΡC

oiH IF_PORT ӳ]wCiHO PCMCIA e
ȪܩάOѧOorCҦXʵ{iN]w
ʰ]pGi઺ܡ^άO 10baseT C ifport ROiΨ
ˬdγ]wثeoAҦpG








Linux PCMCIA HOWTO 媩						     17



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

ثe 3c589 Xʵ{|۰ʰsA ٵLko
\CYQH۰ʰӤu@AbdQغceuӬOws
dWCnMAnAziHUCROXʵ{ˬds G

     ifconfig eth0 down up

4.3.2  Swdy

    ϥ IBM CCAE M Socket EA db]ƳQغcɡA zݬDӱ 
     (10base2B10baseTBAUI)AýT{bztΤxWҰOP
     zҳsۦPC

     SMCBMegahertzB Ositech  3Com dXʵ{ӷ|۰ʰs
     ۪  (10base2	  10baseT) C  Xʵ{QJɷ|]
     woӭqwqd ``Ĥ@qQ''C

    Farallon EtherWave ƹWOM 3Com 3c589 ۦPA ӯSo C
     M EtherWave ϥ 10baseT s覡A oݭn 3c589 غc
     10base2 ҦC

    pGzϥ IBM CCAEBNE4100B Thomas Conrad  Kingston dɹJ
     DA иյۦb pcnet_cs Ҳդ mem_speed=# ﶵ
     W[OsɶCbзǪ config.opts ɮפӱЧAp
     dҡCиլݬݳtצb 1000 ns(`)HWC

    New Media AӺdbYǨtΤWɡAiݭnb pcmcia_core
     ҲճQJɡA H io_speed=# ﶵӼW[ IO 𪺦sɶC bҰʤZ
     CORE_OPTS	ﶵiH]wC

    New Media AӺdXʵ{huǼ䴩äC̷sXʵ{
     iPhuǼ֤ߤ@_ϥΡA|LhuǼʥ]CWhҦ
     iHu@`FC

     IBM  3Com token ring dXʵ{bd|W@ ring W
     NlƬO|IDCҥHФ@wOob}e@wnoǥdM
     sb@_C oXʵ{]ݭnŸm IO b 0xa20-0xa27 d
     CbǨtΤWA۰ IO Ĭˬd|~aPwoӰdä
     OŸmC   JoرpA  ڭ̥iHˬdC	 unb J
     pcmcia_core Ҳծɳ]w probe_io=0YiC

    Newer Linksys  D-Link dӯSܦo覡Aثe٤Q Linux
     Xʵ{ү౱C u@ܳqkOH DOS }èϥμt
     өҥIε{ӿܦoAAx}i Linux ءC ڲ{b]
     bM䭺ժ̨ϥ Linux ε{Ӱoǥ\C

     WaveLAN LudӻAJean Tourrilhes (jt@hplb.hpl.hp.com)
     gF@gLu  (]  )  wireless   HOWTO  b  <URL:http: //www-
     uk.hpl.hp.com/people/jt/Linux/Wavelan.html> C









Linux PCMCIA HOWTO 媩						     18



4.3.3  E_dD

    zdQAӺd? ЬdݨtΤxýT{  cardmgr
     wTaFoidAӥBwҰʤF@غXʵ{FCpGSAz
     d]i٬OiHϥΡAunP@سQ䴩dۮeܡCun
     OodOP NE2000 ۮediHC

    daQغcF?   pGAϥΪOQ䴩dA  ӥBwQ card
     mgrҿFA٬OLku@AoiO]PL]
     oʹ_ΰ𪺽ĬFCЬdoidϥΤFܨǸ귽 (qtΤxا )A
     Mյۦb /etc/pcmcia/config.opts oǵư
     ϥdϥΨL귽C

    pGAdGwaغcFAɭ٬O|ꦺʡAרOb
     tɡAAiݭnյۧܧAXʵ{ɰѼơCԲӸƽ  2.3
     (section 2.6, page 7) oC

    AbsϹJ칳 ``network unreachable'' oTA iO Ab
     /etc/pcmcia/network.opts ]w~aC t~A
     ~aغcdq`|wRaoͰDC

    nEdb /etc/pcmcia/network.opts ~A }lХյ H̪ IP
     } ping P@LtΡCMյ ping Ah
     DAMLCbէoǸ²檺իAAHWr 
     PingC

    ЭnT{ADu  PCMCIA  DC AiHb DOS UHtӨ
     Xʵ{XʬݬݬO_iHu@Ao˱NUP_CæA˧A
     /etc/pcmcia/network.opts ZקCýT{Alu B``T''
     YB׺ݹq󳣥i`u@C

4.4  PCMCIA CPƾھ]

Linux C]ƳOQg /dev/cua* M /dev/ttyS* S]ɮרӰΡC ttyS*
]ƳQϥΦbiӪsAҦp as׺ݾCcua*
]ƳQϥΦb~sApƾھC ӨC@ӹC𳣦U ttyS M cua
ӳ]ɡG nϥ ӾA]ƨAΤWѱzӨMwC

C]ƪغcAziϥ setserial ROˬdPקC

@ PCMCIA CdμƾڥdQɡA|QwĤ@ӥiΪ
C]ơCq`O /dev/ttyS1 (cua1)  /dev/ttyS2 (cua2)
AoݭwتCƥءC  ttyS* ]Ʒ|Q ib   /var/run/stab    C
줺wC]ƿﶵZ /etc/pcmcia/serial.opts |Ns۹ cua* ]
ɮצ /dev/modemCo˴NܫKQFC

ФŨϥ /etc/rc.d/rc.serial ӫغc PCMCIA ƾھCoӤ
ZӥuQΨӫغcǫDiʪ]ơCpGAQn]wAƾھ
SOʧ@ɡAЭק /etc/pcmcia/serial.opts oӤ ZC t~A
]ФŨϥ setserial ӧ PCMCIA C]ƪ] IO M_]wC
o˰u|iDCXʵ{줣諸aMC]
ơA|ܥdw譱uQغcƹCCغcZ\zw L set
serial	ﶵA HάO_zӦb /etc/inittab oӰ[@]wC









Linux PCMCIA HOWTO 媩						     19



ֶǰe serial.opts ]Ʀ}@TӥѳrIҤ}G @O schemeB
ĤGOѸXHβĬO	device instanceC The device instance
|䴩hC𪺥dΦhӼƾڡA@dӻA  ûOsC
pGA`ϥΤu@Ӫ PCMCIAl ƾھAAiݭnw
UOѤƾھP]wCpUG

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

pG PCMCIA ƾڥdb Linux ҰʮɧYQغcnFA iwQ~a
QѦ@몺ئCFCoML`BAOA PCMCIA Xʵ{
ӱƾھɡA |Q@˪]ƴաC ̦nO parse
/var/run/stab	Ψϥ	/dev/modemA  ӤO PCMCIA
ƾھ`OQۦP]ơC

pGAغcA֤ߨӸJ򥻪	Linux CXʵ{@ӼҲաA As
/etc/pcmcia/config ӫXӼҲեQJC s צC]ƨCpUG

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

4.4.1  C˸mѼ

HUѼƥiHӳ serial.optsQwqG

      LINK
	    Ÿs (symbolic  link)wӭnQإߪ|  ``dialout''  άO
	    /dev/cua* ]ơC

      SERIAL_OPTS
	    wǿﶵNQǰe setserial ROC

      INITTAB
	    pGwܡANQΨӦb inittab ӳ]ƫإߤ@ӱءC

ҦpG

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

4.4.2  E_C]ƪD










Linux PCMCIA HOWTO 媩						     20



    zdQ{OӼƾھ? ˬdtΤxýT{ cardmgr T
     aѤFoidAåBҰʤF serial_cs Xʵ{CpGSAAi ݭnbA
     /etc/pcmcia/config  ɮפ[J@ӳQA aѪءCӸ`Ьݳ`
     3.6 (section 6.1, page 31)C

    ƾڥd\aQ serial_cs ҫغcF? AӤ@A ˬdtΤxAA ݬݱq
     serial_cs	     Xʵ{ҥXӪTC	 pGAݨ ``register_serial()
     failed''A AiJF I/O PL]Ƭ۽Ĭ FC t~@ӱOA
     pGoӳ]ƳQiO 8250;  j{b PCMCIA ƾڥdӬOQ
     16550A UART CpGzıoJWF@ ӰĬFAнs /etc/pcmcia/con
     fig.opts Qtmƾ dd򵹱ưC

    JWF_Ĭ? pGtΤxݦܦnAƾڥdNOnu@A
     иոե setserial ӧ irq 令 0A AݬݼƾھO_iHu@
     FCo˷|CXʵ{ϥΤ@ӺC@ǪҦӤϥδ_Ӥu@
     CpGo˥iHץoӰDANObAtΤYӨL]ƨϥ FQ
     serial_cs ҿΪ_bu@ۡCAӦb /etc/pcmcia/config.opts
     [@RONoӴ_ưC

    pGƾھnuCCau@AoNܩaOӴ_Ĭ𪺰DFC

    нT{AҹJ쪺DuO PCMCIA DCϥέtӪXʵ{b DOS
     UݬݬO_iH`u@YiDCt~AbAwTwAiH²檺
     seAФnϥΧ覡ӴաAp SLIP  PPPCpG²
     s`ϥ SLIP ɫoOAADӴNOXb SLIP WAӤ O PCM
     CIAC

    pGAooۮ֤ߪTX serial_cs ҲյLkQJC NܧA
     ֤ߨä䴩C]ơCpGAwNCXʵ{sĶ@ӼҲդFAA
     ק /etc/pcmcia/config  serial Ҳ bJ serial_cs
     eNQJFC

4.5  PCMCIA SCSId

ثeҦQ䴩 PCMCIA SCSI du@UC ISA ׬yƥdˤl G
QlogicBAdaptec AHA-152X άO Future Domain TMC-16x0CPCMCIA X
ʵ{QإߦP  PCMCIA  SO{X۳s  (p qlogic_cs.cB toaster_cs.c 
fdomain_cs.c) HΥ` Linux SCSI X {C

@ӷs SCSI DdQɡA SCSI Xʵ{|Ms۪]ơC
ˬdtΤxA]ƳQTaFCs SCSI ]Ʒ|Qw @ӥiΪ
SCSI ]ɡCĤ@ SCSI wЬO /dev/sdaAĤ@  SCSI	ϱaO  /dev/st0A
٦A Ĥ@  CD-ROM  |O /dev/scd0C

b 1.3.X (t ) H᪺֤ءAPCMCIA ֤Xʵ{iHqtή֤ߤ X
SCSI ]ƦsbdWC̷|QCb /var/run/stab A  SCSI cؤZ
/etc/pcmcia/scsi ]|QC@ӳs۪
]ƩҩIsӫغcӳ]ơCwZä|غc SCSI ]
ʧ@A|abdQɨUb SCSI ]ƤWɮרtΡC

b 1.2.X ֤ءAPCMCIA Xʵ{Lk۰ʦaӳ]ƳQw˦b Sw SCSI
dWCMӡApGA@ӥ` SCSI ]ƤغcAA iHNoǳ]ƦCb
/etc/pcmcia/scsi.opts CҦpApG A` SCSI ϺХHΤ@ CD-
ROMAAiHϥΥHUG








Linux PCMCIA HOWTO 媩						     21



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

QǨ <scsi.opts ]Ʀ}IA O]\hF iHQs
SCSI dWCoǦ}]tFO 6 ӴNO 7 ӥHr Ӥ}ơG
{b[cB]ƺBѸXBSCSI WDB
OB޿츹XAHοܩʪθXC]ƺسƬ ``sd'' Ϻ B``st''
ϱaB``sr''  CD-ROM ]ơA ٦ ``sg'' @몺 SCSI ]ơC
j]wASCSI WD٦޿츹X] 0C󦳳\
hϺФΰϪϺг]ơAscsi.opts |QH 5 쪺}ҩI sC
oZӭn]@  PARTS  ܼƨӦCoǤΡC  MA scsi.opts
|QC@ӺϰϥH 7 }ҩIsϥΡC

pGA֤ߨSwSw SCSI ]ƵWhXʵ{ (ϺСBϱa )
Aoǳ]ƴN|Q@ PCMCIA Xʵ{ҫغcCڮOA
ӳ]ƪWrb	/var/run/stab  |ܬ ``sd#nnnn'' WrCo ``nnnn'' O
4 ӼƦrQi츹XCun cardmgr LkĶ@ SCSI ]ƪѧOX۹
Linux ]ƦWrɳ|o ͳoبơC

nNWh SCSI Xʵ{ҲդƦu	PCMCIA SCSI dQɥ
̤~|QJOi઺Cno򰵡AAݭns /etc/pcmcia/config ӧiD cardmgr
ӥt~ҲզbdQغcɤ]nNJC ҦpG

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

|bJ@몺 PCMCIA Xʵ{ҲիeNDn SCSI ҲթMWhϺ
Xʵ{ҲյJCPCMCIA غcZ|۰ʦaQҲդƤF SCSI
ҲաAҥHAݤʫغcﶵӱN SCSI 䴩\ॴ}C

Cb}zOqeN SCSI ]ƶ}AάObJdeA oˤl SCSI
׬yƷ|bdQغc᥿TaQפCt~٭n`NX SCSI dC
OonT{bXdeQs۪ SCSI ]ƳQT aUPFC
̦nT{kObXdeϥ cardctl  cardinfo ӭnDdXʧ@C
NoˡAҦ SCSI ]ƥ bW SCSI
dew}ҤFqAӦbAXdMO
qenOۥ̬Os۪C

ϥΤ@몺 ISA ׬yƤdɥi|bʡA רOLkҰ C  SCSI
׬yƷf@ӬFAaϥγQʦ SCSI ׺ݾҥ `` ׺ݹq ''
HCPCMCIA SCSI dä׺ݹqAҥHpGݭnӹq
ܡANѥ~]ƨӨCǥ~ SCSI ]ƥiHQغc
oӲ׺ݹqCLAp Zip ϺХH Syquest EZ-DriveA
ϥΥDʦ׺ݹqNݭnpFCɭԡAiݭnϥΤ@ӯSO ݹqp
APS SCSI Sentry 2Aӥ~qC zغc SCSI
]Ʀ걵ɡAЪ`NO_䤤󪺳]ƻݭnΥiHѲ׺ݹqq C

Adaptec APA-460 SlimSCSI däQ䴩Coid쥻OH Trantor W ٳQc檺A
 Adaptec ʤF Trantor AL̤~H Adaptec  ӼШӽ Trantor
dAϥAAPA-460 Q{@ Linux Xʵ{ ҬۮeC

ڤTwngXʵ{|hA ڤ{HiHq Adaptec 
ள޳NTC









Linux PCMCIA HOWTO 媩						     22



(Q䴩 ) Trantor SlimSCSI iΥHUkQѧOG

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

(Q䴩) Adaptec SlimSCSI iΥHUkQѧOG

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

4.5.1  SCSI  ]ƪѼ

HUѼƥiHQwqb scsi.optsG

      DO_FSTAB
	    L (y/n) ]wGwO_oӳ]Ӧb /etc/fstab [ ءC

      DO_FSCK
	    L (y/n) ]wGwO_ɮרtӦbQWeH ``fsck -Ta''
	    ˬd@UC

      DO_MOUNT
	    L (y/n) ]wG wO_oӳ]ӦbdQJPɳQ۰ʦaQ
	    WC

      FSTYPE, OPTS, MOUNTPT
	    ɮרtΫAB WﶵBHγQΨӰ fstab ؤΡαWӳ]
	    ƪWIC

ҦpAHUO@ӫغc@ SCSI ID  3B 2 ӤΰϪϺг]٦ @ SCSI ID
 6  CD-ROM ZG




























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  E_SCSIdD

    ϥ aha152x_cs Xʵ{ (Q AdaptecB New Media HΦǵPl Ҩϥ
     )AGb SCSI sAs䴩ɨϥκϱaɱ`|D
     CnNoӰDѰAЦb /etc/pcmcia/config.opts [JU CoG

	  module "aha152x_cs" opts "reconnect=0"

    pGAN SCSI 䴩sĶҲդF (CONFIG_SCSI is ``m'')Ab غc  PCMCIA
     ɡA Awnإ  SCSI  Xʵ{C A]nק /etc/pcmcia/config
     bAX *_cs Xʵ{QJ eJ SCSI ҲաC

    pGb  SCSI  ׬yƳQɬݨ   ``aborting   command	due  to time
     out'' TɡAjOAӴ_ĬFC

4.6  PCMCIA OХd

1tt/memory_cs/ Xʵ{tdҦA]ХdA åBٴѹ󨺨Ǧ
L\઺d PCMCIA O}Ŷs\CQJɡA
ߤF@ӦrP϶]ƪզXC ЬݳoҲժ man ӧ㪺]
ƨWWhyzC϶]ƳQΨӰϺs (إߩMWɮרt ε
)CӦr]ƳQΨӰ " [u " QwĤHNmWŪP gC









Linux PCMCIA HOWTO 媩						     24



Qǰe memory.opts ]Ʀ}]tF 2 G [cMѸ
XCoӿﶵQb۹OХdĤ@Ӧ@POФΰϤC

«OХdA ٦j²RA RAM dAʤ `` dT [c ''
(CIS)Ae PCMCIA dΨӿ̦ۤw@ schemeC @ӻ A cardmgr
|Nʤ CIS d@²OХdA øJ memory_cs Xʵ{C
]AڮOA@몺ѧODO
Ldi|~aQOХdFC

memory_cs   Xʵ{ϥΤF  heuristic  ӲqoǥdeqC heuristic
bgJO@dWõLku@A	٦i|X~C
pGdQ~PFAAbϥι dd  mkfs o˪ROɡA
eqnTaQwC

4.6.1  Oг]ưѼ

UCѼƥiHb memory.optsG

      DO_FSTAB
	    L (y/n) ]wGwO_oӳ]Ӧb /etc/fstab [ ءC

      DO_FSCK
	    L  (y/n)  ]wG  wO_ɮרtӦbQWeH   ``fsck
	    -Ta'' ˬd@UC

      DO_MOUNT
	    L (y/n) ]wG wO_oӳ]ӦbdQJPɳQ۰ʦaQ
	    WC

      FSTYPE, OPTS, MOUNTPT
	    ɮרtΫAB WﶵBHγQΨӰ fstab ؤΡαWӳ]
	    ƪWIC

HUdҷ|wﴡW@ѪOХd۰ʱWʧ@ZG

     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  ϥΧְ{OХd

Ǩ ftl.opts ]Ʀ} 3  4 G the schemeB
XBϸXHΥt~ﶵAθXCjְ{du@ӧְ{O








Linux PCMCIA HOWTO 媩						     25



ϡAҥHjϸXO 0 C

nNְ{OХd@몺ϺШӨϥΡA nإ FTLA `` ְ{Ķh (flash
translation layer)''AO@Ө  ftl_format ROb]ƤW@ӤΡC
ohäFְ{
O{]ƫwӸ`Adݰ_ӴNO²檺϶]ơC pG

     ftl_format -i /dev/mem0c0c

OooөROOg `` [u '' OdӦsdC@g 榡ƫA
oӥdNiHg ftl_cs Xʵ{N@몺϶ ]ƨ˦asFCҦpG

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

QRW FTL ]ƳIǩǪCMinor device numbers Tӳ :
dXBdϰ츹XHοﶵЦbϰ츹XΡCo઺
iHQݦSΪ檺@϶]  (Nn@ ) Ϊ̥
]iHQΡANOӵwг]Ƥ@ˡC ``ftl0c0'' ]ƬOd 0A@P Oϰ쬰
0A  ӰϰC   pGoӰϰwQΤFA   q ``ftl0c0p1'' 
``ftl0c0p4'' ]ƬODB 1  4 FC

ְ{OdإDn榡:   FTL	 A   H	 Microsoft
ְ{ɮרt	Flash File SystemCFTL 榡O̦uʪ
A]\@몺󰪶ɮרt (ext2Bms-dos  ) i@
Ϻг]ƯaӨϥΡCFFS hOӤPɮרtFCLinux  eLkBz
FFS 榡ƪdC

4.7  PCMCIA ATA/IDE dwо

 ATA/IDE  Ϻо䴩ݭn  1.3.72 Χs֤ߪC Xʵ{ w PCMCIA
O fixed_csC аOobX ATA/IDE deШ  cardctl  cardinfo
{⥦A ]oXʵ{ èSQ]pi ``m''C

ǰe	 fixed.opts    ]Ʀm]tTΥ|:   ثe
schemeBѸXBϺЪǸHοﶵθXCide_info iH QΨo IDE
ϺЪǸC ϥ SCSI ]ƮɡAfixed.opts |b Ĥ@QIsӳ]ư]wC
pG  fixed.opts  ^F@Ӧb PARTS ܼƤ@θTA
ROZ۴N|C@Ӥΰ] wC

4.7.1  ATA/IDE TwϺг]ưѼ

HUѼƥiHQwqb fixed.optsG

      DO_FSTAB
	    L (y/n) ]wGwO_oӳ]Ӧb /etc/fstab [ ءC

      DO_FSCK
	    L (y/n) ]wGwO_ɮרtӦbQWeH ``fsck -Ta''
	    ˬd@UC

      DO_MOUNT
	    L (y/n) ]wG wO_oӳ]ӦbdQJPɳQ۰ʦaQ
	    WC








Linux PCMCIA HOWTO 媩						     26



      FSTYPE, OPTS, MOUNTPT
	    ɮרtΫAB WﶵBHγQΨӰ fstab ؤΡαWӳ]
	    ƪWIC

HUO fixed.opts ɮתҤlΨӱW@ ATA/IDE dĤ@ ӤΨ /mnt
ؿWC

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

4.7.2  E_ ATA/IDE dD

     IDE ϺФ\ PCMCIA  WϥΤ̤ji\d]w_Ӫɶ
     ɶӰ_ʡCnϥγoǥdAиJ pcmcia_core ҲհtX U]w:

	  CORE_OPTS="unreset_delay=400"

    nϤ ATA/IDE CD-ROM ]ơAA֤ߥN CONFIG_BLK_DEV_IDECD
     \ॴ}BsĶihCq`зǪ֤߳w䴩FAMӦpGAQsĶӦ
     w֤߽аOonԷVǡC

4.8  hd

q 1.3.73 Linux ֤߶}lAXXʵ{iH@γ@Ӵ_AC
Xʵ{P@ӤAӺXʵ{Cbs֤ߤUϥΦh\dɡAҦ
diHΦbJαsUXʵ{pUϥΥdҦ\C

ܦhwtӦۤwFӯब۬ۮe	(ǥiOWߪ ) _@
ɤkӼϥΤGӥd\Cǥd (Diamonds  Ositech JackB B3Com 
3c562BLinksys) Xʵ{iHTa䴩o˪sA Oǥd (SOO
Megahertz) hC

֤ߨä䴩_ɵP]Xʵ{Cҭn PCMCIA Xʵ{
iغcdiAӺdPƾڥdsCAӺdP
CXʵ{|Q۰ʦaJCMӡAwWOAӺXʵ{ ``   ''
oid_CnϥμƾھAAiHUAӺXʵ{AM
ϥΥHCksغcC:

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

ĤG setserial |dXӰbeOѤAӺXʵ{Ҩϥ _C









Linux PCMCIA HOWTO 媩						     27



5.  iDD

5.1  PCMCIA ]ƪ귽t

zפWA @Ӵ_QϥΨӳ]ƤWSYC un (ΥHW )
]ƤQغcϥάۦP_YiCb /etc/pcmcia/config.opts
اAiHo{ӦaΨӱưǳQD PCMCIA ]ƩҨϥε۪_C

P˦aA]SkiHw I/O }@ PCMCIA dӨϥΡC /etc/pcm
cia/config.opts  ɮפ\AwiQҦ  PCMCIA ]ƩҨϥΪdA
άOưǷ|ML]Ƭ۽Ĭ𪺰dC

bקF  /etc/pcmcia/config.optsAAiHϥ ``kill -HUP'' ӭsҰ card
mgrC

QΨӺʵdA_Ob cardmgr Bz /etc/pcmcia/config
ɮפeѧCXʵ{Ҳ (i82365  tcic) ҿ
C]ܳoɮרä|vTCn]woӴ_AbXʵ{
QJɡA]wb /etc/rc.d/rc.pcmcia  PCIC_OPTS ܼƨϥ cs_irq= ﶵC

ҦȤݥdXʵ{ӥs irq_list ѼơC QΨӫ
wǴ_iθյۥΨӰtmL̪CoXʵ{ﶵӳQ]wbA  /etc/pcm
cia/config ɮءCҦp:

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

|wCXʵ{uϥ  irq  8  irq  12C  irq_list ]wpA
dAȵ{ Card Services |twQL]ƩҨ
ΤF_AάObغcسQư_C

5.2  ګˤ~ରaxΤu@ϥΰUO]Ƴ]wO?

ڭ̥iH²aϥ PCMCIA ``scheme'' 䴩ӹFC ϥΨؤP غc
schemesAOs ``home''  ``work''C HUOӦ scheme w ]w net
work.opts Zd:

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

PCMCIA	]Ʀ}nOغc  schemeC boӨҤlA ĤG ``case''
yl|q ``homee'' M ``default'' schemes D@ӡC ] Aޥz
scheme èSQ]wFAwȬO ``home'' ]wC

{bAnbGӳ]wYD@ӡAi:








Linux PCMCIA HOWTO 媩						     28



     cardctl scheme home

Ϊ̬O

     cardctl scheme work

cardctl  RO۷ҦdAҰʥ̡C  PCMCIA
tάO_QJAoөROiwaQCOpGAbɥbϥ L PCM
CIA ]ƮɳoөROi|ѡC (ML̪غcä a scheme ]wC )C

nDثe PCMCIA scheme ]wA:

     cardctl scheme

5.3  q PCMCIA ]ƶ}

nb@ PCMCIA  ]ƤWɮרtλݭnAӤpiA ] Linux  PCMCIA
tΨèS]ps֤ߵ{WCDnAiJ
֤߼ҲեHΨϥΪ̼Ҧ  cardmgr FOb@Ӥwgb檺t WC֤ߪ
``initrd'' H\ Linux ϥΤ@Ӧ̤pƪ
MɡBJXʵ{ȮɩʪʺAOϺШӶ}AMAsW
@ӤPɮרtΡCoӼȮɪڨtΥiHغc PCMCIA ]ơAMA
⥦s@ӮڨtΡC

initrd	Mɵ沈sb@ӥi}]ƤW: @ӻoNLk  PCMCIA
]ƤWFCoO] BIOS AiO֤ߪCbo A X ``
i} (boot-able)'' ] (ҦpAiH} ϥΪ] ) P ``
iڨtΪ (root-able)'' ] (ҦpAiHQ JڨtΪ]    )
PB]OܭnC	 ``    i} (Boot-able) '' ]ƬO BIOS ҨMwA
q`OnоMwϺ C`` iڨtΪ (root-able)''
]ƬOiHbQJYYQ֤ Ҥ䴩϶]ơC initrd
\iϧh]ܦ `` iڨtΪ (root-able)''AӫD ``i} (boot-
able)''C

 Linux \w˨ PCMCIA SCSI d۪]ƤWCϱo
LNahXFi䴩q  PCMCIA  SCSI  CD-ROM  ]ƨӦw˪ڮC MӡA
ثeA èS  Linux	wˤu䴩غc@ӥiHq PCMCIA
ɮרtΤW}  Linux  XA  ``initrd''C ]ߤ@ӥH PCMCIA  ɮת
Linux tλݭnzϥΨL  Linux  tΨӲͤ@ ``initrd''
MɮסCpGSiΪL Linux tΡAt@ӴNk O̤pw˨D PCMCIA
ϺФWAإߤ@ initrd MɡAMAs w˨ PCMCIA ئa]ƤWC

b Linux Bootdisk-HOWTO ئ@]w}ϺФ@TAo
S initrd TC initrd DnQb̷s֤ߵ{
XYA  b	 linux/Documentation/initrd.txtC
b}leAAӭnŪ@UoC  lilo x]OU qC nϥ
initrd ]ݭnAwӱN  CONFIG_BLK_DEV_RAM  M CONFIG_BLK_DEV_INITRD
\ॴ}ҽsĶXӪ֤ߡC

oOӰغc޳NA ݭnz Linux H PCMCIA tΦ@w{ת
xסCнT{bz\ŪҦA}lCU ``  ''  ӬOi檺A
O@̷ӽdҨӰܡA N|ܧ֦aNAV `` Q䴩 ''
aAANoۤvӪC









Linux PCMCIA HOWTO 媩						     29



okݭnA@wnϥ PCMCIA Xʵ{ 2.9.5 γ̷s~iHC ª PCMCIA
MάOӧOäb initrd بϥΡCФnNP VXFC

5.3.1  pcinitrd UZ

pcinitrd  ZΨӫإߤ@Өϥ	PCMCIA ںϰϤΨӱҰ Linux    initrd
MɡC   ӬMإ]t@ӳ̤pؿhŵc B
HΦΪ]ɮסB@ǤGiɮסB@ε{wɥHΤ@M PCMCIA Xʵ{ҲաC
A pcinitrd ɡAnwnn]tihM حXʵ{ҲզW١C ӥDn
PCMCIA	֤ߤ  pcmcia_core  ds|Q۰ʦa]tihC

ҦpA]AOqϥΤ@ i82365 Pe PCMCIA DAӧA Qq@ӱ
Adaptec SlimSCSI dӸ˦ɮרtΪwФWҰ Linux CAiHإߤ@ӦXA
initrd MɡAkpU:

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

Ӧۭq initrd ҨϱƵ{AAiHΤUROӨϥ ``loopback'' ]
ӱWӬMɮ:

     mount -o loop -t ext2 initrd /mnt

Ms linuxrc ZC PCMCIA غcɮ׷|Qw˨Mɮ Y    /etc
A   MA]iHۤw]wC	 Ӹ`Ь pcinitrd  man C

5.3.2  إߤ@ initrd }nФ

bإߤF pcinitrd MɫA AiHQΫ֤ߪ覡Ӱ@ i}ϺФA
çQY initrd MɡB䴩 lilo ϥ ɮר@iťպϺФWC
UClA ڭ̰]ڭ̻ݭn  PCMCIA ڳ]ƬO /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

إߤ@ӥ]tUe /mnt/etc/lilo.conf ɮ:

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

̫A lilo pU:

     lilo -r /mnt

 lilo QɰtXϥ -r ﶵA|ҦPQw ؿʧ@C  b
/mnt/dev   ثإ߳]ɮתzѬOA ObNڥؿҦU lilo








Linux PCMCIA HOWTO 媩						     30



õLkϥΦb /dev  ɮסC

5.3.3  w initrd MHɨDLinux ϺФ

initrd	\@볣ϥΦbwоQL@~tΨϥή C Linux
֤ߥH initrd  MɥiHQbD  Linux ϰϤΤA ӥB	lilo  άO
LOADLIN   iHQ]wѳoǬMɨӶ} Linux tΡC

]AӤwQغcnXAڳ]ơAB initrd MɳQإߦbt~t ΤWFAҰ
Linux tΪ̮ekOϥ LOADLINApU:

     LOADLIN <kernel> initrd=<initrd-image>

@AiHbAؼоWҰ LinuxA ANiHw lilo Ӥ \aҰ
Linux FC ҦpA] /dev/hda1 OӫD Linux ؼкϰϤΡAB /mnt
iHQΰJIC Abؼ ϰϤΤWإߤ@ө Linux ɮתlؿ:

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

boӨҤlA ] /dev/sda1 Oڭ̭n Linux ڤΪ ϺСA OӸg
PCMCIA	SCSI  dұW  SCSI	wоC nw liloAЫإߤ@ӦHUe
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

b boot= oػnbw]ƤD}O  MBR( master boot record)
ئw˶}J{C root= oXbJ initrd M
ɫݭnϥΪɮרtΡApG֤߬MؤwoغcFNݳo FC  b
other=	 OΨӴyzL@~tγQw˦b /dev/hda1 ءC

nw˳oӨҤlت lilo Aϥ:

     lilo -C lilo.conf

OoboӮפlءAlilo.conf ɮרϥΤF]A /mnt b
}CڥγoӨҤl]OؼɮרtΨä@w䴩ϥ boot= M root=
ﶵӫإ Linux ]ɮתإߡC












Linux PCMCIA HOWTO 媩						     31



6.  ϥΥQ䴩d

6.1  غcLkQd

{bڭ̰]AdwQ{Xʵ{Ҥ䴩Aڭ̩һݭnOb /etc/pcm
cia/config [J@ӱبӧiD cardmgr p
ӿoidAXʵ{ݭnsoidWCغcɮת榡Ӹ` Ьd  pcm
cia    man  C  pGAJ@iQ{odA cardmgr
`ӻ|O@ǿTtΤxWA ڭ̥iHQ
oǸTӫسyغcءC

HUO cardmgr pN䴩di /usr/adm/messages ҤlC

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

۹/etc/pcmcia/config إiHO:

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

AiHϥ ``*'' ӥNorAXաC Agsغc
خɡAФpߦa⧹㪺rLhAO즳jpgHΪťզr
C٦AнT{غcػPQixɮتƦP˼ƥتr C

ШcOzXGiHwXʵ{@idϥΡApGAuOJæa
çˡAäOӫܦͲĲv@kCA]iܩBao{{Xʵ{
w䴩FAdCMӡAjGOXʵ{õLku@A]
i|ڮꦺAtΤFC@몺]Xʵ{u
AdA PCMCIA ]ƪu@O cardmgr ҰAXʵ{
bյۻP]Ʒqeä|ԣT{ʧ@C

bs /etc/pcmcia/config  A AiHt cardmgr sJɮסAϥ:

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

pGA]wnF@isdAбH@]wڡAoˤlڴNiH⥦]
tiзǫغcɮءC

6.2  WC NE2000ۮeAӺd䴩

A dݬݳoidO_wQ cardmgr ҿѡC ǨSQCb SUPPORTED.CARDS
dƹWOǳQ䴩d OEM Cp
GAo{Fo˪dAڪDAoˤ~⥦[CC

pGAdSQOA Ш̷ 3.6 (section 6.1, page 31) 
BJAdإߤ@ӫغcءAçoidsôW pcnet_cs Xʵ{C
s cardmgr YiϥγQsغcɮפFC

pG pcnet_cs  Xʵ{LkMwAdwAӺ}
AнsקAsغcرNoidsôWOdXʵ{ memory_cs WC
s cardmgr YiϥγQsغcɮ
FCAݭnDAdwAӺ}ȡCoӦ}OӥHGӤQ








Linux PCMCIA HOWTO 媩						     32



줸rXұƦӼƦrAq`|QLbdWCpGSL
bdWAAiHϥ DOS Xʵ{ܳoӦ}C unA@Do
ӭȡAа:

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

MMA}XCuƦ줸ճQwqFA]iHɦL
Ƥ_Ʀ줸աCOU}Ĥ@Ӧ줸ժQ줸첾C{bAs mod
ules/pcnet_cs.c ôM hw_info cyCAݭnA
dإߤ@ӷsءCĤ@NOO첾C۪TN
w}eTӦ줸աC̫@tdSO\઺X; }l
иյ۱N] 0C

sק	 pcnet_cs.c    A   sĶPw˷sҲաC   Aק /etc/pcmcia/con
figA Mܥdsôq  memory_cs 
pcnet_csC۫ܭsJغcɮ׫NFCбzH @Ashw_info
ɮץHΫغcؤeC

pGASbQiɦLAdw}C̫᪺@ӤkA  pcnet_cs
ҲժlƮɷQn ``hard-wire( w鱵X )'' Oi ઺Cнs /etc/pcmcia/con
fig.opts å[J hw_addr= ﶵAo:

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

bAyaNAۤvdw}CMAФpߦpGAwg
FhFAAdNӹO NE2000 ۮedFCƹWAڨä TwO_
  dbgLFeؤk@٤ΪF C

6.3  PCMCIA nоd

b Compaq Aero ΤּƤ@ǵOqҨϥΪ  PCMCIA nоd
e|Q䴩C Dnêb Aero GϥΦۭq  PCMCIA Ө DMA
䴩nоCbooOp쪺pUAڭ̴NLkXѨM kC

pGb Aero Q}ҮɳnоdO۪A Aero  BIOS N|غc dA
Linux |⥦@몺nоC Linux  PCMCIA Xʵ{ QJɡA
̷|dodwQغcäwۦb Linux Xʵ{WA
ӳoѤ]|QޤFCҥHApGb}ɥdYۤFNiH
ΡAƼ洫\C

6.4  䴩 Xircom d쩳FH

bثe PCMCIA M󤤦tF@ӥj  Xircom AӺΤAӺ  /
ƾھXʵ{C onP Werner Koch ͡Cڦ]ߤ@ӱMQ Xircom
Xʵ{ΪWCsDAb <URL:http://hyper.stanford.edu/hypernews/get/pcm
cia/xircom.html>C

He Xircom dèSQ䴩O] Xircom qପSL̪d
NTCӡAL̩PoǳWwA{bDʴXʵ{TC


7.  pޥε{]pT










Linux PCMCIA HOWTO 媩						     33



7.1  XΪpi

Xpi̦nkOϥΦb Linux PCMCIA TWCsDT
CCo˥iLHD̷sD (íקΧܤk )Co
OpiơG

    ztAH probe ROXTC

    zϥέ PCMCIA dC

    z Linux ֤ߵ{ PCMCIA Xʵ{C

    z /etc/pcmcia ɩ PCMCIA ҰʤZҰܡC

     btΤxɤҦP PCMCIA TC

Ҧ PCMCIA {ҲթM cardmgr FҶǨtΤxɪTC q`
/var/log/messages   /usr/adm/messagesC
lܤ@ӰDɳoӮɲĤ@ӭnݪaCzXpiɽгs
P]AoɮסC      pGzbtΰTDɡA	    ˬd /etc/sys
logd.conf ӬݦǤPTOQBzFC

bXpieAбzˬd@UT{zϥΪO̷sXʵ{MC
pGݤwQڧ勵᪺iܷ|Hyy@UAMNI
Sس]ʦadtڪߦFC

pGADO֤ߪAq~a褧~ɦLuAla~ } EIP
~ΡC pG~ObDn֤ߤAݬݦb System.map
}AX~\ơCpGXaObiJҲդA
NlaFC ϥΥثeҲդu ``ksyms -m'' |X@C
@ӥiJҲժ}C]tF EIP }ҲաAM EIP 
}YioҲդ첾C MA  gdb bӼҲդWAϥ list
RO첾C o\ubAϥ -g ﶵbsĶ
ӼҲծɥ[JFT\C

pGASϥκApi]iHH dhinds@hyper.stanford.edu
ӵڡAڸƱApiKڪWAoˤlLH]iH ݨC

7.2  C PCMCIA U

PCMCIA Ҳէt\hsĶXC joǽXbemBz PCMCIA_DEBUG
wqUCpGSQwqAXN|QsĶ CpG]w
0AX|QsĶiJ|QҥΡCUjƦrw| o󤾪FC H PCM
CIA_DEBUG wqӫإߪҲճ|ӾưѼ pc_debugA|XhC
oiHbҲճQJɥ[H
AbݭssĶUϱoXiHQHCӼҲլFC

b PCMCIA  debug_tools/  lؿ@ǰu C dump_tcic M
dump_i365 Ӥε{| PCMCIA 
ȦsɦLAåBN\hȦsTѽXCpGA
sܡA	 oǸT̳̦ΪFC   dump_tuples
ε{CXFd CIS (dTc )AñN@ǸnƸѽX XӡC
dump_cisreg  ε{ܥdaݫغcȦs(local configuration regis
ters)ơC








Linux PCMCIA HOWTO 媩						     34



ɭ memory_cs OdXʵ{ΨӰܦnΡCiHP  PCMCIA
d۳sAӥB|zZLXʵ{CiHQΨӹ
dݩʰOγqΰO骺sC

7.3  sdgdAXʵ{

Linux PCMCIA {]pvެO Linux PCMCIA ̦nC ̷s
AiHq hyper.stanford.edu  /pub/pcmcia/doc ؿάOb
<URL:http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html> C

󨺨Ǳ@몺   ISA  ]ƨӻA  A]\iHϥΤwsb Linux
Xʵ{XʡCɭԡA̤jêOק@ӤwsbXʵ{
ϥiHb}Bz[JβX]ơCb{檺Xʵ{AuO dOߤ@ ``
ۧڥ]t '' Xʵ{Шä̿  Linux ֤ߪL ӰWuC

bܦhҤlAn䴩@isd̤jêbqsyo޳N TC
nDݽ֤~άOǸTOݪ]C	  MӡA
uּƨҤl~AbSqsyto޳NTpUngӸӥdX
{XGC

ڼgF@ӧtFƵӸѻ\h@Xʵ{pP Card Aȵ{
q[cXʵ{C	   AiHb	  PCMCIA	lɮת mod
ules/skeleton.c C

7.4   PCMCIA Ȥ۩wXʵ{@̪

ڨMwYnҦ PCMCIA ȤXʵ{Ӧ PCMCIA M󪺤@
ܡAo˨äAXڡCC@ӷsXʵ{|DnM󺥺aH
Ӻ@CӥB]toXʵ{]|ЦۨӦaN@u@q@̨
ಾڪWC]Aڷ|ϥΪ̪ݨDHΥi@ʨӥHӮת
MwO_n]tǨXʵ{C󨺨ǤQ]tb֤߮M˪X
ʵ{AګĳoXʵ{@̥iHϥΤUרӥ]zXʵ{
@ΡC

Xʵ{ɮӳQwƩbP PCMCIA ӷӪۦPؿcU
ApAXʵ{NiQѶ}짹㪺 PCMCIA l{𪺤WFC@
Xʵ{ӥ]tl{ɮ (b ./modules/)A man  (b ./man/)Aغcɮ (b
./etc/)C b̤Whؿ ]Ӧ README ŪɮסC

̤Whؿ]ӥ]t@ makefileAO@ӲզXΨӰ ``make -f ... all''
H ``make -f...  install'' sĶXʵ{æw AɮסCpGo makefile
 .mk [ɦWA򥦷|۰ aQWh Makefile  RO[W all H install
ؼ aɨӰC

HUO@   makefile	pQإߪҤlG

















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)

o makefile ϥ 2.9.10 ]t^H᪺ PCMCIA M˵{ҩwq
w˥ؼЦaC٥]tF@ ``dist'' ؼЦaӵXʵ{@̤K C
A]\Qn[Ws̫᪺MɦWWC	 (ҦpA sam
ple_cs-1.5.tar.gz)C@ӧiHpUG

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

Ho˪wơAXʵ{QѶ}ɡA|ܬ PCMCIA l{
𪺥nCo˥NiHϥ PCMCIA YɮץHˬdϥΪ̨tΫ
cB۰ʬˬdANO `` @몺 '' ȤXʵ{@ C

ڱǨ̷ӳoӳWҷǳƪȤXʵ{N̩bڪ  FTP  ׶ǿ鯸
hyper.stanford.edu   /pub/pcmcia/contrib ؿCboӥؿ README
ɮ׷|zpѶ}Xʵ{C

PCMCIA ȤXʵ{@HӳSܰʫܦhA åBٳOdV
ۮe\C@ȤXʵ{äݦbDn PCMCIA Mp
ɴNoɯŤ@Cڤ]|յ۳qǨXʵ{@̹L̪X
ʵ{ݭnʪaC

7.5   Linux @Hɤ

pGzϥΪӪѨtΫغcu{ϱz`N PCMCIA A ШϥΦb
/etc/pcmcia   *.opts ɮרӡW ǥ\CpGϥΪ̽sĶΦw˷s
PCMCIA Mɥ̱N|Q CpGzקFDغcZAw˭ӷs PCMCIA
MɡAoN|a
zwۭqZл\Ӥ_zePغcu㶡sCpGzo
ӼgӦXAﶵZAziHPڳsC

pGzNzϥΪӪ PCMCIA M󪺨ϥλP󤧤P
agNLϥΪ̥HΧڥHUqCSOOAЦb
WIWҰʤZΫغccPBC

pGzQ Linux  PCMCIAA̦n]D PCMCIA Dn{L
Xʵ{@_]AihCFK@Aڷ|ɤOaN֤߮M󪺤jp








Linux PCMCIA HOWTO 媩						     36



b@wd򤺡ADıo|QjaP쪺~|A[ihCp
eһALXʵ{|Q}aCQXM}֤߳
Xʵ{ɩwOHNBǬOvʪA]ڭ̤H̦b
~W󪺤PC

O:

Ķ̫: b½Ķg峹L{A@JG½Ķ@bӭ@̭ץ
έssƪpC]AĶi঳½ĶPοrBAнеo
{~a誺BͨӫH linuxer.bbs@cis.nctu.edu.tw ڡAHKץA±z!




















































Linux PCMCIA HOWTO 媩						     37





































































				   CONTENTS



1. @TεwnD ....................................................... 1
   1.1 ² ................................................................. 1
   1.2 ۧ@vŧiPѰ״ ................................................. 1
   1.3 ̷sOӡHڥiqளH ..................................... 2
   1.4 ǨtγQ䴩OH ................................................... 2
   1.5 PCMCIAdQ䴩OH ............................................... 2
   1.6 ɭԧڪsd~|Q䴩OH ..................................... 2
   1.7 lHWUΨLTӷ ............................................... 3
   1.8 򤣴 PCMCIA GiXOH ..................................... 3
   1.9  PCMCIA MojOH ......................................... 3

2. sĶPw ............................................................... 3
   2.1 ǳƤu@P֤߳]w ................................................... 4
   2.2 w ................................................................. 5
   2.3 w˧]ϥBSD ҰʤZtΡ^ ................................... 6
   2.4 w˧]ϥSystem V ҰʤZtΡ^ .............................. 6
   2.5 w˧]ϥ  System  V _lZtΡ^   ......................... 6
   2.6 Xʵ{ﶵ  .................................................... 7
   2.7 tθ귽]w ......................................................... 7

3. ѨMw˻PغcD ..................................................... 8
   3.1  PCMCIA ֤߼ҲըèSJ ......................................... 9
   3.2 _y ......................................................... 9
   3.3 O鰻 ...................................................... 10
   3.4 ~adJPX .......................................... 11
   3.5 id귽۽Ĭ .............................................. 11
   3.6 ]ƫغcèS .................................................. 11

4. ϥΤkHίS ........................................................ 12
   4.1 ΨӫغcHκʱ  PCMCIA ]ƪu ................................. 12
   4.2 PCMCIAغcZn ................................................ 14
   4.3 PCMCIA d ....................................................... 14
   4.4 PCMCIA CPƾھ] ............................................. 18
   4.5 PCMCIA SCSId ....................................................... 20
   4.6 PCMCIA OХd ....................................................... 23
   4.7 PCMCIA ATA/IDE dwо ........................................... 25
   4.8 hd ............................................................. 26

5. iDD .............................................................. 27
   5.1 PCMCIA ]ƪ귽t ............................................... 27
   5.2 ګˤ~ରaxΤu@ϥΰUO]Ƴ]wO? ..................... 27
   5.3 q PCMCIA ]ƶ} .................................................. 28

6. ϥΥQ䴩d ...................................................... 31
   6.1 غcLkQd ................................................ 31
   6.2 WC NE2000ۮeAӺd䴩 ................................... 31
   6.3 PCMCIA nоd ................................................. 32
   6.4 䴩 Xircom d쩳FH .......................................... 32




				       i









7. pޥε{]pT ................................................ 32
   7.1 XΪpi .................................................. 33
   7.2 C PCMCIA U ................................................ 33
   7.3 sdgdAXʵ{ .......................................... 34
   7.4  PCMCIA Ȥ۩wXʵ{@̪ .............................. 34
   7.5  Linux @Hɤ	.................................... 35


















































				       ii


