This file is indexed.

/usr/share/doc/HOWTO/fr-html/AX25-HOWTO.html is in doc-linux-fr-html 2013.01-2.

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
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.69">
<title>Linux AX.25-HOWTO, Amateur Radio.</title>
</head>
<body>
<h1>Linux AX.25-HOWTO, Amateur Radio.</h1>
<h2>Terry Dawson, VK2KTJ,
<code>terry@perf.no.itg.telstra.com.au</code>, traduit par
Fran&ccedil;ois Romieu, <a href=
"romieu@ensta.fr">romieu@ensta.fr</a></h2>
v1.5, 17 Octobre 1997
<hr>
<em>Le syst&egrave;me d'exploitation Linux est s&ucirc;rement le
seul au monde &agrave; pouvoir se vanter d'offrir un support natif
du protocole de transmission de donn&eacute;es AX.25 employ&eacute;
par les radioamateurs &agrave; travers le monde. Le pr&eacute;sent
document se veut un guide d'installation et de configuration de
cette prise en charge.</em>
<hr>
<h2><a name="s1">1. Introduction.</a></h2>
<p>Le document trouve son origine dans une annexe du HAM-HOWTO.
L'importance de son d&eacute;veloppement devint cependant
incompatible avec une telle organisation. L'installation et la
prise en charge int&eacute;gr&eacute;e d'AX.25, la gestion NetRom
et Rose sous Linux sont d&eacute;crites. Quelques exemples de
configurations typiques fournissent une base de travail.</p>
<p>La mise en oeuvre des protocoles radioamateurs sous Linux est
tr&egrave;s souple. Les personnes peu famili&egrave;res du
syst&egrave;me d'exploitation Linux trouveront peut-&ecirc;tre la
configuration un peu obscure. Il vous faudra un certain temps pour
ma&icirc;triser l'interaction des diff&eacute;rents
&eacute;l&eacute;ments. Attendez-vous &agrave; une configuration
p&eacute;nible si vous ne vous &ecirc;tes pas auparavant
familiaris&eacute; avec Linux. N'esp&eacute;rez pas passer &agrave;
Linux depuis un autre environnement en faisant l'&eacute;conomie de
tout apprentissage.</p>
<h2><a name="ss1.1">1.1 Modifications par rapport &agrave; la
version pr&eacute;c&eacute;dente</a></h2>
<pre>
Ajouts:
        Page ouaibe de Joerg Reuters
        Section "Informations suppl&eacute;mentaires"
        configuration d'ax25ipd.

Corrections/Mises &agrave; jour:
        Pr&eacute;vention des conflits dus aux pty
        Nouvelles versions du module et des ax25-utils

A faire:
        Mettre au point la section SCC qui est s&ucirc;rement erron&eacute;e
        &Eacute;toffer la section touchant &agrave; la programmation
