This file is indexed.

/usr/share/doc/HOWTO/pl-html/PCMCIA-HOWTO.pl.html is in doc-linux-pl-html 2002.06.14-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<META HTTP-EQUIV="content-type" content="text/html; charset=iso-8859-2">
<TITLE>Opis sterowników do PCMCIA</TITLE>


</HEAD>
<BODY>
<H1>Opis sterowników do PCMCIA<BR></H1>

<H2>Autor: David Hinds,
<A HREF="mailto:dhinds@hyper.stanford.edu">dhinds@hyper.stanford.edu</A><BR>
v1.105, 9 Wrze¶nia 1997<BR>
<B>Wersja polska: Bartosz Maruszewski
<A HREF="mailto:B.Maruszewski@jtz.org.pl">B.Maruszewski@jtz.org.pl</A><BR></B>
v2.0, 13 Grudnia 1997</H2>
<P><HR>
<EM>Dokument ten opisuje jak zainstalowaæ i u¿ywaæ Card Services PCMCIA w
Linux-ie oraz odpowiada na niektóre czêsto zadawane pytania.
Najnowsz± wersjê orygina³u tego dokumentu mo¿na zawsze znale¼æ pod adresem 
<A HREF="hyper.stanford.edu:/pub/pcmcia/doc/">hyper.stanford.edu</A>. Wersja
HTML znajduje siê pod adresem
<A HREF="http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html">hyper.stanford.edu/HyperNews/get/pcmcia/home.html</A>
Dokument ten zosta³ napisany w standardzie ISO-8859-2.
Nowsza wersja zawiera uaktulanione wskazania na katalog zawieraj±cy j±dro na
ftp.icm.edu.pl. Kolejna wersja jest uaktualnieniem do obecnej wersji
orygina³u.</EM>
<HR>
<H2><A NAME="s1">1. Informacje ogólne i wymagania sprzêtowe.</A></H2>

<P>
<P>
<H2>1.1 Wprowadzenie.</H2>

<P>
<P>Card Services dla Linux-a to kompletny pakiet obs³uguj±cy PCMCIA.
Zawiera on zestaw ³adowalnych modu³ów j±dra, które tworz± wersjê
aplikacji interfejsowych dla PCMCIA Card Services, zestaw
sterowników klientów dla specyficznych kart, oraz demona-mened¿era
do kart, który mo¿e reagowaæ na wk³adanie kart i ich wyjmowanie
poprzez ³adowanie i usuwanie odpowiednich modu³ów. Obs³uguje on
tak¿e tzw. &quot;gor±ce wymiany&quot; kart PCMCIA, tak ¿e karty mog± byæ
wk³adane i wyjmowane w ka¿dej chwili.
<P>Oprogramowanie to jest w ci±g³ym rozwoju. Zawiera przypuszczalnie
b³êdy i nale¿y go u¿ywaæ ostro¿nie. Zrobiê co w mojej mocy, ¿eby
poprawiæ b³êdy zg³aszane do mnie, ale je¶li nie powiesz mi o
takim, to mogê siê o nim nigdy nie dowiedzieæ. Je¶li ju¿ u¿yjesz
tego oprogramowania, mam nadziejê, ¿e wy¶lesz mi swoje
do¶wiadczenia, z³e czy dobre !
<P>Je¶li masz jakie¶ sugestie na temat polepszenia tego dokumentu,
daj mi znaæ 
<A HREF="mailto:dhinds@hyper.stanford.edu">dhinds@hyper.stanford.edu</A>.
<P>
<H2>1.2 Prawa autorskie i Disclaimer.</H2>

<P>
<P>Copyright (c) 1996, 1997 David A. Hinds
<P>Dokument tez mo¿e byæ reprodukowany lub dystrybuowany bez mojej
wyra¼nej zgody. Wersje zmodyfikowane, w³±czaj±c t³umaczenia na
inne jêzyki, mog± byæ wolno dystrybuowane, zak³adaj±c, ¿e s± jasno
identyfikowane jako takie, i ta uwaga o prawach autorskich jest w
nich zawarta.
<P>Dokument ten mo¿e byæ zawarty w dystrybucjach komercyjnych bez
mojej wyra¼nej zgody. Poniewa¿ nie jest to wymagane chcia³bym byæ
powiadomiony o takowych dzia³aniach. Je¶li zamierzasz rozprowadzaæ
ten dokument jako pracê wydawan±, skontaktuj siê ze mn±, aby
upewniæ siê, ¿e masz najnowsz± wersjê.
<P>Dokument ten jest rozprowadzany &quot;takim jakim jest&quot;, bez wyra¼nych
czy wynikaj±cych gwarancji. U¿ywaj informacji zawartych tutaj na
swoje w³asne ryzyko.
<P>
<H2><A NAME="where"></A> 1.3 Jaka jest najnowsza wersja i sk±d mogê j± wzi±æ ?</H2>

<P>
<P>Bie¿±c± g³ówn± wersj± Card Services jest wersja 2.9, a pomniejsze
uaktualnienia czy poprawki b³êdów s± numerowane jako 2.9.1, 2.9.2 itd.
<P>Kod ¼ród³owy najnowszej wersji jest dostêpny pod adresem 
<A HREF="http://hyper.stanford.edu:/pub/pcmcia">hyper.stanford.edu</A>. Nazywa siê <I>pcmcia-cs-2.9.?.tar.gz</I>.
Bêdzie tam przewa¿nie kilka wersji. Z regu³y trzymam najnowsz±
podwersjê wersji g³ównej. Nowe wersje g³ówne mog± zawieraæ
wzglêdnie nieprzetestowany kod, tak wiêc trzymam tak¿e najnowsz±
wersjê poprzedniej wersji g³ównej jako wzglêdn± stabiln± wersjê,
do której mo¿na siê cofn±æ; bie¿±c± tak± wersj± jest 2.8.23. To
ju¿ zale¿y od ciebie czy zdecydujesz siê na wersjê najnowsz± z
2.9.x czy na 2.8.23; w pliku <I>CHANGES</I> znajduj± siê
najwa¿niejsze ró¿nice.
<P>Adres <CODE>hyper.stanford.edu</CODE> jest mirrorowany pod adresem
<CODE>sunsite.unc.edu</CODE> w katalogu <CODE>/pub/Linux/kernel/pcmcia</CODE>.
[Od t³umacza.]Serwer ten z kolei jest mirrorowany w Polsce pod adresem 
<A HREF="ftp://ftp.icm.edu.pl/pub/Linux/sunsite/kernel/pcmcia">ftp.icm.edu.pl</A>.<BR>
Postaram siê te¿ umieszczaæ g³ówne wersje na <CODE>tsx-11.mit.edu</CODE>
w katalogu <CODE>/pub/linux/packages/laptops/pcmcia</CODE> teraz i
pó¼niej.
<P>Je¶li nie czujesz siê na si³ach, ¿eby skompilowaæ sterowniki do
PCMCIA, w wersji bie¿±cej s± zawarte pre-kompilowane sterowniki w
najpopularniejszych dystrybucjach: Slackware, Red Hat, Caldera i
Yggdrasil, miêdzy innymi.
<P>
<H2>1.4 Jakie systemy s± obs³ugiwane ?</H2>

<P>
<P>Kod ten powinien dzia³aæ na prawie wszystkich laptopach nadaj±cych
siê do Linux-a. Obs³ugiwane s± wszystkie popularne kontrolery
PCMCIA w³±czaj±c w to Intel, Cirrus, Vadem, VLSI, Ricoh i
Databook. Kontrolery ustawiane u¿ywane w IBM i Toshiba-ch tak¿e s±
obs³ugiwane. Doki (docks) kart PCMCIA dla systemów typu desktop
tak¿e powinny dzia³aæ tak d³ugo, dopóki s± tego typu, ¿e wk³ada
siê je bezpo¶rednio do szyny ISA, ni¿ poprzez kontrolery
SCSI-PCMCIA czy IDE-PCMCIA.
<P>Kontroler Motorola 6AHC05GA u¿ywany w niektórych laptopach
Hyundaia nie jest obs³ugiwany. Kontrolery ustawiane w HP Omnibook
600 nie s± obs³ugiwane. Kontroler mostka PCI-CardBus (od SMC,
Ricoh-a, Cirrus-a i TI) jest obecnie obs³ugiwany tylko w przypadku
trybu 16-bitowego, a i tak obs³uga ta jest ci±gle trochê
eksperymentalna.
<P>
<H2>1.5 Jakie karty PCMCIA s± obs³ugiwane?</H2>

<P>
<P>Wersja obecna zawiera sterowniki dla ró¿nych kart ethernetowych,
sterownik do modemu, kart portów szeregowych, niektórych
kontrolerów SCSI, sterownik do kart ATA/IDE oraz sterowniki do
kart pamiêci które powinny obs³ugiwaæ wiêkszo¶æ kart SRAM i
niektóre karty flash. Plik <I>SUPPORTED.CARDS</I> zawarty w ka¿dej
wersji Card Services zawiera wszystkie karty jakie dzia³aj± w
przynajmniej jednym w³a¶ciwym systemie.
<P>Prawdopodobieñstwo tego, ¿e karta nie wymieniona w tym pliku
bêdzie dzia³aæ zale¿y od typu tej karty. Zasadniczo
wszystkie modemy powinny dzia³aæ z zawartym sterownikiem. Niektóre
karty sieciowe mog± dzia³aæ je¶li s± wersjami OEM karty
obs³ugiwanej. Inne typy kart IO (bufory ramkowe, karty d¼wiêkowe
itd.) nie bêd± dzia³aæ dopóki kto¶ nie napisze odpowiednich
sterowników.
<P>
<H2>1.6 Kiedy moja nowa karta bêdzie obs³ugiwana ?</H2>

<P>
<P>Niestety, nikt mi z regu³y nie p³aci za pisanie sterowników, tak
wiêc je¶li chcesz mieæ sterownik do swojej ulubionej karty,
bêdziesz przypuszczalnie musia³ zrobiæ czê¶æ roboty na w³asn±
rekê. W wersji idelanej, chcia³bym siê kierowaæ w stronê modelu
zbli¿onego do j±dra Linux-a, gdzie bêdê g³ównie odpowiedzialny za
&quot;rdzeñ&quot; kodu do PCMCIA a inni autorzy pisaliby sterowniki do
konkretnych urz±dzeñ. W pliku <CODE>SUPPORTED.CARDS</CODE> wspomniane s±
niektóre karty, dla których sterownik jest w trakcie pisania. Bêdê
siê stara³ pomóc gdzie tylko mogê ale miej na uwadze, ¿e ¶ledzenie
(debugging) sterowników do urz±dzeñ w j±drze poprzez e-mail nie
jest zbytnio efektywne.
<P>Producenci zainteresowani pomoc± w tworzeniu obs³ugi ich urz±dzeñ
mog± siê ze mn± skontaktowaæ w sprawie konkretów.
<P>
<H2>1.7 Listy dyskusyjne.</H2>

<P>
<P>Kiedy¶ zajmowa³em siê baz± danych i list± dyskusyjn± na temat
u¿ytkowników Linux-a na PCMCIA. Ostatnio zmieni³em swoj± stronê
WWW z informacjami na temat PCMCIA w stronê &quot;HyperNews&quot;,
ze zbiorem wiadomo¶ci na temat PCMCIA w Linux-ie. S± listy na
temat instalacji i konfiguracji, na temat ró¿nych typów kart oraz
na temat programowania i ¶ledzenia (debug) pod PCMCIA. Strona z
informacjami na temat PCMCIA jest pod adresem 
<A HREF="http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html">http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html</A>.
U¿ytkownicy mog± ustawiæ sobie opcjê informowania poprzez email o nowych
odpowiedziach na konkretne pytania, albo o wszystkich nowych
wiadomo¶ciach w danej kategorii. Mam nadziejê, ¿e stanie siê to
u¿ytecznym archwium informacji dla pytañ, które wychodz± poza
tre¶æ tego HOWTO.
<P>Jest lista dyskusyjna, której tematem jest Linux na laptopie -
lista &quot;linux-laptop&quot;. Aby uzyskaæ wiêcej informacji, wy¶lij list
zawieraj±cy s³owo &quot;help&quot; na adres 
<A HREF="mailto:majordomo@vger.rutgers.edu">majordomo@vger.rutgers.edu</A>. Aby zapisaæ siê na tê listê,
wy¶lij list zawieraj±cy ³añcuch &quot;subscribe linux-laptop&quot; na ten
sam adres. Lista ta mo¿e byæ dobrym forum dyskusyjnym na temat
Linux-a na PCMCIA.
<P>Na Stronie Domowej Linux-a na Laptopy 
<A HREF="http://www.cs.utexas.edu/users/kharker/linux-laptop">http://www.cs.utexas.edu/users/kharker/linux-laptop</A>
znajduje siê wiele odwo³añ do adresów, na których s± informacje na
temat konfigurowania Linux-a na konkretnych typach laptopów. Jest
tak¿e przeszukiwalna baza danych na temat konfiguracji systemu.
<P>
<H2><A NAME="s2">2. Kompilacja, instalacja i konfiguracja.</A></H2>

<P>
<P>
<H2><A NAME="prereq"></A> 2.1 Wymagania i ustawienia j±dra.</H2>

<P>
<P>Zanim zaczniesz, powiniene¶ pomy¶leæ czy rzeczywi¶cie musisz
samemu skompilowaæ pakiet PCMCIA. Wszyskie popularne dystrybucje
Linux-a s± dostarczane wraz z pakietami zawieraj±cymi
skompilowane sterowniki dla PCMCIA. Ogólnie musisz tylko
zainstalowaæ od nowa sterowniki je¶li potrzebujesz jakiej¶ nowej
cechy obecnych sterowników albo je¶li zaktualizowa³e¶ czy
przekonfigurowa³e¶ j±dro tak, ¿e przesta³o byæ kompatybilne ze
sterownikami przychodz±cymi z dystrybucj±. Chocia¿ kompilacja
pakietu PCMCIA nie jest trudna technicznie, to wymaga jednak
pewnego obycia z Linux-em.
<P>Nastêpuj±ce elementy powinny byæ zainstalowane w twoim systemie
zanim zaczniesz instalowaæ PCMCIA:
<P>
<UL>
<LI>Jedno z nastêpuj±cych j±der:  1.2.8 do 1.2.13, 1.3.30, 1.3.37,
1.3.39 do 1.3.99, 1.99.* (czyli, pre-2.0), 2.0.* lub 2.1.*.</LI>
<LI>Bie¿±ca wersja pakietu z modu³ami i narzêdziami do nich.</LI>
<LI>(Opcjonalnie) &quot;Forms&quot; - interface dla u¿ytkownika pod X11.</LI>
</UL>
<P>Wersja najnowsza wymaga j±dra w wersji 1.2.8 lub wy¿szej, albo
j±dra z serii testowych 1.3.30 lub wy¿sze, 1.3.38 jest
definitywnie popsute, a 1.3.31 do 1.3.36 nie s± przetestowane.
Wymaga tak¿e wzglêdnie ¶wie¿ej wersji narzêdzi do modu³ów. Nie ma
³at na j±dro specyficznych dla PCMCIA.
<P>Musiz mieæ pe³ne drzewo ¼róde³ j±dra, nie tylko aktualny obraz
j±dra, aby skompilowaæ pakiet PCMCIA. Modu³y PCMCIA zawieraj±
niektóre odwo³ania do plików ze ¼róde³ j±dra. O ile ty mo¿esz
chcieæ skompilowaæ nowe j±dro, ¿eby usun±æ niepotrzebne
sterowniki, instalacja PCMCIA nie wymaga tego.
<P>Bie¿±ce stabilne wersje ¼róde³ j±dra oraz ³aty do niego s±
dostêpne pod adresem 
<A HREF="ftp://ftp.icm.edu.pl/pub/Linux/kernel/v2.0">ftp://ftp.icm.edu.pl/pub/Linux/kernel/v2.0</A>. Bie¿±ca wersja
narzêdzi jest pod tym samym adresem w pliku <CODE>modules-2.0.0.tgz</CODE>.
J±dra w wersji rozwojowej znajduj± siê pod adresem 
<A HREF="ftp://ftp.icm.edu.pl/pub/Linux/kernel/v2.1">ftp://ftp.icm.edu.pl/pub/Linux/kernel/v2.1</A>.
<P>W pliku <CODE>Documentation/Changes</CODE> znajduj± siê opisy wersji
wszystkich rodzajów innych sk³adników systemu, które s± wymagane
dla tej wersji j±dra. Mo¿esz sprawdziæ tê listê i upewniæ siê czy
twój system jest aktualny, szczególnie je¶li ostatnio
uaktualnia³e¶ j±dro. Je¶li u¿ywasz j±dra 2.1, upewnij siê, ¿e
u¿ywasz poprawnej kombinacji bibliotek dzielonych i narzêdzi do
modu³ów. Najnowsze wersje narzêdzi do modu³ów, tak samo jak wersje
dla starszych j±der mo¿na znale¼æ pod adresem 
<A HREF="http://www.pi.se/blox/modules">http://www.pi.se/blox/modules</A>.
<P>Je¶li planujesz u¿ywanie karty ethernetowej PCMCIA podczas
konfigurowania twojego j±dra powiniene¶ w³±czyæ obs³ugê sieci, ale
wy³±cz obs³ugê zwyk³ych kart sieciowych, w³±czaj±c w to &quot;pocket
and portable adapters&quot;. Sterowniki do kart sieciowych PCMCIA s±
zaimplementowane jako ³adowalne modu³y. Jakiekolwiek sterowniki
wkompilowane w twoje j±dro bêd± tylko zabieraæ miejsce.
<P>Je¶li chcesz u¿ywaæ SLIP-a, PPP czy PLIP-a musisz albo
skonfigurowaæ twoje j±dro z w³±czonymi tymi opcjami, albo u¿yæ
modu³ów ³adowalnych tych sterowników. Niestety w j±drze w wersji
1.2.X nie mo¿na skompilowaæ pewnych opcji jako modu³y ³adowalne
(jak np. kompresja SLIP-a) wiêc najlepiej bêdzie je¶li
wkompilujesz ten sterownik do j±dra je¶li go potrzebujesz.
<P>Je¶li chcesz u¿ywaæ kontrolera Token Ring do PCMCIA, musisz
wkompilowaæ obs³ugê Token Ring do swojego j±dra - &quot;Token Ring
driver support&quot;, ale powiniene¶ wy³±czyæ <CODE>CONFIG_IBMTR</CODE>.
<P>Je¶li chcesz u¿ywaæ kontrolera IDE PCMCIA, musisz w³±czyæ opcjê
<CODE>CONFIG_BLK_DEV_IDE_PCMCIA</CODE>, w j±drach w wersji 1.3.72 do
2.1.7. Starsze j±dra nie obs³uguj± urz±dzeñ IDE. nowsze j±dra nie
wymagaj± specjalnych ustawieñ.
<P>Je¶li bêdziesz u¿ywa³ kontrolera SCSI PCMCIA, powiniene¶ w³±czyæ
opcjê <CODE>CONFIG_SCSI</CODE> podczas konfiguracji j±dra. W³±cz tak¿e
wszelkie sterowniki &quot;top level&quot; (dyski SCSI, ta¶my, CD-ROM-y,
generic), których spodziewasz siê u¿ywaæ. Wszystkie sterowniki
&quot;low level&quot; dla konkretnych kontrolerów powinny byæ wy³±czone,
poniewa¿ bêd± tylko zajmowaæ miejsce.
<P>Je¶li chcesz zmodularyzowaæ sterownik, który jest potrzebny do
urz±dzenia PCMCIA, musisz zmodyfikowaæ plik <CODE>/etc/pcmcia/config</CODE>,
aby podaæ, które modu³y maj± byæ za³adowane dla których typów
kart. Na przyk³ad, je¶li sterownik szeregowy jest
zmodularyzowany, wtedy móg³by¶ zmieniæ definicjê urz±dzenia
szeregowego na:
<P>
<PRE>
   device "serial_cs"
   class "serial" module "misc/serial", "serial_cs"
