
                           Linux PCMCIA HOWTO İ
                                       
: David Hinds, dhinds@hyper.stanford.edu
: л HSIEH Kun-Chung, ̨ л Taiwan, Republic of China (NOT
People's Republic of China) ( [1]linuxer.bbs@cis.nctu.edu.tw )

   1998219 v2.5
     _________________________________________________________________
   
   ļҪ Linux °װʹ PCMCIA ʽشҳ
   ⡣ļµİ汾
   [2]ftp://hyper.stanford.edu/pub/pcmcia/doc  HTML 汾ᱻ
   [3]http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html
     _________________________________________________________________
   
1. һѶӲҪ

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

     * 2.1 ׼趨
     * 2.2 װ
     * 2.3 װᣨʹBSD ָϵͳ
     * 2.4 װᣨʹSystem V ָϵͳ
     * 2.5 װᣨʹ System V ʼָϵͳ 
     * 2.6 ʽѡ 
     * 2.7 ϵͳԴ趨
       
3. װ뽨

     * 3.1  PCMCIA ģ鲢û
     * 3.2 ɨʧ
     * 3.3 ʧ
     * 3.4 ⿨ƬĲ
     * 3.5 ſ֮Դͻ
     * 3.6 豸û
       
4. ʹ÷Լɫ

     * 4.1 Լ PCMCIA 豸Ĺ
     * 4.2 PCMCIAָĸҪ
     * 4.3 PCMCIA ·
     * 4.4 PCMCIA ݻ豸
     * 4.5 PCMCIA SCSI
     * 4.6 PCMCIA 俨
     * 4.7 PCMCIA ATA/IDE ʽӲ
     * 4.8 ๦ܿ
       
5. ׵

     * 5.1 PCMCIA 豸Դ
     * 5.2 Ϊͥʹ豸趨?
     * 5.3  PCMCIA 豸
       
6. ʹδ֧ԮĿƬ

     * 6.1 ޷ӵĿƬ
     * 6.2 ж NE2000̫·֧Ԯ
     * 6.3 PCMCIA 濨
     * 6.4 ֧Ԯ Xircom ˣ
       
7. СɼʽѶ

     * 7.1 õС汨
     * 7.2 ͽ PCMCIA 
     * 7.3 Ϊ¿ƬдƬʽ
     * 7.4  PCMCIA ͻԶʽߵָ
     * 7.5  Linux Ӧ汾άԱĵ 
     _________________________________________________________________
   
1. һѶӲҪ

1.1 

    Linux ʹõĿƬʽǸ֧Ԯ PCMCIA ׼ 
   PCMCIA ʽӦóʽһ׿ģ顢һ׸ رƬʹõĿ
   ʽʽһɷӦƬ롢Ҫ жʽ
   Ƭ顣 ֧Ԯ `` Ȼ '' PCMCIA  ƬأƬͿ
   κʱˡ
   
   ڷչУԿڳʽС棬Сʹáҽ 
   ֪ʹĳʽ⣬ ҲҾ
   ޷֪ڡˣʹʽŸ ʹþ飬
   Ǻǻ
   
   κĽļıҲ֪
   (dhinds@hyper.stanford.edu)
   
1.2 Ȩ޿

   Ȩ Copyright (c) 1998 David A. Hinds
   
   ļҵ¼κʽرƻɢļκ ޸
   İ汾 (Եİ汾 ) Ҳѵرɢ ֻ Ҫ֪
   㲢ڲ𺦱µİȨǰ¡
   
   ļҵŵҵԵɢϣȻⲻǱҪģ Һ
   ϣܸйʹá뽫ļ浽鼮ϣ 
   һ£ȷµİ汾
   
   ļֻ ``  '' ıֶѣûκԻʾκεı֤ 
   ѱеʹñļѶ֮ա
   
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 CirrusSMC
   O2MicroOmega Micro  Ricoh ľƬ ) ֧Ԯ  32 λԪ
   CardBus Ƭֻʵʡʽ汾 3.0   CardBus 
   Ҳֻ֧Ԯ 16 λԪĿ 춱ʼ͵Ӳ ƼĿٽ
   ʱ֣ˣµĲƷг ӳʽ֧Ԯп
   ܻЩʱϵĳ롣
   
    Hyundai ʼ͵ʹõ Motorola 6AHC05GA ֧Ԯ 
   HP Omnibook 600 ϵ PCMCIA ಻֧Ԯ
   