</pre>
<h2><a name="ss1.2">1.2 Nouvelles versions du document</a></h2>
<p>Les archives du Projet de Documentation Linux (LDP ou Linux
Documentation Project) constituent le meilleur emplacement
o&ugrave; trouver la derni&egrave;re mouture de ce texte. Le LDP
tient &agrave; jour un site ouaibe dans lequel figure l'AX.25
HOWTO&nbsp;: <a href=
"http://sunsite.unc.edu/LDP/HOWTO/AX.25-HOWTO.html">AX.25-HOWTO</a>.
Le texte est disponible sous diff&eacute;rents formats &agrave;
l'adresse suivante&nbsp;: <a href=
"ftp://sunsite.unc.edu/pub/Linux/docs/howto/">archive ftp
sunsite.unc.edu</a>. La version fran&ccedil;aise est accessible
via&nbsp;: <a href="ftp://ftp.traduc.org/pub/HOWTO/FR">archive
Traduc.org</a>.</p>
<p>Vous pouvez me contacter mais comme je transmets directement les
nouvelles versions au coordinateur LDP des HOWTO, l'absence d'une
nouvelle version indique s&ucirc;rement que je ne l'ai pas
termin&eacute;e.</p>
<h2><a name="ss1.3">1.3 Autres documents</a></h2>
<p>La documentation sur les sujets apparent&eacute;s ne manque pas.
Bon nombre de textes traitent de l'utilisation
g&eacute;n&eacute;rale de Linux en r&eacute;seau et je vous
conseille vivement de les lire&nbsp;: ils vous guideront dans vos
efforts et offrent une vision &eacute;largie &agrave; d'autres
configurations envisageables.</p>
<p>Par exemple&nbsp;:</p>
<p><a href=
"http://sunsite.unc.edu/LDP/HOWTO/HAM-HOWTO.html">HAM-HOWTO</a>,</p>
<p><a href=
"http://sunsite.unc.edu/LDP/HOWTO/NET-3-HOWTO.html">NET-3-HOWTO</a>,</p>
<p><a href=
"http://sunsite.unc.edu/LDP/HOWTO/Ethernet-HOWTO.html">Ethernet-HOWTO</a>,</p>
<p>et&nbsp;:</p>
<p><a href=
"http://sunsite.unc.edu/LDP/HOWTO/Firewall-HOWTO.html">le
Firewall-HOWTO</a></p>
<p>Des informations plus g&eacute;n&eacute;rales sur Linux sont
disponibles&nbsp;: <a href=
"http://sunsite.unc.edu/LDP/HOWTO/">Linux HOWTO</a></p>
<h2><a name="s2">2. Les protocoles de paquets par radio et
Linux</a></h2>
<p>Le protocole <em>AX.25</em> fonctionne aussi bien en mode
connect&eacute; que non-connect&eacute; et s'emploie tel quel pour
des liaisons point-&agrave;-point ou pour encapsuler d'autres
protocoles tels qu'IP ou NetRom.</p>
<p>Sa structure se rapproche de celle du niveau 2 d'X25 avec des
extensions qui l'adaptent &agrave; l'environnement
radioamateur.</p>
<p>Le protocole NetRom a pour objectif de fournir un protocole
r&eacute;seau complet. Il repose sur AX.25 au niveau liaison de
donn&eacute;es et procure une couche r&eacute;seau
d&eacute;riv&eacute;e d'AX.25. Le protocole NetRom autorise le
routage dynamique et la cr&eacute;ation d'alias pour les
noeuds.</p>
<p>Le protocole Rose a &eacute;t&eacute; initialement con&ccedil;u
et r&eacute;alis&eacute; par Tom Moulton alias W2VY. Il constitue
une mise en oeuvre du protocole par paquets X25 et peut
inter-op&eacute;rer avec AX.25 au niveau liaison. Il fournit des
services de couche r&eacute;seau. Les adresses Roses comportent 10
digits. Les quatre premiers constituent le code d'identification du
r&eacute;seau de donn&eacute;es (DNIC ou Data Network
Identification Code) et sont r&eacute;f&eacute;renc&eacute;s dans
l'Appendice B de la recommandation X121 du CCITT. Des informations
suppl&eacute;mentaires sur le protocole Rose sont disponibles sur
le site suivant&nbsp;: <a href="http://www.rats.org/">Serveur Web
RATS</a>.</p>
<p>Alan Cox a cr&eacute;&eacute; les toutes premi&egrave;res
versions de support noyau pour AX.25. Jonathon Naylor
<code>&lt;g4klx@g4klx.demon.co.uk&gt;</code> a poursuivi le
d&eacute;veloppement, ajout&eacute; la gestion de NetRom et de Rose
et assure &agrave; pr&eacute;sent officiellement la maintenance du
code noyau relatif &agrave; AX.25. La prise en compte de DAMA est
l'oeuvre de Joerg, DL1BKE, <code>jreuter@poboxes.com</code>. Thomas
Sailer, <code>&lt;sailer@ife.ee.ethz.ch&gt;</code> s'est
charg&eacute; des mat&eacute;riels Baycom et SoundModem. J'assure
pour ma part le suivi des utilitaires AX.25.</p>
<p>Linux g&egrave;re les TNC (Terminal Node Controllers) KISS, les
cartes Ottawa PI, les PacketTwin Gracilis et autres cartes &agrave;
base de SCC Z8530 via le pilote SCC g&eacute;n&eacute;rique ainsi
que les modems sur ports s&eacute;rie et parall&egrave;le de
Baycom. Le nouveau pilote pour modems &agrave; base de carte son de
Thomas accepte les Soundblaster et les cartes &agrave; base de
composants Crystal.</p>
<p>Le paquetage de programmes applicatifs comprend une messagerie
individuelle (PMS ou Personal Message System), une balise, un
programme de connexion en mode texte, un exemple de
r&eacute;cup&eacute;ration des trames AX.25 au niveau de
l'interface et des utilitaires de configuration du protocole
NetRom. Il comprend &eacute;galement un serveur de type AX.25 qui
g&egrave;re les demandes de connexions AX.25 et un d&eacute;mon qui
se charge de l'essentiel du travail pour le protocole NetRom.</p>
<h2><a name="ss2.1">2.1 Fonctionnement</a></h2>
<p>La mise en oeuvre d'AX.25 sous Linux lui est propre de A
&agrave; Z. Bien qu'elle puisse ressembler &agrave; NOS, &agrave;
BPQ ou &agrave; d'autres versions d'AX.25 sur certains points, elle
ne se confond avec aucune d'entre elles. La version Linux peut
&ecirc;tre configur&eacute;e pour se comporter de fa&ccedil;on
voisine aux autres mais le processus n'en reste pas moins
radicalement diff&eacute;rent.</p>
<p>Pour vous aider &agrave; comprendre la d&eacute;marche
intellectuelle &agrave; suivre lors de la configuration, cette
section d&eacute;crit les fonctionnalit&eacute;s structurelles
d'AX.25 et son adaptation au contexte Linux.</p>
<p><b><em>Diagramme simplifi&eacute; des couches
protocolaires</em></b></p>
<blockquote>
<pre>
<code>+----------+-----------+-------------+---------+
| AF_AX.25 | AF_NETROM |   AF_INET   | AF_ROSE |
+==========+===========+=============+=========+
|          |           |             |         |
|          |           |    TCP/IP   |         |
|          |           +--------+    |         |
|          |  NetRom            |    | Rose    |
|          +--------------------+----+---------+
|            AX.25                             |
+----------------------------------------------+
</code>
</pre></blockquote>
<p>Le diagramme pr&eacute;c&eacute;dent illustre simplement le fait
que Rose, NetRom, AX.25 et TCP/IP reposent tous sur AX.25 mais que
chacun est trait&eacute; comme un protocole diff&eacute;rent au
niveau de l'interface de programmation. Les noms `<code>AF_</code>'
correspondent aux noms donn&eacute;s aux `<em>Familles
d'Adresses</em>' de chacun du point de vue du programmeur. On
notera ici l'obligation de configurer la pile AX.25 avant toute
configuration des protocoles NetRom, Rose ou TCP/IP.</p>
<p><b><em>Diagramme des modules logiciels de la pile r&eacute;seau
de Linux</em></b></p>
<pre>
---------------+-----------+-----------------------++----------+---------------
  Utilisateur  |Programmes |   call        node    ||  D&eacute;mons  | ax25d  mheardd
               |           |   pms         mheard  ||          | inetd  netromd
---------------+-----------+-----------------------++----------+---------------
               |Sockets    | open(), close(), listen(), read(), write(), connect()
               |           +----------------------+-------------------+----------
               |           |    AF_AX.25   |  AF_NETROM |   AF_ROSE   |  AF_INET
               +-----------+--------------+-------+-----+-------------+----------
Noyau          |Protocoles |    AX.25     |   NetRom    |     Rose    | IP/TCP/UDP
               +-----------+--------------+-------------+-------------+----------
               |P&eacute;riph.    |    ax0,ax1   |  nr0,nr1    | rose0,rose1 | eth0,ppp0
               +-----------+--------------+-------------+-------------+----------
               |Pilotes    |  Kiss   PI2   PacketTwin   SCC   BPQ     | slip ppp
               |           |    modems type son   Baycom              | ethernet
---------------+-----------+------------------------------------------+-----
Mat&eacute;riel | Cartes PI2, PacketTwin, SCC, S&eacute;rie, Ethernet
----------------------------------------------------------------------------
</pre>
Ce diagramme est plus g&eacute;n&eacute;ral que le
pr&eacute;c&eacute;dent. Il montre les relations entre les
applications, le noyau et le mat&eacute;riel ainsi qu'entre
l'interface de programmation des sockets, les modules de
protocoles, les p&eacute;riph&eacute;riques r&eacute;seau et leurs
pilotes. Chaque niveau d&eacute;pend de celui sur lequel il repose
et, de fa&ccedil;on g&eacute;n&eacute;rale, la configuration doit
se faire de bas en haut. Par exemple, si vous souhaitez
ex&eacute;cuter le programme <em>call</em>, vous devez configurer
le mat&eacute;riel, v&eacute;rifier que le pilote ad&eacute;quat
est inclus dans le noyau, cr&eacute;er les
p&eacute;riph&eacute;riques noyaux correspondants et inclure le
protocole requis par le programme <em>call</em>. J'ai essay&eacute;
d'organiser le pr&eacute;sent document de cette fa&ccedil;on.
<h2><a name="s3">3. Composants logiciels de la suite
AX.25/NetRom/Rose</a></h2>
<p>Le paquetage AX.25 comprend trois volets&nbsp;: les sources du
noyau, les outils de configuration r&eacute;seau et les
applications utilisateur.</p>
<p>Les version 2.0.xx des noyaux Linux incluent les gestionnaires
AX.25, NetRom, SCC Z8530, PacketTwin et ceux des cartes PI. Les
noyaux 2.1.* les am&eacute;liorent substantiellement. L'emploi d'un
noyau 2.1.* dans un syst&egrave;me de production est vivement
d&eacute;conseill&eacute;. Pour y rem&eacute;dier, Jonathon Naylor
propose un ensemble de patches pour mettre &agrave; niveau la
gestion du protocole radio amateur dans un noyau 2.0.28.
L'application des patches est tr&egrave;s simple et apporte une
palette de fonctionnalit&eacute;s autrement absentes du noyau tel
le support Rose. L'emploi d'un noyau 2.2.x est &eacute;galement
envisageable.</p>
<h2><a name="ss3.1">3.1 R&eacute;cup&eacute;ration du noyau, des
outils et utilitaires</a></h2>
<h3>Sources du noyau</h3>
<p>Les sources du noyau sont disponibles via le r&eacute;seau de
miroirs de ftp.kernel.org&nbsp;: <b>ftp.xx.kernel.org</b> o&ugrave;
xx d&eacute;signe un code pays tel fr, uk, de, us, etc... Les
diff&eacute;rentes version du noyau se trouvent en&nbsp;:</p>
<blockquote>
<pre>
<code>/pub/linux/kernel/
</code>
</pre></blockquote>
Version courante de mise &agrave; jour d'AX.25&nbsp;:
<b>ftp.pspt.fi</b>
<blockquote>
<pre>
<code>/pub/linux/ham/ax25/ax25-module-14e.tar.gz
</code>
</pre></blockquote>
<h3>Les outils r&eacute;seau</h3>
<p>Derni&egrave;re version alpha des outils r&eacute;seau standard
pour Linux g&eacute;rant AX.25 et NetRom&nbsp;:
<b>ftp.inka.de</b></p>
<blockquote>
<pre>
<code>/pub/comp/Linux/networking/net-tools/net-tools-1.33.tar.gz
</code>
</pre></blockquote>
<p>Paquetage ipfwadm&nbsp;: <b>ftp.xos.nl</b></p>
<blockquote>
<pre>
<code>/pub/linux/ipfwadm/
</code>
</pre></blockquote>
En 2.2.x, le paquetage <em>ipchains</em> remplace ipfwadm devenu
obsol&egrave;te.
<h3>Les utilitaires AX.25</h3>
<p>Il existe deux familles distinctes d'outils AX.25. L'une
d&eacute;di&eacute;e aux noyaux <code>2.0.*</code> et l'autre
destin&eacute;e aussi bien aux version <code>2.1.*</code> qu'aux
noyaux <code>2.0.*</code> patch&eacute;s. Le num&eacute;ro de
version de ax25-utils indique la version du noyau la plus ancienne
&agrave; partir de laquelle les outils fonctionneront. A vous de
choisir une version des ax25-utils appropri&eacute;e. Les
combinaisons suivantes fonctionnent, <b>utilisez les</b> .</p>
<blockquote>
<pre>
<code>Noyau Linux              Utilitaires AX.25
----------------------   -------------------------
linux-2.0.29             ax25-utils-2.0.12c.tar.gz **
linux-2.0.28+module12    ax25-utils-2.1.22b.tar.gz **
linux-2.0.30+module14c   ax25-utils-2.1.42a.tar.gz
linux-2.0.31+module14d   ax25-utils-2.1.42a.tar.gz
linux-2.1.22 ++          ax25-utils-2.1.22b.tar.gz
linux-2.1.42 ++          ax25-utils-2.1.42a.tar.gz
</code>
</pre></blockquote>
<p><b>Note</b>: les versions <code>ax25-utils-2.0.*</code>
identifi&eacute;es ci-dessus avec le symbole '<code>**</code>' sont
&agrave; pr&eacute;sent obsol&egrave;tes. Le document couvre
l'emploi des logiciels conseill&eacute;s dans les tables. Bien que
les paquetages diff&egrave;rent, la plus grande partie des
informations reste valable pour les versions suivantes.</p>
<p>Utilitaires AX.25&nbsp;: <a href=
"ftp://ftp.pspt.fi/pub/linux/ham/ax25/">ftp.pspt.fi</a> ou&nbsp;:
<a href=
"ftp://sunsite.unc.edu/pub/Linux/apps/ham/">sunsite.unc.edu</a></p>
<h2><a name="s4">4. Installation des logiciels
AX.25/NetRom/Rose</a></h2>
<p>Une mise en oeuvre correcte d'AX.25 dans votre syst&egrave;me
Linux n&eacute;cessite l'installation et la configuration d'un
noyau appropri&eacute; ainsi que des utilitaires AX.25.</p>
<h2><a name="ss4.1">4.1 Compilation du noyau</a></h2>
<p>Si vous &ecirc;tes un habitu&eacute; de la compilation du noyau
Linux, contentez-vous de v&eacute;rifier que vous avez
activ&eacute; les options ad&eacute;quates et sautez cette section.
Si ce n'est pas le cas, lisez ce qui suit.</p>
<p>En principe, les sources du noyau sont
d&eacute;compact&eacute;es au niveau du r&eacute;pertoire
<code>/usr/src</code> dans un sous-r&eacute;pertoire nomm&eacute;
<code>linux</code>. Pour ce faire, prenez l'identit&eacute; du
super-utilisateur <code>root</code> et ex&eacute;cutez les
commandes ci-dessous&nbsp;:</p>
<blockquote>
<pre>
<code># mv linux linux.old
# cd /usr/src
# tar xvfz linux-2.0.31.tar.gz
# tar xvfz /pub/net/ax25/ax25-module-14e.tar.gz 
# patch -p0 &lt;/usr/src/ax25-module-14/ax25-2.0.31-2.1.47-2.diff
# cd linux
</code>
</pre></blockquote>
<p>Une fois les sources du noyau d&eacute;compact&eacute;es et la
mise &agrave; jour appliqu&eacute;e, lancez le script de
configuration et activez les options qui correspondent &agrave; la
configuration mat&eacute;rielle dont vous souhaitez disposer. Vous
utiliserez la commande&nbsp;:</p>
<blockquote>
<pre>
<code># make menuconfig
</code>
</pre></blockquote>
Si vous &ecirc;tes b&ecirc;te^H^H^H^Hcourageux, vous pouvez essayer
<blockquote>
<pre>
<code># make config
</code>
</pre></blockquote>
Les claviophobes se serviront de&nbsp;:
<blockquote>
<pre>
<code># make xconfig
</code>
</pre></blockquote>
<p>Je vais d&eacute;crire la m&eacute;thode plein-&eacute;cran
(menuconfig) dont j'appr&eacute;cie la facilit&eacute; de
d&eacute;placement mais vous &ecirc;tes libre d'en utiliser une
autre.</p>
<p>Dans tous les cas, vous devrez choisir parmi une s&eacute;rie
d'options auxquelles il faudra r&eacute;pondre par `Y' ou `N'
(voire `M' si vous avez recours aux modules, ce sur quoi je fais
l'impasse pour simplifier).</p>
<p>Options importantes pour la configuration d'AX.25&nbsp;:</p>
<pre>
Code maturity level options  ---&gt;
    ...
    [*] Prompt for development and/or incomplete code/drivers
    ...
General setup  ---&gt;
    ...
    [*] Networking support
    ...
Networking options  ---&gt;
    ...
    [*] TCP/IP networking
    [?] IP: forwarding/gatewaying
    ...
    [?] IP: tunneling
    ...
    [?] IP: Allow large windows (not recommended if &lt;16Mb of memory)
    ...
    [*] Amateur Radio AX.25 Level 2
    [?] Amateur Radio NET/ROM
    [?] Amateur Radio X.25 PLP (Rose)
    ...
Network device support  ---&gt;
    [*] Network device support
    ...
    [*] Radio network interfaces
    [?] BAYCOM ser12 and par96 driver for AX.25
    [?] Soundcard modem driver for AX.25
    [?] Soundmodem support for Soundblaster and compatible cards
    [?] Soundmodem support for WSS and Crystal cards
    [?] Soundmodem support for 1200 baud AFSK modulation
    [?] Soundmodem support for 4800 baud HAPN-1 modulation
    [?] Soundmodem support for 9600 baud FSK G3RUH modulation
    [?] Serial port KISS driver for AX.25
    [?] BPQ Ethernet driver for AX.25
    [?] Gracilis PackeTwin support for AX.25
    [?] Ottawa PI and PI/2 support for AX.25
    [?] Z8530 SCC KISS emulation driver for AX.25
    ...
</pre>
Vous <b>devez</b> r&eacute;pondre `Y' aux options marqu&eacute;es
d'un <code>*</code>'. Le reste d&eacute;pend de votre configuration
mat&eacute;rielle et d'options laiss&eacute;es &agrave; votre
choix. Certaines de ces options sont d&eacute;crites un peu plus
loin. Si vous ne voyez pas ce dont il retourne, continuez la
lecture et revenez &agrave; cette section ult&eacute;rieurement.
<p>Une fois la configuration du noyau achev&eacute;e, vous devriez
pouvoir compiler proprement un nouveau noyau&nbsp;:</p>
<blockquote>
<pre>
<code># make dep
# make clean
# make zImage
</code>
</pre></blockquote>
<p>D&eacute;placez ensuite le fichier
<code>arch/i386/boot/zImage</code> et &eacute;ditez le fichier
<code>/etc/lilo.conf</code> en cons&eacute;quence avant de relancer
<em>lilo</em> pour &ecirc;tre s&ucirc;r que vous d&eacute;marrerez
bien sur le bon noyau.</p>
<h3>Un mot sur les modules</h3>
<p>Je vous recommande de ne <b>pas</b> compiler quelque pilote que
ce soit en tant que module. Dans presque toutes les installations,
vous n'y gagnez rien sinon une complexit&eacute; accrue. De
nombreuses personnes ont des probl&egrave;mes avec les modules, non
par la faute du code, mais parce que les modules sont plus
compliqu&eacute;s &agrave; installer et &agrave; configurer.
[NdT:manifestement nous ne faisons pas le m&ecirc;me arbitrage
complexit&eacute;/souplesse]</p>
<p>Si vous avez choisi de compiler certains composants en tant que
modules, vous devrez &eacute;galement utiliser&nbsp;:</p>
<blockquote>
<pre>
<code># make modules
# make modules_install
</code>
</pre></blockquote>
afin d'installer vos modules &agrave; l'emplacement ad&eacute;quat.
<p>Certains ajouts au fichier <code>/etc/conf.modules</code> sont
n&eacute;cessaires afin que <em>kerneld</em> sache g&eacute;rer
l'interface d'acc&egrave;s aux fonctions modularis&eacute;es. Les
entr&eacute;es suivantes doivent &ecirc;tre
pr&eacute;sentes&nbsp;:</p>
<blockquote>
<pre>
<code>alias net-pf-3     ax25
alias net-pf-6     netrom
alias net-pf-11    rose
alias tty-ldisc-1  slip
alias tty-ldisc-3  ppp
alias tty-ldisc-5  mkiss
alias bc0          baycom
alias nr0          netrom
alias pi0a         pi2
alias pt0a         pt
alias scc0         optoscc    (or one of the other scc drivers)
alias sm0          soundmodem
alias tunl0        newtunnel
alias char-major-4 serial
alias char-major-5 serial
alias char-major-6 lp
</code>
</pre></blockquote>
<blockquote>
<pre>
<code># modprobe -c
</code>
</pre></blockquote>
vous renverra la configuration courante.
<h3>Qu'y a-t-il de nouveau dans les noyaux 2.0.x patch&eacute;s et
les 2.1.y ?</h3>
<p>Les noyaux <code>2.1.*</code> pr&eacute;sentent des
am&eacute;liorations au niveau de quasiment tous les pilotes et
protocoles. Citons les plus significatives&nbsp;:</p>
<dl>
<dt><b>Modularisation</b></dt>
<dd>
<p>tous les protocoles et gestionnaires ont &eacute;t&eacute;
modularis&eacute;s de fa&ccedil;on &agrave; &ecirc;tre
g&eacute;r&eacute;s via <em>insmod</em> et <em>rmmod</em>. La
m&eacute;moire demand&eacute;e par le noyau diminue dans le cas de
modules employ&eacute;s par intermittence. Le d&eacute;veloppement
et la mise au point des gestionnaires devient &eacute;galement plus
facile. Cela &eacute;tant, la configuration devient
l&eacute;g&egrave;rement plus compliqu&eacute;e.</p>
</dd>
<dt><b>Uniformisation des pilotes</b></dt>
<dd>
<p>l'acc&egrave;s aux p&eacute;riph&eacute;riques tels les Baycom,
SCC, PI, PacketTwin et autres a maintenant lieu via une interface
r&eacute;seau usuelle semblable &agrave; celle du gestionnaire
ethernet. Ils n'apparaissent d&eacute;sormais plus comme des TNC
KISS. L'utilitaire <em>net2kiss</em> permet de cr&eacute;er une
interface KISS pour ces p&eacute;riph&eacute;riques si on le
souhaite.</p>
</dd>
<dt><b>bugs</b></dt>
<dd>
<p>il y a eu de nombreuses corrections et des
fonctionnalit&eacute;s ont &eacute;t&eacute; ajout&eacute;es tel le
protocole Rose.</p>
</dd>
</dl>
<h2><a name="ss4.2">4.2 Les outils de configuration du
r&eacute;seau</a></h2>
<p>A pr&eacute;sent que le noyau est compil&eacute;, vous devez
faire de m&ecirc;me avec les nouveaux outils de configuration du
r&eacute;seau. Ces outils permettent de modifier la configuration
des p&eacute;riph&eacute;riques r&eacute;seau et des tables de
routage.</p>
<p>Le nouveau paquetage alpha des <code>net-tools</code> standard
g&egrave;re AX.25 et NetRom. Je l'ai essay&eacute; et il semble
fonctionner correctement chez moi.</p>
<h3>Patch correctif incluant la gestion Rose</h3>
<p>Le paquetage standard net-tools-1.33.tar.gz comporte certains
bugs qui affectent AX.25 et NetRom. J'ai produit un correctif qui
supporte aussi Rose.</p>
<p>Le patch est disponible &agrave; l'adresse suivante&nbsp;:
<a href=
"ftp://zone.pspt.fi/pub/linux/ham/ax25/net-tools-1.33.rose.tjd.diff.gz">
zone.pspt.fi</a>.</p>
<h3>Compilation des net-tools standard</h3>
<p>Lisez le fichier <code>Release</code> et suivez les indications
qui y sont donn&eacute;es. Je suis pass&eacute; par les
&eacute;tapes ci-dessous&nbsp;:</p>
<blockquote>
<pre>
<code># cd /usr/src
# tar xvfz net-tools-1.33.tar.gz
# zcat net-tools-1.33.rose.tjd.diff.gz | patch -p0
# cd net-tools-1.33
# make config
</code>
</pre></blockquote>
<p>Arriv&eacute;s &agrave; ce point, vous devrez r&eacute;pondre
&agrave; une s&eacute;rie de questions de configuration d'une
fa&ccedil;on similaire &agrave; ce qui se fait pour le noyau.
N'oubliez pas d'inclure tous les protocoles et gestionnaires de
p&eacute;riph&eacute;riques dont vous souhaitez vous servir
ult&eacute;rieurement. Dans le doute, r&eacute;pondez par
l'affirmative (``Y'').</p>
<p>Une fois la compilation effectu&eacute;e&nbsp;:</p>
<blockquote>
<pre>
<code># make install
</code>
</pre></blockquote>
installera les programmes &agrave; leur place d&eacute;finitive.
<p>Pour disposer des fonctionnalit&eacute;s de type pare-feu IP
(firewall), vous aurez besoin des derniers outils d'administration
<code>ipfwadm</code>. Ils remplacent <code>ipfw</code> qui ne
fonctionne &agrave; pr&eacute;sent plus.</p>
<p>Pour la compilation d'<code>ipfwadm</code>&nbsp;:</p>
<blockquote>
<pre>
<code># cd /usr/src
# tar xvfz ipfwadm-2.0beta2.tar.gz
# cd ipfwadm-2.0beta2
# make install
# cp ipfwadm.8 /usr/man/man8
# cp ipfw.4 /usr/man/man4
</code>
</pre></blockquote>
<h2><a name="ss4.3">4.3 Utilitaires et applications AX.25</a></h2>
<p>Une fois les &eacute;tapes de compilation et de
red&eacute;marrage du noyau men&eacute;es &agrave; leur terme avec
succ&egrave;s, il vous reste &agrave; compiler les applications
AX.25. Les commandes devraient ressembler &agrave; ce qui
suit&nbsp;:</p>
<blockquote>
<pre>
<code># cd /usr/src
# tax xvfz ax25-utils-2.1.42a.tar.gz
# cd ax25-utils-2.1.42a
# make config
# make
# make install
</code>
</pre></blockquote>
<p>Les fichiers sont install&eacute;s par d&eacute;faut dans les
sous-r&eacute;pertoires <code>bin</code>, <code>sbin</code>,
<code>etc</code> et <code>man</code> du r&eacute;pertoire
<code>/usr</code>.</p>
<p>S'il s'agit de la premi&egrave;re installation des utilitaires
AX.25 sur votre syst&egrave;me, vous devrez installer quelques
fichiers de configuration type dans le r&eacute;pertoire
<code>/etc/ax25/</code> via&nbsp;:</p>
<blockquote>
<pre>
<code># make installconf
</code>
</pre></blockquote>
<p>En cas de messages du type&nbsp;:</p>
<pre>
gcc -Wall -Wstrict-prototypes -O2 -I../lib -c call.c
call.c: In function `statline':
call.c:268: warning: implicit declaration of function `attron'
call.c:268: `A_REVERSE' undeclared (first use this function)
call.c:268: (Each undeclared identifier is reported only once
call.c:268: for each function it appears in.)
</pre>
v&eacute;rifiez encore une fois que les <em>ncurses</em> sont
correctement install&eacute;es. Le script de configuration tente de
localiser les ncurses &agrave; certains emplacements usuels mais
sur des installations faisant n'importe quoi avec les ncurses, le
script &eacute;choue &agrave; cette &eacute;tape.
<h2><a name="s5">5. Num&eacute;ros d'identification, adresses et
pr&eacute;liminaires divers</a></h2>
<p>Chaque port AX.25 et NetRom sur votre syst&egrave;me doit se
voir allouer un num&eacute;ro d'identification (callsign/ssid). Il
se configure dans les fichiers dont il va &ecirc;tre &agrave;
pr&eacute;sent question.</p>
<p>Certaines mises en oeuvre d'AX.25 telles NOS et BPQ permettent
l'emploi d'un ssid commun sur un m&ecirc;me port AX.25 et NetRom.
Pour des raisons techniques assez compliqu&eacute;es, Linux
l'interdit. En pratique, &ccedil;a ne s'av&egrave;re pas un
probl&egrave;me aussi important qu'on pourrait le croire.</p>
<p>Cela signifie que vous devez garder pr&eacute;sents &agrave;
l'esprit certains &eacute;l&eacute;ments lorsque vous configurez
votre syst&egrave;me.</p>
<ol>
<li>Chaque port AX.25 et NetRom doit disposer d'un ssid
unique.</li>
<li>TCP/IP utilise le ssid du port AX.25 par lequel il &eacute;met
ou re&ccedil;oit (celui dont il est question juste au-dessus).</li>
<li>NetRom emploie le ssid sp&eacute;cifi&eacute; dans son fichier
de configuration mais seulement lorsqu'il dialogue avec un autre
NetRom. Il ne s'agit <b>pas</b> du ssid que les clients AX.25 de
votre noeud NetRom vont employer. Davantage de d&eacute;tails sur
ce point tout &agrave; l'heure.</li>
<li>Rose utilise par d&eacute;faut le ssid du port AX.25 &agrave;
moins qu'on ne lui en sp&eacute;cifie explicitement un autre
gr&acirc;ce &agrave; la commande `<em>rsparms</em>' qui forcera le
m&ecirc;me ssid sur <b>tous</b> les ports.</li>
<li>Les autres programmes tels `<em>ax25d</em>' &eacute;coutent via
un ssid quelconque qui n'est soumis &agrave; aucune contrainte
d'unicit&eacute; entre ports diff&eacute;rents.</li>
<li>Si le routage est fait avec attention, vous pouvez affecter la
m&ecirc;me adresse IP &agrave; tous les ports.</li>
</ol>
<h2><a name="ss5.1">5.1 Que sont les T1, T2, N2 ?</a></h2>
<p>Toutes les piles AX.25 ne sont pas de type TNC2. La nomenclature
Linux diff&egrave;re sur certains points de celle du monde des TNC.
Le tableau ci-dessous vous aidera &agrave; &eacute;tablir les
correspondances entre les diff&eacute;rents concepts.</p>
<blockquote>
<pre>
<code>-------+----------+------------------------------------------------
Linux  | TAPR TNC | Description
-------+----------+------------------------------------------------
T1     | FRACK    | Temps d'attente avant retransmission d'une
       |          | trame priv&eacute;e d'accus&eacute; de r&eacute;ception.
-------+----------+------------------------------------------------
T2     | RESPTIME | Temps minimum d'attente entre trames avant 
       |          | &eacute;mission d'un acquittement.
-------+----------+------------------------------------------------
T3     | CHECK    | P&eacute;riodicit&eacute; d'&eacute;mission d'un paquet de
       |          | v&eacute;rification de l'&eacute;tat de la connexion.
-------+----------+------------------------------------------------
N2     | RETRY    | Nombre de tentatives de retransmission avant
       |          | de signaler un &eacute;chec.
-------+----------+------------------------------------------------
Idle   |          | Dur&eacute;e d'inactivit&eacute; d'une connexion avant sa 
       |          | fermeture.
-------+----------+------------------------------------------------
Window | MAXFRAME | Nombre maximal de trames transmises sans
       |          | acquittement.
-------+----------+------------------------------------------------
</code>
</pre></blockquote>
<h2><a name="ss5.2">5.2 Param&egrave;tres configurables
dynamiquement</a></h2>
<p>Les noyaux <code>2.1.*</code> et <code>2.0.* +moduleXX</code>
permettent la modification &agrave; la vol&eacute;e de
param&egrave;tres auparavant statiques. Un examen attentif de la
structure du r&eacute;pertoire <code>/proc/sys/net/</code>
r&eacute;v&egrave;le de nombreux fichiers dont les noms
correspondent &agrave; ceux de param&egrave;tres r&eacute;seau. Les
fichiers dans le r&eacute;pertoire <code>/proc/sys/net/ax25/</code>
repr&eacute;sentent chacun un port AX.25 configur&eacute;. Le nom
du fichier refl&egrave;te celui du port. La structure des fichiers
dans <code>/proc/sys/net/ax25/&lt;portname&gt;/</code> est la
suivante&nbsp;:</p>
<pre>
Fichier               Signification         Valeur                   D&eacute;faut
ip_default_mode       Mode IP par d&eacute;faut    0=DG 1=VC                0
ax25_default_mode     Mode AX.25 par d&eacute;faut 0=normal 1=&eacute;tendu        0
backoff_type          Backoff               0=Lin&eacute;aire 1=exponentiel 1
connect_mode          Mode connect&eacute;         0=non 1=oui              1
standard_window_size  Fen&egrave;tre standard      1  &lt;= N &lt;= 7             2
extended_window_size  Fen&egrave;tre &eacute;tendue       1  &lt;= N &lt;= 63            32
t1_timeout            D&eacute;lai maximal T1      1s &lt;= N &lt;= 30s           10s
t2_timeout            D&eacute;lai maximal T2      1s &lt;= N &lt;= 20s           3s
t3_timeout            D&eacute;lai maximal T3      0s &lt;= N &lt;= 3600s         300s
idle_timeout          Attente d'inactivit&eacute;  0m &lt;= N                  20m
maximum_retry_count   N2                    1  &lt;= N &lt;= 31            10
maximum_packet_length Trame AX.25           1  &lt;= N &lt;= 512           256
</pre>
T1, T2, T3 sont donn&eacute;s en secondes tandis que la
dur&eacute;e d'inactivit&eacute; est en minutes. Notez que les
valeurs employ&eacute;es dans l'interface sysctl s'expriment dans
une unit&eacute; interne multiple par 10 du temps en secondes. La
r&eacute;solution atteint donc le dixi&egrave;me de seconde. Dans
le cas d'une alarme qui peut &ecirc;tre nulle, c'est &agrave; dire
pour T3 et pour la dur&eacute;e d'inactivit&eacute;, une valeur
nulle &eacute;quivaut &agrave; une d&eacute;sactivation.
<p>La structure des fichiers dans
<code>/proc/sys/net/netrom/</code> est la suivante&nbsp;:</p>
<pre>
Fichier                                    Valeur par d&eacute;faut             
default_path_quality                       10
link_fails_count                           2
network_ttl_initialiser                    16
obsolescence_count_initialiser             6
routing_control                            1
transport_acknowledge_delay                50
transport_busy_delay                       1800
transport_maximum_tries                    3
transport_requested_window_size            4
transport_timeout                          1200
</pre>
<p>La structure des fichiers dans <code>/proc/sys/net/rose/</code>
est la suivante&nbsp;:</p>
<pre>
Fichier                                    Valeur par d&eacute;faut
acknowledge_hold_back_timeout              50
call_request_timeout                       2000
clear_request_timeout                      1800
link_fail_timeout                          1200
maximum_virtual_circuits                   50
reset_request_timeout                      1800
restart_request_timeout                    1800
routing_control                            1
window_size                                3
</pre>
<p>Le positionnement d'un param&egrave;tre se fait simplement en
l'&eacute;crivant dans le fichier. Par exemple, pour
v&eacute;rifier puis modifier la taille de fen&ecirc;tre Rose, vous
pourriez ex&eacute;cuter&nbsp;:</p>
<blockquote>
<pre>
<code># cat /proc/sys/net/rose/window_size
3
# echo 4 &gt;/proc/sys/net/rose/window_size
# cat /proc/sys/net/rose/window_size
4
</code>
</pre></blockquote>
<h2><a name="s6">6. Configuration d'un port AX.25</a></h2>
<p>Chaque application AX.25 n&eacute;cessite un fichier de
configuration sp&eacute;cifique pour obtenir les param&egrave;tres
des ports AX.25 d&eacute;finis sur votre syst&egrave;me. Pour les
ports AX.25, il s'agit du fichier <code>/etc/ax25/axport</code>.
Chaque port dont vous souhaitez vous servir doit &ecirc;tre
r&eacute;pertori&eacute; dans ce fichier.</p>
<h2><a name="ss6.1">6.1 Cr&eacute;ation des
p&eacute;riph&eacute;riques AX.25</a></h2>
<p>Le p&eacute;riph&eacute;rique r&eacute;seau correspond &agrave;
ce qui appara&icirc;t lorsque vous entrez la commande
`<em>ifconfig</em>'. Il s'agit de l'abstraction logicielle par le
biais de laquelle le noyau Linux &eacute;met et re&ccedil;oit des
donn&eacute;es r&eacute;seau. Presque tous les
p&eacute;riph&eacute;riques r&eacute;seau sont associ&eacute;s
&agrave; une entit&eacute; mat&eacute;rielle mais il y a certaines
exceptions. Le p&eacute;riph&eacute;rique r&eacute;seau se rattache
directement &agrave; un gestionnaire de
p&eacute;riph&eacute;rique.</p>
<p>Le code AX.25 de Linux inclut un grand nombre de gestionnaires
de p&eacute;riph&eacute;riques. Le pilote KISS est s&ucirc;rement
le plus courant mais on peut &eacute;galement citer les pilotes
SCC, Baycom et modem-son.</p>
<p>Chacun de ces pilotes cr&eacute;e un p&eacute;riph&eacute;rique
lors de son invocation.</p>
<h3>Cr&eacute;ation des p&eacute;riph&eacute;riques KISS</h3>
<p><b>Options de configuration du noyau</b>&nbsp;:</p>
<blockquote>
<pre>
<code>General setup  ---&gt;
    [*] Networking support
Network device support  ---&gt;
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Serial port KISS driver for AX.25
</code>
</pre></blockquote>
<p>Le TNC KISS sur un port s&eacute;rie constitue s&ucirc;rement la
configuration la plus courante. &Agrave; vous de
pr&eacute;configurer et de connecter le TNC &agrave; un port
s&eacute;rie. Un programme de communication tel <em>minicom</em> ou
<em>seyon</em> vous permettra de configurer le TNC en kiss.</p>
<p>Servez-vous du programme <em>kissattach</em> pour cr&eacute;er
les p&eacute;riph&eacute;riques KISS. Par exemple&nbsp;:</p>
<blockquote>
<pre>
<code># /usr/sbin/kissattach /dev/ttyS0 radio
# kissparms -p radio -t 100 -s 100 -r 25
</code>
</pre></blockquote>
<p>Les p&eacute;riph&eacute;riques KISS se retrouvent sous la
d&eacute;nomination `<code>ax[0-9]</code>'. Au premier appel de
<em>kissattach</em>, `<code>ax0</code>' est
cr&eacute;&eacute;&nbsp;; au second, `<code>ax1</code>', etc ...
Chaque p&eacute;riph&eacute;rique KISS est associ&eacute; &agrave;
un port s&eacute;rie.</p>
<p><em>kissparms</em> permet de positionner divers
param&egrave;tres sur un p&eacute;riph&eacute;rique KISS.</p>
<p>De fa&ccedil;on pr&eacute;cise, l'exemple
pr&eacute;c&eacute;dent cr&eacute;erait un
p&eacute;riph&eacute;rique KISS reposant sur le
p&eacute;riph&eacute;rique s&eacute;rie `<code>/dev/ttyS0</code>'
et le port `<code>radio</code>' du fichier
<code>/etc/ax25/axports</code>. Il positionne ensuite
<em>txdelay</em> et <em>slottime</em> &agrave; 100 ms et
<em>ppersist</em> &agrave; 25.</p>
<p>Reportez vous aux pages de <em>man</em> pour davantage
d'informations.</p>
<h3>Configuration des TNC Dual Port</h3>
<p>L'utilitaire <em>mkiss</em> inclus dans le paquetage ax25-utils
permet l'emploi des modems d'un TNC &agrave; doubles ports. La
configuration est simple. Elle consiste &agrave; prendre le
contr&ocirc;le du p&eacute;riph&eacute;rique s&eacute;rie
connect&eacute; au TNC multiports et &agrave; le faire ressembler
&agrave; une collection de p&eacute;riph&eacute;riques chacun
connect&eacute; &agrave; un TNC monoport. Vous devrez le faire
<em>avant</em> toute autre configuration AX.25. Les
p&eacute;riph&eacute;riques que vous configurerez correspondent
&agrave; des pseudo-TTY (<code>/dev/ttyq*</code>) et non aux ports
s&eacute;rie. Les pseudo-TTY mettent en place un &eacute;quivalent
de tuyau via lequel des programmes pr&eacute;vus pour dialoguer
avec des p&eacute;riph&eacute;riques de type tty peuvent
communiquer. Chaque tuyau poss&egrave;de une
extr&eacute;mit&eacute; ma&icirc;tre (`<code>/dev/ptyq*</code>') et
une esclave (`<code>/dev/ttyq*</code>'). Les
extr&eacute;mit&eacute;s sont en relation telles que si
<code>/dev/ptyq0</code> est l'extr&eacute;mit&eacute; ma&icirc;tre
d'un tuyau, alors <code>/dev/ttyq0</code> est son
extr&eacute;mit&eacute; esclave. Le c&ocirc;t&eacute; ma&icirc;tre
doit &ecirc;tre ouvert avant le c&ocirc;t&eacute; esclave.
<em>mkiss</em> divise un p&eacute;riph&eacute;rique s&eacute;rie
gr&acirc;ce &agrave; ce m&eacute;canisme.</p>
<p>Par exemple, pour un TNC double-port connect&eacute; au port
s&eacute;rie <code>/dev/ttyS0</code> en 9600 bps, les commandes
suivantes cr&eacute;eront deux pseudo-tty qui se comporteront comme
des ports s&eacute;ries munis de TNC usuels&nbsp;:</p>
<blockquote>
<pre>
<code># /usr/sbin/mkiss -s 9600 /dev/ttyS0 /dev/ptyq0 /dev/ptyq1
# /usr/sbin/kissattach /dev/ttyq0 port1
# /usr/sbin/kissattach /dev/ttyq1 port2
</code>
</pre></blockquote>
<p><code>/dev/ttyq0</code> et <code>/dev/ttyq1</code> se manipulent
ensuite avec <em>kissattach</em> comme d&eacute;crit
pr&eacute;c&eacute;demment dans l'exemple relatif &agrave;
<code>port1</code> et <code>port2</code>. N'utilisez pas
directement <em>kissattach</em> sur le port s&eacute;rie car
<em>mkiss</em> y acc&egrave;de.</p>
<p><em>mkiss</em> accepte de nombreux arguments optionnels. En
voici un r&eacute;sum&eacute;&nbsp;:</p>
<dl>
<dt><b>-c</b></dt>
<dd>
<p>provoque l'ajout d'un octet de contr&ocirc;le &agrave; chaque
trame KISS. La plupart des mises en oeuvre de KISS ne le
g&egrave;rent pas. La rom KISS G8BPG en est capable.</p>
</dd>
<dt><b>-s &lt;speed&gt;</b></dt>
<dd>
<p>fixe le d&eacute;bit du port s&eacute;rie.</p>
</dd>
<dt><b>-h</b></dt>
<dd>
<p>active la n&eacute;gociation mat&eacute;rielle sur le port
s&eacute;rie (inactive par d&eacute;faut). La plupart des mises en
oeuvre KISS ne la g&egrave;rent pas.</p>
</dd>
<dt><b>-l</b></dt>
<dd>
<p>d&eacute;clenche l'&eacute;mission de messages &agrave;
destination de <em>syslog</em>.</p>
</dd>
</dl>
<h3>Cr&eacute;ation d'un p&eacute;riph&eacute;rique Baycom</h3>
<p><b>Options de compilation du noyau</b>&nbsp;:</p>
<blockquote>
<pre>
<code>Code maturity level options  ---&gt;
    [*] Prompt for development and/or incomplete code/drivers
General setup  ---&gt;
    [*] Networking support
Network device support  ---&gt;
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] BAYCOM ser12 and par96 driver for AX.25
</code>
</pre></blockquote>
<p>Malgr&eacute; l'opinion suivant laquelle les modems Baycom ne
fonctionneraient pas tr&egrave;s bien sous Linux, Thomas
Sailer(<code>&lt;sailer@ife.ee.ethz.ch&gt;</code>) en a
d&eacute;velopp&eacute; le gestionnaire. Son pilote g&egrave;re les
ports s&eacute;rie <code>Ser12</code> et <code>Par96</code> ainsi
que les modems parall&egrave;les <code>PicPar</code>. Vous
trouverez davantage d'informations concernant les modems &agrave;
l'adresse&nbsp;: <a href="http://www.baycom.de/">Baycom Web
site</a>.</p>
<p>La premi&egrave;re &eacute;tape consiste &agrave;
d&eacute;terminer les ports d'entr&eacute;e/sortie et les adresses
des ports s&eacute;rie ou parall&egrave;le auxquels se connecte(nt)
le(s) modem(s).</p>
<p>Les p&eacute;riph&eacute;riques BayCom se retrouvent sous la
d&eacute;nomination <code>bc0</code>, <code>bc1</code>,
<code>bc2</code> etc...</p>
<p>L'utilitaire <em>sethdlc</em> permet de configurer le pilote
avec les param&egrave;tres pr&eacute;c&eacute;dents. Si votre
syst&egrave;me n'est muni que d'un seul modem, vous pouvez
&eacute;galement les passer en argument lors du chargement du
module avec <em>insmod</em>.</p>
<p>Un exemple. D&eacute;sactivation du gestionnaire du port
s&eacute;rie COM1: puis configuration du pilote BayCom pour un
modem s&eacute;rie Ser12 sur ce m&ecirc;me port avec activation de
l'option logicielle DCD&nbsp;:</p>
<blockquote>
<pre>
<code># setserial /dev/ttyS0 uart none
# insmod hdlcdrv
# insmod baycom mode="ser12*" iobase=0x3f8 irq=4
</code>
</pre></blockquote>
<p>Un modem parall&egrave;le de type Par96 sur le port LPT1:
utilisant la d&eacute;tection DCD mat&eacute;rielle&nbsp;:</p>
<blockquote>
<pre>
<code># insmod hdlcdrv
# insmod baycom mode="par96" iobase=0x378 irq=7 options=0
</code>
</pre></blockquote>
<p>Ce n'est pas la meilleure fa&ccedil;on de faire. L'utilitaire
<em>sethdlc</em> fonctionne &eacute;galement avec plusieurs
p&eacute;riph&eacute;riques.</p>
<p>La page de <em>man</em> d'<em>sethdlc</em> est tr&egrave;s
d&eacute;taill&eacute;e mais quelques exemples mettront en
lumi&egrave;re les aspects les plus importants de la configuration.
On suppose que le module BayCom a d&eacute;j&agrave;
&eacute;t&eacute; charg&eacute; avec&nbsp;:</p>
<blockquote>
<pre>
<code># insmod hdlcdrv
# insmod baycom
</code>
</pre></blockquote>
Vous pouvez &eacute;galement avoir incorpor&eacute; le gestionnaire
en dur dans le noyau.
<p>Configuration de <code>bc0</code> pour un modem parall&egrave;le
BayCom sur LPT1 avec d&eacute;tection DCD logicielle&nbsp;:</p>
<blockquote>
<pre>
<code># sethdlc -p -i bc0 mode par96 io 0x378 irq 7
</code>
</pre></blockquote>
<p>Configuration de <code>bc1</code> pour un modem s&eacute;rie sur
COM1&nbsp;:</p>
<blockquote>
<pre>
<code># sethdlc -p -i bc1 mode "ser12*" io 0x3f8 irq 4
</code>
</pre></blockquote>
<h3>Configuration des param&egrave;tres d'acc&egrave;s au canal
AX.25</h3>
<p>Ces param&egrave;tres &eacute;quivalent &agrave; ppersist,
txdelay et slottime pour KISS. Ici aussi, vous utiliserez
<em>sethdlc</em>.</p>
<p>La page de man relative &agrave; <em>sethdlc</em> reste la
source d'informations la plus compl&egrave;te mais un ou deux
autres exemples ne feront pas de mal.</p>
<p>Configuration de <code>bc0</code> avec TxDelay &eacute;gal
&agrave; 200 ms, SlotTime &agrave; 100 ms, PPersist &agrave; 40, en
half duplex&nbsp;:</p>
<blockquote>
<pre>
<code># sethdlc -i bc0 -a txd 200 slot 100 ppersist 40 half
</code>
</pre></blockquote>
Notez que les param&egrave;tres de dur&eacute;e sont donn&eacute;s
en millisecondes.
<h3>Configuration d'AX.25 avec le pilote BayCom</h3>
<p>Le pilote BayCom cr&eacute;e des p&eacute;riph&eacute;riques
r&eacute;seau standard dont la configuration pour AX.25 est voisine
de celle li&eacute;e &agrave; l'emploi des cartes PI ou
PacketTwin.</p>
<p>Tout d'abord il faut donner un num&eacute;ro d'identification
AX.25 au p&eacute;riph&eacute;rique. <em>ifconfig</em> le fait
tr&egrave;s bien&nbsp;:</p>
<blockquote>
<pre>
<code># /sbin/ifconfig bc0 hw ax25 VK2KTJ-15 up
</code>
</pre></blockquote>
La commande pr&eacute;c&eacute;dente affecte l'identit&eacute;
AX.25 <code>VK2KTJ-15</code> au p&eacute;riph&eacute;rique
<code>bc0</code>. Vous disposez &eacute;galement de
<em>axparms</em> mais vous aurez de toute fa&ccedil;on besoin
d'<em>ifconfig</em> pour activer le
p&eacute;riph&eacute;rique&nbsp;:
<blockquote>
<pre>
<code># ifconfig bc0 up
# axparms -setcall bc0 vk2ktj-15
</code>
</pre></blockquote>
<p>L'&eacute;tape suivante consiste &agrave; ajouter une
entr&eacute;e dans le fichier <code>/etc/ax25/axports</code> comme
vous le feriez pour tout autre p&eacute;riph&eacute;rique. Les
donn&eacute;es du fichier <code>axports</code> &eacute;tant
associ&eacute;es aux p&eacute;riph&eacute;riques r&eacute;seau par
l'interm&eacute;diaire du num&eacute;ro d'identification, la ligne
que vous rajouterez devra comprendre celui de votre BayCom.</p>
<p>La nouvelle interface AX.25 se comporte &agrave; pr&eacute;sent
comme les autres. Vous pouvez la configurer pour IP, la
g&eacute;rer via ax25d et l'utiliser pour NetRom ou Rose si bon
vous semble.</p>
<h3>Cr&eacute;ation d'un p&eacute;riph&eacute;rique modem-son</h3>
<p><b>Options de compilation du noyau</b>&nbsp;:</p>
<blockquote>
<pre>
<code>Code maturity level options  ---&gt;
    [*] Prompt for development and/or incomplete code/drivers
General setup  ---&gt;
    [*] Networking support
Network device support  ---&gt;
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Soundcard modem driver for AX.25
    [?] Soundmodem support for Soundblaster and compatible cards
    [?] Soundmodem support for WSS and Crystal cards
    [?] Soundmodem support for 1200 baud AFSK modulation
    [?] Soundmodem support for 4800 baud HAPN-1 modulation
    [?] Soundmodem support for 9600 baud FSK G3RUH modulation
</code>
</pre></blockquote>
Thomas Sailer a d&eacute;velopp&eacute; un nouveau pilote noyau qui
traite une carte son comme un modem&nbsp;: connectez votre
dispositif radio directement sur votre carte son pour
&eacute;mettre des paquets&nbsp;! Thomas conseille au moins un
486DX2 &agrave; 66 MHz pour exploiter le logiciel&nbsp;; tout le
traitement num&eacute;rique est effectu&eacute; par le
microprocesseur.
<p>Actuellement, le pilote &eacute;mule les modems AFSK &agrave;
1200 bps, HAPN &agrave; 4880 et FSK &agrave; 9600 (compatible avec
G3RUH). Seules les cartes son compatibles SoundBlaster et
WindowsSoundSystem sont support&eacute;es. Un soup&ccedil;on
d'&eacute;lectronique est n&eacute;cessaire pour aider la carte son
&agrave; alimenter le dispositif radio. Des informations sur ce
sujet se trouvent sur la page suivante&nbsp;: <a href=
"http://www.ife.ee.ethz.ch/~sailer/pcf/ptt_circ/ptt.html">Thomas's
SoundModem PTT circuit web page</a>. Les possibilit&eacute;s sont
nombreuses&nbsp;: r&eacute;cup&eacute;ration &agrave; la sortie de
la carte son, traitement sur les ports parall&egrave;le,
s&eacute;rie ou midi. Des exemples de sch&eacute;mas illustrent
tout ces cas sur le site de Thomas.</p>
<p>Les p&eacute;riph&eacute;riques modem-son se retrouvent sous la
d&eacute;nomination <code>sm0</code>, <code>sm1</code>,
<code>sm2</code>, etc...</p>
<p><b>Remarque</b>: le pilote SoundModem et le sous-syst&egrave;me
de gestion du son entrent en comp&eacute;tition sous Linux.
Assurez-vous que le son est d&eacute;sactiv&eacute; avant
d'utiliser le pilote SoundModem. Vous pouvez bien s&ucirc;r
compiler les deux en tant que modules, les ins&eacute;rer et les
&ocirc;ter en fonction de vos besoins.</p>
<h3>Configuration de la carte son</h3>
<p>Le pilote SoundModem n'initialise pas la carte r&eacute;seau. Le
paquetage ax25-utils comprend l'utilitaire `<em>setcrystal</em>'
pour le faire sur les cartes son &agrave; base de composants
Crystal. Si vous avez un autre mod&egrave;le de carte, servez-vous
d'un autre logiciel pour l'initialiser. L'emploi de setcrystal est
fort simple&nbsp;:</p>
<blockquote>
<pre>
<code>setcrystal [-w wssio] [-s sbio] [-f synthio] [-i irq] [-d dma] [-c dma2]
</code>
</pre></blockquote>
Par exemple, pour une carte SoundBlaster &agrave; l'adresse 0x388
employant l'interruption 10 et la canal DMA 1, vous
entreriez&nbsp;:
<blockquote>
<pre>
<code># setcrystal -s 0x388 -i 10 -d 1
</code>
</pre></blockquote>
Pour une carte WindowSoundSystem &agrave; l'adresse 0x534 employant
l'interruption 5 et la canal DMA 3&nbsp;:
<blockquote>
<pre>
<code># setcrystal -w 0x534 -i 5 -d 3
</code>
</pre></blockquote>
<p>Le param&egrave;tre <code>[-f synthio]</code> correspond
&agrave; l'adresse du synth&eacute;tiseur. Le param&egrave;tre
<code>[-c dma2]</code> d&eacute;termine le second canal DMA pour un
fonctionnement simultan&eacute; dans les deux sens
(full-duplex).</p>
<h3>Configuration des p&eacute;riph&eacute;riques modem-son</h3>
<p>Une fois la carte son configur&eacute;e, vous devez
sp&eacute;cifier au pilote o&ugrave; la trouver et quelle type de
modem il lui faut &eacute;muler.</p>
<p>L'utilitaire <em>sethdlc</em> vous permet de passer ces
param&egrave;tres. Si vous n'avez qu'une seule carte
install&eacute;e, vous pouvez les passer en arguments &agrave;
l'insertion du module SoundModem.</p>
<p>Par exemple, avec une seule carte de type SoundBlaster
configur&eacute;e comme ci-dessus, &eacute;mulant un modem 1200
bps&nbsp;:</p>
<blockquote>
<pre>
<code># insmod hdlcdrv
# insmod soundmodem mode="sbc:afsk1200" iobase=0x220 irq=5 dma=1
</code>
</pre></blockquote>
Ce n'est pas la meilleure fa&ccedil;on de faire. L'utilitaire
<em>sethdlc</em> fonctionne &eacute;galement avec plusieurs
p&eacute;riph&eacute;riques.
<p>La page de <em>man</em> d'<em>sethdlc</em> est tr&egrave;s
d&eacute;taill&eacute;e mais quelques exemples mettront ici encore
en lumi&egrave;re les aspects les plus importants de la
configuration. On suppose que le module modem-son a
d&eacute;j&agrave; &eacute;t&eacute; charg&eacute; avec&nbsp;:</p>
<blockquote>
<pre>
<code># insmod hdlcdrv
# insmod soundmodem
</code>
</pre></blockquote>
Vous pouvez &eacute;galement avoir incorpor&eacute; le gestionnaire
en dur dans le noyau.
<p>Configuration du pilote pour &eacute;muler un modem G3RUH 9600
sur le p&eacute;riph&eacute;rique <code>sm0</code> avec la carte
WindowsSoundSystem pr&eacute;c&eacute;dente et le port
parall&egrave;le en 0x378 pour alimenter
l'&eacute;metteur&nbsp;:</p>
<blockquote>
<pre>
<code># sethdlc -p -i sm0 mode wss:fsk9600 io 0x534 irq 5 dma 3 pario 0x378
</code>
</pre></blockquote>
Configuration du pilote pour &eacute;muler un modem HAPN 4800 sur
le p&eacute;riph&eacute;rique <code>sm1</code> avec la carte
SoundBlaster pr&eacute;c&eacute;dente et le port s&eacute;rie en
0x2f8 pour alimenter l'&eacute;metteur&nbsp;:
<blockquote>
<pre>
<code># sethdlc -p -i sm1 mode sbc:hapn4800 io 0x388 irq 10 dma 1 serio 0x2f8
</code>
</pre></blockquote>
Configuration du pilote pour &eacute;muler un modem AFS 1200 sur le
p&eacute;riph&eacute;rique <code>sm1</code> avec la carte
SoundBlaster pr&eacute;c&eacute;dente et le port s&eacute;rie en
0x2f8 pour alimenter l'&eacute;metteur&nbsp;:
<blockquote>
<pre>
<code># sethdlc -p -i sm1 mode sbc:afsk1200 io 0x388 irq 10 dma 1 serio 0x2f8
</code>
</pre></blockquote>
<h3>Configuration des param&egrave;tres d'acc&egrave;s au canal
AX.25</h3>
<p>Ces param&egrave;tres &eacute;quivalent &agrave; ppersist,
txdelay et slottime pour KISS. Ici aussi, vous utiliserez
<em>sethdlc</em>.</p>
<p>La page de man relative &agrave; <em>sethdlc</em> reste la
source d'informations la plus compl&egrave;te mais un ou deux
autres exemples ne feront toujours pas de mal.</p>
<p>Configuration de <code>sm0</code> avec TxDelay &eacute;gal
&agrave; 100 ms, SlotTime &agrave; 50 ms, PPersist &agrave; 128 en
full duplex&nbsp;:</p>
<blockquote>
<pre>
<code># sethdlc -i sm0 -a txd 100 slot 50 ppersist 128 full
</code>
</pre></blockquote>
Notez que les param&egrave;tres de dur&eacute;e sont donn&eacute;s
en millisecondes.
<h3>Choix du volume et ajustement du pilote</h3>
<p>Il est <em>tr&egrave;s</em> important que les niveaux audio
soient correctement ajust&eacute;s pour qu'un modem-radio
fonctionne correctement. Les modem-son n'&eacute;chappent pas
&agrave; la r&egrave;gle. Thomas a mis au point des utilitaires
pour faciliter cette t&acirc;che&nbsp;: <em>smdiag</em> et
<em>smmixer</em>.</p>
<dl>
<dt><b><em>smdiag</em></b></dt>
<dd>
<p>fournit deux type d'affichage&nbsp;: soit un &eacute;cran de
type oscilloscope, soit un visuel normal.</p>
</dd>
<dt><b><em>smmixer</em></b></dt>
<dd>
<p>permet l'ajustement des niveaux audio de transmission et de
r&eacute;ception.</p>
</dd>
</dl>
<em>smdiag</em> en mode 'visuel' avec un p&eacute;riph&eacute;rique
SoundModem en <code>sm0</code>&nbsp;:
<blockquote>
<pre>
<code># smdiag -i sm0 -e
</code>
</pre></blockquote>
<em>smmixer</em> avec un p&eacute;riph&eacute;rique SoundModem en
<code>sm0</code>&nbsp;:
<blockquote>
<pre>
<code># smmixer -i sm0
</code>
</pre></blockquote>
<h3>Configuration d'AX.25 avec le pilote SoundModem</h3>
<p>Le pilote soundmodem cr&eacute;e des p&eacute;riph&eacute;riques
r&eacute;seau standard dont la configuration pour AX.25 est voisine
de celle li&eacute;e &agrave; l'emploi des cartes PI ou
PacketTwin.</p>
<p>Tout d'abord il faut donner un num&eacute;ro d'identification
AX.25 au p&eacute;riph&eacute;rique. <em>ifconfig</em> le fait
tr&egrave;s bien&nbsp;:</p>
<blockquote>
<pre>
<code># /sbin/ifconfig sm0 hw ax25 VK2KTJ-15 up
</code>
</pre></blockquote>
La commande pr&eacute;c&eacute;dente affecte l'identit&eacute;
AX.25 <code>VK2KTJ-15</code> au p&eacute;riph&eacute;rique
<code>sm0</code>. Vous disposez &eacute;galement de
<em>axparms</em> mais vous aurez de toute fa&ccedil;on besoin
d'<em>ifconfig</em> pour activer le
p&eacute;riph&eacute;rique&nbsp;:
<blockquote>
<pre>
<code># ifconfig sm0 up
# axparms -setcall sm0 vk2ktj-15
</code>
</pre></blockquote>
<p>L'&eacute;tape suivante consiste &agrave; ajouter une
entr&eacute;e dans le fichier <code>/etc/ax25/axports</code> comme
vous le feriez pour tout autre p&eacute;riph&eacute;rique. Les
donn&eacute;es du fichier <code>axports</code> &eacute;tant
associ&eacute;es aux p&eacute;riph&eacute;riques r&eacute;seau par
l'interm&eacute;diaire du num&eacute;ro d'identification, la ligne
que vous rajouterez devra comprendre celui de votre modem-son.</p>
<p>La nouvelle interface AX.25 se comporte &agrave; pr&eacute;sent
comme les autres. Vous pouvez la configurer pour IP, la
g&eacute;rer via ax25d et l'utiliser pour NetRom ou Rose si bon
vous semble.</p>
<h3>Cr&eacute;ation d'un p&eacute;riph&eacute;rique &agrave; base
de carte PI</h3>
<p><b>Options de compilation du noyau</b>&nbsp;:</p>
<blockquote>
<pre>
<code>General setup  ---&gt;
    [*] Networking support
Network device support  ---&gt;
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Ottawa PI and PI/2 support for AX.25
</code>
</pre></blockquote>
<p>Les p&eacute;riph&eacute;riques PI se retrouvent sous la
d&eacute;nomination `<code>pi[0-9][ab]</code>' o&ugrave; la
premi&egrave;re carte d&eacute;tect&eacute;e se verra allouer
`<code>pi0</code>', la seconde `<code>pi1</code>', etc...
`<code>a</code>' et `<code>b</code>' se rapportent &agrave; la
premi&egrave;re et &agrave; la seconde interface physique des
cartes PI. Si vous avez inclus le pilote de cartes PI dans votre
noyau et que la d&eacute;tection s'est effectu&eacute;e
correctement, vous pouvez configurer le
p&eacute;riph&eacute;rique&nbsp;:</p>
<blockquote>
<pre>
<code># /sbin/ifconfig pi0a hw ax25 VK2KTJ-15 up
</code>
</pre></blockquote>
<p>La commande pr&eacute;c&eacute;dente affecte l'identit&eacute;
AX.25 <code>VK2KTJ-15</code> au premier port de la carte PI et
l'active. Pour utiliser le p&eacute;riph&eacute;rique, il vous
reste &agrave; ajouter au fichier <code>/etc/ax25/axports</code>
l'entr&eacute;e correspondant &agrave; son identit&eacute;
AX.25.</p>
<p>Le gestionnaire de cartes PI a &eacute;t&eacute; &eacute;crit
par&nbsp;: <code>David Perry,
&lt;dp@hydra.carleton.edu&gt;</code></p>
<h3>Cr&eacute;ation d'un p&eacute;riph&eacute;rique PacketTwin</h3>
<p><b>Options de compilation du noyau</b>&nbsp;:</p>
<blockquote>
<pre>
<code>General setup  ---&gt;
    [*] Networking support
Network device support  ---&gt;
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Gracilis PackeTwin support for AX.25 
</code>
</pre></blockquote>
<p>Les p&eacute;riph&eacute;riques PacketTwin se retrouvent sous la
d&eacute;nomination `<code>pt[0-9][ab]</code>' o&ugrave; la
premi&egrave;re carte d&eacute;tect&eacute;e se verra allouer
`<code>pt0</code>', la seconde `<code>pt1</code>', etc.
`<code>a</code>' et `<code>b</code>' se rapportent &agrave; la
premi&egrave;re et &agrave; la seconde interfaces physiques des
cartes PacketTwin. Si vous avez inclus le pilote de cartes PI dans
votre noyau et que la d&eacute;tection s'est effectu&eacute;e
correctement, vous pouvez configurer le
p&eacute;riph&eacute;rique&nbsp;:</p>
<blockquote>
<pre>
<code># /sbin/ifconfig pt0a hw ax25 VK2KTJ-15 up
</code>
</pre></blockquote>
<p>La commande pr&eacute;c&eacute;dente affecte l'identit&eacute;
AX.25 <code>VK2KTJ-15</code> au premier port de la carte PacketTwin
et l'active. Pour utiliser le p&eacute;riph&eacute;rique, il vous
reste &agrave; ajouter au fichier <code>/etc/ax25/axports</code>
l'entr&eacute;e correspondant &agrave; son identit&eacute;
AX.25.</p>
<p>Le gestionnaire de cartes PacketTwin a &eacute;t&eacute;
&eacute;crit par&nbsp;: <code>Craig Small VK2XLZ,
&lt;csmall@triode.apana.org.au&gt;</code>.</p>
<h3>Cr&eacute;ation d'un p&eacute;riph&eacute;rique SCC
g&eacute;n&eacute;rique</h3>
<p><b>Options de compilation du noyau</b>&nbsp;:</p>
<blockquote>
<pre>
<code>General setup  ---&gt;
    [*] Networking support
Network device support  ---&gt;
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Z8530 SCC KISS emulation driver for AX.25
</code>
</pre></blockquote>
<p>Joerg Reuter, DL1BKE, <code>jreuter@poboxes.com</code> a
&eacute;crit le module g&eacute;n&eacute;rique de gestion des
cartes &agrave; base de SCC Z8530. Son pilote supporte une large
gamme de cartes diff&eacute;rentes et offre une interface similaire
&agrave; un TNC KISS que vous pouvez traiter comme telle.</p>
<h3>R&eacute;cup&eacute;ration et compilation des outils de
configuration</h3>
<p>Bien que le pilote soit inclus dans les arborescences standard
du noyau, Joerg accompagne le paquetage de configuration dont vous
aurez besoin des versions les plus r&eacute;centes.</p>
<p>Vous trouverez le paquetage des outils de configuration &agrave;
une des adresses suivantes&nbsp;: <a href=
"http://www.rat.de/jr/">Joerg's web page</a></p>
<p><b>db0bm.automation.fh-aachen.de</b></p>
<blockquote>
<pre>
<code>/incoming/dl1bke/
</code>
</pre></blockquote>
<p><b>insl1.etec.uni-karlsruhe.de</b></p>
<blockquote>
<pre>
<code>/pub/hamradio/linux/z8530/
</code>
</pre></blockquote>
<p><b>ftp.ucsd.edu</b></p>
<blockquote>
<pre>
<code>/hamradio/packet/tcpip/linux
/hamradio/packet/tcpip/incoming/
</code>
</pre></blockquote>
<p>Diff&eacute;rentes versions s'offrent &agrave; vous. Choisissez
la plus adapt&eacute;e &agrave; votre noyau&nbsp;:</p>
<pre>
z8530drv-2.4a.dl1bke.tar.gz   2.0.*
z8530drv-utils-3.0.tar.gz    2.1.6 et au del&agrave; 
</pre>
<p>Voici les commandes que j'ai employ&eacute;es lors de la
compilation et de l'installation du paquetage pour mon noyau
2.0.30&nbsp;:</p>
<blockquote>
<pre>
<code># cd /usr/src
# gzip -dc z8530drv-2.4a.dl1bke.tar.gz | tar xvpofz -
# cd z8530drv
# make clean
# make dep
# make module         # Si vous souhaitez modulariser le pilote
# make for_kernel     # Si vous pr&eacute;f&eacute;rez un pilote inclus dans le noyau
# make install
</code>
</pre></blockquote>
<p>Au terme de ces op&eacute;rations, trois nouveaux
ex&eacute;cutables devraient s'&ecirc;tre install&eacute;s dans
votre r&eacute;pertoire <code>/sbin</code>&nbsp;: <em>gencfg</em>,
<em>sccinit</em> et <em>sccstat</em>. Ces programmes vont vous
servir &agrave; configurer le pilote pour votre carte.</p>
<p>De nouveaux p&eacute;riph&eacute;riques appara&icirc;tront
&eacute;galement dans votre r&eacute;pertoire <code>/dev</code>
sous les noms <code>scc0</code>-<code>scc7</code>. Ils joueront
plus tard le r&ocirc;le de p&eacute;riph&eacute;riques KISS que
vous pourrez employer.</p>
<p>Si vous lancez 'make for_kernel', vous devrez &eacute;galement
recompiler votre noyau. Afin que le pilote z8530 soit inclus,
v&eacute;rifiez que vous avez bien r&eacute;pondu `<code>Y</code>'
&agrave;&nbsp;: `<code>Z8530 SCC kiss emulation driver for
AX.25</code>' durant le `<code>make config</code>'.</p>
<p>Si vous avez choisi 'make module', le module <code>scc.o</code>
sera install&eacute; dans le sous-r&eacute;pertoire ad&eacute;quat
de <code>/lib/modules</code> et il ne vous sera pas
n&eacute;cessaire de recompiler tout le noyau. N'oubliez pas
d'ex&eacute;cuter un <em>insmod</em> afin de charger le module
avant d'essayer de le configurer.</p>
<h3>Configurer le pilote pour sa carte</h3>
<p>La conception du pilote SCC z8530 vise une flexibilit&eacute;
maximale ainsi que la gestion du plus grand nombre de cartes
possible. Le prix &agrave; payer se retrouve au niveau de la
configuration.</p>
<p>Le paquetage comprend une documentation plus
d&eacute;taill&eacute;e et vous aurez tout int&eacute;r&ecirc;t
&agrave; vous y reporter si vous rencontrez le moindre
probl&egrave;me. Int&eacute;ressez-vous plus
particuli&egrave;rement &agrave; <code>doc/scc_eng.doc</code> et
&agrave; <code>doc/scc_ger.doc</code>. J'ai repris les points les
plus importants mais de nombreux d&eacute;tails sont pass&eacute;s
sous silence.</p>
<p>Le fichier de configuration principal, lu par le programme
<em>sccinit</em>, se trouve en <code>/etc/z8530drv.conf</code>. Il
se divise en deux parties&nbsp;: configuration des
param&egrave;tres mat&eacute;riels et configuration du canal. Une
fois ce fichier au point, vous n'aurez plus qu'&agrave;
ajouter&nbsp;:</p>
<blockquote>
<pre>
<code># sccinit
</code>
</pre></blockquote>
au fichier <code>rc</code> charg&eacute; de la configuration du
r&eacute;seau et le p&eacute;riph&eacute;rique sera
initialis&eacute; conform&eacute;ment au contenu du fichier de
configuration. Effectuez ces op&eacute;rations avant d'utiliser le
gestionnaire.
<h3>Configuration des param&egrave;tres mat&eacute;riels</h3>
<p>La premi&egrave;re partie se divise en strophes, chacune
correspondant &agrave; un composant 8530. Une strophe comprend une
liste de mots clefs et d'arguments. Le fichier peut d&eacute;crire
jusqu'&agrave; quatre composants SCC par d&eacute;faut. Si vous
avez besoin d'aller au-del&agrave;, modifiez la ligne <code>#define
MAXSCC 4</code> dans le fichier <code>scc.c</code>.</p>
<p>Liste des mots-clefs et des arguments&nbsp;:</p>
<dl>
<dt><b>chip</b></dt>
<dd>
<p>le terme <code>chip</code> sert &agrave; s&eacute;parer les
strophes. Il ne n&eacute;cessite pas d'arguments et ceux-ci sont de
toute fa&ccedil;on ignor&eacute;s.</p>
</dd>
<dt><b>data_a</b></dt>
<dd>
<p>adresse du port de donn&eacute;es pour le canal `A' du z8530. Un
nombre hexad&eacute;cimal est attendu en argument (par exemple
0x300).</p>
</dd>
<dt><b>ctrl_a</b></dt>
<dd>
<p>adresse du port de contr&ocirc;le pour le canal `A' du z8530. Un
nombre hexad&eacute;cimal est attendu en argument (par exemple
0x304).</p>
</dd>
<dt><b>data_b</b></dt>
<dd>
<p>adresse du port de donn&eacute;es pour le canal `B' du z8530. Un
nombre hexad&eacute;cimal est attendu en argument (par exemple
0x301).</p>
</dd>
<dt><b>ctrl_b</b></dt>
<dd>
<p>adresse du port de contr&ocirc;le pour le canal `B' du z8530. Un
nombre hexad&eacute;cimal est attendu en argument (par exemple
0x305).</p>
</dd>
<dt><b>irq</b></dt>
<dd>
<p>interruption (IRQ) utilis&eacute;e par le SCC 8530. Un entier, 5
par exemple, est attendu.</p>
</dd>
<dt><b>pclock</b></dt>
<dd>
<p>fr&eacute;quence du signal d'horloge sur la broche PCLK du 8530.
L'argument est donn&eacute; en Hz par un nombre entier (4915200 par
d&eacute;faut).</p>
</dd>
<dt><b>board</b></dt>
<dd>
<p>mod&egrave;le de la munie du 8530&nbsp;: &lt;&lt;====== ne
manque-t-il pas un mot ?</p>
<dl>
<dt><b>PA0HZP</b></dt>
<dd>
<p>carte SCC PA0HZP</p>
</dd>
<dt><b>EAGLE</b></dt>
<dd>
<p>carte Eagle</p>
</dd>
<dt><b>PC100</b></dt>
<dd>
<p>carte SCC PC100 DRSI</p>
</dd>
<dt><b>PRIMUS</b></dt>
<dd>
<p>carte PRIMUS-PC (DG9BL)</p>
</dd>
<dt><b>BAYCOM</b></dt>
<dd>
<p>carte (U)SCC BayCom</p>
</dd>
</dl>
</dd>
<dt><b>escc</b></dt>
<dd>
<p>optionnel, active la gestion des cartes SCC &eacute;tendues
(ESCC) telles la 8580, la 85180 ou la 85280. L'argument est une
cha&icirc;ne de caract&egrave;res qui peut prendre les valeurs
`yes' ou `no' (`no' par d&eacute;faut).</p>
</dd>
<dt><b>vector</b></dt>
<dd>
<p>optionnel, donne l'adresse du vecteur d'acquittement pour les
cartes PA0HZP. Il est commun &agrave; l'ensemble des composants et
prend par d&eacute;faut la valeur nulle.</p>
</dd>
<dt><b>special</b></dt>
<dd>
<p>optionnel, donne l'adresse du registre sp&eacute;cial sur
diverses cartes. Nul par d&eacute;faut.</p>
</dd>
<dt><b>option</b></dt>
<dd>
<p>optionnel. Nul par d&eacute;faut.</p>
</dd>
</dl>
<p>Quelques exemples de configuration des cartes les plus
courantes&nbsp;:</p>
<dl>
<dt><b>BayCom USCC</b></dt>
<dd>
<blockquote>
<pre>
<code>chip    1
data_a  0x300
ctrl_a  0x304
data_b  0x301
ctrl_b  0x305
irq     5
board   BAYCOM
#
# SCC chip 2
#
chip    2
data_a  0x302
ctrl_a  0x306
data_b  0x303
ctrl_b  0x307
board   BAYCOM
    