</PRE>
<P>Pakiet ten zawiera narzêdzie do podawania statusu karty oparte na
X11 - <CODE>cardinfo</CODE>. Narzêdzie to jest oparte na wolno
dystrybuowanym interfejsie zwanym &quot;Forms Library&quot;, które
bêdziesz musia³ zainstalowaæ przed stworzeniem <CODE>cardinfo</CODE>.
Dystrybucja binarna jest na 
<A HREF="http://hyper.stanford.edu:/pub/pcmcia/extras">hyper.stanford.edu</A>. S± tam wersje a.out oraz ELF.
Bêdziesz tak¿e musia³ mieæ wszystkie normalne pliki nag³ówkowe pod
X i biblioteki.
<P>
<H2>2.2 Instalacja.</H2>

<P>
<P>Oto streszczenie procesu instalacji:
<P>
<UL>
<LI>Rozpakuj pcmcia-cs-2.9.?.tar.gz w /usr/src.</LI>
<LI>Uruchom <CODE>make config</CODE> w nowym katalogu <CODE>pcmcia-cs-2.9.?</CODE></LI>
<LI>Uruchom <CODE>make all</CODE>, potem <CODE>make install</CODE>.</LI>
<LI>Ustaw skrypty startowe dla PCMCIA i pliki opcji w <CODE>/etc/pcmcia</CODE>
odpowiednio dla twojego systemu.</LI>
</UL>
<P>Je¶li planujesz zainstalowaæ jakie¶ dodatkowe sterowniki klienta
nie zawarte w dystrybucji PCMCIA, rozpakuj ka¿dy z nich w g³ównym
katalogu ¼róde³ PCMCIA. Potem postêpuj zgodnie z normalnymi
instrukcjami kompilacji. Dodatkowe sterowniki zostan± skompilowane
i zainstalowane automatycznie.
<P>Uruchomienie <CODE>make config</CODE> zapyta o kilka opcji
konfiguracyjnych i sprawdzi twój system, aby zweryfikowaæ czy
spe³nia on wszystkie wymagania instalacji obs³ugi PCMCIA. W
wiêkszo¶ci przypadków, bêdziesz po prostu akceptowa³ wszystkie
domy¶lne opcje. Upewnij siê, ¿e dok³adnie sprawdzi³e¶ komunikaty
wyj¶ciowe w razie b³êdów.
<P>Je¶li kompilujesz zestaw PCMCIA do instalacji na inn± maszynê,
podaj alternatywny katalog docelowy kiedy zostaniesz zapytany
przez skrypt konfiguracyjny. Powinna to byæ ¶cie¿ka bezwzglêdna.
Wszystkie narzêdzia do PCMCIA zostan± zainstalowane wzglêdem tego
katalogu. Bêdziesz móg³ nastêpnie &quot;zarchiwizowaæ&quot; ten katalog
poleceniem <CODE>tar</CODE> i skopiowaæ go na maszynê docelow±, a
nastêpnie rozpakowaæ wzglêdem jej katalogo g³ównego, aby
zainstalowaæ wszystko we w³a¶ciwym miejscu.
<P>Je¶li &quot;cross-kompilujesz&quot; na innej maszynie, mo¿esz podaæ
alternatywne nazwy kompilatora i linkera. Mo¿e to byæ tak¿e
pomocne na systemach z pomieszan± architektur± a.out i ELF. Skrypt
zapyta tak¿e o dodatkowe opcje ¶ledzenia dla kompilatora.
<P>Niektóre z narzêdzi wspieraj±cych (<CODE>cardctl</CODE> i <CODE>cardinfo</CODE>)
mog± byæ skompilowane w formie &quot;safe&quot; (bezpiecznej) lub
&quot;trusting&quot; (ufaj±cej). Forma bezpieczna nie pozwala
u¿ytkownikom innym ni¿ root na modyfikacjê konfiguracji karty.
Forma ufaj±ca pozwala zwyk³emu u¿ytkownikowi na zawieszenie,
odwieszenie i reset karty oraz na zmianê bie¿±cej konfiguracji.
Skrypt konfiguracyjny zapyta ciê czy chcesz skompilowaæ narzêdzia
jako &quot;safe&quot; czy &quot;trusting&quot;; warto¶ci±
domy¶ln± jest &quot;safe&quot;.
<P>Jest kilka opcji konfiguracji j±dra które maj± wp³ywa na narzêdzia
do PCMCIA. Skrypt konfiguracyjny mo¿e je wywnioskowaæ z
dzia³aj±cego j±dra (najpopularniejszy przypadek). Alternatywnie,
je¶li kompilujesz do instalacji na inn± maszynê mo¿e przeczytaæ
konfiguracjê z drzewa ¼róde³ j±dra, albo ka¿da opcja mo¿e byæ
podana interaktywnie.
<P>Uruchomienie <CODE>make all</CODE> a potem <CODE>make install</CODE> stworzy i
nastêpnie zainstaluje modu³y do j±dra i programy narzêdziowe.
Modu³y do j±dra s± instalowane w <CODE>/lib/modules/&lt;wersja&gt;/pcmcia</CODE>.
Programy <CODE>cardmgr</CODE> i <CODE>cardctl</CODE> s± instalowane w <CODE>/sbin</CODE>.
Je¶li tworzony jest <CODE>cardinfo</CODE>, to instalowany jest on w
<CODE>/usr/bin/X11</CODE>.
<P>Pliki konfiguracyjne zostan± zainstalowane w <CODE>/etc/pcmcia</CODE>.
Je¶li instalujesz na starej wersji, twoje stare pliki
konfiguracyjne zostan± zarchiwizowane przed skasowaniem ich.
Zachowanym skryptom zostan± nadane rozszerzenia w stylu
<CODE>*.~1~</CODE>, <CODE>*.~2~</CODE>.
<P>Je¶li nie wiesz jakiego typu jest twój kontroler, to mo¿esz u¿yæ
narzêdzia <CODE>probe</CODE> z podkatalogu <CODE>cardmgr</CODE>, aby go
wykryæ. S± dwa g³ówne typy: Databook TCIC-2 i kompatybilne  z
Intel i82365SL.
<P>Demon na poziomie u¿ytkownika obs³uguje w³o¿enie i
wyjêcie karty. Nazywa siê on <CODE>cardmgr</CODE>. Jest podobny w
funkcjonowaniu do wcze¶niejszej wersji <CODE>pcmciad</CODE> Barry'ego
Jaspana. <CODE>Cardmgr</CODE> czyta plik konfiguracyjny opisuj±cy znane
karty PCMCIA z <CODE>/etc/pcmcia/config</CODE>. W pliku tym zawarte
jest jakie zasoby mog± byæ zaalokowane dla u¿ycia przez urz±dzenia
PCMCIA, i mog± byæ zmodyfikowane dla twojego systemu. Zobacz
stronê w podrêczniku systemowym &quot;man&quot; na temat <CODE>pcmcia</CODE>, aby
dowiedzieæ siê wiêcej na temat tego pliku.
<P>
<H2>2.3 Post-instalacja dla systemów u¿ywaj±cych skryptów inicjacyjnych a'la BSD.</H2>

<P>
<P>Niektóre dystrybucje Linux-a, w³±czaj±c Slackware, u¿ywaj± systemu
skryptów a'la BSD. Je¶li istnieje plik <CODE>/etc/rc.d/rc.M</CODE>, to
twój system zalicza siê do tej grupy.<BR>
Skrypt <CODE>rc.pcmcia</CODE>, zainstalowany w <CODE>/etc/rc.d</CODE>
kontroluje startowanie i wy³±czanie systemu PCMCIA.<BR>
<CODE>make install</CODE> u¿yje polecenia <CODE>probe</CODE>, aby wykryæ typ
twojego kontrolera i odpowiednio zmodyfikowaæ <CODE>rc.pcmcia</CODE>.
Powiniene¶ dodaæ do skryptu startowego <CODE>/etc/rc.d/rc.M</CODE>
liniê, która wywo³uje skrypt startowy PCMCIA, np. tak:
<P>
<PRE>
     /etc/rc.d/rc.pcmcia start
</PRE>
<P>W³a¶ciwie nie ma znaczenia, gdzie umie¶cisz ten plik, tak d³ugo
jak sterowniki PCMCIA s± startowane po <CODE>syslogd</CODE>.
<P>
<H2>2.4 Post-instalacja dla systemów u¿ywaj±cych skryptów inicjacyjnych a'la SYS V.</H2>

<P>
<P>Red Hat, Caldera i Debian maj± ten w³a¶nie system. Je¶li masz
katalog <CODE>/etc/init.d</CODE> albo <CODE>/etc/rc.d/init.d</CODE>, to
twój system jest w tej grupie. Skrypt <CODE>rc.pcmcia</CODE> zostanie
zainstalowany jako <CODE>/etc/rc.d/init.d/pcmcia</CODE>, lub
<CODE>/etc/init.d/pcmcia</CODE>. Nie ma potrzeby edytowania ¿adnego
skryptu startowego, aby w³±czyæ PCMCIA: zostanie to zrobione
automatycznie.
<P>Je¶li istnieje katalog <CODE>/etc/sysconfig</CODE>, wtedy zostanie
utworzony oddzielny plik konfiguracyjny <CODE>/etc/sysconfig/pcmcia</CODE>
z opcjami startowymi. Je¶li musisz zmieniæ jakiekolwiek opcje
modu³ów (jak <CODE>PCIC=</CODE> czy <CODE>PCIC_OPTS=</CODE>) modyfikuj raczej ten
plik konfiguracyjny ani¿eli w³a¶ciwy skrypt startowy PCMCIA. Plik
ten nie zostanie skasowny przez kolejne instalacje.
<P>Niektóre wcze¶niejsze wersje u¿ywa³y katalogu
<CODE>/etc/sysconfig/pcmcia-scripts</CODE> zamiast <CODE>/etc/pcmcia</CODE>
na tych platformach. Wersja bie¿±ca natomiast u¿ywa <CODE>/etc/pcmcia</CODE>
dla wszystkich systemów, a istniej±cy
<CODE>/etc/sysconfig/pcmcia-scripts</CODE> przeniesie do
<CODE>/etc/pcmcia</CODE>.
<P>
<H2><A NAME="timing"></A> 2.5 Opcje konfiguracji specyficzne dla danego systemu.</H2>

<P>
<P>Pakiet Card Services powinien automatycznie zapobiegaæ alokacji
portów IO i przerwañ, które s± ju¿ u¿ywane przez inne urz±dzenia.
Spróbuje on tak¿e wykryæ konflikty z nieznanymi urz±dzeniami, ale
nie jest to w pe³ni godne zaufania. W niektórych przypadkach,
muisz wyra¼nie podaæ zasoby, które maj± byæ niedostêpne dla danego
urz±dzenia w pliku <CODE>/etc/pcmcia/config.opts</CODE>.
<P>Oto niektóre ustawienia zasobów dla specyficznych typów laptopów.
<P>
<UL>
<LI>W AMS SoundPro wy³±cz IRQ 10.</LI>
<LI>W niektórych modelach TravelPro 5300 u¿yj adresów pamiêci
0xc8000-0xcffff.</LI>
<LI>W BMX 486DX2-66 wy³±cz IRQ 5 i 9</LI>
<LI>W Chicony NB5 u¿yj adresów pamiêci 0xda000-0xdFFFF.</LI>
<LI>Na Compaq Presario 1020, wy³±cz porty 0x2F8-0x2FF, IRQ 3 i IRQ 5.</LI>
<LI>W HP Omnibook 4000C wy³±cz porty 0x300-0x30F.</LI>
<LI>Na Micron Millenia Transport, wy³±cz IRQ 5, IRQ 9.</LI>
<LI>W NEC Versa M, wy³±cz IRQ 9 i porty 0x2E0-2FF.</LI>
<LI>W NEC Versa P/75 wy³±cz IRQ 5 i 9.</LI>
<LI>W NEC Versa S wy³±cz IRQ 9 i 12.</LI>
<LI>W NEC Versa seria 6000 wy³±cz porty 0x300-0x33f, IRQ 9 i 10.</LI>
<LI>W ProStar 9200, Altima Virage i Acquiline Hurricane DX4-100
wy³±cz IRQ 5 i porty 0x330-0x35f. U¿yj mo¿e adresów pamiêci
0xd8000-0xdffff.</LI>
<LI>W Siemens Nixdorf SIMATIC PG 720C u¿yj adresów pamiêci
0xc0000-0xcffff i portów 0x300-0x3bf.</LI>
<LI>W TI TravelMate 5000 u¿yj adresów pamiêci 0xd4000-0xdffff.</LI>
<LI> W Toshiba T4900 CT wy³±cz IRQ 5, porty 0x2E0-0x2E8 i
0x330-0x338.</LI>
<LI>W Twinhead 5100, HP 4000, Sharp PC-8700 i PC-8900 wy³±cz IRQ
9 (d¼wiêk) i 12</LI>
<LI>W MPC seria 800 wy³±cz IRQ i porty 0x300-0x30f dla CD-ROM-u.</LI>
</UL>
<P>Niektóre kontrolery PCMCIA maj± opcjonalne zalety, które mog± byæ
zaimplementowane w danym systemie, ale nie musz±. Generalnie jest
niemo¿liwe dla sterownika gniazdka (socket driver), aby wykryæ czy
te zalety s± zaimplementowane. Sprawd¼ stronê w podrêczniku
systemowym na temat swojego sterownika, aby zobaczyæ jakie
opcjonalne zalety mog± byæ w³±czone.
<P>W kilku przypadkach polecenie <CODE>probe</CODE> nie bêdzie w stanie
wykryæ automatycznie typu twojego kontrolera. Je¶li masz system
Halikan NBD 486, to jego kontroler TCIC-2 znajduje siê w
niezwyk³ym miejscu: bêdziesz musia³ zmodyfikowaæ <CODE>rc.pcmcia</CODE>, aby
za³adowaæ modu³ <CODE>tcic</CODE> oraz ustawiæ <CODE>PCIC_OPTS</CODE> na
<CODE>tcic_base=0x2C0</CODE>.
<P>Sterowniki gniazda typu &quot;low level&quot; <CODE>tcic</CODE> i <CODE>i82365</CODE> maj±
liczne parametry do timing-ów szyny, które mo¿e bêdzie trzeba
ustawiæ dla systemów ze szczególnie szybkimi procesorami. Symptomy
problemów z timing-ami zawieraj± problemy z wykryciem karty,
zawi¶niêcia przy du¿ym za³adowaniu systemu, du¿e ¶rednie b³êdów,
albo z³a wydajno¶æ urz±dzeñ. Sprawd¼ odpowiednie strony w
podrêczniku systemowym, aby dowiedzieæ siê wiêcej szczegó³ów. A
tu jest krótkie podsumowanie:
<P>
<UL>
<LI>Kontrolery Cirrus maj± liczne konfigurowalne parametry
timing-ów. Najwa¿niejszy wydaje siê byæ <CODE>cmd_time</CODE>, który
okre¶la d³ugo¶æ cyklu szyny PCMCIA. Szybkie systemy 486 (np.
DX4-100) wydaj± siê zwiêkszaæ wydajno¶æ przy zwiêkszeniu tego
parametru z domy¶lnej warto¶ci 6 na 12 czy 16.</LI>
<LI>Kontroler Cirrus PD6729 PCI ma parametr <CODE>fast_pci</CODE>, który
powinien byæ ustawiony je¶li szybko¶æ szyny PCI jest wiêksza ni¿
25 MHz.</LI>
<LI>W kontrolerach Vadem VG-468 i Databook TCIC-2 parametr
<CODE>async_clock</CODE> zmienia wzglêdne taktowanie szyny PCMCIA i cykle
szyny host. Ustawienie tego parametru spowoduje dodanie stanów
oczekiwania na niektóre operacje. Chocia¿ jeszcze nie s³ysza³em o
jakim¶ laptopie, który by tego potrzebowa³.</LI>
<LI>Modu³ <CODE>pcmcia_core</CODE> posiada parametr <CODE>cis_speed</CODE>,
który zmienia prêdko¶æ pamiêci u¿ywan± dla dostêpu do Card
Information Structure (CIS). Na niektórych systemach z szybkimi
zegarami szynowymi, zwiêkszanie tego parametru (czyli zwalnianie
dostêpu do kart) mo¿e przynie¶æ po¿ytek przy problemach z
rozpoznaniem karty.</LI>
<LI>To nie jest sprawa timing-ów, ale je¶li masz wiêcej ni¿ jeden
kontroler PCMCIA w twoim systemie, albo jakie¶ dodatkowe gniazda w
stacji dokowania (docking station), powiniene¶ za³adowaæ modu³
<CODE>i82365</CODE> z parametrem <CODE>extra_sockets</CODE> ustawionym na 1.</LI>
</UL>
<P>Wszystkie te opcje powinny byæ skonfigurowane przez modyfikowanie
pocz±tku pliku <CODE>/etc/rc.d/rc.pcmcia</CODE>. Na przyk³ad:
<P>
<PRE>
   # Albo i82365 albo tic
   PCIC=i82365
   # Wstaw tu parametry timing-ów dla sterownika gniazd
   PCIC_OPTS="cmd_time=12"
   # Wstaw tu opcje pcmcia_core
   CORE_OPTS="cis_speed=500"