1.5 ЩPCMCIA֧Ԯأ

   Ŀǰİ汾· ݿвSCSI 濨ATA/IDE Ӳ Լ
   ֧Ԯ SRAM Ϳ忨ļ俨ʽSUPPORTED.CARDS ڰ
   汾֧Ԯ PC ƣһϵͳϿʹý 룩
   
   бڵ PC Ҳпܿʹáϣеݿʹ á
   Щδ·Ǳ֧ԮĿ֮ OEM 汾ʹá IO 
   忨Чȵȣ󲿷Ŀǰ֧Ԯ Ϊ д
   ʽ
   
1.6 ʲʱҵ¿ƬŻᱻ֧Ԯأ

   źǣЩ̲ûиκγд豸ʽˣ 
   Ŀ֧ԮҪ¡ ϣҽϲ Linux  
   ģʽ༴Ҫ PCMCIA ĺĳʽ룬  PC 
   ʽϡ SUPPORTED.CARDS ᵽЩ ʽڽ
   С ĵطһᾡæ ͸ Email 豸
   ʽǺЧʵġ
   
   ȤԼ˾ĲƷ 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.rutgers.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. 밲װ

2.1 ׼趨

   ڿʼǰ ӦǷҪԼ PCMCIA ׼ Ϊ󲿷ݵ
   Linux Ӧ̰汾Ѻѱ PCMCIA ʽ׼һ˵ 
   Ҫµʽ Linux Ӧ̰汾ڵĺĺԭ 
   PCMCIA ʽ޷ʱŻҪԼ Ȼ PCMCIA ׼ڼ
   ϲѣҪ Linux һϤġ
   
   еĶʼװPCMCIAʽ֮ǰаװ׵
     * һ汾 2.0.*  2.1.* ϵеĺԭʼʽ
     * һ׺ʵģ鹫óʽ
     * (ѡ ) ``XForms'' X11 ʹ߽湤
       
   Ŀǰʽ׼ʵϿںİ汾 1.2.8 ʼĺİ汾 
   þһĺİ汾ͱЩòҪ
   
   Ҫ Linux ԭʼʽ ֻ°ĺӳ񵵾Ϳ 
    PCMCIA ׼ġ PCMCIA ģ麬һЩԺԭʼʽĲο ָ
   ҲЩҪʽĺģ ǰװ PCMCIA Ҫ
   
   
   Ŀǰȶĵĺĳʽԭʼ޲
   [4]ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0 
   [5]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 support'' (CONFIG_TR) Ŀ CONFIG_IBMTR رա
   
   Ҫʹ PCMCIA IDE Ժ 1.3.72  2.1.7 棬 Ľ ʱӦ
   Ҫ CONFIG_BLK_DEV_IDE_PCMCIA ܴ򿪣ɰĺĲ ֧Ԯʽ
   IDE 豸µĺľͲر趨ˡ
   
   Ҫʹ PCMCIA SCSI  ڽʱӦ CONFIG_SCSI  ܴ򿪡
   ңҪʹõ SCSI 豸Ŀ֮ʽ (SCSI ŵ Ŵ
   Ψȵ )иض濨ĵͲʽӦ ҪصΪ
   ֻռÿռѡ
   
   Ѹ 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 Ĺߡָ壨һ״£ 
   ִкĳʽʱƶϳЩӰ졣⣬Ǳװ ϵģ
   ܴӺԭʼʽЩǻ趨ÿѡ 
   
   ִ ``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.pcmcia ָ ر 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/pcmcia ¡Զ PCMCIA ܣȥ޸κε
   ˡ
   
    /etc/sysconfig Ŀ¼ϵͳڣ һ
   /etc/sysconfig/pcmcia ᱻΪѡ  Ҫκε
   ģѡ ( PCIC=  PCIC_OPTS= 趨 ) ֻ ༭޸
    PCMCIA ָ塣˵Ҳᱻ İװǵ
   
   Щǰİ汾ʹ /etc/sysconfig/pcmcia-scripts Ŀ¼ ڵ
   /etc/pcmcia Ŀ¼еϵͳİ汾ѻ򽫸  /etc/pcmcia Ŀ¼
   
   
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 Ͳ
   ҲⱾ벻֪豸ĳͻֻǺ ȫɿ 
   Σ Ҫ /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 ӦߵĵѡˣҲڱļġΧڡ һ ˵ ѵĲ
   ʹķװ 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 иϸָʾ
     * ĳЩ£ϵͳԪĲݿܻᵼ޷ȷģ
       Ԫ Լģ עģԭʼ֮
       Documentation/Changes ģ鹫óʽλ ʽ
       С (``minimal requirements'')
       