</code>
</pre></blockquote>
</dd>
<dt><b>PA0HZP SCC card</b></dt>
<dd>
<blockquote>
<pre>
<code>chip 1
data_a 0x153
data_b 0x151
ctrl_a 0x152
ctrl_b 0x150
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no
#
#
#
chip 2
data_a 0x157
data_b 0x155
ctrl_a 0x156
ctrl_b 0x154
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no
    
</code>
</pre></blockquote>
</dd>
<dt><b>DRSI SCC card</b></dt>
<dd>
<blockquote>
<pre>
<code>chip 1
data_a 0x303
data_b 0x301
ctrl_a 0x302
ctrl_b 0x300
irq 7
pclock 4915200
board DRSI
escc no
    
</code>
</pre></blockquote>
</dd>
</dl>
Si vous disposez d&eacute;j&agrave; d'une configuration qui
fonctionne avec votre carte sous NOS, la commande <em>gencfg</em>
permet de convertir les commandes du pilote NOS PE1CHL en quelque
chose d'utilisable pour le pilote z8530.
<p><em>gencfg</em> s'invoque simplement avec les m&ecirc;mes
param&egrave;tres que ceux employ&eacute;s pour le pilote PE1CHL
avec NET/NOS. Par exemple, pour obtenir une &eacute;bauche de
fichier de configuration pour une carte OptopSCC&nbsp;:</p>
<blockquote>
<pre>
<code># gencfg 2 0x150 4 2 0 1 0x168 9 4915200
</code>
</pre></blockquote>
<h3>Configuration du canal</h3>
<p>Vous pr&eacute;ciserez tous les autres param&egrave;tres
relatifs au port que vous configurez dans la section
sp&eacute;cifique au canal. Cette section se divise
&eacute;galement en strophes. Une strophe correspond &agrave; un
port logique et il y aura donc deux strophes de canal pour une
strophe de param&egrave;tres mat&eacute;riels puisque chaque SCC
8530 inclut deux ports.</p>
<p>Les mots-clefs et leurs arguments s'inscrivent &eacute;galement
dans le fichier <code>/etc/z8530drv.conf</code>, <b>&agrave; la
suite</b> de la section des param&egrave;tres mat&eacute;riels.</p>
<p>L'ordre est tr&egrave;s important dans cette section mais tout
devrait marcher m&ecirc;me si vous vous &eacute;cartez de celui
propos&eacute;.</p>
<dl>
<dt><b>device</b></dt>
<dd>
<p>en premi&egrave;re position, sp&eacute;cifie le nom du
p&eacute;riph&eacute;rique auquel le reste de la configuration
s'applique (par exemple <code>/dev/scc0</code>)</p>
</dd>
<dt><b>speed</b></dt>
<dd>
<p>d&eacute;bit de l'interface en bits par seconde. Un nombre
entier est attendu (par exemple <code>1200</code>)</p>
</dd>
<dt><b>clock</b></dt>
<dd>
<p>origine de l'horloge de synchronisation des donn&eacute;es. Les
valeurs possibles sont&nbsp;:</p>
<dl>
<dt><b>dpll</b></dt>
<dd>
<p>fonctionnement normal monodirectionnel (half-duplex)&nbsp;;</p>
</dd>
<dt><b>external</b></dt>
<dd>
<p>le modem dispose de sa propre horloge Rx/Tx&nbsp;;</p>
</dd>
<dt><b>divider</b></dt>
<dd>
<p>utilisation du diviseur bidirectionnel (si disponible).</p>
</dd>
</dl>
</dd>
<dt><b>mode</b></dt>
<dd>
<p>type de codage des donn&eacute;es. &Agrave; choisir entre
<code>nrzi</code> et <code>nrz</code></p>
</dd>
<dt><b>rxbuffers</b></dt>
<dd>
<p>nombre de tampons de r&eacute;ception &agrave; allouer en
m&eacute;moire. Un nombre entier est attendu (8 par exemple)</p>
</dd>
<dt><b>txbuffers</b></dt>
<dd>
<p>nombre de tampons d'&eacute;mission &agrave; allouer en
m&eacute;moire. Un nombre entier est attendu (8 par exemple )</p>
</dd>
<dt><b>bufsize</b></dt>
<dd>
<p>taille des tampons d'&eacute;mission et de r&eacute;ception. La
valeur est donn&eacute;e en octets et correspond &agrave; la
longueur totale d'une trame. Elle doit donc prendre en compte aussi
bien les donn&eacute;es que l'en-t&ecirc;te. Cet argument est
optionnel et prend par d&eacute;faut la valeur <code>384</code></p>
</dd>
<dt><b>txdelay</b></dt>
<dd>
<p>d&eacute;lai d'attente de la transmission KISS. Un nombre entier
de ms est attendu</p>
</dd>
<dt><b>persist</b></dt>
<dd>
<p>param&egrave;tre persist (KISS). Argument de type entier</p>
</dd>
<dt><b>slot</b></dt>
<dd>
<p>slot time (KISS). Argument de type entier en ms</p>
</dd>
<dt><b>tail</b></dt>
<dd>
<p>the KISS transmit tail value. Argument entier en ms</p>
</dd>
<dt><b>fulldup</b></dt>
<dd>
<p>indicateur de fonctionnement bidirectionnel (KISS), &agrave;
choisir entre <code>1</code> pour le bidirectionnel et
<code>0</code> pour le monodirectionnel</p>
</dd>
<dt><b>wait</b></dt>
<dd>
<p>param&egrave;tre d'attente (KISS). Argument de type entier en
ms</p>
</dd>
<dt><b>min</b></dt>
<dd>
<p>param&egrave;tre min (KISS). Argument de type entier en
secondes</p>
</dd>
<dt><b>maxkey</b></dt>
<dd>
<p>temps de keyup (?) maximal (KISS). Argument de type entier en
secondes</p>
</dd>
<dt><b>idle</b></dt>
<dd>
<p>d&eacute;lai d'attente sur inactivit&eacute; (KISS). Argument de
type entier en secondes</p>
</dd>
<dt><b>maxdef</b></dt>
<dd>
<p>param&egrave;tre maxdef (KISS). Argument de type entier</p>
</dd>
<dt><b>group</b></dt>
<dd>
<p>param&egrave;tre group (KISS). Argument de type entier</p>
</dd>
<dt><b>txoff</b></dt>
<dd>
<p>valeur de txoff (KISS). Argument de type entier en ms</p>
</dd>
<dt><b>softdcd</b></dt>
<dd>
<p>valeur de softdcd (KISS). Argument de type entier</p>
</dd>
<dt><b>slip</b></dt>
<dd>
<p>indicateur slip (KISS). Argument de type entier</p>
</dd>
</dl>
<h3>Utilisation du pilote</h3>
<p>Il suffit d'employer les p&eacute;riph&eacute;riques
<code>/dev/scc*</code> comme on le ferait avec n'importe quel tty
s&eacute;rie connect&eacute; &agrave; un TNC KISS. Par exemple,
avec une carte SCC, vous ex&eacute;cuteriez quelque chose du
style&nbsp;:</p>
<blockquote>
<pre>
<code># kissattach -s 4800 /dev/scc0 VK2KTJ
</code>
</pre></blockquote>
<p>NOS permet &eacute;galement d'attacher le
p&eacute;riph&eacute;rique de la m&ecirc;me fa&ccedil;on. Avec
JNOS, vous entreriez une commande du style&nbsp;:</p>
<blockquote>
<pre>
<code>attach asy scc0 0 ax25 scc0 256 256 4800
</code>
</pre></blockquote>
<h3>Les outils <em>sccstat</em> et <em>sccparam</em></h3>
<p>Afin de diagnostiquer les probl&egrave;mes, <em>sccstat</em>
affiche la configuration courante de n'importe quel
p&eacute;riph&eacute;rique SCC. Essayez&nbsp;:</p>
<blockquote>
<pre>
<code># sccstat /dev/scc0
</code>
</pre></blockquote>
Vous devriez r&eacute;cup&eacute;rer une quantit&eacute;
impressionnante d'informations touchant &agrave; la configuration
et &agrave; l'&eacute;tat du port SCC <code>/dev/scc0</code>.
<p><em>sccparam</em> sert &agrave; modifier la configuration
apr&egrave;s l'initialisation du noyau. La syntaxe est similaire
&agrave; celle de la commande <code>param</code> de NOS. Pour
positionner <code>txtail</code> &agrave; 100 ms sur un
port&nbsp;:</p>
<blockquote>
<pre>
<code># sccparam /dev/scc0 txtail 0x8
</code>
</pre></blockquote>
<h3>Cr&eacute;ation d'un p&eacute;riph&eacute;rique BPQ</h3>
<p><b>Options de configuration du noyau</b>&nbsp;:</p>
<blockquote>
<pre>
<code>                                                                 
General setup  ---&gt;                                                         
    [*] Networking support                                                  