</PRE>
<P>Oto niektóre ustawienia timing-ów dla specyficznych sytemów:
<P>
<UL>
<LI>W ARM Pentium-90 albo Midwest Micro Soundbook Plus u¿yj
<CODE>freq_bypass=1 cmd_time=8</CODE>.</LI>
<LI>W Midwest Micro Soundbook Elite u¿yj <CODE>cmd_time=12</CODE>.</LI>
<LI>W Gateway Liberty spróbuj <CODE>cmd_time=16</CODE>.</LI>
</UL>
<P>W niektórych systemach u¿ywaj±cych kontrolera Cirrusa, w³±czaj±c
NEC Versa M, BIOS ustawia kontroler w specyficzny stan
zawieszenia podczas startu systemu. W tych systemach, polecenie
<CODE>probe</CODE> nie powiedzie siê. Je¶li tak siê zdarzy, zmodyfikuj plik
<CODE>/etc/rc.d/rc.pcmcia</CODE> rêcznie tak:
<P>
<PRE>
   # Wstaw tu parametry timing-ów dla sterownika gniazd
   PCIC=i82365
   # Wstaw tu opcje pcmcia_core
   PCIC_OPTS="wakeup=1"
</PRE>
<P>
<H2>2.6 Problemy podczas ³adowania modu³ów j±dra.</H2>

<P>
<P>Skrypt konfiguracyjny normalnie upewni siê czy modu³y PCMCIA s±
kompatybilne z twoim j±drem. Tak wiêc, problemy podczas ³adownia
modu³ów wskazuje z regu³y na to, ¿e u¿ytkownik ingerowa³ w jaki¶
sposób w normalny proces instalacji. Niektóre z tych problemów s±
wysy³ane bezpo¶rednio na konsolê Linux-a. Inne b³êdy s± zapisywane
w pliku &quot;log-file&quot;, zwykle jest to <CODE>/usr/adm/messages</CODE> albo
<CODE>/var/log/messages</CODE>. W zale¿no¶ci od konfiguracji twojego
syslogd, niektóre komunikaty mog± byæ zapisane do innych plików,
które zwykle znajduj± siê tak¿e w <CODE>/usr/adm</CODE> czy
<CODE>var/log</CODE>. Aby wy¶ledziæ problem, upewnij siê, ¿e
sprawdzi³e¶ obie lokalizacje.
<P>Niektóre modu³y PCMCIA wymagaj± serwisów j±dra, które mog±, ale
nie musz± byæ obecne, zale¿nie od konfiguracji j±dra. Na przyk³ad,
sterowniki kart SCSI wymagaj± skonfigurowanej obs³ugi SCSI w
j±drze, a sterowniki sieci wymagaj± skonfigurowania sieci w
j±drze. Je¶li w j±drze brakuje potrzebnego serwisu <CODE>insmod</CODE>
mo¿e twierdziæ, ¿e s± niezdefiniowane symbole i nie za³adowaæ
modu³u.
<P>Je¶li <CODE>insmod</CODE> zwraca b³±d &quot;wrong version&quot;, oznacza to, ¿e
modu³ by³ skompilowany dla innej wersji j±dra ni¿ to, które akurat
dzia³a. Mo¿e to siê pojawiæ je¶li modu³y skompilowane na jednej
maszynie s± kopiowane na drug± z inn± konfiguracj±, albo je¶li
j±dro jest rekonfigurowane po tym, jak pakiet PCMCIA zosta³
zainstalowany.
<P>Innym ¼ród³em b³êdów podczas ³adowana modu³ów mo¿e byæ to, ¿e
modu³y i j±dra by³y skompilowane z ró¿nymi ustawieniami
<CODE>CONFIG_MODVERSIONS</CODE>. Je¶li modu³ z wkompilowanym sprawdzaniem
wersji jest ³adowany do j±dra bez sprawdzania wersji, <CODE>insmod</CODE>
zwróci b³±d &quot;undefined symbols&quot;.
<P>Ostatecznie, wzglêdnie nowe wersje binutils s± niekompatybilne ze
starszymi wersjami narzêdzi do modu³ów, i mog± powodowaæ, ¿e s±
zwracane takie w³a¶nie b³êdy. Najczêstszym symptomem jest b³±d o
niezdefiniowaniu <CODE>gcc_compiled</CODE>. Je¶li masz takie b³êdy,
od¶wie¿ narzêdzia do modu³ów do najnowszej wersji, dostêpnych z
<A HREF="ftp://ftp.icm.edu.pl/pub/Linux/sunsite/kernel/">ftp.icm.edu.pl</A>.
<P>
<H2>2.7 Problemy z przerwaniem zmiany statusu karty.</H2>

<P>
<P>W wiêkszo¶æi wypadków sterownik do gniazd (<CODE>i82365</CODE> albo
<CODE>tcic</CODE>) automatycznie wykryje i wybierze odpowiednie
przerwanie, aby sygnalizowaæ zmiany statusu karty. Automatyczne
wyszukiwanie przerwania nie dzia³a na niektórych kontrolerach
kompatybilnych z Intel-em, w³±czaj±c Cirrus-a i niektóre IBM
ThinkPad. Je¶li urz±dzenie nie jest aktywne w czasie sprawdzania,
jego przerwanie mo¿e tak¿e pojawiæ siê jako niedostêpne. W takich
przypadkach sterownik gniazd mo¿e wybraæ przerwanie które jest
u¿ywane przez inne urz±dzenie.
<P>W sterownikach <CODE>i82365</CODE> i <CODE>tcic</CODE> mo¿na u¿ywaæ opcji
<CODE>irq_list</CODE> aby ograniczyæ ilo¶æ wyszukiwanych przerwañ. Lista
ta ogranicza zbiór przerwañ, które mog± byæ u¿yte przez karty
PCMCIA oraz do monitorowania zmian statusu karty. Opcja
<CODE>cs_irq</CODE> mo¿e byæ u¿yta, aby wyra¼nie okre¶liæ przerwanie,
którego nale¿y u¿yæ do monitorowania zmian statusu karty.
<P>Je¶li nie mo¿esz znale¼æ numeru przerwania, które dzia³a, jest
jeszcze tryb statusu &quot;polled&quot;: oba - <CODE>i82365</CODE> i <CODE>tcic</CODE>
zaakceptuj± opcjê <CODE>poll_interval=100</CODE>, aby sprawdzaæ zmiany
statusu karty raz na sekundê. Opcja ta powinna byæ tak¿e u¿ywana
je¶li w twoim systemie brakuje dostêpnych przerwañ dla kart
PCMCIA. Szczególnie w systemach z wiêcej ni¿ jednym kontrolerem
PCMCIA, nie ma zbytnio sensu w przeznaczaniu przerwañ na
monitorowanie zmian statusu kart.
<P>Wszystkie te opcje powinny byæ ustawiane w linii <CODE>PCIC_OPTS=</CODE> w
pliku <CODE>/etc/rc.d/rc.pcmcia</CODE> albo <CODE>/etc/sysconfig/pcmcia</CODE>
zale¿nie od twojego systemu.
<P>
<H2>2.8 Problemy z identyfikacj± karty.</H2>

<P>
<P>Domy¶lnie, sterowniki PCMCIA alokuj± okna pamiêci w przestrzeni
0xC0000-0xFFFFF, po sprawdzeniu czy nie ma w niej jakich¶
konfliktów z ROM-em czy innymi urz±dzeniami. To okno pamiêci jest
podane w pliku <CODE>/etc/pcmcia/config.opts</CODE>. Sprawdzanie ma
miejsce przy pierwszej próbie skonfigurowania nowej karty.
Procedura sprawdzania nie jest idioto-odporna, wiêc mo¿liwe jest
niezidentyfikowanie konfliktu. Je¶li obszar ten jest u¿ywany przez
inne urz±dzenia w twoim systemie, karty mog± nie zostaæ
zidentyfikowane poprawnie. Przy uk³adach które to obs³uguj±,
konflikt mo¿e te¿ powstawaæ przy przes³anianiu tego obszaru
pamiêci.
<P>Klasycznym symptomem problemu z konfiguracj± okna pamiêci jest
zidentyfikowanie wszystkich kart jako karty pamiêci. W
nadzwyczajnych przypadkach konflikt taki mo¿e powstaæ z jakim¶
krytycznym serwisem systemowym, co mo¿e powodowaæ zawieszenia czy
restarty. Je¶li podejrzewasz taki konflikt, sprawd¼ najpierw czy
wy³±czone jest przes³anianie ROM-u w ustawieniach twojego sprzêtu.
Znalezienie dobrego okna mo¿e wymagaæ trochê eksperymentów. Kilka
alternatywnych okien to: 0xD0000-0xDFFFF, 0xC9000-0xCFFFF i
0xD8000-0xDFFFF.
<P>Je¶li masz sterowniki DOS-owe do PCMCIA, mo¿esz zobaczyæ jakich
obszarów pamiêci one u¿ywaj±. Zauwa¿, ¿e adresy pamiêci w DOS-ie
s± czêsto podawane w formie segmentów, która to obcina ostatni±
cyfrê szesnastkow± (tak, ¿e adres bezwzglêdny 0xD0000 by³by podany
jako 0xD000. Upewnij siê, ¿e doda³e¶ tê jedn± cyfrê kiedy
wpisywa³e¶ warto¶æ do pliku <CODE>/etc/pcmcia/config.opts</CODE>.
<P>Je¶li problem z identyfikacj± karty nie zosta³ rozwi±zany
dopasowywaniem okien pamiêci, to prawdopodobnie jest to problem z
&quot;timing-ami&quot;
<P>
<H2>2.9 Dlaczego nie dystrybujesz binariów do PCMCIA ?</H2>

<P>
<P>Dla mnie, dystrybucja binariów jest bardzo niewygodna. Jest to
sprawa skomplikowana poniewa¿ niektóre zalety mog± byæ podane
dopiero w czasie kompilacji, oraz dlatego, ¿e modu³y PCMCIA s±
zale¿ne od &quot;poprawnej&quot; konfiguracji j±dra. Wiêc musia³bym
przypuszczalnie dystrybu³owaæ prekompilowane modu³y wraz z
odpowiednimi wersjami j±der. Id±c dalej, prekompilowane modu³y s±
najbardziej potrzebne kiedy instalujemy Linux-a od pocz±tku. To z
regu³y wymaga ustawienia PCMCIA tak, ¿eby mo¿na jej by³o u¿yæ w
procesie instalacji dla konkretnej dystrybucji Linux-a. Ka¿da
dystrybucja Linux-a ma w³asn± procedurê, i nie jest dla mnie
wykonalnym udostêpniaæ dyskietki &quot;boot&quot; i &quot;root&quot; chcocia¿by tylko
dla tych najbardziej popularnych kombinacji sterowników i dystrybucji.
<P>PCMCIA jest teraz czê¶ci± wiêkszo¶ci wa¿niejszych dystrybucji,
w³±czaj±c Red Hat, Caldera, Slackware, Yggdrasil, Craftworks oraz
Nascent Technology.
<P>
<H2>2.10 Dlaczego ten pakiet jest taki wielki ?</H2>

<P>
<P>No có¿, po pierwsze, to on wcale nie jest taki wielki. Wszystkie
modu³y sterowników razem wziête zajmuj± jakie¶ 200k. Programy
narzêdziowe dodaj± jeszcze jakie¶ 70k, a rzeczy w /etc/pcmcia
zajmuj± jakie¶ 30k. Podczas dzia³ania, rdzeñ modu³ów PCMCIA
zabiera oko³o 48k pamiêci systemowej. Demon cardmgr z regu³y jest
wyswapowywany oprócz momentów kiedy karty s± wsadzane lub
wyjmowane. Ca³kowita objêto¶æ pakietu nie wiele ró¿ni siê od
implementacji Card Services pod DOS-a.
<P>W porównaniu z DOS-owymi &quot;w³±cznikami&quot;, mo¿e siê to wydawaæ trochê
przesadzone, szczególnie dla ludzi, którzy nie planuj± u¿ywaæ tych
wszystkich zalet jakie posiada PCMCIA, jak np. zarz±dzanie
zasilaniem czy &quot;gor±ce wymiany&quot;. &quot;W³±czniki&quot; mog± byæ malutkie
poniewa¿ generalnie obs³uguj± one ograniczon± ilo¶æ kontrolerów
PCMCIA. Je¶li kto¶ mia³by napisaæ autentycznie &quot;ogólny&quot; &quot;w³±cznik&quot;
do modemu, skoñycz³oby siê na tym, ¿e pojawi³aby siê tam wiêkszo¶æ
funkcji z Card Services, aby obs³u¿yæ karty od ró¿nych sprzedawców
oraz pe³ny zakres ró¿nych wariantów kontrolerów PCMCIA.
<P>
<H2><A NAME="s3">3. Stosowanie i zalety.</A></H2>

<P>
<P>
<H2>3.1 Narzêdzia do monitorowania urz±dzeñ PCMCIA.</H2>

<P>
<P>Demon <CODE>cardmgr</CODE> normalnie wydaje sygna³ d¼wiêkowy (beep) kiedy
karta jest wsadzana, a ton tego d¼wiêku informuje nas o statusie
nowo w³o¿onej karty. D¼wiêk wysoki a po nim niski informuje, ¿e
karta zosta³a zidentyfikowana, ale z jakiego¶ powodu nie mog³a
zostaæ skonfigurowana. Jeden d¼wiêk niski informuje, ¿e karta nie
mog³a zostaæ zidentyfikowana.
<P>Je¶li wszystkie modu³y s± poprawnie za³adowane, polecenie
<CODE>lsmod</CODE> daje mniej wiêcej taki wynik (bez w³o¿onych kart):
<P>
<PRE>
   Module:        #pages:  Used by:
   ds                 2
   i82365             3
   pcmcia_core        7    [ds i82365]
</PRE>
<P>Wszystkie modu³y PCMCIA oraz demon <CODE>cardmgr</CODE> wysy³aj±
komunikaty o statusie do systemowego programu loguj±cego. Bêdzie
to z regu³y <CODE>/var/log/messages</CODE> albo
<CODE>/usr/adm/messages</CODE>. Powinno to byæ pierwsze miejsce, do
którego nale¿y zajrzeæ kiedy co¶ nie dzia³a. Kiedy wysy³asz mi
wiadomo¶æ o jakim¶ b³êdzie, zawsze do³±cz zawarto¶æ tego pliku.
Je¶li nie mo¿esz znale¼æ komunikatów z twojego systemu, to sprawd¼
konfiguracjê w pliku <CODE>/etc/syslogd.conf</CODE>, aby zobaczyæ do
jakich plików s± one zapisywane. <CODE>Cardmgr</CODE> tak¿e zapisuje
niektóre bie¿±ce informacje o urz±dzeniach dla ka¿dego gniazda w
pliku <CODE>/var/run/stab</CODE>. Oto przyk³adowa zawarto¶æ tego
pliku:
<P>
<PRE>
   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
</PRE>
<P>W liniach opisuj±cych urz±dzenia, pierwsze pole jest gniazdem,
drugie - klas± urz±dzenia, trzecie - nazw± sterownika, czwarte
jest u¿ywane, aby numerowaæ urz±dzenia z³o¿one (multiple devices)
zwi±zane z tym samym sterownikiem, pi±te - nazw± urz±dzenia, a
ostatnie dwa pola s± liczb± g³ówn± i poboczn± dla danego
urz±dzenia (je¶li jest dostêpne).
<P>Polecenie <CODE>cardctl</CODE> mo¿e s³u¿yæ do sprawdzenia statusu gniazda,
albo jego konfiguracji. Oto przyk³adowy rezultat polecenia
&quot;<CODE>cardctl config</CODE>&quot;:
<P>
<BLOCKQUOTE><CODE>
<PRE>
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
</PRE>
</CODE></BLOCKQUOTE>
<P>Je¶li masz uruchomione X-y, to narzêdzie <CODE>cardinfo</CODE> wy¶wietla
informacje o statusie wszystkich gniazd PCMCIA, podobn± w
zawarto¶ci do &quot;<CODE>cardctl config</CODE>&quot;.
<P>
<H2>3.2 Przegl±d skryptów konfiguracyjnych PCMCIA.</H2>

<P>
<P>Ka¿de urz±dzenie PCMCIA jest przyporz±dkowane jakiej¶ klasie,
która opisuje jak powinno ono zostaæ skonfigurowane i jak nim
zarz±dzaæ. Klasy s± zwi±zane ze sterownikami urz±dzeñ w
<CODE>/etc/pcmcia/config</CODE>. Jest w tej chwili piêæ klas urz±dzeñ
IO (sieæ, SCSI, CD-ROM, dyski fixed i szeregowe) oraz dwie klasy
urz±dzeñ zwi±zanych z pamiêci± (pamiêæ i FTL). Dla ka¿dej
klasy s± dwa skrypty w <CODE>/etc/pcmcia/config</CODE>: g³ówny skrypt
konfiguracyjny (<CODE>/etc/pcmcia/scsi</CODE> dla urz±dzeñ SCSI), i
skrypt z opcjami (<CODE>/etc/pcmcia/scsi.opts</CODE>). Skrypt g³ówny
dla danego urz±dzenia zostanie wywo³any, aby skonfigurowaæ to
urz±dzenie kiedy karta jest wk³adana, i ¿eby wy³±czyæ dane
urz±dzenie kiedy karta jest wyjmowana. Dla kart, z którymi jest
zwi±zane kilka urz±dzeñ, skrypt zostanie wywo³any dla ka¿dego
urz±dzenia.
<P>Skrypty konfiguracyjne zaczynaj± od wyci±gniêcia pewnych
informacji o danym urz±dzeniu z pliku <CODE>/var/run/stab</CODE>.
Ka¿dy skrypt konstruuje &quot;adres urz±dzenia&quot; w zmiennej <CODE>ADDRESS</CODE>,
który jest unikatowy dla urz±dzenia, które ma byæ skonfigurowane.
Jest to przekazywane do skryptu <CODE>*.opts</CODE>, który powinien
zwróciæ informacjê o tym, jak dane urz±dzenie z podanego adresu
powinno zostaæ skonfigurowane. Dla niektórych urz±dzeñ, adres ten
jest po prostu numerem gniazda. Dla innych, zawiera on dodatkowe
informacje, które mog± byæ przydatne do zadecydowania jak
skonfigurowaæ dane urz±dzenie. Na przyk³ad, urz±dzenia sieciowe
przekazuj± swój adres Ethernet-owy jako czê¶æ swojego &quot;adresu
urz±dzenia&quot;, tak ¿eby skrypt <CODE>network.opts</CODE> móg³ tego u¿yæ, aby
wybraæ z kilku ró¿nych konfiguracji.
<P>Pierwsz± czê¶ci± wszystkich adresów urz±dzeñ jest bie¿±cy schemat
PCMCIA. Parametr ten jest u¿ywany do obs³ugi z³o¿onych zbiorów
konfiguracji urz±dzeñ opartych na pojedynczej zewnêtrznej zmiennej
podanej przez u¿ytkownika. Jeden ze sposobów u¿ycia schematów to
posiadanie schematu domowego, i schematu roboczego, który
zawiera³by ró¿ne zbiory parametrów konfiguracji sieci. Schemat
bie¿±cy jest wybierany przy pomocy polecenia <CODE>cardctl</CODE>.
Domy¶lnym schematem, je¶li ¿aden nie jest podany, jest &quot;default&quot;.
<P>Jako zasada ogólna podczas konfiguracji Linux-a na laptopa,
urz±dzenia PCMCIA powinny byæ konfigurowane tylko przy pomocy
skryptów do urz±dzeñ PCMCIA. Nie próbuj konfigurowaæ urz±dzenia
PCMCIA w ten sam sposób co urz±dzenie do³±czone na sta³e.
<P>
<H2>3.3 Adaptery sieciowe PCMCIA.</H2>

<P>
<P>Normalnie interfejsy sieciowe typu Ethernet na Linux-ie maj± nazwy
<CODE>eth0</CODE>, <CODE>eth1</CODE> itd. Kontrolery Token-Ring s± obs³ugiwane
podobnie, chocia¿ nazywane s± <CODE>tr0</CODE>, <CODE>tr1</CODE> itd. Polecenie
<CODE>ifconfig</CODE> jest wywo³ywane, aby zobaczyæ albo zmodyfikowaæ stan
urz±dzenia sieciowego. W³asno¶ci± Linux-a jest to, ¿e interfejsy
sieciowe nie maj± odpowiednich plików w katalogu <CODE>/dev</CODE>,
wiêc nie b±d¼ zaskoczony, ¿e nie mo¿esz ich znale¼æ.
<P>Kiedy zostanie wykryta karta Ethernet-owa PCMCIA, zostanie jej
przydzielona pierwsza wolna nazwa interfejsu, któr± bêdzie
przypuszczalnie <CODE>eth0</CODE>. <CODE>Cardmgr</CODE> wykona skrypt
<CODE>/etc/pcmcia/network</CODE>, aby skonfigurowaæ ten interfejs.
<P>Nie konfiguruj swojej karty Ethernet-owej w
<CODE>/etc/rc.d/rc.inet1</CODE> poniewa¿ karty mo¿e nie byæ kiedy
skrypt ten jest wykonywany. Wstaw w komentarz wszystko, oprócz
urz±dzenia &quot;loopback&quot; w <CODE>rc.inet1</CODE>.<BR>
Je¶li twój system ma automatyczn± procedurê konfiguracji sieci
powiniene¶ zwykle wskazaæ, ¿e nie masz zainstalowanej karty sieciowej. W
zamian, zmodyfikuj plik <CODE>/etc/pcmcia/network.opts</CODE>, tak aby
odpowiada³ twojej lokalnej konfiguracji sieci. Skrypty
<CODE>network</CODE> i <CODE>network.opts</CODE> zostan± wykonane tylko je¶li
twoja karta Ethernet-owa jest obecna.
<P>Adres urz±dzenia przekazany do <CODE>network.opts</CODE> sk³ada siê, z
czterech pól oddzielonych przecinkami: schematu, numeru gniazda,
numeru urz±dzenia i sprzêtowego adresu karty Ethernet. Numer
urz±dzenia jest u¿ywany do numerowania urz±dzeñ dla kart, które
maj± kilka interfejsów sieciowych, tak wiêc zwykle bêdzie to 0.
Je¶li masz kilka kart sieciowych u¿ywanych do ró¿nych celów,
jedn± z opcji by³oby skonfigurowanie kart oparte na numerze
gniazda, jak tu:
<P>
<PRE>
   case "$ADDRESS" in
   *,0,*,*)
       # definicje dla karty sieciowej w gnie¼dzie 0
       ;;
   *,1,*,*)
       # definicje dla karty sieciowej w gnie¼dzie 1
       ;;
   esac