3.2 ɨʧ

   ֢״:
     *  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/config.opts ڡ ԤĴںܴܻ ɨ
   赽խġΧȽϺġΧԿµλַ
   0xd0000-0xdffff, 0xc0000-0xcffff, 0xc8000-0xcffff, 
   0xd8000-0xdffff
   
    DOS  Windows  PCMCIA ʽ Ϳ you may be
   able to 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.pcmcia  /etc/sysconfig/pcmcia 
   
3.5 ſ֮Դͻ

   Symptoms:
     * ſƬڸԶʹʱԹ
     * ſһ𱻲ʱȴֻһ
       
   ͨͱʾѾĳ Linux ֪ϵͳ豸ͻˡPCMCIA 豸 Ǳ
   ̬ģԣ磬ڱҪʱģر ָ
   ĿƬǲ۵ġһԴ嵥Ƭ ʱ
   رָɸԴġ״£ᱻĿƬᱻָ ɵһǿ
   Դˡ
   
   ɼϵͳ־ЩԴڹĿƬռ
   /etc/pcmcia/config.opts Щų⣬  cardmgr 
   ԴϿ⡣
   
3.6 豸û

   ֢״
     * һƬʱȷʵһ졣
     * ĿƬǲƳǡ
       
   ʾƬѱɹرˡ 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]

   ϵͳ־ҲӦðʽЩˡм 
   ⵽˵
   
  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

   ⼸豸УһλʾۡڶΪ豸𡢵Ϊ 
   ʽơıָͬһʽʹõÿ豸ȡ롢 
   豸ơλ豸ҪҪ롣 ҵĻ
   
   cardmgr ݱ /etc/pcmcia/config ڵ֪֮ ƬϿ
   ЩƬʽԼ αĿƬ
   ĸʽĸƬġĸʽ pcmcia(5)  man ҳ
   ϸϡ
   
  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 
   ܵͼλܡ
   
  Ƭ
  
   ϣκʱƳ PCMCIA ƬȻڱ 
   ʽʹеĿƬƳǸ⡣ں 1.1.77 ǰϵͳ ڴ
   УݻƬƳʱɵˡ
   
  ƬʽԴ
  
   ƬʽԱ֧Ԯ APM ( Դ)  Ѱװ
   ϵͳڵĻ APM ں 1.3.46 ͱˡ 
    Rick Faith (faith@cs.unc.edu) ά APM ߿
   [6]ftp://ftp.cs.unc.edu/pub/users/faith/linux õϵ ͳ
   иݵİ汾ڵĻ PCMCIA ģᱻԶؽ֧Ԯ APMM ܡ
   
   ûн APM ıʼǵǰִ ``cardctl suspend''
   Լڻظִ ``cardctl resume''ʵع ϻ PCMCIA
    ʹеݻã  ʽ޷Ӧ
   ݻ
   
   APM Щϵͳƺе㲻̫ȶ  APM  PCMCIA ʱ 
   ⣬ʽС汨ǰ򻯡
   
   Щʽ ˵ PCMCIA SCSI ʽ޷ã¶ 
   ظ ʹ PCMCIA SCSI ʱ ϵͳǰִ ``cardctl
   eject''
   
  ر PCMCIA ϵͳ
  
   Ҫж PCMCIA ׼ invoke rc.pcmcia with:
   
