/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. "gor±ce wymiany" 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 "takim jakim jest", 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
"rdzeñ" 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ê "HyperNews",
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 "linux-laptop". Aby uzyskaæ wiêcej informacji, wy¶lij list
zawieraj±cy s³owo "help" 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 "subscribe linux-laptop" 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) "Forms" - 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 "pocket
and portable adapters". 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 - "Token Ring
driver support", 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 "top level" (dyski SCSI, ta¶my, CD-ROM-y,
generic), których spodziewasz siê u¿ywaæ. Wszystkie sterowniki
"low level" 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 "Forms Library", 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 "zarchiwizowaæ" 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 "cross-kompilujesz" 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 "safe" (bezpiecznej) lub
"trusting" (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 "safe" czy "trusting"; warto¶ci±
domy¶ln± jest "safe".
<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/<wersja>/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 "man" 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 "low level" <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 "log-file", 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 "wrong version", 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 "undefined symbols".
<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 "polled": 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
"timing-ami"
<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 "poprawnej" 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 "boot" i "root" 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 "w³±cznikami", 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 "gor±ce wymiany". "W³±czniki" mog± byæ malutkie
poniewa¿ generalnie obs³uguj± one ograniczon± ilo¶æ kontrolerów
PCMCIA. Je¶li kto¶ mia³by napisaæ autentycznie "ogólny" "w³±cznik"
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
"<CODE>cardctl config</CODE>":
<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 "<CODE>cardctl config</CODE>".
<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 "adres urz±dzenia" 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 "adresu
urz±dzenia", 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 "default".
<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 "loopback" 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
"promiscuous" 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 "ciep³o".
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 "twierdzi", ¿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 "timing-owe"
gniazda dla sterownika. Wiêcej informacji znajdziesz w sekcji
<A HREF="#timing">2.3</A>.</LI>
<LI>Je¶li masz komunikaty w stylu "network unreachable"
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 "T", 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¶ "register_serial()
failed()", 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
"<I>polled</I>" 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: "sd"
dla dysków, "st" dla ta¶m, "sr" dla CD-ROM-ów i "sg" 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 "<I>top-level</I>" (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: "sd#nnnn", gdzie "nnnn" 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 "top-level" 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 "<I>top-level</I>" 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³ "termination power" niezbêdny do prawid³owego
dzia³ania zwyk³ych pasywnych terminatorów SCSI. Sterowniki SCSI
standardu PCMCIA nie dostarczaj± sygna³u "power termination", 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³ "power termination".
<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 "m"), 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± "Card Information Structure"
(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 "flash".</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 "flash" ma
tylko jeden region pamiêci "flash", wiêc numerem regionu
zwykle bêdzie zero.
<P>Aby u¿yæ karty pamiêci "flash" jako zwyk³ego
urz±dzenia blokowego jak dysk, stwórz najpierw partycjê "flash
translation layer" 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 "ftl0c0" jest kart± 0 o numerze
regionu 0 i ca³ym regionem. Urz±dzenia od "ftl0c0p1"
do "ftl0c0p4" s± g³ównymi partycjami 1 do 4 je¶li
region zosta³ podzielony.
<P>S± dwa g³ówne formaty dla kart pamiêci flash: styl "flash
translation layer", i styl "Microsoft Flash File System". 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 "flash" 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 "gor±ce zmiany".
<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 "<I>rozkrêcenie siê</I>" 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 "<CODE>kill -HUP</CODE>".
<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 "dom" i "praca".
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 "initrd"
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 "initrd"
do startu z g³ównym systemem plików na PCMCIA. Dlatego te¿
konfiguracja takiego systemu wymaga u¿ycia drugiego Linux-a, aby
stworzyæ obraz "initrd". 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 "loopback"
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 < [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 <kernel> initrd=<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 "man" 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æ "*", 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 "dla
ka¿dego modu³u" 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 "The
Linux PCMCIA Programmer's Guide". 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 "<CODE>make -f ...</CODE> all" i
"<CODE>make -f ... install</CODE>" 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 "dist" 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
"normalny" 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 © 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>
|