</PRE>
<P>Alternatywnie mog³yby one byæ skonfigurowane u¿ywaj±c ich adresów
sprzêtowych, jak tu:
<P>
<PRE>
   case "$ADDRESS" in
   *,*,*,00:80:C8:76:00:B1)
       # definicje dla karty D-Link
       ;;
   *,*,*,08:00:5A:44:80:01)
       # definicje dla karty IBM
   esac
</PRE>
<P>Aby automatycznie zamontowaæ i odmontowaæ system plików NFS,
najpierw dodaj te wszystkie systemy do <CODE>/etc/fstab</CODE>, ale w
opcjach podaj <I>noauto</I>. W <CODE>network.opts</CODE> wpisz
katalogi, w których maj± byæ zamontowane systemy plików NFS w
zmiennej <CODE>MOUNTS</CODE>. Jest tu szczególnie wa¿ne, aby u¿yæ albo
<CODE>cardctl</CODE> albo <CODE>cardinfo</CODE>, aby wy³±czyæ kartê sieciow± kiedy
montowanie z NFS jest w ten sposób skonfigurowane. Nie jest
mo¿liwe czyste odmontowanie systemu plików NFS je¶li karta
sieciowa jest po prostu wyrzucana bez ostrze¿enia.
<P>Dodatkowo oprócz zwyk³ych parametrów konfiguracyjnych dla sieci,
skrypt <CODE>network.opts</CODE> mo¿e podawaæ inne akcje, które maj± mieæ
miejsce po tym jak interfejs zosta³ skonfigurowany, albo przed
zamkniêciem interfejsu. Je¶li w <CODE>network.opts</CODE> zdefiniowana
jest funkcja <CODE>start_fn</CODE>, zostanie ona wywo³ana przez skrypt
sieciowy po skonfigurowaniu interfejsu, a nazwa interfejsu
zostanie przekazana do tej funkcji jako pierwszy i jedyny
argument. Podobnie je¶li funkcja <CODE>stop_fn</CODE> jest zdefiniowana,
to zostanie ona wywo³ana przed zamkniêciem interfejsu.
<P>
<H3>Wybór transceiver-a.</H3>

<P>
<P>Typ transceiver-a mo¿na wybraæ w <CODE>network.opts</CODE> przy pomocy
ustawienia <CODE>IF_PORT</CODE>. Mo¿e to byæ zarówno warto¶æ numeryczna
jak we wcze¶niejszych wydaniach PCMCIA, jak i s³owo kluczowe
identyfikuj±ce typ transceiver-a. Warto¶ciami domy¶lnymi we
wszystkich sterownikach sieciowych s±: wykrywanie automatyczne
interfejsu je¶li jest to mo¿liwe, a w przeciwnym razie - 10baseT.
Przy pomocy polecenia <CODE>ifport</CODE> mo¿na sprawdziæ lub ustawiæ
bie¿±cy typ transceiver-a. Np.:
<P>
<BLOCKQUOTE><CODE>
<PRE>
# ifport eth0 10base2
# 
# ifport eth0
eth0    2 (10base2)
</PRE>
</CODE></BLOCKQUOTE>
<P>Obecne wersje sterownika 3c589 próbuj± automatycznie wykryæ
po³±czenie sieciowe, ale nie jest to jeszcze w pe³ni funkcjonalne.
Aby automatyczne wykrywanie dzia³a³o, kabel sieciowy powinien
tkwiæ w karcie podczas jej konfiguracji. Alternatywnym
rozwi±zaniem jest zmuszenie sterownika do sprawdzenia po³±czenia
przy pomocy polecenia:
<P>
<BLOCKQUOTE><CODE>
<PRE>
ifconfig eth0 down up
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H3>Komentarze na temat konkretnych kart.</H3>

<P>
<P>
<UL>
<LI>Przy kartach IBM CCAE i Socket EA musisz wybraæ typ transceiver-a
(10base2, 10baseT, AUI) gdy urz±dzenie sieciowe jest ju¿
skonfigurowane. Upewnij siê, ¿e typ transceiver-a zapisany w
logach jest zgodny z rzeczywistym.</LI>
<LI>Sterowniki dla kart SMC, Megahertz, Ositech i 3Com powinny
automatycznie wykryæ typ do³±czonej sieci (10base2 lub 10baseT).
Ustawienie typu transceiver-a kiedy sterownik jest ju¿ za³adowany
ma na celu zdefiniowanie pierwszej warto¶ci sprawdzanej przez
sterownik.</LI>
<LI>Karta Farallon EtherWave jest w³a¶ciwie zbudowana na bazie 3Com
3c589 ze specjalnym transceiver-em. Pomimo, i¿ EtherWave u¿ywa
po³±czeñ 10baseT jej transceiver wymaga, ¿eby 3c589 by³a
skonfigurowana na tryb 10base2.</LI>
<LI>Je¶li masz problemy z kartami IBM CCAE, NE4100, Thomas Conrad
czy Kingston - spróbuj zwiêkszyæ czas dostêpu do pamiêci opcj±
<CODE>mem_speed=#</CODE> dla modu³u <CODE>pcnet_cs</CODE>. Przyk³ad jak to
zrobiæ znajdziesz w standardowym pliku <CODE>config.opts</CODE>. Wypróbuj
prêdko¶ci do 1000 nanosekund.</LI>
<LI>Na niektórych systemach przy karcie New Media Ethernet mo¿liwe, ¿e
trzeba zwiêkszyæ czas dostêpu do portów IO opcj± <CODE>io_speed=#</CODE>
podczas ³adowania modu³u <CODE>pcmcia_core</CODE>. Aby ustawiæ tê opcjê
zmodyfikuj linijkê <CODE>CORE_OPTS</CODE> w skrypcie startowym.</LI>
<LI>Obs³uga muticastingu w sterowniku dla New media Ethernet nie jest
pe³na. Najnowszy sterownik bêdzie dzia³a³ z j±drem skompilowanym
do multicastingu, ale bêdzie ignorowa³ takie pakiety. Tryb
&quot;promiscuous&quot; powinien dzia³aæ poprawnie.</LI>
<LI>Wygl±da na to, ¿e sterownik u¿ywany przez karty IBM i 3Com token
ring zachowuje siê bardzo ¼le je¶li karty nie s± po³±czone z
pier¶cieniem podczas inicjalizacji. Zawsze pod³±czaj te karty do
sieci kiedy s± uruchamiane. Sterownik ten wymaga tak¿e wolnych
portów w obszarze 0xA20-0xA27. Na niektórych systemach,
automatyczne sprawdzanie konfliktów w¶ród portów IO b³êdnie
okre¶li ten obszar jako niedostêpny. W tym wypadku, sprawdzanie
mo¿e zostaæ wy³±czone poprzez za³adowanie modu³u <CODE>pcmcia_core</CODE>
z opcj± <CODE>probe_io=0</CODE>.</LI>
<LI>Nowsze karty Linksys i D-Link maj± swój unikalny sposób wybierania
typu transceiver-a, który nie jest obs³ugiwany przez sterowniki
Linux-owe. Jednym ze sposobów na obej¶cie tego jest wystartowaæ
DOS-a i u¿yæ narzêdzia dostarczonego przez sprzedawcê, aby wybraæ
transceiver i potem wystartowaæ Linux-a na &quot;ciep³o&quot;.
Szukam beta-testerów do narzêdzia na Linux-a, które by umo¿liwia³o
tak± funkcjê.</LI>
<LI>Jean Tourrilhes (
<A HREF="mailto:jt@hplb.hpl.hp.com">jt@hplb.hpl.hp.com</A> napisa³ 
<A HREF="http://www-uk.hpl.hp.com/people/jt/Linux/Wavelan.html">HOWTO</A> na temat bezprzewodowych kart sieciowych WaveLAN.</LI>
</UL>
<P>
<H3>Diagnozowanie problemów z kartami sieciowymi.</H3>

<P>
<P>
<UL>
<LI>Czy twoja karta jest rozpoznawana jako karta etnernetowa?
Sprawd¼ logi systemowe i upewnij siê, ¿e <CODE>cardmgr</CODE> identyfikuje
twoj± kartê poprawnie i startuje jeden ze sterowników sieciowych.
Je¶li nie, to twoj± kartê mo¿na wci±¿ u¿yæ je¶li jest ona
kompatybilna z jak±¶ obs³ugiwan±. Najpro¶ciej jest to zrobiæ je¶li
karta &quot;twierdzi&quot;, ¿e jest kompatybilna z NE2000.</LI>
<LI>Czy karta jest poprawnie skonfigurowana? Je¶li u¿ywasz
obs³ugiwanej karty i zosta³a ona rozpoznana przez <CODE>cardmgr</CODE>,
ale wci±¿ nie dzia³a, to mo¿liwy jest konflikt z przerwaniami lub
portami. Zobacz jakich zasobów u¿ywa karta (z logów systemowych) i
spróbuj wy³±czyæ je w <CODE>/etc/pcmcia/config.opts</CODE>, aby zmusiæ
kartê do u¿ycia innych.</LI>
<LI>Je¶li twoja karta wydaje siê byæ skonfigurowana poprawnie, ale
czasami siê zawiesza, szczególnie przy du¿ym obci±¿eniu systemu,
mo¿liwe, ¿e musisz spróbowaæ zmieniæ paramtery &quot;timing-owe&quot;
gniazda dla sterownika. Wiêcej informacji znajdziesz w sekcji
<A HREF="#timing">2.3</A>.</LI>
<LI>Je¶li masz komunikaty w stylu &quot;network unreachable&quot;
kiedy próbujesz dostaæ siê do sieci, to przypuszczalnie b³êdnie
ustawi³e¶ parametry w <CODE>/etc/pcmcia/network.opts</CODE>. Jednak z
drugiej strony b³êdnie skonfigurowane karty z regu³y nie zainicjuj±
siê i nie wy¶wietl± przy tym ¿adnych komunikatów</LI>
<LI>Aby sprawdziæ problemy z <CODE>/etc/pcmcia/network.opts</CODE>,
zacznij od próby ping-owania innych systemów w tej samej podsieci
uzywaj±c ich adresów IP. Potem spróbuj ping-owaæ swój gateway, i
maszyny w innych podsieciach. Ping-uj maszyny po ich adresach
tylko po zrobieniu tych prostych testów.</LI>
<LI>Upewnij siê, ¿e twój problem to naprawdê problem z PCMCIA.
Sprawdzenie, czy karta dzia³a pod DOS-em ze sterownikiem od
sprzedawcy mo¿e pomóc. Sprawd¼ dwa razy modyfikacje w skrypcie
<CODE>/etc/pcmcia/network.opts</CODE>. Upewnij siê, ¿e twoje kable,
wtyczka &quot;T&quot;, terminator itp. dzia³aj±.</LI>
</UL>
<P>
<H2>3.4 Urz±dzenia szeregowe i modemy PCMCIA.</H2>

<P>
<P>Linux-owe urz±dzenia szeregowe s± dostêpne poprzez specjalne pliki
<CODE>/dev/cua*</CODE> i <CODE>/dev/ttyS*</CODE>. Urz±dzenia <CODE>ttyS*</CODE> s±
dla po³±czeñ przychodz±cych, jak np. bezpo¶rednio pod³±czone
terminale. Urz±dzenia <CODE>cua*</CODE> s± dla po³±czeñ wychodz±cych, jak
np. modemy. Ka¿dy fizyczny port szeregowy ma plik urz±dzenia <CODE>ttyS</CODE> i
<CODE>cua</CODE>: to ju¿ zale¿y od ciebie jaki plik wykorzystasz w swojej
aplikacji. Konfiguracja urz±dzenia szeregowego mo¿e byæ
sprawdzana i modyfikowana poprzez polecenie <CODE>setserial</CODE>.
<P>Kiedy zostanie wykryta karta szeregowa lub modemowa PCMCIA, zostanie jej
przypisany pierwszy dostêpny slot urz±dzenia szeregowego. Bêdzie to
zwykle <CODE>/dev/ttyS1</CODE> (<CODE>cua1</CODE>) albo <CODE>/dev/ttyS2</CODE>
(<CODE>cua2</CODE>) w zale¿no¶ci od ilo¶ci wbudowanych portów szeregowych.
Urz±dzenie <CODE>ttyS*</CODE> jest raportowane w pliku <CODE>/var/run/stab</CODE>.
Domy¶lny skrypt z opcjami dla urz±dzenia szeregowego
<CODE>/etc/pcmcia/serial.opts</CODE> pod³±czy odpowiedni w ramach
udogodnienia plik urz±dzenia <CODE>cua*</CODE> do <CODE>/dev/modem</CODE>.
<P>Nie próbuj u¿ywaæ <CODE>/etc/rc.d/rc.serial</CODE> do konfiguracji
modemu PCMCIA. Skrypt ten powinien byæ u¿ywany tylko do
konfiguracji urz±dzeñ zainstalowanych na sta³e. Modyfikuj
<CODE>/etc/pcmcia/serial.opts</CODE> je¶li chcesz jakich¶ specjalnych
ustawieñ dla swojego modemu. Nie próbuj tak¿e zmieniaæ portu IO
czy IRQ szeregowego urz±dzenia PCMCIA programem <CODE>setserial</CODE>.
Poinformowa³oby to sterownik szeregowy, ¿e karta jest w innym
miejscu, ale nie zmieni³oby ustawieñ sprzêtowych karty. Skrypt
konfiguracyjny pozwala na podanie innych opcji <CODE>setserial</CODE> jak
rownie¿ to czy linia dla tego portu powinna zostaæ dodana do
<CODE>/etc/inittab</CODE>.
<P>Adres urz±dzenia przekazywany do <CODE>serial.opts</CODE> ma trzy pola
odzielone przecinkami: pierwsze jest schematem, drugie - numerem
gniazda, trzecie - numerem urz±dzenia. Numer urz±dzenia mo¿e
przyjmowaæ kilka warto¶ci dla kart, które obs³uguj± wieloportowe
karty szeregowe, ale dla kart jednoportowych bêdzie to zawsze 0.
Je¶li zwykle u¿ywasz wiêcej ni¿ jednego modemu PCMCIA, mo¿esz podaæ
ró¿ne ustawienia oparte na numerze gniazda, jak tu:
<P>
<PRE>
   case "$ADDRESS" in
   *,0,*)
       # Opcje dla modemu w gnie¼dzie 0
       LINK=/dev/modem0
       ;;
   *,1,*)
       # Opcje dla modemu w gnie¼dzie 1
       LINK=/dev/modem1
       ;;
   esac