/etc/rc.d/rc.pcmcia stop

   ָỨִУȫĿͻԶʽعر 
    PCMCIA 豸ʹУؿܲعرգЩ ģ
   ᱻж¡ Ҫֹ״ ִ 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 ָϣ
   ָٻӦйλַϵ豸Ӧ ҪؽſԵѶ Щ
   豸 豸λַǲۺ롣 豸
   Ѷ豸 磬·豸ᴫǵӲ̫·
   λַΪ豸λַһݣ  network.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 һ ·沢豸һر
   һ /dev  ͷĵ /dev Ҳʱ벻Ҫþ
   
   
   һ PCMCIA ̫·⵽ʱᱻָΪһõĽ濨 
    ͨΪ eth0 Cardmgr ִ /etc/pcmcia/network ָ
   档
   
    PCMCIA ̫· /etc/rc.d/rc.inet1  Ϊ
   屻ִʱҲƬڲۡ  rc.inet1  ˻عĿ֮⣬ 
   뽫ע ޸ /etc/pcmcia/network.opts 
   ı·趨 network  network.opts ָֻ̫·ʱ
    ᱻִС ϵͳԶ·ʽ ҲҲ
   PCMCIA-aware  Linux Ӧ汾ļв鿴Ƿ PCMCIA  ·
   ǷҪʹԶֻ༭ 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

  ·豸
  
   µĲ network.optsڱʹã
   
   IF_PORT
          ָ̫·շͣ Щ޷ԶĿʹá 뿴
          ``man ifport'' շơ
          
   BOOTP
           (y/n) 趨 ʾǷ IP λַͷ·ѶǷԾ
          BOOTP Эȡ
          
   IPADDR
          ָIPλַ
          
   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  趨Ŀǰշ
   ͣ磺
   
# ifport eth0 10base2
#
# ifport eth0
eth0    2 (10base2)

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

  ضƬ
  
     * ʹ 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  [7]http:
       //www-uk.hpl.hp.com/people/jt/Linux/Wavelan.html ڡ
       
  ·
  
     * ĿƬбӳ̫·? 鿴ϵͳ־ȷ cardmgr ȷ
       رſһ·ʽˡûУ ĿƬ
       ҲܻǿʹãֻҪһֱ֧ԮĿƬݵĻֻҪ ⿨
       Ƭ NE2000 ݵĿƬ
     * Ƭ׵ر? ʹõǱ֧ԮĿƬ ѱ
       cardmgrˣ޷Ϊ豸 
       ϻ򲺵ĳͻˡſƬʹЩԴ (ϵͳ־ )
       Ȼ /etc/pcmcia/config.opts ڰЩų ʹƬʹ
       Դ
     * ĿƬƺ׵ؽˣʱǻܶ
       ߸ʱҪıĲʽķʱϸ
        [8]2.3 ¡
     * ڴȡ·ʹ ``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 Ͳ趨 ֻ
   ʽԵĵطѰҴ ı俨ƬӲ巽
   ʵнָָ  setserial ѡ ԼǷ
   /etc/inittab Ϊһ趨
   
   촫͵ 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"

  װò
  
   µĲԲ serial.optsڱ壺
   
   LINK
          Ϊ (symbolic link)ָҪ· ``dialout'' 
          /dev/cua* 豸
          
   SERIAL_OPTS
          ָЩѡ͵ setserial 
          
   INITTAB
          ָĻ inittab Ϊ豸һĿ
          
   磺
   
case "$ADDRESS" in
*,*,*,*)
    LINK="/dev/modem"
    SERIAL_OPTS=""
    INITTAB="/sbin/getty"

  ϴ豸
  
     * ĿΪǸݻ? ϵͳ־ȷ cardmgr ȷ ر
       ʶſ serial_cs ʽûУ Ҫ
        /etc/pcmcia/config мһӦñʵ رʶĿϸ
       뿴½ [9]3.6
     * ݿɹر serial_cs ? һΣ ϵͳ־
        serial_cs ʽѶϢ 㿴
       ``register_serial() failed''  I/O 豸ͻ
       ˡ һ鱨ǣ 豸˵Ǹ 8250; 󲿷ڵ
       PCMCIA ݿӦǱӳ 16550A UART ͵ġһ
       ͻˣ /etc/pcmcia/config.opts ѱø Ĳ
       Χų
     * ˲ϳͻ? ϵͳ־ƺܺãݿǺܹ
        setserial  irq ĳ 0 ٿݻǷԹ ˡ
       ôʽʹһһЩƱѡģʽʹò 
       ⣬Ǿϵͳĳ豸ʹ ˱
       serial_cs ѡõĲڹӦ /etc/pcmcia/config.opts 
       һϸų
     * ݻֻعͺԵǸϳͻˡ
     * ȷǸ PCMCIA ⡣ʹԭ̵ʽ
       DOS ¿Ƿ֪⣬ȷ򵥵
       ǰ벻Ҫʹøӵķʽԣ˵ SLIP  PPP
       ʹ SLIP ʱȴǣӦþǳ SLIP ϣ
        PCMCIA
     * õԺĵѶϢָ 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ʹ£
   