Network device support  ---&gt;                                                    
    [*] Network device support                                              
    ...                                                                         
    [*] Radio network interfaces    
    [*] BPQ Ethernet driver for AX.25
</code>
</pre></blockquote>
<p>Linux g&egrave;re le BPQ compatible Ethernet. Vous pouvez ainsi
dialoguer en AX.25 via un r&eacute;seau Ethernet local et
interconnecter votre poste Linux avec d'autres machines BPQ sur
r&eacute;seau local.</p>
<p>Les p&eacute;riph&eacute;riques BPQ se retrouvent sous la
d&eacute;nomination `<code>bpq[0-9]</code>'. `<code>bpq0</code>'
est associ&eacute; &agrave; `<code>eth0</code>',
`<code>bpq1</code>' &agrave; `<code>eth1</code>' etc.</p>
<p>La configuration est simple. Mettez d'abord en place un
p&eacute;riph&eacute;rique Ethernet standard. Pour cela, vous aurez
pris soin d'inclure dans le noyau la gestion de votre adaptateur
Ethernet. Pour plus de d&eacute;tails, reportez vous
&agrave;&nbsp;: <a href=
"Ethernet-HOWTO.html">Ethernet-HOWTO</a>.</p>
<p>Avant d'activer la gestion BPQ, le p&eacute;riph&eacute;rique
Ethernet doit s'&ecirc;tre vu affecter un num&eacute;ro
d'identification AX.25. Par exemple&nbsp;:</p>
<blockquote>
<pre>
<code># /sbin/ifconfig bpq0 hw ax25 vk2ktj-14 up
</code>
</pre></blockquote>
<p>V&eacute;rifiez bien que l'identifiant correspond &agrave; celui
qui figure dans le fichier <code>/etc/ax25/axports</code> pour ce
port.</p>
<h3>Configuration d'un noeud BPQ pour le dialogue avec la couche
AX.25 de Linux</h3>
<p>Souvent, l'Ethernet BPQ repose sur des adresses de type
multicast. Ce n'est pas le cas dans la mise en oeuvre sous Linux
qui recourt aux adresses g&eacute;n&eacute;rales (broadcast)
usuelles sur Ethernet. Le fichier NET.CFG du gestionnaire ODI BPQ
doit donc &ecirc;tre modifi&eacute; pour ressembler &agrave; ce qui
suit&nbsp;:</p>
<blockquote>
<pre>
<code>LINK SUPPORT

        MAX STACKS 1
        MAX BOARDS 1

LINK DRIVER E2000                    ; ou tout autre MLID adapt&eacute; &agrave; votre carte

        INT 10                       ;
        PORT 300                     ; selon votre carte

        FRAME ETHERNET_II

        PROTOCOL BPQ 8FF ETHERNET_II ; requis pour BPQ - peut jouer sur PID

BPQPARAMS                            ; optionnel - requis seulement pour 
                                     ; modifier la cible par d&eacute;faut 

        ETH_ADDR  FF:FF:FF:FF:FF:FF  ; adresse de la cible 