</PRE>
<P>Je¶li modem PCMCIA jest ju¿ skonfigurowany gdy Linux startuje,
mo¿e zostaæ ¼le zidentyfikowany jako zwyk³y wbudowany port
szeregowy. Jest to nieszkodliwe, chocia¿, kiedy sterowniki PCMCIA
przejmuj± kontrolê nad modemem, bêdzie mu nadany inny slot.
Najlepiej albo zmodyfikowaæ <CODE>/var/run/stab</CODE> albo u¿yæ
<CODE>/dev/modem</CODE> ni¿ liczyæ na to, ¿e modem PCMCIA bêdzie
zawsze mia³ przypisane to samo urz±dzenie.
<P>Je¶li skonfigurujesz twoje j±dro, aby ³adowa³o podstawowy
sterownik do portów szeregowych jako modu³, musisz zmodyfikowaæ
<CODE>/etc/pcmcia/config</CODE>, aby wskazaæ, ¿e ten modu³ ma byæ
³adowany. Zmieñ pozycjê urz±dzenia szeregowego tak:
<P>
<PRE>
   device "serial_cs"
     class "serial" module "char/serial", "serial_cs"
</PRE>
<P>
<H3>Diagnozowanie problemów z urz±dzeniami szeregowymi.</H3>

<P>
<P>
<UL>
<LI>Czy twoja karta jest rozpoznawana jako modem? Sprawd¼ log
systemowy i upewnij siê, ¿e <CODE>cardmgr</CODE> identyfikuje kartê
poprawnie i startuje sterownik <CODE>serial_cs</CODE>. Je¶li nie, to
mo¿liwe, ¿e musisz dodaæ jeszcze jedn± pozycjê do swojego pliku
<CODE>/etc/pcmcia/config</CODE> tak, ¿e zostanie ona poprawnie
zidentyfikowana. Wiêcej szczegó³ów w sekcji 
<A HREF="#new-card">3.6</A>.</LI>
<LI>Czy modem zosta³ poprawnie skonfigurowany przez serial_cs? Znowu,
sprawd¼ logi systemowe i poszukaj komunikatów pochodz±cych od
sterownika serial_cs. Je¶li zobaczy¶ &quot;register_serial()
failed()&quot;, to mo¿esz mieæ konflikt portów IO. Inn± wskazówk±
na konflikt jest zg³oszenie urz±dzenia 8250; wiêkszo¶æ
nowoczesnych modemów PCMCIA powinna byæ identyfikowana jako UART
16550A. Je¶li s±dzisz, ¿e masz do czynienia z konfliktem portów,
zmodyfikuj <CODE>/etc/pcmcia/config.opts</CODE> i wy³±cz obszar
portów, który zosta³ zaalokowany dla modemu.</LI>
<LI>A mo¿e jest konflikt przerwañ? Je¶li log systemowy wygl±da na
dobry, ale modem po prostu nie dzia³a, to spróbuj u¿yæ
<CODE>setserial</CODE>, aby zmieniæ IRQ na 0 i sprawd¼ czy modem dzia³a.
Wywo³anie takie wymusza na sterowniku u¿ycie wolniejszego trybu
&quot;<I>polled</I>&quot; zamiast u¿ycia przerwañ. Je¶li to
naprawia problem, to ca³kiem mo¿liwe, ¿e jakie¶ inne urz±dzenie w
twoim systemie u¿ywa przerwania wybranego przez serial_cs.
Powiniene¶ dodaæ liniê do pliku <CODE>/etc/pcmcia/config.opts</CODE>
wy³±czaj±ce to przerwanie.</LI>
<LI>Je¶li modem zdaje siê dzia³aæ, ale bardzo, bardzo wolno, to jest
prawie pewne, ¿e jest konflikt przerwañ.</LI>
<LI>Upewnij siê, ¿e twój problem, to rzeczywi¶cie problem z PCMCIA.
Pomocne mo¿e byæ sprawdzenie, czy karta dzia³a pod DOS-em u¿ywaj±c
sterownika dostarczonego przez sprzedawcê. Nie testuj tak¿e karty
w skomplikowanych warunkach jak SLIP czy PPP dopóki nie jeste¶
pewnien, ¿e mo¿esz nawi±zywaæ proste po³±czenia. Je¶li proste
rzeczy dzia³aj± a SLIP - nie, to problem jest ze SLIP-em, a nie
PCMCIA.</LI>
<LI>Je¶li otrzymujesz komunikaty od j±dra wskazuj±ce na to, ¿e modu³
serial_cs nie mo¿e byæ za³adowany, to znaczy, ¿e j±dro nie ma
obs³ugi dla urz±dzeñ szeregowych. Je¶li skompilowa³e¶ sterownik
szeregowy jako modu³, to musisz zmodyfikowaæ <CODE>/etc/pcmcia/config</CODE>,
aby zaznaczyæ, ¿e modu³ <CODE>serial</CODE> powinien byæ za³adowany przed
<CODE>serial_cs</CODE>.</LI>
</UL>
<P>
<H2>3.5 Adaptery PCMCIA SCSI.</H2>

<P>
<P>Wszystkie obecnie obs³ugiwane karty PCMCIA SCSI s± podobne w
dzia³aniu do jednej z nastêpuj±cych kart: Qlogic, Adaptec
AHA-152X albo Future Domain TMC-16x0. Sterowniki PCMCIA s±
stworzone przez do³±czanie czê¶ci specyficznego dla PCMCIA kodu (w
<CODE>qlogic_cs.c</CODE>, <CODE>toaster_cs.c</CODE> albo <CODE>fdomain_cs.c</CODE>) do
normalnego sterownika SCSI dla Linux-a.
<P>Kiedy wykryty zostanie nowy kontroler SCSI, sterowniki do SCSI bêd±
szukaæ urz±dzeñ. Sprawd¼ logi systemowe, aby upewniæ siê, ¿e twoje
urz±dzenia zosta³y wykryte poprawnie. Nowym urz±dzeniom SCSI
zostanie przypisany pierwszy wolny plik urz±dzenia SCSI. Pierwszy
dysk SCSI bêdzie <CODE>/dev/sda</CODE>, pierwsza ta¶ma SCSI bêdzie
<CODE>/dev/st0</CODE>, a pierwszy CD-ROM SCSI bêdzie <CODE>/dev/scd0</CODE>.
<P>Rdzeniowe sterowniki PCMCIA s± w stanie dowiedzieæ siê od j±dra
1.3.X i pó¼niejszego, które urz±dzenia SCSI s± pod³±czone do karty. Bêd± one
wymienione w <CODE>/var/run/stab</CODE>, a skrypt konfiguracyjny SCSI
<CODE>/etc/pcmcia/scsi</CODE> bêdzie wywo³any jeden raz dla ka¿dego
do³±czonego urz±dzenia, aby je albo skonfigurowaæ albo wy³±czyæ.
Skrypt domy¶lny nie robi nic, aby skonfigurowaæ urz±dzenia SCSI,
ale poprawnie odmontuje systemy plików z urz±dzeñ SCSI kiedy karta
zostanie usuniêta.
<P>Sterowniki PCMCIA z j±drem w wersji 1.2.X nie potrafi± automatycznie
wykryæ , które urz±dzenia s± przypisane konkretnemu
sterownikowi. W zamian za to, je¶li masz jedn± normaln±
konfiguracjê urz±dzenia SCSI, mo¿esz wymieniæ te urz±dzenia w
<CODE>/etc/pcmcia/scsi.opts</CODE>. Na przyk³ad: je¶li normalnie masz
dysk i CD-ROM SCSI, u¿y³by¶:
<P>
<PRE>
   # Dla j±dra 1.2: lista urz±dzeñ do³±czonych
   SCSI_DEVICES="sda scd0"
</PRE>
<P>Adresy urz±dzeñ przekazywane do <CODE>scsi.opts</CODE> s± skomplikowane, z
powodu du¿ej ilo¶ci urz±dzeñ, które mog± byæ do³±czone do
kontrolera SCSI. Adresy sk³adaj± siê albo z sze¶ciu albo z siedmiu
pól oddzielonych przecinkami: bie¿±cy schemat, typ urz±dzenia,
numer gniazda, kana³ SCSI, ID, numer logicznej jednostki i
opcjonalnie numer partycji. Typ urz±dzenia bêdzie jednym z: &quot;sd&quot;
dla dysków, &quot;st&quot; dla ta¶m, &quot;sr&quot; dla CD-ROM-ów i &quot;sg&quot; dla ogólnych
urz±dzeñ SCSI. W wiêkszo¶ci ustawieñ, kana³ SCSI oraz numer
logicznej jednostki bêdzie 0. Dla urz±dzeñ dyskowych z kilkoma
partycjami, <CODE>scsi.opts</CODE> zostanie najpierw wywo³any dla ca³ego
urz±dzenia, z piêciopolowym adresem. Skrypt ten powinien ustawiæ
w zmiennej <CODE>PARTS</CODE> listê partycji. Potem, <CODE>scsi.opts</CODE>
zostanie wywo³any dla ka¿dej partycji, z d³u¿szymi -
siedmiopolowymi adresami. Na przyk³ad: oto skrypt do konfiguracji
urz±dzenia dyskowego pod SCSI ID = 3 z dwiema partycjami oraz
CD-ROM pod SCSI ID = 6:
<P>
<PRE>
case "$ADDRESS" in
*,sd,*,0,3,0)
    # To urz±dzenie ma dwie partycje...
    PARTS="1 2"
    ;;
*,sd,*,0,3,0,1)
    # Opcje dla partycji nr 1:
    # zaktualizuj /etc/fstab i zamontuj system plików ext2 na /usr1
    DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
    FSTYPE="ext2"
    OPTS=""
    MOUNTPT="/usr1"
    ;;
*,sd,*,0,3,0,2)
    # Opcje dla partycji nr 2:
    # zaktualizuj /etc/fstab i zamontuj system plików ext2 na /usr2 
    DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
    FSTYPE="msdos"
    OPTS=""
    MOUNTPT="/usr2"
    ;;
*,sr,*,0,6,0)
    # Opcje dla CD-ROM-u ID = 6
    PARTS=""
    DO_FSTAB="y" ; DO_FSCK="n" ; DO_MOUNT="y"
    FSTYPE="iso9660"
    OPTS="ro"
    MOUNTPT="/cdrom"
    ;;
esac
</PRE>
<P>Je¶li twoje j±dro nie posiada sterownika &quot;<I>top-level</I>&quot; (do dysku,
ta¶my itp.) dla konkretnego urz±dzenia SCSI, wtedy urz±dzenie to
nie zostanie skonfigurowane przez sterownik PCMCIA. Jako efekt
uboczny, nazwa urz±dzenia w <CODE>/var/run/stab</CODE> bêdzie wygl±daæ
mniej wiêcej tak: &quot;sd#nnnn&quot;, gdzie &quot;nnnn&quot; jest czterocyfrow±
liczb± szesnastkow±. Zdarza siê to, je¶li <CODE>cardmgr</CODE> nie jest w
stanie przet³umaczyæ ID urz±dzenia SCSI na odpowiadaj±c± mu nazwê
urz±dzenia Linux-owego.
<P>Mo¿liwe jest zmodularyzowanie sterowników &quot;top-level&quot; do SCSI,
tak aby by³y ³adowane tylko wtedy kiedy zostanie wykryty kontroler
SCSI. Aby tak zrobiæ, musisz zmodyfikowaæ <CODE>/etc/pcmcia/config</CODE>,
aby poinformowaæ <CODE>cardmgr</CODE>, które dodatkowe modu³y musz± byæ
za³adowane kiedy dany kontroler jest konfigurowany.<BR>
Na przyk³ad:
<P>
<PRE>
device "aha152x_cs"
  class "scsi" module "scsi/scsi_mod", "scsi/sd_mod", "aha152x_cs"
</PRE>
<P>Taka zawarto¶æ pliku spowodowa³aby za³adowanie rdzennego modu³u
SCSI oraz modu³u sterownika &quot;<I>top-level</I>&quot; do dysków przed ³adowaniem
normalnego modu³u sterownika PCMCIA. Skrypt Configure nie wykryje
automatycznie zmodularyzowanych sterowników SCSI, tak wiêc
bêdziesz musia³ w³±czyæ obs³ugê SCSI rêcznie u¿ywaj±c opcji
konfiguracyjnych.
<P>Zawsze w³±czaj swoje urz±dzenia przed w³±czeniem laptopa, albo
przed w³o¿eniem karty kontrolera, tak aby szyna SCSI zosta³a
poprawnie zakoñczona podczas konfiguracji kontrolera. B±d¼ tak¿e
bardzo ostro¿ny przy wyjmowaniu kontrolera SCSI. Przed wyjêciem
karty upewnij siê, ¿e wszystkie urz±dzenia do niej
przydzielone zosta³y odmontowane i wy³±czone. Najlepiej przed
wyjêciem karty skorzystaæ z programu <CODE>cardctl</CODE> albo <CODE>cardinfo</CODE>
i za¿±daæ usuniêcia karty z systemu. W chwili obecnej wszystkie
urz±dzenia SCSI powinny byæ w³±czane przed w³o¿eniem karty
sterownika SCSI i powinny pozostaæ pod³±czone do momentu wyjêcia
karty sterownika lub wy³±czenia laptopa.
<P>Korzystanie z tych kart niesie za sob± potencjalne komplikacje
nieznane w przypadku korzystania ze zwyk³ych sterowników ISA. Szyna
SCSI przenosi sygna³ &quot;termination power&quot; niezbêdny do prawid³owego
dzia³ania zwyk³ych pasywnych terminatorów SCSI. Sterowniki SCSI
standardu PCMCIA nie dostarczaj± sygna³u &quot;power termination&quot;, je¶li
jest on wymagany musi zostaæ dostarczony przez urz±dzenie zewnêtrzne. 
Niektóre zewnêtrzne urz±dzenia SCSI mog± zostaæ skonfigurowane w taki
sposób, aby dostarcza³y wspomnianego sysgna³u. Inne, jak np. Zip
Drive czy Syquest EZ-Drive u¿ywaj± aktywnych terminatorów, przez co
nie s± zale¿ne od sygna³u podawanego na szynie SCSI. W niektórych
przypadkach mo¿e okazaæ siê konieczne skorzystanie ze specjalnego
bloku terminatora, np. APS SCSI Sentry 2, który posiada niezale¿ne,
zewnêtrzne ¼ród³o zasilania.  Konfiguruj±c ³añcuch urz±dzeñ SCSI
musisz sobie zdawaæ sprawê, które z nich wymagaj± lub dostarczaj±
sygna³ &quot;power termination&quot;.
<P>Kontroler Adaptec APA-460 SlimSCSI nie jest obs³ugiwany. Kartê tê
sprzedawano oryginalnie pod nazw± Trantor, a kiedy Adaptec
po³±czy³ siê z Trantor-em, kontynuowano sprzeda¿ Trantora z nazw±
Adaptec. APA-460 nie jest kompatybilny z jakimkolwiek istniej±cym
sterownikiem Linux-owym. Nie jestem pewien jak trudno by³oby
napisaæ sterownik; nie s±dzê, ¿eby kto¶ by³ w stanie wyci±gn±æ
jakiekolwiek informacje od Adaptec-a.
<P>(Nieobs³ugiwany) Trantor SlimSCSI mo¿e zostaæ zidentyfikowany
nastêpuj±co:
<P>
<PRE>
   Trantor / Adaptec APA-460 SlimSCSI
   FCC ID: IE8T460
   Shipped with SCSIworks! driver software
</PRE>
<P>(Obs³ugiwany) Adaptec SlimSCSI mo¿e zostaæ zidentyfikowany
nastêpuj±co:
<P>
<PRE>
   Adaptec APA-1460 SlimSCSI
   FCC ID: FGT1460
   P/N: 900100
   Shipped with EZ-SCSI driver software
</PRE>
<P>
<H3>Diagnozowanie problemów z kartami SCSI.</H3>

<P>
<P>
<UL>
<LI>Przy sterowniku <CODE>aha152x_cs</CODE> (u¿ywanym przez Adaptec-a, New
Media i kilka innych) ¼ród³em czêstych problemów w napêdach ta¶m
wydaje siê byæ obs³uga od³±czania/pod³±czania SCSI. Aby wy³±czyæ,
tê w³a¶ciwo¶æ dodaj nastêpuj±c± liniê do pliku
<CODE>/etc/pcmcia/config.opts</CODE>:

<BLOCKQUOTE><CODE>
<PRE>
module "aha152x_cs" opts "reconnect=0"
</PRE>
</CODE></BLOCKQUOTE>

</LI>
<LI>Je¶li skompilowa³e¶ obs³ugê SCSI jako modu³ (<CODE>CONFIG_SCSI</CODE>
to &quot;m&quot;), podczas konfiguracji PCMCIA, musisz wyra¼nie
zaznaczyæ, ¿e chcesz, aby sterownik zosta³ skompilowany. Musisz
zmodyfikowaæ plik <CODE>/etc/pcmcia/config</CODE>, aby ³adowaæ modu³
SCSI przed odpowiednim sterownikiem <CODE>*_cs</CODE>.</LI>
</UL>
<P>
<H2>3.6 Karty pamiêci PCMCIA.</H2>