# 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  
   Ѷ
   
   (δ֧Ԯ ) 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

  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 ָ֮壺
   
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

  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
       timeout'' ѶϢʱ󲿷иϳͻˡ
       
4.6 PCMCIA 俨

   1tt/memory_cs/ ʽ̬俨 һṩЩ 
   ܵĿ PCMCIA λַռֱӴȡܡʱ һ
   Ԫ豸塣 뿴ģ man ҳи ȡ
   豸ŵ͵Ĵȡ (͹ϵϵ ͳȵ )Ԫ
   豸 " δӹ " δ֮λ϶ д
   
   ͵ memory.opts 豸λַ 2 λ ܹͲۺ 롣
   ѡӦļ俨ڵĵһָͬС
   
   Щ͵ļ俨 д󲿷ݵļ򵥾̬ RAM ȱ `` ƬѶ ܹ
   '' (CIS)e PCMCIA ѵһ scheme һ˵ 
   cardmgr Ὣκȱ CIS ĿƬΪһ򵥼俨  memory_cs 
   ʽ ˣи߼ЧӦǣһʶ ʽĿƬܻ
   رΪ俨ˡ
   
   memory_cs ʽʹ heuristic ²ЩƬ heuristic 
   д뱣ĿƬϲ޷ ʱпܻ Ƭˣ
   ʹ dd  mkfs ʱ ӦҪȷرָ
   
  豸
  
   вԷ 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

  ʹÿ俨
  
    ftl.opts ڵ豸λַ 3  4 λ the scheme 롢
   Լѡָ롣󲿷ݵĿֻһ 
   󲿷ݵ붼 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 ڵһָѶ ָ
   Ϊÿһָ 
   
  ATA/IDE ̶ŵ豸
  
   µĲԱ fixed.optsڣ
   
   DO_FSTAB
           (y/n) 趨ָǷ豸Ӧ /etc/fstab ڼӸ Ŀ
          
   DO_FSCK
           (y/n) 趨ָǷ񵵰ϵͳӦڱǰ ``fsck -Ta''
          һ¡
          
   DO_MOUNT
           (y/n) 趨 ָǷ豸ӦڿƬͬʱԶ
           ϡ
          
   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

   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 ֤òǰ̫·ʽʹ Ĳϡ
   
5. ׵

5.1 PCMCIA 豸Դ

   ϣ һϱʹõĸ豸϶ûϵ ֻҪ ( ) 豸
   ʹͬĲϼɡ /etc/pcmcia/config.opts Է
   طųЩ PCMCIA 豸ʹĲϡ
   
   ͬأҲûа취ֱָ I/O λַһ PCMCIA ʹá
   /etc/pcmcia/config.opts ָɱе PCMCIA 豸ʹõĲ
   Χ ųЩ豸ͻĲΧ
   
   ޸ /etc/pcmcia/config.optsᣬʹ ``kill -HUP'' 
   cardmgr
   
   ӿƬ״̬Ĳ cardmgr  /etc/pcmcia/config ֮ǰ
   ͽ׵Ĳʽģ (i82365  tcic) ѡ ġ˸ı
   ʲӰ졣Ҫ趨ϣڲ ʽʱ趨
   /etc/rc.d/rc.pcmcia ڵ PCIC_OPTS ʹ cs_irq= ѡ
   
   еĿͻ˿Ƭʽи irq_list Ĳ ָ Щ
   ϿøǵġЩʽѡӦñ趨 
   /etc/pcmcia/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 ָ 趨
   network.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'' 趨
   
   ڣҪڶ趨ͷѡһִ:
   
cardctl scheme home

   
   