</code>
</pre></blockquote>
<h2><a name="ss6.2">6.2 Mise au point du fichier
<code>/etc/ax25/axports</code></a></h2>
<p><code>/etc/ax25/axports</code> est un fichier texte standard que
vous cr&eacute;erez avec n'importe quel &eacute;diteur. Son format
est le suivant&nbsp;:</p>
<blockquote>
<pre>
<code>portname  callsign  baudrate  paclen  window  description
</code>
</pre></blockquote>
avec&nbsp;:
<dl>
<dt><b>portname</b></dt>
<dd>
<p>nom affect&eacute; au port</p>
</dd>
<dt><b>callsign</b></dt>
<dd>
<p>identifiant AX.25</p>
</dd>
<dt><b>baudrate</b></dt>
<dd>
<p>vitesse de communication avec le TNC</p>
</dd>
<dt><b>paclen</b></dt>
<dd>
<p>longueur de paquet maximale applicable au port pour les
communications AX.25 en mode connect&eacute;</p>
</dd>
<dt><b>window</b></dt>
<dd>
<p>param&egrave;tre de fen&ecirc;tre (K) AX.25. Il s'agit de la
m&ecirc;me chose que le param&egrave;tre <code>MAXFRAME</code> de
nombreux TNC.</p>
</dd>
<dt><b>description</b></dt>
<dd>
<p>champ de commentaire</p>
</dd>
</dl>
<p>Chez moi, le fichier ressemble &agrave; &ccedil;a&nbsp;:</p>
<blockquote>
<pre>
<code>radio    VK2KTJ-15       4800        256     2       4800bps 144.800 MHz
ether    VK2KTJ-14       10000000    256     2       BPQ/ethernet device
</code>
</pre></blockquote>
<p>Rappelez-vous que vous devez affecter un num&eacute;ro
d'identification (ssid) unique &agrave; chaque port AX.25 que vous
cr&eacute;ez. Ajoutez une ligne pour chaque
p&eacute;riph&eacute;rique que vous emploierez&nbsp;; cela concerne
les ports KISS, BayCom, SCC, PI, PT et modem-son. Les
entr&eacute;es dans le fichier sont associ&eacute;es aux
p&eacute;riph&eacute;riques r&eacute;seau par le biais de
l'identificateur AX.25&nbsp;: au moins une bonne raison de les
prendre diff&eacute;rents.</p>
<h2><a name="ss6.3">6.3 Routage AX.25</a></h2>
<p>Vous pouvez d&eacute;cider de mettre en place des routes par
d&eacute;faut sp&eacute;cifiques &agrave; certains h&ocirc;tes, par
exemple pour des connexions AX.25 courantes ou des connexions IP.
L'utilitaire <em>axparms</em> effectue cette t&acirc;che. Sa page
de <em>man</em> en donne une description exhaustive. &Agrave; titre
d'exemple&nbsp;:</p>
<blockquote>
<pre>
<code># /usr/sbin/axparms -route add radio VK2XLZ VK2SUT
</code>
</pre></blockquote>
Cette commande &eacute;tablit une entr&eacute;e pour
<code>VK2XLZ</code> via <code>VK2SUT</code> sur le port AX.25
nomm&eacute; <code>radio</code>.
<h2><a name="s7">7. TCP/IP et l'interface AX.25</a></h2>
<p>Si vous disposez d'interfaces KISS, deux m&eacute;thodes
s'offrent &agrave; vous pour configurer une adresse IP&nbsp;: soit
la commande <em>kissattach</em>, soit le recours conventionnel
&agrave; <em>ifconfig</em>.</p>
<p>Modifiant l'exemple KISS pr&eacute;c&eacute;dent de fa&ccedil;on
&agrave; cr&eacute;er une interface AX.25 avec une adresse IP
&eacute;gale &agrave; <code>44.136.8.5</code> et un
<code>MTU</code> de <code>512</code> octets&nbsp;:</p>
<blockquote>
<pre>
<code># /usr/sbin/kissattach -i 44.136.8.5 -m 512 /dev/ttyS0 radio
# /sbin/route add -net 44.136.8.0 netmask 255.255.255.0 ax0
# /sbin/route add default ax0
</code>
</pre></blockquote>
Au besoin, vous emploierez <em>ifconfig</em> pour configurer les
autres param&egrave;tres.
<p>Si vous disposez d'autre interfaces, utilisez <em>ifconfig</em>
pour configurer l'adresse IP et le masque de r&eacute;seau du port
et ajoutez une route vers le port comme vous le feriez avec
n'importe quelle autre interface IP. L'exemple suivant s'appuie sur
une carte PI mais fonctionnerait de fa&ccedil;on similaire avec un
p&eacute;riph&eacute;rique AX.25 quelconque&nbsp;:</p>
<blockquote>
<pre>
<code># /sbin/ifconfig pi0a 44.136.8.5 netmask 255.255.255.0 up
# /sbin/ifconfig pi0a broadcast 44.136.8.255 mtu 512
# /sbin/route add -net 44.136.8.0 netmask 255.255.255.0 pi0a
# /sbin/route add default pi0a
</code>
</pre></blockquote>
Les commandes pr&eacute;c&eacute;dentes correspondent &agrave; une
configuration famili&egrave;re aux utilisateurs de NOS et de ses
variantes ou de toute autre logiciel IP. Notez que la route par
d&eacute;faut n'est pas n&eacute;cessaire si un autre
p&eacute;riph&eacute;rique r&eacute;seau la met lui-m&ecirc;me en
place.
<p>Pour tester votre configuration, lancez un ping ou un telnet
vers votre machine&nbsp;:</p>
<blockquote>
<pre>
<code># ping -i 5 44.136.8.58
</code>
</pre></blockquote>
L'argument `<code>-i 5</code>' force <em>ping</em> &agrave; envoyer
ses requ&ecirc;tes ICMP toutes les 5 secondes et non chaque
seconde.
<h2><a name="s8">8. Configuration d'un port NetRom</a></h2>
<p>Le protocole NetRom s'appuye sur les ports AX.25 que vous
cr&eacute;erez. Sa configuration s'effectue par
l'interm&eacute;diaire de deux fichiers. L'un d&eacute;crit les
interfaces NetRom et l'autre les ports AX.25 sous-jacents. La
proc&eacute;dure d&eacute;taill&eacute;e ci-dessous s'appliquera
&agrave; toutes les interfaces NetRom que vous souhaiterez
d&eacute;finir.</p>
<h2><a name="ss8.1">8.1 Le fichier
<code>/etc/ax25/nrports</code></a></h2>
<p>Ce fichier est l'analogue pour les ports NetRom du fichier
<code>/etc/ax25/axports</code> pour les ports AX.25. Tous les
p&eacute;riph&eacute;riques NetRom que vous souhaitez employer
doivent figurer dans le fichier <code>/etc/ax25/nrports</code>. Le
plus souvent, une station Linux ne comprendra qu'un seul port
NetRom qui utilisera certains des p&eacute;riph&eacute;riques
AX.25. Pour certains services tels un BBS, le besoin de
d&eacute;finir plusieurs alias NetRom peut se manifester&nbsp;; on
ajoute alors des p&eacute;riph&eacute;riques NetRom en
cons&eacute;quence.</p>
<p>Le format du fichier est le suivant&nbsp;:</p>
<blockquote>
<pre>
<code>name callsign  alias  paclen   description
</code>
</pre></blockquote>
Avec&nbsp;:
<dl>
<dt><b>name</b></dt>
<dd>
<p>nom affect&eacute; au port.</p>
</dd>
<dt><b>callsign</b></dt>
<dd>
<p>identifiant pour le trafic NetRom transitant par ce port.
Attention, il ne s'agit <b>pas</b> de l'adresse &agrave; laquelle
les clients doivent se connecter pour disposer d'une interface de
type <em>noeud</em> (ce mode sera d&eacute;crit un peu plus loin).
L'identifiant doit &ecirc;tre unique et ne
r&eacute;appara&icirc;tre nulle part dans les fichiers
<code>/etc/ax25/axports</code> et
<code>/etc/ax25/nrports</code>.</p>
</dd>
<dt><b>alias</b></dt>
<dd>
<p>alias NetRom du port.</p>
</dd>
<dt><b>paclen</b></dt>
<dd>
<p>taille maximale des trames NetRom transmises par le port.</p>
</dd>
<dt><b>description</b></dt>
<dd>
<p>commentaire.</p>
</dd>
</dl>
<p>Par exemple, pour cr&eacute;er un port NetRom connu du reste du
r&eacute;seau NetRom sous l'identit&eacute;
`<code>LINUX:VK2KTJ-9</code>'&nbsp;:</p>
<blockquote>
<pre>
<code>netrom  VK2KTJ-9        LINUX   236     Linux Switch Port
</code>
</pre></blockquote>
Des programmes tels <em>call</em> se servent du fichier
<code>nrports</code>.
<h2><a name="ss8.2">8.2 Le fichier
<code>/etc/ax25/nrbroadcast</code></a></h2>
<p>Ce second fichier peut contenir une nombre d'entr&eacute;es
variable, normalement une pour chaque port AX.25 convoyant du
trafic NetRom.</p>
<p>Le format du fichier est le suivant&nbsp;:</p>
<blockquote>
<pre>
<code>axport min_obs def_qual worst_qual verbose
</code>
</pre></blockquote>
Avec&nbsp;:
<dl>
<dt><b>axport</b></dt>
<dd>
<p>nom du port tir&eacute; du fichier
<code>/etc/ax25/axports</code>. En l'absence d'entr&eacute;e dans
le fichier <code>/etc/ax25/nrbroadcasts</code> pour un port AX.25,
aucun routage NetRom n'aura lieu via ce port et toute diffusion
NetRom sera ignor&eacute;e.</p>
</dd>
<dt><b>min_obs</b></dt>
<dd>
<p>param&egrave;tre d'obsolescence minimale du port.</p>
</dd>
<dt><b>def_qual</b></dt>
<dd>
<p>qualit&eacute; par d&eacute;faut.</p>
</dd>
<dt><b>worst_qual</b></dt>
<dd>
<p>qualit&eacute; minimale admissible. Toute route de
qualit&eacute; moindre sera ignor&eacute;e.</p>
</dd>
<dt><b>verbose</b></dt>
<dd>
<p>activation de la diffusion des informations de routage globales
ou seulement relatives au noeud.</p>
</dd>
</dl>
Par exemple&nbsp;:
<blockquote>
<pre>
<code>radio    1       200      100         1
</code>
</pre></blockquote>
<h2><a name="ss8.3">8.3 Cr&eacute;ation des
p&eacute;riph&eacute;riques r&eacute;seau NetRom</a></h2>
<p>Une fois les deux fichiers mis au point, il faut cr&eacute;er
les p&eacute;riph&eacute;riques NetRom. La d&eacute;marche est
proche du cas AX.25 &agrave; ceci pr&egrave;s que l'on se sert
&agrave; pr&eacute;sent de la commande <em>nrattach</em>. Elle
constitue un pendant &agrave; la commande <em>axattach</em> et
cr&eacute;e des p&eacute;riph&eacute;riques NetRom qui se
retrouvent sous la d&eacute;nomination `<code>nr[0-9]</code>' (la
premi&egrave;re invocation produit `<code>nr0</code>', la seconde
`<code>nr1</code>' etc.) Pour associer un
p&eacute;riph&eacute;rique NetRom au port d&eacute;fini
pr&eacute;c&eacute;demment, on utilise&nbsp;:</p>
<blockquote>
<pre>
<code># nrattach netrom
</code>
</pre></blockquote>
Cette commande active le p&eacute;riph&eacute;rique NetRom
(<code>nr0</code>) nomm&eacute; <code>netrom</code>
configur&eacute; conform&eacute;ment au contenu du fichier
<code>/etc/ax25/nrports</code>.
<h2><a name="ss8.4">8.4 Lancement du d&eacute;mon NetRom</a></h2>
<p>Le noyau Linux g&egrave;re le protocole NetRom et assure la
commutation mais il ne prend pas en charge certaines fonctions. Le
d&eacute;mon NetRom maintient les tables de routage NetRom et
diffuse les messages de routage NetRom. Il se lance via&nbsp;:</p>
<blockquote>
<pre>
<code># /usr/sbin/netromd -i
</code>
</pre></blockquote>
Le fichier <code>/proc/net/nr_neigh</code> devrait progressivement
se remplir d'informations concernant vos voisins NetRom.
<p>N'oubliez pas d'inclure la commande
<code>/usr/sbin/netromd</code> dans vos scripts de d&eacute;marrage
ou d'en cr&eacute;er un d&eacute;di&eacute; &agrave;
l'automatisation du processus.</p>
<h2><a name="ss8.5">8.5 Routage NetRom</a></h2>
<p>Peut-&ecirc;tre voudrez-vous mettre en place des routes
statiques pour certains h&ocirc;tes particuliers. La commande
<em>nrparms</em> dispose d'une telle fonction. Reportez-vous
&agrave; la page de <em>man</em> pour une description
compl&egrave;te. A titre d'exemple, pour indiquer sur mon port
AX.25 `<code>radio</code>' une route NetRom vers le
<code>#MINTO:VK2XLZ-10</code> en passant par mon voisin
<code>VK2SUT-9</code>&nbsp;:</p>
<blockquote>
<pre>
<code># /usr/sbin/nrparms -nodes VK2XLZ-10 + #MINTO 120 5 radio VK2SUT-9
</code>
</pre></blockquote>
<p><em>nrparms</em> permet &eacute;galement de cr&eacute;er
manuellement de nouveau voisins. La commande suivante cr&eacute;e
un voisin NetRom <code>VK2SUT-9</code> d'une qualit&eacute; de
<code>120</code> qui ne sera pas supprim&eacute;
automatiquement.</p>
<blockquote>
<pre>
<code># /usr/sbin/nrparms -routes radio VK2SUT-9 + 120
</code>
</pre></blockquote>
<h2><a name="s9">9. TCP/IP sur une interface NetRom</a></h2>
<p>La configuration ressemble &agrave; celle d'AX.25 pour
TCP/IP.</p>
<p>Soit vous pr&eacute;cisez l'adresse IP et le MTU avec
<em>nrattach</em>, soit vous utilisez les commandes
<em>ifconfig</em> et <em>route</em>. Il vous faudra ajouter
&agrave; la main les caract&eacute;ristiques <em>arp</em> des
h&ocirc;tes concern&eacute;s par votre routage puisque votre
machine ne dispose d'aucun m&eacute;canisme pour d&eacute;terminer
une adresse NetRom utilisable afin d'atteindre une interface IP
particuli&egrave;re.</p>
<p>Pour cr&eacute;er une interface <code>nr0</code> d'adresse IP
<code>44.136.8.5</code>, de MTU <code>512</code> et
configur&eacute; conform&eacute;ment aux sp&eacute;cifications du
fichier <code>/etc/ax25/nrports</code> relatives au port NetRom
appel&eacute; <code>netrom</code>&nbsp;:</p>
<blockquote>
<pre>
<code># /usr/sbin/nrattach -i 44.136.8.5 -m 512 netrom
# route add 44.136.8.5 nr0
</code>
</pre></blockquote>
<p>Autre m&eacute;thode&nbsp;:</p>
<blockquote>
<pre>
<code># /usr/sbin/nrattach netrom
# ifconfig nr0 44.136.8.5 netmask 255.255.255.0 hw netrom VK2KTJ-9
# route add 44.136.8.5 nr0
</code>
</pre></blockquote>
En ce qui concerne le volet arp et le routage, pour joindre
l'interface IP <code>44.136.80.4</code> &agrave; l'adresse NetRom
<code>BBS:VK3BBS</code> via un voisin NetRom d'identifiant
<code>VK2SUT-0</code>, on ex&eacute;cuterait&nbsp;:
<blockquote>
<pre>
<code># route add 44.136.80.4 nr0
# arp -t netrom -s 44.136.80.4 vk2sut-0
# nrparms -nodes vk3bbs + BBS 120 6 sl0 vk2sut-0
</code>
</pre></blockquote>
Les arguments `<code>120</code>' et `<code>6</code>' pass&eacute;s
&agrave; la <em>nrparms</em> fixent les param&egrave;tres de
qualit&eacute; et d'obsolescence NetRom pour la route.
<h2><a name="s10">10. Configuration des ports Rose</a></h2>
<p>Le protocole de transmission de paquets Rose est semblable
&agrave; la couche trois des sp&eacute;cifications X.25. La gestion
Rose du noyau est une version <b>modifi&eacute;e</b> de <a href=
"http://fpac.lmi.ecp.fr/f1oat/f1oat.html">FPAC Rose
implementation</a>.</p>
<p>La couche Rose s'appuie sur les ports AX.25 que vous
d&eacute;finissez. La proc&eacute;dure d&eacute;taill&eacute;e
ci-dessous s'appliquera &agrave; toutes les interfaces NetRom que
vous souhaiterez d&eacute;finir.</p>
<h2><a name="ss10.1">10.1 Le fichier
<code>/etc/ax25/rsports</code></a></h2>
<p>Ce fichier est l'analogue pour les ports Rose du fichier
<code>/etc/ax25/axports</code> pour les ports AX.25.</p>
<p>Le format du fichier est le suivant&nbsp;:</p>
<blockquote>
<pre>
<code>name  addresss  description
</code>
</pre></blockquote>
Avec&nbsp;:
<dl>
<dt><b>name</b></dt>
<dd>
<p>nom affect&eacute; au port.</p>
</dd>
<dt><b>address</b></dt>
<dd>
<p>adresse Rose sur 10 digits.</p>
</dd>
<dt><b>description</b></dt>
<dd>
<p>commentaire.</p>
</dd>
</dl>
Par exemple&nbsp;:
<blockquote>
<pre>
<code>rose  5050294760  Rose Port
</code>
</pre></blockquote>
Notez que Rose emploie par d&eacute;faut l'identifiant/ssid du port
AX.25.
<p>La commande <em>rsparms</em> permet de modifier l'identifiant
Rose. Par exemple, pour que Linux se serve de l'identifiant
<code>VK2KTJ-10</code> pour le trafic Rose sur tous les ports AX.25
.</p>
<blockquote>
<pre>
<code># /usr/sbin/rsprams -call VK2KTJ-10
</code>
</pre></blockquote>
<h2><a name="ss10.2">10.2 Cr&eacute;ation des
p&eacute;riph&eacute;riques r&eacute;seau Rose</a></h2>
<p>Une fois le fichier <code>/etc/ax25/rsports</code> mis au point,
vous pouvez cr&eacute;er les p&eacute;riph&eacute;riques Rose en
reprenant la d&eacute;marche AX.25. Vous emploierez la commande
<em>rsattach</em> qui cr&eacute;e des p&eacute;riph&eacute;riques
sous l'appellation `<code>rose[0-5]</code>' (la premi&egrave;re
invocation produit `<code>rose0</code>', la seconde
`<code>rose1</code>' etc...). Par exemple&nbsp;:</p>
<blockquote>
<pre>
<code># rsattach rose
</code>
</pre></blockquote>
Cette commande active le p&eacute;riph&eacute;rique Rose
(<code>rose0</code>) nomm&eacute; `<code>rose</code>'
configur&eacute; conform&eacute;ment au contenu du fichier
<code>/etc/ax25/rsports</code>.
<h2><a name="ss10.3">10.3 Routage Rose</a></h2>
<p>Le protocole Rose ne g&egrave;re pour l'instant que le routage
statique. Il se d&eacute;finit par le biais de la commande
<em>rsparms</em>.</p>
<p>Par exemple, pour indiquer une route vers le noeud Rose
<code>5050295502</code> via un port AX.25 nomm&eacute;
`<code>radio</code>' dans le fichier <code>/etc/ax25/axports</code>
en passant par le voisin d'identificateur
<code>VK2XLZ</code>&nbsp;:</p>
<blockquote>
<pre>
<code># rsparms -nodes add 5050295502 radio vk2xlz
</code>
</pre></blockquote>
<p>Un masque vous permettra &eacute;ventuellement de regrouper
diff&eacute;rentes destinations Rose sur une seule route. Par
exemple&nbsp;:</p>
<blockquote>
<pre>
<code># rsparms -nodes add 5050295502/4 radio vk2xlz
</code>
</pre></blockquote>
On retrouve l'exemple pr&eacute;c&eacute;dent &agrave; ceci
pr&egrave;s que toute adresse de destination dont les quatre
premiers digits correspondent (toute adresse commen&ccedil;ant par
<code>5050</code> donc) sera rout&eacute;e. La variante suivante
s'av&egrave;re s&ucirc;rement la moins ambigu&euml;&nbsp;:
<blockquote>
<pre>
<code># rsparms -nodes add 5050/4 radio vk2xlz
</code>
</pre></blockquote>
<h2><a name="s11">11. Communications AX.25/NetRom/Rose</a></h2>
<p>Maintenant que vos interfaces AX.25, NetRom et Rose sont
activ&eacute;es, vous devriez &ecirc;tre capable de proc&eacute;der
&agrave; des essais.</p>
<p>Le paquetage des utilitaires AX.25 comprend le programme
`<em>call</em>' qui sert d'interm&eacute;diaire pour AX.25, NetRom
et Rose.</p>
<p>Un appel AX.25&nbsp;:</p>
<blockquote>
<pre>
<code>/usr/bin/call radio VK2DAY via VK2SUT
</code>
</pre></blockquote>
<p>Un appel NetRom vers un noeud d'alias
<code>SUNBBS</code>&nbsp;:</p>
<blockquote>
<pre>
<code>/usr/bin/call netrom SUNBBS
</code>
</pre></blockquote>
<p>Un appel Rose pour <code>HEARD</code> au noeud
<code>5050882960</code>&nbsp;:</p>
<blockquote>
<pre>
<code>/usr/bin/call rose HEARD 5050882960
</code>
</pre></blockquote>
<p>Remarque&nbsp;: vous devez pr&eacute;ciser &agrave;
<em>call</em> le port &agrave; employer, vu que le m&ecirc;me noeud
de destination peut &ecirc;tre joignable via n'importe lequel des
ports que vous aurez configur&eacute;s.</p>
<p><em>call</em> fournit un terminal de contr&ocirc;le en mode
ligne de commande pour les appels AX.25. Les lignes
commen&ccedil;ant par `<code>~</code>' sont identifi&eacute;es
comme des commandes. La commande `<code>~.</code>' coupe la
communication.</p>
<p>Reportez-vous &agrave; la page de man sous <code>/usr/man</code>
pour davantage d'informations.</p>
<h2><a name="s12">12. Configurer Linux pour accepter les
connexions</a></h2>
<p>Linux est un syst&egrave;me d'exploitation puissant qui
pr&eacute;sente beaucoup de flexibilit&eacute; dans sa
configuration. Le co&ucirc;t de cette flexibilit&eacute; se
retrouve dans la mise au point de la configuration
souhait&eacute;e. Avant d'&ecirc;tre en mesure d'accepter les
connexions AX.25, NetRom ou Rose, vous devez vous poser un certain
nombre de questions. La plus importante&nbsp;: "Que vais-je laisser
de visible aux utilisateurs une fois connect&eacute;s ?" Des gens
ont mis au point de sympathiques petites applications qui
fournissent des services aux appelants tels <em>pms</em> ou, plus
&eacute;volu&eacute;, <em>node</em> (tous deux sont compris dans le
paquetage des utilitaires AX.25). Vous pouvez &eacute;galement
souhaiter offrir une invite d'identification afin que les
utilisateurs disposent d'un shell ou m&ecirc;me &eacute;crire vos
propres programmes tels une base de donn&eacute;es maison ou un
jeu. Quoi que vous fassiez, il faut sp&eacute;cifier &agrave; AX.25
le programme &agrave; ex&eacute;cuter quand une connexion
s'&eacute;tablit.</p>
<p>Le d&eacute;mon <em>ax25d</em> joue un r&ocirc;le similaire
&agrave; celui rempli par <em>inetd</em> pour les connexion TCP/IP
entre machines UNIX. Il se met &agrave; l'&eacute;coute des
connexions entrantes et lorsqu'il en d&eacute;tecte une, il examine
par l'interm&eacute;diaire d'un fichier de configuration le
programme &agrave; lancer auquel il transmet la connexion.
Puisqu'il s'agit d'un outil standard de gestion des appels AX.25,
NetRom et Rose, je vais &agrave; pr&eacute;sent d&eacute;crire les
&eacute;tapes de sa configuration.</p>
<h2><a name="ss12.1">12.1 Le fichier
<code>/etc/ax25/ax25d.conf</code></a></h2>
<p>Ce fichier contient la configuration du d&eacute;mon
<em>ax25d</em> en charge des connexions AX.25, NetRom et Rose.</p>
<p>Bien que le fichier paraisse un peu cryptique au premier abord,
il s'av&egrave;re rapidement des plus simples &agrave; l'usage,
avec quelques pi&egrave;ges &agrave; &eacute;viter.</p>
<p>Le format g&eacute;n&eacute;ral du fichier est le
suivant&nbsp;:</p>
<blockquote>
<pre>
<code># Je suis un commentaire qu'ax25d ignorera
[nom de port] || &lt;nom de port&gt; || {nom de port}
&lt;interlocuteur1&gt; window T1 T2 T3 idle N2 &lt;mode&gt; &lt;uid&gt; &lt;cmd&gt; &lt;commande&gt; &lt;args&gt;
&lt;interlocuteur2&gt; window T1 T2 T3 idle N2 &lt;mode&gt; &lt;uid&gt; &lt;cmd&gt; &lt;commande&gt; &lt;args&gt;
parametres window T1 T2 T3 idle N2 &lt;mode&gt;
&lt;interlocuteur3&gt; window T1 T2 T3 idle N2 &lt;mode&gt; &lt;uid&gt; &lt;cmd&gt; &lt;commande&gt; &lt;args&gt;
   ...
default    window T1 T2 T3 idle N2 &lt;mode&gt; &lt;uid&gt; &lt;cmd&gt; &lt;commande&gt; &lt;args&gt;
</code>
</pre></blockquote>
<p>Avec&nbsp;:</p>
<dl>
<dt><b>#</b></dt>
<dd>
<p>en d&eacute;but de ligne pour indiquer un commentaire
ignor&eacute; du programme <em>ax25d</em></p>
</dd>
<dt><b>&lt;port_name&gt;</b></dt>
<dd>
<p>nom du port AX.25, NetRom ou Rose tel que sp&eacute;cifi&eacute;
dans un des fichiers <code>/etc/ax25/axports</code>,
<code>/etc/ax25/nrports</code> ou <code>/etc/ax25/rsports</code>.
Le nom du port est entour&eacute; par `<code>[]</code>' s'il s'agit
d'un port AX.25, `<code>&lt;&gt;</code>' si c'est un port NetRom ou
`<code>{}</code>' pour un port Rose. Ce champ admet une variante
qui pr&eacute;c&egrave;de le nom du port par `<code>callsign/ssid
via</code>' pour indiquer que vous voulez accepter les appels vers
l'identificateur cit&eacute; par l'interm&eacute;diaire de cette
interface. Un exemple l'illustrera.</p>
</dd>
<dt><b>&lt;peer&gt;</b></dt>
<dd>
<p>est l'identifiant du noeud auquel la configuration s'applique.
Si vous ne sp&eacute;cifiez pas de ssid, tous seront
consid&eacute;r&eacute;s comme valables.</p>
</dd>
<dt><b>window</b></dt>
<dd>
<p>param&egrave;tre de fen&ecirc;tre AX.25 (K) ou valeur de
MAXFRAMDE pour cette configuration.</p>
</dd>
<dt><b>T1</b></dt>
<dd>
<p>d&eacute;lai de retransmission de trame (T1) exprim&eacute; en
demi-secondes.</p>
</dd>
<dt><b>T2</b></dt>
<dd>
<p>d&eacute;lai d'attente par le logiciel AX.25 d'une seconde trame
avant de pr&eacute;parer une r&eacute;ponse. S'exprime en
secondes.</p>
</dd>
<dt><b>T3</b></dt>
<dd>
<p>d&eacute;lai d'inactivit&eacute; avant qu'une connexion inactive
ne soit coup&eacute;e. S'exprime en secondes.</p>
</dd>
<dt><b>idle</b></dt>
<dd>
<p>p&eacute;riode d'inactivit&eacute; en secondes.</p>
</dd>
<dt><b>N2</b></dt>
<dd>
<p>nombre d'essais de retransmission avant qu'une connexion ne soit
coup&eacute;e.</p>
</dd>
<dt><b>&lt;mode&gt;</b></dt>
<dd>
<p>procure un m&eacute;canisme d'&eacute;tablissement de certains
types de permissions. Les modes sont activ&eacute;s ou
inhib&eacute;s gr&acirc;ce &agrave; une combinaison de
caract&egrave;res repr&eacute;sentant chacun un droit.
L'accentuation ne joue pas et les caract&egrave;res doivent former
un bloc ininterrompu.</p>
<dl>
<dt><b>u/U</b></dt>
<dd>
<p>UTMP - non-support&eacute;</p>
</dd>
<dt><b>v/V</b></dt>
<dd>
<p>Validate call - non-support&eacute;</p>
</dd>
<dt><b>q/Q</b></dt>
<dd>
<p>Quiet - pas d'enregistrement des connexions</p>
</dd>
<dt><b>n/N</b></dt>
<dd>
<p>check NetRom Neighbour - non-support&eacute;</p>
</dd>
<dt><b>d/D</b></dt>
<dd>
<p>Disallow Digipeaters - les connexions doivent &ecirc;tre
directes</p>
</dd>
<dt><b>l/L</b></dt>
<dd>
<p>Lockout - connexion interdite</p>
</dd>
<dt><b>*/0</b></dt>
<dd>
<p>marker - marqueur, pas de mode sp&eacute;cifique</p>
</dd>
</dl>
</dd>
<dt><b>&lt;uid&gt;</b></dt>
<dd>
<p>userid sous laquelle le programme maintenant la connexion sera
ex&eacute;cut&eacute;.</p>
</dd>
<dt><b>&lt;cmd&gt;</b></dt>
<dd>
<p>nom complet de la commande &agrave; lancer, sans arguments.</p>
</dd>
<dt><b>&lt;cmd-name&gt;</b></dt>
<dd>
<p>texte qui appara&icirc;tra &agrave; l'invocation de <em>ps</em>
comme commande du programme (en g&eacute;n&eacute;ral la m&ecirc;me
chose que &lt;cmd&gt; mais sans le chemin d'acc&egrave;s).</p>
</dd>
<dt><b>&lt;arguments&gt;</b></dt>
<dd>
<p>arguments de ligne de commande pass&eacute;s &agrave;
&lt;:cmd&gt; lorsqu'il est lanc&eacute;. Les &eacute;l&eacute;ments
suivants permettent de passer des informations
utilis&eacute;es&nbsp;:</p>
<dl>
<dt><b>%d</b></dt>
<dd>
<p>nom du port recevant la connexion</p>
</dd>
<dt><b>%U</b></dt>
<dd>
<p>identificateur AX.25 de l'extr&eacute;mit&eacute;
connect&eacute;e, sans ssid, en majuscules</p>
</dd>
<dt><b>%u</b></dt>
<dd>
<p>identificateur AX.25 de l'extr&eacute;mit&eacute;
connect&eacute;e, sans ssid, en minuscules</p>
</dd>
<dt><b>%S</b></dt>
<dd>
<p>identificateur AX.25 de l'extr&eacute;mit&eacute;
connect&eacute;e, avec ssid, en majuscules</p>
</dd>
<dt><b>%s</b></dt>
<dd>
<p>identificateur AX.25 de l'extr&eacute;mit&eacute;
connect&eacute;e, avec ssid, en minuscules</p>
</dd>
<dt><b>%P</b></dt>
<dd>
<p>identificateur AX.25 du noeud distant initiateur de la
connexion, sans ssid, en majuscules</p>
</dd>
<dt><b>%p</b></dt>
<dd>
<p>identificateur AX.25 du noeud distant initiateur de la
connexion, sans ssid, en minuscules</p>
</dd>
<dt><b>%R</b></dt>
<dd>
<p>identificateur AX.25 du noeud distant initiateur de la
connexion, avec ssid, en majuscules</p>
</dd>
<dt><b>%r</b></dt>
<dd>
<p>identificateur AX.25 du noeud distant initiateur de la
connexion, avec ssid, en minuscules</p>
</dd>
</dl>
</dd>
</dl>
<p>Ue section au format pr&eacute;c&eacute;dent est requise pour
chaque interface AX.25, NetRom ou Rose que vous voulez voir
accepter des connexions.</p>
<p>Le paragraphe comprend deux lignes particuli&egrave;res, l'une
commen&ccedil;ant par la cha&icirc;ne `<code>parameters</code>' et
l'autre par la cha&icirc;ne `<code>default</code>' (il y a une
diff&eacute;rence).</p>
<p>`<code>default</code>' couvre tous les cas qui ne sont pas
sp&eacute;cifi&eacute;s ailleurs. Ainsi, tous les appels sur
l'interface &lt;interface_call&gt; ne disposant pas d'une
r&egrave;gle sp&eacute;cifique se retrouvent dans la rubrique
`<code>default</code>'. En l'absence d'une telle section, toutes
les connexions hors r&egrave;gle sont imm&eacute;diatement
interrompues sans autre forme de proc&egrave;s.</p>
<p>`<code>parameters</code>' est plus subtil et dissimule le
pi&egrave;ge mentionn&eacute; pr&eacute;c&eacute;demment. Si le
caract&egrave;re `*' est pr&eacute;sent dans un champ, une valeur
par d&eacute;faut issue de la section `<code>parameters</code>' est
employ&eacute;e. Le noyau poss&egrave;de d'ailleurs une liste de
valeurs utilis&eacute;es en l'absence de `<code>parameters</code>'.
Le danger r&eacute;side en ce que les entr&eacute;es
sp&eacute;cifi&eacute;es via `<code>parameters</code>' ne
s'appliquent qu'aux r&egrave;gles qui les suivent. Une m&ecirc;me
interface peut comporter plusieurs entr&eacute;es
`<code>parameters</code>'. Notez que les r&egrave;gles
`<code>parameters</code>' ne permettent pas de positionner les
champs `<code>uid</code>' et `<code>command</code>'.</p>
<h2><a name="ss12.2">12.2 Un exemple de fichier
<code>ax25d.conf</code></a></h2>
<blockquote>
<pre>
<code># ax25d.conf pour VK2KTJ - 02/03/97
# Ce fichier de configuration utilise le port AX.25 d&eacute;fini plus haut.

# &lt;peer&gt; Win T1  T2  T3  idl N2 &lt;mode&gt; &lt;uid&gt; &lt;exec&gt; &lt;argv[0]&gt;[&lt;args....&gt;]

[VK2KTJ-0 via radio]
parameters 1    10  *  *  *   *   *
VK2XLZ     *     *  *  *  *   *   *    root  /usr/sbin/axspawn axspawn %u +
VK2DAY     *     *  *  *  *   *   *    root  /usr/sbin/axspawn axspawn %u +
NOCALL     *     *  *  *  *   *   L
default    1    10  5 100 180 5   *    root  /usr/sbin/pms pms -a -o vk2ktj

[VK2KTJ-1 via radio]
default    *     *    *   *   *   0    root /usr/sbin/node node

&lt;netrom&gt;
parameters 1    10  *  *  *   *   *
NOCALL     *     *  *  *  *   *   L
default    *     *  *  *  *   *   0        root /usr/sbin/node node

{VK2KTJ-0 via rose}
parameters 1    10  *  *  *   *   *
VK2XLZ     *     *  *  *  *   *   *    root  /usr/sbin/axspawn axspawn %u +
VK2DAY     *     *  *  *  *   *   *    root  /usr/sbin/axspawn axspawn %u +
NOCALL     *     *  *  *  *   *   L
default    1    10  5 100 180 5   *    root  /usr/sbin/pms pms -a -o vk2ktj

{VK2KTJ-1 via rose}
default    *     *    *   *   *   0    root /usr/sbin/node node radio
</code>
</pre></blockquote>
<p>Dans cet exemple, toute personne r&eacute;clamant une connexion
via l'identificateur `<code>VK2KTJ-0</code>' du port AX.25
`<code>radio</code>' se verra appliquer les r&egrave;gles
suivantes&nbsp;:</p>
<p>Tout appel depuis un identifiant `NOCALL' se verra
rejet&eacute;. Notez l'emploi du mode `L'.</p>
<p>La ligne <code>parameters</code> modifie deux param&egrave;tres
par d&eacute;faut du noyau (Window et T1) et ex&eacute;cutera
<em>/usr/sbin/axspawn</em>. Les instances de
<em>/usr/sbin/axspawn</em> appel&eacute;es ainsi appara&icirc;tront
en tant que <em>axspawn</em> dans un affichage issu de <em>ps</em>.
Les deux lignes qui suivent d&eacute;finissent deux stations
auxquelles s'appliqueront les permissions.</p>
<p>La derni&egrave;re ligne de la section est la r&egrave;gle
fourre-tout appliqu&eacute;e au reste des connexions (VK2XLZ et
VK2DAY inclus d&egrave;s lors qu'ils ont recours &agrave; un ssid
diff&eacute;rent de -1). Tous les param&egrave;tres prennent leurs
valeurs par d&eacute;faut et le programme <em>pms</em> sera
lanc&eacute; avec un argument de ligne de commande
sp&eacute;cifiant une connexion AX.25 d'identifiant
<code>VK2KTJ</code> (reportez-vous &agrave; la partie
`Configuration du PMS' pour davantage de d&eacute;tails).</p>
<p>La configuration suivante accepte les appels &agrave;
<code>VK2KTJ-1</code> via le port <code>radio</code>. Le programme
<em>node</em> est ex&eacute;cut&eacute; &agrave; chaque
connexion.</p>
<p>Vient ensuite une sp&eacute;cification de connexions NetRom
(notez l'emploi des signes inf&eacute;rieur et sup&eacute;rieur
&agrave; la place des crochets). Toute personne se connectant via
le port `<code>netrom</code>' d&eacute;clenche le programme
<em>node</em> si son identifiant est diff&eacute;rent de
`<code>NOCALL</code>'. Dans le cas contraire, tout acc&egrave;s est
refus&eacute;.</p>
<p>Les deux derni&egrave;res configurations concernent des
connexions entrantes Rose, la premi&egrave;re pour ceux qui
appellent le `<code>VK2KTJ-0</code>' sur notre noeud Rose et la
seconde pour ceux qui emploient le `<code>VK2KTJ-1</code>'. Elles
fonctionnent de la m&ecirc;me fa&ccedil;on. Notez l'emploi des
accolades qui indiquent des ports Rose.</p>
<p>L'exemple manque un peu de naturel mais je crois qu'il illustre
clairement les propri&eacute;t&eacute;s importantes de la syntaxe
du fichier de configuration. La page de <em>man</em> explique dans
son int&eacute;gralit&eacute; le contenu du fichier
<code>ax25d.conf</code>. Le paquetage <code>ax25-utils</code>
inclut un exemple plus d&eacute;taill&eacute; qui pourrait
&eacute;galement vous &ecirc;tre utile.</p>
<h2><a name="ss12.3">12.3 Lancer <em>ax25d</em></a></h2>
<p>Une fois les deux fichiers de configuration mis au point, lancez
la commande&nbsp;:</p>
<blockquote>
<pre>
<code># /usr/sbin/ax25d
</code>
</pre></blockquote>
&Agrave; pr&eacute;sent, les gens devraient pouvoir se connecter en
AX.25 &agrave; votre machine. N'oubliez pas de modifier les
fichiers de commande de d&eacute;marrage du syst&egrave;me de
fa&ccedil;on que <code>ax25d</code> soit invoqu&eacute;
automatiquement &agrave; chaque r&eacute;initialisation de la
station.
<h2><a name="s13">13. Le logiciel <em>node</em></a></h2>
<p>Le logiciel <em>node</em> a &eacute;t&eacute;
d&eacute;velopp&eacute; par Tomi Manninen
<code>&lt;tomi.manninen@hut.fi&gt;</code>. Il a &eacute;t&eacute;
con&ccedil;u &agrave; partir du programme PMS et offre une
fonctionnalit&eacute; de noeud facilement configurable. Une fois
les utilisateurs connect&eacute;s, il leur permet de se servir de
telnet, de NetRom, de Rose et de AX.25 vers l'ext&eacute;rieur
ainsi que d'obtenir diverses informations telles finger, la liste
des noeuds et des &eacute;coutes etc. Le noeud peut &ecirc;tre
configur&eacute; assez simplement pour ex&eacute;cuter n'importe
quelle commande Linux.</p>
<p>Normalement, le noeud sera invoqu&eacute; par <em>ax25d</em>,
bien qu'il puisse &eacute;galement &ecirc;tre appel&eacute; par le
d&eacute;mon IP <em>inetd</em> pour permettre aux utilisateurs
d'obtenir un acc&egrave;s telnet &agrave; votre machine. Le
lancement depuis la ligne de commande est &eacute;galement
possible.</p>
<h2><a name="ss13.1">13.1 Le fichier
<code>/etc/ax25/node.conf</code></a></h2>
<p><code>node.conf</code> est un fichier texte qui sp&eacute;cifie
la configuration du noeud. Son format est le suivant&nbsp;:</p>
<blockquote>
<pre>
<code># /etc/ax25/node.conf
# Fichier de configuration du programme node(8)
#
# Un '#' indique une ligne de commentaire qui sera ignor&eacute;e.

# Nom d'h&ocirc;te de la machine noeud
hostname        radio.gw.vk2ktj.ampr.org

# R&eacute;seau local
# d&eacute;finit ce qui doit &ecirc;tre consid&eacute;r&eacute; comme 'local' du point de vue de la
# v&eacute;rification des permissions gr&acirc;ce &agrave; nodes.perms.
localnet        44.136.8.96/29

# Ports cach&eacute;s
# rend certains ports invisibles aux utilisateurs. Les ports n'appara&icirc;tront pas
# via la commande Ports.
hiddenports     rose netrom

# Identification du noeud
# appara&icirc;tra &agrave; l'invite du noeud
NodeId          LINUX:VK2KTJ-9

# Port NetRom
# nom du port NetRom qui employ&eacute; pour les connexions NetRom sortant du noeud
NrPort          netrom

# D&eacute;lai d'inactivit&eacute; du noeud
# en secondes
idletimout      1800

# D&eacute;lai d'inactivit&eacute; des connexions
# en secondes
conntimeout     1800

# Reprise de connexion
# indique si les utilisateurs doivent &ecirc;tre reconnect&eacute;s spontan&eacute;ment en cas
# de rupture de la connexion distante ou bien s'ils doivent &ecirc;tre compl&egrave;tement
# d&eacute;connect&eacute;s.
reconnect       on

# Alias
alias           CONV    "telnet vk1xwt.ampr.org 3600"
alias           BBS     "connect radio vk2xsb"

# Alias (commandes externes)
# ex&eacute;cution de commandes externes au noeud
# extcmd &lt;cmd&gt; &lt;flag&gt; &lt;userid&gt; &lt;commande&gt;
# Flag == 1 pour l'instant
# &lt;commande&gt; a le m&ecirc;me format que dans ax25d.conf
extcmd          PMS     1       root    /usr/sbin/pms pms -u %U -o VK2KTJ

# Enregistrement
# le niveau 3 est le plus d&eacute;taill&eacute;, 0 d&eacute;sactive l'enregistrement
loglevel        3

# Caract&egrave;re de contr&ocirc;le
# 20 = (Control-T)
EscapeChar      20
</code>
</pre></blockquote>
<h2><a name="ss13.2">13.2 Le fichier
<code>/etc/ax25/node.perms</code></a></h2>
<p><em>node</em> affecte des permissions aux utilisateurs. On
d&eacute;cide ainsi des utilisateurs qui ont le droit ou non
d'employer des commandes telles (T)elnet ou (C)onnect.
<code>node.perms</code> contient cinq champs. Le caract&egrave;re
`*' dans l'un d'eux indique une absence de contraintes pour son
application. On construit ainsi facilement des r&egrave;gles
applicables par d&eacute;faut.</p>
<dl>
<dt><b>user</b></dt>
<dd>
<p>Le premier champ indique l'identifiant d'appel concern&eacute;
par les permissions. Une &eacute;ventuelle partie ssid sera
ignor&eacute;e.</p>
</dd>
<dt><b>method</b></dt>
<dd>
<p>Chaque protocole et chaque m&eacute;thode d'acc&egrave;s
disposent &eacute;galement de permissions. Par exemple, les
utilisateurs connect&eacute;s via AX.25 ou NetRom peuvent
&ecirc;tre autoris&eacute;s &agrave; se servir de (C)onnect tandis
que ceux issus d'une session telnet depuis un noeud non-local s'en
verront refuser l'acc&egrave;s. Le deuxi&egrave;me champ
sp&eacute;cifie donc &agrave; quelle m&eacute;thode d'acc&egrave;s
les permissions s'appliquent. Voici les classes de m&eacute;thodes
d'acc&egrave;s&nbsp;:</p>
<blockquote>
<pre>
<code>method  description
------  -----------------------------------------------------------
ampr    session telnet depuis une adresse amprnet (44.0.0.0)
ax25    connexion AX.25
host    node invoqu&eacute; depuis la ligne de commande 
inet    session telnet depuis une adresse non locale, de type non amprnet
local   session telent depuis un h&ocirc;te 'local'
netrom  connexion NetRom
rose    connexion Rose
*       n'importe quelle connexion
</code>
</pre></blockquote>
</dd>
<dt><b>port</b></dt>
<dd>
<p>Vous pouvez &eacute;galement contr&ocirc;ler les permissions
pour les utilisateurs AX.25 sur la base des ports employ&eacute;s.
Le troisi&egrave;me champ contient un nom de port si vous
d&eacute;cidez d'employer cette possibilit&eacute; (disponible
seulement pour les connexions AX.25).</p>
</dd>
<dt><b>password</b></dt>
<dd>
<p>Un mot de passe peut &eacute;galement &ecirc;tre demand&eacute;
lors de l'&eacute;tablissement de la connexion. Cela s'av&egrave;re
pratique pour prot&eacute;ger des comptes utilisateurs
sp&eacute;cifiques disposant de privil&egrave;ges
particuli&egrave;rement &eacute;lev&eacute;s. Si le
quatri&egrave;me champ est positionn&eacute;, il correspond au mot
de passe attendu.</p>
</dd>
<dt><b>permissions</b></dt>
<dd>
<p>Les permissions sont fix&eacute;es par le biais du dernier champ
de chaque ligne. L'information est cod&eacute;e au niveau du bit,
chaque service disposant d'un bit qui indique s'il est ou non
activ&eacute;. Ci-suit la liste des services et la position du
champ avec le bit positionn&eacute;&nbsp;:</p>
<blockquote>
<pre>
<code>valeur  description
------  -------------------------------------------------
 1      Login 
 2      (C)onnect AX.25 
 4      (C)onnect NetRom
 8      (T)elnet vers les h&ocirc;tes locaux 
 16     (T)elnet vers amprnet (44.0.0.0)
 32     (T)elnet vers les h&ocirc;tes non-locaux, de type non-amprnet
 64     (C)onnect AX.25 pour les ports cach&eacute;s
 128    (C)onnect Rose
</code>
</pre></blockquote>
On additionne ensuite les puissances de deux associ&eacute;es aux
bits des permissions activ&eacute;es. Le r&eacute;sultat va dans le
cinqui&egrave;me champ.</dd>
</dl>
<p>Un exemple de fichier <code>nodes.perms</code>&nbsp;:</p>
<blockquote>
<pre>
<code># /etc/ax25/node.perms
#
# L'op&eacute;rateur a pour identit&eacute; VK2KTJ, s'identifie par le mot de passe 'secret' 
# et dispose de toutes les permissions pour toutes les m&eacute;thodes de connexion.
vk2ktj  *       *       secret  255

# Les utilisateurs suivants sont exclus
NOCALL  *       *       *       0
PK232   *       *       *       0
PMS     *       *       *       0

# Les utilisateur d'INET n'ont pas le droit de se connecter
*       inet    *       *       0

# Les utilisateurs AX.25, NetRom, locaux, li&eacute;s &agrave; l'h&ocirc;te ou AMPR disposent de
# (C)onnect et de (T)elnet vers les h&ocirc;tes locaux et ampr mais se voient 
# interdire les autres adresses IP.
*       ax25    *       *       159
*       netrom  *       *       159
*       local   *       *       159
*       host    *       *       159
*       ampr    *       *       159
</code>
</pre></blockquote>
<h2><a name="ss13.3">13.3 Ex&eacute;cution de <em>node</em> depuis
<em>ax25d</em></a></h2>
<p>L'invocation du programme <em>node</em> par le d&eacute;mon
<em>ax25d</em> n&eacute;cessite l'ajout de r&egrave;gles
appropri&eacute;es au fichier <code>/etc/ax25/ax25d.conf</code>. Je
souhaitais une configuration telle que les utilisateurs puissent se
connecter soit &agrave; <em>node</em> soit &agrave; un service de
leur choix. <em>ax25d</em> l'autorise par le biais d'une
cr&eacute;ation astucieuse d'alias de ports. Par exemple, partant
de la configuration d'<em>ax25d</em> donn&eacute;e plus haut, on
veut que tous les utilisateurs se connectant &agrave;
<code>VK2KTJ-1</code> re&ccedil;oivent le noeud. Pour cela, on
ajoute la r&egrave;gle suivante au fichier
<code>/etc/ax25/ax25d.conf</code>&nbsp;:</p>
<blockquote>
<pre>
<code>[vk2ktj-1 via radio]
default    *     *    *   *   *   0    root /usr/sbin/node node
</code>
</pre></blockquote>
Linux r&eacute;pondra &agrave; toute demande de connexion sur le
port AX.25 `<code>radio</code>' d'identifiant
`<code>VK2KTJ-1</code>' en ex&eacute;cutant le programme
<em>nde</em>.
<h2><a name="ss13.4">13.4 Ex&eacute;cution de <em>node</em> depuis
<em>inetd</em></a></h2>
<p>Offrir la possibilit&eacute; d'ouvrir une session telnet sur
votre machine et d'acc&eacute;der au programme <em>node</em> est
une tache plut&ocirc;t facile. Commencez par choisir le port auquel
les utilisateurs se connecteront. Dans mon exemple, j'ai pris
arbitrairement le port 3694 bien que Tomi d&eacute;taille dans sa
documentation la marche &agrave; suivre pour remplacer le
d&eacute;mon telnet usuel par le programme <em>node</em>.</p>
<p>Il faut modifier deux fichiers.</p>
<p>Ajouter au fichier <code>/etc/services</code>&nbsp;:</p>
<blockquote>
<pre>
<code>node    3694/tcp        #OH2BNS's node software
</code>
</pre></blockquote>
et au fichier <code>/etc/inetd.conf</code>&nbsp;:
<blockquote>
<pre>
<code>node    stream  tcp     nowait  root    /usr/sbin/node node
</code>
</pre></blockquote>
Une fois <em>inetd</em> red&eacute;marr&eacute;, tout utilisateur
effectuant un telnet vers le port 3694 de votre machine se verra
demander un login et, selon la configuration, un mot de passe avant
d'&ecirc;tre connect&eacute; &agrave; <em>node</em>.
<h2><a name="s14">14. Configuration de <em>axspawn</em>.</a></h2>
<p><em>axspawn</em> permet aux stations AX.25 qui se connectent
d'ouvrir une session sur votre machine. Il peut &ecirc;tre
lanc&eacute; par le programme <em>ax25d</em> d&eacute;crit
ci-dessus d'une fa&ccedil;on similaire &agrave; <em>node</em>. Pour
ouvrir une session utilisateur, vous ajouterez une variante de la
ligne suivante au fichier
<code>/etc/ax25/ax25d.conf</code>&nbsp;:</p>
<blockquote>
<pre>
<code>default * * * * * 1 root /usr/sbin/axspawn axspawn %u
</code>
</pre></blockquote>
Si la ligne s'ach&egrave;ve sur le caract&egrave;re <code>+</code>,
l'utilisateur devra appuyer sur la touche d'entr&eacute;e avant de
pouvoir s'identifier. Par d&eacute;faut, il n'y a pas d'attente.
Toutes les configurations d'h&ocirc;tes qui suivent la ligne
pr&eacute;c&eacute;dente d&eacute;clencheront l'appel
d'<em>axspawn</em> lorsqu'ils se connecteront. Quand
<em>axspawn</em> s'ex&eacute;cute, il v&eacute;rifie tout d'abord
que l'argument de ligne de commande fourni est un identifiant
licite, supprime le SSID puis parcourt le fichier
<code>/etc/passwd</code> pour voir si l'utilisateur dispose d'un
compte. Si c'est le cas et que le mot de passe associ&eacute; est
<code>""</code> (vide) ou <code>+</code>, la session utilisateur
est ouverte. En pr&eacute;sence d'un autre mot de passe, celui-ci
est demand&eacute;. Si le compte n'existe pas, <em>axspawn</em>
peut &ecirc;tre configur&eacute; de fa&ccedil;on &agrave; en
cr&eacute;er un automatiquement.
<h2><a name="ss14.1">14.1 Mise au point du fichier
<code>/etc/ax25/axspawn.conf</code></a></h2>
<p>Le format du fichier est le suivant&nbsp;:</p>
<blockquote>
<pre>
<code># /etc/ax25/axspawn.conf
#
# creation automatique de comptes utilisateur
create    yes
#
# compte d'invite en l'absence de creation automatique et si tout le reste
# echoue. Se desactive ave "no"
guest     no
#
# id ou nom du groupe pour le compte automatique
group     ax25
#
# id de depart
first_uid 2001
#
# id maximale
max_uid   3000
#
# emplacement des repertoires utilisateurs crees automatiquement
home      /home/ax25
#
# shell utilisateur
shell     /bin/bash
#
# lien entre les id utilisateur et le numero d'identification pour les
# connexions sortantes
associate yes
</code>
</pre></blockquote>
<p>D&eacute;tail des huit caract&eacute;ristiques configurables de
<em>axspawn</em>&nbsp;:</p>
<dl>
<dt><b>#</b></dt>
<dd>
<p>indique un commentaire.</p>
</dd>
<dt><b>create</b></dt>
<dd>
<p>si ce champ est positionn&eacute; &agrave; <code>yes</code>
alors <em>axspawn</em> tentera de cr&eacute;er un compte pour tout
utilisateur qui n'appara&icirc;t pas dans le fichier
<code>/etc/passwd</code>.</p>
</dd>
<dt><b>guest</b></dt>
<dd>
<p>fournit le nom du compte &agrave; employer pour les utilisateurs
n'en ayant pas lorsque <em>create</em> est positionn&eacute;
&agrave; <code>no</code>. On y trouve souvent <code>ax25</code> ou
<code>guest</code>.</p>
</dd>
<dt><b>group</b></dt>
<dd>
<p>indique le groupe pour les utilisateurs qui n'apparaissent pas
dans le fichier <code>/etc/passwd</code>.</p>
</dd>
<dt><b>first_uid</b></dt>
<dd>
<p>valeur de d&eacute;part des identit&eacute;s utilisateur lors de
la cr&eacute;ation automatique</p>
</dd>
<dt><b>max_uid</b></dt>
<dd>
<p>identit&eacute; utilisateur maximale disponible &agrave; la
cr&eacute;ation automatique</p>
</dd>
<dt><b>home</b></dt>
<dd>
<p>r&eacute;pertoire dans lequel seront cr&eacute;&eacute;s les
comptes utilisateurs</p>
</dd>
<dt><b>shell</b></dt>
<dd>
<p>shell de login des nouveaux utilisateurs</p>
</dd>
<dt><b>associate</b></dt>
<dd>
<p>indique si les connexions sortantes de l'utilisateur ont lieu
avec son identifiant d'appel personnel ou avec celui de votre
station</p>
</dd>
</dl>
<h2><a name="s15">15. Configuration de <em>pms</em></a></h2>
<p><em>pms</em> fournit un syst&egrave;me simple de messagerie
personnelle. Il a &eacute;t&eacute; &eacute;crit &agrave; l'origine
par Alan Cox. Dave Brown, N2RJT,
<code>&lt;dcb@vectorbd.com&gt;</code> en a repris le
d&eacute;veloppement. Les fonctionnalit&eacute;s sont
rest&eacute;es simples&nbsp;: envoi de courrier &eacute;lectronique
au propri&eacute;taire de la station et obtention d'informations
limit&eacute;e. Dave travaille actuellement &agrave; les
enrichir.</p>
<p>Il faut tenir &agrave; jour quelques fichiers contenant des
informations sur le syst&egrave;me et ajouter les entr&eacute;es
ad&eacute;quates au fichier <code>ax25d.conf</code> de telle sorte
qu'il s'ex&eacute;cute pour les utilisateurs connect&eacute;s.</p>
<h2><a name="ss15.1">15.1 Mise au point du fichier
<code>/etc/ax25/pms.motd</code></a></h2>
<p>Le fichier <code>/etc/ax25/pms.motd</code> contient
l'&eacute;quivalent du message du jour affich&eacute; aux
utilisateurs apr&egrave;s qu'ils se sont connect&eacute;s et ont
re&ccedil;u l'en-t&ecirc;te usuel de BBS. Il s'agit d'un simple
fichier texte qui sera transmis tel quel.</p>
<h2><a name="ss15.2">15.2 Mise au point du fichier
<code>/etc/ax25/pms.info</code></a></h2>
<p><code>/etc/ax25/pms.info</code> est &eacute;galement un simple
fichier texte dans lequel vous renseignerez des informations plus
d&eacute;taill&eacute;es relatives &agrave; votre station ou
&agrave; sa configuration. Ce fichier est transmis aux utilisateurs
en r&eacute;ponse &agrave; la commande <code>Info</code> depuis
l'invite <code>PMS</code>.</p>
<h2><a name="ss15.3">15.3 Associer les identifiants AX.25 aux
comptes utilisateurs</a></h2>
<p>Lors de l'envoi d'un courrier &agrave; destination d'un
identifiant d'appel AX.25, <em>pms</em> s'attend &agrave; trouver
une association avec une identit&eacute; d'utilisateur usuelle sur
la station. La section suivante d&eacute;crit le processus.</p>
<h2><a name="ss15.4">15.4 Ajout de PMS au fichier
<code>/etc/ax25/ax25d.conf</code></a></h2>
<p>L'ajout de <em>pms</em> au fichier <code>ax25d.conf</code> est
tr&egrave;s simple. Il vous faut n&eacute;anmoins garder un
&eacute;l&eacute;ment en t&ecirc;te&nbsp;: Dave a ajout&eacute; la
prise en compte d'arguments de ligne commande &agrave; PMS afin de
g&eacute;rer diff&eacute;rentes conventions de fin de ligne. AX.25
et NetRom requi&egrave;rent une fin de ligne et un saut de ligne
tandis que le standard Unix comprend juste le caract&egrave;re de
fin de ligne. Par exemple, pour une entr&eacute;e correspondant au
lancement par d&eacute;faut de PMS &agrave; l'ouverture d'une
connexion sur un port AX.25, vous ajouteriez&nbsp;:</p>
<blockquote>
<pre>
<code>default  1  10 5 100 5   0    root  /usr/sbin/pms pms -a -o vk2ktj
</code>
</pre></blockquote>
<p>Cette ligne ex&eacute;cute <em>pms</em> en lui pr&eacute;cisant
qu'il s'agit d'une connexion AX.25 et que PMS a pour
propri&eacute;taire <code>vk2ktj</code>. Consultez la page de
<em>man</em> pour l'emploi d'autres m&eacute;thodes de
connexion.</p>
<h2><a name="ss15.5">15.5 Tester PMS</a></h2>
<p>Ex&eacute;cutez depuis la ligne de commande&nbsp;:</p>
<pre>
# /usr/sbin/pms -u vk2ktj -o vk2ktj
</pre>
En rempla&ccedil;ant votre identifiant d'appel par le mien, cela
lancera pms en lui imposant l'emploi de la convention unix de fin
de ligne et en donnant <code>vk2ktj</code> comme identit&eacute;
&agrave; l'utilisateur connect&eacute;.
<p>Vous pouvez &eacute;galement demander &agrave; un autre noeud de
se connecter afin de confirmer le fonctionnement de votre
<code>ax25d.conf</code>.</p>
<h2><a name="s16">16. Configuration des programmes
<em>user_call</em></a></h2>
<p>On trouve derri&egrave;re ce nom les programmes
<em>ax25_call</em> et <em>netrom_call</em>. Il s'agit de programmes
tr&egrave;s simples destin&eacute;s &agrave; &ecirc;tre
lanc&eacute;s par <em>ax25d</em> pour automatiser les connexions
depuis des h&ocirc;tes distants. On peut bien s&ucirc;r les
employer dans des scripts ou via d'autres d&eacute;mons tels
<em>node</em>.</p>
<p>Ils &eacute;quivalent au programme <em>call</em> et n'effectuent
aucun traitement sur les donn&eacute;es, ce qui vous &eacute;pargne
le probl&egrave;me des conversions de fin de lignes.</p>
<p>Un exemple pour commencer. On suppose que vous disposez d'un
petit r&eacute;seau personnel, d'une station Linux tenant lieu de
passerelle radio et d'une autre machine --&nbsp;on prendra un noeud
BPQ&nbsp;-- qui lui est connect&eacute;e par un lien ethernet.</p>
<p>En principe, si vous voulez que les utilisateurs radio puissent
joindre le noeud BPQ, il leur faudra le faire par
l'interm&eacute;diaire de votre noeud Linux ou se connecter au
d&eacute;mon node puis &eacute;tablir la connexion.
<em>ax25_call</em> peut simplifier le processus s'il est
invoqu&eacute; par <em>ax25d</em>.</p>
<p>Prenons le cas d'un noeud BPQ d'identifiant
<code>VK2KTJ-9</code>, la station Linux &eacute;tant munie d'un
port AX.25/ethernet nomm&eacute; `<code>bpq</code>'.
`<code>radio</code>' d&eacute;signera le port radio de la machine
passerelle.</p>
<p>Un enregistrement dans le fichier
<code>/etc/ax25/ax25d.conf</code> du type&nbsp;:</p>
<blockquote>
<pre>
<code>[VK2KTJ-1 via radio]
default    * * * *   *   *  *
                root /usr/sbin/ax25_call ax25_call bpq %u vk2ktj-9
</code>
</pre></blockquote>
permet aux les connexions directes &agrave; `<code>VK2KTJ-1</code>'
qui n'est autre que le d&eacute;mon Linux <em>ax25d</em>, celui ci
les commutant automatiquement sur un lien AX.25 &agrave;
`<code>VK2KTJ-9</code>' via l'interface `<code>bpq</code>'.
<p>Vous pouvez essayer toutes sortes d'autres configurations. Les
utilitaires `<em>netrom_call</em>' et `<em>rose_call</em>'
op&egrave;rent de fa&ccedil;on similaire. Un radioamateur en a fait
usage pour faciliter l'acc&egrave;s &agrave; un BBS distant. En
principe, on aurait d&ucirc; entrer &agrave; la main une
cha&icirc;ne de connexion d&eacute;mesur&eacute;ment longue. Il a
donc ajout&eacute; une entr&eacute;e faisant apparaitre le BBS
comme une entit&eacute; appartenant au r&eacute;seau local,
<em>ax25d</em> servant en fait de proxy pour l'acc&egrave;s
&agrave; la machine distante.</p>
<h2><a name="s17">17. Configuration des commandes Rose Uplink et
Downlink</a></h2>
<p>Si vous avez l'habitude des r&eacute;alisations Rose &agrave;
base de ROM, vous ne serez pas d&eacute;pays&eacute; par la
m&eacute;thode d'appel AX.25 &agrave; travers un r&eacute;seau
Rose. Soit un noeud local d'utilisateurs Rose d'identifiant
<code>VK2KTJ-5</code> et un appelant AX.25 souhaitant se connecter
&agrave; <code>VK5XXX</code> au noeud Rose distant
<code>5050882960</code>, il lancera la commande&nbsp;:</p>
<blockquote>
<pre>
<code>c vk5xxx v vk2ktj-5 5050 882960
</code>
</pre></blockquote>
<p>Au niveau du noeud distant, <code>VK5XXX</code> recevra une
connexion avec l'identifiant des utilisateurs locaux AX.25
digip&eacute;t&eacute;e par l'interm&eacute;diaire de l'identifiant
des noeuds Rose distants.</p>
<p>La couche protocolaire Rose de Linux ne g&egrave;re pas cette
fonctionnalit&eacute; dans le noyau mais les deux applications
<em>rsuplnk</em> et <em>rsdwnlnk</em> savent s'en charger.</p>
<h2><a name="ss17.1">17.1 Configuration d'une liaison Rose
descendante</a></h2>
<p>Afin que votre station Linux accepte un appel Rose et
&eacute;tablisse une connexion AX.25 vers une destination &agrave;
l'&eacute;coute de laquelle il n'est pas, vous devez ajouter un
enregistrement &agrave; votre fichier
<code>/etc/ax25/ax25d.conf</code>. En principe, cette ligne
correspondra au comportement par d&eacute;faut pour les connexions
Rose entrantes. Par exemple, vous &ecirc;tes &agrave;
l'&eacute;coute des demandes d'acc&egrave;s Rose aux destinations
telles <code>NODE-0</code> ou <code>HEARD-0</code> que vous
g&eacute;rez localement, mais toutes les autres connexions sont
transmises &agrave; la commande <em>rsdwnlink</em> sous
l'hypoth&egrave;se qu'il s'agit d'utilisateurs AX.25.</p>
<p>Une configuration typique&nbsp;:</p>
<blockquote>
<pre>
<code>#
{* via rose}
NOCALL   * * * * * *  L
default  * * * * * *  - root  /usr/sbin/rsdwnlnk rsdwnlnk 4800 vk2ktj-5
#
</code>
</pre></blockquote>
<p>Avec cette configuration, tout appel qui effectue une connexion
Rose sur votre noeud Linux vers une destination &agrave;
l'&eacute;coute de laquelle vous ne vous tenez pas se verra
converti en une connexion AX.25 sur le port <code>4800</code> avec
<code>VK2KTJ-5</code> pour chemin.</p>
<h2><a name="ss17.2">17.2 Configuration d'un liaison Rose
montante</a></h2>
<p>Pour que votre station Linux accepte les connexions AX.25 d'une
fa&ccedil;on similaire &agrave; celle du noeud Rose, vous ajouterez
&agrave; votre fichier <code>/etc/ax25/ax25d.conf</code> une ligne
du type&nbsp;:</p>
<blockquote>
<pre>
<code>#
[VK2KTJ-5* via 4800]
NOCALL   * * * * * *  L
default  * * * * * *  - root  /usr/sbin/rsuplnk rsuplnk rose
#
</code>
</pre></blockquote>
<p>Notez la syntaxe particuli&egrave;re pour l'identifiant local.
Le caract&egrave;re `<code>*</code>' indique que l'application doit
&ecirc;tre invoqu&eacute;e si l'identifiant est reconnu dans le
chemin de r&eacute;p&eacute;tition d'une connexion.</p>
<p>Avec cette configuration, un appel AX.25 peut &eacute;tablir des
appels Rose au moyen de la s&eacute;quence pr&eacute;sent&eacute;e
dans l'introduction. Toute personne demandant un relai via
l'identifiant <code>VK2KTJ-5</code> sur le port AX.25
<code>4800</code> sera trait&eacute; par la commande
<em>rsuplnk</em>.</p>
<h2><a name="s18">18. Association des identifiants AX.25 aux
comptes utilisateurs</a></h2>
<p>Dans de nombreuses situations, il est fortement souhaitable
d'associer un identifiant &agrave; compte utilisateur. Par exemple
lorsque plusieurs op&eacute;rateurs radioamateurs partagent la
m&ecirc;me machine et souhaitent employer leur propre identifiant
lorsqu'ils effectuent des appels ou lorsque des utilisateurs de PMS
d&eacute;sirent dialoguer avec quelqu'un en particulier sur une
station.</p>
<p>Les utilitaires AX.25 permettent de r&eacute;aliser cette
association. On l'a d&eacute;j&agrave; &eacute;voqu&eacute; dans la
section relative &agrave; PMS mais je le r&eacute;p&egrave;te ici
afin de m'assurer que vous ne passerez pas &agrave;
c&ocirc;t&eacute;.</p>
<p>L'association s'effectue gr&acirc;ce &agrave; la commande
<em>axparms</em>. Par exemple&nbsp;:</p>
<blockquote>
<pre>
<code># axparms -assoc vk2ktj terry
</code>
</pre></blockquote>
Cette commande associe l'identifiant AX.25 <code>vk2ktj</code>
&agrave; l'utilisateur <code>terry</code>. Tout courrier
destin&eacute; &agrave; <code>vk2ktj</code> sur <em>pms</em> sera
transmis au compte Linux <code>terry</code>.
<p>Songez &agrave; mettre ces correspondances dans vos fichiers
<em>rc</em> de d&eacute;marrage afin qu'elles soient disponibles
&agrave; chaque r&eacute;initialisation.</p>
<p><b>Notez</b> que vous ne devez surtout pas associer un
identifiant au compte <code>root</code> vu que cela pourrait poser
des probl&egrave;mes de configuration &agrave; d'autres
programmes.</p>
<h2><a name="s19">19. Entr&eacute;es du syst&egrave;me de fichier
<code>/proc/</code></a></h2>
<p>Le pseudo syst&egrave;me de fichiers <code>/proc</code> contient
divers fichiers sp&eacute;cifiques aux programmes AX.25 et NetRom.
Ces fichiers sont normalement employ&eacute;s par les utilitaires
AX.25 mais leur formatage est tel qu'ils peuvent vous
int&eacute;resser. Le format est suffisamment simple pour ne pas
n&eacute;cessiter beaucoup d'explications.</p>
<dl>
<dt><b>/proc/net/arp</b></dt>
<dd>
<p>&nbsp;: liste des associations entre adresses IP et adresses de
niveau MAC, qu'il s'agisse d'ethernet, d'AX.25 ou d'un autre
protocole MAC.</p>
</dd>
<dt><b>/proc/net/ax25</b></dt>
<dd>
<p>&nbsp;: sockets AX.25 ouverts. Elles peuvent &ecirc;tre en
attente de connexion ou actives.</p>
</dd>
<dt><b>/proc/net/ax25_bpqether</b></dt>
<dd>
<p>&nbsp;: identifiants AX.25 de type Ethernet BPQ.</p>
</dd>
<dt><b>/proc/net/ax25_calls</b></dt>
<dd>
<p>&nbsp;: &eacute;quivalences entre identit&eacute;s
d'utilisateurs Linux et identifiants d'appel telles que
d&eacute;finies par la commande <em>axparms -assoc</em>.</p>
</dd>
<dt><b>/proc/net/ax25_route</b></dt>
<dd>
<p>&nbsp;: informations sur les chemins AX.25</p>
</dd>
<dt><b>/proc/net/nr</b></dt>
<dd>
<p>&nbsp;: sockets NetRom ouvertes. Elles peuvent &ecirc;tre en
attente de connexion ou actives.</p>
</dd>
<dt><b>/proc/net/nr_neigh</b></dt>
<dd>
<p>&nbsp;: liste de voisins NetRom</p>
</dd>
<dt><b>/proc/net/nr_nodes</b></dt>
<dd>
<p>&nbsp;: informations sur les voisins NetRom</p>
</dd>
<dt><b>/proc/net/rose</b></dt>
<dd>
<p>&nbsp;: sockets Rose ouvertes. Elles peuvent &ecirc;tre en
attente de connexion ou actives.</p>
</dd>
<dt><b>/proc/net/rose_nodes</b></dt>
<dd>
<p>&nbsp;: correspondances entre destinations et voisins Rose</p>
</dd>
<dt><b>/proc/net/rose_neigh</b></dt>
<dd>
<p>&nbsp;: liste de voisins Rose</p>
</dd>
<dt><b>/proc/net/rose_routes</b></dt>
<dd>
<p>&nbsp;: connexions Rose en cours</p>
</dd>
</dl>
<h2><a name="s20">20. Programmation r&eacute;seau AX.25, NetRom,
Rose</a></h2>
<p>L'avantage le plus important li&eacute; &agrave; l'utilisation
des protocoles par paquets radioamateurs du noyau r&eacute;side en
la facilit&eacute; de d&eacute;veloppement des programmes et
applications qui les emploient.</p>
<p>Bien que la programmation r&eacute;seau sous Unix d&eacute;borde
du cadre de ce document, je vais d&eacute;crire les principaux
&eacute;l&eacute;ments d'utilisation des protocoles AX.25, NetRom
et Rose au sein de vos programmes.</p>
<h2><a name="ss20.1">20.1 Familles d'adresses</a></h2>
<p>La programmation AX.25, NetRom et Rose est assez semblable
&agrave; la programmation TCP/IP sous Linux. LEs principales
diff&eacute;rences se font au niveau des familles d'adresses et des
structures d'adresse &agrave; mettre en place.</p>
<p>Les noms de familles d'adresses pour AX.25, NetRom et Rose sont
respectivement <code>AF_AX.25</code>, <code>AF_NETROM</code> et
<code>AF_ROSE</code>.</p>
<h2><a name="ss20.2">20.2 Fichiers d'en-t&ecirc;te</a></h2>
<p>Incluez toujours les fichiers `<code>ax25.h</code>',
`<code>netrom.h</code>' ou `<code>rose.h</code>' si vous vous
servez de ces protocoles. Les d&eacute;buts de fichiers-types
ressemblent &agrave; quelque chose du style&nbsp;:</p>
<p>Pour AX.25&nbsp;:</p>
<blockquote>
<pre>
<code>#include &lt;ax25.h&gt;
int s, addrlen = sizeof(struct full_sockaddr_ax25);
struct full_sockaddr_ax25 sockaddr;
sockaddr.fsa_ax25.sax25_family = AF_AX.25
</code>
</pre></blockquote>
<p>Pour NetRom&nbsp;:</p>
<blockquote>
<pre>
<code>#include &lt;ax25.h&gt;
#include &lt;netrom.h&gt;
int s, addrlen = sizeof(struct full_sockaddr_ax25);
struct full_sockaddr_ax25 sockaddr;
sockaddr.fsa_ax25.sax25_family = AF_NETROM;
</code>
</pre></blockquote>
<p>Pour Rose&nbsp;:</p>
<blockquote>
<pre>
<code>#include &lt;ax25.h&gt;
#include &lt;rose.h&gt;
int s, addrlen = sizeof(struct sockaddr_rose);
struct sockaddr_rose sockaddr;
sockaddr.srose_family = AF_ROSE;
</code>
</pre></blockquote>
<h2><a name="ss20.3">20.3 Mise en forme des identifiants et
exemples</a></h2>
<p>La librairie <code>lib/ax25.a</code> du paquetage des
utilitaires AX.25 contient des routines de conversion des
identifiants. Vous pouvez bien s&ucirc;r &eacute;crire les
v&ocirc;tres si vous le souhaitez.</p>
<p>Les programmes <em>user_call</em> sont d'excellents exemples
&agrave; partir desquels travailler. Leur source code est inclus
dans les outils AX.25. Si vous passez un peu de temps &agrave; les
examiner, vous remarquerez rapidement que quatre-vingt-dix pour
cent du travail consiste &agrave; pr&eacute;parer l'ouverture des
sockets. En fait la connexion est rapide mais la mise en place
prend du temps.</p>
<p>Les exemples sont assez simples pour ne pas pr&ecirc;ter
&agrave; confusion. Si vous avez des questions, adressez-vous
directement &agrave; la liste de diffusion <code>linux-hams</code>
o&ugrave; quelqu'un vous aidera s&ucirc;rement.</p>
<h2><a name="s21">21. Quelques configurations-types</a></h2>
<p>Ci-suivent des exemples de configurations parmi les plus
typiques. Il ne s'agit que d'un guide dans la mesure o&ugrave; il y
a autant de fa&ccedil;ons de configurer un r&eacute;seau qu'il y a
de r&eacute;seaux disponibles mais il peut vous servir de point de
d&eacute;part.</p>
<h2><a name="ss21.1">21.1 Un petit r&eacute;seau Ethernet local
avec un routeur Linux vers un r&eacute;seau radio local</a></h2>
<p>Nombre d'entre vous disposent de petits r&eacute;seaux locaux
chez eux et d&eacute;sirent connecter les stations de ce
r&eacute;seau &agrave; un r&eacute;seau radio local. J'ai ce type
de configuration chez moi. J'ai r&eacute;ussi &agrave; obtenir un
bloc d'adresses contigu&euml;s que je g&egrave;re par une route
unique sur mon Ethernet local. Votre coordinateur IP local vous
aidera si vous souhaitez proc&eacute;der ainsi. Les adresses du
r&eacute;seau Ethernet local forment un sous-ensemble des adresses
radio. Voici ma configuration personnelle avec le routeur
Linux&nbsp;:</p>
<blockquote>
<pre>
<code>                                          .      .   .    .    . .
  -+-                                .
   | Reseau        /---------\     .    Reseau 
   | 44.136.8.96/29|         |    .     44.136.8/24        \ | /
   |               | Routeur |   .                          \|/
   |               |         |  .                            |
   |          eth0 |    &amp;    |  .  /-----\    /----------\   |
   +---------------+         +-----| TNC |----| Radio    |---/
   |   44.136.8.97 | serveur |  .  \-----/    \----------/
   |               |         | sl0
   |               |  Linux  | 44.136.8.5
   |               |         |    .
   |               |         |     .
   |               \_________/       .
  -+-                                     .      .   .    .    . .
</code>
</pre></blockquote>
<blockquote>
<pre>
<code>#!/bin/sh
# /etc/rc.net
# Configuration d'un port AX.25 de type KISS et d'une interface Ethernet

echo "/etc/rc.net"
echo "  Configuring:"

echo -n "    loopback:"
/sbin/ifconfig lo 127.0.0.1
/sbin/route add 127.0.0.1
echo " done."

echo -n "    ethernet:"
/sbin/ifconfig eth0 44.136.8.97 netmask 255.255.255.248 \
                broadcast 44.136.8.103 up
/sbin/route add 44.136.8.97 eth0
/sbin/route add -net 44.136.8.96 netmask 255.255.255.248 eth0
echo " done."

echo -n "    AX.25: "
kissattach -i 44.136.8.5 -m 512 /dev/ttyS1 4800
ifconfig sl0 netmask 255.255.255.0 broadcast 44.136.8.255
route add -host 44.136.8.5 sl0
route add -net 44.136.8.0 window 1024 sl0

echo -n "    Netrom: "
nrattach -i 44.136.8.5 netrom

echo "  Routing:"
/sbin/route add default gw 44.136.8.68 window 1024 sl0
echo "    default route."
echo done.

# end
</code>
</pre></blockquote>
<p><code>/etc/ax25/axports</code></p>
<blockquote>
<pre>
<code># name  callsign        speed   paclen  window  description
4800    VK2KTJ-0        4800    256     2       144.800 MHz
</code>
</pre></blockquote>
<p><code>/etc/ax25/nrports</code></p>
<blockquote>
<pre>
<code># name  callsign        alias   paclen  description
netrom  VK2KTJ-9        LINUX   235     Linux Switch Port
</code>
</pre></blockquote>
<p><code>/etc/ax25/nrbroadcast</code></p>
<blockquote>
<pre>
<code># ax25_name     min_obs def_qual        worst_qual      verbose
4800            1       120             10              1
</code>
</pre></blockquote>
<ul>
<li>L'option IP_FORWARDING doit &ecirc;tre activ&eacute;e dans le
noyau.</li>
<li>Les fichiers de configuration AX.25 correspondent
essentiellement &agrave; ceux donn&eacute;s dans les sections
pr&eacute;c&eacute;dentes. Reportez-y vous si
n&eacute;cessaire.</li>
<li>J'ai d&eacute;cid&eacute; d'attribuer au port radio une adresse
qui n'appartient pas au bloc attribu&eacute; &agrave; mon
r&eacute;seau local. Rien n'y obligeait et j'aurais d&ucirc;
facilement y affecter l'adresse <code>44.136.8.97</code>.</li>
<li><code>44.136.8.68</code> correspond &agrave; ma passerelle
d'encapsulation IP dans IP et est donc ma route par
d&eacute;faut.</li>
<li>Chaque station sur l'Ethernet est munie de la route
suivante&nbsp;:
<blockquote>
<pre>
<code>route add -net 44.0.0.0 netmask 255.0.0.0 \
        gw 44.136.8.97 window 512 mss 512 eth0
    
</code>
</pre></blockquote>
Les param&egrave;tres <em>mss</em> et <em>window</em> me permettent
d'obtenir les meilleures performances possibles aussi bien pour les
connexions Ethernet locales que pour les acc&egrave;s radio.</li>
<li>smail, http, ftp et d'autres d&eacute;mons s'ex&eacute;cutent
&eacute;galement sur le routeur qui est ainsi la seule station
&agrave; fournir aux autres des services.</li>
<li>Le routeur est un 386DX20 d'entr&eacute;e de gamme avec
20&nbsp;Mo de disque et une configuration Linux minimaliste.</li>
</ul>
<h2><a name="ss21.2">21.2 Passerelle d'encapsulation IP dans
IP</a></h2>
<p>L'emploi de Linux comme passerelle d'encapsulation IP est
maintenant courant &agrave; travers le monde. Le nouveau
gestionnaire de tunnel IP accepte les routes multiples
encapsul&eacute;es et rend obsol&egrave;te l'ancien d&eacute;mon
<em>ipip</em>.</p>
<p>Un sch&eacute;ma classique&nbsp;:</p>
<blockquote>
<pre>
<code>                                          .      .   .    .    . .
  ---                                .
   | Reseau        /----------\     .    Reseau 
   | 154.27.3/24   |          |    .     44.136.16/24       \ | /
   |               |  Linux   |   .                          \|/
   |               |          |  .                            |
   |          eth0 |          |  .  /-----\    /----------\   |
   +---------------+Passerelle+-----| TNC |----| Radio    |---/
   |   154.27.3.20 |          |  .  \-----/    \----------/
   |               |  IPIP    | sl0
   |               |          | 44.136.16.1
   |               |          |    .
   |               |          |     .
   |               \__________/       .
  ---                                     .      .   .    .    . .
</code>
</pre></blockquote>
<p>Voici les fichiers de configuration
int&eacute;ressants&nbsp;:</p>
<blockquote>
<pre>
<code># /etc/rc.net
# This file is a simple configuration that provides one KISS AX.25
# radio port, one Ethernet device, and utilises the kernel tunnel driver
# to perform the IPIP encapsulation/decapsulation
#
echo "/etc/rc.net"
echo "  Configuring:"
#
echo -n "    loopback:"
/sbin/ifconfig lo 127.0.0.1
/sbin/route add 127.0.0.1
echo " done."
#
echo -n "    ethernet:"
/sbin/ifconfig eth0 154.27.3.20 netmask 255.255.255.0 \
                broadcast 154.27.3.255 up
/sbin/route add 154.27.3.20 eth0
/sbin/route add -net 154.27.3.0 netmask 255.255.255.0 eth0
echo " done."
#
echo -n "    AX.25: "
kissattach -i 44.136.16.1 -m 512 /dev/ttyS1 4800
/sbin/ifconfig sl0 netmask 255.255.255.0 broadcast 44.136.16.255
/sbin/route add -host 44.136.16.1 sl0
/sbin/route add -net 44.136.16.0 netmask 255.255.255.0 window 1024 sl0
#
echo -n "    tunnel:"
/sbin/ifconfig tunl0 44.136.16.1 mtu 512 up
#
echo done.
#
echo -n "Routing ... "
source /etc/ipip.routes
echo done.
#
# end.
</code>
</pre></blockquote>
<p>et&nbsp;:</p>
<blockquote>
<pre>
<code># /etc/ipip.routes
# This file is generated using the munge script
#
/sbin/route add -net 44.134.8.0 netmask 255.255.255.0 tunl0 gw 134.43.26.1
/sbin/route add -net 44.34.9.0 netmask 255.255.255.0 tunl0 gw 174.84.6.17
/sbin/route add -net 44.13.28.0 netmask 255.255.255.0 tunl0 gw 212.37.126.3
   ...
   ...
   ...
</code>
</pre></blockquote>
<p><code>/etc/ax25/axports</code></p>
<blockquote>
<pre>
<code># name  callsign        speed   paclen  window  description
4800    VK2KTJ-0        4800    256     2       144.800 MHz
</code>
</pre></blockquote>
<p>Quelques points &agrave; noter&nbsp;:</p>
<ul>
<li>Le nouveau gestionnaire de tunnel utilise le champ <em>gw</em>
de la table de routage &agrave; la place du param&egrave;tre
<em>pointopoint</em> pour fixer l'adresse de la passerelle IPIP
distante. Il supporte ainsi plusieurs routes par interface.</li>
<li>Vous <b>pouvez</b> attribuer la m&ecirc;me adresse &agrave;
deux interfaces r&eacute;seau. Dans l'exemple courant,
<code>sl0</code> et <code>tunl0</code> ont tous deux
&eacute;t&eacute; munis de l'adresse IP du port Radio. La
passerelle distante r&eacute;cup&egrave;re ainsi la bonne adresse
de votre passerelle dans les datagrammes encapsul&eacute;s qu'elle
re&ccedil;oit.</li>
<li>Les commandes de routage relatives aux routes
encapsul&eacute;es peuvent &ecirc;tre g&eacute;n&eacute;r&eacute;es
automatiquement via une version modifi&eacute;e du script
<em>munge</em> incluse ci-dessous. Les instructions de routage sont
&eacute;crites dans un fichier s&eacute;par&eacute; et
appel&eacute;es par la commande <code>source
/etc/ipip.routes</code> de <em>bash</em> (en supposant que vous
employez les m&ecirc;mes conventions). Le fichier source doit
&ecirc;tre au format de commande route NOS.</li>
<li>Remarquez l'emploi de l'argument <em>window</em> dans la
commande <em>route</em>. Ce param&egrave;tre am&eacute;liore les
performances de la liaison radio.</li>
</ul>
<p>Le nouveau script tunnel-munge&nbsp;:</p>
<blockquote>
<pre>
<code>#!/bin/sh
#
# From: Ron Atkinson &lt;n8fow@hamgate.cc.wayne.edu&gt;
#
#  This script is basically the 'munge' script written by Bdale N3EUA
#  for the IPIP daemon and is modified by Ron Atkinson N8FOW. It's 
#  purpose is to convert a KA9Q NOS format gateways route file 
#  (usually called 'encap.txt') into a Linux routing table format
#  for the IP tunnel driver.               
#
#        Usage: Gateway file on stdin, Linux route format file on stdout.
#               eg.  tunnel-munge &lt; encap.txt &gt; ampr-routes
#
# NOTE: Before you use this script be sure to check or change the 
#       following items:
#
#     1) Change the 'Local routes' and 'Misc user routes' sections
#        to routes that apply to your own area (remove mine please!)
#     2) On the fgrep line be sure to change the IP address to YOUR
#        gateway Internet address. Failure to do so will cause serious
#        routing loops.
#     3) The default interface name is 'tunl0'. Make sure this is
#        correct for your system.

echo "#"
echo "# IP tunnel route table built by $LOGNAME on `date`"
echo "# by tunnel-munge script v960307."
echo "#"
echo "# Local routes"
echo "route add -net 44.xxx.xxx.xxx netmask 255.mmm.mmm.mmm dev sl0"
echo "#"
echo "# Misc user routes"
echo "#"
echo "# remote routes"

fgrep encap | grep "^route" | grep -v " XXX.XXX.XXX.XXX" | \
awk '{
        split($3, s, "/")
        split(s[1], n,".")
        if      (n[1] == "")    n[1]="0"
        if      (n[2] == "")    n[2]="0"
        if      (n[3] == "")    n[3]="0"
        if      (n[4] == "")    n[4]="0"
        if      (s[2] == "1")   mask="128.0.0.0"
        else if (s[2] == "2")   mask="192.0.0.0"
        else if (s[2] == "3")   mask="224.0.0.0"
        else if (s[2] == "4")   mask="240.0.0.0"
        else if (s[2] == "5")   mask="248.0.0.0"
        else if (s[2] == "6")   mask="252.0.0.0"
        else if (s[2] == "7")   mask="254.0.0.0"
        else if (s[2] == "8")   mask="255.0.0.0"
        else if (s[2] == "9")   mask="255.128.0.0"
        else if (s[2] == "10")  mask="255.192.0.0"
        else if (s[2] == "11")  mask="255.224.0.0"
        else if (s[2] == "12")  mask="255.240.0.0"
        else if (s[2] == "13")  mask="255.248.0.0"
        else if (s[2] == "14")  mask="255.252.0.0"
        else if (s[2] == "15")  mask="255.254.0.0"
        else if (s[2] == "16")  mask="255.255.0.0"
        else if (s[2] == "17")  mask="255.255.128.0"
        else if (s[2] == "18")  mask="255.255.192.0"
        else if (s[2] == "19")  mask="255.255.224.0"
        else if (s[2] == "20")  mask="255.255.240.0"
        else if (s[2] == "21")  mask="255.255.248.0"
        else if (s[2] == "22")  mask="255.255.252.0"
        else if (s[2] == "23")  mask="255.255.254.0"
        else if (s[2] == "24")  mask="255.255.255.0"
        else if (s[2] == "25")  mask="255.255.255.128"
        else if (s[2] == "26")  mask="255.255.255.192"
        else if (s[2] == "27")  mask="255.255.255.224"
        else if (s[2] == "28")  mask="255.255.255.240"
        else if (s[2] == "29")  mask="255.255.255.248"
        else if (s[2] == "30")  mask="255.255.255.252"
        else if (s[2] == "31")  mask="255.255.255.254"
        else                    mask="255.255.255.255"

if (mask == "255.255.255.255")  
        printf "route add -host %s.%s.%s.%s gw %s dev tunl0\n"\
                ,n[1],n[2],n[3],n[4],$5
else                            
        printf "route add -net %s.%s.%s.%s gw %s netmask %s dev tunl0\n"\
                ,n[1],n[2],n[3],n[4],$5,mask
 }'