<P>
<P>Sterownik <CODE>memory_cs</CODE> obs³uguje wszystkie typy kart pamiêci,
jak równie¿ dostarcza bezpo¶redniego dostepu do obszaru adresowego
pamiêci PCMCIA dla kart, które maj± inne funkcje. Po za³adowaniu
tworzy kombinacjê urz±dzeñ znakowych i blokowych. Przeczytaj
stronê podrêcznika na temat modu³ów, aby dowiedzieæ siê wiêcej
o schemacie nazewnictwa urz±dzeñ. Urz±dzenia blokowe s± u¿ywane do
dostêpu a'la dysk (tworzenie i montowanie systemów plików itp.)
Urz±dzenia znakowe s³u¿± do bezpo¶redniego (raw) niebuforowanego
czytania i pisania do jakiego¶ miejsca.
<P>Adres urz±dzenia przekazany do <CODE>memory.opts</CODE> sk³ada siê z dwóch
pól: schematu i numeru gniazda. Opcje odnosz± siê do pierwszej
zwyk³ej partycji pamiêci na odpowiedniej karcie pamiêci. Oto
przyk³ad skryptu, który automatycznie montuje karty pamiêci w
zale¿no¶ci od z³±cza, w które zostan± karty w³o¿one:
<P>
<PRE>
   case "$ADDRESS" in
   *,0,0)
       # Zamontuj systemy plików, ale nie uaktualniaj /etc/fstab
       DO_FSTAB="n" ; DO_FSCK="y" ; DO_MOUNT="y"
       FSTYPE="ext2" ; OPTS=""
       MOUNTPT="/mem0"
       ;;
   *,1,0)
       # Zamontuj systemy plików, ale nie uaktualniaj /etc/fstab
       DO_FSTAB="n" ; DO_FSCK="y" ; DO_MOUNT="y"
       FSTYPE="ext2" ; OPTS=""
       MOUNTPT="/mem0"
       ;;
   esac
</PRE>
<P>Niektóre starsze karty pamiêci i wiêkszo¶æ prostych statycznych
kart RAM nie posiadaj± &quot;Card Information Structure&quot;
(CIS), która jest schematem u¿ywanym przez karty PCMCIA do
identyfikowania siê. Normalnie <CODE>cardmgr</CODE> za³o¿y, ¿e ka¿da karta, w
której brakuje owej struktury jest prost± kart± pamiêci i za³aduje
sterownik <CODE>memory_cs</CODE>. I tak, czêstym skutkiem ubocznym
ogólnego identyfikowania kart jest identyfikacja innego typu kart
jako karty pamiêci.
<P>Sterownik <CODE>memory_cs</CODE> u¿ywa heurystyki, aby zgadn±æ pojemno¶æ tych
kart. Heurystyka nie dzia³a jednak dla kart zabezpieczonych przed
zapisem i mo¿e czyniæ b³êdy tak¿e w innych przypadkach. Je¶li karta
zosta³a ¼le zidentyfikowana, jej rozmiar powinien byæ wyra¼nie podany
podczas u¿ywania takich poleceñ jak <CODE>dd</CODE> czy <CODE>mkfs</CODE>.
<P>
<H3>U¿ywanie kart pamiêci &quot;flash&quot;.</H3>

<P>
<P>Adres urz±dzenia przekazywany do <CODE>ftl.opts</CODE> sk³ada siê z trzech
lub czterech pól: schematu, numeru gniazda, numeru regionu i
opcjonalnie numeru partycji. Wiêkszo¶æ kart &quot;flash&quot; ma
tylko jeden region pamiêci &quot;flash&quot;, wiêc numerem regionu
zwykle bêdzie zero.
<P>Aby u¿yæ karty pamiêci &quot;flash&quot; jako zwyk³ego
urz±dzenia blokowego jak dysk, stwórz najpierw partycjê &quot;flash
translation layer&quot; na tym urz±dzeniu poleceniem
<CODE>ftl_format</CODE>:
<P>
<BLOCKQUOTE><CODE>
<PRE>
ftl_format -i /dev/mem0c0c
</PRE>
</CODE></BLOCKQUOTE>
<P>Zauwa¿, ¿e polecenie to uzyskuje dostêp do karty przez bezpo¶redni
interfejs pamiêci karty. Raz sformatowana karta mo¿e byæ u¿ywana
jako zwyk³e urz±dzenie blokowe przy pomocy sterownika <CODE>ftl_cs</CODE>.
Na przyk³ad:
<P>
<BLOCKQUOTE><CODE>
<PRE>
mke2fs /dev/ftl0c0
mount -t ext2 /dev/ftl0c0 /mnt
</PRE>
</CODE></BLOCKQUOTE>
<P>Nazewnictwo dla urz±dzeñ FTL jest trochê pokrêcone. Poboczne
liczby urz±dzeñ maj± trzy czê¶ci: numer karty, numer regionu na
tej karcie i opcjonalnie partycjê w tym regionie. Region mo¿e byæ
traktowany jako pojedyncze urz±dzenie blokowe bez tablicy partycji
(jak dyskietka) albo mo¿na go podzieliæ na partycje tak jak dysk
twardy. Urz±dzenie &quot;ftl0c0&quot; jest kart± 0 o numerze
regionu 0 i ca³ym regionem. Urz±dzenia od &quot;ftl0c0p1&quot;
do &quot;ftl0c0p4&quot; s± g³ównymi partycjami 1 do 4 je¶li
region zosta³ podzielony.
<P>S± dwa g³ówne formaty dla kart pamiêci flash: styl &quot;flash
translation layer&quot;, i styl &quot;Microsoft Flash File System&quot;. Format
FTL jest ogólnie bardziej elastyczny poniewa¿ pozwala na u¿ycie
ka¿dego zwyk³ego wysokopoziomowego systemu plików (ext2, ms-dos itp.)
na kartach pamiêci &quot;flash&quot; tak jakby by³y one na zwyk³ym
urz±dzeniu dyskowym. FFS jest ca³kiem odmiennym systemem plików.
Linux nie umie w tej chwili ob³ugiwaæ kart sformatowanych w tym
systemie.
<P>
<H2>3.7 Karty PCMCIA napêdów ATA/IDE.</H2>

<P>
<P>Obs³uga napêdów ATA/IDE wymaga jadra 1.3.72 lub nowszego.
Specyficzna dla PCMCIA czê¶æ sterownika to <CODE>fixed_cs</CODE>. Pamiêtaj 
¿eby u¿ywaæ <CODE>cardctl</CODE> albo <CODE>cardinfo</CODE> do wy³±czania
karty ATA/IDE przed wyjêciem jej, poniewa¿ sterownik nie jest
odporny na &quot;gor±ce zmiany&quot;.
<P>Adresy urz±dzenia przekazywane do <CODE>fixed.opts</CODE> sk³adaj± siê
z trzech albo czterech pól: bie¿±cy schemat, numer gniazda,
numer seryjny napêdu i opcjonalny numer partycji. Tak samo jak w
przypadku urz±dzeñ SCSI, <CODE>fixed.opts</CODE> jest najpierw wywo³ywany
dla ca³ego urz±dzenia. Je¶li <CODE>fixed.opts</CODE> zwróci listê partycji
w zmiennej <CODE>PARTS</CODE>, skrypt zostanie wtedy wywo³any dla ka¿dej
partycji.
<P>Oto przyk³ad pliku <CODE>fixed.opts</CODE>, który montuje pierwsz±
partycjê jakiejkolwiek karty ATA/IDE na <CODE>/mnt</CODE>.
<P>
<PRE>
   case "$ADDRESS" in
   *,*,*)
       PARTS="1"
       ;;
   *,*,*,1)
       DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
       FSTYPE="msdos"
       OPTS=""
       MOUNTPT="/mnt"
       ;;
   esac
</PRE>
<P>Zauwa¿, ¿e domy¶lny plik <CODE>fixed.opts</CODE> posiada te linie, ale s±
one w komentarzu. Je¶li chcesz, mo¿esz mieæ oddzielne konfiguracje
dla konkretnych kart oparte na ich numerach seryjnych. Aby
odszukaæ numer seryjny napêdu, u¿yj narzêdzia <CODE>ide_info</CODE>. Wtedy
czê¶æ <CODE>fixed.opts</CODE> mo¿e wygl±daæ tak:
<P>
<PRE>
   case "$ADDRESS" in
   *,*,Z4J60542)
       # To s± moje rzeczy DOS-owe
       PARTS="1"
       ;;
   *,*,Z4J60542,1)
       DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
       FSTYPE="msdos"
       OPTS=""
       MOUNTPT="/mnt"
       ;;
   esac
</PRE>
<P>
<H3>Diagnozowanie problemów z adapterami ATA/IDE.</H3>

<P>
<P>
<UL>
<LI>Niektóre napedy IDE zaburzaj± specyfikacjê PCMCIA przez ¿±danie
d³u¿szego czasu na &quot;<I>rozkrêcenie siê</I>&quot; ni¿
maksymalny dozwolony czas na setup. Aby u¿ywaæ tych kart za³aduj
modu³ <CODE>pcmcia_core</CODE> z opcj±:
   
<BLOCKQUOTE><CODE>
<PRE>
CORE_OPTS="unreset_delay=400"
</PRE>
</CODE></BLOCKQUOTE>

</LI>
<LI>Aby u¿ywaæ urz±dzenia ATA/IDE CD-ROM, twoje j±dro musi byæ
skompilowane z w³±czon± opcj± <CODE>CONFIG_BLK_DEV_IDECD</CODE>. Bêdzie to
zwykle przypadek dla standardowych j±der, chocia¿ jest to co¶ o
czym¶ powiniene¶ wiedzieæ je¶li kompilujesz j±dro z w³asn±
konfiguracj±.</LI>
</UL>
<P>
<H2>3.8 Karty wielofunkcyjne.</H2>

<P>
<P>Od j±dra w wersji 1.3.73 pojedyncze przerwanie mo¿e byæ dzielone
miêdzy kilka sterowników jak sterownik szeregowy i ethernetu.
Je¶li u¿ywasz wielofunkcyjnej karty z nowszym j±drem, to wszystkie
funkcje tej karty s± dostêpne bez potrzeby prze³adowywania
sterowników.
<P>Symultaniczne u¿ycie dwóch funkcji karty wymaga trochê sprytu i ró¿ni
sprzedawcy sprzêtu zaimplementowali dzielenie przerwañ na swój,
niekompatybilny (i czasem nieudokumentowany) sposób. Sterowniki
do niektórych kart (Ositech Jack of Diamonds, 3Com 3c562, Linksys)
udostêpniaj± poprawnie symultaniczno¶æ, ale inne (szczególnie Megahertz)
- nie.
<P>Wcze¶niejsze j±dra nie obs³ugiwa³y dzielenia przerwañ pomiêdzy
ró¿ne sterowniki urz±dzeñ, wiêc jest niemo¿liwe skonfigurowanie
kart modemu i ethernetu do dzia³ania symultanicznego. Sterowniki
ethernetowy i modemowy s± ³adowane jednocze¶nie automatycznie.
Chocia¿ sterownik ethernetowy przejmuje przerwanie domy¶lnie. Aby
u¿yæ modemu mo¿esz usun±æ sterownik ethernetowy z pamiêci i
zrekonfigurowaæ port szeregowy czym¶ takim:
<P>
<BLOCKQUOTE><CODE>
<PRE>
ifconfig eth0 down
rmmod 3c589_cs
setserial /dev/modem autoconfig auto_irq
setserial /dev/modem
</PRE>
</CODE></BLOCKQUOTE>
<P>Drugie polecenie <CODE>setserial</CODE> powinno zweryfikowaæ czy port
zosta³ skonfigurowany tak, aby u¿yæ przerwania poprzednio
u¿ywanego przez sterownik ethernetowy.
<P>
<H2>3.9 Kiedy mo¿na bezpiecznie w³o¿yæ albo wyj±æ kartê PCMCIA ?</H2>

<P>
<P>Teoretycznie mo¿esz wk³adaæ i wyjmowaæ karty PCMCIA w ka¿dym
momencie. Chcocia¿, generalnie dobrze jest nie wyjmowaæ karty
je¶li jest ona akurat u¿ywana przez jak±¶ aplikacjê. J±dra starsze
ni¿ 1.1.77 czêsto zawiesza³yby siê podczas wyjmowania kart
szeregowych lub modemowych, ale to powinno ju¿ byæ naprawione.
<P>
<H2>3.10 Card Services i Advanced Power Management.</H2>

<P>
<P>Pakiet Card Services mo¿e zostaæ skompilowany z obs³ug± APM
(Advanced Power Management) je¶li zainstalowa³e¶ ten pakiet w
swoim systemie. APM jest do³±czony do j±der 1.3.46 i nowszych.
Opiekunem tego pakietu jest obecnie Rick Faith (<EM>faith@cs.unc.edu</EM>),
a narzêdzia do APM mo¿na uzyskaæ z 
<A HREF="ftp://ftp.cs.unc.edu:/pub/users/faith/linux/">ftp.cs.unc.edu</A>.
Modu³y PCMCIA zostan± skonfigurowane automatycznie pod wzglêdem
APM je¶li na twoim systemie zostanie wykryta wersja kompatybilna.
<P>Aby poprawnie zakoñczyæ dzia³anie i ponownie wystartowaæ karty PCMCIA,
mo¿esz wykonaæ <CODE>cardctl suspend</CODE> przed zawieszeniem twojego laptopa i
<CODE>cardctl resume</CODE> po przywróceniu go do pracy bez zmian w APM. 
Niezadzia³a to jednak z modemem PCMCIA, który jest w³a¶nie u¿ywany,
poniewa¿ sterownik szeregowy nie jest w stanie zachowaæ i odtworzyæ
parametrów operacyjnych modemu.
<P>APM wydaje siê byæ niepewne na niektórych systemach. Je¶li masz
problemy z APM i PCMCIA w twoim systemie, spróbuj zawêziæ problem
do jednego albo drugiego pakietu zanim wy¶lesz list z raportem o
b³êdzie.
<P>Niektóre sterowniki, szczególnie sterowniki PCMCIA SCSI, nie mog±
siê odtworzyæ ze stanu zawie¶/odtwórz. Kiedy u¿ywasz karty PCMCIA
SCSI, u¿yj <CODE>cardctl eject</CODE> zanim zawiesisz system.
<P>
<H2>3.11 Jak mam wy³±czyæ kartê PCMCIA bez wyjmowania jej  ?</H2>

<P>
<P>U¿yj polecenia <CODE>cardctl</CODE> albo <CODE>cardinfo</CODE>. Polecenie
<CODE>cardctl suspend #</CODE> zawiesi jedno gniazdo, i wy³±czy jego
zasilanie. Odpowiednie polecnie <CODE>resume</CODE> obudzi kartê w stan
poprzedni.
<P>
<H2>3.12 Jak usuwam sterowniki PCMCIA z pamiêci ?</H2>

<P>
<P>Aby usun±æ ca³y pakiet PCMCIA, uruchom<CODE>rc.pcmcia</CODE> tak:
<P>
<PRE>
/etc/rc.d/rc.pcmcia stop
</PRE>
<P>Uruchomienie tego skryptu zajmie kilka sekund, poniewa¿ daje on
czas wszystkim sterownikom-klientom na poprawne zakoñczenie
dzia³ania. Je¶li jakie¶ urz±dzenie PCMCIA jest akurat u¿ywane,
zakoñczenie bêdzie niekompletne, i niektóre modu³y j±dra mog± nie
zostaæ usuniête. Aby tego unikn±æ u¿yj <CODE>cardctl eject</CODE>, aby
zamkn±æ wszystkie gniazda przed uruchomieniem <CODE>rc.pcmcia</CODE>.
Status wyj¶ciowy polecenia <CODE>cardctl</CODE> okre¶li czy jakie¶ gniazdo
nie mog³o byæ zamkniête.
<P>
<P>
<H2><A NAME="s4">4. Zaawansowane tematy.</A></H2>

<P>
<P>
<H2>4.1 Alokoacja zasobów dla urz±dzeñ PCMCIA.</H2>

<P>
<P>Teoretycznie nie powinno mieæ znaczenia które przerwanie jest
alokowane dla którego urz±dzenia tak d³ugo jak dwa urz±dzenia nie
s± skonfigurowane, aby u¿ywaæ tego samego przerwania. W pliku
<CODE>/etc/pcmcia/config.opts</CODE> znajdziesz miejsce na wy³±czenie
przerwañ, które s± u¿ywane przez inne urz±dzenia ni¿ PCMCIA.
<P>Podobnie, nie ma sposobu, aby bezpo¶rednio podaæ adresy IO, które
maj± byc u¿ywane przez karty PCMCIA. Plik <CODE>/etc/pcmcia/config.opts</CODE>
pozwala na podanie obszaru portów dostêpnego dla wszystkich
sterowników PCMCIA, albo wy³±czyæ obszary, które powoduj±
konflikty.
<P>Po zmodyfikowaniu pliku <CODE>/etc/pcmcia/config.opts</CODE> mo¿esz
zrestartowaæ <CODE>cardmgr</CODE> poleceniem &quot;<CODE>kill -HUP</CODE>&quot;.
<P>Przerwanie u¿ywane do monitorowania statusu zmian karty jest
wybierane przez modu³ sterownika niskiego poziomu (<CODE>i82365</CODE>
lub <CODE>tcic</CODE>) przed zinterpretowaniem pliku <CODE>/etc/pcmcia/config</CODE>
przez <CODE>cardmgr</CODE>, wiêc plik ten nie ma wp³ywu na wybór tego
w³a¶nie przerwania. Aby ustawiæ to przerwanie u¿yj opcji
<CODE>cs_irq=</CODE> podczas ³adowania sterownika gniazd, przez ustawienie
zmiennej <CODE>PCIC_OPTS</CODE> w pliku <CODE>/etc/rc.d/rc.pcmcia</CODE>.   
<P>Wszystkie sterowniki kart klientów maj± parametr <CODE>irq_list</CODE> do
podawania, które przerwania mog± próbowaæ one zaalokowaæ. Te opcje
powinny byæ ustawione w pliku <CODE>/etc/pcmcia/config</CODE>. Np.:
<P>
<BLOCKQUOTE><CODE>
<PRE>
device "serial_cs"
  module "serial_cs" opts "irq_list=8,12"
  ...