cardctl scheme work

   cardctl ൱춹صеĿƬǡ  PCMCIA ϵͳǷ
   룬ɰȫرִСڵʱʹ  PCMCIA
   豸ʱܻʧܡ (ȻǵĽȫ  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 ϵͳһ̶ȵ Ϥ
   ȷĶصļٿʼ `` ʳ '' Ӧ ǿ
   ģ һաĻ ͻܿؽδ֪ `` ֧Ԯ
    '' ط͵Լġ
   
   ⷽҪһҪʹ PCMCIA ʽ 2.9.5 µİ汾ſԡ ɵ
   PCMCIA ׼ǸԪ initrd ʹá벻Ҫͬ İ汾
   Ԫˡ
   
  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 ҳ
   
  һ 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 ޷ʹ /dev  ĵ
   
  װ 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 豸Ľ
   
6. ʹδ֧ԮĿƬ

6.1 ޷ӵĿƬ

   ǼĿƬѱеʽ֧ԮҪ
   /etc/pcmcia/config мһĿ cardmgr  ſЩ
   ʽҪᵽſƬϡĸʽϸ 鿴 pcmcia  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 汾 㷢
   ĿƬ֪ܰӵбڡ
   
   ĿƬû𵽣  [10]3.6  ĲΪĿƬһ
   ĿſƬϵ pcnet_cs ʽ ִ cardmgr ʹ
   µĽˡ
   
    pcnet_cs ʽ˵޷ĿƬ֮Ӳ̫·λַ 
   ½ĿſƬϵϼ忨Ƭʽ memory_cs ϡ 
   ִ cardmgr ʹñµĽ ˡҪ֪ĿƬӲ̫
   ·λֵַλַǸԶʮ λԪԪųɵ֣ͨ
   ᱻӡڿƬϡûӡ ڿƬϣʹ DOS ʽ
   ʾλַ ֻҪһ֪ ִֵ:
   
dd if=/dev/mem0a count=20 | od -Ax -t x1

   ȻѰλַֻ֮żλԪ鱻ˣ˿Ժӡ 
   λԪ顣λַĵһλԪʮλԪλơڣ
   modules/pcnet_cs.c Ѱ hw_info 졣ҪΪ Ƭһµ
   ĿһλǼλơλ͵ ӲλַǰλԪ
   һλпƬرܵ; ʼʱ Ϊ 0
   
    pcnet_cs.c ᣬ 밲װµģ顣 ٴ޸
   /etc/pcmcia/config Ȼı俨Ƭϵ memory_cs  pcnet_cs˳
   ָʾ뽨ˡĸ һhw_info Լ
   Ŀݡ
   
   ûʮλӡҵĿƬӲλַһ 
   pcnet_cs ģʼʱҪ ``hard-wire( ӲӺ )'' п ܵġ
   /etc/pcmcia/config.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 
   ʽۡĳýţ
   [11]http://hyper.stanford.edu/hypernews/get/pcmcia/xircom.html
   
   ǰ Xircom û֧ԮΪ Xircom ˾вܡ¶ǵĿƬ֮ 
   ѶǷЩ涨ṩʽѶ
   
7. СɼʽѶ

7.1 õС汨

   С汨õķʹ Linux PCMCIA ѶվĳýѶ Ϣ
   ֪µЩ (޸Ļı䷽ ) С
   Ӧеϣ
   
     * ϵͳͣԼ probe ѶϢ
     * ʹЩ PCMCIA 
     *  Linux ĳʽ汾 PCMCIA ʽ汾
     *  /etc/pcmcia  PCMCIA ָĸı䡣
     * ϵͳ־ PCMCIA йصѶϢ
       
   е PCMCIA ʽģ cardmgr ϵͳ־ѶϢ ͨΪ
   /var/log/messages  /usr/adm/messages ׷һʱӦʱһ
   Ҫ쿴ĵطС汨ʱ ͬ ϵͳѶ
   Ϣκʱ  /etc/syslogd.conf ЩͬѶϢ𱻴
   ˡ
   
   С汨ǰһȷʹõ°ʽ׼ 
   ȿѱҸıĻԸһ£Ȼе û
   عҵѪˡ
   
   ǺĵĲݣӴĵط֮ӡֻܹ׷ݴ λַ
    EIP á Ҫڣ System.map ڵλַ
   Ĺܺĵطڿʽģڣ ͺ׷ˡ
   ʹĿǰģ鹤 ``ksyms -m'' һÿ һģĻλַѡ
   ȡ EIP λַģ飬Ȼ EIP  λַɻģڵλơ
   Ȼᣬ ִ gdb ڸģϣʹ list ҵλơ ֻ
   ʹ -g ѡڱ ģʱ˳ѶĹܡ
   
   ûʹ·С汨ҲԼĵ dhinds@hyper.stanford.edu 
   ҽϣܰС汨ҵվϣҲ 
   
7.2 ͽ PCMCIA 

   PCMCIA ģ麬ĳ롣 󲿷ݵЩ붼ǰô
   PCMCIA_DEBUG Ŀ¡û壬Ͳᱻ 
   λ 0ᱻ뵫ᱻáָ ø߳ˡ
    PCMCIA_DEBUG ģ鶼и pc_debug
   ֮ѡ ģ鱻ʱԵ ڲ±ʹ
   ԱƳÿģΪλˡ
   
    PCMCIA Ӧڵ debug_tools/ Ŀ¼һЩĹ ߡ
   dump_tcic  dump_i365 óʽ PCMCIA  ݴ
   ӡҽݴѶĽ롣ж ĿƾƬȡĻ
   ЩѶõˡ dump_tuples óʽг˿Ƭ CIS (ƬѶ
    )һЩҪϽ  dump_cisreg óʽʾƬı
   ض˽ݴ(local configuration registers)ϡ
   
   ʱ memory_cs 忨ʽܺáκ 
   PCMCIA ӣҲŵʽԱ οƬ
   ԼͨüֱӴȡ
   
7.3 Ϊ¿ƬдƬʽ

   Linux PCMCIA ʽʦָ Linux PCMCIA ļ µ 汾
   㶼Դ hyper.stanford.edu  /pub/pcmcia/doc Ŀ¼ڻվ
   [12]http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html ҵ
   
   Щӽһ ISA 豸˵ ҲʹѴڵ Linux 
   ʽʱϰ޸һѴڵʽ ʹڿ
   ᴦƳ豸еʽУֻм Ψһ `` 
    '' ʽ Linux ĺĵ ๤
   
   ںܶУҪ֧Ԯһ¿ϰ춴Ƕõ Ѷ
    Ҫ֪˭ŶԻǽЩѶǱҲѡ Ȼ ֻ
   ûд쳧õѶҪдÿ ʽѡ
   
   дһ˱ע˵йһʽ Card ʽ ͨ
   ļܹʽ  PCMCIA ԭʼ modules/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 αӣ
   
# 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'' Ŀʽ߷  Ҳ
   Ҫϰ汾ŵװϡ (磬 sample_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 Ҫʽ 
   ʽһȥΪ˷άһᾡؽ׼ĴС һ
   ΧڣҾûᱻҸȤĲݲŻټӽȥ ǰ˵
   ʽᱻֿعӦ춱Ϻͷֿ춺Ĳ ʽ֮綨
   ЩʷԵģǲΪ ƷκεĲͬ
   
   :
   
   ߰: ڷ뱾ƪµĹУη뵽һԭ 
   ±ŵ״ˣĿз벻ӻ֮뷢 ִ
   ŵ [13]linuxer.bbs@cis.nctu.edu.tw ңԱлл!

References

   1. mailto:linuxer.bbs@cis.nctu.edu.tw
   2. ftp://hyper.stanford.edu/pub/pcmcia/doc
   3. http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html
   4. ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0
   5. ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0
   6. ftp://ftp.cs.unc.edu/pub/users/faith/linux
   7. http://www-uk.hpl.hp.com/people/jt/Linux/Wavelan.html
   8. file://localhost/tmp/zh-sgmltools.32013/PCMCIA-HOWTO.txt.html#timing
   9. file://localhost/tmp/zh-sgmltools.32013/PCMCIA-HOWTO.txt.html#new-card
  10. file://localhost/tmp/zh-sgmltools.32013/PCMCIA-HOWTO.txt.html#new-card
  11. http://hyper.stanford.edu/hypernews/get/pcmcia/xircom.html
  12. http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html
  13. mailto:linuxer.bbs@cis.nctu.edu.tw