echo "#"
echo "# default the rest of amprnet via mirrorshades.ucsd.edu"
echo "route add -net 44.0.0.0 gw 128.54.16.18 netmask 255.0.0.0 dev tunl0"
echo "#"
echo "# the end"
</code>
</pre></blockquote>
<h2><a name="ss21.3">21.3 Configuration d'une passerelle
d'encapsulation AXIP</a></h2>
<p>Nombre de passerelles Radio Amateur avec l'Internet encapsulent
AX.25, NetRom et Rose dans IP. Le cas des trames AX.25
rel&egrave;ve du RFC 1226 &eacute;crit par Brian Kantor. Mike
Westerhof a r&eacute;alis&eacute; un d&eacute;mon d'encapsulation
AX.25 sous Unix en 1991. Le paquetage des utilitaires ax25-utils en
contient une version l&eacute;g&egrave;rement
am&eacute;lior&eacute;e.</p>
<p>Un programme d'encapsulation AXIP re&ccedil;oit des trames AX.25
d'un c&ocirc;t&eacute;, examine la destination AX.25 afin d'en
d&eacute;duire l'adresse IP &agrave; laquelle les envoyer et les
encapsule dans un datagramme TCP/IP avant de les &eacute;mettre. Il
accepte &eacute;galement les datagrammes TCP/IP qui contiennent des
trames AX.25, extrait ces derni&egrave;res et les traite comme s'il
s'agissait de trames AX.25 re&ccedil;ues depuis un port AX.25. La
distinction des trames IP contenant de l'AX.25 se fait par
l'interm&eacute;diaire d'un identifiant de protocole &eacute;gal
&agrave; 4 (la valeur 94 est possible quoique
d&eacute;su&egrave;te). Le RFC 1226 d&eacute;crit tout &ccedil;a en
d&eacute;tail.</p>
<p>L'outil <em>ax25ipd</em> inclus dans le paquetage ax25-utils se
pr&eacute;sente comme un programme g&eacute;rant une interface
KISS, au travers de laquelle passeront des trames AX.25, et une
interface d'adaptation TCP/IP. Il se configure par
l'interm&eacute;diaire du fichier
<code>/etc/ax25/ax25ipd.conf</code>.</p>
<h3>Options de configuration d'AXIP</h3>
<p><em>ax25ipd</em> op&egrave;re dans deux modes&nbsp;:
"digipeater" et "tnc". En mode "tnc", le d&eacute;mon agit comme un
TNC kiss. Vous lui fournissez des trames d'encapsulation KISS et il
les transmet comme dans la configuration normale. En mode
"digipeater", le d&eacute;mon agit comme un noeud de transmission
AX.25. Les diff&eacute;rences entre ces deux modes sont
subtiles.</p>
<p>Vous configurez dans le fichier &agrave; cet effet les "routes"
ou correspondances entre les identifiants AX.25 et les adresses IP
des machines auxquelles vous d&eacute;sirez &eacute;galement
transmettre des paquets AX.25. Chaque route dispose d'options qui
seront expliqu&eacute;es un peu plus tard.</p>
<p>Voici les autres options &agrave; configurer&nbsp;:</p>
<ul>
<li>le tty du d&eacute;mon <em>ax25ipd</em> ainsi que sa vitesse
(en g&eacute;n&eacute;ral l'extr&eacute;mit&eacute; d'un
tuyau)</li>
<li>l'identifiant souhait&eacute; pour le mode "digipeat"</li>
<li>l'intervalle beacon</li>
<li>le choix entre une encapsulation AX.25 dans des datagrammes IP
ou bien dans des datagrammes UDP/IP. L'essentiel des passerelles
AXIP emploie une encapsulation IP mais certaines sont
situ&eacute;es derri&egrave;re des filtres qui ne laisseront passer
que les datagrammes UDP/IP. Le choix doit co&iuml;ncider avec ce
qui est attendu &agrave; l'autre extr&eacute;mit&eacute;.</li>
</ul>
<h3>Un fichier de configuration
<code>/etc/ax25/ax25ipd.conf</code>typique</h3>
<blockquote>
<pre>
<code>#
# fichier de configuration ax25ipd pour la station floyd.vk5xxx.ampr.org
#
# Transport axip. 'ip' garantit la compatibilite avec la plupart des
# autres passerelles.
#
socket ip
#
# Mode d'operation de ax25ipd (digi ou tnc)
#
mode tnc
#
# Si digi est selectionne, vous devez definir un identifiant. Si vous avez
# choisi tnc, l'identifiant est optionnel mais cela pourrait changer dans le
# futur (2 identifiants pour une kiss double port).
#
#mycall vk5xxx-4
#mycall2 vk5xxx-5
#
# En mode digi, on peut definir un alias (2 etc.).
#
#myalias svwdns
#myalias2 svwdn2
#
# ident toutes les 540 secondes ...
#
#beacon after 540
#btext ax25ip -- tncmode rob/vk5xxx -- Experimental AXIP gateway
#
# Port serie (ou tuyau connecte a kissattach dans mon cas)
#
device /dev/ttyq0
#
# Vitesse du peripherique
#
speed 9600
#
# niveau de log 0 - pas de sortie
# niveau de log 1 - informations de configuration
# niveau de log 2 - evenements majeurs et erreurs
# niveau de log 3 - evenements majeurs, erreurs et suivi des trames AX.25
# niveau de log 4 - tout 
# niveau de log 0 pour le moment
#
loglevel 2
#
# En mode digi, on peut avoir un veritable tnc. param permet de passer les
# parametres tnc.
#
#param 1 20
#
# Adresses de broadcast. Chaque adresse figurant dans la liste sera relayee
# vers une des routes munies de l'indicateur idoine.
#
broadcast QST-0 NODES-0
#
# Definition des routes AX.25. Autant que necessaires
# Format :
# route &lt;id destination&gt; &lt;ip destination&gt; [indicateur]
#
# Indicateurs valides :
#         b  - broadcast
#         d  - route par defaut
#
route vk2sut-0 44.136.8.68 b
route vk5xxx 44.136.188.221 b
route vk2abc 44.1.1.1
#
#
</code>
</pre></blockquote>
<h3>Ex&eacute;cuter <em>ax25ipd</em></h3>
<dl>
<dt><b>Commencez par mettre en palce le fichier
<code>/etc/ax25/axports</code></b></dt>
<dd>
<blockquote>
<pre>
<code># /etc/ax25/axports
#
axip    VK2KTJ-13       9600    256     AXIP port
#
    