</PRE>
</CODE></BLOCKQUOTE>
<P>wymusi³oby u¿ycie tylko przerwañ IRQ 8 i 12. Nie zale¿nie od
usatwieñ <CODE>irq_list</CODE>, Card Services nigdy nie zaalokuje
przerwania, które jest ju¿ u¿ywane przez inne urz±dzenie albo
przerwania, które jest wy³±czone w pliku konfiguracyjnym.
<P>
<H2>4.2 Jak zrobiæ dwie ró¿ne konfiguracje urz±dzeñ do domu i pracy ?</H2>

<P>
<P>Jest to ca³kiem proste u¿ywaj±c schematów PCMCIA.<BR>
U¿yj dwóch schematów konfiguracyjnych o nazwie &quot;dom&quot; i &quot;praca&quot;.
Oto przyk³ad skryptu <CODE>network.opts</CODE> z konkretnymi  ustawieniami
dla ró¿nych schematów:
<P>
<PRE>
   case "$ADDRESS" in
   praca,*,*,*)
       # definicje dla kart sieciowych w pracy
       ...
       ;;
   dom,*,*,*|default,*,*,*)
       # definicje dla kart sieciowych w domu
       ...
       ;;
   esac
</PRE>
<P>Pierwsz± czê¶ci± adresu urz±dzenia PCMCIA jest zawsze schemat
konfiguracyjny. W tym przyk³adzie, drugi przypadek w "case"
wybierze oba schematy: domowy i domy¶lny. Wiêc je¶li schemat nie
jest ustawiony, domy¶lnym bêdzie schemat domowy.
<P>Teraz, aby wybraæ pomiêdzy tymi dwoma ustawieniami uruchom albo:
<P>
<PRE>
   cardctl scheme dom
</PRE>
<P>albo
<P>
<PRE>
   cardctl scheme praca
</PRE>
<P>Polecenie <CODE>cardctl</CODE> wy³±cza wszystkie twoje karty i inicjuje je
ponownie. Polecenie to mo¿e byæ bezpiecznie u¿ywane, nie zale¿nie
od tego czy system PCMCIA jest za³adowany czy nie, ale polecenie
to mo¿e siê nie powie¶æ je¶li u¿ywasz innych urz±dzeñ PCMCIA w tym
samym czasie (nawet je¶li ich konfiguracje nie ró¿ni± siê wyra¼nie
od ustawieñ schematów).
<P>Aby zobaczyæ bie¿±ce ustawienia schematu PCMCIA uruchom:
<P>
<PRE>
   cardctl scheme
</PRE>
<P>
<H2>4.3 Startowanie z urz±dzenia PCMCIA.</H2>

<P>
<P>Posiadanie g³ównego systemu plików na urz±dzeniu PCMCIA jest
trochê k³opotliwe, bo system PCMCIA na Linux-a nie zosta³
przystosowany do w³±czenia do j±dra. G³ówne sk³adniki, ³adowalne
modu³y i uruchamiany w trybie u¿ytkownika demon cardmgr, zale¿± od
ju¿ dzia³aj±cego systemu. Mo¿liwo¶æ startu przy pomocy &quot;initrd&quot;
pozwala obej¶æ ten problem pozwalaj±c Linux-owi wystartowaæ u¿ywaj±c
tymczasowego ramdysku jako minimalnego obrazu katalogu g³ównego,
za³adowaæ sterowniki i potem ponownie zamontowaæ inny system
plików jako katalog g³ówny. Tymczasowy katalog g³ówny mo¿e
skonfigurowaæ urz±dzenia PCMCIA i potem zamontowaæ urz±dzenie
PCMCIA jako katalog g³ówny.
<P>Niektóre dystrybucje Linux-a pozwalaj± na instalacjê na urz±dzeniu
pod³±czonym do kontrolera SCSI PCMCIA, jako niezamierzony skutek
uboczny mo¿liwo¶ci instalacji z CD-ROM-ów pod³±czonych do SCSI
PCMCIA. Aczkolwiej w tej chwili ¿adne narzêdzie instalacyjne
dla Linux-a nie pozwala na konfiguracjê odpowiedniego &quot;initrd&quot;
do startu z g³ównym systemem plików na PCMCIA. Dlatego te¿
konfiguracja takiego systemu wymaga u¿ycia drugiego Linux-a, aby
stworzyæ obraz &quot;initrd&quot;. Je¶li nie masz dostêpu do
drugiego Linux-a, to inn± mo¿liwo¶ci± jest tymczasowe zainstalowanie
minimalnego Linux-a na napêdzie nie bêd±cym urz±dzeniem PCMCIA,
stworzenie obrazu initrd i zainstalowanie na PCMCIA.
<P>W Bootdisk-HOWTO znajduj± siê ogólne informacje jak zrobiæ
dyskietki startowe, ale nic konkretnego na temat initrd. G³ówny
dokument opisuj±cy initrd zawarty jest w ostatnich ¼ród³ach j±dra
Linux-a w katalogu <CODE>linux/Documentation/initrd.txt</CODE>. Zanim
zaczniesz powiniene¶ to przeczytaæ. Pomocna jest te¿ znajomo¶æ
<CODE>lilo</CODE>. U¿ycie initrd wymaga tak¿e w³±czonych opcji
<CODE>CONFIG_BLK_DEV_RAM</CODE> i <CODE>CONFIG_BLK_DEV_INITRD</CODE> w
j±drze.
<P>
<H3>Skrypt-pomocnik pcinitrd.</H3>

<P>
<P>Skrypt <CODE>pcinitrd</CODE> tworzy podstawowy obraz initrd do startowania
z g³ównej partycji na PCMCIA. W obrazie tym zawarte s±: minimalna
struktura katalogów, potrzebne pliki urz±dzeñ, kilka programów,
biblioteki dzielone i zbiór sterowników-modu³ów PCMCIA. Podczas
uruchamiania <CODE>pcinitrd</CODE> podajesz sterowniki-modu³y, które maj±
byæ zawarte w obrazie. G³ówne sk³adniki PCMCIA, <CODE>pcmcia_core</CODE> i
<CODE>ds</CODE> s± do³±czane automatycznie.
<P>Na przyk³ad powiedzmy, ¿e twój laptop u¿ywa kontrolera PCMCIA
kompatybilnego z i82365 i chcesz startowaæ Linux-a z g³ównym
systemem plików na dysku twardym przy³±czonym do kontrolera
Adpatec SlimSCSI. Mo¿esz stworzyæ odpowiedni obraz przy pomocy;
<P>
<BLOCKQUOTE><CODE>
<PRE>
pcinitrd -v initrd pcmcia/i82365.o pcmcia/aha152x_cs.o
</PRE>
</CODE></BLOCKQUOTE>
<P>Aby ustawiæ sobie start initrd wedle swojego uznania, mo¿esz
zamontowaæ obraz u¿ywaj±c urz±dzenia &quot;loopback&quot;
poleceniem:
<P>
<BLOCKQUOTE><CODE>
<PRE>
mount -o loop -t ext2 initrd /mnt
</PRE>
</CODE></BLOCKQUOTE>
<P>i potem zmodyfikuj skrypt <CODE>linuxrc</CODE>. Pliki konfiguracyjne
PCMCIA zostan± zainstalowane w obrazie w katalogu <CODE>/etc</CODE> i
tak¿e mog± byæ ustawione wedle w³asnego uznania. Wiêcej informacji
znajdziesz w podrêczniku '<CODE>man pcinitrd</CODE>'.
<P>
<H3>Tworzenie dyskietki startowej z initrd.</H3>

<P>
<P>Po stworzeniu obrazu skryptem <CODE>pcinitrd</CODE>, mo¿esz stworzyæ
dyskietkê startow± kopiuj±c j±dro, skompresowany obraz initrd i
kilka pomocniczych programów dla <CODE>lilo</CODE> na czyst± dyskietkê. W
nastêpuj±cym przyk³adzie zak³adamy, ¿e g³ówny system plików
znajduje siê na <CODE>/dev/sda1</CODE>:
<P>
<BLOCKQUOTE><CODE>
<PRE>
mke2fs /dev/fd0
mount /dev/fd0 /mnt
mkdir /mnt/etc /mnt/boot /mnt/dev
cp -a /dev/fd0 /dev/sda1 /mnt/dev
cp [j±dro] /mnt/vmlinuz
gzip &lt; [obraz-initrd] > /mnt/initrd
</PRE>
</CODE></BLOCKQUOTE>
<P>Stwórz <CODE>/mnt/etc/lilo.conf</CODE> z tak± zawarto¶ci±:
<P>
<BLOCKQUOTE><CODE>
<PRE>
boot=/dev/fd0
compact
image=/vmlinuz
    label=linux
   initrd=/initrd
    read-only
    root=/dev/sda1
</PRE>
</CODE></BLOCKQUOTE>
<P>Na koñcu uruchom:
<P>
<BLOCKQUOTE><CODE>
<PRE>
lilo -r /mnt
</PRE>
</CODE></BLOCKQUOTE>
<P>Je¶li <CODE>lilo</CODE> uruchomione jest z parametrem <CODE>-r</CODE>, wszystkie
akcje wykonywane s± z podanym katalogiem jako g³ówny system plików.
Powodem utworzenia plików urz±dzeñ w <CODE>/mnt/dev</CODE> by³o to,
¿e <CODE>lilo</CODE> nie bêdzie w stanie u¿yæ plików w <CODE>/dev</CODE> kiedy
bêdzie uruchomione z alternatywnym katalogiem g³ównym.
<P>
<H3>Instalacja obrazu initrd na napêdach bez Linux-a.</H3>

<P>
<P>Jednym z popularnych zastosowañ initrd s± systemy gdzie wewnêtrzny
dysk twardy jest dedykowany dla innego systemu operacyjnego. J±dro
Linux-a i obraz initrd mog± zostaæ umieszczone na partycji bez
Linux-a a <CODE>lilo</CODE> lub <CODE>LOADLIN</CODE> mog± zostaæ skonfigurowane,
aby ³adowa³y Linux-a z tych obrazów.
<P>Zak³±daj±c, ¿e twoje j±dro jest skonfigurowane na odpowiednie
urz±dzenie z g³ównym systemem plików i masz stworzony obraz initrd
na innym Linux-ie, najprostszym sposobem aby zacz±æ, to
wystartowanie Linux-a u¿ywaj±c <CODE>LOADLIN</CODE>-a w ten sposób:
<P>
<BLOCKQUOTE><CODE>
<PRE>
LOADLIN &lt;kernel> initrd=&lt;initrd-image>
</PRE>
</CODE></BLOCKQUOTE>
<P>Jak ju¿ mo¿esz wystartowaæ Linux-a na swojej maszynie, mo¿esz
wtedy zainstalowaæ <CODE>lilo</CODE> aby umo¿liwiæ startowanie Linux-a
bezpo¶rednio.<BR>
Na przyk³ad powiedzmy, ¿e <CODE>/dev/hda1</CODE> jest partycj± bez
Linux-a i <CODE>/mnt</CODE> mo¿na u¿yæ jako katalog do montowania.
najpierw utwórz podkatalog na partycji docelowej dla plików
Linux-a:
<P>
<BLOCKQUOTE><CODE>
<PRE>
mount /dev/hda1 /mnt
mkdir /mnt/linux
cp [obraz-j±dra] /mnt/linux/vmlinuz
cp [obraz-initrd] /mnt/linux/initrd
</PRE>
</CODE></BLOCKQUOTE>
<P>W tym przyk³adzie, powiedzmy, ¿e <CODE>/dev/sda1</CODE> jest partycj±
na której ma siê znale¼æ g³ówny system plików, dysk twardy SCSI
zamontowany przez kontroler SCSI PCMCIA. Aby zainstalowaæ
<CODE>lilo</CODE>, stwórz plik <CODE>lilo.conf</CODE> z tak± zawarto¶ci±:
<P>
<BLOCKQUOTE><CODE>
<PRE>
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
</PRE>
</CODE></BLOCKQUOTE>
<P>Linia <CODE>boot=</CODE> informuje, ¿eby zainstalowaæ program ³aduj±cy
system do Master Boot Record podanego urz±dzenia. Linia <CODE>root=</CODE>
identyfikuje konkretny g³ówny system plików, który ma zostaæ u¿yty
po za³adowaniu obrazu initrd, parametr ten mo¿e byæ niepotrzebny
je¶li j±dro jest ju¿ skonfigurowane w ten sposób. Sekcja
<CODE>other=</CODE> u¿ywana jest do opisania innego systemu operacyjnego
zainstalowanego na <CODE>/dev/hda1</CODE>.
<P>Aby zainstalowaæ <CODE>lilo</CODE> w tym przypadku u¿yj:
<P>
<BLOCKQUOTE><CODE>
<PRE>
lilo -C lilo.conf
</PRE>
</CODE></BLOCKQUOTE>
<P>Zauwa¿, ¿e w tym przypadku plik <CODE>lilo.conf</CODE> u¿ywa scie¿ek
absolutnych, które zawieraj± <CODE>/mnt</CODE>. Zrobi³em tak w
przyk³adzie poniewa¿ docelowy system plików mo¿e nie umieæ tworzyæ
urz±dzeñ Linux-a dla parametrów <CODE>boot=</CODE> i <CODE>root=</CODE>.
<P>
<H2><A NAME="s5">5. Jak radziæ sobie z nieobs³ugiwanymi kartami.</A></H2>

<P>
<P>
<H2><A NAME="new-card"></A> 5.1 Konfiguracja nieobs³ugiwanych kart.</H2>

<P>
<P>Zak³adaj±c, ¿e twoja karta jest obs³ugiwana przez istniej±cy
sterownik, wszystko co trzeba zrobiæ, to dodaæ pozycjê do
<CODE>/etc/pcmcia/config</CODE>, która poinformuje <CODE>cardmgr</CODE> jak
zidentyfikowaæ kartê i który(e) sterownik(i) do³±czyæ do tej
karty. Wiêcej informacji na temat formatu pliku konfiguracyjnego
na stronie podrêcznika &quot;man&quot; na temat <CODE>pcmcia</CODE>. Je¶li w³o¿ysz
nieznan± kartê, to <CODE>cardmgr</CODE> z regu³y zapisze trochê informacji
identyfikacyjnych w logu systemowym, który mo¿e zostaæ u¿yty do
konfiguracji.
<P>Oto przyk³ad raportu <CODE>cardmgr</CODE> w <CODE>/usr/adm/messages</CODE> na
temat nieznanej karty:
<P>
<PRE>
   cardmgr[460]: unsupported card in socket 1
   cardmgr[460]: version info: "MEGAHERTZ", "XJ2288", "V.34 PCMCIA
   MODEM"
</PRE>
<P>Odpowiadaj±ca pozycja konfiguracyjna w <CODE>/etc/pcmcia/config</CODE>
wygl±da³oby tak:
<P>
<PRE>
   card "Megahertz XJ2288 V.34 Fax Modem"
     version "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM"
     bind "serial_cs"
</PRE>
<P>Mo¿esz u¿yæ &quot;&ast;&quot;, aby oznaczyæ ³añcuchy, które nie musz± siê
dok³adnie zgadzaæ, jak np. numery wersji. Kiedy robisz now±
pozycjê konfiguracyjn±, zwróæ uwagê na to, ¿eby dok³adnie
skopiowaæ ³añcuchy, zachowuj±c wszelkie du¿e i ma³e litery oraz
przerwy (spacje). Upewnij siê tak¿e, ¿e pozycja konfiguracyjna ma
tak± sam± ilo¶æ ³añcuchów jak to stwierdzono w logach.
<P>Po tym jak zmodyfikujesz <CODE>/etc/pcmcia/config</CODE>, mo¿esz
poinformowaæ <CODE>cardmgr</CODE>, aby prze³adowa³ plik konfiguracyjny:
<P>
<PRE>
   kill -HUP `cat /var/run/cardmgr.pid`
</PRE>
<P>Je¶li uda ci siê ustawiæ jak±¶ pozycjê konfiguracyjn± dla nowej
karty, przy¶lij mi kopiê proszê, tak ¿ebym móg³ j± do³±czyæ do
standardowego pliku konfiguracyjnego.
<P>
<H2>5.2 Jak mam dodaæ obs³ugê dla karty kompatybilnej z NE2000 ?</H2>

<P>
<P>Najpierw sprawd¼, czy karta nie zosta³a ju¿ rozpoznana przez
<CODE>cardmgr</CODE>. Niektóre karty nie wymienione w <CODE>SUPPORTED.CARDS</CODE>
s± wersjami OEM kart obs³ugiwanych. Je¶li znajdziesz taka kartê,
daj mi znaæ, ¿ebym móg³ j± dodaæ do listy.
<P>Je¶li twoja karta nie zosta³a rozpoznana, postêpuj zgodnie z
instrukcjami w sekcji 
<A HREF="#new-card">3.6</A>, aby stworzyæ
pozycjê konfiguracyjn± dla twojej karty oraz powi±¿ swoj± kartê ze
sterownikiem <CODE>pcnet_cs</CODE>. Zrestartuj <CODE>cardmgr</CODE>, aby u¿yæ
nowego zaktualizowanego pliku konfiguracyjnego.
<P>Je¶li sterownik <CODE>pcnet_cs</CODE> twierdzi, ¿e nie mo¿e okre¶liæ
adresu sprzêtowego twojej karty ethernet-owej, to zmodyfikuj nowy
plik konfiguracyjny, aby powi±zaæ kartê ze sterownikiem karty pamiêci
- <CODE>memory_cs</CODE>. Zrestartuj <CODE>cardmgr</CODE>, aby u¿yæ nowego
zaktualizowanego pliku konfiguracyjnego.  Bêdziesz musia³ znaæ
adres sprzêtowy swojej karty sieciowej. Adres ten jest seri±
dwucyfrowych szesnastkowych liczb, czêsto wydrukowanych na karcie.
Je¶li go tam nie ma, mo¿esz u¿yæ sterownika DOS-owego, aby go
wy¶wietliæ. W ka¿dym razie, jak go ju¿ znasz to uruchom:
<P>
<PRE>
   dd if=/dev/mem0a count=20 | od -Ax -t x1
</PRE>
<P>i poszukaj linijki z twoim adresem. Tylko parzyste bajty s±
zdefiniowane, wiec zignoruj bajty nieparzyste w wyniku. Zapisz
szesnastkowy offset pierwszego bajtu adresu. Teraz wyedytuj
<CODE>modules/pcnet_cs.c</CODE> i znajd¼ strukturê <CODE>hw_info</CODE>. 
Bêdziesz musia³ utworzyæ now± pozycjê dla twojej karty. Pierwsze
pole jest offsetem pamiêci. Nastêpne trzy pola to pierwsze trzy
bajty adresu sprzêtowego. Ostatnie pole zawiera flagi dla
konkretnych cech karty; na pocz±tek spróbuj ustawiæ tu 0.
<P>Po edycji <CODE>pcnet_cs.c</CODE>, skompiluj i zainstaluj nowy modu³.
Zmodyfikuj jeszcze raz <CODE>/etc/pcmcia/config</CODE> i zmieñ
powi±zania karty z <CODE>memory_cs</CODE> na <CODE>pcnet_cs</CODE>. Postêpuj
zgodnie z instrukacjami dla prze³adowywania pliku konfiguracyjnego
i wszystko powinno byæ ustawione. Przy¶lij mi proszê kopie twoich
nowych pozycji konfiguracyjnych i <CODE>hw_info</CODE>.
<P>Je¶li nie mo¿esz znale¼æ adresu sprzêtowego swojej karty w formie
szesnastkowej, ostateczn± metod± mo¿e okazaæ siê jawne podanie
adresu w czasie inicjacji modu³u <CODE>pcnet_cs</CODE>. Popraw plik
<CODE>/etc/pcmcia/config</CODE> dodaj±c opcjê <CODE>hw_addr=</CODE>:
<P>
<PRE>
   module "pcnet_cs" opts "hw_addr=0x00,0x80,0xc8,0x01,0x02,0x03"
</PRE>
<P>Oczywi¶cie zamiast podanego adresu podaj adres swojej karty w
odpowiednim miejscu.
<P>
<H2>5.3 Interfejs PCMCIA do dyskietek.</H2>

<P>
<P>Pakiet ten nie obs³uguje jeszcze interfejsów u¿ywanych przez
Compaq Aero i kilka innych laptop-ów. Kruczkiem w obs³udze
dyskietek w Aero jest to, ¿e Aero wydaje siê u¿ywaæ ustawianego
kontrolera PCMCIA, aby obs³ugiwaæ DMA dla dyskietek. Nie wiedz±c
jak to jest dok³adnie robione, nie ma sposobu, aby zaimplementowaæ
to w Linux-ie.
<P>Je¶li kontroler dyskietek jest obecny podczas startowania Aero,
BIOS Aero skonfiguruje kartê i Linux zidentyfikuje j± jako
normaln± stacjê dyskietek. Kiedy za³adowane s± sterowniki
Linux-owe PCMCIA, zauwa¿±, ¿e karta jest ju¿ skonfigurowana i
skojarzona ze sterownikiem Linux-owym i zostawi± to gniazdo w
spokoju. Tak wiêc napêd mo¿e byæ u¿ywany je¶li jest obecny podczas
startu, ale nie mo¿e byæ wymieniany podczas pracy (hot swapping).
<P>
<H2>5.4 Co jest z obs³ug± kart Xircom ?</H2>

<P>
<P>Dziêki pracy Wernera Kocha w aktualnej wersji pakietu PCMCIA
zawarty jest sterownik do kart ethernetowej i ethernet/modem firmy
Xircom.  Specjalnie dla dyskusji na temat rozwoju sterownika Xircom
ustawi³em forum HyperNews pod adresem <CODE>
<A HREF="http://hyper.stanford.edu/HyperNews/get/pcmcia/xircom.html">hyper.stanford.edu/HyperNews/get/pcmcia/xircom.html</A></CODE>.
<P>Przez d³ugi czas karty Xircom nie by³y obs³ugiwane poniewa¿ Xircom
mia³ tak± zasadê, ¿eby nie ujawniaæ technicznych informacji o
swoich kartach. Jednak trochê zmienili zasady i teraz rozprowadzaj±
informacje o sterowniku.
<P>
<H2><A NAME="s6">6. Wskazówki do ¶ledzenia (debugging) i informacje do programowania.</A></H2>

<P>
<P>
<H2>6.1 Jak mogê wys³aæ pomocny list o b³êdzie ?</H2>

<P>
<P>Najlepszym sposobem na zg³aszanie b³êdów jest u¿ycie listy
komunikatowej na HyperNews-ach na stronie dotycz±cej PCMCIA na
Linux-ie. W ten sposób inni tak¿e mog± ¶ledziæ bie¿±ce problemy (i
poprawki czy obej¶cia je¶li s± dostêpne).
<P>Oto rzeczy, które powinny byæ zawarte w ka¿dym li¶cie na temat
b³êdu:
<P>
<UL>
<LI>Typ twojego systemu i wynik polecenia <CODE>probe</CODE>.</LI>
<LI>Jakich kart PCMCIA u¿ywasz.</LI>
<LI>Wersja twojego j±dra i wersja PCMCIA.</LI>
<LI>Jakiekolwiek zmiany, jakie zrobi³e¶ w pliku
<CODE>/etc/pcmcia</CODE> albo <CODE>rc.pcmcia</CODE>.</LI>
<LI>Wszystko co jest zwi±zane z kartami PCMCIA z log-ów systemowych.</LI>
</UL>
<P>Przed wys³aniem listu o b³êdzie, upewnij siê proszê, ¿e u¿ywasz
najnowszej wersji sterowników do PCMCIA. Szczerze powiem, ¿e
czytanie o czym¶, co ju¿ naprawi³em nie jest najbardziej
konstruktywnym sposobem na spêdzanie czasu.
<P>Je¶li twój problem zwi±zany jest tak¿e z nag³ym przerwaniem dzia³ania
j±dra, podczas którego wy¶wietlane s± zawarto¶ci rejestrów, to
zawarto¶æ ta jest przydatna tylko wtedy je¶li mo¿esz wskazaæ adres
EIP. Je¶li jest on w g³ównym j±drze, sprawd¼ ten adres w
<CODE>System.map</CODE>, aby zidentyfikowaæ funkcjê, która by³a w tym
momencie wykonywana. Je¶li przerwa nast±pi³a podczas dzia³ania
jakiego¶ modu³u ³adowalnego, jest to trochê trudniejsze do
prze¶ledzenia. W bie¿±cej wersji narzêdzi do modu³ów program
<CODE>ksyms -m</CODE> wy¶wietli adres podstawowy ka¿dego modu³u. We¼
modu³, który zawiera podane EIP, i odejmij jego adres podstawowy
od EIP, aby otrzymaæ w ten sposób offset w module. Uruchom wtedy
<CODE>gdb</CODE> z tym modu³em jako parametr i sprawd¼ otrzymany offset
poleceniem <CODE>list</CODE>. Zadzia³a to tylko wtedy kiedy dany modu³ by³
skompilowany z opcj± <CODE>-g</CODE>, czyli z informacjami dla debugger-a.
<P>Je¶li nie masz dostêpu do WWW, informacje o b³êdach mo¿na wysy³aæ
do mnie na adres 
<A HREF="mailto:dhinds@hyper.stanford.edu">dhinds@hyper.stanford.edu</A>. Chocia¿ wolê, aby informacje
takie by³y wysy³ane na mojej stronie WWW, tak ¿eby inni tak¿e
mogli je widzieæ.
<P>
<H2>6.2 Informacje na temat niskopoziomowego ¶ledzenia PCMCIA.</H2>

<P>
<P>Modu³y PCMCIA zawieraj± du¿o warunkowo skompilowanego kodu
¶ledzenia. Wiêkszo¶æ tego kodu jest pod kontrol± definicji
preprocesora <CODE>PCMCIA_DEBUG</CODE>. Je¶li jest to niezdefiniowane, to
kod do ¶ledzenia nie zostanie wkompilowany. Je¶li jest utawione na
0, kod ten jest wkompilowany, ale nieaktywny. Im wiêksze poziomy
tym wiêcej informacji. Ka¿dy modu³ stworzony ze zdefiniowanym
symbolem <CODE>PCMCIA_DEBUG</CODE> bêdzie mia³ parametr typu <I>Integer</I>,
<CODE>pc_debug</CODE>, który kontroluje ilo¶æ pojawiaj±cych siê
informacji. Mo¿e to byæ ustawiane wtedy, kiedy modu³ jest
³adowany, tak wiêc wyj¶cie mo¿e byæ kontrolowane, na zasadzie &quot;dla
ka¿dego modu³u&quot; bez potrzeby przekompilowywania.
<P>Jest kilka narzêdzi do ¶ledzenia w podkatalogu <CODE>debug_tools/</CODE>
w dystrybucji PCMCIA. Narzêdzia <CODE>dump_tcic</CODE> i <CODE>dump_i365</CODE>
generuj± kompletny zrzut rejestrów kontrolera PCMCIA i dekoduj±
du¿o informacji z rejestrów. S± najbardziej po¿yteczne wtedy, gdy
masz dostêp do schematu danych konkretnego uk³adu scalonego
kontrolera. Narzêdzie <CODE>dump_tuples</CODE> wy¶wietla CIS-y (Card
Information Structure) danej karty i dekoduje niektóre z
najwa¿niejszych bitów. A narzêdzie <CODE>dump_cisreg</CODE> wy¶wietla
rejestry lokalnej konfiguracji karty.
<P>Sterownik <CODE>memory_cs</CODE> do karty pamiêci jest tak¿e czasami
przydatny do ¶ledzenia. Mo¿e on zostaæ powi±zany z ka¿d± kart±
PCMCIA i nie wp³ywa to negatywnie na inne sterowniki. Mo¿e on
zostaæ u¿yty do bezpo¶redniego dostêpu do pamiêci atrybutowej
karty albo zwyk³ej pamiêci.
<P>
<H2>6.3 Jak mam napisaæ sterownik Card Services dla nowej karty ?</H2>

<P>
<P>Najlepsz± dokumentacj± dla interfejsu PCMCIA dla Linux-a jest &quot;The
Linux PCMCIA Programmer's Guide&quot;. Najnowsza wersja jest zawsze
dostêpna z 
<A HREF="ftp://hyper.stanford.edu/pub/pcmcia/doc">hyper.stanford.edu</A> albo na WWW - 
<A HREF="http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html">hyper.stanford.edu/HyperNews/get/pcmcia/home.html</A>.
<P>Dla urz±dzeñ, które s± wzglêdnie podobne do normalnych urz±dzeñ
kart ISA, bêdziesz móg³ przypuszczalnie u¿yæ fragmentów
sterowników Linux-a, które ju¿ istniej±. W niektórych przypadkach,
najwiêkszym problem bêdzie takie przerobienie ju¿ istniej±cego
sterownika, aby móg³ on sobie poradziæ z wk³adaniem i wyjmowaniem
danej karty. W bie¿±cej wersji, sterownik do karty pamiêci jest
jedynym sterownikiem, który nie zale¿y od ¿adnej czê¶ci innego
sterownika, który wykonywa³by za niego brudn± robotê.
<P>Napisa³em szkielet sterownika z du¿± ilo¶ci± komentarzy, które
wyja¶niaj± jak sterownik siê komunikuje z Card Sevices; znajdziesz
ten szkielet w dystrybucji ¼ród³owej PCMCIA w podkatalogu
<CODE>modules/skeleton.c</CODE>.
<P>
<H2>6.4 Wskazówki dla autorów sterowników klientów PCMCIA.</H2>

<P>
<P>Zdecydowa³em, ¿e nie jest rozs±dne dla mnie, abym rozprowadza³
wszystkie sterowniki klientów PCMCIA jako czê¶æ pakietu PCMCIA. 
Ka¿dy nowy sterownik czyni g³ówny pakiet trudniejszym do
utrzymania i, co mo¿na by³o przewidzieæ, do³±czenie sterownika
przenosi trochê pracy opiekuna z autora na mnie. W zamian za to,
zdecydujê osobno dla ka¿dego przypadku (case by case) czy w³±czyæ
czy nie sterowniki pisane przez osoby trzecie, w zale¿no¶ci od
¿±dañ u¿ytkowników jak i mo¿liwo¶ci utrzymywania. Sugerujê, ¿eby
autorzy sterowników, które nie dosta³y siê do g³ównego pakietu,
zaadoptowali nastêpuj±cy schemat przy przygotowywaniu ich
sterowników do dystrybucji.
<P>Pliki sterownika powinny byæ u³o¿one w takiej samej strukturze
katalogów jak w g³ównej dystrybucji, tak, ¿eby mo¿na by³o
rozpakowaæ sterownik ten w g³ównym katalogu ¼róde³ g³ównej
dystrybucji. Sterownik powinien posiadaæ pliki ¼ród³owe (w
<CODE>./modules/</CODE>), stronê do podrêcznika systemowego (w
<CODE>./man/</CODE>) i pliki konfiguracyjne (w <CODE>./etc/</CODE>).
Katalog g³ówny powinien zawieraæ tak¿e plik README.
<P>W katalogu g³ównym powinien siê tak¿e znajdowaæ makefile,
ustawiony w taki sposób, ¿e &quot;<CODE>make -f ...</CODE> all&quot; i
&quot;<CODE>make -f ... install</CODE>&quot; skompiluje sterownik i
zainstaluje wszystkie potrzebne pliki. Je¶li plik ten posiada
rozszerzenie <CODE>.mk</CODE>, to zostanie on automatycznie wykonany przez
g³ówny pliku <CODE>Makefile</CODE> dla celów <CODE>all</CODE> i <CODE>install</CODE>.<BR>
Oto przyk³ad jak taki plik móg³by byæ skonstruowany.
<P>
<BLOCKQUOTE><CODE>
<PRE>
# Przyk³adowy Makefile dla sterowników pisanych przez osoby trzecie
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)
</PRE>
</CODE></BLOCKQUOTE>
<P>Plik ten u¿ywa celów install zdefiniowanych w pakiecie PCMCIA
2.9.10 i pó¼niejszych. Zawiera on tak¿e cel &quot;dist&quot; dla
wygody autora sterownika. Przypuszczalnie bêdziesz chcia³ dodaæ
numer wersji do ostatecznego pakietu (np. <CODE>sample_cs-1.5.tar.gz</CODE>).
Pe³na dystrybucja mog³aby wygl±daæ tak:
<P>
<BLOCKQUOTE><CODE>
<PRE>
sample_cs.mk
README.sample_cs
modules/sample_cs.c
modules/sample_cs.h
etc/sample
etc/sample.opts
man/sample_cs.4
</PRE>
</CODE></BLOCKQUOTE>
<P>Z takim uk³adem katalogów, po rozpakowaniu sterownik staje siê
czê¶ci± g³ównej dystrybucji. Mo¿e korzystaæ z plików nag³ówkowych
PCMCIA, tak jak i z mo¿liwo¶ci sprawdzania konfiguracji systemu
u¿ytkownika i automatycznego sprawdzania zale¿no¶ci tak samo jak
&quot;normalny&quot; sterownik klienta.
<P>Bêdê akceptowa³ sterowniki przygotowane zgodnie z t± specyfikacj±
i umieszcza³ je w katalogu <CODE>/pub/pcmcia/contrib</CODE> na moim
serwerze FTP - <CODE>hyper.stanford.edu</CODE>. Plik README w tym katalogu
bêdzie opisywa³ jak rozpakowaæ sterownik pisany przez trzeci±
osobê.
<P>Interfejs sterownika PCMCIA nie zmieni³ siê wiele przez ten czas i
prawie zawsze zachowywa³ wsteczn± kompatybilno¶æ. Sterownik
klienta nie bêdzie musia³ byæ aktualizowany dla pobocznych wersji
w pakiecie g³ównym PCMCIA. Spróbujê powiadamiaæ autorów
sterowników o zmianach, które wymagaj± uaktualnienia ich
sterowników.
<P>
<H2>6.5 Od t³umacza.</H2>

<P>
<P>T³umaczenie to jest chronione prawami autorskimi &copy; Bartosza
Maruszewskiego.
Dozwolone jest rozprowadzanie i dystrybucja na prawach takich
samych jak dokument oryginalny.
<P>Je¶li znalaz³e¶ jakie¶ ra¿±ce b³êdy ortograficzne, gramatyczne,
sk³adniowe, techniczne to pisz do mnie:
<P>
<A HREF="mailto:B.Maruszewski@jtz.org.pl">B.Maruszewski@jtz.org.pl</A>
A mo¿esz tu znale¼æ do¶æ du¿o mo¿e nie b³êdów, ale konstrukcji,
które nie s± podobne do jêzyka polskiego. Ale to wszystko dlatego,
¿e jest trochê ciê¿ko przet³umaczyæ zdanko z angielskiego je¶li
jest obok siebie 4 czy czasami nawet 6 rzeczowników ;) Je¶li
zauwa¿ysz taki stwór i wpadniesz na lepsze okre¶lenie, napisz.
Je¶li bêdzie to w miarê sensowne, to napewno tego nie zignorujê.
<P>Oficjaln± stron± t³umaczeñ HOWTO jest
<A HREF="http://www.jtz.org.pl/">http://www.jtz.org.pl/</A><P>Aktualne wersje przet³umaczonych dokumentów znajduj± siê na
tej¿e stronie. Dostêpne s± tak¿e poprzez anonimowe ftp pod adresem
<A HREF="ftp://ftp.jtz.org.pl/HOWTO/">ftp.jtz.org.pl</A> w katalogu <CODE>/HOWTO/</CODE>.
<P>Przet³umaczone przeze mnie dokumenty znajduj± siê tak¿e na
<A HREF="http://www.jtz.org.pl/bartek/tlumaczenie.html">mojej stronie WWW.</A> S± tam te¿ odwo³ania do Polskiej Strony
T³umaczeniowej.
<P>Kontakt z nasz± grup±, grup± t³umaczy mo¿esz uzyskaæ poprzez listê
dyskusyjn± jtz@ippt.gov.pl. Je¶li chcesz sie na ni± zapisaæ, to
wy¶lij list o tre¶ci <CODE>subscribe jtz Imiê Nazwisko</CODE> na adres
<CODE>majordomo@ippt.gov.pl</CODE>
<P>Zmiany w tym dokumencie wprowadzone przez t³umacza to
odwo³ania do polskich serwerów ftp.
</BODY>
</HTML>