</code>
</pre></blockquote>
</dd>
<dt><b>Ex&eacute;cutez <em>kissattach</em> pour cr&eacute;er le
port&nbsp;:</b></dt>
<dd>
<blockquote>
<pre>
<code>/usr/sbin/kissattach /dev/ptyq0 axip
    
</code>
</pre></blockquote>
</dd>
<dt><b>Lancez <em>ax25ipd</em>&nbsp;:</b></dt>
<dd>
<blockquote>
<pre>
<code>/usr/sbin/ax25ipd &amp;
    
</code>
</pre></blockquote>
</dd>
<dt><b>Testez la liaison AXIP&nbsp;:</b></dt>
<dd>
<blockquote>
<pre>
<code>call axip vk5xxx
    
</code>
</pre></blockquote>
</dd>
</dl>
<h3>Remarques concernant certains indicateurs des routes</h3>
<p>"<code>route</code>" met en place les destinations d'envoi de
vos trames AX.25 encapsul&eacute;es. Lorsque le d&eacute;mon
<em>ax25ipd</em> re&ccedil;oit un paquet sur son interface, il
compare l'identifiant de destination avec chacun de ceux
pr&eacute;sents dans sa table de routage. S'il trouve une
correspondance, le paquet est alors encapsul&eacute; dans un
datagramme IP et transmis &agrave; l'h&ocirc;te
sp&eacute;cifi&eacute;.</p>
<p>Deux indicateurs peuvent &ecirc;tre ajout&eacute;s &agrave;
n'importe quelle route du fichier
<code>ax25ipd.conf</code>&nbsp;:</p>
<dl>
<dt><b>b</b></dt>
<dd>
<p>tout trafic &agrave; destination d'une adresse
rep&eacute;r&eacute;e par le mot-clef "<code>broadcast</code>" doit
transiter par cette route.</p>
</dd>
<dt><b>d</b></dt>
<dd>
<p>tout paquet ne correspondant &agrave; aucune autre route doit
suivre ce chemin.</p>
</dd>
</dl>
<p>L'indicateur de broadcast est tr&egrave;s utile puisqu'il permet
l'envoi d'informations &agrave; destination de toutes les stations
vers des stations AXIP&nbsp;: les routes axip fonctionnent
normalement en point-&agrave;-point et sont incapables de
g&eacute;rer des paquets de diffusion g&eacute;n&eacute;rale.</p>
<h2><a name="ss21.4">21.4 Lier NOS &agrave; Linux au moyen d'un
pipe</a></h2>
<p>De nombreuses personnes aiment se servir de NOS sous Linux en
raison de la richesse fonctionnelle et de la facilit&eacute;
d'emploi auxquelles il les a habitu&eacute;es. La plupart d'entre
eux souhaitent que leur version de NOS puisse dialoguer avec le
noyau Linux de fa&ccedil;on &agrave; offrir certaines des
possibilit&eacute;s de Linux aux radio-utilisateurs de NOS.</p>
<p>Brandon S. Allbery, alias KF8NH, a fourni les informations qui
suivent relatives &agrave; l'interconnexion de NOS avec le noyau
Linux par l'interm&eacute;diaire de tuyaux (pipe).</p>
<p>Linux et NOS g&eacute;rant tous deux le protocole SLIP, il est
possible de les relier au moyen d'une liaison slip. Vous pourriez
le faire gr&acirc;ce &agrave; deux ports s&eacute;rie et &agrave;
un c&acirc;ble null-modem mais ce serait aussi co&ucirc;teux
qu'inefficace. Comme d'autres syst&egrave;mes de type Unix, Linux
dispose de tuyaux dits `pipes' (prononcer paillepeu). Il s'agit de
pseudo-p&eacute;riph&eacute;riques qui &eacute;mulent le
comportement de tty usuels du point de vue des logiciels en
redirigeant le flux vers d'autres tuyaux. Pour les utiliser, un
programme doit d'abord ouvrir l'extr&eacute;mit&eacute;
<b>ma&icirc;tre</b> d'un tuyau apr&egrave;s quoi un second
programme peut ouvrir la terminaison <b>esclave</b>. Lorsque les
deux bouts sont ouverts, les programmes peuvent communiquer l'un
avec l'autre en &eacute;crivant des caract&egrave;res dans les
tuyaux comme s'il s'agissait de terminaux usuels.</p>
<p>Pour employer les tuyaux entre NOS et Linux, vous devez d'abord
choisir un tuyau. Le r&eacute;pertoire <code>/dev</code> en
regorge&nbsp;: les extr&eacute;mit&eacute;s ma&icirc;tres se
nomment <code>ptyq[1-f]</code> et celles esclaves
<code>ttyq[1-f]</code>. Gardez &agrave; l'esprit qu'elles
fonctionnent par paires et que si vous utilisez
<code>/dev/ptyqf</code> &agrave; un bout, vous devrez employer
<code>/dev/ttyqf</code> &agrave; l'autre.</p>
<p>Une fois le tuyau choisi, vous allouez la terminaison
ma&icirc;tre &agrave; Linux et l'esclave &agrave; NOS (le noyau
d&eacute;marre le premier et l'extr&eacute;mit&eacute; ma&icirc;tre
doit &ecirc;tre la premi&egrave;re ouverte). N'oubliez pas que le
noyau Linux doit &ecirc;tre muni d'une adresse IP diff&eacute;rente
de celle de NOS. A mettre en place si ce n'est pas
d&eacute;j&agrave; le cas.</p>
<p>Le tuyau se configure comme un p&eacute;riph&eacute;rique
s&eacute;rie. Pour une liaison slip, les commandes &agrave;
ex&eacute;cuter seront donc du type&nbsp;:</p>
<blockquote>
<pre>
<code># /sbin/slattach -s 38400 -p slip /dev/ptyqf &amp;
# /sbin/ifconfig sl0 broadcast 44.255.255.255 pointopoint 44.70.248.67 /
        mtu 1536 44.70.4.88
# /sbin/route add 44.70.248.67 sl0
# /sbin/route add -net 44.0.0.0 netmask 255.0.0.0 gw 44.70.248.67
</code>
</pre></blockquote>
<p>Dans cet exemple, le noyau Linux dispose de l'adresse
<code>44.70.4.88</code> et NOS de l'adresse
<code>44.70.248.67</code>. La commande <em>route</em> de la
derni&egrave;re ligne indique simplement au noyau Linux qu'il doit
router tous les datagrammes &agrave; destination d'amprnet via le
lien slip cr&eacute;&eacute; par la commande <em>slattach</em>.
Vous pouvez par exemple copier ces commandes dans le fichier
<code>/etc/rc.d/rc.inet2</code> (selon votre installation)
apr&egrave;s toutes les autres commandes de configuration
r&eacute;seau afin que la liaison slip apparaisse automatiquement
&agrave; la r&eacute;initialisation du syst&egrave;me.
Remarque&nbsp;: on ne gagne rien &agrave; utiliser <em>cslip</em>
au lieu de <em>slip</em>. Au contraire, les performances diminuent
de par la nature purement virtuelle du lien (on passe plus de temps
&agrave; compresser les en-t&ecirc;tes qu'&agrave; transmettre
toutes les donn&eacute;es).</p>
<p>Essayez les commandes suivantes pour configurer la terminaison
du c&ocirc;t&eacute; NOS&nbsp;:</p>
<blockquote>
<pre>
<code># you can call the interface anything you want; I use "linux" for convenience.
attach asy ttyqf - slip linux 1024 1024 38400
route addprivate 44.70.4.88 linux
</code>
</pre></blockquote>
<p>Ces commandes cr&eacute;ent un port slip nomm&eacute; `linux'
sur l'extr&eacute;mit&eacute; esclave du tuyau et ajoutent une
route qui y pointe. Une fois NOS d&eacute;marr&eacute;, vous
devriez pouvoir ex&eacute;cuter des ping et des telnet de NOS vers
Linux et vice-versa. Si ce n'est pas le cas, v&eacute;rifiez encore
une fois que vous ne vous &ecirc;tes tromp&eacute; nulle part,
surtout au niveau des adresses et des tuyaux.</p>
<h2><a name="s22">22. O&ugrave; trouver de l'information sur...
?</a></h2>
<p>Ce document suppose une certaine exp&eacute;rience de la
transmission paquets par radio, et, comme ce n'est pas
forc&eacute;ment le cas, j'ai regroup&eacute; un ensemble de
r&eacute;f&eacute;rences &agrave; d'autres informations utiles.</p>
<h2><a name="ss22.1">22.1 Transmission paquets par radio</a></h2>
<p>Vous trouverez des informations g&eacute;n&eacute;rales sur la
transmission paquets par radio sur les sites suivants&nbsp;:</p>
<ul>
<li><a href="http://www.arrl.org/">American Radio Relay
League</a>,</li>
<li><a href="http://www.rats.org/">Radio Amateur Teleprinter
Society</a></li>
<li><a href="http://www.tapr.org/">Tucson Amateur Packet Radio
Group</a></li>
</ul>
<h2><a name="ss22.2">22.2 Documentation sur les protocoles</a></h2>
<ul>
<li>AX.25, NetRom - Jonathon Naylor a regroup&eacute; de nombreux
documents sur le sujet qui sont disponibles via&nbsp;: <a href=
"ftp://ftp.pspt.fi/pub/ham/linux/ax25/ax25-doc-1.0.tar.gz">ax25-doc-1.0.tar.gz</a></li>
</ul>
<h2><a name="ss22.3">22.3 Documentation sur le
mat&eacute;riel</a></h2>
<ul>
<li>Informations sur la carte <b>PI2</b>&nbsp;: <a href=
"http://hydra.carleton.ca/">Ottawa Packet Radio Group</a>.</li>
<li>Informations sur le mat&eacute;riel <b>Baycom</b>&nbsp;:
<a href="http://www.baycom.de/">Baycom Web Page</a>.</li>
</ul>
<h2><a name="s23">23. Groupes de discussion radioamateurs et
Linux</a></h2>
<p>Il existe plusieurs endroits o&ugrave; parler de Linux ou de
radio amateurisme. Par exemple dans les groupes de discussion
<code>comp.os.linux.*</code>, sur la liste de diffusion
<code>HAMS</code> de <code>vger.rutgers.edu</code>. Mentionnons
&eacute;galement la liste <code>tcp-group</code> sur
<code>ucsd.edu</code> (origine des discussions TCP/IP radio
amateur) et le canal <code>#linpeople</code> sur le r&eacute;seau
irc <code>linuxnet</code>.</p>
<p>Pour vous abonner &agrave; la liste de diffusion Linux
<b>linux-hams</b>, envoyez un courrier &agrave;&nbsp;:</p>
<blockquote>
<pre>
<code>Majordomo@vger.rutgers.edu
</code>
</pre></blockquote>
avec dans le corps du message la ligne suivante&nbsp;:
<blockquote>
<pre>
<code>subscribe linux-hams 
</code>
</pre></blockquote>
La ligne de sujet sera ignor&eacute;e.
<p>La liste de diffusion <b>linux-hams</b> est archiv&eacute;e aux
adresses&nbsp;:</p>
<p><a href="http://hes.iki.fi/archive/linux-hams/">zone.pspt.fi</a>
et&nbsp;: <a href=
"http://zone.oh7rba.ampr.org/archive/linux-hams/">zone.oh7rba.ampr.org</a>.
Les d&eacute;butants sont pri&eacute;s de commencer par utiliser
les archives. Celles-ci contiennent des r&eacute;ponses &agrave;
l'essentiel des questions courantes.</p>
<p>Pour souscrire &agrave; la liste <code>tcp-group</code>, envoyez
un courrier &agrave; l'adresse&nbsp;:</p>
<blockquote>
<pre>
<code>listserver@ucsd.edu
</code>
</pre></blockquote>
avec dans le corps du message la ligne&nbsp;:
<blockquote>
<pre>
<code>subscribe tcp-group
</code>
</pre></blockquote>
<p><b>Remarque&nbsp;:</b> n'oubliez pas que <code>tcp-group</code>
a pour th&egrave;me les discussions autour de l'emploi des
protocoles &eacute;volu&eacute;s parmi lesquels figure TCP/IP.
<em>Les questions sp&eacute;cifiques &agrave; Linux n'y ont
normalement pas leur place.</em></p>
<h2><a name="s24">24. Remerciements</a></h2>
<p>Les personnes dont les noms suivent ont contribu&eacute;
&agrave; l'&eacute;laboration de ce document (l'ordre n'a pas
d'importance): Jonathon Naylor, Thomas Sailer, Joerg Reuter, Ron
Atkinson, Alan Cox, Craig Small, John Tanner, Brandon Allbery, Hans
Alblas, Klaus Kudielka, Carl Makin.</p>
<h2><a name="s25">25. Copyright.</a></h2>
<p>Copyright (c) 1996 Terry Dawson.</p>
<p>La distribution de ce document doit se conformer aux termes de
la licence LDP tels que d&eacute;finis &agrave; l'adresse&nbsp;:
<a href=
"http://sunsite.unc.edu/LDP/COPYRIGHT.html">sunsite.unc.edu/LDP/COPYRIGHT.html</a>.</p>
</body>
</html>