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
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
9235
9236
9237
9238
9239
9240
9241
9242
9243
9244
9245
9246
9247
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298
9299
9300
9301
9302
9303
9304
9305
9306
9307
9308
9309
9310
9311
9312
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
9334
9335
9336
9337
9338
9339
9340
9341
9342
9343
9344
9345
9346
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
9508
9509
9510
9511
9512
9513
9514
9515
9516
9517
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
9564
9565
9566
9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
9868
9869
9870
9871
9872
9873
9874
9875
9876
9877
9878
9879
9880
9881
9882
9883
9884
9885
9886
9887
9888
9889
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
9928
9929
9930
9931
9932
9933
9934
9935
9936
9937
9938
9939
9940
9941
9942
9943
9944
9945
9946
9947
9948
9949
9950
9951
9952
9953
9954
9955
9956
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966
9967
9968
9969
9970
9971
9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999
10000
10001
10002
10003
10004
10005
10006
10007
10008
10009
10010
10011
10012
10013
10014
10015
10016
10017
10018
10019
10020
10021
10022
10023
10024
10025
10026
10027
10028
10029
10030
10031
10032
10033
10034
10035
10036
10037
10038
10039
10040
10041
10042
10043
10044
10045
10046
10047
10048
10049
10050
10051
10052
10053
10054
10055
10056
10057
10058
10059
10060
10061
10062
10063
10064
10065
10066
10067
10068
10069
10070
10071
10072
10073
10074
10075
10076
10077
10078
10079
10080
10081
10082
10083
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112
10113
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
10164
10165
10166
10167
10168
10169
10170
10171
10172
10173
10174
10175
10176
10177
10178
10179
10180
10181
10182
10183
10184
10185
10186
10187
10188
10189
10190
10191
10192
10193
10194
10195
10196
10197
10198
10199
10200
10201
10202
10203
10204
10205
10206
10207
10208
10209
10210
10211
10212
10213
10214
10215
10216
10217
10218
10219
10220
10221
10222
10223
10224
10225
10226
10227
10228
10229
10230
10231
10232
10233
10234
10235
10236
10237
10238
10239
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249
10250
10251
10252
10253
10254
10255
10256
10257
10258
10259
10260
10261
10262
10263
10264
10265
10266
10267
10268
10269
10270
10271
10272
10273
10274
10275
10276
10277
10278
10279
10280
10281
10282
10283
10284
10285
10286
10287
10288
10289
10290
10291
10292
10293
10294
10295
10296
10297
10298
10299
10300
10301
10302
10303
10304
10305
10306
10307
10308
10309
10310
10311
10312
10313
10314
10315
10316
10317
10318
10319
10320
10321
10322
10323
10324
10325
10326
10327
10328
10329
10330
10331
10332
10333
10334
10335
10336
10337
10338
10339
10340
10341
10342
10343
10344
10345
10346
10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
10360
10361
10362
10363
10364
10365
10366
10367
10368
10369
10370
10371
10372
10373
10374
10375
10376
10377
10378
10379
10380
10381
10382
10383
10384
10385
10386
10387
10388
10389
10390
10391
10392
10393
10394
10395
10396
10397
10398
10399
10400
10401
10402
10403
10404
10405
10406
10407
10408
10409
10410
10411
10412
10413
10414
10415
10416
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
10474
10475
10476
10477
10478
10479
10480
10481
10482
10483
10484
10485
10486
10487
10488
10489
10490
10491
10492
10493
10494
10495
10496
10497
10498
10499
10500
10501
10502
10503
10504
10505
10506
10507
10508
10509
10510
10511
10512
10513
10514
10515
10516
10517
10518
10519
10520
10521
10522
10523
10524
10525
10526
10527
10528
10529
10530
10531
10532
10533
10534
10535
10536
10537
10538
10539
10540
10541
10542
10543
10544
10545
10546
10547
10548
10549
10550
10551
10552
10553
10554
10555
10556
10557
10558
10559
10560
10561
10562
10563
10564
10565
10566
10567
10568
10569
10570
10571
10572
10573
10574
10575
10576
10577
10578
10579
10580
10581
10582
10583
10584
10585
10586
10587
10588
10589
10590
10591
10592
10593
10594
10595
10596
10597
10598
10599
10600
10601
10602
10603
10604
10605
10606
10607
10608
10609
10610
10611
10612
10613
10614
10615
10616
10617
10618
10619
10620
10621
10622
10623
10624
10625
10626
10627
10628
10629
10630
10631
10632
10633
10634
10635
10636
10637
10638
10639
10640
10641
10642
10643
10644
10645
10646
10647
10648
10649
10650
10651
10652
10653
10654
10655
10656
10657
10658
10659
10660
10661
10662
10663
10664
10665
10666
10667
10668
10669
10670
10671
10672
10673
10674
10675
10676
10677
10678
10679
10680
10681
10682
10683
10684
10685
10686
10687
10688
10689
10690
10691
10692
10693
10694
10695
10696
10697
10698
10699
10700
10701
10702
10703
10704
10705
10706
10707
10708
10709
10710
10711
10712
10713
10714
10715
10716
10717
10718
10719
10720
10721
10722
10723
10724
10725
10726
10727
10728
10729
10730
10731
10732
10733
10734
10735
10736
10737
10738
10739
10740
10741
10742
10743
10744
10745
10746
10747
10748
10749
10750
10751
10752
10753
10754
10755
10756
10757
10758
10759
10760
10761
10762
10763
10764
10765
10766
10767
10768
10769
10770
10771
10772
10773
10774
10775
10776
10777
10778
10779
10780
10781
10782
10783
10784
10785
10786
10787
10788
10789
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
10805
10806
10807
10808
10809
10810
10811
10812
10813
10814
10815
10816
10817
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827
10828
10829
10830
10831
10832
10833
10834
10835
10836
10837
10838
10839
10840
10841
10842
10843
10844
10845
10846
10847
10848
10849
10850
10851
10852
10853
10854
10855
10856
10857
10858
10859
10860
10861
10862
10863
10864
10865
10866
10867
10868
10869
10870
10871
10872
10873
10874
10875
10876
10877
10878
10879
10880
10881
10882
10883
10884
10885
10886
10887
10888
10889
10890
10891
10892
10893
10894
10895
10896
10897
10898
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911
10912
10913
10914
10915
10916
10917
10918
10919
10920
10921
10922
10923
10924
10925
10926
10927
10928
10929
10930
10931
10932
10933
10934
10935
10936
10937
10938
10939
10940
10941
10942
10943
10944
10945
10946
10947
10948
10949
10950
10951
10952
10953
10954
10955
10956
10957
10958
10959
10960
10961
10962
10963
10964
10965
10966
10967
10968
10969
10970
10971
10972
10973
10974
10975
10976
10977
10978
10979
10980
10981
10982
10983
10984
10985
10986
10987
10988
10989
10990
10991
10992
10993
10994
10995
10996
10997
10998
10999
11000
11001
11002
11003
11004
11005
11006
11007
11008
11009
11010
11011
11012
11013
11014
11015
11016
11017
11018
11019
11020
11021
11022
11023
11024
11025
11026
11027
11028
11029
11030
11031
11032
11033
11034
11035
11036
11037
11038
11039
11040
11041
11042
11043
11044
11045
11046
11047
11048
11049
11050
11051
11052
11053
11054
11055
11056
11057
11058
11059
11060
11061
11062
11063
11064
11065
11066
11067
11068
11069
11070
11071
11072
11073
11074
11075
11076
11077
11078
11079
11080
11081
11082
11083
11084
11085
11086
11087
11088
11089
11090
11091
11092
11093
11094
11095
11096
11097
11098
11099
11100
11101
11102
11103
11104
11105
11106
11107
11108
11109
11110
11111
11112
11113
11114
11115
11116
11117
11118
11119
11120
11121
11122
11123
11124
11125
11126
11127
11128
11129
11130
11131
11132
11133
11134
11135
11136
11137
11138
11139
11140
11141
11142
11143
11144
11145
11146
11147
11148
11149
11150
11151
11152
11153
11154
11155
11156
11157
11158
11159
11160
11161
11162
11163
11164
11165
11166
11167
11168
11169
11170
11171
11172
11173
11174
11175
11176
11177
11178
11179
11180
11181
11182
11183
11184
11185
11186
11187
11188
11189
11190
11191
11192
11193
11194
11195
11196
11197
11198
11199
11200
11201
11202
11203
11204
11205
11206
11207
11208
11209
11210
11211
11212
11213
11214
11215
11216
11217
11218
11219
11220
11221
11222
11223
11224
11225
11226
11227
11228
11229
11230
11231
11232
11233
11234
11235
11236
11237
11238
11239
11240
11241
11242
11243
11244
11245
11246
11247
11248
11249
11250
11251
11252
11253
11254
11255
11256
11257
11258
11259
11260
11261
11262
11263
11264
11265
11266
11267
11268
11269
11270
11271
11272
11273
11274
11275
11276
11277
11278
11279
11280
11281
11282
11283
11284
11285
11286
11287
11288
11289
11290
11291
11292
11293
11294
11295
11296
11297
11298
11299
11300
11301
11302
11303
11304
11305
11306
11307
11308
11309
11310
11311
11312
11313
11314
11315
11316
11317
11318
11319
11320
11321
11322
11323
11324
11325
11326
11327
11328
11329
11330
11331
11332
11333
11334
11335
11336
11337
11338
11339
11340
11341
11342
11343
11344
11345
11346
11347
11348
11349
11350
11351
11352
11353
11354
11355
11356
11357
11358
11359
11360
11361
11362
11363
11364
11365
11366
11367
11368
11369
11370
11371
11372
11373
11374
11375
11376
11377
11378
11379
11380
11381
11382
11383
11384
11385
11386
11387
11388
11389
11390
11391
11392
11393
11394
11395
11396
11397
11398
11399
11400
11401
11402
11403
11404
11405
11406
11407
11408
11409
11410
11411
11412
11413
11414
11415
11416
11417
11418
11419
11420
11421
11422
11423
11424
11425
11426
11427
11428
11429
11430
11431
11432
11433
11434
11435
11436
11437
11438
11439
11440
11441
11442
11443
11444
11445
11446
11447
11448
11449
11450
11451
11452
11453
11454
11455
11456
11457
11458
11459
11460
11461
11462
11463
11464
11465
11466
11467
11468
11469
11470
11471
11472
11473
11474
11475
11476
11477
11478
11479
11480
11481
11482
11483
11484
11485
11486
11487
11488
11489
11490
11491
11492
11493
11494
11495
11496
11497
11498
11499
11500
11501
11502
11503
11504
11505
11506
11507
11508
11509
11510
11511
11512
11513
11514
11515
11516
11517
11518
11519
11520
11521
11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534
11535
11536
11537
11538
11539
11540
11541
11542
11543
11544
11545
11546
11547
11548
11549
11550
11551
11552
11553
11554
11555
11556
11557
11558
11559
11560
11561
11562
11563
11564
11565
11566
11567
11568
11569
11570
11571
11572
11573
11574
11575
11576
11577
11578
11579
11580
11581
11582
11583
11584
11585
11586
11587
11588
11589
11590
11591
11592
11593
11594
11595
11596
11597
11598
11599
11600
11601
11602
11603
11604
11605
11606
11607
11608
11609
11610
11611
11612
11613
11614
11615
11616
11617
11618
11619
11620
11621
11622
11623
11624
11625
11626
11627
11628
11629
11630
11631
11632
11633
11634
11635
11636
11637
11638
11639
11640
11641
11642
11643
11644
11645
11646
11647
11648
11649
11650
11651
11652
11653
11654
11655
11656
11657
11658
11659
11660
11661
11662
11663
11664
11665
11666
11667
11668
11669
11670
11671
11672
11673
11674
11675
11676
11677
11678
11679
11680
11681
11682
11683
11684
11685
11686
11687
11688
11689
11690
11691
11692
11693
11694
11695
11696
11697
11698
11699
11700
11701
11702
11703
11704
11705
11706
11707
11708
11709
11710
11711
11712
11713
11714
11715
11716
11717
11718
11719
11720
11721
11722
11723
11724
11725
11726
11727
11728
11729
11730
11731
11732
11733
11734
11735
11736
11737
11738
11739
11740
11741
11742
11743
11744
11745
11746
11747
11748
11749
11750
11751
11752
11753
11754
11755
11756
11757
11758
11759
11760
11761
11762
11763
11764
11765
11766
11767
11768
11769
11770
11771
11772
11773
11774
11775
11776
11777
11778
11779
11780
11781
11782
11783
11784
11785
11786
11787
11788
11789
11790
11791
11792
11793
11794
11795
11796
11797
11798
11799
11800
11801
11802
11803
11804
11805
11806
11807
11808
11809
11810
11811
11812
11813
11814
11815
11816
11817
11818
11819
11820
11821
11822
11823
11824
11825
11826
11827
11828
11829
11830
11831
11832
11833
11834
11835
11836
11837
11838
11839
11840
11841
11842
11843
11844
11845
11846
11847
11848
11849
11850
11851
11852
11853
11854
11855
11856
11857
11858
11859
11860
11861
11862
11863
11864
11865
11866
11867
11868
11869
11870
11871
11872
11873
11874
11875
11876
11877
11878
11879
11880
11881
11882
11883
11884
11885
11886
11887
11888
11889
11890
11891
11892
11893
11894
11895
11896
11897
11898
11899
11900
11901
11902
11903
11904
11905
11906
11907
11908
11909
11910
11911
11912
11913
11914
11915
11916
11917
11918
11919
11920
11921
11922
11923
11924
11925
11926
11927
11928
11929
11930
11931
11932
11933
11934
11935
11936
11937
11938
11939
11940
11941
11942
11943
11944
11945
11946
11947
11948
11949
11950
11951
11952
11953
11954
11955
11956
11957
11958
11959
11960
11961
11962
11963
11964
11965
11966
11967
11968
11969
11970
11971
11972
11973
11974
11975
11976
11977
11978
11979
11980
11981
11982
11983
11984
11985
11986
11987
11988
11989
11990
11991
11992
11993
11994
11995
11996
11997
11998
11999
12000
12001
12002
12003
12004
12005
12006
12007
12008
12009
12010
12011
12012
12013
12014
12015
12016
12017
12018
12019
12020
12021
12022
12023
12024
12025
12026
12027
12028
12029
12030
12031
12032
12033
12034
12035
12036
12037
12038
12039
12040
12041
12042
12043
12044
12045
12046
12047
12048
12049
12050
12051
12052
12053
12054
12055
12056
12057
12058
12059
12060
12061
12062
12063
12064
12065
12066
12067
12068
12069
12070
12071
12072
12073
12074
12075
12076
12077
12078
12079
12080
12081
12082
12083
12084
12085
12086
12087
12088
12089
12090
12091
12092
12093
12094
12095
12096
12097
12098
12099
12100
12101
12102
12103
12104
12105
12106
12107
12108
12109
12110
12111
12112
12113
12114
12115
12116
12117
12118
12119
12120
12121
12122
12123
12124
12125
12126
12127
12128
12129
12130
12131
12132
12133
12134
12135
12136
12137
12138
12139
12140
12141
12142
12143
12144
12145
12146
12147
12148
12149
12150
12151
12152
12153
12154
12155
12156
12157
12158
12159
12160
12161
12162
12163
12164
12165
12166
12167
12168
12169
12170
12171
12172
12173
12174
12175
12176
12177
12178
12179
12180
12181
12182
12183
12184
12185
12186
12187
12188
12189
12190
12191
12192
12193
12194
12195
12196
12197
12198
12199
12200
12201
12202
12203
12204
12205
12206
12207
12208
12209
12210
12211
12212
12213
12214
12215
12216
12217
12218
12219
12220
12221
12222
12223
12224
12225
12226
12227
12228
12229
12230
12231
12232
12233
12234
12235
12236
12237
12238
12239
12240
12241
12242
12243
12244
12245
12246
12247
12248
12249
12250
12251
12252
12253
12254
12255
12256
12257
12258
12259
12260
12261
12262
12263
12264
12265
12266
12267
12268
12269
12270
12271
12272
12273
12274
12275
12276
12277
12278
12279
12280
12281
12282
12283
12284
12285
12286
12287
12288
12289
12290
12291
12292
12293
12294
12295
12296
12297
12298
12299
12300
12301
12302
12303
12304
12305
12306
12307
12308
12309
12310
12311
12312
12313
12314
12315
12316
12317
12318
12319
12320
12321
12322
12323
12324
12325
12326
12327
12328
12329
12330
12331
12332
12333
12334
12335
12336
12337
12338
12339
12340
12341
12342
12343
12344
12345
12346
12347
12348
12349
12350
12351
12352
12353
12354
12355
12356
12357
12358
12359
12360
12361
12362
12363
12364
12365
12366
12367
12368
12369
12370
12371
12372
12373
12374
12375
12376
12377
12378
12379
12380
12381
12382
12383
12384
12385
12386
12387
12388
12389
12390
12391
12392
12393
12394
12395
12396
12397
12398
12399
12400
12401
12402
12403
12404
12405
12406
12407
12408
12409
12410
12411
12412
12413
12414
12415
12416
12417
12418
12419
12420
12421
12422
12423
12424
12425
12426
12427
12428
12429
12430
12431
12432
12433
12434
12435
12436
12437
12438
12439
12440
12441
12442
12443
12444
12445
12446
12447
12448
12449
12450
12451
12452
12453
12454
12455
12456
12457
12458
12459
12460
12461
12462
12463
12464
12465
12466
12467
12468
12469
12470
12471
12472
12473
12474
12475
12476
12477
12478
12479
12480
12481
12482
12483
12484
12485
12486
12487
12488
12489
12490
12491
12492
12493
12494
12495
12496
12497
12498
12499
12500
12501
12502
12503
12504
12505
12506
12507
12508
12509
12510
12511
12512
12513
12514
12515
12516
12517
12518
12519
12520
12521
12522
12523
12524
12525
12526
12527
12528
12529
12530
12531
12532
12533
12534
12535
12536
12537
12538
12539
12540
12541
12542
12543
12544
12545
12546
12547
12548
12549
12550
12551
12552
12553
12554
12555
12556
12557
12558
12559
12560
12561
12562
12563
12564
12565
12566
12567
12568
12569
12570
12571
12572
12573
12574
12575
12576
12577
12578
12579
12580
12581
12582
12583
12584
12585
12586
12587
12588
12589
12590
12591
12592
12593
12594
12595
12596
12597
12598
12599
12600
12601
12602
12603
12604
12605
12606
12607
12608
12609
12610
12611
12612
12613
12614
12615
12616
12617
12618
12619
12620
12621
12622
12623
12624
12625
12626
12627
12628
12629
12630
12631
12632
12633
12634
12635
12636
12637
12638
12639
12640
12641
12642
12643
12644
12645
12646
12647
12648
12649
12650
12651
12652
12653
12654
12655
12656
12657
12658
12659
12660
12661
12662
12663
12664
12665
12666
12667
12668
12669
12670
12671
12672
12673
12674
12675
12676
12677
12678
12679
12680
12681
12682
12683
12684
12685
12686
12687
12688
12689
12690
12691
12692
12693
12694
12695
12696
12697
12698
12699
12700
12701
12702
12703
12704
12705
12706
12707
12708
12709
12710
12711
12712
12713
12714
12715
12716
12717
12718
12719
12720
12721
12722
12723
12724
12725
12726
12727
12728
12729
12730
12731
12732
12733
12734
12735
12736
12737
12738
12739
12740
12741
12742
12743
12744
12745
12746
12747
12748
12749
12750
12751
12752
12753
12754
12755
12756
12757
12758
12759
12760
12761
12762
12763
12764
12765
12766
12767
12768
12769
12770
12771
12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
12785
12786
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
12797
12798
12799
12800
12801
12802
12803
12804
12805
12806
12807
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
12819
12820
12821
12822
12823
12824
12825
12826
12827
12828
12829
12830
12831
12832
12833
12834
12835
12836
12837
12838
12839
12840
12841
12842
12843
12844
12845
12846
12847
12848
12849
12850
12851
12852
12853
12854
12855
12856
12857
12858
12859
12860
12861
12862
12863
12864
12865
12866
12867
12868
12869
12870
12871
12872
12873
12874
12875
12876
12877
12878
12879
12880
12881
12882
12883
12884
12885
12886
12887
12888
12889
12890
12891
12892
12893
12894
12895
12896
12897
12898
12899
12900
12901
12902
12903
12904
12905
12906
12907
12908
12909
12910
12911
12912
12913
12914
12915
12916
12917
12918
12919
12920
12921
12922
12923
12924
12925
12926
12927
12928
12929
12930
12931
12932
12933
12934
12935
12936
12937
12938
12939
12940
12941
12942
12943
12944
12945
12946
12947
12948
12949
12950
12951
12952
12953
12954
12955
12956
12957
12958
12959
12960
12961
12962
12963
12964
12965
12966
12967
12968
12969
12970
12971
12972
12973
12974
12975
12976
12977
12978
12979
12980
12981
12982
12983
12984
12985
12986
12987
12988
12989
12990
12991
12992
12993
12994
12995
12996
12997
12998
12999
13000
13001
13002
13003
13004
13005
13006
13007
13008
13009
13010
13011
13012
13013
13014
13015
13016
13017
13018
13019
13020
13021
13022
13023
13024
13025
13026
13027
13028
13029
13030
13031
13032
13033
13034
13035
13036
13037
13038
13039
13040
13041
13042
13043
13044
13045
13046
13047
13048
13049
13050
13051
13052
13053
13054
13055
13056
13057
13058
13059
13060
13061
13062
13063
13064
13065
13066
13067
13068
13069
13070
13071
13072
13073
13074
13075
13076
13077
13078
13079
13080
13081
13082
13083
13084
13085
13086
13087
13088
13089
13090
13091
13092
13093
13094
13095
13096
13097
13098
13099
13100
13101
13102
13103
13104
13105
13106
13107
13108
13109
13110
13111
13112
13113
13114
13115
13116
13117
13118
13119
13120
13121
13122
13123
13124
13125
13126
13127
13128
13129
13130
13131
13132
13133
13134
13135
13136
13137
13138
13139
13140
13141
13142
13143
13144
13145
13146
13147
13148
13149
13150
13151
13152
13153
13154
13155
13156
13157
13158
13159
13160
13161
13162
13163
13164
13165
13166
13167
13168
13169
13170
13171
13172
13173
13174
13175
13176
13177
13178
13179
13180
13181
13182
13183
13184
13185
13186
13187
13188
13189
13190
13191
13192
13193
13194
13195
13196
13197
13198
13199
13200
13201
13202
13203
13204
13205
13206
13207
13208
13209
13210
13211
13212
13213
13214
13215
13216
13217
13218
13219
13220
13221
13222
13223
13224
13225
13226
13227
13228
13229
13230
13231
13232
13233
13234
13235
13236
13237
13238
13239
13240
13241
13242
13243
13244
13245
13246
13247
13248
13249
13250
13251
13252
13253
13254
13255
13256
13257
13258
13259
13260
13261
13262
13263
13264
13265
13266
13267
13268
13269
13270
13271
13272
13273
13274
13275
13276
13277
13278
13279
13280
13281
13282
13283
13284
13285
13286
13287
13288
13289
13290
13291
13292
13293
13294
13295
13296
13297
13298
13299
13300
13301
13302
13303
13304
13305
13306
13307
13308
13309
13310
13311
13312
13313
13314
13315
13316
13317
13318
13319
13320
13321
13322
13323
13324
13325
13326
13327
13328
13329
13330
13331
13332
13333
13334
13335
13336
13337
13338
13339
13340
13341
13342
13343
13344
13345
13346
13347
13348
13349
13350
13351
13352
13353
13354
13355
13356
13357
13358
13359
13360
13361
13362
13363
13364
13365
13366
13367
13368
13369
13370
13371
13372
13373
13374
13375
13376
13377
13378
13379
13380
13381
13382
13383
13384
13385
13386
13387
13388
13389
13390
13391
13392
13393
13394
13395
13396
13397
13398
13399
13400
13401
13402
13403
13404
13405
13406
13407
13408
13409
13410
13411
13412
13413
13414
13415
13416
13417
13418
13419
13420
13421
13422
13423
13424
13425
13426
13427
13428
13429
13430
13431
13432
13433
13434
13435
13436
13437
13438
13439
13440
13441
13442
13443
13444
13445
13446
13447
13448
13449
13450
13451
13452
13453
13454
13455
13456
13457
13458
13459
13460
13461
13462
13463
13464
13465
13466
13467
13468
13469
13470
13471
13472
13473
13474
13475
13476
13477
13478
13479
13480
13481
13482
13483
13484
13485
13486
13487
13488
13489
13490
13491
13492
13493
13494
13495
13496
13497
13498
13499
13500
13501
13502
13503
13504
13505
13506
13507
13508
13509
13510
13511
13512
13513
13514
13515
13516
13517
13518
13519
13520
13521
13522
13523
13524
13525
13526
13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
13562
13563
13564
13565
13566
13567
13568
13569
13570
13571
13572
13573
13574
13575
13576
13577
13578
13579
13580
13581
13582
13583
13584
13585
13586
13587
13588
13589
13590
13591
13592
13593
13594
13595
13596
13597
13598
13599
13600
13601
13602
13603
13604
13605
13606
13607
13608
13609
13610
13611
13612
13613
13614
13615
13616
13617
13618
13619
13620
13621
13622
13623
13624
13625
13626
13627
13628
13629
13630
13631
13632
13633
13634
13635
13636
13637
13638
13639
13640
13641
13642
13643
13644
13645
13646
13647
13648
13649
13650
13651
13652
13653
13654
13655
13656
13657
13658
13659
13660
13661
13662
13663
13664
13665
13666
13667
13668
13669
13670
13671
13672
13673
13674
13675
13676
13677
13678
13679
13680
13681
13682
13683
13684
13685
13686
13687
13688
13689
13690
13691
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
13732
13733
13734
13735
13736
13737
13738
13739
13740
13741
13742
13743
13744
13745
13746
13747
13748
13749
13750
13751
13752
13753
13754
13755
13756
13757
13758
13759
13760
13761
13762
13763
13764
13765
13766
13767
13768
13769
13770
13771
13772
13773
13774
13775
13776
13777
13778
13779
13780
13781
13782
13783
13784
13785
13786
13787
13788
13789
13790
13791
13792
13793
13794
13795
13796
13797
13798
13799
13800
13801
13802
13803
13804
13805
13806
13807
13808
13809
13810
13811
13812
13813
13814
13815
13816
13817
13818
13819
13820
13821
13822
13823
13824
13825
13826
13827
13828
13829
13830
13831
13832
13833
13834
13835
13836
13837
13838
13839
13840
13841
13842
13843
13844
13845
13846
13847
13848
13849
13850
13851
13852
13853
13854
13855
13856
13857
13858
13859
13860
13861
13862
13863
13864
13865
13866
13867
13868
13869
13870
13871
13872
13873
13874
13875
13876
13877
13878
13879
13880
13881
13882
13883
13884
13885
13886
13887
13888
13889
13890
13891
13892
13893
13894
13895
13896
13897
13898
13899
13900
13901
13902
13903
13904
13905
13906
13907
13908
13909
13910
13911
13912
13913
13914
13915
13916
13917
13918
13919
13920
13921
13922
13923
13924
13925
13926
13927
13928
13929
13930
13931
13932
13933
13934
13935
13936
13937
13938
13939
13940
13941
13942
13943
13944
13945
13946
13947
13948
13949
13950
13951
13952
13953
13954
13955
13956
13957
13958
13959
13960
13961
13962
13963
13964
13965
13966
13967
13968
13969
13970
13971
13972
13973
13974
13975
13976
13977
13978
13979
13980
13981
13982
13983
13984
13985
13986
13987
13988
13989
13990
13991
13992
13993
13994
13995
13996
13997
13998
13999
14000
14001
14002
14003
14004
14005
14006
14007
14008
14009
14010
14011
14012
14013
14014
14015
14016
14017
14018
14019
14020
14021
14022
14023
14024
14025
14026
14027
14028
14029
14030
14031
14032
14033
14034
14035
14036
14037
14038
14039
14040
14041
14042
14043
14044
14045
14046
14047
14048
14049
14050
14051
14052
14053
14054
14055
14056
14057
14058
14059
14060
14061
14062
14063
14064
14065
14066
14067
14068
14069
14070
14071
14072
14073
14074
14075
14076
14077
14078
14079
14080
14081
14082
14083
14084
14085
14086
14087
14088
14089
14090
14091
14092
14093
14094
14095
14096
14097
14098
14099
14100
14101
14102
14103
14104
14105
14106
14107
14108
14109
14110
14111
14112
14113
14114
14115
14116
14117
14118
14119
14120
14121
14122
14123
14124
14125
14126
14127
14128
14129
14130
14131
14132
14133
14134
14135
14136
14137
14138
14139
14140
14141
14142
14143
14144
14145
14146
14147
14148
14149
14150
14151
14152
14153
14154
14155
14156
14157
14158
14159
14160
14161
14162
14163
14164
14165
14166
14167
14168
14169
14170
14171
14172
14173
14174
14175
14176
14177
14178
14179
14180
14181
14182
14183
14184
14185
14186
14187
14188
14189
14190
14191
14192
14193
14194
14195
14196
14197
14198
14199
14200
14201
14202
14203
14204
14205
14206
14207
14208
14209
14210
14211
14212
14213
14214
14215
14216
14217
14218
14219
14220
14221
14222
14223
14224
14225
14226
14227
14228
14229
14230
14231
14232
14233
14234
14235
14236
14237
14238
14239
14240
14241
14242
14243
14244
14245
14246
14247
14248
14249
14250
14251
14252
14253
14254
14255
14256
14257
14258
14259
14260
14261
14262
14263
14264
14265
14266
14267
14268
14269
14270
14271
14272
14273
14274
14275
14276
14277
14278
14279
14280
14281
14282
14283
14284
14285
14286
14287
14288
14289
14290
14291
14292
14293
14294
14295
14296
14297
14298
14299
14300
14301
14302
14303
14304
14305
14306
14307
14308
14309
14310
14311
14312
14313
14314
14315
14316
14317
14318
14319
14320
14321
14322
14323
14324
14325
14326
14327
14328
14329
14330
14331
14332
14333
14334
14335
14336
14337
14338
14339
14340
14341
14342
14343
14344
14345
14346
14347
14348
14349
14350
14351
14352
14353
14354
14355
14356
14357
14358
14359
14360
14361
14362
14363
14364
14365
14366
14367
14368
14369
14370
14371
14372
14373
14374
14375
14376
14377
14378
14379
14380
14381
14382
14383
14384
14385
14386
14387
14388
14389
14390
14391
14392
14393
14394
14395
14396
14397
14398
14399
14400
14401
14402
14403
14404
14405
14406
14407
14408
14409
14410
14411
14412
14413
14414
14415
14416
14417
14418
14419
14420
14421
14422
14423
14424
14425
14426
14427
14428
14429
14430
14431
14432
14433
14434
14435
14436
14437
14438
14439
14440
14441
14442
14443
14444
14445
14446
14447
14448
14449
14450
14451
14452
14453
14454
14455
14456
14457
14458
14459
14460
14461
14462
14463
14464
14465
14466
14467
14468
14469
14470
14471
14472
14473
14474
14475
14476
14477
14478
14479
14480
14481
14482
14483
14484
14485
14486
14487
14488
14489
14490
14491
14492
14493
14494
14495
14496
14497
14498
14499
14500
14501
14502
14503
14504
14505
14506
14507
14508
14509
14510
14511
14512
14513
14514
14515
14516
14517
14518
14519
14520
14521
14522
14523
14524
14525
14526
14527
14528
14529
14530
14531
14532
14533
14534
14535
14536
14537
14538
14539
14540
14541
14542
14543
14544
14545
14546
14547
14548
14549
14550
14551
14552
14553
14554
14555
14556
14557
14558
14559
14560
14561
14562
14563
14564
14565
14566
14567
14568
14569
14570
14571
14572
14573
14574
14575
14576
14577
14578
14579
14580
14581
14582
14583
14584
14585
14586
14587
14588
14589
14590
14591
14592
14593
14594
14595
14596
14597
14598
14599
14600
14601
14602
14603
14604
14605
14606
14607
14608
14609
14610
14611
14612
14613
14614
14615
14616
14617
14618
14619
14620
14621
14622
14623
14624
14625
14626
14627
14628
14629
14630
14631
14632
14633
14634
14635
14636
14637
14638
14639
14640
14641
14642
14643
14644
14645
14646
14647
14648
14649
14650
14651
14652
14653
14654
14655
14656
14657
14658
14659
14660
14661
14662
14663
14664
14665
14666
14667
14668
14669
14670
14671
14672
14673
14674
14675
14676
14677
14678
14679
14680
14681
14682
14683
14684
14685
14686
14687
14688
14689
14690
14691
14692
14693
14694
14695
14696
14697
14698
14699
14700
14701
14702
14703
14704
14705
14706
14707
14708
14709
14710
14711
14712
14713
14714
14715
14716
14717
14718
14719
14720
14721
14722
14723
14724
14725
14726
14727
14728
14729
14730
14731
14732
14733
14734
14735
14736
14737
14738
14739
14740
14741
14742
14743
14744
14745
14746
14747
14748
14749
14750
14751
14752
14753
14754
14755
14756
14757
14758
14759
14760
14761
14762
14763
14764
14765
14766
14767
14768
14769
14770
14771
14772
14773
14774
14775
14776
14777
14778
14779
14780
14781
14782
14783
14784
14785
14786
14787
14788
14789
14790
14791
14792
14793
14794
14795
14796
14797
14798
14799
14800
14801
14802
14803
14804
14805
14806
14807
14808
14809
14810
14811
14812
14813
14814
14815
14816
14817
14818
14819
14820
14821
14822
14823
14824
14825
14826
14827
14828
14829
14830
14831
14832
14833
14834
14835
14836
14837
14838
14839
14840
14841
14842
14843
14844
14845
14846
14847
14848
14849
14850
14851
14852
14853
14854
14855
14856
14857
14858
14859
14860
14861
14862
14863
14864
14865
14866
14867
14868
14869
14870
14871
14872
14873
14874
14875
14876
14877
14878
14879
14880
14881
14882
14883
14884
14885
14886
14887
14888
14889
14890
14891
14892
14893
14894
14895
14896
14897
14898
14899
14900
14901
14902
14903
14904
14905
14906
14907
14908
14909
14910
14911
14912
14913
14914
14915
14916
14917
14918
14919
14920
14921
14922
14923
14924
14925
14926
14927
14928
14929
14930
14931
14932
14933
14934
14935
14936
14937
14938
14939
14940
14941
14942
14943
14944
14945
14946
14947
14948
14949
14950
14951
14952
14953
14954
14955
14956
14957
14958
14959
14960
14961
14962
14963
14964
14965
14966
14967
14968
14969
14970
14971
14972
14973
14974
14975
14976
14977
14978
14979
14980
14981
14982
14983
14984
14985
14986
14987
14988
14989
14990
14991
14992
|
<!--
The FreeBSD Documentation Project
The FreeBSD German Documentation Project
$FreeBSD$
$FreeBSDde: de-docproj/books/faq/book.sgml,v 1.404 2003/02/01 16:35:08 mheinen Exp $
basiert auf: 1.510
-->
<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN">
%freebsd;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % teams PUBLIC "-//FreeBSD//ENTITIES DocBook Team Entities//DE">
%teams;
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//DE">
%translators;
<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//DE">
%bookinfo;
<!ENTITY % mailing-lists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE"> %mailing-lists;
<!ENTITY bibliography SYSTEM "../../share/sgml/bibliography.sgml">
<!-- Hackish entities so that we can deal with multiple version -->
<!-- numbers for "latest" versions of FreeBSD. This needs to be -->
<!-- handled in a more generalized way. -->
<!ENTITY rel2.current CDATA "4.7">
<!ENTITY rel2.current.date CDATA "October 2002">
]>
<book id="faq" lang="de">
<bookinfo>
<title>Häufig gestellte Fragen zu FreeBSD 2.X, 3.X und
4.X</title>
<subtitle>Frequently Asked Questions für FreeBSD 2.X, 3.X und
4.X</subtitle>
<authorgroup>
<corpauthor>The FreeBSD German Documentation
Project</corpauthor>
<collab>
<collabname>Deutsche Übersetzung von Robert S. F.
Drehmel, Dirk Gouders und Udo Erdelhoff</collabname>
</collab>
</authorgroup>
<pubdate>$FreeBSDde: de-docproj/books/faq/book.sgml,v 1.404 2003/02/01 16:35:08 mheinen Exp $</pubdate>
<copyright>
<year>1995</year>
<year>1996</year>
<year>1997</year>
<year>1998</year>
<year>1999</year>
<year>2000</year>
<year>2001</year>
<year>2002</year>
<year>2003</year>
<holder>The FreeBSD Documentation Project</holder>
</copyright>
<copyright>
<year>2000</year>
<year>2001</year>
<year>2002</year>
<year>2003</year>
<holder>The FreeBSD German Documentation Project</holder>
</copyright>
&bookinfo.legalnotice;
<abstract>
<para>Dies ist die FAQ für die FreeBSD-Versionen 2.X, 3.X
und 4.X. Alle Einträge sollten für FreeBSD ab
Version 2.0.5 relevant sein, andernfalls wird darauf explizit
hingewiesen. Falls Sie daran
interessiert sein sollten, an diesem Projekt mitzuhelfen,
senden Sie eine Mail an die Mailingliste &a.de.translators;. Die
aktuelle Version dieses Dokuments ist ständig auf dem
<ulink url="http://www.de.FreeBSD.org/">FreeBSD
World-Wide-Web-Server</ulink> verfügbar. Es kann auch
per HTTP als eine große <ulink
url="book.html">HTML</ulink>-Datei heruntergeladen werden oder
als Textdatei, im PostScript-, PDF- und anderen Formaten vom
<ulink url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/">FreeBSD
FTP-Server</ulink>. Sie können die FAQ auch <ulink
url="http://www.de.FreeBSD.org/search/search.html">
durchsuchen</ulink>.</para>
</abstract>
</bookinfo>
<chapter id="introduction">
<title>Einleitung</title>
<para>Willkommen zur FreeBSD 2.X-4.X FAQ!</para>
<para>Wie auch bei den Usenet FAQs üblich, wird mit diesem
Dokument beabsichtigt, die am häufigsten gestellten Fragen
bezüglich des Betriebssystems FreeBSD zu erfassen und sie
natürlich auch zu beantworten. Obwohl FAQs
ursprünglich lediglich dazu dienen sollten, die
Netzbelastung zu reduzieren und das ständige Wiederholen
derselben Fragen zu vermeiden, haben sie sich als wertvolle
Informationsquellen etabliert.</para>
<para>Wir haben uns die größte Mühe gegeben, diese
FAQ so lehrreich wie möglich zu gestalten; falls Sie
irgendwelche Vorschläge haben, wie sie verbessert werden
kann, senden Sie diese bitte an den &a.de.translators;.</para>
<qandaset>
<qandaentry>
<question id="what-is-freebsd">
<para>Was ist FreeBSD?</para>
</question>
<answer>
<para>FreeBSD ist, kurz gesagt, ein UN*X-ähnliches
Betriebssystem für die Plattformen i386, IA-64, PC-98,
Alpha/AXP und UltraSPARC, das auf der
<quote>4.4BSD-Lite</quote>-Release
der University of California at Berkeley (UCB) basiert;
außerdem flossen einige Erweiterungen aus der
<quote>4.4BSD-Lite2</quote>-Release mit ein. Es basiert
außerdem indirekt auf der von William Jolitz unter
dem Namen <quote>386BSD</quote> herausgebrachten
Portierung der <quote>Net/2</quote>-Release der UCB auf
die i386-Plattform - allerdings ist nur wenig vom
386BSD-Code übriggeblieben. Eine umfassendere
Beschreibung darüber, was FreeBSD ist und wie Sie es
für Ihre Zwecke verwenden können, finden Sie auf
der <ulink url="http://www.de.FreeBSD.org/">FreeBSD home
page</ulink>.</para>
<para>Unternehmen, Internet Service Provider, Forscher,
Computerfachleute, Studenten und Privatnutzer auf der
ganzen Welt benutzen FreeBSD für die Arbeit, die
Ausbildung oder zur Freizeitgestaltung. Sie finden einige
von ihnen in der <ulink
url="http://www.de.FreeBSD.org/gallery/gallery.html">FreeBSD
Gallerie</ulink>.</para>
<para>Ausführlichere Informationen zu FreeBSD, finden
Sie im <ulink url="../handbook/index.html">FreeBSD
Handbuch</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="FreeBSD-goals">
<para>Welches ist das Ziel des Projektes FreeBSD?</para>
</question>
<answer>
<para>Die Ziel von FreeBSD ist es, Software zur Nutzung
für beliebige Zwecke, bedingungslos zur
Verfügung zu stellen. Viele von uns haben
erheblich zur Erstellung des Codes (und zum Projekt)
beigetragen und hätten jetzt oder in Zukunft
sicherlich nichts gegen einen geringen finanziellen
Ausgleich einzuwenden, aber wir beabsichtigen definitiv
nicht, darauf zu bestehen. Wir sind der Meinung,
daß unsere <quote>Mission</quote> zuerst und
vorderst darin besteht, allen und jedem Kommenden Code
für welchen Zweck auch immer zur Verfügung zu
stellen, damit der Code möglichst weit eingesetzt
wird und den größtmöglichen Nutzen
liefert. Das ist, so glauben wir, eines der
fundamentalsten Ziele von freier Software und eines, das
wir enthusiastisch unterstützen.</para>
<para>Der Code in unserem Quellbaum, der der <ulink url="
http://www.FreeBSD.org/copyright/COPYING">GNU General
Public License (GPL)</ulink> oder der <ulink
url="http://www.FreeBSD.org/copyright/COPYING.LIB">GNU
Library General Public License (LGPL)</ulink> unterliegt,
ist mit zusätzlichen, geringfügigen Bedingungen
verknüpft, jedoch handelt es sich dabei lediglich um
erzwungene Bereitstellung statt des sonst üblichen
Gegenteils. Auf Grund der zusätzlichen
Komplexität, die durch den kommerziellen Einsatz von
GPL Software entstehen kann, bemühen wir uns jedoch,
solche Software, wo möglich, durch solche, die der
etwas lockereren <ulink
url="http://www.FreeBSD.org/copyright/freebsd-license.html">FreeBSD
Lizenz</ulink> unterliegt, zu ersetzen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="bsd-license-restrictions">
<para>Beinhaltet das FreeBSD-Copyright irgendwelche
Einschränkungen?</para>
</question>
<answer>
<para>Ja. Diese Einschränkungen regeln aber nicht, wie
Sie mit dem Sourcecode umgehen, sondern betreffen nur den
Umgang mit dem FreeBSD Project an sich. Wenn Sie sich
ernsthaft damit auseinandersetzen wollen, lesen Sie
einfach die <ulink
url="http://www.FreeBSD.org/copyright/freebsd-license.html">
FreeBSD-Lizenz</ulink>. Wenn Sie einfach nur neugierig
sind, sollte diese Zusammenfassung ausreichen:</para>
<itemizedlist>
<listitem>
<para>Behaupten Sie nicht, Sie hätten es
geschrieben.</para>
</listitem>
<listitem>
<para>Verklagen Sie uns nicht, wenn irgend etwas nicht
funktioniert.</para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="replace-current-OS">
<para>Kann FreeBSD mein bisher verwendetes Betriebssystem
ersetzen?</para>
</question>
<answer>
<para>In den meisten Fällen lautet die Antwort ja.
Allerdings ist diese Frage nicht ganz so einfach, wie sie
scheint.</para>
<para>Die meisten Anwender benutzen kein Betriebssystem,
sondern Anwendungen. Die Anwendungen sind es, die das
Betriebssystem benutzen. FreeBSD ist dazu gedacht, eine
stabile und vielfältige Umgebung für Anwendungen
bereitzustellen. Es unterstützt viele
unterschiedliche Web-Browser, Büroanwendungen,
E-Mail-Programme, Grafik-Programme, Entwicklungsumgebungen,
Netzwerk-Server, und so ziemlich alles andere, was Sie sich
wünschen können. Die meisten dieser Anwendungen
sind in der <ulink
url="http://www.FreeBSD.org/ports/">Ports
Kollektion</ulink> verfügbar.</para>
<para>Wenn Sie Anwendung benutzen müssen, die es nur
für ein bestimmtes Betriebssystem gibt, dann kommen
Sie an diesem Betriebssystem nicht vorbei. Allerdings
stehen die Chancen nicht schlecht, daß es eine
vergleichbare Anwendung für FreeBSD gibt. Wenn Sie
einen verläßlichen Server für ihr
Büro oder das Internet brauchen, oder eine stabilen
Arbeitsplatz, oder einfach nur die Fähigkeit, ihre
Arbeit ohne dauernde Abstürze machen zu können,
dann kann FreeBSD genau das sein. Viele Anwender auf der
ganzen Welt, vom Anfänger bis zum erfahrenen
Administrator, benutzen an Ihren Arbeitsplätzen
ausschließlich FreeBSD.</para>
<para>Wenn Sie von einem anderen &unix; System zu FreeBSD
wechseln, dürfte Ihnen vieles bekannt vorkommen.
Wenn Ihr Hintergrund ein Grafik-orientiertes
Betriebssystem wie Windows oder ein älteres Mac OS
ist, werden Sie zusätzliche Zeit investieren
müssen, um den &unix; Stil zu verstehen. Dieser FAQ
und das <ulink url="../handbook/index.html">FreeBSD
Handbuch</ulink> sind die besten Startpunkte.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="why-called-FreeBSD">
<para>Warum heißt es FreeBSD?</para>
</question>
<answer>
<itemizedlist>
<listitem>
<para>Es darf kostenlos genutzt werden - sogar von
kommerziellen Benutzern.</para>
</listitem>
<listitem>
<para>Der komplette Quellcode für das
Betriebssystem ist frei verfügbar und die
Benutzung, Verbreitung und Einbindung in andere
(kommerzielle und nicht-kommerzielle) Arbeiten sind
mit den geringstmöglichen Einschränkungen
versehen worden.</para>
</listitem>
<listitem>
<para>Jedem ist es freigestellt, Code für
Verbesserungen oder die Behebung von Fehlern
einzusenden und ihn zum Quellbaum hinzufügen zu
lassen (dies ist natürlich Gegenstand von ein
oder zwei offensichtlichen Klauseln).</para>
</listitem>
</itemizedlist>
<para>Es wird darauf hingewiesen, daß das englische
Wort <quote>free</quote> hier in den Bedeutungen
<quote>umsonst</quote> und <quote>Sie können tun, was
immer Sie möchten</quote> genutzt wird. Abgesehen
von ein oder zwei Dingen, die Sie mit dem FreeBSD-Code
<emphasis>nicht</emphasis> tun können (z.B. vorgeben,
ihn geschrieben zu haben), können Sie damit
tatsächlich tun, was auch immer Sie
möchten.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="latest-version">
<para>Welches ist die aktuelle FreeBSD-Version?</para>
</question>
<!--
This answer is a hack to deal with the fact that for now there are two
"latest" versions of FreeBSD.
-->
<answer>
<para>Momentan gibt es zwei Entwicklungszweige auf denen
FreeBSD-Releases erstellt werden. Die 4.X-Releases werden
auf dem <emphasis>-STABLE</emphasis>-Zweig erstellt und die
5.X-RELEASES werden auf dem <emphasis>-CURRENT</emphasis>-Zweig
erstellt.</para>
<para>Version <ulink
url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">&rel.current;</ulink>
ist das aktuelle Release aus dem
<emphasis>-CURRENT</emphasis>-Zweig und ist im
&rel.current.date; erschienen.
Version <ulink
URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">&rel2.current;</ulink>
ist das aktuelle Release aus dem
<emphasis>-STABLE</emphasis>-Zweig und ist im
&rel2.current.date; erschienen.</para>
<para>Kurz erläutert, <emphasis>-STABLE</emphasis> ist
für ISPs und andere Benutzer gedacht, die mehr Wert
auf Stabilität und eine niedrige
Änderungsfrequenz als auf die neuesten und
möglicherweise unstabilen Features im
aktuellen <emphasis>-CURRENT</emphasis> Snapshot legen.
Releases können aus jedem Zweig entstehen, Sie
sollten <emphasis>-CURRENT</emphasis> allerdings nur dann
benutzen, wenn Sie auf ein erhöhtes Fehlverhalten
im Vergleich zu <emphasis>-STABLE</emphasis> auch
vorbereitet sind.</para>
<para>Releases entstehen nur <link
linkend="release-freq">alle paar Monate</link>. Viele
Leute halten ihre Systeme aktueller (lesen Sie die Fragen
zu <link linkend="current">FreeBSD-CURRENT</link> und
<link linkend="stable">FreeBSD-STABLE</link>), aber das
erfordert ein erhöhtes Engagement, da die Sourcen
sich ständig verändern.</para>
<para>Weitere Informationen über Releases entnehmen
Sie der Seite <ulink
url="http://www.FreeBSD.org/releng/index.html">Release
Engineering</ulink> des FreeBSD Webauftritts.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="current">
<para>Was ist FreeBSD-CURRENT?</para>
</question>
<answer>
<para><ulink url="../handbook/cutting-edge.html#CURRENT">
FreeBSD-CURRENT</ulink> ist die Entwicklungsversion des
Betriebssystems, die zu gegebener Zeit zu 5.0-RELEASE
werden wird. Als solche ist sie lediglich für
Entwickler, die am System mitarbeiten und für
unentwegte Bastler von Interesse. Details zum Betrieb von
-CURRENT finden Sie im <ulink
url="../handbook/cutting-edge.html#CURRENT">
entsprechenden Abschnitt</ulink> des <ulink
url="../handbook/index.html">Handbuchs</ulink>.</para>
<para>Falls Sie nicht mit dem Betriebssystem vertraut sind
oder nicht in der Lage sein sollten, den Unterschied
zwischen einen echten und einem temporären Problem zu
erkennen, sollten Sie FreeBSD-CURRENT nicht verwenden.
Dieser Zweig entwickelt sich manchmal sehr schnell weiter
und kann gelegentlich für mehrere Tage hintereinander
nicht installierbar sein. Von Personen, die
FreeBSD-CURRENT verwenden, wird erwartet, daß Sie
dazu in der Lage sind, Probleme zu analysieren und nur
dann von ihnen berichten, wenn es sich um Fehler und nicht
um <quote>kurzzeitige Störungen</quote> handelt.
Fragen wie <quote>make world produziert Fehlermeldungen
bezüglich Gruppen</quote> werden in der -CURRENT
Mailingliste manchmal nicht beachtet.</para>
<para>Jeden Tag wird der aktuelle Entwicklungsstand in den
Zweigen -CURRENT und -STABLE in einer <ulink
url="http://www.de.FreeBSD.org/releases/snapshots.html">Snapshot</ulink>
Release festgehalten. Mittlerweile werden sogar CDROM
Distributionen dieser gelegentlichen Snapshots zur
Verfügung gestellt. Die Ziele dieser Snapshot
Releases sind:</para>
<itemizedlist>
<listitem>
<para>Die aktuelle Version der Installationssoftware zu
testen.</para>
</listitem>
<listitem>
<para>Personen, die -CURRENT oder -STABLE benutzen
möchten, aber nicht über die nötige
Zeit oder Bandbreite verfügen, um
tagesaktuell zu bleiben, soll eine bequeme
Möglichkeit geboten werden, es auf ihr System zu
bringen.</para>
</listitem>
<listitem>
<para>Die Erhaltung von Referenzpunkten des fraglichen
Codes, für den Fall, daß wir später
einmal ernsthaften Schaden anrichten sollten (obwohl
CVS verhindern sollte, daß solche Situationen
entstehen :)</para>
</listitem>
<listitem>
<para>Sicherzustellen, daß alle zu testende, neue
Merkmale und Fehlerbehebungen zu möglichst vielen
potentiellen Testern gelangen.</para>
</listitem>
</itemizedlist>
<para>Von keinem -CURRENT Snapshot kann
<quote>Produktionsqualität</quote> für beliebige
Zwecke erwartet werden. Wenn Sie eine stabile und
ausgetestete Version benötigen, sollten Sie eine
vollständige Release oder einen -STABLE Snapshot
verwenden.</para>
<para>Snapshot Releases von 5.0-CURRENT sind unter <ulink
url="ftp://current.FreeBSD.org/pub/FreeBSD/">
ftp://current.FreeBSD.org/pub/FreeBSD/</ulink>
verfügbar; wenn Sie einen Snapshot von 4-STABLE
erhalten möchten, lautet die Adresse <ulink
url="ftp://releng4.FreeBSD.org/pub/FreeBSD">releng4.FreeBSD.org</ulink>.
Zur Zeit (Mai 2000) werden keine Snapshots von 3-STABLE
erstellt.</para>
<para>In der Regel wird jeden Tag ein Snapshot jedes zur
Zeit aktiven Zweiges erstellt.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="stable">
<para>Was ist das Konzept von FreeBSD-STABLE?</para>
</question>
<answer>
<para>Zur Zeit, als FreeBSD 2.0.5 herausgegeben wurde, haben
wir entschieden, die Entwicklung von FreeBSD zweizuteilen.
Ein Zweig wurde <ulink
url="../handbook/current-stable.html#STABLE">-STABLE</ulink>
der andere <ulink
url="../handbook/cutting-edge.html#CURRENT">-CURRENT</ulink>
genannt. FreeBSD-STABLE ist für Anbieter von
Internetdiensten und andere kommerzielle Unternehmen
gedacht, für die plötzliche Veränderungen
und experimentelle Features unerwünscht sind.
In diesem Zweige werden nur ausgetestete
Fehlerbehebungen und kleine, inkrementelle Änderungen
aufgenommen. FreeBSD-CURRENT dagegen stellt eine
ununterbrochene Linie zum
5.0-RELEASE (und darüber hinaus) dar, seit 2.0
herausgegeben worden ist. Die folgende ASCII-Zeichnung
soll verdeutlichen, wie das aussieht:</para>
<programlisting>
2.0
|
|
| [2.1-STABLE]
*ZWEIG* 2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1 [2.1-STABLE endet]
| (März 1997)
|
|
| [2.2-STABLE]
*ZWEIG* 2.2.1 -> 2.2.2-RELEASE -> 2.2.5 -> 2.2.6 -> 2.2.7 -> 2.2.8 [Ende]
| (März 1997) (Okt 97) (Apr 98) (Jul 98) (Dez 98)
|
|
3.0-SNAPs (begonnen im 1. Quartal 1997)
|
|
3.0-RELEASE (Okt 1998)
|
| [3.0-STABLE]
*ZWEIG* 3.1-RELEASE (Feb 1999) -> 3.2 -> 3.3 -> 3.4 -> 3.5 -> 3.5.1
| (Mai 1999) (Sep 1999) (Dec 1999) (Jun 2000) (Juli 2000)
|
| [4.0-STABLE]
*ZWEIG* 4.0 (März 2000) -> 4.1 -> 4.1.1 -> 4.2 -> 4.3 -> 4.4 -> ... zukünftige 4.X Releases ...
| (Jul 2000) (Sep 2000) (Nov 2000) (Apr 2001)
|
|
\|/
+
[5.0-CURRENT wird fortgesetzt]
</programlisting>
<para>Der Zweig 2.2-STABLE wurde mit der
Veröffentlichung der Version 2.2.8 eingestellt. Der
Zweig 3-STABLE endete mit Version 3.5.1, der letzten
3.X-Version. Änderungen in diesen Zweigen
beschränken sich im allgemeinen auf die Korrektur von
Sicherheits-relevanten Fehlern.</para>
<para>4-STABLE ist der Zweig, auf den sich die Entwicklung
von -STABLE zur Zeit konzentriert. Die aktuelle Version
ist das im &rel.current.date; erschienene
&rel.current;-RELEASE.</para>
<para>Der -CURRENT-Zweig entwickelt sich langsam in Richtung
5.0 und darüber hinaus weiter. Weitere Informationen
über diesen Zweig finden Sie bei <link
linkend="current">Was ist FreeBSD-CURRENT?</link>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="release-freq">
<para>Wann werden FreeBSD-Versionen erstellt?</para>
</question>
<answer>
<para>Im Schnitt gibt das &a.re; alle vier Monate eine neue
FreeBSD-Version frei. Das Erscheinungsdatum
einer neuer Version wird frühzeitig bekanntgegeben,
damit die am System arbeitenden Personen wissen, bis wann
ihre Projekte abgeschlossen und ausgetestet sein
müssen. Vor jedem Release gibt es eine Testperiode um
sicherzustellen, daß die neu hinzugefügten Features
nicht die Stabilität des Releases beeinträchtigen.
Viele Benutzer halten dies für einen
großen Vorteil von FreeBSD, obwohl es manchmal
frustrierend sein kann, so lange auf die
Verfügbarkeit der aktuellsten Leckerbissen zu
warten.</para>
<para>Weitere Informationen über die Entwicklung von
Releases, sowie eine Übersicht über kommende Releases,
erhlaten Sie auf den <ulink
url="http://www.FreeBSD.org/releng/index.html">release
engineering</ulink> Seiten der FreeBSD Webseite.</para>
<para>Für diejenigen, die ein wenig mehr Spannung
brauchen (oder möchten), werden täglich
Snapshots herausgegeben, wie oben beschrieben.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="responsible">
<para>Wer ist für FreeBSD verantwortlich?</para>
</question>
<answer>
<para>Schlüsseldiskussionen, die das FreeBSD-Projekt
betreffen, wie z.B. über die generelle Ausrichtung
des Projekts und darüber, wem es erlaubt sein soll,
Code zum Quellbaum hinzuzufügen, werden innerhalb
eines <ulink
url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/article.html#STAFF-CORE">Core
Team</ulink> von etwa 9 Personen geführt. Es gibt
ein weitaus größeres Team von über 200
<ulink
url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/article.html#STAFF-COMMITTERS">Committers</ulink>,
die dazu autorisiert sind, Änderungen am FreeBSD
Quellbaum durchzuführen.</para>
<para>Jedoch werden die meisten nicht-trivialen
Änderungen zuvor in den <link
linkend="mailing">Mailinglisten</link> diskutiert und es
bestehen keinerlei Einschränkungen darüber, wer
sich an diesen Diskussionen beteiligen darf.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="where-get">
<para>Wie kann ich FreeBSD beziehen?</para>
</question>
<answer>
<para>Jede bedeutende Ausgabe von FreeBSD ist per
Anonymous-FTP vom <ulink
url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/">FreeBSD FTP
Server</ulink> erhältlich:</para>
<itemizedlist>
<listitem>
<para>Die aktuelle Ausgabe von 3.X-STABLE,
3.5.1-RELEASE, finden Sie im Verzeichnis <ulink
url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/releases/i386/3.5.1-RELEASE/">
3.5.1-RELEASE</ulink>.</para>
</listitem>
<listitem>
<para>Das aktuelle Release von 5.X, &rel.current;-RELEASE
finden Sie im Verzeichnis <ulink
URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">&rel.current;-RELEASE directory</ulink>.</para>
</listitem>
<listitem>
<para>Das aktuelle Release von 4-STABLE,
&rel2.current;-RELEASE finden Sie im Verzeichnis <ulink
URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">&rel2.current;-RELEASE directory</ulink>.</para>
</listitem>
<listitem>
<para><ulink
url="ftp://releng4.FreeBSD.org/pub/FreeBSD/">4.X
Snapshots</ulink> werden in der Regel
täglich erstellt.</para>
</listitem>
<listitem>
<para>Täglich werden <ulink
url="ftp://current.FreeBSD.org/pub/FreeBSD/">5.0
Snapshot</ulink> Ausgaben vom <link
linkend="current">-CURRENT</link>-Zweig erstellt, die
allerdings nur den Testern und Entwicklern an
vorderster Front dienen.</para>
</listitem>
</itemizedlist>
<para>Wo und wie Sie FreeBSD auf CD, DVD, und anderen Medien
beziehen können, erfahren Sie im <ulink
url="../handbook/mirrors.html">Handbuch</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="howto-mirror">
<para>Wie wird ein FreeBSD-Spiegel eingerichtet?</para>
</question>
<answer>
<para>Der Artikel <ulink url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/articles/hubs/">Mirroring
FreeBSD</ulink> erklärt, wie ein FreeBSD-Spiegel
eingerichtet wird.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="access-pr">
<para>Wie greife ich auf die Datenbank mit Problemberichten
zu?</para>
</question>
<answer>
<para>Die Datenbank mit Problemberichten (PR - Problem
Report) Änderungsanfragen von Benutzern kann
über die Web-basierte PR- <ulink
url="http://www.de.FreeBSD.org/cgi/query-pr-summary.cgi?query">Abfrage</ulink>-Schnittstelle
abgefragt und über das PR-<ulink
url="http://www.de.FreeBSD.org/send-pr.html">Einsende</ulink>-Interface
können Einsendungen vorgenommen werden. Das
Programm &man.send-pr.1; kann auch dazu
genutzt werden, Problemberichte oder
Änderungsanträge per E-Mail einzusenden.</para>
<para>Bevor Sie einen Fehler melden, sollten Sie sich zuerst
den Artikel <ulink
URL="../../articles/problem-reports/article.html">Writing
FreeBSD Problem Reports</ulink> durchlesen, damit Sie
wissen, wie Sie eine gute Fehlermeldung verfassen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="become-web-mirror">
<para>Was muß ich tun, um einen FreeBSD-Web-Mirror
betreiben zu können?</para>
</question>
<answer>
<para>Es gibt mehrere Möglichkeiten, die Web-Seiten zu
spiegeln.</para>
<itemizedlist>
<listitem>
<para>Sie können die formatierten Dateien von einem
FreeBSD CVSUP-Server mit
<filename role="package">net/cvsup</filename> beziehen.
Die Datei
<filename>/usr/share/examples/cvsup/www-supfile</filename>
enthält ein Beispiel für die Konfiguration,
die für einen Web-Mirror notwendig ist.</para>
</listitem>
<listitem>
<para>Sie können sich die Quelldateien für die
Web-Seiten von jeden FreeBSD FTP-Server mit einem
FTP-Spiegelwerkzeug Ihrer Wahl herunterladen.
Allerdings müssen Sie diese Quelldateien erst
übersetzen, bevor Sie sie verwenden können.
Starten Sie einfach bei <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www</ulink>.</para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="other-info-sources">
<para>Gibt es weitere Informationsquellen?</para>
</question>
<answer>
<para>Sie finden eine umfassende Liste unter <ulink
url="http://www.FreeBSD.org/docs.html">Documentation</ulink>
auf der <ulink
url="http://www.FreeBSD.org">FreeBSD-Webseite</ulink>.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="support">
<title>Documentation and Support</title>
<qandaset>
<qandaentry>
<question id="books">
<para>Gibt es gute Bücher über FreeBSD?</para>
</question>
<answer>
<para>Im Zuge des FreeBSD Projekts sind diverse gute
Dokumente entstanden, die unter der
folgenden URL abgerufen werden können: <ulink
url="http://www.FreeBSD.org/docs.html">http://www.FreeBSD.org/docs.html</ulink>.
Die Dokumente stehen auch als Pakete, die Sie leicht
installieren können, zur Verfügung. In den
nächsten Abschnitten erfahren Sie mehr über diese
Pakete.</para>
<para>Zusätzlich enthalten die Bibliographien am Ende
dieser FAQ und im Handbuch Verweise auf weitere empfohlene
Bücher.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="doc-formats">
<para>Ist die Dokumentation auch in anderen Formaten
verfügbar? Zum Beispiel als einfacher Text (ASCII)
oder als PostScript?</para>
</question>
<answer>
<para>Ja. Werfen Sie einen Blick auf das Verzeichnis <ulink
url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/">/pub/FreeBSD/doc/</ulink>
auf dem FreeBSD FTP-Server. Dort finden sie Dokumentation
in vielen verschiedenen Format.</para>
<para>Die Dokumentation wurde nach vielen verschiedenen
Kriterien sortiert. Die Kriterien sind:</para>
<itemizedlist>
<listitem>
<para>Der Name des Dokumentes, z.B.
<literal>FAQ</literal> oder
<literal>Handbuch</literal>.</para>
</listitem>
<listitem>
<para>Die Sprache und der Zeichensatz, die in dem
Dokument verwendet werden. Diese entsprechen den
Anpassungen, die Sie auf Ihrem FreeBSD-System im
Verzeichnis <filename>/usr/share/locale</filename>
finden. Zur Zeit werden die folgenden Sprachen und
Zeichensätze benutzt:</para>
<informaltable frame="none">
<tgroup cols="2">
<thead>
<row>
<entry>Name</entry>
<entry>Bedeutung</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>en_US.ISO8859-1</literal></entry>
<entry>US Englisch</entry>
</row>
<row>
<entry><literal>es_ES.ISO8859-1</literal></entry>
<entry>Spanisch</entry>
</row>
<row>
<entry><literal>fr_FR.ISO8859-1</literal></entry>
<entry>Französisch</entry>
</row>
<row>
<entry><literal>de_DE.ISO8859-1</literal></entry>
<entry>Deutsch</entry>
</row>
<row>
<entry><literal>ja_JP.eucJP</literal></entry>
<entry>Japanisch (EUC kodiert)</entry>
</row>
<row>
<entry><literal>ru_RU.KOI8-R</literal></entry>
<entry>Russisch (KOI8-R kodiert)</entry>
</row>
<row>
<entry><literal>zh_TW.Big5</literal></entry>
<entry>Chinesisch (Big5 kodiert)</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<note>
<para>Einige Dokumente sind nicht in allen Sprachen
verfügbar.</para>
</note>
</listitem>
<listitem>
<para>Das Format des Dokumentes. Die Dokumentation wird
in verschiedenen Formaten erzeugt, von denen jedes seine
eigenen Vor- und Nachteile hat. Einige Formate lassen sich
gut an einem Bildschirm lesen, während andere Formate
dafür gedacht sind, ein ansprechendes Druckbild zu
erzeugen. Das die Dokumentation in verschiedenen Formaten
verfügbar ist, stellt sicher, daß unsere Leser
die für sie relevanten Teile unabhängig vom
Ausgabemedium (Bildschirm oder Papier) lesen können.
Zur Zeit werden die folgenden Formate
unterstützt:</para>
<informaltable frame="none">
<tgroup cols="2">
<thead>
<row>
<entry>Format</entry>
<entry>Erklärung</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>html-split</literal></entry>
<entry>Viele kleine HTML-Dateien, die sich
gegenseitig referenzieren.</entry>
</row>
<row>
<entry><literal>html</literal></entry>
<entry>Eine große HTML-Datei, die das
komplette Dokument enthält.</entry>
</row>
<row>
<entry><literal>pdb</literal></entry>
<entry>Palm Pilot Datenbank für das
Programm <ulink
url="http://www.iSilo.com/">iSilo</ulink>.</entry>
</row>
<row>
<entry><literal>pdf</literal></entry>
<entry>Adobe's Portable Document Format</entry>
</row>
<row>
<entry><literal>ps</literal></entry>
<entry>PostScript</entry>
</row>
<row>
<entry><literal>rtf</literal></entry>
<entry>Microsoft's Rich Text Format
<footnote>
<para>Die Seitennummern werden nicht
automatisch aktualisiert, wenn Sie diese
Datei in Word laden. Wenn Sie das
Dokument geladen haben, müssen Sie Sie
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>A</keycap>
</keycombo>,
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>End</keycap>
</keycombo>,
<keycap>F9</keycap> eingeben, um die
Seitennummern aktualisieren zu
lassen.</para>
</footnote>
</entry>
</row>
<row>
<entry><literal>txt</literal></entry>
<entry>Ganz normaler Text</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</listitem>
<listitem>
<para>Das zur Komprimierung verwendete Programm. Zur
Zeit werden drei verschiedene Methoden
benutzt.</para>
<orderedlist>
<listitem>
<para>Wenn die Dokumentation im Format
<literal>html-split</literal> vorliegt, werden die
Dateien mit &man.tar.1; zusammengefaßt. Die
so entstandene <filename>.tar</filename> Datei
wird dann mit einer der unten genannten Methoden
komprimiert.</para>
</listitem>
<listitem>
<para>Bei allen anderen Formaten existiert nur eine
Datei mit dem Namen
<filename>book.<replaceable>format</replaceable></filename>
(z.B., <filename>book.pdb</filename>,
<filename>book.html</filename>, und so
weiter).</para>
<para>Diese Dateien werden mit drei verschiedenen
Programmen komprimiert.</para>
<informaltable frame="none">
<tgroup cols="2">
<thead>
<row>
<entry>Programm</entry>
<entry>Beschreibung</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>zip</literal></entry>
<entry>Das Zip Format. Wenn Sie diese
Dateien unter FreeBSD auspacken wollen,
müssen sie vorher den Port
<filename role="package">archivers/unzip</filename>
installieren.</entry>
</row>
<row>
<entry><literal>gz</literal></entry>
<entry>Das GNU Zip format. Sie können
diese Dateien mit &man.gunzip.1;
entpacken, dieses Programm ist Bestandteil
von FreeBSD.</entry>
</row>
<row>
<entry><literal>bz2</literal></entry>
<entry>Das BZip2 Format. Es wird selten
benutzt, erzeugt aber normalerweise
kleinere Archive. Sie müssen den
Port <filename role="package">archivers/bzip2</filename>
installieren, um diese Dateien entpacken
zu können.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Ein Beispiel: Die mit BZip2 gepackte Version
des Handbuchs im PostScript-Format hat den Namen
<filename>book.ps.bz2</filename> und ist im
Verzeichnis <filename>handbook/</filename> zu
finden.</para>
</listitem>
</orderedlist>
</listitem>
</itemizedlist>
<para>Nachdem Sie das Format und das Kompressionsverfahren
ausgewählt haben, müssen Sie sich entscheiden,
ob Sie das Dokument in Form eines FreeBSD
<emphasis>Package</emphasis> herunterladen
möchten.</para>
<para>Der Vorteil dieser Variante, daß Sie die
Dokumentation mit normalen Tools wie &man.pkg.add.1; und
&man.pkg.delete.1; verwalten können.</para>
<para>Wenn Sie das Package herunterladen und installieren
wollen, müssen Sie den richtigen Dateinamen kennen.
Die Dateien liegen in einem separaten Verzeichnis mit dem
Namen <filename>packages</filename> und werden nach dem Schema
<filename><replaceable>Dokument-Name</replaceable>.<replaceable>Sprache</replaceable>.<replaceable>Zeichensatz</replaceable>.<replaceable>Format</replaceable>.tgz</filename>
benannt.</para>
<para>Ein Beispiel: Die englische Version der FAQ im
PDF-Format ist in dem Package mit dem Namen
<filename>faq.en_US.ISO8859-1.pdf.tgz</filename>
enthalten.</para>
<para>Sie können daher das englische PDF FAQ Package
mit den folgenden Befehlen installieren.</para>
<screen>&prompt.root; <userinput>pkg_add ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgz</userinput></screen>
<para>Danach können Sie mit &man.pkg.info.1; nachsehen,
wo die Datei installiert wurde.</para>
<screen>&prompt.root; <userinput>pkg_info -f faq.en_US.ISO8859-1.pdf</userinput>
Information for faq.en_US.ISO8859-1.pdf:
Packing list:
Package name: faq.en_US.ISO8859-1.pdf
CWD to /usr/share/doc/en_US.ISO8859-1/books/faq
File: book.pdf
CWD to .
File: +COMMENT (ignored)
File: +DESC (ignored)</screen>
<para>Wie Sie sehen können, wurde die Datei
<filename>book.pdf</filename> im Verzeichnis
<filename>/usr/share/doc/en_US.ISO8859-1/books/faq</filename>
installiert.</para>
<para>Wenn sie die Packages nicht benutzen, müssen Sie
die komprimierten selber herunterladen, auspacken und die
richtigen Stellen kopieren.</para>
<para>Wenn Sie zum Beispiel die mit &man.gzip.1; gepackte
<quote>split HTML</quote>Version der englischen FAQ
herunterladen und installieren wollten, bräuchten
Sie die Datei
<filename>doc/en_US.ISO8859-1/books/faq/book.html-split.tar.gz</filename>.
Um diese Datei herunterzuladen und auszupacken, wären
die folgenden Schritte notwendig.</para>
<screen>&prompt.root; <userinput>fetch ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.gz</userinput>
&prompt.root; <userinput>gzip -d book.html-split.tar.gz</userinput>
&prompt.root; <userinput>tar xvf book.html-split.tar</userinput></screen>
<para>Danach haben Sie eine Sammlung vieler kleiner
<filename>.html</filename> Datei. Die wichtigste Datei
hat Namen <filename>index.html</filename> und enthält
das Inhaltsverzeichnis, eine Einleitung und Verweise auf
die anderen Teile des Dokumentes. Falls notwendig,
können Sie die diversen Dateien jetzt an ihren
endgültigen Bestimmungsort verschieben oder
kopieren.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="mailing">
<para>Woher bekomme ich Informationen zu den FreeBSD
Mailinglisten?</para>
</question>
<answer>
<para>Vollständige Informationen finden Sie im <ulink
url="../handbook/eresources.html#ERESOURCES-MAIL">Handbucheintrag
über Mailinglisten</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="y2k">
<para>Wo finde ich die FreeBSD-spezifischen Informationen
zum Jahr-2000-Problem?</para>
</question>
<answer>
<para>Vollständige Informationen finden Sie auf der
<ulink url="http://www.de.FreeBSD.org/y2kbug.html">FreeBSD
Jahr-2000-Seite</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="newsgroups">
<para>Welche Newsgruppen existieren zu FreeBSD?</para>
</question>
<answer>
<para>Sie finden alle Informationen hierzu im <ulink
url="../handbook/eresources-news.html">Handbucheintrag zu
Newsgruppen</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="irc">
<para>Gibt es FreeBSD IRC (Internet Relay Chat)
Kanäle?</para>
</question>
<answer>
<para>Ja, die meisten großen IRC Netze bieten einen
FreeBSD Chat-Channel:</para>
<itemizedlist>
<listitem>
<para>Channel <literal>FreeBSD</literal> im <ulink
url="http://www.efnet.org/index.php">EFNet</ulink> ist
ein FreeBSD-Forum, aber gehen Sie nicht dorthin, um
technische Unterstützung zu suchen, oder, um zu
versuchen, die Leute dort dazu zu bringen, Ihnen dabei
zu helfen, das mühselige Lesen von Manuals zu
ersparen oder eigene Nachforschungen zu betreiben. Es
ist in erster Linie ein Chat-Channel und die Themen
dort umfassen Sex, Sport oder Kernwaffen ebensogut,
wie FreeBSD. Sie wurden gewarnt! Der Channel ist auf
dem Server <hostid>irc.chat.org</hostid>
verfügbar.</para>
</listitem>
<listitem>
<para>Der Channel <literal>#FreeBSDhelp</literal> im
<ulink
url="http://www.efnet.org/index.php">EFNet</ulink> hat
sich dagegen auf die Unterstützung der Benutzer
von FreeBSD spezialisiert. In diesem Channel sind
Fragen deutlich willkommener als im Channel
<literal>#FreeBSD</literal>.</para>
</listitem>
<listitem>
<para>Der Channel <literal>#FreeBSD</literal> im <ulink
url="http://www.dal.net/">DALNET</ulink> ist in den
USA unter <hostid>irc.dal.net</hostid> und in Europa
unter <hostid>irc.eu.dal.net</hostid>
verfügbar.</para>
</listitem>
<listitem>
<para>Der Channel <literal>#FreeBSD</literal> im <ulink
url="http://www.undernet.org/">UNDERNET</ulink> ist in
den USA unter <hostid>us.undernet.org</hostid> und in
Europa unter <hostid>eu.undernet.org</hostid>
verfügbar. Es handelt sich hierbei um einen
Hilfe-Channel, man wird Sie daher auf Dokumente
verweisen, die Sie selbst lesen müssen.</para>
</listitem>
<listitem>
<para>Der Channel <literal>#FreeBSD</literal> im <ulink
url="http://www.hybnet.net/">HybNet</ulink>. Dieser
Channel <emphasis>ist</emphasis> ein Hilfe-Channel.
Eine Liste der möglichen Server finden Sie auf
der <ulink url="http://www.hybnet.net/">Webseite von
HybNet</ulink>.</para>
</listitem>
</itemizedlist>
<para>Alle diese Kanäle unterscheiden sich voneinander
und sind nicht miteinander verbunden. Ebenso
unterscheiden sich Ihre Chat-Stile, weshalb es sein kann,
daß Sie zunächst alle Kanäle ausprobieren
müssen, um den zu Ihrem Chat-Stil passenden zu
finden. Hier gilt, was für
<emphasis>jeden</emphasis> IRC-Verkehr gilt: falls sie
sich leicht angegriffen fühlen oder nicht mit vielen
jungen (und einigen älteren) Leuten, verbunden mit
dem nutzlosen Gezanke umgehen können, dann ziehen Sie
es gar nicht erst in Erwägung.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="training">
<para>Gibt es Firmen, die Training und Support für
FreeBSD anbieten?</para>
</question>
<answer>
<para>DaemonNews bietet Training und Support für
FreeBSD an. Weitergehende Informationen finden Sie in der
<ulink url="http://www.bsdmall.com/">BSD
Mall</ulink>.</para>
<para>FreeBSD Services Ltd. bieten kommerzielle Unterstützung
für FreeBSD in Großbritannien an. Sie verkaufen
übrigens auch eine FreeBSD-DVD. Weitere Informationen
erhalten Sie auf der
<ulink url="http://www.freebsd-services.com">Webseite von
FreeBSD Services Ltd.</ulink>.</para>
<para>Die FreeBSD Mall bietet ebenfalls professionellen
FreeBSD support an. Weitergehende Informationen finden
Sie auf ihrer <ulink
url="http://www.freebsdmall.com/">Webseite</ulink>.</para>
<para>Wenn Ihre Firma oder Organisation ebenfalls Training
und Support anbietet und hier genannt werden möchte,
wenden Sie sich bitte an das FreeBSD Project.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="install">
<chapterinfo>
<author>
<firstname>Nik</firstname>
<surname>Clayton</surname>
<affiliation>
<address><email>nik@FreeBSD.org</email></address>
</affiliation>
</author>
</chapterinfo>
<title>Installation</title>
<qandaset>
<qandaentry>
<question id="floppy-download">
<para>Welche Dateien muß ich herunterladen, um FreeBSD
zu bekommen?</para>
</question>
<answer>
<para>Vor dem 3.1-RELEASE benötigte man nur ein
Floppy-Image, <filename>floppies/boot.flp</filename>, um
FreeBSD zu installieren. Seit dem 3.1-RELEASE haben wir
jedoch im initialen System Unterstützung für
eine Vielfalt von Hardware hinzugefügt, und
dafür wird mehr Platz benötigt. Aus diesem
Grund braucht man ab 3.X zwei Floppy-Images:
<filename>floppies/kernel.flp</filename> und
<filename>floppies/mfsroot.flp</filename>. Diese Images
müssen mit Hilfe von Werkzeugen wie
<command>fdimage</command> oder &man.dd.1; auf Disketten
kopiert werden.</para>
<para>Falls Sie selbst die einzelnen Distributionen
herunterladen müssen (um z.B. von einem
DOS-Dateisystem aus zu installieren), empfehlen wir, sich
die folgenden Distributionen zu besorgen:</para>
<itemizedlist>
<listitem>
<para>bin</para>
</listitem>
<listitem>
<para>manpages</para>
</listitem>
<listitem>
<para>compat*</para>
</listitem>
<listitem>
<para>doc</para>
</listitem>
<listitem>
<para>src/ssys.*</para>
</listitem>
</itemizedlist>
<para>Vollständige Instruktionen für dieses
Vorgehen und ein wenig mehr zur Installation generell
finden Sie im <ulink
url="../handbook/install.html">Handbucheintrag zur
Installation von FreeBSD</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="floppy-image-too-large">
<para>Was soll ich tun, wenn das Floppy-Image nicht auf eine
Diskette paßt?</para>
</question>
<answer>
<para>Eine 3,5-Zoll (1,44MB) Diskette kann 1474560 Byte an
Daten fassen und das Boot-Image ist exakt 1474560 Byte
groß.</para>
<para>Häufige Fehler bei der Erstellung der
Boot-Diskette sind:</para>
<itemizedlist>
<listitem>
<para>Bei der Benutzung von <acronym>FTP</acronym> das
Floppy-Image nicht im
<emphasis>Binär</emphasis>-Modus
herunterzuladen.</para>
<para>Einige FTP-Clients benutzen als Voreinstellung den
<emphasis>ASCII</emphasis>-Modus und versuchen, alle
Zeilenendezeichen an das Zielsystem anzupassen.
Dadurch wird das Boot-Image in jedem Fall unbrauchbar.
Überprüfen Sie die Größe des
heruntergeladenen Boot-Images: falls sie nicht
<emphasis>exakt</emphasis> mit der auf dem Server
übereinstimmt, hat das Herunterladen nicht
richtig funktioniert.</para>
<para>Abhilfe: geben Sie <emphasis>binary</emphasis> an
der FTP-Eingabeaufforderung ein, nach dem Sie mit dem
Server verbunden sind und bevor Sie das Image
herunterladen.</para>
</listitem>
<listitem>
<para>Die Benutzung des DOS-Befehls
<command>copy</command> (oder eines entsprechendes
Werkzeugs der grafischen Benutzeroberfläche), um
das Boot-Image auf die Diskette zu
übertragen.</para>
<para>Programme wie <command>copy</command> sind hier
unbrauchbar, weil das Image zur direkten
Übertragung erstellt wurde. Das Image stellt den
gesamten Disketteninhalt dar, Spur für Spur, und
nicht eine gewöhnliche Datei. Sie müssen es
<quote>roh</quote> mit speziellen Werkzeugen (z.B.
<command>fdimage</command> oder
<command>rawrite</command>) übertragen, wie es in
der <ulink
url="../handbook/install.html">Installationsanleitung
zu FreeBSD</ulink> beschrieben ist.</para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="install-instructions-location">
<para>Wo befinden sich die Instruktionen zur Installation
von FreeBSD?</para>
</question>
<answer>
<para>Installationsanleitungen finden Sie im <ulink
url="../handbook/install.html">Handbucheintrag zur
Installation von FreeBSD</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="need-to-run">
<para>Was benötige ich zum Betrieb von FreeBSD?</para>
</question>
<answer>
<para>Sie werden einen 386er oder besseren PC mit 5MB oder
mehr Hauptspeicher und mindestens 60MB Festplattenspeicher
benötigen. Es läuft mit einer einfachen MDA
Grafikkarte, aber um X11R6 zu benutzen, benötigen Sie
eine VGA- oder bessere Videokarte.</para>
<para>Lesen Sie auch den <link linkend="hardware">Abschnitt
Hardwarekompatibilität</link>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="four-meg-ram-install">
<para>Ich besitze nur 4 MB Hauptspeicher. Kann ich FreeBSD
installieren?</para>
</question>
<answer>
<para>FreeBSD 2.1.7 war die letzte FreeBSD-Version, die auf
einem 4MB-System installiert werden konnte. Seit FreeBSD
2.2 benötigen Sie mindestens 5MB zur Installation auf
einem neuen System.</para>
<para>Alle FreeBSD-Versionen <emphasis>laufen</emphasis>
zwar mit 4MB Hauptspeicher, lediglich ihr
Installationsprogramm läuft nicht mit 4MB. Wenn Sie
möchten, können Sie für den
Installationsvorgang zusätzlichen Hauptspeicher
hinzufügen, und nachdem das System installiert ist,
wieder auf 4MB zurückgehen. Sie können Ihre
Festplatte auch in ein System, das mehr als 4MB besitzt, einbauen,
dort installieren und sie dann wieder umbauen.</para>
<para>FreeBSD 2.1.7 läßt sich nicht installieren,
wenn Ihr System 640 kB Basis- und 3MB erweitertem Speicher
besitzt. Falls ihr Motherboard einiges vom
<quote>verlorenen</quote> Speicher aus der 640kB - 1MB
Region verschieben kann, könnten Sie trotzdem in der
Lage sein, FreeBSD 2.1.7 zu installieren. Versuchen Sie
in Ihr BIOS-Setup zu gelangen und suchen Sie nach einer
<quote>remap</quote> Option. Aktivieren Sie sie. Sie
sollten das ROM shadowing ebenfalls ausschalten. Es
könnte einfacher sein, 4 weitere MB nur für die
Installation zu benutzen, einen benutzerdefinierten Kernel
nur mit den benötigten Optionen zu generieren und
dann die 4 MB wieder auszubauen. Sie können auch
2.0.5 installieren und anschließend Ihr System mit
der <quote>upgrade</quote> Option des 2.1.7
Installationsprogramms nach 2.1.7 migrieren.</para>
<para>Wenn Sie nach der Installation einen
benutzerdefinierten Kernel generieren, wird er mit 4 MB
laufen. Irgend jemand hat es geschafft, mit 2 MB zu
booten, allerdings war das System nahezu
unbrauchbar.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="custom-boot-floppy">
<para>Wie kann ich eine angepaßte
Installationsdiskette erstellen?</para>
</question>
<answer>
<para>Zur Zeit gibt es keine Möglichkeit,
<emphasis>nur</emphasis> die angepaßten
Installationsdisketten zu erstellen. Sie müssen sich
eine ganz neues Release erstellen, das Ihre
Installationsdiskette enthält.</para>
<para>Wenn Sie eine modifizierte Ausgabe erstellen wollen,
finden Sie eine Anleitung im Artikel <ulink
url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/article.html">
FreeBSD Release Engineering</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="multiboot">
<para>Kann ich mehr als ein Betriebssystem auf meinem PC
unterbringen?</para>
</question>
<answer>
<para>Sehen Sie sich <ulink
url="http://www.de.FreeBSD.org/tutorials/multi-os/">Die
Multi-OS-Seite</ulink> an.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="windows-coexist">
<para>Kann Windows 95/98 neben FreeBSD existieren?</para>
</question>
<answer>
<para>Installieren Sie zuerst Windows 95/98, dann FreeBSD.
Der Bootmanager von FreeBSD kann dann entweder Win95/98
oder FreeBSD booten. Falls Sie Windows 95/98 nach FreeBSD
installieren, wird es, ohne zu fragen, Ihren Bootmanager
überschreiben. Lesen Sie den nächsten
Abschnitt, falls das passieren sollte.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="win95-damaged-boot-manager">
<para>Windows 95/98 hat meinen Bootmanager zerstört!
Wie stelle ich ihn wieder her?</para>
</question>
<answer>
<para>Es gibt drei Möglichkeiten, den
FreeBSD-Bootmanager neu zu installieren:</para>
<itemizedlist>
<listitem>
<para>Unter DOS wechseln Sie in das Verzeichnis tools/
Ihrer FreeBSD-Distribution und suchen nach
<filename>bootinst.exe</filename>. Rufen sie es so
auf:</para>
<screen><prompt>...\TOOLS></prompt> <userinput>bootinst.exe boot.bin</userinput></screen>
<para>und der Bootmanager wird neu installiert.</para>
</listitem>
<listitem>
<para>Booten Sie FreeBSD wieder mit der Bootdiskette und
wählen Sie den Menüeintrag Custom Installation.
Wählen Sie Partition. Wählen Sie das
Laufwerk, auf dem sich der Bootmanager befand
(wahrscheinlich der erste Eintrag) und wenn Sie in den
Partitioneditor gelangen, wählen Sie als aller
erstes (nehmen Sie z.B. keine Änderungen vor)
(W)rite. Sie werden nach einer Bestätigung
gefragt, antworten ja und vergessen Sie nicht, in der
Bootmanager-Auswahl <quote>Boot Manager</quote>
auszuwählen. Hierdurch wird der Bootmanager
wieder auf die Festplatte geschrieben. Verlassen Sie
nun das Installationsmenü und rebooten wie
gewöhnlich von der Festplatte.</para>
</listitem>
<listitem>
<para>Booten Sie FreeBSD wieder mit der Bootdiskette
(oder der CDROM) und wählen Sie den
Menüpunkt <quote>Fixit</quote>. Wählen Sie
die für Sie passende Option, entweder die
Fixit-Diskette oder die CD Nummer 2 (die Option
<quote>live</quote> Filesystem). Wechseln Sie zur
Fixit-Shell und geben Sie den folgenden Befehl
ein:</para>
<screen><prompt>Fixit#</prompt> <userinput>fdisk -B -b /boot/boot0 <replaceable>bootdevice</replaceable></userinput></screen>
<para>Als <replaceable>bootdevice</replaceable>
müssen Sie das von Ihrem System verwendete
Gerät angeben, z.B. <devicename>ad0</devicename>
(erste IDE-Platte), <devicename>ad4</devicename>
(erste IDE-Platte an einem zusätzlichen
Controller), <devicename>da0</devicename> (erste
SCSI-Platte), usw.</para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="boot-on-thinkpad">
<para>Mein IBM Thinkpad Modell A, T oder X, hängt sich
auf, wenn ich FreeBSD zum ersten Mal starte. Was soll ich
machen?</para>
</question>
<answer>
<para>Ein Fehler in den ersten BIOS-Versionen dieser
Geräte führt dazu, daß sie die von FreeBSD
genutzte Partition für eine Suspend-To-Disk-Partition
halten. Wenn das BIOS dann versucht, diese Partition
auszuwerten, hängt sich das System auf.</para>
<para>Laut IBM
<footnote>
<para>In einer Mail von Keith Frechette
<email>kfrechet@us.ibm.com</email>.</para>
</footnote>
wurde der Fehler wurde in den folgenden BIOS-Versionen
behoben:</para>
<informaltable frame="none">
<tgroup cols="2">
<thead>
<row>
<entry>Gerät</entry>
<entry>BIOS Version</entry>
</row>
</thead>
<tbody>
<row>
<entry>T20</entry>
<entry>IYET49WW oder neuer</entry>
</row>
<row>
<entry>T21</entry>
<entry>KZET22WW oder neuer</entry>
</row>
<row>
<entry>A20p</entry>
<entry>IVET62WW oder neuer</entry>
</row>
<row>
<entry>A20m</entry>
<entry>IWET54WW oder neuer</entry>
</row>
<row>
<entry>A21p</entry>
<entry>KYET27WW oder neuer</entry>
</row>
<row>
<entry>A21m</entry>
<entry>KXET24WW oder neuer</entry>
</row>
<row>
<entry>A21e</entry>
<entry>KUET30WW</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Es ist möglich, daß neuere Version des IBM
BIOS den Fehler wieder enthalten. <ulink
url="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=200565+208320+/usr/local/www/db/text/2001/freebsd-mobile/20010429.freebsd-mobile">Dieser
Beitrag</ulink> von Jacques Vidrine auf der Mailingliste &a.mobile;
beschreibt eine Technik,
die Ihnen weiterhelfen könnte, wenn Ihr IBM Laptop
mit FreeBSD nicht bootet und Sie eine neuere oder
ältere BIOS-Version einspielen können.</para>
<para>Wenn Ihr Thinkpad über eine ältere
BIOS-Version verfügt und Sie das BIOS nicht
aktualisieren können, ist eine der möglichen
Lösungen, FreeBSD zu installieren, die Partitions-ID
zu ändern und danach neue Bootblocks zu installieren,
die mit der geänderten ID umgehen
können.</para>
<para>Zunächst müssen Sie die Maschine so weit
wiederherstellen, daß sie über den Selbst-Test
hinauskommt. Dazu ist es erforderlich, daß das
System beim Start keine Partitions-ID auf seiner
primären Festplatte findet. Eine Variante ist, die
Platte auszubauen und vorübergehend in einem
älteren Thinkpad (z.B. dem Thinkpad 600) oder (mit
einem passenden Adapter) in einen normalen PC einzubauen.
Sobald dies erfolgt ist, können Sie die
FreeBSD-Partition löschen und die Festplatte wieder
in das Thinkpad einbauen. Das Thinkpad sollte jetzt
wieder starten können.</para>
<para>Danach können Sie mit der nachfolgend
beschriebenen Anleitung eine funktionsfähige
FreeBSD-Installation erhalten.</para>
<procedure>
<step>
<para>Beschaffen Sie sich <filename>boot1</filename> und
<filename>boot2</filename> von <ulink
url="http://people.FreeBSD.org/~bmah/ThinkPad/">http://people.FreeBSD.org/~bmah/ThinkPad/</ulink>.
Legen Sie diese Dateien so ab, daß Sie
während der Installation darauf zugreifen
können.</para>
</step>
<step>
<para>Installieren Sie ganz wie gewohnt FreeBSD auf dem
Thinkpad. Allerdings dürfen Sie den
<quote>Dangerously Dedicated</quote>-Modus
<emphasis>nicht benutzen</emphasis>. Nach dem
Abschluß der Installation dürfen Sie die
Maschine <emphasis>nicht neu
starten</emphasis>.</para>
</step>
<step>
<para>Wechseln Sie zur <quote>Emergency Holographic
Shell</quote> (
<keycombo action="simul">
<keycap>Alt</keycap>
<keycap>F4</keycap>
</keycombo>)
oder starten Sie eine <quote>fixit</quote>
Shell.</para>
</step>
<step>
<para>Benutzen Sie &man.fdisk.8;, um die Partitions-ID
von FreeBSD von <literal>165</literal> in
<literal>166</literal> zu ändern (dieser Wert
wird von OpenBSD benutzt).</para>
</step>
<step>
<para>Kopieren Sie die Dateien
<filename>boot1</filename> und
<filename>boot2</filename> auf die lokale
Festplatte.</para>
</step>
<step>
<para>Installieren Sie <filename>boot1</filename> und
<filename>boot2</filename> mit &man.disklabel.8; auf
die FreeBSD-Slice.</para>
<screen>&prompt.root; <userinput>disklabel -B -b boot1 -s boot2 ad0s<replaceable>n</replaceable></userinput></screen>
<para>Setzen Sie für <replaceable>n</replaceable>
die Nummer der Slice ein, auf der sie FreeBSD
installiert haben.</para>
</step>
<step>
<para>Starten Sie das System neu. Am Boot-Prompt
sollten Sie die Auswahl <literal>OpenBSD</literal>
erhalten. Damit wird in Wirklichkeit FreeBSD
gestartet.</para>
</step>
</procedure>
<para>Was Sie machen müssen, wenn Sie FreeBSD und
OpenBSD parallel installieren wollen, sollten Sie zu
Übungszwecken einfach einmal selbst
herausfinden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="install-bad-blocks">
<para>Kann ich auf einer Festplatte mit beschädigten
Blöcken installieren?</para>
</question>
<answer>
<para>Ältere Versionen von FreeBSD enthielten ein
Programm namens <command>bad144</command>, das die
defekten Sektoren automatisch verlagerte. Da diese
Funktion aber von modernen IDE-Platten selbstständig
durchgeführt wird, wurde <command>bad144</command> in
der Version 3.0 aus dem System entfernt. Wenn Sie FreeBSD
3.0 oder neuer installieren wollen, sollten Sie sich eine
neue Festplatte zulegen. Falls Sie dazu nicht bereit
sind, müssen Sie FreeBSD 2.X verwenden.</para>
<para>Wenn Ihnen bei einer modernen IDE-Platte defekte
Sektoren gemeldet werden, wird die Platte mit großer
Wahrscheinlichkeit innerhalb kurzer Zeit vollständig
ausfallen, da die Meldung ein Zeichen dafür ist,
daß die für die Korrektur reservierten Sektoren
bereits verbraucht wurden. Wir raten Ihnen, die Platte
auszutauschen.</para>
<para>Falls Sie ein SCSI-Laufwerk mit beschädigten
Blöcken besitzen, lesen Sie <link
linkend="awre">diese Antwort</link>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="bad144-3x-4x">
<para>Ich habe mein System gerade von 3.X auf 4.X
aktualisiert und beim ersten Start erscheint die Meldung
<errorname>bad sector table not
supported</errorname></para>
</question>
<answer>
<para>Bis einschließlich FreeBSD 3.X wurde
<command>bad144</command> unterstützt, mit dem man
automatisch defekte Blöcke verlagern lassen konnte.
Dieses Programm ist in FreeBSD 4.X nicht mehr enthalten,
weil diese Tätigkeit von allen modernen IDE-Platten
automatisch vorgenommen wird. Weitere Informationen zum
Thema <command>bad144</command> finden Sie bei <link
linkend="install-bad-blocks">in diesem
Abschnitt</link>.</para>
<para>Um dieses Problem zu lösen, müssen Sie ihre
Festplatte in ein funktionierendes System einbauen und
&man.disklabel.8; benutzen. Nähere Informationen
finden Sie weiter unten.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="find-bad144">
<para>Wie kann ich herausfinden, ob auf einer Festplatte
<command>bad144</command> benutzt wurde, bevor mein Update
auf FreeBSD 4.0 fehlschlägt?</para>
</question>
<answer>
<para>Mit &man.disklabel.8;. <command>disklabel -r
<replaceable>Laufwerk</replaceable></command> zeigt Ihnen
das disk label an. Achten Sie auf das Feld
<literal>flags</literal>. Wenn hier <literal>flags:
badsect</literal> steht, wurde auf dieser Festplatte
<command>bad144</command> benutzt. Hier ein Beispiel
für eine solche Festplatte:</para>
<screen>&prompt.root; <userinput>disklabel -r wd0</userinput>
# /dev/rwd0c:
type: ESDI
disk: wd0s1
label:
flags: badsect
bytes/sector: 512
sectors/track: 63</screen>
</answer>
</qandaentry>
<qandaentry>
<question id="disable-bad144">
<para>Wie kann ich die Daten von <command>bad144</command>
von meinen System entfernen, damit ich problemlos auf 4.X
updaten kann?</para>
</question>
<answer>
<para>Benutzen Sie <command>disklabel -e -rwd0</command>, um
das Disk label direkt auf der Platte zu bearbeiten. Sie
müssen lediglich das Wort <literal>badsect</literal>
aus dem Feld <literal>flags</literal> entfernen,
abspeichern, und den Editor verlassen. Die Daten von
bad144 werden zwar weiterhin Platz auf Ihrer Festplatte
belegen, Sie können die Festplatte aber trotzdem
benutzen.</para>
<para>Wir raten Ihnen allerdings dringend, sich eine neue
Festplatte zuzulegen, wenn Sie eine große Anzahl
defekter Blöcke auf Ihrer Festplatte finden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="boot-floppy-strangeness">
<para>Wenn ich von der Installationsdiskette boote,
geschehen merkwürdige Dinge! Was sollte ich
tun?</para>
</question>
<answer>
<para>Falls Sie beobachten, daß ihr Rechner sich bis
zum Stillstand abmüht oder spontan rebootet,
während Sie versuchen, von der Installationsdiskette
zu booten, sollten Sie sich drei Fragen stellen:</para>
<orderedlist>
<listitem>
<para>Haben Sie eine brandneue, frisch formatierte,
fehlerfreie Diskette benutzt (günstigerweise eine
brandneue, direkt aus dem Karton und nicht eine
Diskette aus einem Magazin, das schon seit drei Jahren
unter Ihrem Bett lag)?</para>
</listitem>
<listitem>
<para>Haben Sie das Floppy-Image im Binär- (oder
Image) Modus heruntergeladen? (Schämen Sie sich
nicht. Sogar die besten unter uns haben wenigstens
einmal Binärdateien versehentlich im ASCII-Modus
heruntergeladen!)</para>
</listitem>
<listitem>
<para>Falls Sie Windows 95 oder Windows 98 benutzen,
haben Sie es heruntergefahren und
<command>fdimage</command> bzw.
<command>rawrite</command> in einfachem, reinem DOS
neu gestartet? Es scheint, daß diese
Betriebssysteme Programme stören, die direkt auf
Hardware schreiben, wie es das Erstellungsprogramm
für die Diskette tut; selbst bei der
Ausführung des Programms in einem DOS-Fenster in
der grafischen Benutzeroberfläche kann dieses
Problem auftreten.</para>
</listitem>
</orderedlist>
<para>Es wurde auch darüber berichtet, daß
Netscape Probleme beim Herunterladen der Bootdisketten
verursacht. Es ist also wahrscheinlich besser, einen
anderen FTP-Client zu benutzen, wenn möglich.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="no-install-cdrom">
<para>Ich habe zur Installation von meinem ATAPI CDROM
gebootet, aber das Installationsprogramm sagt mir,
daß es kein CDROM gefunden hat. Was geht hier
ab?</para>
</question>
<answer>
<para>Dieses Problem wird üblicherweise durch ein
falsch konfiguriertes CDROM verursacht. Bei vielen PCs
ist das CDROM der Slave am zweiten IDE-Controller, ein
Master ist nicht vorhanden. Laut Spezifikation ist diese
Konfiguration illegal, aber Windows verletzt die
Spezifikation und das BIOS ignoriert sie, wenn es von
einem CDROM booten soll. Daher konnten Sie zwar vom
CDROM booten, während FreeBSD es nicht für die
Installation benutzen kann.</para>
<para>Um dieses Problem zu lösen, müssen Sie
entweder das CDROM als Master an den IDE-Controller
anschließen oder dafür sorgen, daß an dem
vom CDROM genutzten IDE-Controller das CD-ROM als Slave
und ein anderes Gerät als Master angeschlossen
ist.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="install-PLIP">
<para>Kann ich auf meinem Laptop per PLIP (Parallel Line IP)
installieren?</para>
</question>
<answer>
<para>Ja, Sie brauchen dazu nur ein ganz normales
Laplink-Kabel. Weitere Informationen zum Thema Netzwerke
am Druckerport finden sie im Kapitel <ulink
url="../handbook/plip.html">PLIP</ulink> des
Handbuchs.</para>
<para>Lesen Sie FreeBSD 3.X oder eine ältere Version
benutzen, sollten Sie einen Blick auf die Webseite <ulink
url="http://www.FreeBSD.org/docs.html#PAO">Mobile-Computing</ulink>
werfen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="geometry">
<para>Welche Geometrie sollte ich für ein
Festplattenlaufwerk verwenden?</para>
</question>
<answer>
<note>
<para>Unter der <quote>Geometrie</quote> einer Festplatte
verstehen wir die Anzahl Zylinder,
Schreib-/Leseköpfen und Sektoren/Spur auf einer
Festplatte. Im folgenden wird dafür der
Übersichtlichkeit halber der Begriff C/H/S
verwendet. Das BIOS des PCs berechnet mit diesen
Angaben, auf welche Bereiche der Festplatte es für
Schreib-/Lesezugriffe zugreifen muß).</para>
</note>
<para>Aus einigen Gründen scheint dies gerade bei
frischgebackenen Systemadministratoren für sehr viel
Verwirrung zu sorgen. Zunächst einmal ist die
<emphasis>physikalische</emphasis> Geometrie eines
SCSI-Laufwerks vollkommen irrelevant, da FreeBSD mit
Blöcken arbeitet. Tatsächlich gibt es
<quote>die</quote> physikalische Geometrie nicht, da die
Sektordichte auf einer Festplatte variiert. Was die
Hersteller als die <quote>wahre</quote> physikalische
Geometrie bezeichnen, ist im allgemeinen die Geometrie,
die aufgrund ihrer Ergebnisse im geringsten ungenutzten
Speicher resultiert. Bei IDE-Platten arbeitet FreeBSD mit
C/H/S-Angaben, aber alle modernen Laufwerke wandeln diese
intern ebenfalls in Blocknummern um.</para>
<para>Wichtig ist nur die <emphasis>logische</emphasis>
Geometrie. Das BIOS kann die logische Geometrie der
Festplatte abfragen; die erhaltenen Daten werden dann vom
BIOS bei Zugriffen auf die Festplatte genutzt. Da FreeBSD
das BIOS benutzt, während es bootet, ist es sehr
wichtig, daß diese Angaben richtig sind.
Insbesondere müssen alle Betriebssysteme mit
derselben Geometrie arbeiten, falls Sie mehr als ein
Betriebssystem auf einer Festplatte haben. Andernfalls
werden Sie ernsthafte Bootprobleme bekommen!</para>
<para>Bei SCSI-Festplatten hängt die zu verwendende
Geometrie davon ab, ob der Extended Translation Support
auf Ihrem Controller eingeschaltet ist (oft auch als
<quote>Unterstützung für DOS-Platten
>1GB</quote> oder ähnlich bezeichnet). Falls sie
ausgeschaltet ist, benutzen Sie
<replaceable>N</replaceable> Zylinder, 64 Köpfe und
32 Sektoren/Spur, wobei <replaceable>N</replaceable> die
Kapazität der Festplatte in MB ist. Zum Beispiel
sollten für eine 2GB Festplatte 2048 Zylinder, 64
Köpfe und 32 Sektoren/Spur angegeben werden.</para>
<para>Falls sie <emphasis>eingeschaltet</emphasis> ist (was
oft der Fall ist, um bestimmte Einschränkungen von
MSDOS zu umgehen) und die Plattenkapazität mehr als
1GB beträgt, benutzen Sie M Zylinder, 63
Sektoren/Spur (<emphasis>nicht</emphasis> 64) und 255
Köpfe, wobei 'M' der Plattenkapazität in MB,
dividiert durch 7,844238 entspricht (!). Also würde
unsere 2GB Beispielplatte 261 Zylinder, 63 Sektoren/Spur
und 255 Köpfe haben.</para>
<para>Falls Sie sich hier nicht sicher sind oder FreeBSD
während der Installation die Geometrie nicht richtig
erkennt, hilft es normalerweise, eine kleine DOS-Partition
auf der Festplatte anzulegen. Das BIOS sollte dann in der
Lage sein, die richtige Geometrie zu erkennen. Sie
können die Partition jederzeit im Partitioneditor
entfernen, falls Sie sie nicht behalten möchten.
Allerdings kann Sie ganz nützlich sein, um
Netzwerkkarten zu programmieren und
ähnliches.</para>
<para>Alternativ können Sie das frei verfügbare
Programm <filename>pfdisk.exe</filename> verwenden. Sie
finden es im Unterverzeichnis <filename>tools</filename>
auf der FreeBSD-CDROM und allen FreeBSD FTP-Servern). Mit
diesem Programm können Sie herausfinden, welche
Geometrie die anderen Betriebssysteme auf der Festplatte
verwenden. Diese Geometrie können Sie im
Partitioneditor eingeben.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="disk-divide-restrictions">
<para>Gibt es irgendwelche Einschränkungen, wie ich die
Festplatte aufteilen darf?</para>
</question>
<answer>
<para>Ja. Sie müssen sicherstellen, daß Ihre
Rootpartition innerhalb der ersten 1024 Zylinder liegt, damit das
BIOS den Kernel von Ihr booten kann. (Beachten Sie,
daß es sich um eine Einschränkung durch das
BIOS des PCs handelt und nicht durch FreeBSD).</para>
<para>Für ein SCSI-Laufwerk bedeutet dies
normalerweise, daß sich die Rootpartition in den
ersten 1024MB befindet (oder in den ersten 4096MB, falls
die Extended Translation eingeschaltet ist - siehe die
vorherige Frage). Der entsprechende Wert für IDE ist
504MB.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="disk-manager">
<para>Verträgt sich FreeBSD mit Plattenmanagern?</para>
</question>
<answer>
<para>FreeBSD erkennt den Ontrack Plattenmanager und
berücksichtigt ihn. Andere Plattenmanager werden
nicht unterstützt.</para>
<para>Falls Sie die Festplatte nur mit FreeBSD benutzen
wollen, brauchen Sie keinen Plattenmanager. Wenn Sie Sie
die Platte einfach in der vom BIOS maximal
unterstützten Größe (normalerweise 504
Megabyte) konfigurieren, sollte FreeBSD erkennen, wieviel
Platz Sie tatsächlich haben. Falls Sie eine alte
Festplatte mit einem MFM-Controller verwenden, könnte
es sein, daß Sie FreeBSD explizit angeben
müssen, wieviele Zylinder es benutzen soll.</para>
<para>Falls Sie die Festplatte mit FreeBSD und einem anderen
Betriebssystem benutzen wollen, sollten Sie auch in der Lage
sein, ohne einen Plattenmanager auszukommen: stellen sie
einfach sicher, daß sich die Bootpartition von
FreeBSD und der Bereich für das andere Betriebssystem
in den ersten 1024 Zylindern befinden. Eine 20 Megabyte
Bootpartition sollte völlig genügen, wenn Sie
einigermaßen sorgfältig arbeiten.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="missing-os">
<para>Beim Booten von FreeBSD erscheint <errorname>Missing
Operating System</errorname>. Was ist passiert?</para>
</question>
<answer>
<para>Dies ist ein klassischer Fall von Konflikten bei den
verwendeten <link
linkend="geometry">Plattengeometrien</link> von FreeBSD
und DOS oder anderen Betriebssystemen. Sie werden FreeBSD
neu installieren müssen. Bei Beachtung obiger
Instruktionen wird in den meisten Fällen alles
funktionieren.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="stop-at-boot-manager">
<para>Wieso komme ich nicht weiter als bis zum
<literal>F?</literal>-Prompt des Bootmanagers?</para>
</question>
<answer>
<para>Dies ist ein weiteres Symptom für das bereits in
der vorherigen Frage beschriebene Problem. Ihre
Einstellungen zur Geometrie im BIOS und in FreeBSD stimmen
nicht überein! Falls Ihr Controller oder BIOS
Zylinderumsetzung (oft als <quote>>1GB drive
support</quote> bezeichnet), probieren Sie eine Umsetzung
dieser Einstellung und Neuinstallation von
FreeBSD.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="need-complete-sources">
<para>Muß ich den vollständigen Quellcode
installieren?</para>
</question>
<answer>
<para>Im allgemeinen nicht. Wir empfehlen jedoch dringend
die Installation des <literal>base</literal> Source-Kit,
das viele der hier erwähnten Dateien enthält und
des <literal>sys</literal> (Kernel) Source-Kit, das den
Quellcode für den Kernel enthält. Außer
dem Programm zur Konfiguration des Kernels
(&man.config.8;) gibt es im System nichts, zu dessen
Funktion der Quellcode erforderlich ist. Mit Ausnahme der
Kernelquellen ist unsere Build-Struktur so aufgebaut,
daß Sie den Quellcode von überall her per NFS
read-only mounten und dennoch neue Binaries erstellen
können. (Wegen der Einschränkung bezüglich
der Kernelquellen empfehlen wir, diese nicht direkt nach
<filename>/usr/src</filename> zu mounten, sondern
irgendwoanders hin mit passenden symbolischen Links, um
die Toplevel-Struktur des Quellbaumes zu
duplizieren.)</para>
<para>Die Quellen verfügbar zu haben und zu wissen, wie
man ein System mit ihnen erstellt, wird es Ihnen
wesentlich einfacher machen, zu zukünftigen Ausgaben
von FreeBSD zu wechseln.</para>
<para>Um einen Teil der Quellen auszuwählen, verwenden
Sie den Menüpunkt Custom, wenn Sie sich im Menü
Distributions des Systeminstallationstools
befinden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="need-kernel">
<para>Muß ich einen Kernel erstellen?</para>
</question>
<answer>
<para>Ursprünglich war die Erstellung eines neuen
Kernels bei fast jeder Installation von FreeBSD
erforderlich, aber neuere Ausgaben haben von der
Einführung eines weitaus benutzerfreundlicheren
Kernelkonfigurationswerkzeugs profitiert. Geben Sie am
FreeBSD Boot-Prompt (boot:) <option>-c</option> ein, um in
ein visuelles Konfigurationsmenü zu gelangen. Dieses
Programm ermöglicht Ihnen die Konfiguration der
Kerneleinstellungen für die gebräuchlichsten
ISA-Karten.</para>
<para>Es wird weiterhin empfohlen, früher oder
später einen neuen Kernel zu erstellen, der nur die
benötigten Treiber enthält, um ein wenig
Hauptspeicher zu sparen, aber für die meisten Systeme
ist dies ist nicht länger erforderlich.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="password-encryption">
<para>Soll ich DES, Blowfisch oder MD5 zur Verschlüsselung der
Paßwörter benutzen?</para>
</question>
<answer>
<para>FreeBSD benutzt standardmäßig
<emphasis>MD5</emphasis> zur Verschlüsselung der
Paßwörter. Es wird angenommen, daß diese
Methode sicherer ist als das traditionell benutzte
Verfahren, das auf dem <emphasis>DES</emphasis>
Algorithmus basierte. Es ist immer noch möglich,
DES-Paßwörter zu benutzen, wenn Sie die Datei
mit den Paßwörtern mit älteren System
austauschen müssen. Ältere System verstehen
meist nur das unsichere Verfahren, dieses steht Ihnen zur
Verfügung, wenn Sie mit sysinstall die
<quote>crypto</quote> Distribution installieren. Sie
können auch die crypto Sourcecodes installieren, wenn
Sie Ihr System über die Sourcen aktualisieren. Die crypto
Bibliotheken erlauben es Ihnen das sichere Blowfisch Verfahren
für die Verschlüsselung der Paßwörter
einzusetzen. Das für neue Paßwörter benutzte
Verschlüsselungsverfahren wird über die
Einstellung <quote>passwd_format</quote> in
<filename>/etc/login</filename> festgelegt. Die
möglichen Werte sind entweder <quote>des</quote>,
<quote>blf</quote> (falls sie zur Verfügung stehen)
oder <quote>md5</quote>. Weitere
Informationen über die Einstellungen für den
Login erhalten Sie in &man.login.conf.5;.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="boot-floppy-hangs">
<para>Woran kann es liegen, daß ich zwar von der
Diskette booten kann, aber nicht weiter als bis zur
Meldung <literal>Probing Devices...</literal>
komme?</para>
</question>
<answer>
<para>Falls Sie ein IDE-Zip- oder Jaz-Laufwerk eingebaut
haben, entfernen Sie es und versuchen Sie es erneut.
Solche Laufwerke könnten dem Bootvorgang stören.
Nach der Installation des Systems können Sie das
Laufwerk wieder einbauen. Dieser Fehler wird hoffentlich
in einer späteren Version behoben werden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="panic-on-install-reboot">
<para>Wieso wird mit der Fehler <errorname>panic: cant mount
root</errorname> gemeldet, wenn ich das System nach der
Installation reboote?</para>
</question>
<answer>
<para>Dieser Fehler beruht auf Unstimmigkeiten zwischen den
Festplatteninformationen im Bootblock und denen im Kernel.
Der Fehler tritt normalerweise auf IDE-Systemen mit zwei
Festplatten auf, bei denen die Festplatten als Master-
oder Single-Device auf separaten IDE-Controllern
angeschlossen sind und FreeBSD auf der Platte am zweiten
Controller installiert wurde. Der Bootblock vermutet,
daß das System auf wd1 (der zweiten BIOS-Platte)
installiert ist, während der Kernel der ersten Platte
auf dem zweiten Controller die Gerätekennung wd2
zuteilt. Der Kernel versucht nach der
Geräteüberprüfung die vom Bootblock
angenommene Bootdisk wd1 zu mounten, obwohl sie in
Wirklichkeit wd2 heißt - und scheitert.</para>
<para>Tun Sie folgendes, um dieses Problem zu
beheben:</para>
<orderedlist>
<listitem>
<para>Wenn Sie FreeBSD 3.3 oder neuer benutzen,
müssen Sie das System rebooten und
<keycap>Enter</keycap> drücken, wenn die
Meldung <literal>Booting kernel in 10 seconds; hit
[Enter] to interrupt</literal> erscheint. Dadurch
gelangen Sie in den Boot Loader.</para>
<para>Geben Sie nun
<literal>root_disk_unit="<replaceable>disk_number</replaceable>"</literal>
ein. <literal>disk_number</literal> hat den Wert
<literal>0</literal>, wenn FreeBSD auf dem Master des
ersten IDE-Controllers installiert wurde;
<literal>1</literal>, wenn FreeBSD auf dem Slave des
ersten IDE-Controllers installiert wurde;
<literal>2</literal>, wenn FreeBSD auf dem Master des
zweiten IDE-Controllers installiert wurde; und
<literal>3</literal>, wenn FreeBSD auf dem Slave des
zweiten IDE-Controllers installiert wurde.</para>
<para>Nach der Eingabe von <literal>boot</literal>
sollte Ihr System jetzt korrekt starten.</para>
<para>Damit Sie dieses Ritual nicht bei jedem Start des
Systems durchführen müssen, sollten Sie die
Zeile
<literal>root_disk_unit="<replaceable>disk_number</replaceable>"</literal>
in die Datei
<filename>/boot/loader.conf.local</filename>
eintragen.</para>
</listitem>
<listitem>
<para>Wenn Sie FreeBSD 3.2 oder eine ältere Version
benutzen, geben Sie am Prompt Boot:
<literal>1:wd(2,a)kernel</literal> ein und
betätigen Sie die <keycap>Enter</keycap>-Taste. Wenn
das System nun startet, führen Sie den Befehl
<command>echo "1:wd(2,a)kernel" > /boot.config</command>
aus, um diese Bootreihenfolge zur Voreinstellung zu
machen.</para>
</listitem>
<listitem>
<para>Stellen Sie eine ununterbrochene Folge der
Festplatten her, indem Sie die FreeBSD-Platte am
ersten IDE-Controller anschließen.</para>
</listitem>
<listitem>
<para><ulink
url="../handbook/kernelconfig.html">Erstellen Sie
einen neuen Kernel</ulink>: modifizieren Sie die
wd-Konfigurationszeilen wie folgt:</para>
<programlisting>
controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
disk wd0 at wdc0 drive 0
# disk wd1 at wdc0 drive 1 # Kommentieren Sie diese Zeile aus
controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
disk wd1 at wdc1 drive 0 # Ändern Sie wd2 in wd1
disk wd2 at wdc1 drive 1 # Ändern Sie wd3 in wd2
</programlisting>
<para>Installieren Sie den neuen Kernel. Falls sie Ihre
Festplattenanschlüsse umgesteckt haben und die
alte Konfiguration wiederherstellen möchten,
stecken Sie die Anschlüsse wie gewünscht um
und rebooten Sie. Ihr System sollte nun fehlerfrei
booten.</para>
</listitem>
</orderedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="memory-limits">
<para>Gibt es eine Hauptspeicherbegrenzung?</para>
</question>
<answer>
<para>Es werden maximal 4 Gigabyte Hauptspeicher
unterstützt. Seien Sie vorsichtig, wenn Sie
soviel Hauptspeicher in Ihrem Rechner benutzen
möchten. Benutzen Sie ggfs. ECC-Speicher und Module
mit neun (statt der üblichen 18) Chips, um die
kapazitive Belastung zu reduzieren.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ffs-limits">
<para>Wo liegen die Grenzen für
ffs-Dateisysteme?</para>
</question>
<answer>
<para>Theoretisch liegt das Limit für ffs-Dateisysteme
bei 8 Terabyte (2G-Blöcke) oder 16TB für die
Standard-Blockgröße von 8k. In der Praxis
setzt die Software das Limit auf 1 Terabyte herab, aber
durch Modifikationen sind auch Dateisysteme mit 4 Terabyte
möglich (und existieren auch).</para>
<para>Die maximale Größe einer einzelnen
ffs-Datei liegt bei ungefähr 1G Blöcken (4TB,
falls die Blockgröße 4k beträgt).</para>
<table>
<title>Maximale Dateigröße</title>
<tgroup cols="5">
<thead>
<row>
<entry>Blockgröße</entry>
<entry>2.2.7-STABLE</entry>
<entry>3.0-CURRENT</entry>
<entry>geht</entry>
<entry>sollte gehen</entry>
</row>
</thead>
<tbody>
<row>
<entry>4K</entry>
<entry>4T-1</entry>
<entry>4T-1</entry>
<entry>4T-1</entry>
<entry>>4T</entry>
</row>
<row>
<entry>8K</entry>
<entry>>32G</entry>
<entry>8T-1</entry>
<entry>>32G</entry>
<entry>32T-1</entry>
</row>
<row>
<entry>16K</entry>
<entry>>128G</entry>
<entry>16T-1</entry>
<entry>>128+G</entry>
<entry>32T-1</entry>
</row>
<row>
<entry>32K</entry>
<entry>>512G</entry>
<entry>32T-1</entry>
<entry>>512G</entry>
<entry>64T-1</entry>
</row>
<row>
<entry>64K</entry>
<entry>>2048G</entry>
<entry>64T-1</entry>
<entry>>2048G</entry>
<entry>128T-1</entry>
</row>
</tbody>
</tgroup>
</table>
<para>Wenn die im Dateisystem verwendete
Blockgröße 4k beträgt, wird mit dreifacher
Indirektion gearbeitet und die Limitierung sollte durch
die höchste Blocknummer erfolgen, die mit dreifacher
Indirektion dargestellt werden kann (ungefähr 1k^3 +
1k^2 + 1k). In Wirklichkeit liegt das Limit aber bei der
(falschen) Anzahl von 1G-1 Blocknummern im Dateisystem.
Die maximale Anzahl Blocknummern müßte 2G-1
sein. Es gibt einige Fehler für Blocknummern nahe
2G-1, aber solche Blocknummern sind bei einer
Blockgröße von 4k unerreichbar.</para>
<para>Bei Blocknummern von 8k und größer sollte
das Limit bei 2G-1 Blocknummern liegen, aber
tatsächlich liegt es bei bei 1G-1 Blocknummern.
Außer unter -STABLE sind Blöcke in der dritten
Indirektion unerreichbar, wodurch das Limit auf die durch
zweifache Indirektion maximal darstellbare Blocknummer
reduziert wird (ca. (Blockgröße/4)^2 +
(Blockgröße/4)). Unter -CURRENT könnte
die Überschreitung dieser Grenze Probleme
verursachen. Die Verwendung der korrekten Grenze von 2G-1
verursacht Probleme.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="archsw-readin-failed-error">
<para>Wieso erhalte ich die Fehlermeldung
<errorname>archsw.readin.failed</errorname> beim Start des
Systems, nachdem ich habe einen neuen Kernel erstellt
habe?</para>
</question>
<answer>
<para>Sie können den zu bootenden Kernel direkt im
zweiten Schritt angeben, indem Sie eine beliebige Taste
drücken, wenn das | erscheint und bevor der Loader
startet. Genauer: Sie haben die Kernelquellen erneuert,
und von dort ein neues Kernel-Builtin installiert,
<emphasis>ohne make world auszuführen</emphasis>.
Das geht nicht - führen Sie make world aus.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="upgrade-3x-4x">
<para>Wie führe ich ein Update von 3.X nach 4.X
durch?</para>
</question>
<answer>
<para>Wir raten Ihnen <emphasis>dringend</emphasis>, dazu
einen der Snapshots zu verwenden. Die Snapshots von
4-STABLE sind auf <ulink
url="ftp://releng4.FreeBSD.org/">ftp://releng4.FreeBSD.org</ulink>
verfügbar.</para>
<para>Wegen der vielen Unterschiede zwischen 3.X und
4-STABLE wird ein in einem Schritt durchgeführtes
Update höchstwahrscheinlich fehlschlagen, wenn Sie
die Sourcen verwenden. Dieses Update muß in
mehreren Schritten durchgeführt werden. Der erste
Schritt ist ein Update auf das aktuelle 3-STABLE
(<literal>RELENG_3</literal>). Der zweite Schritt ist ein
Update auf 4.1.1-RELEASE
(<literal>RELENG_4_1_1_RELEASE</literal>), bevor Sie dann
im dritten Schritt zu 4-STABLE
(<literal>RELENG_4</literal>) kommen.</para>
<para>Wenn Sie den Quellcode für das Update benutzen
wollen, finden Sie im <ulink
url="../handbook/cutting-edge.html">FreeBSD
Handbuch</ulink> weitere Informationen.</para>
<caution>
<para>Wenn Sie FreeBSD erst seit kurzer Zeit benutzen,
sollten Sie auf gar keinen Fall über den Quellcode
updaten, das gilt ganz besonders für das Update von
3.X nach 4.X. Falls Sie es dennoch versuchen wollen,
sollten Sie vorher die entsprechenden Anleitungen sehr
sorgfältig durchlesen!</para>
</caution>
</answer>
</qandaentry>
<qandaentry>
<question id="security-profiles">
<para>Was sind die <quote>Sicherheits-Profile</quote>?</para>
</question>
<answer>
<para>In einem <quote>Sicherheits-Profil</quote> werden
verschiedene Einstellungen zusammengefaßt, mit denen
das gewünschte Verhältnis zwischen Sicherheit und
Benutzerfreundlichkeit hergestellt werden soll. Um dies
zu erreichen, werden bestimmte Dienste und Features
entweder aktiviert oder deaktiviert. Die Details sind im
Abschnitt <ulink
url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/install-post.html#SECURITYPROFILE">Security Profile</ulink>
des Handbuch-Kapitels <ulink
url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/install-post.html">
Post-Installation</ulink> enthalten.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="hardware">
<title>Hardware-Kompatibilität</title>
<qandaset>
<qandaentry>
<question id="architectures">
<para>Unterstützt FreeBSD andere Architekturen
außer x86?</para>
</question>
<answer>
<para>Ja. FreeBSD ist zur Zeit für die Intel x86 und
DEC (jetzt Compaq) Alpha Architekturen verfügbar.
Seit FreeBSD 5.0 wird auch die SPARC-64 Architektur
unterstützt. Die Neuzugänge auf der
Liste der in Zukunft unterstützten Plattformen sind
IA-64, MIPS und PowerPC. Abonnieren Sie die Mailinglisten
&a.ia64;, &a.ppc; oder &a.mips; wenn Sie mehr über
den Stand der Entwicklung erfahren wollen. Schließen
Sie sich der Mailingliste &a.platforms; an, wenn Sie an
grundsätzlichen Diskussionen über neue Architekturen
interessiert sind.</para>
<para>Falls Ihre Maschine eine andere Architektur aufweist
und Sie unbedingt sofort etwas benötigen, schlagen
wir vor, daß Sie sich einmal <ulink
url="http://www.netbsd.org/">NetBSD</ulink> oder <ulink
url="http://www.openbsd.org/">OpenBSD</ulink>
ansehen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="which-hardware-to-get">
<para>Ich will mir neue Hardware für mein
FreeBSD-System zulegen, was soll ich kaufen? </para>
</question>
<answer>
<para>Diese Frage wird ständig auf den
FreeBSD-Mailinglisten diskutiert. Da sich die Hardware
ständig ändert, ist das allerdings keine
Überraschung. <emphasis>Trotzdem</emphasis> sollten
Sie unbedingt die <ulink
URL="&rel.current.hardware;">Hardware Notes</ulink> und
die <ulink
URL="http://www.FreeBSD.org/search/#mailinglists">
Archive</ulink> der Mailinglisten durchsehen, bevor Sie
nach der neuesten/besten Hardware fragen. Normalerweise
gab es kurz zuvor eine Diskussion über genau die
Hardware, die Sie sich zulegen wollen.</para>
<para>Wenn Sie sich einen Laptop zulegen wollen, sollten Sie
einen Blick in das Archiv der Mailingliste FreeBSD-mobile
werfen. Ansonsten empfiehlt sich ein Blick in das Archiv
von FreeBSD-questions oder auch einer spezialisierte
Mailingliste für diese Art von Hardware.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="supported-hard-drives">
<para>Welche Arten von Festplatten werden von FreeBSD
unterstützt?</para>
</question>
<answer>
<para>FreeBSD unterstützt EIDE- und SCSI-Laufwerke (mit
kompatiblen Controllern - siehe folgenden Abschnitt),
sowie alle Laufwerke, die die original <quote>Western
Digital</quote>-Schnittstelle (MFM, RLL, ESDI und
natürlich IDE) benutzen. Ein paar Controller mit
proprietären Schnittstellen könnten nicht
laufen: halten Sie sich an WD1002/3/6/7-Schnittstellen und
Clones.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="supported-scsi-controllers">
<para>Welche SCSI-Controller werden
unterstützt?</para>
</question>
<answer>
<para>Sie finden eine vollständige und aktuelle Liste
in den <ulink URL="&rel.current.hardware;">Release
Notes</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="supported-cdrom-drives">
<para>Welche CDROM-Laufwerke werden von FreeBSD
unterstützt?</para>
</question>
<answer>
<para>Jedes an einem unterstützten Controller
angeschlossene SCSI-Laufwerk wird
unterstützt.</para>
<para>Die folgenden proprietären CDROM-Schnittstellen
werden ebenfalls unterstützt:</para>
<itemizedlist>
<listitem>
<para>Mitsumi LU002 (8bit), LU005 (16bit) und FX001D
(16bit 2x Speed).</para>
</listitem>
<listitem>
<para>Sony CDU 31/33A</para>
</listitem>
<listitem>
<para>Sound Blaster Non-SCSI CDROM</para>
</listitem>
<listitem>
<para>Matsushita/Panasonic CDROM</para>
</listitem>
<listitem>
<para>ATAPI compatible IDE CDROMs</para>
</listitem>
</itemizedlist>
<para>Von allen Nicht-SCSI-Laufwerken ist bekannt, daß
sie im Vergleich zu SCSI-Laufwerken extrem langsam sind.
Einige ATAPI-CDROMs könnten nicht
funktionieren.</para>
<para>Seit Version 2.2 unterstützt die bei FreeBSD Mall
erhältliche FreeBSD-CDROM das direkte Booten von
CD.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="supported-cdrw-drives">
<para>Welche CD-Brenner werden von FreeBSD
unterstützt?</para>
</question>
<answer>
<para>FreeBSD unterstützt alle ATAPI-kompatiblen IDE
CD-R und CD-RW Brenner. Wenn Sie FreeBSD ab Version 4.0
benutzen, werfen Sie einen Blick in die Onlinehilfe zu
&man.burncd.8;. Wenn Sie eine ältere Version von
FreeBSD benutzen, sollten Sie sich die Beispiele in
<filename>/usr/share/examples/atapi</filename>
ansehen.</para>
<para>FreeBSD unterstützt ebenfalls SCSI CD-R und CD-RW
Brenner. Installieren und benutzen Sie das Paket
<command>cdrecord</command> aus der Ports-Sammlung. Dazu
müssen Sie allerdings das Gerät
<devicename>pass</devicename> mit in Ihren Kernel
aufnehmen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="zip-support">
<para>Unterstützt FreeBSD ZIP-Laufwerke?</para>
</question>
<answer>
<para>FreeBSD unterstützt natürlich alle
gängigen SCSI-ZIP-Laufwerke. Ihr ZIP-Laufwerk darf
nur mit den SCSI-Ziel-IDs 5 oder 6 laufen, aber Sie
können sogar davon booten, falls das BIOS Ihres
Hostadapters dies unterstützt. Es ist nicht bekannt,
welche Hostadapter das Booten von anderen Zielen als 0
oder 1 erlauben; daher werden Sie in ihren
Handbüchern nachsehen müssen, wenn Sie dieses
Merkmal benutzen möchten.</para>
<para>ATAPI (IDE) Zip-Laufwerke werden von FreeBSD 2.2.6 und
späteren Versionen unterstützt.</para>
<para>Seit Version 3.0 unterstützt FreeBSD
ZIP-Laufwerke, die an der parallel Schnittstelle
angeschlossen sind. Falls Sie eine genügend aktuelle
Version benutzen, sollten Sie überprüfen, ob Ihr
Kernel die folgenden Treiber enthält:
<devicename>scbus0</devicename>,
<devicename>da0</devicename>,
<devicename>ppbus0</devicename> und
<devicename>vp0</devicename> (der GENERIC-Kernel
enthält alle, außer
<devicename>vp0</devicename>). Wenn diese Treiber
vorhanden sind, sollte das Laufwerk an der parallelen
Schnittstelle als <devicename>/dev/da0s4</devicename>
verfügbar sein. Zip-Datenträger können mit
<command>mount /dev/da0s4 /mnt</command> ODER
(DOS-formatierte) <command>mount_msdos /dev/da0s4
/mnt</command> gemountet werden.</para>
<para>Lesen Sie auch <link linkend="jaz">den FAQ-Eintrag zu
Wechseldatenträgern</link> und <link
linkend="disklabel">die Anmerkungen zum Thema
<quote>Formatierung</quote></link> im Kapitel
Administration.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="jaz-zip-removable-support">
<para>Unterstützt FreeBSD JAZ, EZ und andere
Wechsellaufwerke?</para>
</question>
<answer>
<para>Abgesehen von der IDE-Version der EZ-Laufwerke,
handelt es sich ausschließlich um SCSI-Geräte.
Unter FreeBSD müßten sie sich also alle wie
SCSI-Platten und das IDE-EZ-Laufwerk müßte sich
wie ein IDE-Laufwerk verhalten.</para>
<para><anchor id="jaz">Ich bin mir nicht sicher, wie gut
FreeBSD den Wechsel der Datenträger während des
Betriebs unterstützt. Sie werden die Laufwerke vor
einem Datenträgerwechsel natürlich unmounten und
sicherstellen müssen, daß externe Einheiten
während des Bootens eingeschaltet sind, damit FreeBSD
sie erkennen kann.</para>
<para>Lesen Sie auch <link linkend="disklabel">diesen
Hinweis zur <quote>Formatierung</quote></link>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="multiport-serial-support">
<para>Welche seriellen Multi-Port-Karten werden von FreeBSD
unterstützt?</para>
</question>
<answer>
<para>Es existiert eine Liste der unterstützten Karten
im Abschnitt <ulink
url="../handbook/install.html#INSTALL-MISC">Verschiedene
Geräte</ulink> des Handbuchs.</para>
<para>Von einigen nicht NoName-Nachbauten ist ebenfalls
bekannt, daß sie funktionieren, speziell von den
AST-kompatiblen.</para>
<para>In &man.sio.4; finden Sie weitere Informationen zur
Konfiguration solcher Karten.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="usbkbd">
<para>Unterstützt FreeBSD meine Tastatur mit
USB-Anschluß?</para>
</question>
<answer>
<para>Die Unterstützung für USB-Geräte ist
seit FreeBSD 3.1 Bestandteil des Systems. Die
Unterstützung war allerdings nicht ganz ausgereift;
einige der Probleme konnten bis zur Veröffentlichung
von FreeBSD 3.2 nicht behoben werden. Wenn Sie die
Treiber für USB-Tastaturen selbst testen
möchten, sollten Sie den unten aufgeführten
Anweisungen folgen:</para>
<procedure>
<step>
<para>Benutzen Sie FreeBSD 3.2 oder eine neuere
Version.</para>
</step>
<step>
<para>Tragen Sie die folgenden Zeilen in die
Konfigurationsdatei Ihres Kernels ein und erzeugen Sie
einen neuen Kernel.</para>
<programlisting>
device uhci
device ohci
device usb
device ukbd
options KBD_INSTALL_CDEV
</programlisting>
<para>Falls Sie eine ältere FreeBSD-Version als
FreeBSD 4.0 benutzen, müssen Sie diese
Einträge verwenden:</para>
<programlisting>
controller uhci0
controller ohci0
controller usb0
controller ukbd0
options KBD_INSTALL_CDEV
</programlisting>
</step>
<step>
<para>Erzeugen Sie im Verzeichnis
<filename>/dev</filename> die notwendigen
Dateien:</para>
<screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV kbd0 kbd1</userinput></screen>
<note>
<para>Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in <filename>/dev</filename> erstellt.</para>
</note>
</step>
<step>
<para>Tragen Sie in der
<filename>/etc/rc.conf</filename> die folgenden Zeilen
ein:</para>
<programlisting>
usbd_enable="YES"
usbd_flags=""
</programlisting>
</step>
</procedure>
<para>Nach einem Neustart des Systems ist die AT-Tastatur
als <devicename>/dev/kbd0</devicename> und die USB-Tastatur
als <devicename>/dev/kbd1</devicename> verfügbar. Dies
gilt natürlich nur, wenn beide Tastaturen
angeschlossen sind; falls nur die USB-Tastatur
angeschlossen ist, ist diese als
<devicename>/dev/ukbd0</devicename> verfügbar.</para>
<para>Wenn Sie die USB-Tastatur an der Systemkonsole
benutzen wollen, müssen Sie dies dem System explizit
mitteilen. Dazu muß das folgende Kommando
während des Systemstarts ausgeführt
werden:</para>
<screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null</userinput></screen>
<para>Wenn Sie nur die USB-Tastatur angeschlossen haben, ist
diese als <devicename>/dev/kbd0</devicename> verfügbar;
daher muß in diesem Fall das folgende Kommando
benutzt werden:</para>
<screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd0 < /dev/ttyv0 > /dev/null</userinput></screen>
<para>Tragen Sie dieses Kommando in Datei
<filename>/etc/rc.i386</filename> ein.</para>
<para>Sobald Sie diese Schritte durchgeführt haben,
sollte die USB-Tastatur ohne weitere Änderungen auch
unter X benutzbar sei.</para>
<para>Zur Zeit kann es noch Probleme geben, wenn Sie eine
USB-Tastatur im laufenden Betrieb einstecken oder
abziehen. Um Probleme zu vermeiden, sollten Sie die
Tastatur anschließen, bevor Sie das System
anschalten und die Tastatur nicht abziehen, solange das
System noch läuft.</para>
<para>Weitere Informationen erhalten Sie in
&man.ukbd.4;.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="busmouse">
<para>Ich habe eine unübliche Busmaus. Wie muß
ich sie konfigurieren?</para>
</question>
<answer>
<para>FreeBSD unterstützt die Busmaus und
InPort-Busmaus von Herstellern wie Microsoft, Logitech und
ATI. Der Bus-Gerätetreiber ist bei FreeBSD 2.X
standardmäßig im GENERIC-Kernel eingebunden; ab
Version 3.0 müssen Sie ihn selbst in die
Konfigurationsdatei für Ihren angepaßten Kernel
einbinden. Fügen Sie die folgende Zeile in Ihre
Konfigurationsdatei ein, falls Sie sich einen
angepaßten Kernel mit dem Busmaustreiber
erstellen</para>
<para>FreeBSD 3.0 und ältere Versionen</para>
<programlisting>
device mse0 at isa? port 0x23c tty irq5 vector mseintr
</programlisting>
<para>FreeBSD 3.X außer 3.0</para>
<programlisting>
device mse0 at isa? port 0x23c tty irq5
</programlisting>
<para>FreeBSD 4.X</para>
<programlisting>
device mse0 at isa? port 0x23c irq5
</programlisting>
<para>Die Busmaus wird üblicherweise zusammen mit einer
speziellen Karte ausgeliefert. Sie könnte es Ihnen
ermöglichen, andere Werte für die Port-Adresse
und den Interrupt zu setzen. Weitere Informationen finden
Sie in Handbuch zu Ihrer Maus und in der &man.mse.4;
Manualpage.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ps2mouse">
<para>Wie benutze ich meine PS/2 (<quote>Mouse-Port</quote>
oder <quote>Tastatur</quote>)-Maus?</para>
</question>
<answer>
<para>Falls Sie eine spätere FreeBSD-Version als 2.2.5
benutzen, ist der entsprechende Treiber
<devicename>psm</devicename> im Kernel enthalten und
aktiviert. Der Kernel sollte Ihre PS/2-Maus beim Booten
erkennen.</para>
<para>Wenn Sie eine geringfügig frühere Version von
FreeBSD benutzen (2.1.X oder höher), können Sie
den Treiber während der Installation einfach im
Kernelkonfigurationsmenü aktivieren, oder später mit
der Option <option>-c</option> am Bootprompt
<command>boot:</command>. Da der Treiber
standardmäßig deaktiviert ist, werden Sie ihn
also explizit aktivieren müssen.</para>
<para>Falls Sie eine ältere FreeBSD-Version benutzen,
müssen Sie folgende Zeile in Ihre
Kernelkonfigurationsdatei einfügen und den Kernel neu
kompilieren.</para>
<para>FreeBSD 3.0 und ältere Versionen</para>
<programlisting>
device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
</programlisting>
<para>FreeBSD 3.1 und neuere Versionen:</para>
<programlisting>
device psm0 at isa? tty irq 12
</programlisting>
<para>Ab FreeBSD 4.0:</para>
<programlisting>
device psm0 at atkbdc? irq 12
</programlisting>
<para>Lesen Sie den <ulink
url="../handbook/kernelconfig.html">Handbucheintrag zur
Kernelkonfiguration</ulink>, falls Sie sich mit der
Erstellung eines Kernels nicht auskennen.</para>
<para>Wenn Sie den Kernel soweit haben, daß er
<devicename>psm0</devicename> beim Booten korrekt erkennt,
stellen Sie sicher, daß sich im Verzeichnis /dev ein
Eintrag für <devicename>psm0</devicename> befindet.
Durch Eingabe von</para>
<screen>&prompt.root; <userinput>cd /dev; sh MAKEDEV psm0</userinput></screen>
<para>können Sie einen erstellen, wenn Sie als
<username>root</username> angemeldet sind.</para>
<note>
<para>Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in <filename>/dev</filename> erstellt.</para>
</note>
</answer>
</qandaentry>
<qandaentry>
<question id="moused">
<para>Kann man die Maus irgendwie außerhalb des X
Window Systems benutzen?</para>
</question>
<answer>
<para>Falls Sie den standard Konsoltreiber syscons benutzen,
können Sie den Mauszeiger auf Textkonsolen zum
Kopieren und Einfügen von Text verwenden. Starten
Sie den Mausdämon moused und schalten Sie den
Mauszeiger auf der virtuellen Konsole ein:</para>
<screen>&prompt.root; <userinput>moused -p /dev/<replaceable>xxxx</replaceable> -t <replaceable>yyyy</replaceable></userinput>
&prompt.root; <userinput>vidcontrol -m on</userinput></screen>
<para><replaceable>xxxx</replaceable> bezeichnet hierbei den
Gerätename der Maus und
<replaceable>yyyy</replaceable> das Protokoll.
Unterstützte Protokolle finden Sie in der
&man.moused.8; Manualpage.</para>
<para>Wahrscheinlich wollen Sie den Mausdämon
automatisch beim Booten starten. In Version 2.2.1
müssen Sie hierzu die folgenden Variablen in
<filename>/etc/sysconfig</filename> setzen:</para>
<programlisting>
mousedtype="yyyy"
mousedport="xxxx"
mousedflags=""
</programlisting>
<para>In den Versionen 2.2.2 bis 3.0 müssen Sie die
folgenden Variablen in <filename>/etc/rc.conf</filename>
setzen.</para>
<programlisting>
moused_type="yyyy"
moused_port="xxxx"
moused_flags=""
</programlisting>
<para>Wenn Sie eine PS/2-Maus besitzen und FreeBSD 3.1 (oder
neuer) benutzen, brauchen Sie nur die Zeile
<literal>moused_enable="YES"</literal> in die Datei
<filename>/etc/rc.conf</filename> einzutragen.</para>
<para>Falls Sie den Mausdämon auf allen virtuellen
Bildschirmen anstatt nur während des Bootens auf der
Konsole benutzen wollen, tragen Sie außerdem
folgendes in <filename>/etc/rc.conf</filename>
ein.</para>
<programlisting>
allscreens_flags="-m on"
</programlisting>
<para>Beginnend mit FreeBSD 2.2.6 ist der Mausdämon in
der Lage, das richtige Protokoll automatisch zu erkennen,
falls es sich nicht um ein relativ altes serielles
Mausmodell handelt. Geben Sie <literal>auto</literal> als
Protokoll an, um die automatische Erkennung zu
aktivieren.</para>
<para>Während der Mausdämon läuft, muß
der Zugriff auf die Maus zwischen dem Mausdämon und
anderen Programmen, wie z.B. X Windows koordiniert werden.
Lesen Sie auch <link linkend="x-and-moused">einen anderen
Abschnitt</link> zu diesem Thema.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="text-mode-cut-paste">
<para>Wie funktioniert das Kopieren und Einfügen von
Text mit der Maus auf einer Textkonsole?</para>
</question>
<answer>
<para>Wenn Sie es geschafft haben, den Mausdämon zu
starten (siehe <link linkend="moused">vorherigen
Abschnitt</link>), halten Sie die linke Maustaste
gedrückt und bewegen Sie die Maus, um einen
Textabschnitt zu markieren. Dann drücken Sie die
mittlere oder rechte Maustaste, um ihn an der
Cursorposition einzufügen.</para>
<para>In den Versionen 2.2.6 und späteren bewirkt das
Drücken der mittleren Maustaste das Einfügen des
Textes. Das Drücken der rechten Maustaste
<quote>erweitert</quote> den markierten Textabschnitt.
Evtl. möchten Sie Tasten umbelegen oder die mittlere
Taste emulieren, falls Ihre Maus keine hat. Details
hierzu finden Sie in der &man.moused.8;
Manualpage.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="usbmouse">
<para>Wird meine USB-Maus von FreeBSD
unterstützt?</para>
</question>
<answer>
<para>Experimentelle Treiber für USB-Geräte sind
seit FreeBSD 3.1 Bestandteil des Systems. Die
Unterstützung in FreeBSD 3.X war allerdings nicht
ganz ausgereift. Seit FreeBSD 4.0 sollten
USB-Geräten auf Anhieb funktionieren. Wenn Sie die
Treiber für USB-Mäuse in FreeBSD 3.X selbst
testen möchten, sollten Sie den unten
aufgeführten Anweisungen folgen:</para>
<procedure>
<step>
<para>Benutzen Sie FreeBSD 3.2 oder eine neuere
Version.</para>
</step>
<step>
<para>Tragen Sie die folgenden Zeilen in die
Konfigurationsdatei Ihres Kernels ein und erzeugen Sie
einen neuen Kernel.</para>
<programlisting>
device uhci
device ohci
device usb
device ukbd
options KBD_INSTALL_CDEV
</programlisting>
<para>Falls Sie eine ältere FreeBSD-Version als
FreeBSD 4.0 benutzen, müssen Sie diese
Einträge verwenden:</para>
<programlisting>
controller uhci0
controller ohci0
controller usb0
controller usm0
</programlisting>
</step>
<step>
<para>Erzeugen Sie im Verzeichnis
<filename>/dev</filename> die notwendigen
Dateien:</para>
<screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV ums0</userinput></screen>
<note>
<para>Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in <filename>/dev</filename> erstellt.</para>
</note>
</step>
<step>
<para>Tragen Sie in der
<filename>/etc/rc.conf</filename> die folgenden Zeilen
ein:</para>
<programlisting>
moused_enable="YES"
moused_type="auto"
moused_port="/dev/ums0"
moused_flags=""
usbd_enable="YES"
usbd_flags=""
</programlisting>
<para>Weitergehende Informationen zum Thema moused
finden sie im <link linkend="moused">vorherigen
Abschnitt</link>.</para>
</step>
<step>
<para>Wenn Sie Ihre USB-Maus auch unter X benutzen
wollen, müssen sie die Datei
<filename>XF86Config</filename> ändern. Wenn Sie
XFree86 3.3.2 oder eine neuere Version benutzen,
müssen die folgenden Zeilen im Abschnitt
<emphasis>Pointer</emphasis> stehen:</para>
<programlisting>
Device "/dev/sysmouse"
Protocol "Auto"
</programlisting>
<para>Wenn sie eine ältere Version von XFree86
benutzen, müssen im Abschnitt
<emphasis>Pointer</emphasis> die folgenden Angaben
stehen:</para>
<programlisting>
Device "/dev/sysmouse"
Protocol "SysMouse"
</programlisting>
</step>
</procedure>
<para>Weitergehende Informationen zum Thema "Maus und X"
erhalten Sie <link
linkend="x-and-moused">hier</link>.</para>
<para>Zur Zeit kann es noch Probleme geben, wenn Sie eine
USB-Maus im laufenden Betrieb einstecken oder abziehen.
Um Probleme zu vermeiden, sollten Sie die Maus
anschließen, bevor Sie das System anschalten und die
Maus nicht abziehen, solange das System noch
läuft.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="mouse-wheel-buttons">
<para>Meine Maus hat ein neumodisches Rad und mehr
Knöpfe. Kann ich sie in FreeBSD benutzen?</para>
</question>
<answer>
<para>Unglücklicherweise lautet die Antwort:
<quote>Vielleicht</quote>. Solche Mäuse mit
zusätzlichen Extras erfordern in den meisten
Fällen spezielle Treiber. Wenn der
Gerätetreiber für die Maus oder das
Anwendungsprogramm keine spezielle Unterstützung
für die Maus bietet, wird sie sich wie eine
gewöhnliche Maus mit zwei oder drei Knöpfen
verhalten.</para>
<para>Ob und wie Sie das Rad unter X benutzen können,
können Sie im <link linkend="x-and-wheel">passenden
Abschnitt</link> der FAQ erfahren.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="psmerr">
<para>Wieso springt der Cursor wild über den
Bildschirm, wenn ich eine PS/2-Maus mit Rad
benutze?</para>
</question>
<answer>
<para>Die bis einschließlich FreeBSD 3.2 genutzte
Version des Treibers für PS/2-Mäuse
unterstützt einige Mäuse nicht richtig. Dazu
gehört die Logitech M-S48 und deren OEM-Version.
Wenden Sie die folgenden Patch auf
<filename>/sys/i386/isa/psm.c</filename> an und erzeugen
Sie einen neuen Kernel.</para>
<programlisting>
Index: psm.c
===================================================================
RCS file: /src/CVS/src/sys/i386/isa/Attic/psm.c,v
retrieving revision 1.60.2.1
retrieving revision 1.60.2.2
diff -u -r1.60.2.1 -r1.60.2.2
--- psm.c 1999/06/03 12:41:13 1.60.2.1
+++ psm.c 1999/07/12 13:40:52 1.60.2.2
@@ -959,14 +959,28 @@
sc->mode.packetsize = vendortype[i].packetsize;
/* set mouse parameters */
+#if 0
+ /*
+ * A version of Logitech FirstMouse+ won't report wheel
movement,
+ * if SET_DEFAULTS is sent... Don't use this command.
+ * This fix was found by Takashi Nishida.
+ */
i = send_aux_command(sc->kbdc, PSMC_SET_DEFAULTS);
if (verbose >= 2)
printf("psm%d: SET_DEFAULTS return code:%04x\n", unit, i);
+#endif
if (sc->config & PSM_CONFIG_RESOLUTION) {
sc->mode.resolution
= set_mouse_resolution(sc->kbdc,
- (sc->config & PSM_CONFIG_RESOLUTION) - 1);
+ (sc->config & PSM_CONFIG_RESOLUTION) - 1);
+ } else if (sc->mode.resolution >= 0) {
+ sc->mode.resolution
+ = set_mouse_resolution(sc->kbdc, sc->dflt_mode.resolution);
+ }
+ if (sc->mode.rate > 0) {
+ sc->mode.rate = set_mouse_sampling_rate(sc->kbdc, sc->dflt_mode.rate);
}
+ set_mouse_scaling(sc->kbdc, 1);
/* request a data packet and extract sync. bits */
if (get_mouse_status(sc->kbdc, stat, 1, 3) < 3)
</programlisting>
<para>Dieses Problem sollte ab FreeBSD 3.3 nicht mehr
auftreten.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="laptop-mouse-trackball">
<para>Wie benutze ich Maus/Trackball/Touchpad auf meinem
Laptop?</para>
</question>
<answer>
<para>Bitte lesen Sie <link linkend="ps2mouse">die Antwort
zur vorherigen Frage</link> und sehen Sie sich die
Webseite über <ulink
url="http://www.FreeBSD.org/docs.html#PAO">Mobile
Computing</ulink> an.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="tape-support">
<para>Welche Arten von Bandlaufwerken werden
unterstützt?</para>
</question>
<answer>
<para>FreeBSD unterstützt SCSI-, QIC-36- (mit
QIC-02-Schnittstelle) und QIC-40/80-Bandlaufwerke
(diskettenbasiert). Hierzu gehören auch 8-mm (aka
Exabyte) und DAT-Laufwerke. Die QIC-40/80-Laufwerke sind
bekanntlich sehr langsam.</para>
<para>Einige der frühen 8-mm-Laufwerke sind nicht
besonders kompatibel zu SCSI-2 und könnten unter
FreeBSD nicht einwandfrei funktionieren.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="tape-changer-support">
<para>Unterstützt FreeBSD Bandwechsler?</para>
</question>
<answer>
<para>FreeBSD 2.2 unterstützt SCSI-Wechsler mit dem
Gerät <devicename>ch</devicename> und dem Befehl
<command>chio</command>. Details zum Betrieb des
Wechslers können Sie in der Manualpage &man.chio.1;
finden.</para>
<para>Falls Sie nicht <application>AMANDA</application> oder
ein anderes Produkt benutzen, das den Wechsler bereits
kennt, bedenken Sie, daß die Programme nur wissen,
wie sie ein Band von einem Punkt zu einem anderen bewegen
müssen. Sie selbst müssen sich also merken, in
welchem Einschub sich ein Band befindet und zu welchem
Einschub das Band, das sich gerade im Laufwerk befindet,
zurück muß.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="sound-card-support">
<para>Welche Soundkarten werden von FreeBSD
unterstützt?</para>
</question>
<answer>
<para>FreeBSD unterstützt die Soundkarten SoundBlaster,
SoundBlaster Pro, SoundBlaster 16, Pro Audio Spectrum 16,
AdLib und Gravis UltraSound. MPU-401 und kompatible
MIDI-Karten werden begrenzt unterstützt. Ebenso
werden Karten, die der Microsoft Sound
System-Spezifikation entsprechen, durch den pcm-Treiber
unterstützt.</para>
<note>
<para>Das gilt nur für Sound! Dieser Treiber
unterstützt keine CDROMs, SCSI oder Joysticks auf
diesen Karten, außer der SoundBlaster. Die
SoundBlaster-SCSI-Schnittstelle und einige
Nicht-SCSI-CDROMs werden unterstützt, Sie
können von diesen Geräten aber nicht
booten.</para>
</note>
</answer>
</qandaentry>
<qandaentry>
<question id="es1370-silent-pcm">
<para>Abhilfen für fehlenden Sound von es1370 mit dem
pcm-Treiber?</para>
</question>
<answer>
<para>Sie können den folgenden Befehl jedesmal nach dem
Booten ausführen:</para>
<screen>&prompt.root; <userinput>mixer pcm 100 vol 100 cd 100</userinput></screen>
</answer>
</qandaentry>
<qandaentry>
<question id="network-cards">
<para>Welche Netzwerkkarten unterstützt
FreeBSD?</para>
</question>
<answer>
<para>In den Hardware Informationen zu jedem FreeBSD Release
werden die unterstützten Karten aufgezählt.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="no-math-coprocessor">
<para>Ich habe keinen mathematischen Co-Prozessor - ist das
schlimm?</para>
</question>
<answer>
<note>
<para>Dies betrifft nur Besitzer von 386/486SX/486SLC -
andere Maschinen haben in ihrer CPU einen
integriert.</para>
</note>
<para>Im allgemeinen wird das keine Probleme verursachen,
aber es gibt Gelegenheiten bei denen es Sie betreffen wird
- entweder bei der Performance oder bei der Genauigkeit
der Emulation (lesen Sie den Abschnitt <link
linkend="emul">über Gleitpunkt-Emulation</link>).
Insbesondere wird das Zeichnen von Bögen in X SEHR
langsam sein. Es wird dringend empfohlen, daß Sie
sich einen mathematischen Co-Prozessor kaufen - er ist
sein Geld wert.</para>
<note>
<para>Einige Co-Prozessoren sind besser als andere. Es
tut uns weh, es zu sagen, aber es ist noch niemand
dafür entlassen worden, daß er bei Intel
eingekauft hat. Hüten Sie sich vor Clones, es sei
denn, Sie sind sicher, daß sie unter FreeBSD
funktionieren.</para>
</note>
</answer>
</qandaentry>
<qandaentry>
<question id="other-device-support">
<para>Welche Geräte werden noch von FreeBSD
unterstützt?</para>
</question>
<answer>
<para>Im <ulink
url="../handbook/install.html#INSTALL-MISC">Handbuch</ulink>
finden Sie eine Liste von anderen unterstützten
Geräten.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="power-management-support">
<para>Unterstützt FreeBSD Power-Management auf meinem
Laptop?</para>
</question>
<answer>
<para>Auf einigen Rechnern unterstützt FreeBSD
<acronym>APM</acronym>. Suchen Sie bitte in der
Kernelkonfigurationsdatei <filename>LINT</filename> nach
dem Wort <acronym>APM</acronym>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="micron-hang-boot">
<para>Wieso hängt sich mein Micron-System beim Booten
auf?</para>
</question>
<answer>
<para>Einige Micron Motherboards besitzen eine
nicht-konforme PCI-BIOS-Implementierung. Sie bereitet
Kummer, wenn FreeBSD bootet, weil PCI-Geräte nicht an
der angegebenen Adresse konfiguriert werden.</para>
<para>Deaktivieren Sie <quote>Plug and Play Operating
System</quote> im BIOS, um dieses Problem zu beheben.
Weitere Informationen können unter <ulink
url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</ulink>
gefunden werden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="newer-adaptec-support">
<para>Wieso erkennt FreeBSD meinen neueren Adaptec-Controller
nicht?</para>
</question>
<answer>
<para>Die Chips der neueren Adaptec AIC789-Serie werden
unter dem CAM SCSI System unterstützt, das sein Debut
in 3.0 gemacht hat. Patches für 2.2-STABLE befinden
sich in <ulink
url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/development/cam/">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/development/cam/</ulink>.
Eine Bootdiskette mit CAM-Erweiterung ist unter <ulink
url="http://people.FreeBSD.org/~abial/cam-boot/">http://people.FreeBSD.org/~abial/cam-boot/</ulink>
erhältlich. Lesen Sie in beiden Fällen die
Datei README, bevor Sie beginnen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="internal-plugnplay-modem">
<para>Wieso erkennt FreeBSD mein internes Plug &
Play-Modem nicht?</para>
</question>
<answer>
<para>Sie werden die PnP-ID Ihres Modems in die PnP-ID-Liste
des seriellen Treibers aufnehmen müssen. Erstellen
Sie einen neuen Kernel mit dem Eintrag <literal>controller
pnp0</literal> in der Konfigurationsdatei und rebooten Sie
Ihr System, um die Plug & Play-Unterstützung zu
aktivieren. Der Kernel wird nun alle PnP-IDs der
gefundenen Geräte ausgeben. In der Datei
<filename>/sys/i386/isa/sio.c</filename> finden Sie ab
Zeile 2777 (ca.) eine Tabelle, in der Sie die PnP-ID des
Modems eintragen müssen. Suchen Sie die Zeichenfolge
<literal>SUP1310</literal> in der Struktur
<literal>siopnp_ids[]</literal>, um die Tabelle zu finden.
Erstellen Sie den Kernel nochmals, installieren Sie ihn,
rebooten Sie, und Ihr Modem sollte erkannt werden.</para>
<para>Möglicherweise müssen Sie in der
boot-time-Konfiguration die PnP-Geräte manuell mit
einem <literal>pnp</literal>-Befehl ähnlich</para>
<programlisting>
pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8
</programlisting>
<para>konfigurieren, damit das Modem erkannt wird.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="support-winmodem">
<para>Unterstützt FreeBSD Software Modems, wie die
Winmodems?</para>
</question>
<answer>
<para>FreeBSD unterstützt viele Software-Modems, wenn
Sie zusätzliche Software installieren. Der Port
<filename role="package">comms/ltmdm</filename> bietet
Unterstützung für Modems, die auf dem oft
verwendeten Lucent LT Chipsatz basieren. Der Port
<filename role="package">comms/mwavem</filename>
bietet Unterstützung für die Modems im IBM
Thinkpad 600 und 700.</para>
<para>Sie können FreeBSD nicht über ein
Software-Modem installieren, diese Software kann nur
installiert werden, nachdem das Betriebssystem installiert
wurde.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="serial-console-prompt">
<para>Wie kann ich den boot:-Prompt auf einer seriellen
Konsole erscheinen lassen?</para>
</question>
<answer>
<orderedlist>
<listitem>
<para>Erstellen Sie einen Kernel mit <literal>options
COMCONSOLE</literal>.</para>
</listitem>
<listitem>
<para>Erstellen Sie /boot.config mit <option>-P</option>
als einzigem Text in der Datei.</para>
</listitem>
<listitem>
<para>Ziehen Sie das Tastaturkabel aus dem
Rechner.</para>
</listitem>
</orderedlist>
<para>Lesen Sie
<filename>/usr/src/sys/i386/boot/biosboot/README.serial</filename>
zur Information.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="micron-3comnic-failure">
<para>Warum arbeitet meine 3Com PCI-Netzwerkkarte in meinem
Micron-Computer nicht?</para>
</question>
<answer>
<para>Einige Micron Motherboards besitzen eine
nicht-konforme PCI-BIOS-Implementierung, die die
PCI-Geräte nicht an den angegebenen Adressen
konfiguriert. Hierdurch entstehen Probleme, wenn FreeBSD
bootet.</para>
<para>Deaktivieren Sie die Option <quote>Plug and Play
Operating System</quote> im BIOS, um das Problem zu
umgehen.</para>
<para>Weitere Informationen zu diesem Problem gibt es unter
dem URL: <ulink
url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="smp-support">
<para>Unterstützt FreeBSD Symmetric Multiproccessing
(SMP)?</para>
</question>
<answer>
<para>SMP wird erst ab Version 3.0 unterstützt. SMP
ist im Standardkernel (<emphasis>GENERIC</emphasis>) nicht
aktiviert; wenn Sie SMP verwenden wollen, müssen Sie
einen angepaßten Kernel erstellen. Die dazu
notwendigen Optionen können Sie der Datei
<filename>/sys/i386/conf/LINT</filename>
entnehmen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="asusk7v-boot-failure">
<para>Wenn ich ein System mit einem ASUS K7V Mainboard von
der Bootdiskette starte, hängt sich das System auf.
Wie kann ich dieses Problem lösen?</para>
</question>
<answer>
<para>Schalten Sie im BIOS die Option <quote>boot virus
protection</quote> aus.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="troubleshoot">
<title>Fehlerbehebung</title>
<qandaset>
<qandaentry>
<question id="awre">
<para>Was sollte ich tun, wenn auf meiner Festplatte
fehlerhafte Blöcke sind?</para>
</question>
<answer>
<para>SCSI-Laufwerke sollten in der Lage sein, diese
automatisch zu verlagern. Bei einigen Laufwerken ist
diese Eigenschaft jedoch aus unerfindlichen Gründen
bei der Auslieferung ausgeschaltet...</para>
<para>Um sie einzuschalten, müssen Sie den Page-Mode
des ersten Gerätes editieren. Unter FreeBSD
können Sie das (als <username>root</username>) mit
folgendem Befehl tun</para>
<screen>&prompt.root; <userinput>scsi -f /dev/rsd0c -m 1 -e -P 3</userinput></screen>
<para>und die Werte für AWRE und ARRE von 0 auf 1
ändern:-</para>
<programlisting>
AWRE (Auto Write Reallocation Enbld): 1
ARRE (Auto Read Reallocation Enbld): 1
</programlisting>
<para>Die folgenden Abschnitte wurden von Ted Mittelstaedt
<email>tedm@toybox.placo.com</email> eingesendet:</para>
<para>Bei IDE-Laufwerken sind fehlerhafte Blöcke
normalerweise ein Zeichen für potentielle Probleme.
Bei allen modernen IDE-Laufwerken ist eine interne
Verlagerung von fehlerhaften Blöcken eingeschaltet.
Heutzutage bieten alle IDE-Festplattenhersteller eine
umfassende Garantie und tauschen Laufwerke mit
fehlerhaften Blöcken um.</para>
<para>Falls Sie ein IDE-Laufwerk mit fehlerhaften
Blöcken trotzdem weiterbenutzen möchten,
können Sie versuchen, sich vom Hersteller ein
IDE-Diagnoseprogramm herunterzuladen und dies über
das Laufwerk laufen zu lassen. Manchmal können diese
Programme so eingestellt werden, daß sie die
Elektronik des Laufwerks dazu veranlassen, das Laufwerk
nochmals nach fehlerhaften Blöcken zu durchsuchen und
diese auszuschließen.</para>
<para>Auf ESDI-, RLL- und MFM-Laufwerken sind fehlerhafte
Blöcke nichts ungewöhnliches und im allgemeinen
kein Zeichen für Probleme. Auf einem PC
übernehmen der Festplatten-Controller und das BIOS
die Aufgabe, fehlerhafte Sektoren auszuschließen,
was bei Betriebssystemen wie DOS, die das BIOS benutzen,
um auf die Platte zuzugreifen, auch gut funktioniert. Die
Festplattentreiber von FreeBSD benutzen allerdings nicht
das BIOS, weshalb ein Mechanismus bad144 existiert, der
diese Funktionalität ersetzt. bad144 arbeitet nur
mit dem wd-Treiber (und wird damit von FreeBSD 4.X nicht
unterstützt) und kann NICHT für SCSI benutzt
werden. bad144 arbeitet, indem es alle gefundenen,
fehlerhaften Sektoren in eine spezielle Datei
schreibt.</para>
<para>Eine Einschränkung von bad144 ist, daß die
Datei mit den fehlerhaften Sektoren auf die letzte Spur
der Platte plaziert wird. Da diese Datei nun
möglicherweise eine Liste von fehlerhaften Sektoren
enthalten könnte, die am Anfang der Platte auftreten,
wo sich möglicherweise die /kernel-Datei befindet,
muß sie vom Bootstrap-Programm, das BIOS-Routinen
benutzt, um den Kernel zu lesen, erreichbar sein. Das
bedeutet, daß Platten, auf denen bad144 benutzt
wird, 1024 Zylinder, 16 Köpfe und 63 Sektoren nicht
überschreiten dürfen. Platten, die von bad144
verwaltet werden, sind also effektiv auf 500MB
begrenzt.</para>
<para>Setzen Sie <quote>Bad Block Scanning</quote>
während der Installation im fdisk-Menü einfach auf
ON, um bad144 zu verwenden. Dies funktioniert bis zu
FreeBSD 2.2.7. Die Platte darf nicht mehr als 1024
Zylinder besitzen. Generell wird empfohlen, daß die
Festplatte vorher mindestens vier Stunden in Betrieb war,
um ihr die Möglichkeit zur thermischen Ausdehnung und
Spurversetzung zu geben.</para>
<para>Falls eine Platte mehr als 1024 Zylinder besitzt (wie
z.B. große ESDI-Laufwerke), benutzt der Controller
einen speziellen Übersetzungsmodus, um den Betrieb
unter DOS zu ermöglichen. Der wd-Treiber kennt diese
Übersetzungsmodi, WENN Sie die
<quote>translated</quote>-Geometrie mit dem <quote>set
geometry</quote>-Befehl in fdisk eingeben. Sie
dürfen NICHT den <quote>dangerously dedicated</quote>
Modus zur Erstellung der FreeBSD-Partition verwenden,
weil dieser die Geometrie ignoriert und obwohl fdisk Ihre
überschriebene Geometrie benutzen wird, ist die wahre
Größe der Platte noch bekannt und es wird
versucht, eine zu große FreeBSD-Partition zu
erstellen. Wenn die Plattengeometrie in die
übersetzte Geometrie geändert worden ist, dann
muß die Partition manuell durch Angabe der
Blockanzahl erstellt werden.</para>
<para>Sie können mit dem ESDI-Controller auch
kurzerhand eine große ESDI-Platte erstellen, diese
dann mit DOS booten und als DOS-Partition formatieren.
Anschließend booten Sie mit dem
FreeBSD-Installationsprogramm und im fdisk-Menü notieren
Sie sich die Blockgröße und die Anzahl
Blöcke der DOS-Partition. Dann ändern Sie die
Geometrie in die gleiche, wie die von DOS verwendete,
löschen die DOS-Partition und erstellen eine
<quote>kooperative</quote> FreeBSD-Partition mit der
gleichen Blockgröße, die Sie zuvor notiert
haben. Machen Sie die Partition nun bootfähig und
schalten Sie Bad Block Scanning ein. Während der
tatsächlichen Installation wird bad144 gestartet, bevor
irgendwelche Dateisysteme erstellt werden (Sie können
das mit <keycombo action="simul">
<keycap>Alt</keycap>
<keycap>F2</keycap>
</keycombo> beobachten). Falls irgendwelche Probleme
bei der Erstellung der Datei mit den fehlerhaften Sektoren
auftreten sollten, haben Sie eine zu große
Plattengeometrie eingestellt - rebooten Sie Ihr System und
beginnen Sie von vorne (die Neupartitionierung und
Formatierung unter DOS eingeschlossen).</para>
<para>Falls die Verlagerung fehlerhafter Blöcke
aktiviert ist und Sie trotzdem fehlerhafte Blöcke
bemerken, sollten Sie einen Austausch des Laufwerkes in
Erwägung ziehen, da die fehlerhaften Blöcke mit
der Zeit zunehmen werden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="bustek742a-eisa-scsi">
<para>Wieso erkennt FreeBSD meinen SCSI-Controller vom Typ Bustek
742a EISA nicht?</para>
</question>
<answer>
<para>Diese Information ist speziell für die 742a,
könnte aber auch andere Buslogic-Karten
einschließen (Bustek = Buslogic)</para>
<para>Es gibt zwei grundverschiedene
<quote>Versionen</quote> der 742a-Karte. Das sind die
Hardware-Revisionen A-G und Revisionen von H
aufwärts. Der Revisionsbuchstabe befindet sich
hinter der Fabriknummer am Rand der Karte. Auf der 742a
befinden sich zwei Chips. Einer ist der BIOS-Chip, der
andere der Firmware-Chip. FreeBSD achtet nicht darauf,
welche BIOS-Version Sie haben, aber es achtet auf die
Version des Firmware-Chips. Buslogic schickt Ihnen
Upgrade-ROMs, wenn Sie sich an den technischen Support
wenden. Die BIOS- und Firmware-Chips müssen als
passende Paare ausgeliefert werden. Für Ihre
Hardware-Revision benötigen Sie das aktuellste
Firmware-ROM auf Ihrer Adapter-Karte.</para>
<para>Karten der Revision A-G akzeptieren
BIOS/Firmware-Paare bis zu 2.41/2.21. Die Karten der
Revisionen H und aufwärts akzeptieren die aktuellsten
BIOS/Firmware-Paare 4.70/3.37. Der Unterschied der
Firmware-Versionen ist, daß die 3.37-Firmware
<quote>round robin</quote> unterstützt.</para>
<para>Auf den Buslogic-Karten befindet sich auch eine
Seriennummer. Falls Sie eine Karte mit einer alten
Hardwarerevisionsnummer besitzen, können Sie sich an
die RMA-Abteilung von Buslogic wenden, Ihre Seriennummer
angeben und versuchen, die Karte gegen eine neuere
Hardwarerevision auszutauschen. Falls Ihre Karte nicht zu
alt ist, wird dem Tausch zugestimmt werden.</para>
<para>Von FreeBSD 2.1 werden nur Firmwarerevisionen ab 2.21
aufwärts unterstützt. Wenn Sie eine ältere
Firmwarerevision besitzen, wird Ihre Karte nicht als
Buslogic-Karte erkannt. Sie könnte jedoch als
Adaptec 1540 erkannt werden. Die frühe Firmware von
Buslogic enthält eine AHA1540
<quote>Emulation</quote>, wovon bei EISA-Karten jedoch
abzuraten ist.</para>
<para>Wenn sie eine Karte mit einer alten
Hardwarerevisionsnummer besitzen und die 2.21-Firmware
für sie bekommen, müssen Sie den Jumper W1 in
die Position B-C setzen; die Voreinstellung ist
A-B.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="hpnetserver-scsi-failure">
<para>Wieso wird der SCSI-Controller meines HP Netserver nicht
erkannt?</para>
</question>
<answer>
<para>Hierbei handelt es sich um ein bekanntes Problem. Der
auf dem Board befindliche EISA-SCSI-Controller auf dem HP
Netserver belegt die EISA-Slotnummer 11, wodurch sich alle
<quote>wirklichen</quote> EISA-Slots vor ihm befinden.
Leider kollidiert der Adreßraum von EISA-Slots
>=10 mit dem Adreßraum, der PCI zugeordnet ist und
die Autokonfiguration von FreeBSD kann mit dieser
Situation derzeit nicht besonders gut umgehen.</para>
<para>Die einfachste Alternative ist, diese Kollision
einfach zu leugnen. Setzen Sie dazu die Kerneloption
<literal>EISA_SLOTS</literal> auf den Wert 12.
Konfigurieren und kompilieren Sie den Kernel, wie im
<ulink url="../handbook/kernelconfig.html">Handbucheintrag
zur Kernelkonfiguration</ulink> beschrieben.</para>
<para>Dies bringt Ihnen natürlich das klassische
Huhn-Ei-Problem, wenn Sie auf einer solchen Maschine
installieren wollen. Um dieses Problem zu umgehen,
existiert ein spezieller Hack in
<emphasis>UserConfig</emphasis>. Benutzen Sie nicht die
<quote>visuelle</quote> Schnittstelle, sondern die rohe
Kommandozeilenschnittstelle. Geben Sie einfach</para>
<programlisting>
eisa 12
quit
</programlisting>
<para>am Prompt ein und Sie können Ihr System ganz
normal installieren. Sie sollten auf jeden Fall einen
angepaßten Kernel zu kompilieren und
installieren.</para>
<para>Zukünftige Versionen werden hoffentlich eine
passende Lösung für dieses Problem
beinhalten.</para>
<note>
<para>Sie können keine <literal>dangerously
dedicated</literal> Platte auf einem HP Netserver
verwenden. Lesen Sie weitere Informationen finden Sie
in <link linkend="dedicate">diesem
Hinweis</link>.</para>
</note>
</answer>
</qandaentry>
<qandaentry>
<question id="cmd640-ide">
<para>Was ist mit diesem CMD640-Controller los?</para>
</question>
<answer>
<para>Er ist fehlerhaft. Er kann Befehle auf beiden
Kanälen nicht simultan behandeln.</para>
<para>Es gibt jetzt eine Abhilfe, die automatisch aktiviert
wird, wenn Ihr System diesen Chip benutzt. Details finden
Sie in der Manualpage zum Plattentreiber (&man.wd.4;).</para>
<para>Wenn bei Ihnen bereits FreeBSD 2.2.1 oder 2.2.2 mit
einem CMD640-Controller läuft und Sie den zweiten
Kanal benutzen möchten, erstellen Sie einen neuen
Kernel mit <literal>options "CMD640"</literal>. Dies ist
seit 2.2.5 Voreinstellung.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ed1-timeout">
<para>Was bedeuten die ständigen Meldungen <literal>ed1:
timeout</literal>?</para>
</question>
<answer>
<para>Dies wird meistens durch einen Interruptkonflikt
verursacht (z.B., wenn zwei Karten den selben Interrupt
benutzen). Vor 2.0.5R war FreeBSD diesbezüglich
tolerant und die Treiber für Netzwerkkarten
funktionierten auch bei IRQ-Konflikten. Seit 2.0.5R
werden IRQ-Konflikte jedoch nicht länger toleriert.
Booten Sie mit der Option -c und ändern Sie die
Einträge zu ed0/de0/... Ihrem Board
entsprechend.</para>
<para>Wenn Sie den BNC-Anschluß Ihrer Netzwerkkarte
benutzen, könnte es auch sein, daß es sich
Geräte-Timeouts aufgrund fehlerhafter Terminierung
handelt. Um dies zu überprüfen, verbinden Sie
einen Terminator direkt mit der Netzwerkkarte (ohne Kabel)
und beobachten Sie, ob die Fehlermeldungen
verschwinden.</para>
<para>Einige NE2000 kompatible Karten melden diesen Fehler,
wenn keine Verbindung am UTP-Eingang existiert oder wenn
das Kabel nicht eingesteckt ist.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="bad-3c509">
<para>Warum funktioniert meine 3COM 3C509 plötzlich
nicht mehr?</para>
</question>
<answer>
<para>Diese Karte ist dafür berüchtigt, ihre
Konfiguration zu vergessen. Sie müssen die Karte mit
dem DOS-Programm <command>3c5x9.exe</command> neu
konfigurieren.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="printer-slow">
<para>Mein an der parallel Schnittstelle angeschlossener
Drucker ist unglaublich langsam. Was kann ich
tun?</para>
</question>
<answer>
<para>Falls das einzige Problem ist, daß er
schrecklich langsam ist, dann sollte Sie versuchen, den
<ulink
url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/printing-intro-setup.html#PRINTING-PARALLEL-PORT-MODE">Setting
the Communication Mode for the Parallel Port</ulink> zu ändern, wie es im
Kapitel <ulink
url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/printing-intro-setup.html">Printing</ulink>
des Handbuchs beschrieben ist.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="signal11">
<para>Wieso brechen meine Programme gelegentlich mit
<errorname>Signal 11</errorname>-Fehlern ab?</para>
</question>
<answer>
<para>Das Signal 11 wird generiert, wenn ein Prozeß
versucht, auf Speicher zuzugreifen, obwohl er vom
Betriebssystem dazu nicht befugt wurde. Wenn Ihnen das
scheinbar zufällig immer wieder passiert, sollten Sie
der Sache einmal auf der Grund gehen.</para>
<para>Das Problem hat in der Regel eine der folgenden
Ursachen:</para>
<orderedlist>
<listitem>
<para>Wenn das Problem nur in einer bestimmten
Anwendung auftritt, die Sie selbst entwickeln, dann
ist es wahrscheinlich ein Fehler in Ihren
Sourcen.</para>
</listitem>
<listitem>
<para>Wenn das Problem in einem Teil von FreeBSD
auftritt, könnte es natürlich auch ein
Fehler sein; aber in den meisten
Fällen werden diese Probleme gefunden und behoben,
bevor die typischen Leser der FAQ (wir) diese Teile
der Sourcen benutzen können (dafür gibt es
schließlich -CURRENT).</para>
</listitem>
</orderedlist>
<para>Wenn der Fehler auftritt, wenn Sie ein Programm
compilieren aber dabei immer wieder an anderer Stelle
auftritt, dann ist das ein ganz eindeutiger Hinweis,
daß das Problem <emphasis>nicht</emphasis> bei
FreeBSD liegt.</para>
<para>Nehmen wir zum Beispiel an, daß Sie <quote>make
buildworld</quote> ausführen und die Compilierung von
<filename>ls.c</filename> in <filename>ls.o</filename>
abbricht. Wenn Sie nochmal "make buildworld"
durchführen und die Compilierung an der gleichen
Stelle abbricht, handelt es sich um einen Fehler in den
Sourcen. Aktualisieren Sie Ihre Sourcen und versuchen Sie
es noch einmal. Wenn der Fehler jedoch an einer anderen
Stelle auftritt, liegt das Problem mit an Sicherheit
grenzender Wahrscheinlichkeit bei Ihrer Hardware.</para>
<para>Was Sie tun sollten:</para>
<para>Im ersten Fall können Sie einen Debugger wie z.B.
gdb benutzen, um die Stelle im Programm zu finden, an der
auf eine falsche Adresse zugegriffen wird und danach den
Fehler beheben.</para>
<para>Im zweiten Fall müssen Sie sicherstellen,
daß das Problem nicht von Ihrer Hardware verursacht
wird.</para>
<para>Typische Ursachen dafür sind unter
anderem:</para>
<orderedlist>
<listitem>
<para>Es könnte sein, daß Ihren Festplatten
zu warm wird: Überprüfen Sie, ob die
Lüfter in Ihrem Gehäuse noch funktionieren,
damit Ihre Festplatten (und andere Hardware) nicht
heißlaufen.</para>
</listitem>
<listitem>
<para>Der Prozessor überhitzt, weil Sie Ihn
übertaktet haben oder der CPU-Kühler
ausgefallen ist. Sie müssen sicherstellen,
daß Sie Ihre Hardware unter den Bedingungen
betreiben, für die sie spezifiziert ist,
zumindestens während Sie versuchen, das Problem
zu lösen. Mit anderen Worten: Betreiben Sie
Ihre CPU mit der normalen Taktfrequenz.</para>
<para>Wenn Sie übertakten, sollten Sie daran
denken, daß ein langsames System deutlich
billiger ist als ein defektes System. Die große
Masse hat nicht sehr häufig Mitgefühl mit
Problemen bei übertakteten System, auch wenn Sie
es für ungefährlich halten.</para>
</listitem>
<listitem>
<para>Unzuverlässiger Speicher: Wenn Sie mehr als
ein SIMM/DIMM installiert haben, sollten Sie sie alle
ausbauen und die Maschine testweise mit jedem SIMM
oder DIMM einzeln betreiben. So können Sie
feststellen, ob die Ursache ein einzelnes SIMM/DIMM
oder auch eine Kombination von Modulen ist.</para>
</listitem>
<listitem>
<para>Zu optimistische Einstellung des Mainboards: In
Ihrem BIOS und mit den Jumpern auf dem Mainboard
können Sie diverse Timings ändern. In den
meisten Fällen reichen die Defaults aus, aber
manchmal kann es durch zu wenig wait states, die
Einstellung <quote>RAM Speed: Turbo</quote> oder
ähnliches zu merkwürdigen Problemen kommen.
Ein möglicher Ansatz ist, die BIOS defaults zu
laden, allerdings könnte es sinnvoll sein, die
aktuellen Einstellungen vorher zu notieren.</para>
</listitem>
<listitem>
<para>Schlechte oder fehlerhafte Stromversorgung des
Mainboards: Wenn Sie unbenutzte Steckkarten, Platten
oder CDROMs in Ihrem System haben, sollten Sie sie
testweise ausbauen oder die Stromversorgung abziehen.
Dadurch können Sie prüfen, ob Ihr Netzteil
eventuell mit einer geringeren Last besser
zurechtkommt. Sie können auch testweise ein
anderes, am besten ein leistungsfähigeres,
Netzteil ausprobieren. Wenn Sie zur Zeit ein
250W-Netzteil benutzen, sollten Sie testweise ein
300W-Netzteil einbauen.</para>
</listitem>
</orderedlist>
<para>Die sollten ebenfalls die SIG11 FAQ (unten
aufgeführt) lesen, da sie gute Erklärungen
für alle diese Probleme enthält (allerdings aus
Linux-Sicht). Sie erklärt ebenfalls, warum sowohl
Programme als auch Geräte zur Speicherprüfung
fehlerhaften Speicher teilweise nicht erkennen.</para>
<para>Wenn alle diese Schritte nicht helfen, ist es
möglich, daß Sie einen Fehler in FreeBSD
gefunden haben. Folgen Sie einfach den Anweisungen
für die Erstellung eines Problem Reports.</para>
<para>Es existiert eine ausführliche FAQ hierzu unter
<ulink url="http://www.bitwizard.nl/sig11/">der
SIG11-Problem-FAQ</ulink></para>
</answer>
</qandaentry>
<qandaentry>
<question id="trap-12-panic">
<para>Mein System stürzt mit der Meldung
<errorname>Fatal trap 12: page fault in kernel
mode</errorname> oder <errorname>panic:</errorname> ab und
gibt eine Menge zusätzlicher Informationen aus. Was
kann ich tun?</para>
</question>
<answer>
<para>Die Entwickler von FreeBSD interessieren sich für
solchen Meldungen, allerdings brauchen Sie deutlich mehr
Informationen als die, die Ihnen angezeigt werden.
Kopieren Sie die komplette Meldungen und lesen Sie nun den
FAQ-Eintrag über <link linkend=
"KERNEL-PANIC-TROUBLESHOOTING">kernel panics</link>.
Erzeugen sie einen Kernel mit den zusätzlichen Daten
zur Fehlersuche, und dann einen backtrace. Das hört
sich komplizierter an, als es ist. Sie brauchen keine
Programmier-Erfahrung, Sie müssen einfach nur den
Anweisungen folgen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="screen-loses-sync">
<para>Wieso wird beim Booten der Bildschirm schwarz und reagiert
nicht mehr?</para>
</question>
<answer>
<para>Dies ist ein bekanntes Problem mit der ATI Mach 64
Videokarte. Das Problem besteht darin, daß diese
Karte die Adresse <literal>2e8</literal> benutzt und die
vierte serielle Schnittstelle ebenfalls. Aufgrund eines
Fehlers (einer Besonderheit?) im &man.sio.4;-Treiber wird
diese Schnittstelle angesprochen, auch wenn Sie gar keine
vierte serielle Schnittstelle besitzen und
<emphasis>sogar</emphasis>, wenn sie sio3 (die vierte
Schnittstelle), die normalerweise diese Adresse verwendet,
deaktivieren.</para>
<para>Bis der Fehler behoben ist, können Sie folgende
Abhilfe verwenden:</para>
<orderedlist>
<listitem>
<para>Geben Sie am Bootprompt <option>-c</option> ein.
(Dies bringt den Kernel in den
Konfigurationsmodus).</para>
</listitem>
<listitem>
<para>Deaktivieren Sie <devicename>sio0</devicename>,
<devicename>sio1</devicename>,
<devicename>sio2</devicename> und
<devicename>sio3</devicename> (alle). Auf diese Weise
wird der sio-Treiber nicht aktiviert und das Problem
tritt nicht mehr auf.</para>
</listitem>
<listitem>
<para>Geben Sie exit ein, um den Bootvorgang
fortzusetzen.</para>
</listitem>
</orderedlist>
<para>Falls sie in der Lage sein wollen Ihre seriellen
Schnittstellen zu benutzen, müssen Sie einen neuen
Kernel mit folgenden Modifikationen erstellen: suchen Sie
in <filename>/usr/src/sys/i386/isa/sio.c</filename> nach
der Zeichenkette <literal>0x2e8</literal> und löschen
Sie sie und das vorhergehende Komma (nicht das folgende
Komma). Nun folgen Sie der normalen Prozedur zur
Erstellung eines neuen Kernels.</para>
<para>Auch nach Anwendung dieser Maßnahmen könnte
es sein, daß Ihr X Windows-System nicht einwandfrei
funktioniert. Wenn dies der Fall ist, stellen Sie sicher,
daß es sich bei der von Ihnen benutzten X
Windows-Version mindestens um XFree86 3.3.3 oder
höher handelt. Diese Version und höhere
besitzen eine integrierte Unterstützung für
Mach64-Karten und sogar einen dedizierten X-Server
für sie.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="reallybigram">
<para>Wieso verwendet FreeBSD nur 64 MB Hauptspeicher,
obwohl in meinem Rechner 128 MB sind?</para>
</question>
<answer>
<para>Aufgrund der Art und Weise, wie FreeBSD die
Hauptspeichergröße vom BIOS mitgeteilt bekommt,
kann es lediglich 16-Bit Werte in kByte-Größe
(65535 kByte = 64MB) erkennen (oder weniger... einige
BIOSe setzen die Hauptspeichergröße auf 16MB).
Falls Sie mehr als 64MB besitzen, wird FreeBSD versuchen,
das zu erkennen, was aber nicht immer
funktioniert.</para>
<para>Um dieses Problem zu umgehen, müssen Sie die
untenstehende Kerneloption verwenden. Es gibt einen Weg,
vollständige Hauptspeicherinformationen vom BIOS zu
erhalten, aber in den Bootblöcken ist nicht
genügend Platz dafür vorhanden. Wenn der
Platzmangel in den Bootblöcken eins Tages behoben
ist, werden wir die erweiterten BIOS-Funktionen dazu
nutzen, die vollständigen Hauptspeicherinformationen
zu erhalten... aber zur Zeit sind wir auf die Kerneloption
angewiesen.</para>
<para><literal>options
"MAXMEM=<replaceable>n</replaceable>"</literal></para>
<para>Hierbei ist <literal>n</literal> Ihre
Hauptspeichergröße in Kilobyte. Bei einer 128
MB-Maschine müßten Sie
<literal>131072</literal> benutzen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="panic-kmemmap-too-small">
<para>Wieso stürzt FreeBSD 2.0 mit der Meldung
<errorname>kmem_map too small!</errorname> ab?</para>
</question>
<answer>
<note>
<para>Die Nachricht kann auch <literal>mb_map too
small!</literal> lauten.</para>
</note>
<para>Diese Meldung zeigt an, daß der virtuelle
Speicher für Netzwerkpuffer (spezieller mbuf-Cluster)
aufgebraucht ist. Sie können die für mbuf
verfügbare Größe an VM erhöhen, indem
Sie</para>
<para><literal>options
"NMBCLUSTERS=<replaceable>n</replaceable>"</literal></para>
<para>in Ihre Kernelkonfigurationsdatei einfügen, wobei
<replaceable>n</replaceable>, abhängig davon,
wieviele gleichzeitige TCP-Verbindungen Sie
unterstützen müssen, eine Zahl aus dem Bereich
512-4096 ist. Ich würde Ihnen empfehlen, 2048 zu
probieren - das sollte Sie von solchen Paniksituationen
vollkommen befreien. Sie können die Anzahl der
zugeordneten/benutzten mbuf-Cluster im System mit
<command>netstat -m</command> beobachten. Der
voreingestellte Wert für NMBCLUSTERS ist <literal>512
+ MAXUSERS * 16</literal>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="proc-table-full">
<para>Wieso erhalte ich die Meldung <errorname>/kernel:
proc: table is full</errorname>?</para>
</question>
<answer>
<para>Der FreeBSD-Kernel beschränkt die Anzahl der
gleichzeitig laufenden Prozesse. Die Anzahl errechnet
sich aus dem Wert der Variablen
<literal>MAXUSERS</literal> in der Konfigurationsdatei des
Kernels. Auch andere Einstellungen wie die Anzahl der
Puffer für Netzwerkoperationen (Details dazu
finden Sie in <link
linkend="panic-kmemmap-too-small">diesem
Abschnitt</link>). werden durch
<literal>MAXUSERS</literal> beeinflußt. Wenn Ihr
System stark belastet ist, sollten Sie den Wert von
<literal>MAXUSERS</literal> erhöhen. Dadurch werden
diverse Einstellung des Systems angepaßt und die
maximale Anzahl gleichzeitig laufender Prozesse
erhöht.</para>
<para>Seit FreeBSD 4.4 kann der Wert von
<literal>MAXUSERS</literal> über die Variable
<varname>kern.maxusers</varname> in der Datei
<filename>/boot/loader.conf</filename> angepaßt
werden. In älteren Versionen mußten Sie
<literal>MAXUSERS</literal> in der Konfigurationsdatei
für Ihren angepaßten Kernel
ändern.</para>
<para>Wenn Ihr System nicht besonders stark ausgelastet ist
und Sie einfach nur mehr gleichzeitig laufende Prozesse
erlauben wollen, können Sie den Wert des sysctl
<varname>kern.maxproc</varname> erhöhen.
Wenn diese Prozesse von einem einzigen Benutzer
ausgeführt werden, müssen Sie den Wert von
<varname>kern.maxprocperuid</varname> ebenfalls
erhöhen. Dieser Wert muß immer mindestens um
eins geringer sein als der Wert von
<varname>kern.maxproc</varname> value. (Der Grund
für diese Einschränkung ist, daß ein
Systemprogramm, &man.init.8;, immer ausgeführt werden
muß.)</para>
<para>Damit Änderungen eines sysctl auch bei einem
Neustart des Systems erhalten bleiben, müssen Sie
diese bei aktuellen FreeBSD-Versionen in
<filename>/etc/sysctl.conf</filename> eintragen. In
älteren Versionen wurden sie in
<filename>/etc/rc.local</filename> eingetragen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="cmap-busy-panic">
<para>Wieso erhalte ich die Meldung <errorname>CMAP busy
panic</errorname>, wenn ich mein System mit einem neuen
Kernel starte?</para>
</question>
<answer>
<para>Die Logik, die versucht, veraltete
<filename>/var/db/kvm_*.db</filename>-Dateien zu erkennen,
versagt manchmal und die Benutzung einer unpassenden Datei
kann zu Paniksituationen führen.</para>
<para>Falls das passiert, rebooten Sie im Single-User-Modus
und löschen Sie die Dateien:</para>
<screen>&prompt.root; <userinput>rm /var/db/kvm_*.db</userinput></screen>
</answer>
</qandaentry>
<qandaentry>
<question id="brkadrint-illegal-host-access">
<para>Was soll mir die Meldung <errorname>ahc0: brkadrint,
Illegal Host Access at seqaddr 0x0</errorname>
sagen?</para>
</question>
<answer>
<para>Dies ist ein Konflikt mit einem Ultrastor SCSI
Hostadapter.</para>
<para>Rufen Sie während des Bootprozesses das
Kernelkonfigurationsmenü auf und deaktivieren Sie
<devicename>uha0</devicename>, welches das Problem
verursacht.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="aci0-illegal-cable">
<para>Wenn ich mein System starte, erhalte ich die Meldung
<errorname>ahc0: illegal cable configuration</errorname>,
obwohl die Verkabelung korrekt ist. Woran liegt
das?</para>
</question>
<answer>
<para>Auf Ihrem Mainboard fehlen ein paar Logikbausteinen,
die für die Unterstützung der automatischen
Terminierung notwendig sind. Stellen Sie in Ihrem
SCSI-BIOS manuell die korrekte Terminierung für Ihr
System ein, anstatt sich auf die automatische Terminierung
zu verlassen. Der Treiber für den AIC7XXX kann nicht
erkennen, ob die externen Logikbausteine für die
Erkennung der Kabel (und damit automatische Terminierung)
vorhanden sind. Der Treiber muß sich darauf
verlassen, daß diese vorhanden sind, wenn in der
Konfiguration <quote>automatische Terminierung</quote>
eingestellt ist. Ohne die externen Bausteine ist es sehr
wahrscheinlich, daß der Treiber die Terminierung
falsch einstellt, was die Zuverlässigkeit des
SCSI-Busses herabsetzen kann.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="mail-loopback">
<para>Wieso meldet Sendmail <errorname>mail loops back to
myself</errorname>?</para>
</question>
<answer>
<para>Dies wird in der Sendmail-FAQ wie folgt
beantwortet:-</para>
<literallayout> * Ich erhalte "Local configuration error" Meldungen, wie:
553 relay.domain.net config error: mail loops back to myself
554 <user@domain.net>... Local configuration error
Wie kann ich dieses Problem lösen?
Sie haben durch die Benutzung einer MX-Zeile eingestellt, daß
Mail für die Domäne (z.B. domain.net) an einen speziellen
Host (in diesem Fall relay.domain.net) weitergeleitet wird,
aber der Relay-Host erkennt sich selbst nicht als
domain.net. Fügen Sie domain.net in /etc/mail/local-host-names
(falls Sie FEATURE(use_cw_file) benutzen) oder "Cw domain.net"
in /etc/mail/sendmail.cf ein.
</literallayout>
<para>Die aktuelle Version der <ulink
url="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq">Sendmail-FAQ</ulink>
wird nicht mehr mit dem Sendmail-Release verwaltet. Sie
wird jedoch regelmäßig nach <ulink
url="news:comp.mail.sendmail">comp.mail.sendmail</ulink>,
<ulink url="news:comp.mail.misc">comp.mail.misc</ulink>,
<ulink url="news:comp.mail.smail">comp.mail.smail</ulink>,
<ulink url="news:comp.answers">comp.answers</ulink> und
<ulink url="news:news.answers">news.answers</ulink>
gepostet. Sie können auch eine Kopie per E-Mail
bekommen, indem Sie eine Mail mit dem Inhalt <literal>send
usenet/news.answers/mail/sendmail-faq</literal> an
<email>mail-server@rtfm.mit.edu</email> schicken.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="remote-fullscreen">
<para>Wieso funktionieren bildschirmorientierte Anwendungen beim
Zugriff über ein Netzwerk nicht richtig?</para>
</question>
<answer>
<para>Die entfernte Maschine scheint den Terminaltyp auf
etwas anderes als den Typ <literal>cons25</literal>, der
von FreeBSD verlangt wird, zu setzen.</para>
<para>Es gibt mehrere mögliche Abhilfen für dieses
Problem:</para>
<itemizedlist>
<listitem>
<para>Setzen Sie die Shell-Variable TERM nach dem
Einloggen auf der entfernten Maschine auf
<literal>ansi</literal> oder <literal>sco</literal>,
sofern die entfernte Maschine diese Terminaltypen
kennt.</para>
</listitem>
<listitem>
<para>Benutzen Sie einen VT100-Emulator wie
<application>screen</application> auf der
FreeBSD-Console. <application>screen</application>
bietet Ihnen die Möglichkeit, mehrere
gleichzeitige Sitzungen von einem Bildschirm aus
laufen zu lassen. Es ist ein sehr nettes Programm.
Jedes <application>screen</application>-Fenster
verhält sich, wie ein VT100-Terminal, weshalb die
Variable TERM am entfernten Ende auf
<literal>vt100</literal> gesetzt werden
sollte.</para>
</listitem>
<listitem>
<para>Installieren Sie den Eintrag
<literal>cons25</literal> in der Bildschirmdatenbank
der entfernten Maschine. Wie das zu geschehen hat,
hängt vom Betriebssystem der entfernten Maschine
ab. Das Systemadministrationshandbuch für das
entfernte System sollte Ihnen hierbei helfen
können.</para>
</listitem>
<listitem>
<para>Starten Sie einen X-Server auf der FreeBSD-Seite
und benutzen Sie einen X-basierten Terminalemulator
wie <command>xterm</command> oder
<command>rxvt</command>, um sich auf der entfernten
Maschine einzuloggen. Die Variable TERM auf dem
entfernten Host sollte auf <literal>xterm</literal>
oder <literal>vt100</literal> gesetzt werden.</para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="calcru-negative">
<para>Wieso meldet mein Rechner <errorname>calcru: negative
time...</errorname>?</para>
</question>
<answer>
<para>Dies kann durch verschiedene Hardware- oder
Softwareprobleme in Verbindung mit Interrupts verursacht
werden. Das kann aufgrund von Fehlern sein, aber es kann
auch durch die Eigenarten bestimmter Geräte
passieren. TCP/IP über die parallele Schnittstelle
mit einer großen MTU laufen zu lassen, ist ein
sicherer Weg, um dieses Problem hervorzurufen.
Grafikbeschleuniger können es auch verursachen. In
diesem Fall sollten Sie zunächst die
Interrupteinstellungen der Karte
überprüfen.</para>
<para>Ein Seiteneffekt dieses Problems sind Prozesse, die
mit der Meldung <quote>SIGXCPU exceeded cpu time
limit</quote> abbrechen.</para>
<para>Für FreeBSD 3.0 und spätere ab dem 29. Nov.
1998: Falls das Problem nicht anders gelöst werden
kann, besteht die Lösung darin, diese sysctl-Variable
zu setzen:</para>
<screen>&prompt.root; <userinput>sysctl -w kern.timecounter.method=1</userinput></screen>
<para>Das bedeutet zwar Performanceeinbußen, aber in
Anbetracht der Ursache für dieses Problem werden Sie
das wahrscheinlich nicht bemerken. Fall das Problem
weiter bestehen bleibt, lassen sie die sysctl-Variable auf
1 stehen und setzen Sie die Option
<literal>NTIMECOUNTER</literal> im Kernel auf immer
höhere Werte. Wenn Sie irgendwann
<literal>NTIMECOUNTER=20</literal> erreicht haben sollten,
ist das Problem nicht gelöst. Die Interrupts auf
Ihrer Maschine sind für eine verläßliche
Zeiterhaltung nicht zu gebrauchen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="pcm0-not-found">
<para>Ich erhalte die Meldung <errorname>pcm0 not
found</errorname> oder meine Soundkarte wird als
<devicename>pcm1</devicename> eingebunden, obwohl in meiner
Kernelkonfiguration <literal>device pcm0</literal>
steht. Was ist passiert?</para>
</question>
<answer>
<para>Dieser Effekt tritt auf, wenn Sie FreeBSD 3.X und eine
PCI Soundkarte haben. Das Gerät
<devicename>pcm0</devicename> ist für ISA Soundkarten
reserviert; wenn Sie eine PCI Soundkarte haben, werden Sie
diese Meldung erhalten und Ihre Karte wird als
<devicename>pcm1</devicename> eingebunden.</para>
<note>
<para>Sie können das Problem nicht lösen, indem
Sie einfach in der Konfigurationsdatei für Ihnen
Kernel die Zeile <literal>device pcm1</literal>
eintragen. Wenn Sie dies tun, wird
<devicename>pcm1</devicename> für ISA-Karten
reserviert und Ihre PCI-Karte wird zu
<devicename>pcm2</devicename>. Zusätzlich erhalten
Sie den Hinweis <errorname>pcm1 not
found</errorname>.</para>
</note>
<para>Wenn Sie eine PCI Sounkarte haben, müssen Sie das
Gerät <devicename>snd1</devicename> statt des
üblichen <devicename>snd0</devicename>
verwenden:</para>
<screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV snd1</userinput></screen>
<note>
<para>Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in <filename>/dev</filename> erstellt.</para>
</note>
<para>Dieses Problem tritt in FreeBSD 4.X nicht mehr auf, da
große Anstrengungen unternommen wurden, diese
Version <emphasis>PnP-orientiert</emphasis> zu machen. In
FreeBSD 4.X ist das Gerät
<devicename>pcm0</devicename> nicht mehr für
ISA-Karten reserviert.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="pnp-not-found">
<para>Warum wird meine PnP-Karte nicht mehr (oder nur noch als
<literal>unknown</literal>) erkannt, seit ich FreeBSD 4.X
benutze?</para>
</question>
<answer>
<para>FreeBSD 4.X ist deutlich
<emphasis>PnP-orientierter</emphasis> und das führt
leider dazu, daß einige PnP-Geräte (wie z.B.
Soundkarten und interne Modems) nicht mehr funktionieren,
obwohl Sie von FreeBSD 3.X noch erkannt wurden.</para>
<para>Die Gründe für dieses Verhalten werden in
der unten zitierten Mail von Mail von Peter Wemm
erklärt. Diese Mail stammt von der Mailingliste
freebsd-questions und war eine Antwort auf eine Frage
bezüglich eines internen Modem, das nach dem Update
auf FreeBSD 4.X nicht mehr erkannt wurde.</para>
<note>
<para>Die mit <literal>[]</literal> gekennzeichneten Kommentare
wurden eingefügt, um an einigen Stellen die Bezüge
klarstellen.</para>
</note>
<blockquote>
<para>Das PnP-BIOS hat es [das Modem] vorkonfiguriert und
es dann im Adreßraum liegenlassen, daher haben es
die alten ISA-Erkennungsroutinen [in 3.X]
<quote>gefunden</quote>.</para>
<para>In 4.0 sind die ISA-Routinen deutlich
PnP-orientierter. Es war möglich [in 3.X],
daß eine ISA-Erkennungsroutinen ein
<quote>zugelaufenes</quote> Gerät fand;
während die PnP-Treiber zwar die ID erkannten, das
Gerät aber wegen des Ressourcekonfliktes nicht
benutzen konnten. Daher werden die programmierbaren
Karten zunächst einmal abgeschaltet, um diese
doppelte Erkennung vermeiden zu können. Das
bedeutet allerdings auch, daß die Treiber die
PnP-ID kennen muß, um PnP-Hardware
unterstützen zu können. Wir haben uns
vorgenommen, den Benutzern eine einfachere
Möglichkeit zur Manipulation dieser Informationen
zur Verfügung zu stellen.</para>
</blockquote>
<para>Damit Ihr Gerät wieder funktioniert, müssen
Sie seine PnP-ID herausfinden und die ID in die Listen
eintragen, die zur Erkennung von PnP-Geräten
genutzten werden. Zu diesem Zweck wird das Gerät mit
&man.pnpinfo.8; analysiert. Das Beispiel zeigt die
Ausgaben von &man.pnpinfo.8; für ein internes
Modem:</para>
<screen>&prompt.root; <userinput>pnpinfo</userinput>
Checking for Plug-n-Play devices...
Card assigned CSN #1
Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff
PnP Version 1.0, Vendor Version 0
Device Description: Pace 56 Voice Internal Plug & Play Modem
Logical Device ID: PMC2430 0x3024a341 #0
Device supports I/O Range Check
TAG Start DF
I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8
[16-bit addr]
IRQ: 4 - only one type (true/edge)</screen>
<para>[weitere TAG Zeilen gestrichen]</para>
<screen>TAG End DF
End Tag
Successfully got 31 resources, 1 logical fdevs
-- card select # 0x0001
CSN PMC2430 (0x3024a341), Serial Number 0xffffffff
Logical device #0
IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8
IRQ 5 0
DMA 4 0
IO range check 0x00 activate 0x01</screen>
<para>Sie benötigen die Information aus der Zeile
<quote>Vendor ID</quote> ganz im Anfang. Die in Klammern
ausgegebene hexadezimale Zahl (0x3024a341 in diesem
Beispiel) ist die PnP ID und die unmittelbar davor
stehende Zeichenkette (PMC2430) ist eine eindeutige
Herstellerkennung.</para>
<para>Benutzen Sie &man.pciconf.8; wenn &man.pnpinfo.8; die Karte
nicht anzeigt. Der Teil der Ausgabe von
<command>pciconf -vl</command> für eine auf dem
Motherboard integrierte Soundkarte sieht zum Beispiel so
aus:</para>
<screen>&prompt.root; <userinput>pciconf -vl</userinput>
chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801AA 8xx Chipset AC'97 Audio Controller'
class = multimedia
subclass = audio</screen>
<para>Sie benötigen die Chip-ID <quote>0x24158086</quote>,
die hinter <varname>chip</varname> aufgeführt ist.</para>
<para>Die Herstellerkennung oder die Chip-ID müssen in die
Datei <filename>/usr/src/sys/isa/sio.c</filename>
eingetragen werden.</para>
<para>Sie sollten zunächst ein Backup von
<filename>sio.c</filename> anlegen, falls irgendwas
schiefgehen sollte. Sie werden auch einen Patch erzeugen
müssen, um ihn zusammen mit Ihrem PR einzusenden.
(Sie wollten doch einen PR schreiben, oder etwa nicht?)
Öffnen Sie nun <filename>sio.c</filename> mit einem
Editor und suchen Sie nach der Zeile</para>
<programlisting>
static struct isa_pnp_id sio_ids[] = {
</programlisting>
<para>und blättern Sie dann nach unten, um die passende
Stelle für Ihr Gerät zu finden. Unten finden
Sie Beispiel für die Einträge, diese sind nach
der Herstellerkennung sortiert. Diese sollte in dem
Kommentar auf der rechten Seite aufgenommen werden, dazu
kommt die Gerätebeschreibung (<emphasis>Device
Description</emphasis>) aus der Ausgabe von
&man.pnpinfo.8;:</para>
<programlisting>
{0x0f804f3f, NULL}, /* OZO800f - Zoom 2812 (56k Modem) */
{0x39804f3f, NULL}, /* OZO8039 - Zoom 56k flex */
{0x3024a341, NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */
{0x1000eb49, NULL}, /* ROK0010 - Rockwell ? */
{0x5002734a, NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */
</programlisting>
<para>Fügen Sie die hexadezimale Gerätekennung an
der richtigen Stelle ein, speichern Sie die Datei ab,
erzeugen Sie einen neuen Kernel und starten Sie Ihr System
neu. Ihr Gerät sollte nun wie bei FreeBSD 3.X als
<literal>sio</literal> Gerät erkannt werden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="nlist-failed">
<para>Warum erhalte ich die Meldung <errorname>nlist
failed</errorname>, wenn ich Programme wie
<command>top</command> oder <command>systat</command>
benutze?</para>
</question>
<answer>
<para>Das Programm sucht nach einem speziellen Symbol im
Kernel, kann es aber aus irgendeinem Grunde nicht finden.
Dieser Fehler wird von einem dieser Probleme
verursacht:</para>
<itemizedlist>
<listitem>
<para>Ihr Kernel und die sonstigen Programme (das
<quote>Userland</quote>) sind nicht mehr auf dem
gleichen Stand. Mit anderen Worten, Sie haben zwar
einen neuen Kernel erzeugt, aber kein
<maketarget>installworld</maketarget> (oder
umgekehrt); darum weicht die Symboltabelle von dem
ab, was die Anwendung erwartet. Wenn dies der Fall ist,
müssen Sie lediglich die noch fehlenden Schritte
des Upgrades durchführen. Die richtige
Vorgehensweise kann
<filename>/usr/src/UPDATING</filename> entnommen
werden.</para>
</listitem>
<listitem>
<para>Um Ihren Kernel zu laden, benutzen Sie nicht
<command>/boot/loader</command>, sondern laden ihn
direkt mit boot2 (siehe &man.boot.8;). Es ist zwar
nicht immer ein Fehler,
<command>/boot/loader</command> zu umgehen; allerdings
ist er in der Regel besser dazu geeignet, die Symbole des
Kernels für normale Anwendungen verfügbar zu
machen.</para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="connection-delay">
<para>Wieso dauert es so lange, bis eine Verbindung
(&man.ssh.1; oder &man.telnet.1;) aufgebaut wird?</para>
</question>
<answer>
<para>Das Symptom: Nach dem Aufbau des TCP-Verbindung
vergeht einige Zeit, bis endlich die Abfrage des
Paßwortes (bzw. der Login-Prompt bei Telnet)
erscheint.</para>
<para>Das Problem: In den meisten Fällen versucht der
Server in der Zwischenzeit, die IP-Adresse des Clients in
einen Rechnernamen zu übersetzen. Viele Server
(darunter die Telnet und SSH Server von FreeBSD) machen
das, um den Hostnamen z.B. für spätere
Verwendung durch den Systemadministrator in eine
Protokolldatei schreiben zu können.</para>
<para>Die Lösung: wenn das Problem bei jedem Server
auftritt, den Sie von Ihrem Computer (dem Client)
ansprechen, dann wird das Problem vom Client verursacht.
Wenn das Problem aber nur auftritt, wenn jemand Ihren
Rechner (den Server) anspricht, dann liegt die Ursache
beim Server.</para>
<para>Wenn das Problem vom Client verursacht wird,
müsssen Sie die Einträge im DNS korrigieren,
damit der Server Ihre IP-Adresse übersetzen kann.
Wenn das Problem in Ihrem lokalen Netzwerk auftritt,
sollten Sie es als Problem des Servers behandeln und
weiterlesen; wenn es allerdings im Internet auftritt,
werden Sie sich wahrscheinlich an Ihrem ISP wenden
müssen, damit dieser das Problem für Sie
korrigiert.</para>
<para>Wenn das Problem vom Server verursacht wird und Sie
sich in einem lokalen Netzwerk befinden, dann müssen
Sie Ihren Server so konfigurieren, daß er die lokal
genutzten IP-Adressen in Rechnernamen übersetzen kann.
Weitere Informationen erhalten Sie in den Onlinehilfen zu
&man.hosts.5; und &man.named.8;. Wenn dieses Problem im
Internet auftritt, könnte die Ursache auch darin
liegen, daß die Namensauflösung auf dem Server
nicht funktioniert. Versuchen Sie, einen anderen
Hostnamen wie z.B. <hostid>www.yahoo.com</hostid>
aufzulösen. Wenn das nicht funktioniert, liegt das
Problem bei Ihrem System.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="stray-irq">
<para>Was bedeutet <errorname>stray IRQ</errorname>?</para>
</question>
<answer>
<para>Stray IRQs sind ein Zeichen für Probleme bei der
Behandlung von Hardware-IRQs. Sie werden meistens von
Geräten verursacht, die ihren Interrupt Request
zurückziehen, obwohl gerade der interrupt request
acknowledge-Zyklus läuft.</para>
<para>Sie können drei Dinge tun:</para>
<itemizedlist>
<listitem>
<para>Ertragen Sie die Warnungen. Sie erhalten nur die
ersten 5 für jeden IRQ, alle anderen werden
unterdrückt.</para>
</listitem>
<listitem>
<para>Eliminieren Sie die Meldungen, indem Sie in
<function>isa_strayintr()</function> den Wert 5 auf 0
ändern, um alle Meldungen zu
unterdrücken.</para>
</listitem>
<listitem>
<para>Eliminieren Sie die Meldungen, indem Sie Hardware
für den Parallelport installieren, die IRQ 7
nutzt und vom PPP Treiber verwendet wird (das passiert
auf den meisten Systemen), und installieren Sie eine
IDE-Platte oder andere Hardware sowie einen dazu
passenden Treiber, um IRQ 15 zu nutzen.</para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="file-table-full">
<para>Warum sehe ich in der Ausgabe von dmesg häufig
die Meldung <errorname>file: table is
full</errorname>?</para>
</question>
<answer>
<para>Diese Fehlermeldung besagt, daß Sie die zur
Verfügung stehenden File-Handles des Systems
verbraucht haben. Was das genau bedeutet und wie Sie
dieses Problem lösen können, steht im Abschnitt
<ulink
url="../handbook/configtuning-kernel-limits.html#KERN-MAXFILES">kern.maxfiles</ulink>
im Kapitel <ulink
url="../handbook/configtuning-kernel-limits.html">Anpassung
der Kernelkonfiguration</ulink> des Handbuchs.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="laptop-clock-skew">
<para>Warum ist die Uhrzeit auf meinem Laptop immer
falsch?</para>
</question>
<answer>
<para>Ihr Laptop verfügt über mehr als eine Uhr
und FreeBSD benutzt leider die falsche.</para>
<para>Starten Sie &man.dmesg.8; und achten Sie auf die
Zeilen, in denen das Wort <literal>Timecounter</literal>
vorkommt. Die von FreeBSD benutzte Uhr steht in der
letzten Zeile, mit an Sicherheit grenzender
Wahrscheinlichkeit wird es <literal>TSC</literal>
sein.</para>
<screen>&prompt.root; <userinput>dmesg | grep Timecounter</userinput>
Timecounter "i8254" frequency 1193182 Hz
Timecounter "TSC" frequency 595573479 Hz</screen>
<para>Sie können das überprüfen, indem Sie
den Wert der Systemvariablen
<varname>kern.timecounter.hardware</varname>
abfragen.</para>
<screen>&prompt.root; <userinput>sysctl kern.timecounter.hardware</userinput>
kern.timecounter.hardware: TSC</screen>
<para>Es ist durchaus möglich, daß das BIOS die
TSC Uhr ändert, um beispielsweise den CPU-Takt zu
während des Batteriebetrieb zu ändern, oder im
Stromsparmodus; leider bemerkt FreeBSD diese
Änderungen nicht und daher scheint die Uhr falsch zu
gehen.</para>
<para>In diesem Beispiel ist die Uhr
<literal>i8254</literal> ebenfalls verfügbar; um sie
auszuwählen, muß ihr Name in die Systemvariable
<varname>kern.timecounter.hardware</varname> geschrieben
werden.</para>
<screen>&prompt.root; <userinput>sysctl -w kern.timecounter.hardware=i8254</userinput>
kern.timecounter.hardware: TSC -> i8254</screen>
<para>Die Uhrzeit Ihres Laptops sollte nun genauer
funktionieren.</para>
<para>Damit diese Änderung automatisch beim Start des
Systems durchgeführt wird, müssen Sie die
folgende Zeile in die
<filename>/etc/sysctl.conf</filename> eintragen.</para>
<programlisting>kern.timecounter.hardware=i8254</programlisting>
</answer>
</qandaentry>
<qandaentry>
<question id="null-null">
<para>Warum erkennt mein Laptop PC-Cards nicht?</para>
</question>
<answer>
<para>Dieses Problem tritt häufig auf Laptops mit mehreren
Betriebssystemen auf. Einige nicht-BSD Betriebssysteme lassen
die Hardware in einem inkonsistenten Zustand. Die Karte wird
dann von <command>pccardd</command> als
<errorname>"(null)""(null)"</errorname> anstelle des
tatsächlichen Modells gefunden.</para>
<para>Um dies zu beheben, müssen Sie die Hardware
zurücksetzen, das heißt der PC-Card Einschub
muß stromlos sein. Gehen Sie dazu nicht in den Standby-
oder Suspend-Modus und stellen Sie sicher, daß der Laptop
wirklich ausgeschaltet ist. Warten Sie einen Moment und booten
dann, Ihre PC-Card sollte jetzt funktionieren.</para>
<para>Einige Laptops schalten sich nicht wirklich aus. Wenn der
obige Vorschlag nichts genutzt hat, entfernen Sie bitte die
Batterie, warten einen Moment und booten erneut.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="boot-read-error">
<para>Wieso hängt sich FreeBSD nach dem BIOS-Bildschirm
mit der Meldung <errorname>Read error</errorname>
auf?</para>
</question>
<answer>
<para>Der Bootloader von FreeBSD erkennt die Geometrie Ihrer
Festplatte nicht richtig. Sie müssen die Geometrie
manuell festlegen, wenn sie mit fdisk FreeBSD-Bereiche
erzeugen oder ändern.</para>
<para>Die richtigen Werte für die Geometrie können
Sie im BIOS des Rechners ablesen. Achten Sie auf die
Anzahl der Zylinder, Köpfe und Sektoren für Ihre
Festplatte.</para>
<para>Im fdisk von &man.sysinstall.8; müssen Sie
<keycap>G</keycap> eingeben, um die Geometrie zu
definieren.</para>
<para>Sie erhalten eine Dialogbox, in der Sie die Anzahl der
Zylinder, Köpfe und Sektoren eingeben können.
Verwenden Sie die Angaben des BIOS und setzen Sie
Schrägstriche zwischen die Zahlen.</para>
<para>5000 Zylinder, 250 Köpfe and 60 Sektoren
würden also als <userinput>5000/250/60</userinput>
eingegeben.</para>
<para>Schließen Sie die Eingabe mit <keycap>Enter</keycap>
ab und drücken Sie <userinput>W</userinput>, um die neue
Partitionstabelle auf die Festplatte schreiben zu
lassen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="bootmanager-restore">
<para>Ein anderes Betriebssystem hat meinen Bootmanager
zerstört. Wie kann ich ihn wiederherstellen?</para>
</question>
<answer>
<para>Starten Sie &man.sysinstall.8; und wählen Sie
Configure, dann Fdisk. Wählen Sie die Platte, auf
der sich der Boot Manager befand, mit der
<keycap>Leertaste</keycap> aus. Drücken Sie
<keycap>W</keycap>, um die Änderungen auf die Platten
schreiben zu lassen. Nun erscheint eine Abfrage, welcher
Bootmanager installiert werden soll. Wählen Sie
diesen an und er wird wieder installiert.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="indefinite-wait-buffer">
<para>Was soll mir die Meldung <errorname>swap_pager: indefinite
wait buffer:</errorname> sagen?</para>
</question>
<answer>
<para>Ein Programm wollte Speicher auf Platte auslagern, und
dieser Vorgang konnte nicht innerhalb von 20 Sekunden
durchgeführt werden. Mögliche Gründe sind
defekte Blöcke auf der Platte, falsche oder
fehlerhafte Verkabelung sowie Probleme mit anderen
Komponenten, die am Zugriff auf die Festplatte beteiligt
sind. Wenn die Festplatte selbst fehlerhaft sind, sollten
Sie entsprechende Meldungen in
<filename>/var/log/messages</filename> und den Ausgaben
von <command>dmesg</command> finden. Andernfalls sollten
Sie die Kabel und Verbindungen
überprüfen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="udma-icrc">
<para>Was sind <quote>UDMA ICRC</quote> Fehler und wie behebe ich
sie?</para>
</question>
<answer>
<para>Der &man.ata.4;-Treiber meldet <quote>UDMA ICRC</quote>
Fehler wenn eine DMA-Übertragung zu oder von einem
Laufwerk fehlgeschlagen ist. Der Treiber versucht die
Übertragung mehrmals durchzuführen und schaltet,
wenn die Versuche fehlschlagen, vom DMA-Modus auf den
langsameren PIO-Modus um.</para>
<para>Der Fehler kann viele Ursachen haben, häufig ist ein
Kabel kaputt oder die Geräte sind falsch verkabelt.
Prüfen Sie, ob die ATA-Kabel unbeschädigt sind und
für den verwendeten Ultra-DMA-Modus tauglich sind. Ebenso
müssen Wechselrahmen für den verwendeten Modus geeignet
sein. Stellen Sie sicher, daß alle Kabel fest
angeschlossen sind. Es gab auch schon Probleme, wenn ein altes
Laufwerk zusammen mit einem Ultra-DMA-66 oder einem schnelleren
Laufwerk auf einem Kanal betrieben wurde. Es kann aber auch
sein, dass das Laufwerk kaputt ist. Die meisten Hersteller
stellen Test-Programme für ihre Laufwerke zur
Verfügung. Überprüfen Sie damit Ihr Laufwerk und
wenn nötig, sichern Sie Ihre Daten und ersetzen das
Laufwerk.</para>
<para>&man.atacontrol.8; zeigt für jedes ATA-Gerät den
verwendeten DMA- oder PIO-Modus an. Das Kommando
<command>atacontrol mode
<replaceable>Kanal</replaceable></command>
zeigt die auf einem Kanal verwendeten Modi (die Kanäle
werden von <literal>0</literal> an nummeriert).</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="commercial">
<title>Kommerzielle Anwendungen</title>
<note>
<para>Dieser Abschnitt ist immer noch sehr dürftig, aber
wir hoffen natürlich, daß Unternehmen einen Beitrag
leisten werden! :) Die FreeBSD-Gruppe hat keinerlei
finanzielle Interessen an einem der hier aufgelisteten
Unternehmen, sondern listet sie lediglich als
öffentlichen Service auf (und ist der Meinung, daß
ein kommerzielles Interesse an FreeBSD sehr positive
Einfluß auf ein langfristiges Bestehen von FreeBSD haben
kann). Wir möchten Anbieter kommerzieller Software dazu
aufrufen, ihren Eintrag hier aufnehmen zu lassen. Auf <ulink
url="http://www.de.FreeBSD.org/commercial/commercial.html">der
Anbieter-Seite</ulink> finden Sie eine längere
Liste.</para>
</note>
<qandaset>
<qandaentry>
<question id="officesuite">
<para>Wo bekommen ich FreeBSD-Versionen der klassischen
Büro-Anwendungen?</para>
</question>
<answer>
<itemizedlist>
<listitem>
<para>Die <ulink
url="http://www.freebsdmall.com/">FreeBSD Mall</ulink>
bietet eine FreeBSD-Version von <ulink
url="http://www.vistasource.com/">VistaSource </ulink>
ApplixWare 5 an.</para>
<para>ApplixWare ist eine umfassende Sammlung von
Büroanwendungen, die eine Textverarbeitung, eine
Tabellenkalkulation, ein Programm für
Vorträge, ein Vektorzeichenprogramm und diverse
andere Programme beinhaltet.</para>
<para>Die FreeBSD-Version von ApplixWare ist Bestandteil
der BSD Desktop Edition, die von FreeBSD Mall
vertrieben wird.</para>
</listitem>
<listitem>
<para>Die Linux-Version von <ulink
url="http://www.sun.com/staroffice/">StarOffice</ulink>
läuft unter FreeBSD problemlos. Die einfachste
Möglichkeit zur Installation der Linux-Version
von Staroffice ist die Benutzung der <ulink
url="../handbook/ports.html">FreeBSD Ports</ulink>.
Zukünftige Versionen der im Sourcecode vorliegenden
Variante <ulink
url="http://www.openoffice.org/">OpenOffice</ulink>
sollten auch problemlos funktionieren.</para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="motif">
<para>Woher kann ich Motif für FreeBSD
bekommen?</para>
</question>
<answer>
<para>Der Quelltext für Motif 2.1.30 wurde von der
<quote>Open Group</quote> herausgegeben. Sie können
entweder das Package <literal>open-motif</literal>
installieren oder es mit dem entsprechenden Port selbst
compilieren. Weitere Informationen über die
Benutzung der Ports erhalten Sie im <ulink
url="../handbook/ports.html">Kapitel Ports des
Handbuchs</ulink>.</para>
<note>
<para>Die Open Motif Distribution darf nur weitergegeben
werden, wenn sie auf einem <ulink
url="http://www.opensource.org"> Open Source</ulink>
Betriebssystem benutzt wird.</para>
</note>
<para>Weiterhin gibt es auch kommerzielle Motif-Paket, die
zwar nicht kostenlos sind, aber dafür auch mit
<quote>closed source</quote> Software benutzt werden
dürfen. Um die günstigste ELF-Motiv 2.1.20
Distribution für FreeBSD (entweder i386 oder Alpha)
zu bekommen, wenden Sie sich bitte an <link
linkend="apps2go">Apps2go</link>.<anchor
id="apps2go"></para>
<para>Es gibt zwei Distributionen, die <quote>development
edition</quote> und die <quote>runtime edition</quote>
(wesentlich günstiger). Diese Distributionen
enthalten:</para>
<itemizedlist>
<listitem>
<para>OSF/Motif manager, xmbind, panner, wsm.</para>
</listitem>
<listitem>
<para>Development-Kit mit uil, mrm, xm, xmcxx, Include-
und Imake-Dateien.</para>
</listitem>
<listitem>
<para>Statische und dynamische ELF-Bibliotheken (zur
Benutzung mit FreeBSD 3.0 und höher).</para>
</listitem>
<listitem>
<para>Demonstrations-Applets.</para>
</listitem>
</itemizedlist>
<para>Achten Sie darauf, daß Sie bei der Bestellung
angeben, daß Sie die FreeBSD-Version von Motif
möchten (vergessen Sie auch nicht, die Architektur
anzugeben)! Von <emphasis>Apps2go</emphasis> werden auch
Versionen für NetBSD und OpenBSD verkauft. Dieses
Produkt ist zur Zeit nur zum Download per FTP
verfügbar.</para>
<variablelist>
<varlistentry>
<term>Weitere Informationen</term>
<listitem>
<para><ulink url="http://www.apps2go.com/">Apps2go
Web-Seite</ulink></para>
</listitem>
</varlistentry>
<varlistentry>
<term>oder</term>
<listitem>
<para><email>sales@apps2go.com</email> oder
<email>support@apps2go.com</email></para>
</listitem>
</varlistentry>
<varlistentry>
<term>oder</term>
<listitem>
<para>Telefon (817) 431 8775 oder +1 817
431-8775</para>
</listitem>
</varlistentry>
</variablelist>
<para>Eine Motif 2.1-Distribution für FreeBSD im ELF-
oder a.out-Format ist bei <link linkend="metrox">Metro
Link</link> erhältlich.</para>
<para>Diese Distribution enthält:</para>
<itemizedlist>
<listitem>
<para>OSF/Motif manager, xmbind, panner, wsm.</para>
</listitem>
<listitem>
<para>Development-Kit mit uil, mrm, xm, xmcxx, Include-
und Imake-Dateien.</para>
</listitem>
<listitem>
<para>Statische und dynamische Bibliotheken (verlangen
Sie ELF zur Verwendung unter FreeBSD ab 3.0 und oder
a.out zur Verwendung unter FreeBSD bis
einschließlich 2.2.8).</para>
</listitem>
<listitem>
<para>Demonstrations-Applets.</para>
</listitem>
<listitem>
<para>Vorformatierte Manualpages.</para>
</listitem>
</itemizedlist>
<para>Achten Sie darauf, bei der Bestellung anzugeben,
daß Sie die FreeBSD-Version von Motiv möchten!
<emphasis>Metro Link</emphasis> vertreibt auch Versionen
für Linux. Dieses Produkt ist entweder als CDROM
oder zum Download per FTP erhältlich.</para>
<para>Eine Motif 2.0 Distribution für FreeBSD im
a.out-Format gibt es bei <link linkend="xig">Xi
Graphics</link>.</para>
<para>Diese Distribution enthält:/</para>
<itemizedlist>
<listitem>
<para>OSF/Motif manager, xmbind, panner, wsm.</para>
</listitem>
<listitem>
<para>Development-Kit mit uil, mrm, xm, xmcxx, Include-
und Imake-Dateien.</para>
</listitem>
<listitem>
<para>Statische und dynamische Bibliotheken (zur
Verwendung unter FreeBSD 2.2.8 und
frühere).</para>
</listitem>
<listitem>
<para>Demonstrations-Applets.</para>
</listitem>
<listitem>
<para>Vorformatierte Manualpages.</para>
</listitem>
</itemizedlist>
<para>Achten Sie darauf, bei der Bestellung anzugeben,
daß Sie die FreeBSD-Version von Motiv möchten!
<emphasis>Xi Graphics</emphasis> verkauft auch Versionen
für BSDI und Linux. Dieses Produkt ist derzeit ein
Satz von vier Disketten... zukünftig wird es eine
einheitliche CD-Distribution geben, wie beim CDE.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="cde">
<para>Woher kann ich CDE für FreeBSD bekommen?</para>
</question>
<answer>
<para><link linkend="xig">Xi Graphics</link> hat einmal CDE
für FreeBSD verkauft, tut es aber nicht mehr.</para>
<para><ulink url="http://www.kde.org/">KDE</ulink> ist ein
Open-Source X11-Desktop, das CDE in vielen Punkten
ähnelt. Eventuell gefällt Ihnen auch das "Look
and Feel" von <ulink
url="http://www.xfce.org/">xfce</ulink>. KDE und xfce
sind über das <ulink
url="http://www.de.FreeBSD.org/ports/">Ports-System</ulink>
von FreeBSD verfügbar.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="commercial-xserver">
<para>Gibt es irgendwelche kommerzielle leistungsfähige
X-Server?</para>
</question>
<answer>
<para>Ja, <ulink url="http://www.xig.com/">Xi
Graphics</ulink> und <ulink
url="http://www.metrolink.com/">Metro Link</ulink>
vertreiben beschleunigte X-Produkte für FreeBSD und
andere Intel-basierte Systeme.</para>
<para>Das Angebot von Metro Link besteht aus einem
leistungsfähigen X-Server, der einfache Konfiguration
unter Verwendung von Werkzeugen aus der
FreeBSD-Paketsammlung und Unterstützung für den
parallelen Einsatz mehrerer Videokarten bietet. Es wird
nur in binärer Form über ein bequemes
FTP-Download vertrieben. Ganz zu schweigen davon,
daß das Angebot von Metro Link zum sehr
günstigen Preis von 39 Dollar erhältlich
ist.<anchor id="metrox"></para>
<para>Metro Link bietet auch Motif für FreeBSD sowohl
im ELF-, als auch im a.out-Format an (siehe oben).</para>
<variablelist>
<varlistentry>
<term>Weitere Informationen</term>
<listitem>
<para><ulink url="http://www.metrolink.com/">Metro
Link Web-Seite</ulink></para>
</listitem>
</varlistentry>
<varlistentry>
<term>oder</term>
<listitem>
<para><email>sales@metrolink.com</email> oder
<email>tech@metrolink.com</email></para>
</listitem>
</varlistentry>
<varlistentry>
<term>oder</term>
<listitem>
<para>Telefon (954) 938-0283 oder +1 954
938-0283</para>
</listitem>
</varlistentry>
</variablelist>
<para>Das Angebot von Xi Graphics besteht aus einem
leistungsfähigen X-Server, der einfache Konfiguration
und Unterstützung für den parallelen Einsatz
mehrerer Videokarten bietet. Es wird in binärer Form
in einer einheitlichen Diskettendistribution für
FreeBSD und Linux vertrieben. XI Graphics bietet auch
leistungsfähige X-Server, die auf die
Unterstützung von Laptops zugeschnitten sind.
<anchor id="xig"></para>
<para>Es gibt ein kostenloses
<quote>Kompatibilitäts-Demo</quote> der Version
5.0.</para>
<para>Xi Graphics vertreibt auch Motif und CDE für
FreeBSD (siehe oben).</para>
<variablelist>
<varlistentry>
<term>Weitere Informationen</term>
<listitem>
<para><ulink url="http://www.xig.com/">Xi Graphics
Web-Seite</ulink></para>
</listitem>
</varlistentry>
<varlistentry>
<term>oder</term>
<listitem>
<para><email>sales@xig.com</email> oder
<email>support@xig.com</email></para>
</listitem>
</varlistentry>
<varlistentry>
<term>oder</term>
<listitem>
<para>Telefon (800) 946 7433 oder +1 303
298-7478.</para>
</listitem>
</varlistentry>
</variablelist>
</answer>
</qandaentry>
<qandaentry>
<question id="database-systems">
<para>Gibt es irgendwelche Datenbanksysteme für
FreeBSD?</para>
</question>
<answer>
<para>Ja! Lesen Sie den Abschnitt <ulink
url="http://www.de.FreeBSD.org/commercial/software_bycat.html#CATEGORY_DATABASE">kommerzielle
Anbieter</ulink> auf der FreeBSD-Web-Seite.</para>
<para>Schauen Sie auch im Abschnitt <ulink
url="http://www.de.FreeBSD.org/ports/databases.html">Datenbanken</ulink>
der Ports-Sammlung nach.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="oracle-support">
<para>Kann ich Oracle unter FreeBSD laufen lassen?</para>
</question>
<answer>
<para>Ja. Die folgenden Seiten beschreiben genau, wie
Linux-Oracle unter FreeBSD einzustellen ist:</para>
<itemizedlist>
<listitem>
<para><ulink
url="http://www.scc.nl/~marcel/howto-oracle.html">http://www.scc.nl/~marcel/howto-oracle.html</ulink></para>
</listitem>
<listitem>
<para><ulink
url="http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd">http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd</ulink></para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="applications">
<title>Benutzerprogramme</title>
<qandaset>
<qandaentry>
<question id="user-apps">
<para>Nun, wo sind die ganzen Benutzerprogramme?</para>
</question>
<answer>
<para>Werfen Sie bitte einen Blick auf <ulink
url="http://www.de.FreeBSD.org/ports/">die
Ports-Seite</ulink>, um Informationen über die nach
FreeBSD portierten Softwarepakete zu erhalten. Die Liste
enthält zur Zeit &os.numports; Einträge und
wächst täglich. Schauen Sie hier also
öfter nach oder melden Sie sich bei der <link
linkend="mailing">Mailingliste</link><literal>freebsd-announce</literal>
an, um sich regelmäßig über
Änderungen zu informieren.</para>
<para>Die meisten Ports sind für die Zweige 2.2, 3.0
und 4.X erhältlich; viele von ihnen sollten auch auf
2.1.X-Systemen laufen. Jedesmal, wenn ein FreeBSD-Release
erstellt wird, wird auch ein Snapshot des Port-Baumes vom
Zeitpunkt des Releases in das Verzeichnis
<filename>ports/</filename> eingefügt.</para>
<para>Wir unterstützen auch das Konzept von
<quote>Packages</quote> - im Grunde genommen nicht mehr
als gezippte Binärdistributionen mit ein wenig
zusätzlicher Intelligenz zur Ermöglichung
angepaßter Installationen. Ein Package kann leicht
installiert und wieder deinstalliert werden, ohne,
daß man etwas über wissen muß, welche
Dateien es enthält.</para>
<para>Benutzen Sie das Paketinstallationsmenü in
<filename>/stand/sysinstall</filename> (unter dem
Menüpunkt post-configuration) oder führen Sie den
Befehl &man.pkg.add.1; mit den speziellen
Paketdateien aus, die Sie installieren möchten.
Paketdateien können für gewöhnlich an der
Endung <filename>.tgz</filename> erkannt werden und
diejenigen, die über eine CDROM-Distribution
verfügen, haben auf ihrer CD ein Verzeichnis
<filename>packages/All</filename>, das solche Dateien
enthält. Für verschiedene FreeBSD-Versionen
können sie von folgenden Adressen auch über das
Netz heruntergeladen werden:</para>
<variablelist>
<varlistentry>
<term>für 2.2.8-RELEASE/2.2.8-STABLE</term>
<listitem>
<para><ulink
url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/</ulink></para>
</listitem>
</varlistentry>
<varlistentry>
<term>für 3.X-RELEASE/3.X-STABLE</term>
<listitem>
<para><ulink
url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/</ulink></para>
</listitem>
</varlistentry>
<varlistentry>
<term>für 4.X-RELEASE/4-STABLE</term>
<listitem>
<para><ulink
url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/</ulink></para>
</listitem>
</varlistentry>
<varlistentry>
<term>für 5.0-CURRENT</term>
<listitem>
<para><ulink
url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/">ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/</ulink></para>
</listitem>
</varlistentry>
</variablelist>
<para>oder von Ihrem nächstgelegenen Mirror.</para>
<para>Beachten Sie, daß nicht alle Ports als Package
verfügbar sind, da ständig neue hinzugefügt
werden. Es ist immer eine gute Idee, sich
regelmäßig auf der <ulink
url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/">ftp.de.FreeBSD.org</ulink>
Masterseite darüber zu informieren, welche Packages
verfügbar sind.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="missing-libcso30">
<para>Wo finde ich libc.so.3.0?</para>
</question>
<answer>
<para>Sie versuchen, ein Package für 2.2 oder neuer auf
einem 2.1.X-System laufen zu lassen. Bitte lesen Sie den
vorherigen Abschnitt und besorgen Sie sich den passenden
Port/das passende Package für Ihr System.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="missing-libcso40">
<para>Wieso erhalte ich die Meldung <errorname>Error: can't
find libc.so.4.0</errorname>?</para>
</question>
<answer>
<para>Sie haben versehentlich ein Package für ein 4.X-
oder 5.X-System heruntergeladen und versucht, es auf einem
2.X- oder 3.X-System zu benutzen. Bitte besorgen Sie sich
die für ihr System korrekte Version des
Packages.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="emul">
<para>Warum produziert ghostscript auf meinem 386/486SX so
viele Fehlermeldungen?</para>
</question>
<answer>
<para>Sie haben keinen mathematischen Co-Prozessor, richtig?
Sie werden den alternativen mathematischen Emulator zu
Ihren Kernel hinzufügen müssen; tun Sie das,
indem Sie die folgende Zeile in Ihre
Kernelkonfigurationsdatei einfügen, wodurch der
Emulator in den Kernel kompiliert wird:</para>
<programlisting>
options GPL_MATH_EMULATE
</programlisting>
<note>
<para>Sie müssen die Option
<symbol>MATH_EMULATE</symbol> hierzu entfernen.</para>
</note>
</answer>
</qandaentry>
<qandaentry>
<question id="sco-socksys">
<para>Wieso werden mir Fehler bei <literal>socksys</literal>
gemeldet, wenn ich eine SCO/iBCS2-Anwendung laufen lasse?
(nur für FreeBSD 3.0 und ältere
Systeme)</para>
</question>
<answer>
<para>Sie müssen zunächst den letzten Abschnitt
der Datei <filename>/etc/sysconfig</filename> (oder
<filename>/etc/rc.conf</filename>) editieren und die
folgende Variable auf <literal>YES</literal>
setzen:</para>
<programlisting>
# Set to YES if you want ibcs2 (SCO) emulation loaded at startup
ibcs2=NO
</programlisting>
<para>Hierdurch wird das Kernelmodul ibcs2 beim Hochfahren
geladen.</para>
<para>Dann müssen Sie /compat/ibcs2/dev so
einrichten:</para>
<screen>lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 X0R@ -> /dev/null
lrwxr-xr-x 1 root wheel 7 Oct 15 22:20 nfsd@ -> socksys
-rw-rw-r-- 1 root wheel 0 Oct 28 12:02 null
lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 socksys@ -> /dev/null
crw-rw-rw- 1 root wheel 41, 1 Oct 15 22:14 spx</screen>
<para>socksys kann einfach auf
<devicename>/dev/null</devicename> zeigen, um open & close
eine reguläre Datei vorzutäuschen. Der code in
-CURRENT wird sich um den Rest kümmern. Dieses
Vorgehen ist wesentlich sauberer, als bisher. Falls Sie
den Treiber <devicename>spx</devicename> für lokale
Socket-X-Verbindungen möchten, definieren Sie
<literal>SPX_HACK</literal>, wenn Sie das System
kompilieren.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="configure-inn">
<para>Wie konfiguriere ich INN (Internet News) für
meine Maschine?</para>
</question>
<answer>
<para>Ein idealer Startpunkt nach der Installation des
Packages oder Ports <filename role="package">news/inn</filename>
ist <ulink
url="http://www.cis.ohio-state.edu/~barr/INN.html">Dave
Barr's INN-Seite</ulink>, wo Sie die INN-FAQ
finden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ms-frontpage">
<para>Welche Version von Microsoft FrontPage sollte ich mir
besorgen?</para>
</question>
<answer>
<para>Benutzen Sie den Port! Im Ports-Verzeichnis gibt es
eine vorbereitete Version von Apache,
<filename role="package">apache13-fp</filename>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="java">
<para>Unterstützt FreeBSD Java?</para>
</question>
<answer>
<para>Ja. Schauen Sie bitte hier <ulink
url="http://www.de.FreeBSD.org/java/">http://www.de.FreeBSD.org/java/</ulink>
nach.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ports-3x">
<para>Warum kann ich manche Ports auf meiner
3.X-STABLE-Maschine nicht erstellen?</para>
</question>
<answer>
<para>Wenn Sie eine FreeBSD-Version benutzen, die deutlich
älter als das aktuelle -CURRENT oder -STABLE ist,
könnte es sein, daß Sie ein Ports-Upgrade-Kit
von <ulink
url="http://www.de.FreeBSD.org/ports/">http://www.de.FreeBSD.org/ports/</ulink>
benötigen. Wenn Sie auf dem neuesten Stand sind,
könnte es sein, daß jemand eine Änderung
des Ports durchgeführt hat, die für -CURRENT
funktioniert, den Port für -STABLE aber unbrauchbar
gemacht hat. Bitte senden Sie einen Fehlerbericht mit dem
Befehl &man.send-pr.1;. Von der Ports-Sammlung
wird nämlich erwartet, daß sie sowohl auf
-CURRENT als auch auf -STABLE funktioniert.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="find-ldso">
<para>Wo finde ich ld.so?</para>
</question>
<answer>
<para>Auf a.out basierende Anwendungen wie der Netscape
Navigator benötigen a.out Bibliotheken. Wenn Sie
eine auf ELF basierende FreeBSD-Version verwenden, werden
diese nicht standardmäßig installiert. In
diesem Fall wird Ihnen das System melden, daß
<filename>/usr/libexec/ld.so</filename> nicht vorhanden
ist. Sie können diese Bibliotheken mit der
Distribution compat22 nachinstallieren. Benutzen Sie dazu
&man.sysinstall.8;. Alternativ können Sie auch die
Quelldateien verwenden:</para>
<screen>&prompt.root; <userinput>cd /usr/src/lib/compat/compat22</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>Wenn Sie bei jedem <command>make world</command> die
aktuellen compat22-Bibliotheken installieren wollen,
müssen Sie in <filename>/etc/make.conf</filename> die
Zeile <varname>COMPAT22=YES</varname> eintragen. Da sich
diese Bibliotheken aber nur sehr selten ändern, ist
dies nicht unbedingt erforderlich.</para>
<para>Lesen Sie auch die ERRATAs für 3.1-R und
3.2-R.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ports-update">
<para>Ich habe die Sourcen aktualisiert, wie aktualisiere
ich jetzt die installierten Ports?</para>
</question>
<answer>
<para>FreeBSD enthält zwar kein Programm, das die
installierten Ports aktualisiert, allerdings existieren
diverse Programme, die diesen Prozeß etwas
vereinfachen. Weiterhin können Sie zusätzliche
Programme installieren, die Sie dabei
unterstützen.</para>
<para>Sie können mit &man.pkg.version.1; ein Script
erzeugen, das die installieren Ports mit einer neueren
Version aus der Ports-Sammlung ersetzt:</para>
<screen>&prompt.root; <userinput>pkg_version -c > <replaceable>/tmp/myscript</replaceable></userinput></screen>
<para>Das so erzeugte Script <emphasis>muß</emphasis>
manuell geändert werden, bevor es benutzt wird.
Neuere Versionen von &man.pkg.version.1; erzwingen dies,
indem sie ein &man.exit.1; an den Anfang des Scripts
setzen.</para>
<para>Sie sollten die Ausgaben des Scripts abspeichern, da
sie Ihnen melden werden, welche Ports von den dem gerade
aktualisierten Port abhängen. Es ist möglich,
daß diese auch aktualisiert werden müssen. Der
typische Fall, in dem ein Update erforderlich ist, ist
eine Änderung der Versionsnummer einer shared
library; in diesem Fall müssen die abhängigen
Ports neu übersetzt werden, damit sie die neue
Library benutzen.</para>
<note>
<para>Ab FreeBSD 5.0 steht die Option
<option>-c</option> in &man.pkg.version.1; nicht
mehr zur Verfügung.</para>
</note>
<para>Falls Sie über genügend freien Plattenplatz
verfügen, können Sie diesen Prozeß mit
<command>portupgrade</command> automatisieren.
<command>portupgrade</command> umfaßt diverse
Programme, die die Arbeit mit Packages erleichtern und ist
als <filename role="package">sysutils/portupgrade</filename>
verfügbar. Da <command>portupgrade</command> in Ruby
geschrieben wurde, wird es wahrscheinlich nie ein Bestandteil
von FreeBSD werden. Allerdings sollte das niemanden davon
abhalten, es trotzdem zu benutzen.</para>
<para>Wenn Ihr System rund um die Uhr läuft, kann es
jede Woche automatisch eine Liste der Ports erzeugen, die
wahrscheinlich aktualisiert werden müssen. Fügen
Sie dazu <literal>weekly_status_pkg_enable="YES"</literal>
in <filename>/etc/periodic.conf</filename> ein.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="minimal-sh">
<para>Warum ist <command>/bin/sh</command> so spartanisch?
Warum benutzt FreeBSD nicht die <command>bash</command>
oder eine ähnliche Shell?</para>
</question>
<answer>
<para>Weil der POSIX-Standard definiert, daß es so
eine Shell geben muß.</para>
<para>Die ausführlichere Antwort: Viele Leute
müssen Shell-Programme schreiben, die auf vielen
verschiedenen Systemen nutzbar sein müssen. Aus
diesem Grund enthält der POSIX-Standard eine sehr
detaillierte Definition der Shell und der Hilfsprogramme.
Die meisten Programme werden für die Bourne Shell
geschrieben; außerdem nutzen mehrere wichtige
Schnittstellen (&man.make.1;, &man.system.3;,
&man.popen.3; und ihre Entsprechungen in höheren
Programmiersprachen wie Perl und Tcl) die Bourne Shell, um
Befehle auszuführen. Da die Bourne Shell an so
vielen Stellen und so häufig genutzt wird, muß
sie die folgenden Anforderungen erfüllen: Schneller
Start, ein klar definiertes Verhalten und ein
möglichst geringer Speicherverbrauch.</para>
<para>Wir haben bei der vorliegenden Implementierung
versucht, möglichst viele dieser Anforderungen zu
erfüllen. Um <command>/bin/sh</command> nicht zu
groß werden zu lasen, haben wir viele der
Annehmlichkeiten der anderen Shells weggelassen. Aus
diesem Grund gibt es in den Ports die luxuriöseren
Shells wie bash, scsh, tcsh und zsh. Vergleichen Sie
einfach mal den Speicherverbrauch der verschiedenen
Shells, indem Sie <command>ps -u</command> aufrufen und
sich die Angaben in den Spalten <quote>VSZ</quote> und
<quote>RSS</quote> ansehen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="netscape-slow-startup">
<para>Wieso dauert es so lange, bis Netscape und Opera
starten?</para>
</question>
<answer>
<para>In den meisten Fällen liegt es daran, daß
Ihre DNS-Einstellungen fehlerhaft sind. Sowohl Netscape
als auch Opera stellen Anfragen an DNS, wenn Sie gestartet
werden. Das Fenster des Browsers erscheint erst, wenn das
Programm eine Antwort erhalten hat oder es festgestellt
hat, daß Ihr System nicht an ein Netzwerk
angeschlossen ist.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="kernelconfig">
<title>Kernelkonfiguration</title>
<qandaset>
<qandaentry>
<question id="make-kernel">
<para>Ich möchte meinen Kernel anpassen. Ist das
schwierig?</para>
</question>
<answer>
<para>Überhaupt nicht! Lesen Sie den <ulink
url="../handbook/kernelconfig.html">Abschnitt zur
Kernelkonfiguration im Handbuch</ulink>.</para>
<note>
<para>Sie sollten einen datierten Snapshot Ihres Kernels
als <filename>kernel.YYMMDD</filename> zu erstellen,
nachdem Sie alles zum Laufen gebracht haben.
Außerdem sollten Sie eine Kopie des Verzeichnisses
<filename>/modules</filename> erstellen, die den Namen
<filename>/modules.YYMMDD</filename> hat. Auf diese
Weise können Sie diesen Kernel hochfahren, anstatt
den ganzen Weg zurück zu
<filename>kernel.GENERIC</filename> gehen zu
müssen, wenn Sie das nächste Mal mit Ihrer
Konfiguration herumexperimentieren und dabei etwas
falsch machen sollten. Das ist besonders wichtig, wenn
Sie nun von einem Controller booten, der vom
GENERIC-Kernel nicht unterstützt wird.</para>
</note>
</answer>
</qandaentry>
<qandaentry>
<question id="missing-hw-float">
<para>Was kann ich machen, wenn meine Kernel-Kompilierungen
fehlschlagen, weil <literal>_hw_float</literal>
fehlt?</para>
</question>
<answer>
<para>Lassen Sie mich raten. Sie haben
<devicename>npx0</devicename> aus Ihrer
Konfigurationsdatei entfernt, weil Sie keinen
mathematischen Co-Prozessor besitzen, richtig? Falsch! :-)
<devicename>npx0</devicename> ist <emphasis>zwingend
erforderlich</emphasis>. Auch, wenn Sie keinen
mathematischen Co-Prozessor besitzen,
<emphasis>müssen</emphasis> Sie das Gerät
<devicename>npx0</devicename> einbinden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="why-kernel-big">
<para>Warum ist mein Kernel so groß (über 10
MByte)?</para>
</question>
<answer>
<para>Sie haben Ihren Kernel wahrscheinlich im
<emphasis>Debug Modus</emphasis> erstellt. Ein
Debug-Kernel enthält viele zusätzliche
Informationen für die Fehlersuche, daher ist er so
groß. Bitte beachten Sie, daß die Verwendung
eines Debug-Kernels bei FreeBSD 3.0 und neueren Version
die Performance des Systems nicht oder nur minimal
reduziert; außerdem ist es für den Fall einer
system panic sehr praktisch, einen Debug-Kernel zur Hand
zu haben.</para>
<para>Wenn Ihnen allerdings der Plattenplatz ausgeht oder
Sie einfach rein prinzipiell keinen Debug-Kernel benutzen
wollen, müssen die beiden folgenden Bedingungen
erfüllt sein:</para>
<itemizedlist>
<listitem>
<para>Die Konfigurationsdatei für Ihren Kernel darf
die folgende Zeile nicht enthalten:</para>
<programlisting>makeoptions DEBUG=-g</programlisting>
</listitem>
<listitem>
<para>Sie dürfen &man.config.8; nicht mit dem
Parameter <option>-g</option> starten.</para>
</listitem>
</itemizedlist>
<para>Sollten Sie sich nicht an diese Einschränkungen
halten, wird Ihr Kernel im Debug-Modus erstellt. Solange
Sie sich an diese Einschränkungen halten, können
Sie Ihren Kernel ganz normal erstellen und die
Größe des Kernels sollte deutlich sinken. Ein
normaler Kernel ist nur 1.5 MByte bis 2 MByte
groß.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="multiport-serial-interrupts">
<para>Wieso erhalte ich Meldungen über Interrupt-Konflikte,
wenn ich eine Karte mit mehreren seriellen Schnittstellen
einsetzen will?</para>
</question>
<answer>
<para>Wenn ich einen Kernel mit Unterstützung für
serielle Multi-Port-Schnittstellen kompiliere, bekomme ich
den Hinweis, daß nur der erste Port geprüft
wird und die restlichen auf Grund von Interrupt-Konflikten
übersprungen werden. Wie kann ich das
Beheben?</para>
<para>Das Problem besteht darin, daß in FreeBSD Code
integriert ist, um den Kernel vor Abstürzen aufgrund
von Hardware- oder Software-Konflikten zu bewahren.
Behoben wird es, indem die IRQ-Angaben für alle
Ports, bis auf einen ausgelassen werden. Hier ist ein
Beispiel:</para>
<programlisting>
#
# Multiport high-speed serial line - 16550 UARTS
#
device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr
</programlisting>
</answer>
</qandaentry>
<qandaentry>
<question id="generic-kernel-build-failure">
<para>Wieso kann ich nicht einmal den Standard-Kernel
(GENERIC) bauen?</para>
</question>
<answer>
<para>Es gibt eine Reihe von möglichen Ursachen
für dieses Problem:</para>
<itemizedlist>
<listitem>
<para>Sie benutzen die neuen Kommandos <command>make
buildkernel</command> und <command>make
installkernel</command> nicht, obwohl die Sourcen auf
Ihrem System nicht zum laufenden System passen (z.B.
benutzen Sie die Sourcen von 4.3-RELEASE auf einem
System mit 4.0-RELEASE). Wenn Sie ein Upgrade
durchführen wollen, sollten Sie
<filename>/usr/src/UPDATING</filename> lesen, beachten
Sie insbesondere den Abschnitt <quote>COMMON
ITEMS</quote> gegen Ende des Dokuments.</para>
</listitem>
<listitem>
<para>Sie benutzen zwar <command>make
buildkernel</command> und <command>make
installkernel</command>, aber Sie haben nicht darauf
geachtet, daß vorher ein komplettes
<command>make buildworld</command> durchgelaufen sein
muß. Um seine Arbeit erledigen zu können,
benötigt <command>make buildkernel</command>
Dateien, die von <command>make buildworld</command>
erzeugt werden.</para>
</listitem>
<listitem>
<para>Auch wenn Sie <link
linkend="stable">FreeBSD-STABLE</link> verwenden, ist
es durchaus möglich, daß Sie die Sourcen
genau zum falschen Zeitpunkt aktualisiert haben:
Während Sie gerade modifiziert wurden oder
kurzzeitig fehlerhaft waren. Eine absolute und
vollständige Garantie, daß Sie die Sourcen
compilieren können, gibt es nur für die
Releases, bei <link
linkend="stable">FreeBSD-STABLE</link> ist das nicht
immer so. Wenn Sie es noch nicht versucht haben,
sollten Sie ihre Source nochmals aktualisieren. Es
ist denkbar, daß der von Ihnen genutzte Server
zur Zeit Probleme hat, benutzten Sie daher testweise
auch einmal einen anderen Server.</para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="disks">
<title>Platten, Dateisysteme und Boot Loader</title>
<qandaset>
<qandaentry>
<question id="adding-disks">
<para>Wie kann ich meine neue Festplatte in mein
FreeBSD-System einbinden?</para>
</question>
<answer>
<para>Lesen Sie das Tutorial zur Festplattenformatierung
unter <ulink
url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/articles/formatting-media/">www.de.FreeBSD.org</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="new-huge-disk">
<para>Wie verschiebe ich mein System auf meine neue,
große Platte?</para>
</question>
<answer>
<para>Die beste Methode ist, das Betriebssystem auf der
neuen Platte neu zu installieren und danach die Daten zu
verschieben. Wenn Sie -STABLE über eine Release
hinaus genutzt haben oder eine Release aktualisiert haben,
ist das sehr empfehlenswert. Sie können auf beiden
Platten &man.boot0cfg.8; installieren und die beiden
Versionen so lange parallel betreiben, bis Ihnen die neue
Konfiguration gefällt. Wenn Sie dies tun wollen,
können Sie im übernächsten Absatz erfahren,
wie sie Ihre Daten verschieben können.</para>
<para>Falls Sie sich entscheiden, das nicht zu tun,
müssen Sie Ihre neue Platte partitionieren und
labeln. Benutzen Sie dafür entweder
<filename>/stand/sysinstall</filename> oder &man.fdisk.8;
und &man.disklabel.8;. Weiterhin sollten Sie mit
&man.boot0cfg.8; auf beiden Platten booteasy installieren,
damit Sie in der Lage sind, das alte und das neue System
abwechselnd zu starten, nachdem der Kopiervorgang
abgeschlossen ist. Im <ulink
url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/articles/formatting-media/">Formatting-Media
Tutorial</ulink> finden Sie weitere Informationen zu
diesen Schritten.</para>
<para>Nachdem Sie die neue Platte eingerichtet haben,
können Sie Ihre Daten verschieben. Dummerweise
können Sie die Daten nicht einfach kopieren. Dinge wie
Gerätedateien (in <filename>/dev</filename>),
erweiterte Dateiattribute und symbolische Links führen
dazu, daß das in die Hose geht. Sie müssen
ein Programm benutzen, das damit umgehen kann, und das
ist &man.dump.8;. Es wird oft empfohlen, die Daten im
Single-User Modus zu verschieben, aber das ist nicht
unbedingt notwendig.</para>
<para>Sie sollten auf gar keinen Fall etwas anderes als
&man.dump.8; und &man.restore.8; benutzen, um Ihr Root-Filesystem
zu verschieben. Es könnte auch mit
&man.tar.1; funktionieren - oder auch nicht. Sie sollten
ebenfalls &man.dump.8; und &man.restore.8; benutzen, wenn
Sie eine komplette Partition auf eine andere, leere
Partition verschieben wollen. Um die Daten einer Partition mit
dump auf eine andere Partition zu verschieben, müssen
Sie die folgenden Schritte ausführen:</para>
<procedure>
<step>
<para>Richten Sie in der neuen Partition mit newfs ein
Dateisystem ein.</para>
</step>
<step>
<para>Mounten Sie die Partition temporär an einer
geeigneten Stelle.</para>
</step>
<step>
<para>Wechseln Sie mit cd in dieses Verzeichnis.</para>
</step>
<step>
<para>Lesen Sie die alte Partition mit dump aus und
lenken Sie die Ausgabe auf die neue Partition
um.</para>
</step>
</procedure>
<para>Wenn Sie zum Beispiel <username>root</username> auf
<devicename>/dev/ad1s1a</devicename> verschieben wollen und
diese zur Zeit auf <filename>/mnt</filename> gemountet
ist, bedeutet das:</para>
<screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
&prompt.root; <userinput>cd /mnt</userinput>
&prompt.root; <userinput>dump 0af - / | restore xf -</userinput></screen>
<para>Wenn Sie Ihre Partitionen mit &man.dump.8;
umorganisieren wollen, steht Ihnen etwas mehr Arbeit
bevor. Wenn Sie eine Partition wie
<filename>/var</filename> in die übergeordnete Partition
verschieben wollen, müssen Sie zunächst eine neue
Partition erzeugen, die die beiden alten Partitionen
aufnehmen kann. Der zweite Schritt ist, wie oben
beschrieben die übergeordnete Partition in die neue
Partition zu verschieben. Im dritten und letzten Schritt
verschieben Sie dann die untergeordnete Partition in das
leere Verzeichnis, das im zweiten Schritt entstanden
ist:</para>
<screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
&prompt.root; <userinput>cd /mnt</userinput>
&prompt.root; <userinput>dump 0af - / | restore xf -</userinput>
&prompt.root; <userinput>cd var</userinput>
&prompt.root; <userinput>dump 0af - /var | restore xf -</userinput></screen>
<para>Wenn Sie ein Verzeichnis aus einer Partition
herauslösen wollen, also z.B.
<filename>/var</filename> auf eine eigene Partition
verlegen wollen, dann müssen Sie zunächst beide
Partitionen anlegen. Danach müssen Sie die
untergeordnete Partition im passenden Verzeichnis
unterhalb des temporären mount points mounten und zum
Abschluß die alte Partition verschieben:</para>
<screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
&prompt.root; <userinput>newfs /dev/ad1s1d</userinput>
&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
&prompt.root; <userinput>mkdir /mnt/var</userinput>
&prompt.root; <userinput>mount /dev/ad1s1d /mnt/var</userinput>
&prompt.root; <userinput>cd /mnt</userinput>
&prompt.root; <userinput>dump 0af - / | restore xf -</userinput></screen>
<para>Eventuell sagen Ihnen für Benutzerdaten
&man.cpio.1;, &man.pax.1; oder &man.tar.1; eher zu als
&man.dump.8;. Allerdings haben alle diese Programme den
Nachteil, daß sie die erweiterten Dateiattribute
nicht verstehen, daher sollten Sie bei ihrem Einsatz
aufpassen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="dangerously-dedicated">
<para>Gefährdet eine <quote>dangerously
dedicated</quote> Festplatte meine Gesundheit?</para>
</question>
<answer>
<para><anchor id="dedicate">Die Installationsprozedur bietet
Ihnen zwei verschiedene Methoden, Ihre Festplatte(n) zu
partitionieren. Die Standardmethode macht sie kompatibel
zu anderen Betriebssystemen auf derselben Maschine, indem
fdisk-Tabelleneinträge (unter FreeBSD
<quote>slices</quote> genannt) mit einem FreeBSD-Eintrag,
in dem eigene Partitionen untergebracht werden, benutzt
werden. Optional kann ausgewählt werden, ob ein
Boot-Selektor installiert werden soll, um zwischen den
möglichen Betriebssystemen auf der/den Platte(n)
wechseln zu können. Bei der zweiten Methode wird die
gesamte Platte für FreeBSD genutzt und nicht
versucht, kompatibel zu anderen Betriebssystemen zu
sein.</para>
<para>Nun, warum wird es <quote>gefährlich</quote>
genannt? Eine Platte in diesem Modus enthält nichts,
was von normalen PC-Hilfsprogrammen als gültige
fdisk-Tabelle betrachtet werden würde. Abhängig
von der Qualität ihres Designs werden sie sich bei
Ihnen beschweren, sobald sie mit einer solchen Platte in
Kontakt kommen, oder noch schlimmer, sie könnten den
Bootstrap von FreeBSD beschädigen, ohne Sie zu fragen
oder darauf hinzuweisen. Hinzu kommt, daß vom
Layout von <quote>dangerously dedicated</quote> Platten
bekannt ist, daß es viele BIOSe verwirrt,
einschließlich solcher von AWARD (wie es z.B. im HP
Netserver oder Micronics-Systemen, sowie vielen anderen zu
finden ist) und Symbios/NCR (für die bekannte
53C8xx-Reihe von SCSI-Controllern). Dies ist keine
vollständige Liste - es gibt weitere. Symptome
für diese Verwirrung sind <errorname>read
error</errorname>-Meldungen, die vom FreeBSD-Bootstrap
ausgegeben werden, wenn es sich selbst nicht finden kann,
sowie Systemabstürze beim Booten.</para>
<para>Warum gibt es diesen Modus dann überhaupt? Es
spart ein paar kByte an Plattenplatz und kann echte
Probleme verursachen, die zu einer Neuinstallation
führen. Die Ursprünge des <quote>Dangerously
dedicated</quote> Modus liegen in der Absicht, eines der
häufigsten Probleme, das Erstinstallierer von FreeBSD
plagt, zu verhindern - die BIOS-Werte für die
<quote>Geometrie</quote> einer Festplatte auf der
Festplatte selbst anzupassen.</para>
<para><quote>Geometrie</quote> ist ein veraltetes Konzept,
das aber immer noch die Grundlage für die Interaktion
zwischen dem PC-BIOS und den Festplatten ist. Wenn das
Installationsprogramm von FreeBSD Slices erstellt,
muß es sich die Lage dieser Slices auf der
Festplatte in einer Art merken, die damit
übereinstimmt, wie das BIOS erwartet, sie zu finden.
Wenn das falsch geschieht, werden Sie nicht in der Lage
sein, zu booten.</para>
<para>Durch den <quote>Dangerously dedicated</quote> Modus
wird versucht, dies zu umgehen, indem das Problem
vereinfacht wird. In einigen Fällen klappt das zwar,
aber er ist eher als allerletzter Ausweg gedacht - in 99
von 100 Fällen gibt es bessere Möglichkeiten,
das Problem zu lösen.</para>
<para>Wie vermeiden Sie also die Notwendigkeit zum
<quote>DD</quote> Modus, wenn Sie installieren? Beginnen
Sie, indem Sie sich notieren, welche Geometrie das BIOS
für Ihre Platten benutzt. Sie können erreichen,
daß der Kernel sie beim Booten ausgibt, indem Sie
<option>-v</option> an der Eingabeaufforderung
<literal>boot:</literal> angeben, oder <command>boot
-v</command> im Loader verwenden. Kurz bevor das
Installationsprogramm startet, wird der Kernel eine Liste
mit den BIOS-Geometrien ausgeben. Keine Panik - warten
Sie, bis das Installationsprogramm gestartet wurde und
benutzen Sie Scrollback, um die Zahlen zu lesen.
Typischerweise befinden sich die BIOS-Platten in derselben
Reihenfolge, wie FreeBSD Ihre Platten auflistet - zuerst
IDE, dann SCSI.</para>
<para>Wenn Sie Ihre Festplatte in Slices unterteilen,
überprüfen Sie, ob die Plattengeometrie, die im
FDISK-Menü angegeben ist, korrekt ist (das heißt mit den
Einstellungen im BIOS übereinstimmen). Falls die
Werte nicht stimmen, benutzen Sie <keycap>g</keycap>, um
sie zu korrigieren. Diese Schritte sind nötig, wenn
sich absolut nichts auf der Festplatte befindet, oder,
wenn die Festplatte vorher in einem anderen System benutzt
worden ist. Beachten Sie, daß dies nur für die
Festplatte nötig ist, von der Sie booten wollen. Mit
weiteren vorhandenen Platten wird FreeBSD sich problemlos
zurechtfinden.</para>
<para>Wenn Sie es geschafft haben, daß das BIOS und
FreeBSD in der Festplattengeometrie übereinstimmen,
dann sind Ihre Probleme ziemlich sicher vorüber -
ohne, daß es nötig gewesen wäre, den
<quote>DD</quote>-Modus zu benutzen. Falls sie jedoch
immer noch mit der gefürchteten <errorname>read
error</errorname>-Meldung begrüßt werden sollten,
wenn Sie versuchen, zu booten, wird es Zeit, daß Sie
Ihre Finger kreuzen und es einfach versuchen - es gibt
nichts mehr zu verlieren.</para>
<para>Um eine <quote>dangerously dedicated</quote>
Festplatte wieder für einen normalen PC brauchbar zu
machen, gibt es zwei Möglichkeiten. Die erste ist,
ausreichend viele NULL-Bytes in den MBR zu schreiben, um
irgendwelche nachfolgenden Installation glauben zu machen,
daß es sich um eine leere Festplatte handelt. Sie
können das zum Beispiel so tun:</para>
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda0 count=15</userinput></screen>
<para>Alternativ installiert der undokumentierte
DOS-Befehl</para>
<screen><prompt>C:\></prompt> <userinput>fdisk /mbr</userinput></screen>
<para>einen neuen Master-Boot-Record, das heißt der
BSD-Bootstrap wird zerstört.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="safe-softupdates">
<para>Auf welchen Partitionen kann ich problemlos
Soft Updates einsetzen? Ich habe gehört, das der
Einsatz von Soft Updates auf <filename>/</filename>
Probleme verursachen kann.</para>
</question>
<answer>
<para>Die schnelle Antwort: Sie können Soft Updates
bedenkenlos auf alle Partitionen benutzen.</para>
<para>Die ausführliche Antwort: Es gab lange Zeit
Bedenken, was den Einsatz von Soft Updates auf der
root-Partition betrifft. Der Grund sind zwei
Charakteristika der Soft Updates: Zum einen kann es bei
einem Absturz des System auf einer Partition mit
Soft Updates zum Datenverlust kommen. Die Partition ist
zwar noch brauchbar, aber einige Daten können
verloren gehen. Weiterhin kann es durch Soft Updates zu
einem zeitweisen Mangel an Plattenplatz kommen.</para>
<para>Bei der Benutzung von Soft Updates kann es bis zu
dreißig Sekunden dauern, bis der Kernel
Änderungen auf das physikalische Speichermedium
schreibt. Wenn Sie eine große Datei löschen,
ist diese Datei noch auf der Platte vorhanden, bis der
Kernel die Löschoperation tatsächlich
durchführt. Das kann zu einem sehr einfachen Problem
führen: Stellen Sie sich vor, Sie löschen eine
große Datei und legen gleich darauf eine andere
große Datei an. Da die erste Datei noch nicht
wirklich gelöscht wurde, ist eventuell nicht genug
Platz für die zweite große Datei. Sie erhalten
die Fehlermeldung, daß nicht genug freier Platz
vorhanden ist, obwohl Sie ganz genau wissen, daß Sie
gerade eben Platz geschaffen haben. Wenn Sie die
Operation ein paar Sekunden später wiederholen,
funktioniert alles wie von Geisterhand. Dieser Effekt hat
mehr als einen Benutzer verwirrt und Zweifel an seiner
geistigen Stabilität oder dem FreeBSD-Dateisystem
aufkommen lassen.</para>
<para>Wenn der Kernel ein Datenpaket annimmt und das System
abstürzt, bevor er dies Daten auf die Platte
geschrieben hat, kann es zum Verlust oder zur
Zerstörung von Daten kommen. Dieses Risiko ist nur
sehr gering und normalerweise tragbar. Wenn Sie
allerdings einen IDE-Write-Cache verwenden, steigt das
Risiko; daher wird normalerweise empfohlen, auf den
Einsatz dieser Technik zu verzichten, wenn Sie Soft Updates
benutzen.</para>
<para>Diese beiden Probleme betreffen alle Partitionen, die
Soft Updates verwenden. Was bedeutet das für die
Root-Partition?</para>
<para>Die wichtigen Daten auf der Root-Partition ändern
sich nur sehr selten. Dateien wie
<filename>/kernel</filename> und der Inhalt
<filename>/etc</filename> werden nur bei der Wartung des
Systems geändert, oder wenn Benutzer ihre
Paßwörter ändern. Wenn das System in den
30 Sekunden nach einer solchen Änderung
abstürzt, ist es möglich, das Daten verloren
gehen. Dieses Risiko ist in den meisten Fällen
unerheblich, aber es ist vorhanden. Wenn das zu viel
Risiko ist, dann sollten Sie Soft Updates nicht auf der
Root-Partition einsetzen.</para>
<para><filename>/</filename> war schon immer eine der
kleinsten Partitionen. Standardmäßig legt
FreeBSD das Verzeichnis <filename>/tmp</filename> direkt
auf <filename>/</filename>. Wenn in Ihrem
<filename>/tmp</filename> viel Betrieb ist, kann es
gelegentlich zu den oben beschriebenen Platzproblemen
kommen. Um das Problem zu lösen, sollten sie einen
symbolischen Link von <filename>/tmp</filename> nach
<filename>/var/tmp</filename> legen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="inappropriate-ccd">
<para>Was stimmt mit meinem ccd nicht?</para>
</question>
<answer>
<para>Das Symptom hierfür ist:</para>
<screen>&prompt.root; <userinput>ccdconfig -C</userinput>
ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format</screen>
<para>Das geschieht für gewöhnlich, wenn Sie
versuchen, die <literal>c</literal> Partitionen, die
standardmäßig vom Typ
<literal>unbenutzt</literal> sind, zu verbinden. Der
ccd-Treiber verlangt Partitionen vom Typ FS_BSDFFS.
Editieren Sie den Plattenlabel der Platten, die Sie zu
verknüpfen versuchen und ändern Sie die Typen
der Partitionen in <literal>4.2BSD</literal>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ccd-disklabel">
<para>Warum kann ich den Plattenlabel meines ccd nicht
editieren?</para>
</question>
<answer>
<para>Das Symptom hierfür ist:</para>
<screen>&prompt.root; <userinput>disklabel ccd0</userinput>
(hier wird etwas vernünftiges ausgegeben; versuchen wir nun, es zu editieren)
&prompt.root; <userinput>disklabel -e ccd0</userinput>
(editiern, speichern, beenden)
disklabel: ioctl DIOCWDINFO: No disk label on disk;
use "disklabel -r" to install initial label</screen>
<para>Der Grund ist, daß der von ccd
zurückgelieferte Plattenlabel ein
<quote>vorgetäuschter</quote> ist, der sich nicht
wirklich auf der Platte befindet. Sie können das
Problem beheben, indem Sie ihn explizit
zurückschreiben, wie z.B. hier:</para>
<screen>&prompt.root; <userinput>disklabel ccd0 > /tmp/disklabel.tmp</userinput>
&prompt.root; <userinput>disklabel -Rr ccd0 /tmp/disklabel.tmp</userinput>
&prompt.root; <userinput>disklabel -e ccd0</userinput>
(nun wird es funktionieren)</screen>
</answer>
</qandaentry>
<qandaentry>
<question id="mount-foreign-fs">
<para>Kann ich andere fremde Dateisysteme unter FreeBSD
mounten?</para>
</question>
<answer>
<variablelist>
<varlistentry>
<term>Digital UNIX</term>
<listitem>
<para>UFS-CDROMs können unter FreeBSD direkt
gemountet werden. Das Mounten von Partitionen von
Digital UNIX und anderen Systemen, die UFS
unterstützen, könnte schwieriger sein,
abhängig von den Details der
Plattenpartitionierung des betreffenden
Betriebssystems.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Linux</term>
<listitem>
<para>FreeBSD unterstützt seit Version 2.2
<literal>ext2fs</literal>-Partitionen. Unter
&man.mount.ext2fs.8; finden Sie weitere
Informationen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>NT</term>
<listitem>
<para>Es gibt einen NTFS-Treiber, der nur Lesezugriffe
gestattet. Weitere Informationen finden Sie im
Tutorium von Mark Ovens unter <ulink
url="http://ukug.uk.FreeBSD.org/~mark/ntfs_install.html">http://ukug.uk.FreeBSD.org/~mark/ntfs_install.html</ulink>.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Für weitere Informationen zu diesem Thema
wären wir sehr dankbar.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="mount-dos">
<para>Wie mounte ich eine erweiterte DOS-Partition?</para>
</question>
<answer>
<para>Die erweiterten DOS-Partitionen befinden sich hinter
ALLEN primären Partitionen. Wenn sich zum Beispiel
eine Partition <quote>E</quote> als sekundäre
DOS-Partition auf Ihrem zweiten SCSI-Laufwerk befindet,
müssen Sie die speziellen Dateien für
<quote>Slice 5</quote> im Verzeichnis
<filename>/dev</filename> erstellen und dann
<filename>/dev/da1s5</filename> mounten:</para>
<screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV da1s5</userinput>
&prompt.root; <userinput>mount -t msdos /dev/da1s5 /dos/e</userinput></screen>
<note>
<para>Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in <filename>/dev</filename> erstellt.</para>
</note>
</answer>
</qandaentry>
<qandaentry>
<question id="crypto-filesystem">
<para>Gibt es ein verschlüsselndes Dateisystem
für &os;?</para>
</question>
<answer>
<para>Ja, <filename role="package">security/cfs</filename>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="nt-bootloader">
<para>Wie kann ich den NT-Loader zum Booten von FreeBSD
verwenden?</para>
</question>
<answer>
<para>Diese Prozedur unterscheidet sich für die Systeme
2.2.X and 3.X (mit dem dreistufigen Bootprozeß)
geringfügig.</para>
<para>Das grundsätzliche Vorgehen besteht darin,
daß Sie den ersten Sektor Ihrer eigentlichen
FreeBSD-Rootpartition in eine Datei auf der
DOS/NT-Partition kopieren. Angenommen, sie nennen die
Datei etwa <filename>c:\bootsect.bsd</filename> (durch
<filename>c:\bootsect.dos</filename> inspiriert), dann
können Sie die Datei <filename>c:\boot.ini</filename>
etwa wie folgt editieren:</para>
<programlisting>
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
C:\BOOTSECT.BSD="FreeBSD"
C:\="DOS"
</programlisting>
<para>Bei 2.2.X-Systemen wird für diese Prozedur
angenommen, daß DOS, NT, FreeBSD oder was auch
immer, in den entsprechenden Partitionen auf
<emphasis>derselben</emphasis> Platte installiert wurden.
Das untenstehende Beispiel wurde auf einem System
getestet, auf dem DOS & NT in der ersten und FreeBSD
in der zweiten fdisk-Partition installiert waren.
Zusätzlich wurde FreeBSD so installiert, daß
es von seiner Partition bootet, und nicht vom MBR.</para>
<para>Mounten Sie eine DOS-formatierte Diskette (falls Sie
nach NTFS gewechselt haben) oder die FAT-Partition z.B.
unter <filename>/mnt</filename>.</para>
<screen>&prompt.root; <userinput>dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1</userinput></screen>
<para>Rebooten Sie mit DOS oder NT. Benutzer von NTFS
kopieren nun die Dateien <filename>bootsect.bsd</filename>
oder <filename>bootsect.lnx</filename> von der
Diskette nach <filename>C:\</filename>. Ändern Sie
die Attribute (Rechte) von <filename>boot.ini</filename>
mit:</para>
<screen><prompt>C:\></prompt>attrib -s -r c:\boot.ini</screen>
<para>Editieren Sie nun die Datei und fügen Sie die
entsprechenden Einträge aus dem obigen
<filename>boot.ini</filename>-Beispiel hinzu und setzen
dann wieder die alten Attribute:</para>
<screen><prompt>C:\></prompt>attrib +s +r c:\boot.ini</screen>
<para>Falls FreeBSD vom MBR bootet, restaurieren Sie den MBR
mit dem DOS-Befehl <command>fdisk</command>, nachdem Sie
FreeBSD so umkonfiguriert haben, daß es von seiner
Partition bootet.</para>
<para>Für die FreeBSD-Systeme 3.X ist die Prozedur
etwas einfacher.</para>
<para>Falls FreeBSD auf derselben Platte, wie die
NT-Bootpartition installiert ist, kopieren Sie einfach
<filename>/boot/boot1</filename> nach
<filename>C:\BOOTSECT.BSD</filename>. Falls FreeBSD auf
einer anderen Platte installiert ist, wird
<filename>/boot/boot1</filename> nicht funktionieren; Sie
brauchen in diesem Fall
<filename>/boot/boot0</filename>.</para>
<warning>
<para>SIE DÜRFEN AUF GAR KEINEN FALL EINFACH
<filename>/boot/boot0</filename> STATT
<filename>/boot/boot1</filename> KOPIEREN. WENN SIE DAS
DOCH TUN SOLLTEN, WIRD IHRE PARTITIONSTABELLE
ÜBERSCHRIEBEN UND IHR RECHNER WIRD NICHT MEHR
STARTEN!</para>
</warning>
<para><filename>/boot/boot0</filename> muß mit
sysinstall installiert werden. Wählen Sie dazu den
FreeBSD-Bootmanager aus, wenn Sie gefragt werden, ob sie
einen Bootmanager installieren wollen. Dieser Schritt ist
notwendig, weil <filename>/boot/boot0</filename> eine
leere Partitionstabelle enthält, die von sysinstall
ausgefüllt wird, bevor
<filename>/boot/boot0</filename> in den MBR kopiert
wird.</para>
<para>Wenn der Bootmanager von FreeBSD gestartet wird, merkt
er sich das zuletzt gestartet Betriebssystem, indem er
dessen Partition als aktiv markiert. Danach kopiert er
sich selbst (alle 512 Bytes) in den MBR. Wenn Sie also
einfach <filename>/boot/boot0</filename> nach
<filename>C:\BOOTSECT.BSD</filename> kopieren, würde
der Bootmanager eine leere Partitionstabelle (mit einem
als aktiv markiertem Eintrag) in den MBR kopieren.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="lilo-bootloader">
<para>Wie boote ich FreeBSD und Linux mit LILO?</para>
</question>
<answer>
<para>Falls sich FreeBSD und Linux auf derselben Platte
befinden, folgen Sie einfach den Installationsanweisungen
von LILO zum booten eines Nicht-Linux-Betriebssystems.
Ganz knapp sind dies:</para>
<para>Booten Sie Linux und fügen Sie die folgenden
Zeilen in die Datei <filename>/etc/lilo.conf</filename>
ein:</para>
<programlisting>
other=/dev/hda2
table=/dev/hda
label=FreeBSD
</programlisting>
<para>(hierbei wird angenommen, daß Ihre
FreeBSD-Partition Linux unter
<devicename>/dev/hda2</devicename> bekannt ist; ändern
Sie dies entsprechend Ihren Einstellungen). Führen
Sie nun als <username>root</username> den Befehl
<command>lilo</command> aus und Sie sind fertig.</para>
<para>Falls FreeBSD sich auf einer anderen Platte befindet,
müssen Sie <literal>loader=/boot/chain.b</literal> zu
den LILO-Angaben hinzufügen. Zum Beispiel:</para>
<programlisting>
other=/dev/dab4
table=/dev/dab
loader=/boot/chain.b
label=FreeBSD
</programlisting>
<para>In einigen Fällen könnte es sein, daß
Sie beim FreeBSD-Bootloader die BIOS-Laufwerksnummer
angeben müssen, um von der zweiten Platte booten zu
können. Wenn Ihre FreeBSD-SCSI-Platte vom BIOS zum
Beispiel als BIOS-Platte 1 erkannt wird, müssen Sie
am Prompt des FreeBSD-Bootloaders eingeben:</para>
<screen>Boot: <userinput>1:da(0,a)/kernel</userinput></screen>
<para>Seit Version 2.2.5 können Sie &man.boot.8; so
konfigurieren, daß das beim Booten automatisch
geschieht.</para>
<para>Das <ulink
url="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html">Linux+FreeBSD
mini-HOWTO</ulink> ist ein guter Ratgeber bei Fragen zur
Interaktion von FreeBSD und Linux.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="booteasy-loader">
<para>Wie boote ich FreeBSD und Linux mit BootEasy?</para>
</question>
<answer>
<para>Installieren Sie LILO am Anfang Ihrer
Linux-Bootpartition, anstatt im Master Boot Record. Sie
können LILO dann von BootEasy aus booten.</para>
<para>Wenn Sie Windows-95 und Linux benutzen, wird das
ohnehin empfohlen, um es einfacher zu machen, Linux wieder
zu booten, wenn es nötig werden sollte, daß Sie
Windows95 neu installieren (Windows95 ist ein
eifersüchtiges Betriebssystem, das kein anderes
Betriebssystem im Master Boot Sektor duldet).</para>
</answer>
</qandaentry>
<qandaentry>
<question id="changing-bootprompt">
<para>Wie kann ich das <literal>???</literal> des
Boot-Managers durch etwas Sinnvolles ersetzen?</para>
</question>
<answer>
<para>Solange Sie den Boot-Manager nicht komplett neu
schreiben, gar nicht. Allerdings gibt es in der Kategorie
<filename>sysutils</filename> der Ports diverse
Boot-Manager, die diese Funktionalität
bieten.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="removable-drives">
<para>Ich habe ein Wechsellaufwerk. Wie benutze ich
es?</para>
</question>
<answer>
<para>Ob es sich um ein Wechsellaufwerk handelt, um ein ZIP-
oder ein EZ-Laufwerk (oder sogar ein Diskettenlaufwerk,
wenn Sie es auf diese Weise benutzen möchten), oder
um eine neue Festplatte - wenn es einmal installiert und
vom System erkannt ist und Sie Ihre
Kassette/Diskette/was_auch_immer eingelegt haben, ist das
Vorgehen bei allen Geräten ziemlich
ähnlich.</para>
<para><anchor id="disklabel">(dieser Abschnitt basiert auf
<ulink
url="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html">Mark
Mayo's ZIP-FAQ</ulink>)</para>
<para>Wenn es sich um ein ZIP- oder Diskettenlaufwerk
handelt, und sich bereits ein DOS-Dateisystem darauf
befindet, können Sie einen Befehl wie diesen für
eine Diskette benutzen:</para>
<screen>&prompt.root; <userinput>mount -t msdos /dev/fd0c /floppy</userinput></screen>
<para>oder diesen:</para>
<screen>&prompt.root; <userinput>mount -t msdos /dev/da2s4 /zip</userinput></screen>
<para>für eine ZIP-Disk mit der
Herstellerkonfiguration.</para>
<para>Benutzen Sie bei anderen Platten &man.fdisk.8; oder
&man.sysinstall.8;, um herauszufinden, wie sie
konfiguriert sind.</para>
<para>Die restlichen Beispiele sind für ein
ZIP-Laufwerk unter da2, der dritten SCSI-Platte.</para>
<para>Wenn es sich nicht um eine Diskette oder eine
Wechselplatte handelt, die Sie mit anderen Leuten
austauschen wollen, ist es wahrscheinlich besser, ein
BSD-Dateisystem darauf zu installieren. Hierdurch
bekommen Sie Unterstützung für lange Dateinamen,
eine mindestens doppelt so hohe Leistungsausnutzung und
wesentlich höhere Stabilität. Zunächst
müssen Sie die Partitionen/Dateisysteme auf DOS-Ebene
nochmals erstellen. Sie können entweder
&man.fdisk.8; oder <command>/stand/sysinstall</command>
benutzen, oder, bei einem kleinen Laufwerk, dem Sie eine
Unterstützung für mehrere Betriebssysteme nicht
zumuten wollen, entfernen Sie einfach die komplette FAT
Partitionstabelle (Slices) und benutzen Sie einfach die
BSD-Partitionierung:</para>
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda2 count=2</userinput>
&prompt.root; <userinput>disklabel -Brw da2 auto</userinput></screen>
<para>Sie können disklabel oder
<command>/stand/sysinstall</command> benutzen, um mehrere
BSD-Partitionen zu erstellen. Dies werden Sie sicherlich
bei einer fest eingebauten Platte wollen, aber bei einem
Wechsellaufwerk wie einem ZIP ist das wahrscheinlich
irrelevant.</para>
<para>Zum Schluß erstellen Sie ein neues Dateisystem -
dieses befindet sich auf unserem ZIP-Laufwerk und belegt
die gesamte Platte:</para>
<screen>&prompt.root; <userinput>newfs /dev/rda2c</userinput></screen>
<para>anschließend mounten Sie es:</para>
<screen>&prompt.root; <userinput>mount /dev/da2c /zip</userinput></screen>
<para>Und sicherlich ist es keine schlechte Idee, eine Zeile
ähnlich der folgenden in die Datei
<filename>/etc/fstab</filename> einzufügen, damit Sie
in Zukunft nur <command>mount /zip</command> einzugeben
brauchen:</para>
<programlisting>
/dev/da2c /zip ffs rw,noauto 0 0
</programlisting>
</answer>
</qandaentry>
<qandaentry>
<question id="mount-cd-superblock">
<para>Wieso erhalte ich die Meldung <errorname>Incorrect
super block</errorname> beim Mounten einer CDROM?</para>
</question>
<answer>
<para>Sie müssen &man.mount.8; mitteilen, was für
ein Gerät Sie mounten wollen. Genauere Informationen
dazu finden Sie im Kapitel <ulink
url="../handbook/creating-cds.html">Optische
Speichermedien</ulink> des Handbuch, genauer gesagt im
Abschnitt <ulink
url="../handbook/creating-cds.html#MOUNTING-CD">Benutzung
von Daten-CDs</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="cdrom-not-configured">
<para>Wieso erhalte ich die Meldung <errorname>Device not
configured</errorname>, wenn ich eine CDROM
mounte?</para>
</question>
<answer>
<para>Das bedeutet im allgemeinen, daß sich keine
CDROM im Laufwerk befindet, oder, daß das Laufwerk
auf dem Bus nicht sichtbar ist. Dieses Problem wird im
Kapitel <ulink
url="../handbook/creating-cds.html#MOUNTING-CD">Benutzung
von Daten-CDs</ulink> des Handbuchs ausführlich
diskutiert.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="cdrom-unicode-filenames">
<para>Wieso werden alle Sonderzeichen in den Dateinamen auf
meinen CDs durch <quote>?</quote> ersetzt, wenn ich die CD
unter FreeBSD benutze?</para>
</question>
<answer>
<para>Wahrscheinlich werden auf der CDROM die
<quote>Joliet</quote> Erweiterungen für die
Speicherung von Datei- und Verzeichnisnamen benutzt.
Werfen Sie einen Blick in das Kapitel <ulink
URL="../handbook/creating-cds.html">Erzeugung von
CD-ROMs</ulink> im Handbuch, speziell in den Abschnitt
über <ulink
URL="../handbook/creating-cds.html#MOUNTING-CD">Benutzung
von Daten-CDs</ulink>.</para>
<para>[Anmerkung des Übersetzers: Es geht hier nicht um
die deutschen Sonderzeichen, da diese schon im normalen
ISO8859-1 enthalten sind. Die Probleme treten auf, wenn
man z.B. russische CDs (ISO8859-5) verwendet.]</para>
</answer>
</qandaentry>
<qandaentry>
<question id="burncd-isofs">
<para>Ich habe eine CD mit FreeBSD gebrannt und kann sie
nicht mit anderen Betriebssystemen lesen. Warum?</para>
</question>
<answer>
<para>Sie haben wahrscheinlichste eine Datei direkt auf CD
geschrieben, statt ein ISO 9660-Dateisystems erzeugt zu
haben. Werfen Sie einen Blick in das Kapitel <ulink
URL="../handbook/creating-cds.html">Erzeugung von
CD-ROMs</ulink> im Handbuch, speziell in den Abschnitt
über <ulink
URL="../handbook/creating-cds.html#RAWDATA-CD">reine
Daten-CDs</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="copy-cd">
<para>Wie kann ich ein Image einer Daten-CD erzeugen?</para>
</question>
<answer>
<para>Diese Information finden Sie im Abschnitt <ulink
url="../handbook/creating-cds.html#IMAGING-CD">Kopieren
von CD-ROMs</ulink> des Handbuchs. Weitere Informationen
über die Arbeit mit CD-ROMs finden Sie im Abschnitt
<ulink url="../handbook/creating-cds.html">Erzeugen von
CD-ROMs</ulink> im Kapitel Speichermedien des
Handbuchs.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="mount-audio-CD">
<para>Wieso kommt <command>mount</command> nicht meiner
Audio-CD zurecht?</para>
</question>
<answer>
<para>Wenn Sie versuchen sollten, eine Audio-CD zu mounten,
erhalten Sie die Meldung <errorname>cd9660: /dev/acd0c:
Invalid argument</errorname>. Der Grund dafür ist,
daß <command>mount</command> nur für
Dateisysteme vorgehen ist. Audio CDs habe kein
Dateisystem, sondern nur Daten. Wenn Sie eine Audio CD
auslesen wollen, brauchen Sie ein entsprechendes Programm
wie z.B. <filename role="package">audio/xmcd</filename>
aus den Ports.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="multi-session-CD">
<para>Wie nutze ich <command>mount</command> für eine
Multi-Session CD?</para>
</question>
<answer>
<para>Standardmäßig benutzt &man.mount.8; den
letzten (aktuellsten) Daten-Track der CD. Wenn Sie eine
ältere Session benutzen wollen, müssen Sie diese
mit der Option <option>-s</option> definieren. Weitere
Informationen finden Sie in der Onlinehilfe zu
&man.mount.cd9660.8;</para>
</answer>
</qandaentry>
<qandaentry>
<question id="user-floppymount">
<para>Wie lasse ich normale Benutzer Disketten, CDROMs und
andere Wechseldatenträger mounten?</para>
</question>
<answer>
<para>Normale Benutzer können dazu berechtigt werden,
Geräte zu mounten. Das geht so:</para>
<procedure>
<step>
<para>Setzen Sie als <username>root</username> die
sysctl-Variable <varname>vfs.usermount</varname> auf
<literal>1</literal>:</para>
<screen>&prompt.root; <userinput>sysctl -w vfs.usermount=1</userinput></screen>
</step>
<step>
<para>Ordnen Sie als <username>root</username> den
Block-Geräten, die den Wechsellaufwerken
zugeordnet sind, die entsprechenden Zugriffsrechte
zu.</para>
<para>Wenn Sie zum Beispiel den Benutzer den Zugriff auf
das erste Diskettenlaufwerk zu erlauben
wollen:</para>
<screen>&prompt.root; <userinput>chmod 666 /dev/fd0</userinput></screen>
<para>Um den Mitgliedern der Gruppe
<groupname>operator</groupname> den Zugriff auf das
CDROM zu gestatten:</para>
<screen>&prompt.root; <userinput>chgrp operator /dev/cd0c</userinput>
&prompt.root; <userinput>chmod 640 /dev/cd0c</userinput></screen>
</step>
<step>
<para>Fügen Sie zum Abschluß die Zeile
<literal><varname>vfs.usermount=</varname>1</literal>
in die Datei <filename>/etc/sysctl.conf</filename>
ein, damit die Einstellung bei einem Neustart des
Systems automatisch erhalten bleibt.</para>
</step>
</procedure>
<para>Alle Benutzer können nun
<devicename>/dev/fd0</devicename> auf ein Verzeichnis, das
ihnen gehört, mounten:</para>
<screen>&prompt.user; <userinput> mkdir ~/my-mount-point</userinput>
&prompt.user; <userinput> mount -t msdos /dev/fd0 ~/my-mount-point</userinput></screen>
<para>Die zur Gruppe <groupname>operator</groupname>
gehörenden Benutzer können nun
<devicename>/dev/cd0c</devicename> auf ein Verzeichnis, das
ihnen gehört, mounten:</para>
<screen>&prompt.user; <userinput> mkdir ~/my-mount-point</userinput>
&prompt.user; <userinput> mount -t cd9660 /dev/cd0c ~/my-mount-point</userinput></screen>
<para>Das Unmounten des Gerätes ist simpel:</para>
<screen>&prompt.user; <userinput>umount ~/my-mount-point</userinput></screen>
<para>Die Aktivierung von <varname>vfs.usermount</varname>
hat jedoch negative Auswirkungen auf Sicherheitsaspekte.
Ein besserer Weg, um auf MSDOS-formatierte
Datenträger zuzugreifen, ist die Benutzung des
Packages <ulink
URL="http://www.FreeBSD.org/cgi/ports.cgi?query=%5Emtools-&stype=name">mtools</ulink>aus
der Ports-Sammlung.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="du-vs-df">
<para>Wieso geben die Befehle <command>du</command> und
<command>df</command> unterschiedliche Werte für den
freien Plattenplatz aus?</para>
</question>
<answer>
<para>Der Grund ist die Funktionsweise von
<command>du</command> und <command>df</command>.
<command>du</command> geht durch einen Dateibaum,
ermittelt die Größe jeder einzelnen Datei, und
gibt die Summe aus. <command>df</command> fragt lediglich
bei Dateisystem an, wieviel Platz noch frei ist. Das
scheint zwar auf den ersten Blick sehr ähnlich zu
sein; allerdings wird sich ein leeres Verzeichnis auf die
Ausgabe von <command>df</command> auswirken, während
es auf das Ergebnis von <command>du</command> keinen
Einfluß hat.</para>
<para>Wenn Sie eine Datei löschen, während sie von
einem Programm genutzt wird, wird diese Datei erst
gelöscht, wenn sie vom Programm freigegeben wird.
Allerdings wird die Datei sofort aus dem Verzeichnis
entfernt. Sie können dieses Verhalten mit einem
Programm wie <command>more</command> sehr einfach
nachvollziehen. Dazu brauchen Sie nur eine Datei, die
groß genug ist, um die Ausgabe von
<command>du</command> und <command>df</command> zu
beeinflussen. (Bei der Größe aktueller Platten
muß diese Datei schon <emphasis>sehr</emphasis>
groß sein!) Wenn Sie diese Datei löschen,
während Sie sie sich in <command>more</command>
anzeigen lasen, hat <command>more</command> kein Problem.
Der Eintrag für die Datei wird lediglich aus dem
Verzeichnis entfernt, damit kein anderes Programm mehr
darauf zugreifen kann. Laut <command>du</command> ist die
Datei verschwunden — es hat das Verzeichnis
untersucht und die Datei nicht gefunden. Laut
<command>df</command> ist die Datei aber vorhanden, da sie
im Dateisystem immer noch Platz belegt. Sobald Sie
<command>more</command> beenden, werden die Ergebnisse von
<command>du</command> und <command>df</command> wieder
übereinstimmen.</para>
<para>Bitte beachten Sie, daß die Freigabe des
Plattenplatzes durch die Soft Updates um bis zu 30 Sekunden
verzögert werden kann.</para>
<para>Die oben beschriebene Situation tritt sehr häufig
auf Web-Servern auf. Viele Anwender installieren einen
FreeBSD Web-Server und vergessen die Rotation der
Logfiles, bis sie irgendwann die Partition
<filename>/var</filename> überlaufen. Der
Administrator löscht die Datei, aber das System
beschwert sich immer noch über fehlenden
Plattenplatz. Die Datei wird erst freigegeben, wenn der
Web-Server beendet und neu gestartet wird; dadurch kann
das System den Plattenplatz freigeben. Um solche und
ähnliche Unfälle zu verhindern, sollten Sie
&man.newsyslog.8; einsetzen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="add-swap-space">
<para>Wie kann ich den Swap-Bereich
vergrößern?</para>
</question>
<answer>
<para>Im Kapitel <ulink
url="../handbook/config-tuning.html">Konfiguration und
Tuning</ulink> des Handbuches gibt es einen <ulink
url="../handbook/adding-swap-space.html">Abschnitt</ulink>
mit einer Schritt-für-Schritt Anleitung.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="disk-more-than-full">
<para>Warum kann eine Partition zu mehr als 100% gefüllt
sein?</para>
</question>
<answer>
<para>Ein Teil jeder UFS Partition, in der Vorgabe sind das 8%,
ist für das Betriebssystem und den Benutzer
<username>root</username> reserviert. &man.df.1; rechnet
diesen Teil bei der Ausgabe der <literal>Capacity</literal>
Spalte nicht ein, so daß dort Werte über 100%
angezeigt werden können. Die Anzahl der Blöcke in
der <literal>blocks</literal> Spalte ist ebenfalls um 8%
größer als die Summe der benutzten und
verfügbaren Blöcke (die Spalten
<literal>Used</literal> und <literal>Avail</literal>).
<para>Wieviel Platz reserviert wird, können Sie mit der
<option>-m</option> Option von &man.tunefs.8; einstellen.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="admin">
<title>Systemadministration</title>
<qandaset>
<qandaentry>
<question id="startup-config-files">
<para>Wo befinden sich die Konfigurationsdateien für
den Systemstart?</para>
</question>
<answer>
<para>Für die Versionen 2.0.5R bis 2.2.1R heißt
die primäre Konfigurationsdatei
<filename>/etc/sysconfig</filename>. Alle Optionen
müssen in dieser Datei angegeben werden und andere
Dateien wie <filename>/etc/rc</filename> und
<filename>/etc/netstart</filename> übernehmen sie
einfach hieraus.</para>
<para>Sehen Sie in die Datei
<filename>/etc/sysconfig</filename> und ändern Sie
die Werte entsprechend Ihrem System. Diese Datei
enthält Kommentare, die die möglichen
Einstellungen erklären.</para>
<para>In den Versionen nach 2.2.1 und 3.0 erhielt
<filename>/etc/sysconfig</filename> den
aussagekräftigeren Namen &man.rc.conf.5;
und die Syntax wurde bei dieser Gelegenheit auch etwas
bereinigt. <filename>/etc/netstart</filename> wurde
ebenfalls in <filename>/etc/rc.network</filename>
umbenannt, so daß alle Dateien nun mit dem Befehl
<command>cp /usr/src/etc/rc* /etc</command> kopiert werden
können.</para>
<para>Seit FreeBSD 3.1 ist <filename>rc.conf</filename> als
<filename>/etc/defaults/rc.conf</filename> verfügbar.
<emphasis>Ändern Sie diese Datei nicht!</emphasis>
Wenn Sie den Wert einer der in
<filename>/etc/defaults/rc.conf</filename> gesetzten
Variablen ändern wollen, sollten Sie die
entsprechende Zeile an die Datei
<filename>/etc/rc.conf</filename> anfügen und sie
dort ändern.</para>
<para>Wenn Sie zum Beispiel den ab FreeBSD 3.1
mitgelieferten DNS Server named aktivieren wollen,
müssen Sie lediglich das folgende Kommando
eingeben:</para>
<screen>&prompt.root; <userinput>echo named_enable="YES" >> /etc/rc.conf</userinput></screen>
<para>Wenn Sie in FreeBSD 3.1 und späteren Versionen
lokale Server starten wollen, müssen Sie passende
Shellscripts im Verzeichnis
<filename>/usr/local/etc/rc.d/</filename> ablegen. Die
Dateien müssen als ausführbar markiert sein und
die Endung .sh haben. Wenn Sie FreeBSD 3.0 oder eine noch
ältere Version benutzen, müssen Sie die Datei
<filename>/etc/rc.local</filename> ändern.</para>
<para>Die Datei <filename>/etc/rc.serial</filename> dient
zur Initialisierung serieller Schnittstellen (z.B.
Einstellung der Schnittstelleneigenschaften usw.).</para>
<para>Die Datei <filename>/etc/rc.i386</filename> dient
für Intel-spezifische Einstellungen wie
iBCS2-Emulation oder Konfiguration der
PC-Systemkonsole.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="adding-users">
<para>Wie kann ich am Einfachsten einen Benutzer
hinzufügen?</para>
</question>
<answer>
<para>Benutzen Sie den Befehl &man.adduser.8; und für
kompliziertere Fälle den Befehl &man.pw.8;.</para>
<para>Benutzen Sie den Befehl &man.rmuser.8;, um einen
Benutzer wieder zu löschen. Sie können hierzu
auch &man.pw.8; benutzen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="root-not-found-cron-errors">
<para>Warum erhalte ich Meldungen wie <errorname>root: not
found</errorname>, nachdem ich meine crontab geändert
habe?</para>
</question>
<answer>
<para>Die übliche Ursache dieses Problems ist,
daß Sie die crontab des Systems
(<filename>/etc/crontab</filename>) geändert und dann
mit &man.crontab.1; installiert haben:</para>
<screen>&prompt.root; <userinput>crontab /etc/crontab</userinput></screen>
<para>Diese Vorgehensweise ist falsch. Die crontab des
Systems hat ein anderes Format als die crontabs für
die einzelnen Benutzer, die mit &man.crontab.1;
aktualisiert werden (genauere Informationen über die
Unterschiede erhalten Sie in &man.crontab.5;).</para>
<para>Wenn Sie so vorgegangen sind, ist die zweite crontab
einfach nur eine Kopie von
<filename>/etc/crontab</filename>, allerdings im falschen
Format. Löschen Sie sie mit dem folgenden
Befehl:</para>
<screen>&prompt.root; <userinput>crontab -r</userinput></screen>
<para>Wenn Sie <filename>/etc/crontab</filename> wieder
ändern müssen, sollten Sie einfach gar nichts
tun, um &man.cron.8; über die Änderung zu
informieren, er erkennt die Änderung
automatisch.</para>
<para>Wenn Sie ein Kommando jeden Tag, jede Woche oder jeden
Monat ausführen lassen wollen, ist es wahrscheinlich
einfacher, wenn Sie entsprechende Shell-Scripte in
<filename>/usr/local/etc/periodic</filename> ablegen.
Diese werden dann von &man.periodic.8; zusammen mit den
anderen regelmäßigen Tätigkeiten
ausgeführt.</para>
<para>Der eigentliche Grund für den Fehler ist die
Tatsache, daß die crontab des Systems ein
zusätzliches Feld enthält; dieses Feld gibt an,
mit welcher Benutzerkennung der Befehl ausgeführt
werden soll. In der mitgelieferten crontab ist das bei
allen Einträgen die Benutzerkennung
<username>root</username>. Wenn diese Datei als die
crontab des Benutzers <username>username</username> (die
<emphasis>nicht</emphasis> mit der crontab des Systems
identisch ist) verwendet wird, hält &man.cron.8; die
Zeichenkette <literal>root</literal> für den Namen
des zu startenden Programmes, aber dieses Programm gibt es
nicht.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="su-wheel-group">
<para>Wieso meldet mir &man.su.1; <errorname>you are not in
the correct group to su root</errorname>, wenn ich mit
&man.su.1; <username>root</username> werden will?</para>
</question>
<answer>
<para>Das ist ein Sicherheits-Feature. Wenn Sie mit
&man.su.1; zum Account <username>root</username> (oder
jedem anderen Account mit Super-User-Privilegien) wechseln
wollen, müssen Sie ein Mitglied der Gruppe
<groupname>wheel</groupname> sein. Wenn es dieses Feature
nicht gäbe, könnte jeder, der einen Account auf
dem System hat und zufällig das Paßwort
für <username>root</username> erfährt, mit
Super-User-Rechten auf das System zugreifen. Durch dieses
Feature ist die Lage anders, wenn Sie nicht Mitglied von
<groupname>wheel</groupname> sind, können Sie nicht
einmal versuchen, daß Paßwort
einzugeben.</para>
<para>Um einem Benutzer zu erlauben, mit &man.su.1;
<username>root</username> zu werden, müssen Sie ihn
nur in die Gruppe <groupname>wheel</groupname>
eintragen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="rcconf-readonly">
<para>Ich habe einen Fehler in der
<filename>rc.conf</filename> oder einer der anderen
Dateien für den Systemstart und jetzt kann ich sie
nicht ändern, weil das Dateisystem
<quote>read-only</quote> ist. Was kann ich tun?</para>
</question>
<answer>
<para>Wenn Sie aufgefordert werden, den Pfadnamen der Shell
einzugeben, drücken Sie einfach
<literal>ENTER</literal>. Geben Sie danach <command>mount
/</command> ein, um das Root-Dateisystem im
Schreib/Lese-Modus zu mounten. Sie werden wahrscheinlich
auch <command>mount -a -t ufs</command> ausführen
müssen, um das Dateisystem mit Ihrem Lieblingseditor
zu mounten. Wenn Ihr Lieblingseditor auf einem
Netzwerklaufwerk liegt, müssen Sie entweder das
Netzwerk von Hand konfigurieren oder einen Editor
benutzen, der auf einem lokalen Laufwerk vorhanden ist,
z.B. &man.ed.1;.</para>
<para>Wenn Sie einen bildschirmorientierten Editor wie zum
Beispiel &man.vi.1; oder &man.emacs.1; benutzen wollen,
werden Sie auch den Befehl <command>export
TERM=cons25</command> ausführen müssen, damit
diese Editoren die richtigen Einstellungen aus der
Datenbank &man.termcap.5; übernehmen.</para>
<para>Sobald Sie diese Schritte ausgeführt, können
Sie den Fehler in der <filename>/etc/rc.conf</filename>
ganz normal beheben. Die Fehlermeldungen, die Ihnen
unmittelbar nach den Startmeldungen des Kernels angezeigt
wurden, sollten Ihnen die Nummer der Zeile mit dem Fehler
melden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="printer-setup">
<para>Wieso habe ich habe Probleme, meinen Drucker
einzurichten?</para>
</question>
<answer>
<para>Bitte sehen Sie im Handbucheintrag über Drucker
nach. Es sollte die meisten Ihrer Probleme behandeln.
Lesen sie den <ulink
url="../handbook/printing.html">Handbucheintrag über
Drucker</ulink>.</para>
<para>Einige Drucker benötigen einen auf dem Rechner
laufenden Treiber, um drucken zu können. Diese
sogenannten <quote>WinPrinter</quote> oder
<quote>GDI-Drucker</quote> werden von FreeBSD nicht
unterstützt und an diesem Zustand wird sich wohl auch
nichts ändern. Wenn Ihr Drucker nicht unter DOS oder
Windows NT 4.0 verwendet werden kann, handelt es sich um
einen <quote>WinPrinter</quote> und wird in der Regel auch
nicht unter FreeBSD funktionieren. Ihre einzige Chance,
einen dieser Drucker benutzen können, ist der Port
<filename role="package">ports/print/pnm2ppa</filename>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="keyboard-mappings">
<para>Wie kann ich die Tastaturbelegung meines Systems
korrigieren?</para>
</question>
<answer>
<para>Informationen dazu finden Sie im Kapitel <ulink
url="../handbook/using-localization.html">länderspezifische
Einstellungen</ulink> des Handbuchs, insbesondere im
Abschnitt <ulink
url="../handbook/using-localization.html#SETTING-CONSOLE">Konfiguration
der Konsole</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="pnp-resources">
<para>Wieso erhalte ich beim Start des Systems Meldungen wie
<errorname>unknown: <PNP0303> can't assign
resources</errorname>?</para>
</question>
<answer>
<para>Die nachfolgende Erklärung stammt aus einer Mail
auf der Mailingliste freebsd-current.</para>
<blockquote>
<attribution>&a.wollman;, 24 April 2001</attribution>
<para>Die Geräte, für die <quote>can't assign
resources</quote>-Meldungen ausgegeben werden, sind
<quote>Legacy ISA</quote>Geräte, für die ein nicht
PNP-fähiger Treiber in den Kernel eingebunden
wurde. Dabei handelt es sich um Geräte wie den
Tastaturkontroller, den programmierbaren
Interrupt-Kontroller und diverse andere
Standardkomponenten. Die Ressourcen können nicht
zugewiesen werden, weil es schon einen Treiber gibt, der
diese Ressourcen benutzt.</para>
</blockquote>
</answer>
</qandaentry>
<qandaentry>
<question id="user-quotas">
<para>Wieso funktionieren die Benutzer-Quotas nicht
richtig?</para>
</question>
<answer>
<orderedlist>
<listitem>
<para>Benutzen Sie keine Quotas für
<filename>/</filename>,</para>
</listitem>
<listitem>
<para>Erstellen Sie die Quotas-Datei in dem Dateisystem,
für das die Quotas gelten sollen, z.B.:</para>
<informaltable frame="none">
<tgroup cols="2">
<thead>
<row>
<entry>Filesystem</entry>
<entry>Quota file</entry>
</row>
</thead>
<tbody>
<row>
<entry><filename>/usr</filename></entry>
<entry><filename>/usr/admin/quotas</filename></entry>
</row>
<row>
<entry><filename>/home</filename></entry>
<entry><filename>/home/admin/quotas</filename></entry>
</row>
<row>
<entry>…</entry>
<entry>…</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</listitem>
</orderedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="sysv-ipc">
<para>Unterstützt FreeBSD IPC-Grundfunktionen von
System V?</para>
</question>
<answer>
<para>Ja, FreeBSD unterstützt IPC im Stil von System V
einschließlich gemeinsamen Speicher, Nachrichten und
Semaphoren. Zur Aktivierung müssen Sie die folgenden
Zeilen in Ihre Kernelkonfigurationsdatei
einfügen:</para>
<programlisting>
options SYSVSHM
options SYSVSHM # enable shared memory
options SYSVSEM # enable for semaphores
options SYSVMSG # enable for messaging
</programlisting>
<note>
<para>Diese Variablen sind seit FreeBSD 3.2 schon im
Standardkernel (<emphasis>GENERIC</emphasis>) gesetzt
und sollte daher Bestandteil Ihres Systems
sein.</para>
</note>
<para>Kompilieren und installieren Sie einen neuen
Kernel.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="uucpmail">
<para>Wie benutze ich sendmail zum Zustellen von Mails mit
UUCP?</para>
</question>
<answer>
<para>Die sendmail-Konfiguration, die mit FreeBSD
ausgeliefert wird, ist für Sites geeignet, die direkt
ans Internet angeschlossen sind. Sites, die ihre Mail per
UUCP austauschen wollen, müssen eine andere
sendmail-Konfigurationsdatei installieren.</para>
<para>Die manuelle Bearbeitung von
<filename>/etc/mail/sendmail.cf</filename> ist nur etwas
für Puristen. Sendmail Version 8 bietet die neue
Möglichkeit der Generierung von Konfigurationsdateien
über eine Vorverarbeitung mit &man.m4.1;, wobei die
tatsächliche, händische Konfiguration auf einer
höheren Abstraktionsstufe stattfindet. Sie sollten
die Konfigurationsdateien unter
<filename>/usr/src/usr.sbin/sendmail/cf</filename>
benutzen.</para>
<para>Für den Fall, daß Sie Ihr System nicht mit
dem kompletten Quellcode installiert haben, wurden die
nötigen Dateien zur Konfiguration von sendmail in
einer separaten Quelldistribution für Sie extrahiert.
Wenn Sie Ihre CDROM gemountet haben, müssen Sie die
folgenden Schritte ausführen:</para>
<screen>&prompt.root; <userinput>cd /cdrom/src</userinput>
&prompt.root; <userinput>cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmail</userinput></screen>
<para>Keine Panik, das sind nur ein paar hundert Kilobyte.
Die Datei <filename>README</filename> im Verzeichnis
<filename>cf</filename> kann zur grundlegenden
Einführung in die m4-Konfiguration dienen.</para>
<para>Zur Zustellung über UUCP sind Sie am besten damit
beraten, das <literal>mailertable</literal>-Feature zu
benutzen. Es stellt eine Datenbank dar, auf deren Basis
sendmail Entscheidungen zum Routing treffen kann.</para>
<para>Zunächst müssen Sie Ihre
<filename>.mc</filename>-Datei erstellen. Das Verzeichnis
<filename>/usr/src/usr.sbin/sendmail/cf/cf</filename> ist
die Basis für diese Dateien. Sehen Sie sich um, es
gibt bereits einige Beispiele. Wenn Sie Ihre Datei
<filename>foo.mc</filename> genannt haben, müssen Sie
die folgenden Befehle ausführen, um sie in eine
gültige <filename>sendmail.cf</filename> umzuwandeln,
ist:</para>
<screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail/cf/cf</userinput>
&prompt.root; <userinput>make foo.cf</userinput>
&prompt.root; <userinput>cp foo.cf /etc/mail/sendmail.cf</userinput></screen>
<para>Eine typische <filename>.mc</filename>-Datei
könnte so aussehen:</para>
<programlisting>VERSIONID(`<replaceable>Your version number</replaceable>')
OSTYPE(bsd4.4)
FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
define(`UUCP_RELAY', <replaceable>your.uucp.relay</replaceable>)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')
MAILER(local)
MAILER(smtp)
MAILER(uucp)
Cw <replaceable>your.alias.host.name</replaceable>
Cw <replaceable>youruucpnodename.UUCP</replaceable></programlisting>
<para>Die Einstellungen
<literal>accept_unresolvable_domains</literal>,
<literal>nocanonify</literal> und
<literal>confDONT_PROBE_INTERFACES</literal> werden die
Benutzung von DNS bei der Zustellung von Mails verhindern.
Die Klausel <literal>UUCP_RELAY</literal> wird aus
seltsamen Gründen benötigt - fragen Sie nicht,
warum. Setzen Sie dort einfach den Namen eines Hosts ein,
der in der Lage ist, Adressen mit der Pseudodomäne
.UUCP zu behandeln; wahrscheinlich werden Sie dort den
Relayhost Ihres ISP eintragen.</para>
<para>Wenn Sie soweit sind, müssen Sie die Datei
<filename>/etc/mail/mailertable</filename> erzeugen. Hierzu
wieder ein typisches Beispiel:</para>
<programlisting>#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
. uucp-dom:<replaceable>your.uucp.relay</replaceable></programlisting>
<para>Ein komplexeres Beispiel könnte wie folgt
aussehen:</para>
<programlisting>#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
horus.interface-business.de uucp-dom:horus
.interface-business.de uucp-dom:if-bus
interface-business.de uucp-dom:if-bus
.heep.sax.de smtp8:%1
horus.UUCP uucp-dom:horus
if-bus.UUCP uucp-dom:if-bus
. uucp-dom:</programlisting>
<para>Wie Sie sehen können, handelt es sich um einen
Teil einer realen Datei. Die ersten drei Zeilen behandeln
spezielle Fälle, in denen an Domänen adressierte
Mails nicht über die Standard-Route versendet werden
sollen, sondern zu einem UUCP-Nachbarn, um den Zustellweg
<quote>abzukürzen</quote>. Die nächsten Zeilen
behandeln Mails Rechner in der Domain, die im lokalen
Ethernet verwendet wird. Diese Mails können direkt
per SMTP zugestellt werden. Schließlich werden die
UUCP-Nachbarn in der Notation mit der Pseudodomäne
.UUCP aufgeführt, um die Standardregeln mit
<literal><replaceable>uucp-neighbour</replaceable>!<replaceable>recipient</replaceable></literal>
zu überschreiben. Die letzte Zeile besteht stets aus
einem einzelnen Punkt, der als Ihr Universalgateway in die
Welt dient. Alle Knoten hinter dem Schlüsselwort
<literal>uucp-dom:</literal> müssen gültige
UUCP-Nachbarn sein, was Sie mit dem Befehl
<literal>uuname</literal> überprüfen
können.</para>
<para>Als Erinnerung daran, daß diese Datei in eine
DBM-Datenbankdatei konvertiert werden muß, bevor sie
benutzt werden kann, sollte der Befehl hierzu als
Kommentar am Anfang der mailertable plaziert werden. Sie
müssen den Befehl jedesmal ausführen, wenn Sie
Ihre Mailertable geändert haben.</para>
<para>Abschließender Hinweis: wenn Sie unsicher sind,
ob bestimmte Mailrouten funktionieren, erinnern Sie sich
an die Option <option>-bt</option> von sendmail. Sie
startet sendmail im
<emphasis>Adreß-Testmodus</emphasis>; geben Sie
einfach <literal>3,0</literal>, gefolgt von der Adresse,
für die Sie das Routing testen möchten, ein.
Die letzte Zeile nennt Ihnen den benutzten Mailagenten,
den Zielhost, mit dem dieser Agent aufgerufen wird und die
(ggfs. übersetzte) Adresse. Verlassen Sie diesen
Modus, indem Sie Control-D eingeben.</para>
<screen>&prompt.user; <userinput>sendmail -bt</userinput>
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
<prompt>></prompt> <userinput>3,0 foo@example.com</userinput>
canonify input: foo @ example . com
...
parse returns: $# uucp-dom $@ <replaceable>your.uucp.relay</replaceable> $: foo < @ example . com . >
<prompt>></prompt> <userinput>^D</userinput></screen>
</answer>
</qandaentry>
<qandaentry>
<question id="ispmail">
<para>Wie richte ich das Mailsystem konfigurieren, wenn ich
eine Wählverbindung zum Internet habe?</para>
</question>
<answer>
<para>Wenn Sie eine feste IP-Adresse haben, müssen Sie
die Standardeinstellungen wahrscheinlich gar nicht
ändern. Stellen Sie Ihren Hostnamen entsprechend
Ihrem zugeordneten Internetnamen ein und sendmail
übernimmt das übrige.</para>
<para>Wenn Sie eine dynamische IP-Adresse haben und eine
<application>PPP</application>-Wählverbindung zum
Internet benutzen, bekommen Sie wahrscheinlich eine
Mailbox auf dem Mailserver Ihres ISPs zugeordnet. Lassen
Sie uns annehmen, die Domäne ihres ISPs sei <hostid
role="domainname">example.net</hostid> und Ihr Benutzername
<username>user</username>; außerdem nehmen wir an,
daß Sie Ihre Maschine <hostid
role="fqdn">bsd.home</hostid> genannt haben und, daß
Ihr ISP ihnen gesagt hat, daß Sie <hostid
role="fqdn">relay.example.net</hostid> als Mail-Relayhost
benutzen können.</para>
<para>Um Mails aus Ihrer Mailbox abzuholen, müssen Sie
einen entsprechenden Programm installieren.
<application>Fetchmail</application> ist eine gute Wahl,
weil es viele verschiedene Protokolle unterstützt.
Für gewöhnlich wird von Ihrem ISP POP3 zur
Verfügung gestellt werden. Falls sie sich dafür
entschieden haben, user-PPP zu benutzen, können Sie
durch folgenden Eintrag in der Datei
<filename>/etc/ppp/ppp.linkup</filename> Ihre Mails
automatisch abholen lassen, wenn eine Verbindung zum Netz
aufgebaut wird:</para>
<programlisting>
MYADDR:
!bg su user -c fetchmail
</programlisting>
<para>Falls Sie (wie unten gezeigt)
<application>sendmail</application> benutzen, um Mails an
nicht-lokale Benutzer zu versenden, fügen Sie den
Befehl</para>
<programlisting>
!bg su user -c "sendmail -q"
</programlisting>
<para>nach dem oben gezeigten Eintrag ein. Das
veranlaßt <application>sendmail</application>, Ihre
ausgehenden Mails zu verarbeiten, sobald eine Verbindung
zum Internet aufgebaut wird.</para>
<para>Ich nehme an, daß auf <hostid
role="fqdn">bsd.home</hostid> ein Benutzer
<username>user</username> existiert; erstellen Sie auf
<hostid role="fqdn">bsd.home</hostid> im Heimatverzeichnis
von <username>user</username> eine Datei
<filename>.fetchmailrc</filename>:</para>
<programlisting>
poll example.net protocol pop3 fetchall pass MySecret;
</programlisting>
<para>Diese Datei sollte für niemandem außer
<username>user</username> lesbar sein, weil sie das
Paßwort <literal>MySecret</literal> enthält.</para>
<para>Um Mails mit dem richtigen
<literal>from:</literal>-Header zu versenden, müssen
Sie <application>sendmail</application> mitteilen,
daß es <literal>user@example.net</literal> und nicht
<literal>user@bsd.home</literal> benutzen soll. Evtl.
möchten Sie auch, daß
<application>sendmail</application> alle Mails über
<hostid role="fqdn">relay.example.net</hostid> versendet, um
eine schnellere Übertragung von Mails zu
gewährleisten.</para>
<para>Die folgende <filename>.mc</filename>-Datei sollte
ausreichen:</para>
<programlisting>
VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`example.net')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(`SMART_HOST', `relay.example.net')
Dmbsd.home
define(`confDOMAIN_NAME',`bsd.home')dnl
define(`confDELIVERY_MODE',`deferred')dnl
</programlisting>
<para>Im vorherigen Abschnitt finden Sie Details dazu, wie
Sie aus dieser <filename>.mc</filename>-Datei eine Datei
<filename>sendmail.cf</filename> erstellen können.
Vergessen Sie auch nicht,
<application>sendmail</application> neu zu starten,
nachdem Sie <filename>sendmail.cf</filename>
verändert haben.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="sendmail-alternative">
<para>Welchen Mail-Server kann ich an Stelle von Sendmail
benutzen?</para>
</question>
<answer>
<para><ulink url="http://www.sendmail.org/">Sendmail</ulink>
ist zwar der Mail-Server, der bei FreeBSD
standardmäßig installiert wird, aber Sie
können Ihn problemlos durch einen anderen MTA (z.B.
aus den Ports) ersetzen.</para>
<para>In der Port-Sammlung gibt es bereits viele
verschiedene MTAs, <filename role="package">mail/exim</filename>,
<filename role="package">mail/postfix</filename>,
<filename role="package">mail/qmail</filename>,
<filename role="package">mail/zmailer</filename>
sind einige der beliebteren Alternativen.</para>
<para>Konkurrenz belebt das Geschäft und die Tatsache,
daß Sie die Qual der Wahl haben, ist ein Vorteil.
Daher sollten Sie Fragen wie <quote>Ist Sendmail besser
als Qmail?</quote> besser nicht auf den Mailinglisten
stellen. Wenn Sie dieses Thema interessiert, sollten sie
zunächst die Archive durchsehen. Die Vorteile und
Nachteile jedes einzelnen der verfügbaren MTAs sind
schon mehrere Male bis zur Erschöpfung diskutiert
worden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="forgot-root-pw">
<para>Was kann ich machen, wenn ich das Rootpasswort
vergessen habe?</para>
</question>
<answer>
<para>Keine Panik! Starten Sie Ihr System einfach neu und
geben Sie <userinput>boot -s</userinput> an der
Eingabeaufforderung Boot: ein (bei FreeBSD-Versionen vor
3.2 nur <userinput>-s</userinput>), um in den
Einzelbenutzermodus zu gelangen. Bei der Frage danach,
welche Shell benutzt werden soll, drücken Sie einfach
ENTER. Nun erscheint die Eingabeaufforderung
&prompt.root;. Geben Sie <command>mount -u /</command>
ein, um Ihr Root-Dateisystem für Lese- und
Schreibzugriffe zu remounten und dann <command>mount
-a</command>, um alle Dateisysteme zu remounten. Mit
<command>passwd root</command> können Sie das
Rootpasswort ändern und mit &man.exit.1;
können Sie mit dem Booten fortfahren.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="CAD-reboot">
<para>Wie verhindere ich, daß das System mit
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>Alt</keycap>
<keycap>Delete</keycap>
</keycombo>
rebootet werden kann?</para>
</question>
<answer>
<para>Falls Sie syscons (den Standard-Treiber für die
Konsole) unter FreeBSD ab 2.2.7-RELEASE benutzen,
erstellen und installieren Sie einen neuen Kernel mit der
Zeile</para>
<programlisting>options SC_DISABLE_REBOOT</programlisting>
<para>in der Konfigurationsdatei. Falls Sie den
Konsolen-Treiber PCVT unter FreeBSD seit 2.2.5-RELEASE
benutzen, benutzen Sie stattdessen die folgende
Kernelkonfigurationszeile:</para>
<programlisting>options PCVT_CTRL_ALT_DEL</programlisting>
<para>Editieren Sie bei älteren Versionen von FreeBSD
die Tastenzuordnungsdatei, die Sie für die Konsole
verwenden und ersetzen Sie die Schlüsselworte
<literal>boot</literal> durch <literal>nop</literal>. Die
standard Tastenzuordnungsdatei heißt
<filename>/usr/share/syscons/keymaps/us.iso.kbd</filename>.
Es könnte sein, daß Sie
<filename>/etc/rc.conf</filename> explizit instruieren
müssen, diese Tastenzuordnungsdatei zu laden, um die
Änderungen wirksam werden zu lassen. Falls Sie eine
andere Tastenzuordnung für Ihr Land verwenden,
müssen Sie natürlich diese editieren.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="dos-to-unix-txt">
<para>Wie kann ich Textdateien von DOS Systemen auf &unix;
Systemen verwenden?</para>
</question>
<answer>
<para>Benutzen Sie einfach diesen Perl-Befehl:</para>
<screen>&prompt.user; <userinput>perl -i.bak -npe 's/\r\n/\n/g' file ...</userinput></screen>
<para>file ist/sind die zu verarbeitende(n) Datei(en). Die
Änderungen erfolgen in der Originaldatei, die zuvor
mit der Erweiterung .bak gesichert wird.</para>
<para>Alternativ können Sie den Befehl &man.tr.1;
benutzen:</para>
<screen>&prompt.user; <userinput>tr -d '\r' < <replaceable>dos-text-file</replaceable> > <replaceable>unix-file</replaceable></userinput></screen>
<para><replaceable>dos-text-file</replaceable> ist die
Datei, die den Text im DOS-Format enthält und
<replaceable>unix-file</replaceable> wird die konvertierte
Ausgabe enthalten. Diese Möglichkeit könnte
etwas schneller sein, als die Benutzung von Perl.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="kill-by-name">
<para>Wie beende ich Prozesse namentlich?</para>
</question>
<answer>
<para>Benutzen Sie &man.killall.1;.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="root-acl">
<para>Warum nervt su mich damit, daß ich nicht in der
ACL von <username>root</username> bin?</para>
</question>
<answer>
<para>Der Fehler stammt vom verteilten
Authentifizierungssystem Kerberos. Das Problem ist nicht
ernsthaft, aber störend. Sie können entweder su
mit der Option -K benutzen, oder Kerberos deinstallieren,
wie in der nächsten Frage beschrieben.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="uninstall-kerberos">
<para>Wie deinstalliere ich Kerberos?</para>
</question>
<answer>
<para>Um Kerberos aus dem System zu entfernen, müssen
Sie die bin-Distribution der von Ihnen benutzen RELEASE
neu installieren. Wenn Sie die CDROM besitzen,
können Sie sie mounten (wir nehmen an, unter /cdrom)
und folgende Schritte ausführen:</para>
<screen>&prompt.root; <userinput>cd /cdrom/bin</userinput>
&prompt.root; <userinput>./install.sh</userinput></screen>
<para>Alternativ können Sie alle Zeilen mit
<makevar>MAKE_KERBEROS</makevar> aus der
<filename>/etc/make.conf</filename> entfernen und dann ein
make world durchführen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="add-pty">
<para>Wie füge ich Pseudo-Terminals zum System
hinzu?</para>
</question>
<answer>
<para>Wenn Sie viele Benutzer von telnet, ssh, X oder
screens haben, könnte es sein, daß Ihnen die
Pseudo-Terminals ausgehen. So fügen Sie weitere
hinzu:</para>
<procedure>
<step>
<para>Erstellen und installieren Sie einen neuen Kernel
mit der Zeile</para>
<programlisting>
pseudo-device pty 256
</programlisting>
<para>in der Konfigurationsdatei.</para>
</step>
<step>
<para>Führen Sie die Befehle</para>
<screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV pty{1,2,3,4,5,6,7}</userinput></screen>
<para>aus, um 256 Geräteeinträge für die
neuen Terminals zu erstellen.</para>
</step>
<step>
<para>Editieren Sie die Datei
<filename>/etc/ttys</filename> und fügen Sie
Zeilen für jeden der 256 Terminals ein. Sie
sollten so aussehen, wie die existierenden
Einträge, also etwa so:</para>
<programlisting>
ttyqc none network
</programlisting>
<para>Die Reihenfolge der Buchstabenzuordnung lautet mit
einem regulären Ausdruck
<literal>tty[pqrsPQRS][0-9a-v]</literal>.</para>
</step>
<step>
<para>Starten Sie das System mit dem neuen Kernel
erneut, wenn Sie bereit sind.</para>
</step>
</procedure>
</answer>
</qandaentry>
<qandaentry>
<question id="create-snd0">
<para>Warum kann ich das Gerät snd0 nicht
erstellen?</para>
</question>
<answer>
<para>Es gibt kein Gerät <devicename>snd</devicename>.
Diese Bezeichnung ist nur ein Sammelbegriff für die
diversen Geräte, die zusammen das Soundsystem von
FreeBSD bilden, wie zum Beispiel
<devicename>mixer</devicename>,
<devicename>sequencer</devicename>, und
<devicename>dsp</devicename>.</para>
<para>So erzeugen Sie diese Geräte:</para>
<screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>
<note>
<para>Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in <filename>/dev</filename> erstellt.</para>
</note>
</answer>
</qandaentry>
<qandaentry>
<question id="reread-rc">
<para>Wie lade ich <filename>/etc/rc.conf</filename> und
starte <filename>/etc/rc</filename> neu, ohne zu
rebooten?</para>
</question>
<answer>
<para>Gehen Sie in den Einzelbenutzermodus und dann
zurück in den Mehrbenutzermodus.</para>
<para>Geben Sie auf der Konsole folgendes ein:</para>
<screen>&prompt.root; <userinput>shutdown now</userinput>
(Hinweis: ohne -r oder -h)
&prompt.root; <userinput>return</userinput>
&prompt.root; <userinput>exit</userinput></screen>
</answer>
</qandaentry>
<qandaentry>
<question id="sandbox">
<para>Was ist ein Sandkasten (sandbox)?</para>
</question>
<answer>
<para><quote>Sandkasten</quote> (sandbox) ist ein Ausdruck
aus dem Bereich Sicherheit. Er hat zwei
Bedeutungen:</para>
<itemizedlist>
<listitem>
<para>Ein Programm, das innerhalb virtueller Wände
ausgeführt wird. Wenn ein Angreifer über
eine Sicherheitslücke in diesen Programm
einbricht, verhindern diese Wände ein tieferes
Vordringen in das System.</para>
<para>Man sagt: Der Prozeß kann innerhalb der
Wände <quote>spielen</quote>, das heißt nichts, was
der Prozeß in Bezug auf die Ausführung von
Code tut, kann die Wände durchbrechen. Es ist
also keine detailierte Revision des Codes
erforderlich, um gewisse Aussagen über seine
Sicherheit machen zu können.</para>
<para>Die Wände könnten z.B. eine
Benutzerkennung sein. Dies ist die Definition, die in
den Manualpages security und named benutzt
wird.</para>
<para>Nehmen Sie zum Beispiel den Dienst
<literal>ntalk</literal> (siehe auch /etc/inetd.conf).
Dieser Dienst ist früher mit der Benutzerkennung
<username>root</username> gelaufen; nun läuft er mit der
Benutzerkennung tty. Der Benutzer tty ist ein
Sandkasten, der dazu gedacht ist, es jemandem, der
über ntalk erfolgreich in das System eingebrochen
ist, schwer zu machen, über diese Benutzerkennung
hinaus vorzudringen.</para>
</listitem>
<listitem>
<para>Ein Prozeß, der sich innerhalb einer
simulierten Maschine befindet. Dies ist etwas
fortgeschrittener; grundsätzlich bedeutet es,
daß jemand, der in der Lage ist, in einen
Prozeß einzudringen, annehmen könnte, er
könnte weiter in die Maschine eindringen,
tatsächlich aber nur in eine Simulation der
Maschine einbricht und keine echten Daten
verändert.</para>
<para>Der gängigste Weg, dies zu erreichen, ist, in
einem Unterverzeichnis eine simulierte Umgebung zu
erstellen und den Prozeß in diesem Verzeichnis
mit chroot auszuführen (für diesen
Prozeß ist <filename>/</filename> dieses
Verzeichnis und nicht das echte <filename>/</filename>
des Systems).</para>
<para>Eine weitere gebräuchliche Anwendung ist, ein
untergeordnetes Dateisystem nur mit Leserechten zu
mounten, und dann darüber eine Dateisystemebene
zu erstellen, die einem Prozeß einen scheinbar
schreibberechtigten Blick in das Dateisystem gibt.
Der Prozeß mag glauben, daß er in der Lage
ist, diese Dateien zu verändern, aber nur der
Prozeß sieht diesen Effekt - andere Prozeß
im System natürlich nicht.</para>
<para>Es wird versucht, diese Art von Sandkasten so
transparent zu gestalten, daß der Benutzer (oder
Hacker) nicht merkt, daß er sich in ihm
befindet.</para>
</listitem>
</itemizedlist>
<para>Ein &unix; System implementiert zwei Arten von Sandkästen -
eine auf Prozeßebene und die andere auf der Ebene
der Benutzerkennung.</para>
<para>Jeder Prozeß auf einem &unix; System ist vollständig von
allen anderen Prozessen abgeschirmt. Ein Prozeß
kann den Adreßraum eines anderen Prozesses nicht
modifizieren. Das ist anders als bei Windows, wo ein
Prozeß leicht den Adreßraum eines anderen
überschreiben kann, was zu einem Absturz
führt.</para>
<para>Ein Prozeß gehört einer bestimmten
Benutzerkennung. Falls die Benutzerkennung nicht die von
<username>root</username> ist, dient sie dazu, den
Prozeß von Prozessen anderer Benutzer abzuschirmen.
Die Benutzerkennung wird außerdem dazu genutzt,
Daten auf der Festplatte abzuschirmen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="securelevel">
<para>Was sind die Sicherheitsstufen?</para>
</question>
<answer>
<para>Die Sicherheitsstufen sind ein Sicherheitsmechanismus,
der im Kernel angesiedelt ist. Wenn die Sicherheitsstufe
einen positiven Wert hat, verhindert der Kernel die
Ausführung bestimmter Tätigkeiten; nicht einmal
der Super-User (also <username>root</username>) darf sie
durchführen. Zur Zeit können über die
Sicherheitsstufen unter anderem die folgenden
Tätigkeiten geblockt werden:</para>
<itemizedlist>
<listitem>
<para>Änderungen bestimmter Dateiattribute, wie zum
Beispiel <literal>schg</literal> (das "system immutable"
Attribut)</para>
</listitem>
<listitem>
<para>Schreibender Zugriff auf die Speicherbereiche des
Kernels mittels <devicename>/dev/mem</devicename> und
<devicename>/dev/kmem</devicename>.</para>
</listitem>
<listitem>
<para>Laden von Kernel-Modulen.</para>
</listitem>
<listitem>
<para>Änderungen an den Firewall-Regeln.</para>
</listitem>
</itemizedlist>
<para>Um die eingestellte Sicherheitsstufe eines aktiven
Systems abzufragen, reicht das folgende einfache
Kommando:</para>
<screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
<para>Die Ausgaben wird den Namen der
&man.sysctl.8;-Variablen (in diesem Fall
<varname>kern.securelevel</varname>) und eine Zahl
enthalten. Die Zahl ist der aktuelle Wert der
Sicherheitsstufe. Wenn die Zahl positiv
(größer als Null) ist, sind zumindestens einige
der Schutzmaßnahmen aktiviert.</para>
<para>Sie können die Sicherheitsstufe eines laufenden
Systems nicht verringern, da dies den Mechanismus wertlos
machen würden. Wenn Sie eine Tätigkeit
ausführen müssen, bei der die Sicherheitsstufe
nicht-positiv sein muß (z.B. ein
<maketarget>installworld</maketarget> oder eine
Änderung der Systemzeit), dann müssen Sie die
entsprechende Einstellung in
<filename>/etc/rc.conf</filename> ändern (suchen Sie
nach den Variablen <varname>kern_securelevel</varname> und
<varname>kern_securelevel_enable</varname>) und das System
rebooten.</para>
<para>Weitere Informationen über die Sicherheitsstufen
und genaue Informationen, was die Einstellungen bewirken,
können Sie der Online-Hilfe &man.init.8;
entnehmen.</para>
<warning>
<para>Die Sicherheitsstufen sind kein magischer
Zauberstab, der alle Ihre Problem löst; es gibt
viele bekannte Probleme. Und in der Mehrzahl der
Fälle vermitteln sie ein falsches Gefühl der
Sicherheit.</para>
<para>Eines der größten Probleme ist, daß
alle für den Start des Systems benötigten
Dateien geschützt sein müssen, damit die
Sicherheitsstufe effektiv sein können. Wenn es ein
Angreifer schafft, seine eigenen Programme
ausführen zu lassen, bevor die Sicherheitsstufe
gesetzt wird (was leider erst gegen Ende des
Startvorgangs erfolgen kann, da viele der notwendigen
Tätigkeiten für den Systemstart nicht mit
einer gesetzten Sicherheitsstufe möglich
wären), werden die Schutzmechanismen ausgehebelt.
Es ist zwar nicht technisch unmöglich, alle beim
Systemstart genutzten Dateien zu schützen;
allerdings würde in einem so geschützten
System die Administration zu einem Alptraum, da man das
System neu starten oder in den Single-User Modus bringen
müßte, um eine Konfigurationsdatei
ändern zu können.</para>
<para>Dieses und andere Probleme werden häufig auf
den Mailinglisten diskutiert, speziell auf
freebsd-security. Das <ulink
url="http://www.FreeBSD.org/search/">
verfügbare Archiv</ulink> enthält ausgiebige
Diskussionen. Einige Benutzer sind guter Hoffnung,
daß das System der Sicherheitsstufen bald durch
ein besser konfigurierbares System ersetzt wird, aber es
gibt noch keine definitiven Aussagen.</para>
<para>Fühlen Sie sich gewarnt.</para>
</warning>
</answer>
</qandaentry>
<qandaentry>
<question id="release-candidate">
<para>Ich wollte auf das aktuelle -STABLE updaten, und
plötzlich läuft hier ein -RC oder -PRERELEASE. Was
ist passiert?</para>
</question>
<answer>
<para>Kurze Antwort: Das ist nur ein anderer Name. RC ist
die Abkürzung für <quote>Release
Candidate</quote>. Es bedeutet, daß eine neue
Release bevorsteht. Und -PRERELEASE bedeutet bei FreeBSD
normalerweise, daß die Sourcen zur Vorbereitung auf eine
Release <quote>eingefroren</quote> wurden (in einigen Releases
wurde -BETA anstelle von -PRERELEASE verwendet).</para>
<para>Ausführliche Antwort: Bei FreeBSD gibt es zwei
Quellen für Releases. Die Major Releases wie
3.0-RELEASE und 4.0-RELEASE werden aus dem aktuellen Stand
des Hauptzweiges der Entwicklung (besser und kürzer
als <link linkend="current">-CURRENT</link> bekannt)
erzeugt. Minor Releases wie 3.1-RELEASE or 4.2-RELEASE
stammen aus dem aktiven <link
linkend="stable">-STABLE</link> Zweig. Seit 4.3-RELEASE
gibt es es nun auch einen eigenen Zweig für jede
Release, der für die Leute gedacht ist, die ein sehr
konservativ weiterentwickeltes System benötigen (im
Normalfall also nur Updates aus dem Bereich
Sicherheit).</para>
<para>Bevor in einem Zweig eine Release erfolgt, muß
in diesem Zweig ein bestimmter Prozeß ablaufen. Ein
Teil dieses Prozesses ist der <quote>code freeze</quote>,
der Stop der Weiterentwicklung. Sobald dieser Schritt
erfolgt ist, wird der Name des Zweiges geändert, um
anzuzeigen, daß demnächst eine Release erfolgen
wird. Wenn der Zweig zum Beispiel 4.5-STABLE genannt
wurde, wird der Name in 4.6-PRERELEASE geändert, um dies zu
verdeutlichen. Weiterhin ist das ein Zeichen, daß
jetzt besonders intensiv getestet werden sollte. In
dieser Phase können Fehler im Sourcecode noch
korrigiert werden. Wenn der Sourcecode so weit
<quote>gereift</quote> ist, daß eine Release
erstellt werden kann, wird der Name in 4.6-RC
geändert, um genau dies anzuzeigen. In dieser Phase
können nur noch extrem wichtige Korrekturen
aufgenommen werden. Sobald die Release (in diesem Beispiel
4.6-RELEASE) erfolgt ist, wird der Zweig in 4.6-STABLE
umbenannt.</para>
<para>Weitere Informationen über Versionsnummern und die
verschiedenen Entwicklungszweige enthält der Artikel
<ulink url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/article.html">Release
Engineering</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="kernel-chflag-failure">
<para>Als ich versucht habe, einen neuen Kernel zu
installieren, ist das chflags fehlgeschlagen. Was mache
ich jetzt?</para>
</question>
<answer>
<para>Kurze Antwort: Ihre Sicherheitseinstellung (der
securelevel) ist wahrscheinlich größer als 0.
Sie müssen das System neu starten und den Kernel im
Single-User Modus installierten.</para>
<para>Ausführliche Antwort: Wenn die
Sicherheitseinstellung größer als 0 ist,
erlaubt Ihnen FreeBSD nicht, die Systemflags zu
ändern. Um den aktuellen Securelevel zu ermitteln,
können Sie das folgende Kommando benutzen:</para>
<screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
<para>Sie können die Sicherheitseinstellung nicht
verringern, Sie müssen das System neu starten und den
Kernel im Single-User Mode installieren oder die
Sicherheitseinstellung in
<filename>/etc/rc.conf</filename> ändern und dann das
System neu starten. Weitere Detail zur
Sicherheitseinstellung erhalten Sie in &man.init.8;,
weitere Informationen zur rc.conf erhalten Sie in
<filename>/etc/defaults/rc.conf</filename> und
&man.rc.conf.5;.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="kernel-securelevel-time">
<para>Ich kann die Systemzeit nicht um mehr als eine Sekunde
verstellen. Was mache ich jetzt?</para>
</question>
<answer>
<para>Kurze Antwort: Ihre Sicherheitseinstellung (der
securelevel) ist wahrscheinlich größer als 1.
Sie müssen das System neu starten und die Systemzeit
im Single-User Modus verstellen.</para>
<para>Ausführliche Antwort: Wenn die
Sicherheitseinstellung größer als 1 ist,
erlaubt Ihnen FreeBSD nicht, die Systemzeit zu
ändern. Um den aktuellen Securelevel zu ermitteln,
können Sie das folgende Kommando benutzen:</para>
<screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
<para>Sie können die Sicherheitseinstellung nicht
verringern, Sie müssen das System neu starten und die
Systemzeit im Single-User Mode ändern oder die
Sicherheitseinstellung in
<filename>/etc/rc.conf</filename> ändern und dann das
System neu starten. Weitere Detail zur
Sicherheitseinstellung erhalten Sie in &man.init.8;,
weitere Informationen zur rc.conf erhalten Sie in
<filename>/etc/defaults/rc.conf</filename> und
&man.rc.conf.5;.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="statd-mem-leak">
<para>Warum braucht &man.rpc.statd.8; 256 MByte
Speicher?</para>
</question>
<answer>
<para>Nein, das Programm hat keinen Fehler und es verbraucht
auch nicht 256 MByte Speicher. Das Programm hat nur eine
Vorliebe dafür, einen übertrieben großen
Speicherbereich in seinen eigenen Adreßraum zu
projizieren. Von einem rein technischen Standpunkt aus
ist das nichts verwerfliches, allerdings verwirrt es
Programme wie &man.top.1; und &man.ps.1;.</para>
<para>&man.rpc.statd.8; projiziert seine Statusdatei (die in
<filename>/var</filename> liegt) in seinen
Adreßraum. Um die Probleme zu vermeiden, die bei
einer Vergrößerung dieser Projektion entstehen
könnte, wird gleich ein möglichst großer
Speicherbereich benutzt. Dies kann man sehr schön im
Sourcecode sehen: Die Längenangabe beim Aufruf von
&man.mmap.2; ist <literal>0x10000000</literal>, ein
sechzehntel des Adreßraums bei IA32, oder genau 256
MByte.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="unsetting-schg">
<para>Warum kann ich das Dateiattribut
<literal>schg</literal> nicht löschen?</para>
</question>
<answer>
<para>Sie betreiben Ihr System mit einer erhöhten
Sicherheitsstufe. Senken Sie die Sicherheitsstufe und
versuchen Sie es dann noch einmal. Weitere Informationen
erhalten Sie im <link linkend="securelevel">FAQ Eintrag
über Sicherheitsstufen</link> und in der Online-Hilfe
&man.init.8;.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ssh-shosts">
<para>Warum funktioniert die <filename>.shosts</filename>
Authentifizierung von SSH in neueren Version von FreeBSD
nicht mehr?</para>
</question>
<answer>
<para>Die <filename>.shosts</filename>
Authentifizierung funktioniert nicht mehr, weil
&man.ssh.1; in neueren Versionen von FreeBSD nicht mehr
SUID-<username>root</username> installiert wird. Um dieses
Problem zu <quote>lösen</quote>, gibt es die folgenden
Möglichkeiten:</para>
<itemizedlist>
<listitem>
<para>Um das Problem für immer zu lösen,
müssen Sie in <filename>/etc/make.conf</filename>
die Variable <makevar>ENABLE_SUID_SSH</makevar> auf
<literal>true</literal> setzen und ssh neu
übersetzen (oder <command>make world</command>
ausführen.</para>
</listitem>
<listitem>
<para>Übergangsweise können Sie auch die
Dateirechte von <filename>/usr/bin/ssh</filename> auf
<literal>4555</literal> setzen, indem Sie den Befehl
<command>chmod 4555 /usr/bin/ssh</command> als
<username>root</username> ausführen. Fügen
Sie anschließend <makevar>ENABLE_SUID_SSH=
true</makevar> in die Datei
<filename>/etc/make.conf</filename> ein, damit diese
Änderung erhalten bleibt, wenn Sie das
nächste Mal <command>make world</command>
ausführen.</para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="vnlru">
<para>Was ist <literal>vnlru</literal>?</para>
</question>
<answer>
<para><literal>vnlru</literal> schreibt vnodes auf Platte
und gibt sie wieder frei, falls das System die Grenzwert
<varname>kern.maxvnodes</varname> erreicht. Dieser Thread
des Kernel tut meistens gar nichts und wird nur aktiv,
wenn Sie extrem viel RAM haben und gleichzeitig auf viele
zehntausende kleine Dateien zugreifen.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="x">
<title>Das X Window System und virtuelle Konsolen</title>
<qandaset>
<qandaentry>
<question id="running-X">
<para>Ich möchte X benutzen, was muß ich
tun?</para>
</question>
<answer>
<para>Der einfachste Weg ist der, daß Sie während
der Installation angeben, daß Sie X benutzen
möchten.</para>
<para>Lesen Sie dann die Dokumentation zum Tool
<command>xf86config</command>, das Sie bei der
Konfiguration von XFree86 speziell für Ihre
Grafikkarte/Maus/etc. unterstützt.</para>
<para>Evtl. möchten Sie sich auch den Xaccel-Server
ansehen. Nähere Details finden Sie in den
Abschnitten über <link linkend="xig">Xi
Graphics</link> oder <link linkend="metrox">Metro
Link</link>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="running-X-securelevels">
<para>Ich habe <emphasis>versucht</emphasis>, X zu starten,
aber wenn ich <command>startx</command> eingebe, erhalte
ich die Fehlermeldung <errorname>KDENABIO failed
(Operation not permitted)</errorname>. Was soll ich jetzt
machen?</para>
</question>
<answer>
<para>Sie haben die Sicherheitsstufe (den securelevel) ihres
Systems erhört, richtig? Es ist tatsächlich
nicht möglich, X zu starten, wenn die
Sicherheitsstufe erhöht wurde. Warum das so ist,
können Sie in &man.init.8; nachlesen.</para>
<para>Die Frage ist also eigentlich, was Sie anders machen
sollten. Sie haben zwei Möglichkeiten: Setzen Sie
die Sicherheitsstufe wieder zurück auf 0 (die
Einstellung erfolgt in der Regel in
<filename>/etc/rc.conf</filename>) oder starten Sie
&man.xdm.1; während des Starts des Systems, bevor die
Sicherheitsstufe erhöht wird.</para>
<para>Der Abschnitt <xref linkend="xdm-boot"> enthält
Informationen darüber, wie Sie &man.xdm.1; beim Start
des Systems starten können.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="x-and-moused">
<para>Warum funktioniert meine Maus unter X nicht?</para>
</question>
<answer>
<para>Wenn Sie syscons (den Standard-Konsoltreiber)
benutzen, können Sie FreeBSD so konfigurieren,
daß auf jedem virtuellen Bildschirm ein Mauszeiger
unterstützt wird. Um Konflikte mit X zu vermeiden,
unterstützt syscons ein virtuelles Gerät mit dem
Namen <devicename>/dev/sysmouse</devicename>. Über
dieses virtuelle Gerät können andere Programme
alle Mausbewegungen und Mausclicks im MouseSystems-Format
mitlesen. Falls Sie Ihre Maus auf einer oder mehreren
virtuellen Konsolen <emphasis>und</emphasis> X
benutzen wollen, sollten Sie zunächst <xref
linkend="moused" remap="diesen Abschnitt"> lesen und dann
moused installieren.</para>
<para>Die Datei <filename>/etc/XF86Config</filename> sollte
die folgenden Einträge enthalten:</para>
<programlisting>
Section Pointer
Protocol "SysMouse"
Device "/dev/sysmouse"
.....
</programlisting>
<para>Diese Variante kann für XFree86 3.3.2 und neuere
Versionen benutzt werden. Wenn Sie eine ältere
Versionen verwenden, muß als
<emphasis>Protocol</emphasis> dagegen
<emphasis>MouseSystems</emphasis> benutzt werden.</para>
<para>Einige Leute ziehen es vor, unter X
<devicename>/dev/mouse</devicename> zu benutzen. Hierzu
sollte <devicename>/dev/mouse</devicename> nach
<devicename>/dev/sysmouse</devicename> gelinkt werden:</para>
<screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>rm -f mouse</userinput>
&prompt.root; <userinput>ln -s sysmouse mouse</userinput></screen>
</answer>
</qandaentry>
<qandaentry>
<question id="x-and-wheel">
<para>Kann ich meine Rad-Maus auch unter X benutzen?</para>
</question>
<answer>
<para>Ja. Allerdings müssen Sie die X-Anwendungen
anpassen. Weitere Informationen erhalten Sie auf der
Homepage von <ulink
url="http://www.inria.fr/koala/colas/mouse-wheel-scroll/">Colas
Nahaboo
(http://www.inria.fr/koala/colas/mouse-wheel-scroll/)</ulink>.</para>
<para>Wenn Sie das Programm
<application>imwheel</application> benutzen wollen,
müssen Sie folgenden Arbeiten
durchführen.</para>
<orderedlist>
<listitem>
<para>Umsetzung der Rad-Bewegung</para>
<para>Das Programm <application>imwheel</application>
übersetzt die Maustasten 4 und 5 in normale
Tastaturkommandos. Sie müssen also nur
dafür sorgen, daß die Bewegung des Rades
vom Maustreiber als Betätigung der Maustasten 4
und 5 übersetzt werden. Es gibt zwei
Möglichkeiten, dieses Ziel zu erreichen. Zum
einen kann die Übersetzung von &man.moused.8;
durchgeführt werden, zum zweiten kann der
X-Server diese Aufgabe übernehmen.</para>
<orderedlist>
<listitem>
<para>Umsetzung durch &man.moused.8;</para>
<para>Damit &man.moused.8; die Umsetzung vornimmt,
müssen Sie ihn lediglich mit dem
zusätzlichen Parametern <option>-z 4</option>
starten. Wenn Sie zum Beispiel &man.moused.8; mit
dem Befehl <command>moused -p /dev/psm0</command>
gestartet haben, würde der neue Befehl
<command>moused -p /dev/psm0 -z 4</command>
lauten. Wenn Sie &man.moused.8; über einen
Eintrag in der Datei
<filename>/etc/rc.conf</filename> automatisch beim
Start des Systems starten lassen, müssen Sie
in der <filename>/etc/rc.conf</filename>lediglich
die Einstellung <varname>moused_flags</varname> um
<option>-z 4</option> ergänzen.</para>
<para>Nun müssen Sie X darüber
informieren, daß Sie eine Maus mit 5 Tasten
haben. Fügen sie dazu die Zeile
<literal>Buttons 5</literal> in den Abschnitt
<quote>Pointer</quote> der Datei
<filename>/etc/XF86Config</filename> ein. Das
Beispiel zeigt, wie ein solcher Abschnitt aussehen
könnte.</para>
<example>
<title>Abschnitt <quote>Pointer</quote> für
XFree86 3.3.X für Mäuse mit Rad und
Umsetzung durch
<command>moused</command></title>
<programlisting>
Section "Pointer"
Protocol "SysMouse"
Device "/dev/sysmouse"
Buttons 5
EndSection
</programlisting>
</example>
<example>
<title>Abschnitt <quote>InputDevice</quote> für
Rad-Mäuse in der XF86Config von XFree86 4.X
mit Umsetzung durch den X Server</title>
<programlisting>
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "Buttons" "5"
EndSection
</programlisting>
</example>
<example>
<title><quote>.emacs</quote> Konfiguration
für seitenweises Blättern mit einer
Rad-Maus</title>
<programlisting>
;; wheel mouse
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)
</programlisting>
</example>
</listitem>
<listitem>
<para>Umsetzung durch den X-Server</para>
<para>Wenn Sie &man.moused.8; nicht benutzen oder
die Umsetzung nicht von &man.moused.8; vornehmen
lassen wollen, kann diese Aufgabe auch vom
X-Server übernommen werden. Dazu sind einige
Änderungen an der Datei
<filename>/etc/XF86Config</filename> notwendig.
Zunächst müssen Sie das von Ihrer Maus
verwendete Protokoll herausfinden. Die meisten
Radmäuse verwenden das
<quote>IntelliMouse</quote> Protokoll. XFree86
unterstützt allerdings auch andere
Protokolle, zum Beispiel das von der Logitech
Mouseman+ verwendete
<quote>MouseManPlusPS/2</quote>. Wenn Sie das
Protokoll ermittelt haben, müssen Sie eine
entsprechende <varname>Protocol</varname>-Zeile in
den Abschnitt <quote>Pointer</quote>
aufnehmen.</para>
<para>Zum zweiten müssen Sie dem X-Server
mitteilen, daß er die Bewegung des Rades in
Betätigungen der Tasten 4 und 5 umsetzen
soll. Dazu dient die Option
<varname>ZAxisMapping</varname>.</para>
<para>Wenn Sie zum Beispiel &man.moused.8; nicht
verwenden und eine IntelliMouse an den PS/2
Mausport angeschlossen haben, müßte in
Ihrer <filename>/etc/XF86Config</filename> die
folgenden Angaben stehen.</para>
<example>
<title>Abschnitt <quote>Pointer</quote> der Datei
<filename>XF86Config</filename> für eine
Rad-Maus und Umsetzung durch den
X-Server</title>
<programlisting>
Section "Pointer"
Protocol "IntelliMouse"
Device "/dev/psm0"
ZAxisMapping 4 5
EndSection
</programlisting>
</example>
<example>
<title>Abschnitt <quote>InputDevice</quote> der
Datei XF86Config von XFree86 4.X mit Umsetzung
durch den X Server</title>
<programlisting>Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psm0"
Option "ZAxisMapping" "4 5"
EndSection</programlisting>
</example>
<example>
<title><quote>.emacs</quote> Beispiel für
seitenweises Blättern mit einer
Rad-Maus</title>
<programlisting>;; wheel mouse
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)</programlisting>
</example>
</listitem>
</orderedlist>
</listitem>
<listitem>
<para>Installation von
<application>imwheel</application></para>
<para>Der nächste Schritt ist die Installation von
<application>imwheel</application> über die
Ports. Das Programm ist ein Teil der Kategorie
<filename>x11</filename>.
<application>imwheel</application> übersetzt die
Bewegungen des Rades in Tastendrücken. Es
könnte zum Beispiel <keycap>Bild auf</keycap> an
ein Programm senden, wenn Sie das Rad nach vorne
bewegen. <application>Imwheel</application> benutzt
eine Konfigurationsdatei, die den Bewegungen des Rades
die zu simulierenden Tastendrücke zuordnet.
Damit ist es möglich, verschiedenen Anwendungen
die jeweils "richtigen" Tastendrücke zu
senden. Ein Prototyp der Konfigurationsdatei für
<application>imwheel</application> wird unter dem
Namen <filename>/usr/X11R6/etc/imwheelrc</filename>
installiert. Wenn Sie die Konfiguration von
<application>imwheel</application> an die von Ihnen
verwendeten Programme anpassen wollen, erzeugen Sie
eine Kopie der Datei mit dem Namen
<filename>~/.imwheelrc</filename> und tragen Sie ihre
Anpassungen dort ein. Das Format der Datei wird in
&man.imwheel.1; erklärt.</para>
</listitem>
<listitem>
<para>Anpassung von <application>Emacs</application> an
<application>Imwheel</application>
(<emphasis>Optional</emphasis>)</para>
<para>Wenn Sie <application>emacs</application> oder
<application>XEmacs</application> benutzen,
müssen Sie einen kleinen Abschnitt in die Datei
<filename>~/.emacs</filename> einfügen. Für
<application>emacs</application> müssen Sie die
folgenden Zeilen anfügen:</para>
<example>
<title>Nutzung von <application>Emacs</application>
mit <application>Imwheel</application></title>
<programlisting>
;;; For imwheel
(setq imwheel-scroll-interval 3)
(defun imwheel-scroll-down-some-lines ()
(interactive)
(scroll-down imwheel-scroll-interval))
(defun imwheel-scroll-up-some-lines ()
(interactive)
(scroll-up imwheel-scroll-interval))
(global-set-key [?\M-\C-\)] 'imwheel-scroll-up-some-lines)
(global-set-key [?\M-\C-\(] 'imwheel-scroll-down-some-lines)
;;; end imwheel section
</programlisting>
</example>
<para>Wenn Sie <application>XEmacs</application>
verwenden, müssen stattdessen die folgenden
Zeilen an Ihre <filename>~/.emacs</filename>
anfügen:</para>
<example>
<title>Nutzung von <application>XEmacs</application>
mit <application>Imwheel</application></title>
<programlisting>
;;; For imwheel
(mwheel-install)
(setq mwheel-follow-mouse t)
;;; end imwheel section
</programlisting>
</example>
</listitem>
<listitem>
<para><application>Imwheel</application>
ausführen</para>
<para>Sie brauchen nach der Installation einfach nur
<command>imwheel</command> in einem xterm einzugeben,
um das Programm zu starten. Das Programm läuft
dann im Hintergrund und ist sofort aktiv. Wenn Sie
<application>imwheel</application> ständig
benutzen wollen, sollten Sie es einfach in Ihre
<filename>.xinitrc</filename> oder
<filename>.xsession</filename> eintragen. Falls
<application>imwheel</application> Warnungen über
<quote>PID files</quote> ausgeben sollte, können Sie
diese ignorieren, da Sie nur die Linux-Version von
<application>imwheel</application> betreffen.</para>
</listitem>
</orderedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="window-menu-weird">
<para>Wieso funktionieren Menüs und Dialoge in X nicht
richtig?</para>
</question>
<answer>
<para>Versuchen Sie, die <keycap>Num Lock</keycap>-Taste
auszustellen.</para>
<para>Falls Ihre <keycap>Num Lock</keycap>-Taste beim Booten
standardmäßig eingeschaltet ist, sollten Sie
die folgende Zeile in den Abschnitt
<literal>Keyboard</literal> der Datei
<filename>XF86Config</filename> einfügen:</para>
<programlisting>
# Let the server do the NumLock processing. This should only be
# required when using pre-R6 clients
ServerNumLock
</programlisting>
</answer>
</qandaentry>
<qandaentry>
<question id="virtual-console">
<para>Was ist eine virtuelle Konsole und wie erstelle ich
mehr?</para>
</question>
<answer>
<para>Mit virtuellen Konsolen können Sie mehrere
simultane Sitzungen auf einer Maschine laufen lassen, ohne
so komplizierte Dinge wie die Einrichtung eines Netzwerkes
oder die Benutzung von X zu benötigen.</para>
<para>Wenn das System startet, wird es nach der Anzeige
aller Bootmeldungen eine Eingabeaufforderung auf dem
Bildschirm anzeigen. Sie können dann auf der ersten
virtuellen Konsole Ihren Benutzernamen und das Paßwort
eingeben und anfangen, zu arbeiten (oder zu
spielen!).</para>
<para>Gelegentlich möchten Sie möglicherweise eine
weitere Sitzung starten wollen, vielleicht, um die
Dokumentation zu einem Programm, das Sie gerade benutzen,
einzusehen, oder, um Ihre Mails zu lesen, während Sie
auf das Ende einer FTP-Übertragung warten.
Drücken Sie einfach <keycombo action="simul">
<keycap>Alt</keycap>
<keycap>F2</keycap>
</keycombo> (halten Sie die <keycap>Alt</keycap>-Taste
gedrückt und drücken Sie die Taste <keycap>F2</keycap>)
und Sie gelangen zur Anmelde-Aufforderung auf der zweiten
<quote>virtuellen Konsole</quote>! Wenn Sie zurück
zur ersten Sitzung möchten, drücken Sie
<keycombo action="simul">
<keycap>Alt</keycap>
<keycap>F1</keycap>
</keycombo>.</para>
<para>Die standard Installation von FreeBSD bietet drei
aktivierte virtuelle Konsolen (acht ab der Version 3.3) und
<keycombo action="simul">
<keycap>Alt</keycap>
<keycap>F1</keycap>
</keycombo>,
<keycombo action="simul">
<keycap>Alt</keycap>
<keycap>F2</keycap>
</keycombo>,
<keycombo action="simul">
<keycap>Alt</keycap>
<keycap>F3</keycap>
</keycombo>
wechseln zwischen diesen
virtuellen Konsolen.</para>
<para>Um mehr von ihnen zu aktivieren, editieren Sie
<filename>/etc/ttys</filename> und fügen
Einträge für <devicename>ttyv4</devicename> bis
zu <devicename>ttyvc</devicename> nach dem Kommentar zu
<quote>virtuellen Terminals</quote> ein:</para>
<programlisting>
# Edit the existing entry for ttyv3 in /etc/ttys and change
# "off" to "on".
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/libexec/getty Pc" cons25 on secure
ttyv9 "/usr/libexec/getty Pc" cons25 on secure
ttyva "/usr/libexec/getty Pc" cons25 on secure
ttyvb "/usr/libexec/getty Pc" cons25 on secure
</programlisting>
<para>Benutzen Sie so wenig oder soviele, wie Sie
möchten. Je mehr virtuelle Terminals Sie benutzen,
desto mehr Ressourcen werden gebraucht; das kann wichtig
sein, wenn Sie 8MB RAM oder weniger besitzen. Sie
können auch <literal>secure</literal> in
<literal>insecure</literal> ändern.</para>
<important>
<para>Wenn Sie einen X-Server benutzen möchten,
<emphasis>müssen</emphasis> Sie mindestens ein
virtuelles Terminal unbenutzt (oder ausgeschaltet)
lassen damit der Server es benutzen kann. Das
heißt, daß Sie Pech haben, wenn Sie für
jede Ihrer 12 Alt-Funktionstasten eine
Anmeldeaufforderung haben möchten - Sie können
das nur für elf von ihnen tun, wenn Sie einen
X-Server auf derselben Maschine laufen lassen
möchten.</para>
</important>
<para>Der einfachste Weg, eine Konsole zu deaktivieren, ist,
sie auszuschalten. Wenn Sie zum Beispiel die oben
erwähnte volle Zuordnung aller 12 Terminals
hätten, müßten Sie die Einstellung
für das virtuelle Terminal 12 von:</para>
<programlisting>
ttyvb "/usr/libexec/getty Pc" cons25 on secure
</programlisting>
<para>in:</para>
<programlisting>
ttyvb "/usr/libexec/getty Pc" cons25 off secure
</programlisting>
<para>ändern.</para>
<para>Wenn Ihre Tastatur nur über zehn Funktionstasten
verfügt, bedeutet das:</para>
<programlisting>
ttyv9 "/usr/libexec/getty Pc" cons25 off secure
ttyva "/usr/libexec/getty Pc" cons25 off secure
ttyvb "/usr/libexec/getty Pc" cons25 off secure
</programlisting>
<para>(Sie können diese Zeilen auch einfach
löschen.)</para>
<para>Nachdem Sie die Datei <filename>/etc/ttys</filename>
geändert haben, besteht der nächste Schritt
darin, sicherzustellen, daß Sie genügend
Geräte für virtuelle Terminal haben. Der
einfachste Weg, dies zu tun, ist:</para>
<screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV vty12</userinput></screen>
<note>
<para>Wenn Sie mit FreeBSD 5.X <literal>DEVFS</literal>
benutzen, brauchen Sie die Gerätedateien nicht manuell
anzulegen, da sie automatisch in
<filename class="directory">/dev</filename> erstellt
werden.</para>
</note>
<para>Die einfachste (und sauberste) Möglichkeit, die
virtuellen Konsolen zu aktivieren, ist, zu rebooten. Wenn
Sie jedoch auf keinen Fall rebooten möchten,
können Sie auch einfach das X Window System
herunterfahren und als <username>root</username></para>
<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
<para>ausführen.</para>
<para>Es ist unbedingt erforderlich, daß Sie das X
Window System vollständig herunterfahren, falls es
läuft. Falls Sie es nicht tun, könnte es sein,
daß sich ihr System nach der Eingabe des
kill-Befehls aufhängt.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="vty-from-x">
<para>Wie greife ich von X aus auf virtuelle Konsolen
zu?</para>
</question>
<answer>
<para>Benutzen Sie
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>Alt</keycap>
<keycap>F<replaceable>n</replaceable></keycap>
</keycombo>
um auf eine virtuelle Konsole umzuschalten. Mit
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>Alt</keycap>
<keycap>F1</keycap>
</keycombo>
würden Sie zur ersten virtuellen Konsole
umschalten.</para>
<para>Sobald Sie auf eine virtuelle Konsole umgeschaltet
haben, können Sie ganz normal
<keycombo action="simul">
<keycap>Alt</keycap>
<keycap>F<replaceable>n</replaceable></keycap>
</keycombo>
benutzen, um zwischen den einzelnen virtuellen Konsolen
umzuschalten.</para>
<para>Um zu Ihrer X-Sitzung zurückzukehren, müssen
Sie auf die virtuelle Konsole umschalten, auf der X
läuft. Wenn Sie X über der Eingabeaufforderung
gestartet haben (z.B. mit <command>startx</command>),
benutzt X die nächste freie virtuelle Konsole und
nicht die Konsole, von der es gestartet wurde. Wenn Sie
acht aktive virtuelle Konsole haben, dann wird X die
neunte benutzen und Sie können mit <keycombo
action="simul"><keycap>Alt</keycap><keycap>F9</keycap></keycombo>
umschalten.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="xdm-boot">
<para>Wie starte ich XDM beim Booten?</para>
</question>
<answer>
<para>Es gibt zwei Denkansätze, wie
<command>xdm</command> zu starten ist. Bei dem einen wird
<command>xdm</command> von <filename>/etc/ttys</filename>
aus gestartet, wobei das mitgelieferte Beispiel benutzt
wird, während <command>xdm</command> bei dem anderen
Ansatz einfach in <filename>rc.local</filename> oder von
einem Skript <filename>X.sh</filename> im Verzeichnis
<filename>/usr/local/etc/rc.d</filename> aus gestartet
wird. Beide Ansätze sind gleichwertig und der eine
wird in Situationen funktionieren, in denen der andere es
nicht tut. In beiden Fällen ist das Ergebnis das
gleiche: X liefert eine graphische
Anmeldeaufforderung.</para>
<para>Die ttys-Methode hat den Vorteil, daß
dokumentiert ist, auf welchem vty X gestartet wird und der
Neustart des X-Servers beim Abmelden an init
übergeben wird. Die rc.local-Methode erleichtert ein
Killen von xdm, falls Probleme beim Start des X-Servers
auftreten sollten.</para>
<para>Beim Laden von rc.local sollte <command>xdm</command>
ohne irgendwelche Argumente (das heißt als Daemon) gestartet
werden. xdm muß gestartet werden NACHDEM getty
läuft, andernfalls entsteht ein Konflikt zwischen
getty und xdm und die Konsole bleibt gesperrt. Der beste
Weg, um dies zu vermeiden, ist, das Skript für etwa
zehn Sekunden anzuhalten und dann xdm zu starten.</para>
<para>Wenn Sie <command>xdm</command> durch einen Eintrag in
<filename>/etc/ttys</filename> starten lassen, kann es zu
einem Konflikt zwischen <command>xdm</command> und
&man.getty.8; kommen. Um dieses Problem zu
vermeiden, sollten Sie die Nummer des
<literal>vt</literal> in die Datei
<filename>/usr/X11R6/lib/X11/xdm/Xservers</filename>
eintragen.</para>
<programlisting>:0 local /usr/X11R6/bin/X vt4</programlisting>
<para>Diese Zeile führt dazu, daß der X Server
<devicename>/dev/ttyv3</devicename> nutzt. Die beiden Zahlen
weichen voneinander ab: Der X-Server beginnt die
Zählung der vty bei 1, während der
FreeBSD-Kernel bei 0 beginnt.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="xconsole-failure">
<para>Wieso erhalte ich die Meldung <errorname>Couldn't open
console</errorname>, wenn ich xconsole benutze?</para>
</question>
<answer>
<para>Wenn Sie <application>X</application> mit
<command>startx</command> starten, werden die
Zugriffsrechte für
<devicename>/dev/console</devicename> leider
<emphasis>nicht</emphasis> geändert, was dazu
führt, daß Dinge wie <command>xterm
-C</command> und <command>xconsole</command> nicht
funktionieren.</para>
<para>Das hängt damit zusammen, wie die Zugriffsrechte
für die Konsole standardmäßig gesetzt
sind. Auf einem Mehrbenutzersystem möchte man nicht
unbedingt, daß jeder Benutzer einfach auf die
Systemkonsole schreiben kann. Für Benutzer, die sich
auf einer Maschine direkt mit einem VTY anmelden,
existiert die Datei &man.fbtab.5;, um
derartige Probleme zu lösen.</para>
<para>In Kürze: sorgen Sie dafür, daß sich
eine nicht auskommentierte Zeile der Form</para>
<programlisting>
/dev/ttyv0 0600 /dev/console
</programlisting>
<para>in der Datei <filename>/etc/fbtab</filename> befindet.
Das sorgt dafür, daß wer auch immer sich auf
<devicename>/dev/ttyv0</devicename> anmeldet, auch die Konsole
besitzt.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="xfree86-root">
<para>Früher konnte ich XFree86 als normaler User
starten. Warum sagt mir das System jetzt, daß ich
<username>root</username> sein muß?</para>
</question>
<answer>
<para>Alle X-Server müssen mit der ID
<username>root</username> laufen, um direkt auf die
Videohardware zuzugreifen. Die älteren Versionen von
XFree86 (bis einschließlich 3.3.6) installierten
alle mitgelieferten Server so, daß sie automatisch
unter ID <username>root</username> ausgeführt werden
(setuid to <username>root</username>). Dies stellt
natürlich eine Gefahrenquelle dar, da die X-Server
große, komplexe Programme sind. Alle neueren
Version von XFree86 installieren die Server aus genau
diesem Grund nicht mehr "setuid
<username>root</username>".</para>
<para>Es ist natürlich nicht tragbar, den X-Server
immer mit der ID <username>root</username> laufen zu
lassen; auch aus Gründen der Sicherheit ist es keine
gute Idee. Es gibt zwei Möglichkeiten, um X auch als
normaler Benutzer starten zu können. Die erste ist
die Verwendung von <command>xdm</command> oder eines
ähnlichen Programms; die zweite ist die Benutzer von
<command>Xwrapper</command>.</para>
<para><command>xdm</command> ist ein ständig laufendes
Programm, mit dem Logins über eine graphische
Benutzeroberfläche sind. Es wird normalerweise beim
Systemstart initialisiert und für die
Authentifizierung der Benutzer und den Start ihrer
Sitzungen verantwortlich. Es ist also die graphische
Entsprechung von &man.getty.8; und &man.login.1;.
Weitere Informationen zum Thema <command>xdm</command>
finden Sie in der <ulink
url="http://www.xfree86.org/support.html">XFree86
Dokumentation</ulink> und dem entsprechenden <link
linkend="xdm-boot">FAQ-Eintrag</link>.</para>
<para><command>Xwrapper</command> ist eine
<quote>Hülle</quote> für den X-Server. Mit
diesem kleinen Utility ist es möglich, manuell den
X-Server zu starten und weiterhin eine annehmbare
Sicherheit zu haben. Das Tools prüft, ob die per
Kommandozeile übergebenen Argumente halbwegs sinnvoll
sind. Wenn dies der Fall ist, startet es den
entsprechenden X-Server. Wenn Sie (aus welchem Grund auch
immer) keine graphische Anmeldung wollen, ist
<command>Xwrapper</command> die optimale Lösung.
Wenn Sie die vollständige Ports-Sammlung installiert
haben, finden Sie das Tool im Verzeichnis
<filename>/usr/ports/x11/wrapper</filename>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ps2-x">
<para>Warum funktioniert meine PS/2-Maus nicht
richtig?</para>
</question>
<answer>
<para>Ihre Maus und der Maustreiber sind etwas aus der
Synchronisation geraten.</para>
<para>Bis einschließlich Version 2.2.5 sorgt ein
Wechsel von X zu einer virtuellen Konsole und wieder
zurück für eine erneute Synchronisation. Falls
das Problem öfter auftritt, können Sie die
folgende Zeile in Ihre Kernelkonfigurationsdatei
einfügen und den Kernel neu erstellen.</para>
<programlisting>
options PSM_CHECKSYNC
</programlisting>
<para>Lesen Sie den Abschnitt über <link
linkend="make-kernel">die Erstellung eines Kernels</link>,
falls Sie keine Erfahrung mit der Erstellung eines Kernels
haben.</para>
<para>Mit dieser Option sollten geringere Chancen für
Synchronisationsprobleme zwischen der Maus und dem Treiber
bestehen. Falls sie jedoch weiterhin auf das Problem
stoßen, drücken Sie eine der Maustasten,
während Sie die Maus nicht bewegen, um die Maus und
den Treiber neu zu synchronisieren.</para>
<para>Beachten Sie, daß diese Option leider nicht auf
allen Systemen funktioniert und das <quote>tap</quote>
Merkmal eines am PS/2-Mausanschluß angeschlossenen
ALPS GlidePoint Gerätes beeinträchtigt.</para>
<para>Ab Version 2.2.6 erfolgt die Überprüfung der
Synchronisation etwas besser und ist ein Standard im
PS/2-Maustreiber. Es sollte sogar mit GlidePoint
funktionieren. (Da der Code zur Überprüfung ein
standard Merkmal geworden ist, gibt es die Option
PSM_CHECKSYNC in diesen Versionen nicht mehr.) In seltenen
Fällen kann es jedoch sein, daß der Treiber
fälschlicherweise Synchronisationsprobleme meldet und
Sie in den Kernelmeldungen folgendes sehen:</para>
<programlisting>
psmintr: out of sync (xxxx != yyyy)
</programlisting>
<para>und Ihre Maus nicht richtig zu funktionieren
scheint.</para>
<para>Falls das passiert, deaktivieren Sie den Code zur
Überprüfung der Synchronisation, indem Sie die
Treiberangaben für den PS/2-Maustreiber auf 0x100
setzen. Rufen Sie <emphasis>UserConfig</emphasis> durch
Angabe der Option <option>-c</option> am Boot-Prompt
auf:</para>
<screen>boot: <userinput>-c</userinput></screen>
<para>Geben sie dann in der Kommandozeile von
<emphasis>UserConfig</emphasis> folgendes ein:</para>
<screen>UserConfig> <userinput>flags psm0 0x100</userinput>
UserConfig> <userinput>quit</userinput></screen>
</answer>
</qandaentry>
<qandaentry>
<question id="ps2-mousesystems">
<para>Meine PS/2-Maus von MouseSystems scheint nicht zu
funktionieren.</para>
</question>
<answer>
<para>Es wurde berichtet, daß einige Modelle der
PS/2-Mäuse von MouseSystems nur funktionieren, wenn
sie im <quote>hochauflösenden</quote> Modus betrieben
werden. Andernfalls springt der Mauszeiger sehr oft in
die linke obere Ecke des Bildschirms.</para>
<para>Leider gibt es hierzu keine Abhilfe für die
Versionen 2.0.X und 2.1.X. Verwenden Sie bei den
Versionen 2.2 bis 2.2.5 den folgenden Patch für die
Datei <filename>/sys/i386/isa/psm.c</filename> und
erstellen Sie den Kernel neu. Lesen Sie den Abschnitt
über die <link linkend="make-kernel">Erstellung eines
Kernels</link>, falls Sie keine Erfahrung mit der
Erstellung eines Kernels haben.</para>
<programlisting>
diff -u psm.c.orig psm.c
@@ -766,6 +766,8 @@
if (verbose >= 2)
log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n",
unit, i);
+ set_mouse_resolution(sc->kbdc, PSMD_RES_HIGH);
+
#if 0
set_mouse_scaling(sc->kbdc); /* 1:1 scaling */
set_mouse_mode(sc->kbdc); /* stream mode */
</programlisting>
<para>Spezifizieren Sie ab Version 2.2.6 das Flag 0x04
für den Maustreiber, um die Maus in den
hochauflösenden Modus zu bringen. Rufen Sie
<emphasis>UserConfig</emphasis> durch Angabe der Option
<option>-c</option> am Boot-Prompt auf:</para>
<screen>boot: <userinput>-c</userinput></screen>
<para>Geben sie dann in der Kommandozeile von
<emphasis>UserConfig</emphasis> folgendes ein:</para>
<screen>UserConfig> <userinput>flags psm0 0x04</userinput>
UserConfig> <userinput>quit</userinput></screen>
<para>Lesen Sie den vorigen Abschnitt über eine andere
mögliche Ursache für Probleme mit der
Maus.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="imake-tmpl">
<para>Wenn ich eine X-Anwendung erstellen will, kann
<command>imake</command> die Datei
<filename>Imake.tmpl</filename> nicht finden. Wo befindet
sie sich?</para>
</question>
<answer>
<para><filename>Imake.tmpl</filename> ist Teil des
Imake-Paketes, ein Standardwerkzeug zur Erstellung von
X-Anwendungen. <filename>Imake.tmpl</filename> ist
ebenso, wie viele Header-Dateien, die zur Erstellung von
X-Anwendungen benötigt werden, in der Distribution
<literal>xprog</literal> enthalten. Sie können Sie
per sysinstall oder aber manuell mit den X
Distributionsdateien installieren.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="xfree86-version">
<para>Was kann ich tun, wenn ich XFree86 4.X installiert
habe und eine X-Anwendung compilieren will, die XFree86
3.3.X braucht?</para>
</question>
<answer>
<para>Sie können dem Port mitteilen, daß er die
Bibliotheken von XFree86 4.X benutzen soll, indem Sie die
folgende Zeile in die Datei
<filename>/etc/make.conf</filename> eintragen:</para>
<programlisting>XFREE86_VERSION= 4</programlisting>
<para>Wenn die Datei noch nicht existieren sollte, legen Sie
sie einfach an.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="mouse-button-reverse">
<para>Wie vertausche ich die Maustasten?</para>
</question>
<answer>
<para>Benutzen Sie den Befehl <command>xmodmap -e "pointer =
3 2 1"</command> in Ihrer <filename>.xinitrc</filename>
oder <filename>.xsession</filename>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="install-splash">
<para>Wie installiere ich einen Splash-Screen und wo finde
ich sie?</para>
</question>
<answer>
<para>Kurz vor der Herausgabe von FreeBSD 3.1 wurde ein
neues Feature eingefügt, das die Anzeige von
<quote>Splash-Screens</quote> während der
Bootmeldungen erlaubt. Die Splash-Screens dürfen
derzeit nur Bitmaps mit 256-Farben
(<filename>*.BMP</filename>) oder ZSoft-PCX-Dateien
<filename>*.PCX</filename>) sein. Damit sie mit normalen
VGA-Karten dargestellt werden können, darf die
Größe 320x200 Bildpunkte nicht
überschreiten. Wenn Sie in ihrem Kernel die
VESA-Unterstützung eingebunden haben, beträgt
die maximale Größe 1024x768 Pixel.
Die derzeitige VESA-Unterstützung kann entweder direkt
durch die Kernelkonfigurationsoption
<literal>VESA</literal> in den Kernel eingebunden werden,
oder durch das Laden des VESA-Moduls kld während des
Bootens.</para>
<para>Um eine Splash-Screen zu benutzen, müssen Sie die
Startdateien, die den Bootprozeß von FreeBSD
kontrollieren, modifizieren. Diese Dateien haben sich vor
der Herausgabe von FreeBSD 3.2 geändert, so daß
nun zwei Möglichkeiten zum Laden einer Splash-Screen
existieren:</para>
<itemizedlist>
<listitem>
<para>FreeBSD 3.1</para>
<para>Der erste Schritt besteht darin, eine
Bitmap-Version Ihrer Splash-Screen zu finden. Von
Version 3.1 werden nur Windows-Bitmap Splash-Screens
unterstützt. Wenn Sie die Splash-Screen Ihrer
Wahl gefunden haben, kopieren Sie sie nach
<filename>/boot/splash.bmp</filename>. Als
nächstes benötigen Sie eine Datei
<filename>/boot/loader.rc</filename>, die die
folgenden Zeilen enthält:</para>
<programlisting>
load kernel
load -t splash_image_data /boot/splash.bmp
load splash_bmp
autoboot
</programlisting>
</listitem>
<listitem>
<para>seit FreeBSD 3.2</para>
<para>Außer der zusätzlichen
Unterstützung von PCX Splash-Screens bietet
FreeBSD 3.2 eine einfachere Möglichkeit, den
Bootprozeß zu konfigurieren. Wenn Sie
möchten, können Sie auch die obige Methode
für FreeBSD 3.1 benutzen. Falls Sie das tun und
PCX verwenden möchten, dann ersetzen Sie
<literal>splash_bmp</literal> durch
<literal>splash_pcx</literal>. Falls Sie aber die
neuere Bootkonfiguration benutzen möchten,
müssen Sie eine Datei
<filename>/boot/loader.rc</filename> erstellen, die
die folgenden Zeilen enthält:</para>
<programlisting>
include /boot/loader.4th
start
</programlisting>
<para>und eine Datei
<filename>/boot/loader.conf</filename>, die die
folgenden Zeilen enthält:</para>
<programlisting>
splash_bmp_load="YES"
bitmap_load="YES"
</programlisting>
<para>Dies setzt voraus, daß Sie
<filename>/boot/splash.bmp</filename> als Ihren
Splash-Screen benutzen. Wenn Sie lieber eine
PCX-Datei benutzen wollen, dann kopieren Sie sie nach
<filename>/boot/splash.pcx</filename>, erstellen Sie
eine Datei <filename>/boot/loader.rc</filename>, wie
oben beschrieben und eine Datei
<filename>/boot/loader.conf</filename>, die folgendes
enthält:</para>
<programlisting>
splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"
</programlisting>
</listitem>
</itemizedlist>
<para>Alles, was Sie nun brauchen, ist ein Splash-Screen.
Hierzu können Sie durch die Gallerie bei <ulink
url="http://www.baldwin.cx/splash/">http://www.baldwin.cx/splash/</ulink>
surfen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="windows-keys">
<para>Kann ich die <trademark
class="registered">Windows</trademark>-Tasten unter X
benutzen?</para>
</question>
<answer>
<para>Ja, Sie müssen lediglich mit &man.xmodmap.1;
festlegen, welche Aktion diese Tasten auslösen
sollen.</para>
<para>Unter der Annahme, daß alle <quote><trademark
class="registered">Windows</trademark></quote> Tastaturen
dem Standard entsprechen, lauten die Keycodes für die
drei Tasten</para>
<itemizedlist>
<listitem>
<para>115 - <trademark
class="registered">Windows</trademark> Taste zwischen den
<keycap>Alt</keycap>- und
<keycap>Strg</keycap>-Tasten auf der linken Seite</para>
</listitem>
<listitem>
<para>116 - <trademark
class="registered">Windows</trademark> Taste rechts von der
<keycap>AltGr</keycap>-Taste</para>
</listitem>
<listitem>
<para>117 - <keycap>Menü</keycap>-Taste, links von der
rechten <keycap>Strg</keycap>-Taste</para>
</listitem>
</itemizedlist>
<para>Nach der folgenden Anweisung erzeugt die linke
<trademark class="registered">Windows</trademark>-Taste
ein Komma.</para>
<screen>&prompt.root; <userinput>xmodmap -e "keycode 115 = comma"</userinput></screen>
<para>Sie werden Ihren Window Manager wahrscheinlich neu
starten müssen, damit diese Einstellung wirksam
wird.</para>
<para>Um die neue Belegung der <trademark
class="registered">Windows</trademark>-Tasten automatisch
beim Start von X zu erhalten, könnten Sie
entsprechende <command>xmodmap</command> Anweisungen in
ihre <filename>~/.xinitrc</filename> einfügen. Die
bevorzugte Variante ist aber, eine Datei mit dem Namen
<filename>~/.xmodmaprc</filename> zu erzeugen, die nur die
Parameter für den Aufruf von
<command>xmodmap</command> enthält. Wenn Sie mehrere
Tasten umdefinieren wollen, muß jede Definition in
eine eigene Zeile gesetzt werden. Weiterhin müssen
Sie in Ihrer <filename>~/.xinitrc</filename> noch die
folgende Zeile einfügen:</para>
<programlisting>
xmodmap $HOME/.xmodmaprc
</programlisting>
<para>Sie könnten die drei Tasten zum Beispiel mit den
Funktionen <keycap>F13</keycap>, <keycap>F14</keycap> und
<keycap>F15</keycap> belegen. Dadurch ist es sehr
einfach, diese Tasten mit nützlichen Funktionen eines
Programmes oder Desktops zu verknüpfen.</para>
<para>Falls Sie das auch tun wollen, sollten in Ihrer
<filename>~/.xmodmaprc</filename> die folgenden
Anweisungen stehen.</para>
<programlisting>
keycode 115 = F13
keycode 116 = F14
keycode 117 = F15
</programlisting>
<para>Falls Sie zum Beispiel <command>fvwm2</command>
benutzen, können Sie ihn so einstellen, daß
<keycap>F13</keycap> das Fenster unter dem Mauszeiger
minimiert bzw. maximiert. <keycap>F14</keycap> holt das
Fenster unter dem Mauszeiger in den Vordergrund bzw.
ganz nach hinten, wenn es bereits im Vordergrund ist.
<keycap>F15</keycap> öffnet das Arbeitsplatz
(Programme) Menü, auch wenn der Cursor nicht auf den
Hintergrund zeigt. Dies ist extrem praktisch, wenn der
gesamte Bildschirm von Fenster belegt wird; als kleiner
Bonus gibt es sogar einen Zusammenhang zwischen dem Symbol
auf der Taste und der durchgeführten Aktion.</para>
<para>Dieses Verhalten kann man mit den folgenden
Einträgen in der Datei <filename>~/.fvwmrc</filename>
erhalten:</para>
<programlisting>
Key F13 FTIWS A Iconify
Key F14 FTIWS A RaiseLower
Key F15 A A Menu Workplace Nop
</programlisting>
</answer>
</qandaentry>
<qandaentry>
<question id="x-3d-acceleration">
<para>Wird 3D Hardware Beschleunigung für OpenGL
unterstützt?</para>
</question>
<answer>
<para>Dies hängt davon ab, welche Version von XFree86
und welche Karte Sie verwenden. Wenn Sie eine Karte mit
NVIDIA-Chipsatz besitzen, benutzen Sie die binären
Treiber für FreeBSD 4.7, die Sie auf der
<ulink url="http://www.nvidia.com/content/drivers/drivers.asp">
Drivers-Seite</ulink> von NVIDEA finden.
Wenn Sie XFree86-4 und Karten wie
die Matrox G200/G400, ATI Rage 128/Radeon, oder 3dfx
Voodoo 3, 4, 5, und Banshee einsetzen, erhalten Sie
weitere Informationen auf der Webseite <ulink
url="http://people.FreeBSD.org/~anholt/dri/">XFree86-4
Direct Rendering on FreeBSD</ulink>. Wenn Sie XFree86 in
der Version 3.3 einsetzen, erhalten Sie
eingeschränkte Unterstützung von die
Hardware-Beschleunigung bei OpenGL für die Matrox
Gx00, ATI Rage Pro, SiS 6326, i810, Savage, und Karten,
die auf älteren NVIDIA Chipsätzen beruhen, wenn
Sie den Port <filename role="package">graphics/utah-glx</filename>
installieren.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="networking">
<title>Netzwerke</title>
<qandaset>
<qandaentry>
<question id="diskless-booting">
<para>Woher kann ich Informationen über <quote>Diskless
Booting</quote> bekommen?</para>
</question>
<answer>
<para><quote>Diskless Booting</quote> bedeutet, daß
die FreeBSD-Maschine über ein Netzwerk gebootet wird
und die notwendigen Dateien von einem Server anstatt von
der Festplatte liest. Vollständige Details finden
Sie im <ulink
url="../handbook/diskless.html">Handbucheintrag über
Diskless Operation</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="router">
<para>Kann eine FreeBSD-Maschine als Netzwerkrouter genutzt
werden?</para>
</question>
<answer>
<para>Ja. Genaue Informationen zu diesem Thema finden Sie
im Kapitel <ulink url="../handbook/advanced-networking.html">
Advanced Networking</ulink>, im Abschnitt <ulink
url="../handbook/routing.html">
Gateways und Routen</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="win95-connection">
<para>Kann ich meine Win95-Maschine über FreeBSD ans
Internet anbinden?</para>
</question>
<answer>
<para>Personen, die diese Frage stellen, haben
typischerweise zwei PCs zu Hause: einen mit FreeBSD und
einen mit Win95; die Idee ist, die FreeBSD-Maschine an das
Internet anzubinden und dann in der Lage zu sein, von der
Windows95-Maschine aus über die FreeBSD-Maschine auf
das Internet zuzugreifen. Das ist tatsächlich nur
ein Spezialfall der vorherigen Frage.</para>
<para>... und die Antwort ist JA! Das user-mode &man.ppp.8; von
FreeBSD 3.1 kennt die Option <option>-nat</option>. Wenn Sie
&man.ppp.8; mit der Option
<option>-nat</option> starten, in
<filename>/etc/rc.conf</filename> die Variable
<literal>gateway_enable</literal> auf
<emphasis>YES</emphasis> setzen und ihre Windows-Maschine
korrekt konfigurieren, sollte das hervorragend
funktionieren.</para>
<para>Ausführlichere Informationen zur Konfiguration
finden Sie in der &man.ppp.8; Manualpage.</para>
<para>Wenn Sie Kernel-Mode PPP verwenden oder ihre
Verbindung zum Internet über Ethernet erstellt
wurde, müssen Sie &man.natd.8; verwenden. Weitere
Informationen dazu finden Sie im Abschnitt über <link
linkend="natd">natd</link>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="slip-ppp-support">
<para>Unterstützt FreeBSD SLIP und PPP?</para>
</question>
<answer>
<para>Ja. Lesen Sie die Manualpages &man.slattach.8;,
&man.sliplogin.8;, &man.pppd.8; und &man.ppp.8;.
&man.ppp.8; und &man.pppd.8; liefern Unterstützung
sowohl für eingehende, als auch ausgehende
Verbindungen. &man.sliplogin.8; behandelt
ausschließlich eingehende Verbindungen und
&man.slattach.8; behandelt ausschließlich ausgehende
Verbindungen.</para>
<para>Diese Programme werden im Abschnitt <ulink
url="../handbook/ppp-and-slip.html">PPP und SLIP</ulink>
des Handbuchs beschrieben.</para>
<para>Falls Sie nur durch einen <quote>Shell-Account</quote>
Zugang zum Internet haben, sehen Sie sich einmal das
Package <filename role="package">net/slirp</filename> an.
Es kann Ihnen (eingeschränkten) Zugang zu Diensten
wie ftp und http direkt von Ihrer lokalen Maschine aus
ermöglichen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="natd">
<para>Unterstützt FreeBSD NAT oder
Masquerading?</para>
</question>
<answer>
<para>Falls Sie ein lokales Subnetz (oder mehrere lokale
Maschinen) besitzen, aber von Ihrem Internetprovider nur
eine einzige (evtl. auch dynamisch zugeteilte) IP-Adresse
zugewiesen bekommen haben, sehen Sie sich einmal das
Programm &man.natd.8; an. &man.natd.8; ermöglicht
es Ihnen, ein vollständiges Subnetz mit nur einer
einzigen IP-Adresse an das Internet anzubinden.</para>
<para>Das Programm &man.ppp.8; verfügt mit der
eingebauten Option <option>-nat</option> über eine
ähnliche Funktionalität. In beiden Fällen
wird die Alias-Bibliothek &man.libalias.3;
verwendet.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="parallel-connect">
<para>Wie verbinde ich zwei FreeBSD-Maschinen mit PLIP
über die parallele Schnittstelle?</para>
</question>
<answer>
<para>Dieses Thema wird im Handbuch-Kapitel <ulink
url="../handbook/plip.html">PLIP</ulink>
behandelt.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="create-dev-net">
<para>Wieso kann ich das Gerät
<devicename>/dev/ed0</devicename> nicht erstellen?</para>
</question>
<answer>
<para>Weil das nicht notwendig ist. Bei Berkeley-basierten
Netzwerkimplementationen kann nur vom Kernel-Code aus
direkt auf Netzwerkkarten zugegriffen werden. Zur
weiteren Information lesen Sie bitte die Datei
<filename>/etc/rc.network</filename> und die Manualpages
zu den unterschiedlichen Netzwerkprogrammen, die dort
erwähnt werden. Falls Sie danach total verwirrt
sind, sollten Sie sich ein Buch besorgen, das die
Netzwerkadministration auf einem anderen
BSD-ähnlichen Betriebssystem beschreibt; mit wenigen
signifikanten Ausnahmen gleicht die Netzwerkadministration
auf FreeBSD im Grunde der auf SunOS 4.0 oder
Ultrix.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ethernet-aliases">
<para>Wie kann ich Ethernet-Aliase einrichten?</para>
</question>
<answer>
<para>Wenn sich die zweite Adresse im gleichen Subnetz
befindet wie eine der Adressen, die bereits auf dem
Interface konfiguriert sind, benutzen Sie <literal>netmask
0xffffffff</literal> in Ihrer &man.ifconfig.8;
Befehlszeile, wie z.B.:</para>
<screen>&prompt.root; <userinput>ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff</userinput></screen>
<para>Andernfalls geben sie die Adresse und die Netzmaske so
an, wie sie es bei einem normalen Interface auch tun
würden:</para>
<screen>&prompt.root; <userinput>ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00</userinput</screen>
</answer>
</qandaentry>
<qandaentry>
<question id="port-3c503">
<para>Wie bringe ich meine 3C503 dazu, den anderen
Anschluß zu benutzen?</para>
</question>
<answer>
<para>Wenn Sie die anderen Anschlüsse benutzen
möchten, müssen Sie einen zusätzlichen
Parameter in der &man.ifconfig.8;-Befehlszeile
spezifizieren. Der Standard-Anschluß ist
<literal>link0</literal>. Um den AUI-Anschluß
anstelle des BNC-Anschlusses zu verwenden, benutzen Sie
<literal>link2</literal>. Diese Angaben sollten durch
Benutzung der Variablen ifconfig_* in der Datei
<filename>/etc/rc.conf</filename> spezifiziert
werden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="nfs">
<para>Warum habe ich Probleme mit NFS und FreeBSD?</para>
</question>
<answer>
<para>Gewisse PC-Netzwerkkarten sind (um es gelinde
auszudrücken) besser als andere und können
manchmal Probleme mit netzwerkintensiven Anwendungen wie
NFS verursachen.</para>
<para>Weitere Informationen zu diesem Thema finden Sie
<ulink url="../handbook/nfs.html">im Handbucheintrag zu
NFS</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="nfs-linux">
<para>Warum kann ich per NFS nicht von einer Linux-Maschine
mounten?</para>
</question>
<answer>
<para>Einige Versionen des NFS-Codes von Linux akzeptieren
Mount-Requests nur von einem privilegierten Port.
Versuchen Sie</para>
<screen>&prompt.root; <userinput>mount -o -P linuxbox:/blah /mnt</userinput></screen>
</answer>
</qandaentry>
<qandaentry>
<question id="nfs-sun">
<para>Warum kann ich per NFS nicht von einer Sun-Maschine
mounten?</para>
</question>
<answer>
<para>Sun Workstations mit SunOS 4.X akzeptieren
Mount-Requests nur von einem privilegierten Port.
Versuchen Sie</para>
<screen>&prompt.root; <userinput>mount -o -P sunbox:/blah /mnt</userinput></screen>
</answer>
</qandaentry>
<qandaentry>
<question id="exports-errors">
<para>Warum meldet mir <command>mountd</command> auf meinem
FreeBSD NFS-Server ständig <errorname>can't change
attributes</errorname> und <errorname>bad exports
list</errorname>?</para>
</question>
<answer>
<para>Die häufigste Ursache für dieses Problem
ist, daß Sie den Aufbau der &man.exports.5; nicht
oder nicht richtig verstanden haben. Überprüfen
Sie Ihre &man.exports.5; und lesen das Kapitel <ulink
url="../handbook/nfs.html">NFS</ulink> im Handbuch,
speziell den Abschnitt <ulink
url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/nfs.html#CONFIGURING-NFS">Konfiguration</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-nextstep">
<para>Warum habe ich Probleme, per PPP mit NeXTStep-Maschinen zu
kommunizieren?</para>
</question>
<answer>
<para>Versuchen Sie, die TCP-Erweiterung in
<filename>/etc/rc.conf</filename> zu deaktivieren, indem
Sie die folgende Variable auf NO setzen:</para>
<programlisting>
tcp_extensions=NO
</programlisting>
<para>Xylogic's Annex-Maschinen arbeiten hier auch
fehlerhaft und Sie müssen die obige Änderung
benutzen, um über Sie Verbindungen
herzustellen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ip-multicast">
<para>Wie aktiviere ich die Unterstützung für
IP-Multicast?</para>
</question>
<answer>
<para>Multicast-Host-Funktionen werden seit FreeBSD 2.0
standardmäßig voll unterstützt. Wenn Sie
Ihre Maschine als Multicast-Router betreiben wollen,
müssen Sie Ihren Kernel mit der Option
<literal>MROUTING</literal> rekompilieren und
&man.mrouted.8; starten. Seit Version 2.2 startet FreeBSD
&man.mrouted.8; beim Booten, wenn die Variable
<literal>mrouted_enable</literal> in der Datei
<filename>/etc/rc.conf</filename> auf
<literal>"YES"</literal> gesetzt ist.</para>
<para>MBONE-Tools sind in ihrer eigenen Ports-Kategorie
<ulink
url="http://www.FreeBSD.org/ports/mbone.html">mbone</ulink>
verfügbar. Schauen Sie dort nach, wenn Sie die
Konferenztools <command>vic</command> und
<command>vat</command> suchen!</para>
</answer>
</qandaentry>
<qandaentry>
<question id="dec-pci-chipset">
<para>Welche Netzwerkkarten basieren auf dem
DEC-PCI-Chipsatz?</para>
</question>
<answer>
<para>Hier ist eine von Glen Foster
<email>gfoster@driver.nsta.org</email> zusammengetragene
Liste mit einigen aktuellen Ergänzungen:</para>
<table>
<title>Netzwerkkarten mit DEC-PCI-Chipsatz</title>
<tgroup cols=2>
<thead>
<row>
<entry>Vendor</entry>
<entry>Model</entry>
</row>
</thead>
<tbody>
<row>
<entry>ASUS</entry>
<entry>PCI-L101-TB</entry>
</row>
<row>
<entry>Accton</entry>
<entry>ENI1203</entry>
</row>
<row>
<entry>Cogent</entry>
<entry>EM960PCI</entry>
</row>
<row>
<entry>Compex</entry>
<entry>ENET32-PCI</entry>
</row>
<row>
<entry>D-Link</entry>
<entry>DE-530</entry>
</row>
<row>
<entry>Dayna</entry>
<entry>DP1203, DP2100</entry>
</row>
<row>
<entry>DEC</entry>
<entry>DE435, DE450</entry>
</row>
<row>
<entry>Danpex</entry>
<entry>EN-9400P3</entry>
</row>
<row>
<entry>JCIS</entry>
<entry>Condor JC1260</entry>
</row>
<row>
<entry>Linksys</entry>
<entry>EtherPCI</entry>
</row>
<row>
<entry>Mylex</entry>
<entry>LNP101</entry>
</row>
<row>
<entry>SMC</entry>
<entry>EtherPower 10/100 (Modell 9332)</entry>
</row>
<row>
<entry>SMC</entry>
<entry>EtherPower (Model 8432)</entry>
</row>
<row>
<entry>TopWare</entry>
<entry>TE-3500P</entry>
</row>
<row>
<entry>Znyx (2.2.X)</entry>
<entry>ZX312, ZX314, ZX342, ZX345, ZX346,
ZX348</entry>
</row>
<row>
<entry>Znyx (3.X)</entry>
<entry>ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442,
ZX444, ZX474, ZX478, ZX212, ZX214
(10mbps/hd)</entry>
</row>
</tbody>
</tgroup>
</table>
</answer>
</qandaentry>
<qandaentry>
<question id="fqdn-hosts">
<para>Warum muß ich für Hosts auf meiner Site den
FQDN benutzen?</para>
</question>
<answer>
<para>Sie werden wahrscheinlich feststellen, daß der
Host sich tatsächlich in einer anderen Domäne
befindet; wenn Sie sich zum Beispiel in foo.example.org
befinden und einen Host namens <hostid>mumble</hostid> in
der Domäne <hostid
role="domainname">example.org</hostid> erreichen wollen,
werden Sie den fully-qualified Domainnamen <hostid
role="fqdn">mumble.example.org</hostid>, anstatt nur
<hostid>mumble</hostid> benutzen müssen.</para>
<para>Traditionell war dies bei BSD-BIND-Resolvern erlaubt.
Die aktuelle Version von <application>bind</application>,
die mit FreeBSD ausgeliefert wird, ermöglicht jedoch
nicht mehr die standardmäßige Abkürzung
von nicht-fully-qualified Domainnamen für andere als
ihre eigene Domäne. Ein nicht-qualifizierter Host
<hostid>mumble</hostid> muß also entweder als
<hostid role="fqdn">mumble.foo.example.org</hostid> gefunden
werden, oder er wird in der Hauptdomäne
gesucht.</para>
<para>Dies unterscheidet sich vom vorherigen Verhalten, wo
die Suche über <hostid
role="domainname">mumble.example.org</hostid> und <hostid
role="domainname">mumble.edu</hostid> fortgesetzt wurde.
Werfen Sie einen Blick in RFC 1535, um zu erfahren, warum
dies als schlechter Stil oder sogar als eine
Sicherheitslücke betrachtet wurde.</para>
<para>Als Abhilfe können Sie die Zeile</para>
<programlisting>search foo.example.org example.org</programlisting>
<para>anstelle der vorherigen</para>
<programlisting>domain foo.example.org</programlisting>
<para>in Ihre Datei <filename>/etc/resolv.conf</filename>
einfügen. Stellen Sie jedoch sicher, daß die
Suchreihenfolge nicht über die <quote>Grenze zwischen
lokaler und öffentlicher Administration</quote>, wie
RFC 1535 sie nennt, hinausreicht.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="network-permission-denied">
<para>Wieso erhalte ich bei allen Netzwerkoperationen die
Meldung <errorname>Permission denied</errorname>?</para>
</question>
<answer>
<para>Dieses Problem kann auftreten, wenn Sie einen Kernel
mit der Option <literal>IPFIREWALL</literal> erstellt
haben. Während der Entwicklung von FreeBSD 2.1.7
wurde die Semantik dieser Option geändert: Seit
dieser Version ist alles verboten, was nicht explizit
erlaubt ist.</para>
<para>Falls sie Ihr System unbeabsichtigt als Firewall
konfiguriert haben, können Sie die
Netzwerkfunktionalität wiederherstellen, indem Sie
als <username>root</username> folgendes eingeben:</para>
<screen>&prompt.root; <userinput>ipfw add 65534 allow all from any to any</userinput></screen>
<para>Sie können in <filename>/etc/rc.conf</filename>
auch <literal>firewall_type="open"</literal>
setzen.</para>
<para>Weitere Informationen über die Konfiguration
einer FreeBSD-Firewall finden Sie im <ulink
url="../handbook/firewalls.html">Handbuch-Abschnitt</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ipfw-overhead">
<para>Wieviele Einbußen zieht IPFW nach sich?</para>
</question>
<answer>
<para>Diese Frage wird im Handbuch-Kapitel <ulink
url="../handbook/firewalls.html">Firewalls</ulink> im
Abschnitt <ulink
url="../handbook/firewalls.html#IPFW-OVERHEAD">IPFW
Overhead und Optimierung</ulink> ausführlich
behandelt.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ipfw-fwd">
<para>Warum kann ich bei &man.ipfw.8; einen Dienst nicht mit
<quote>fwd</quote> auf eine andere Maschine
umlenken?</para>
</question>
<answer>
<para>Der wahrscheinlichste Grund ist, daß Sie Network
Address Translation (NAT) brauchen und nicht die einfache
Weiterleitung von Pakete. Die <quote>fwd</quote>
Anweisung macht genau das, was da steht: Sie leitet
Pakete weiter; die Daten in den Paketen werden aber nicht
verändert. Ein Beispiel:</para>
<screen>01000 fwd <replaceable>10.0.0.1</replaceable> from any to <replaceable>foo 21</replaceable></screen>
<para>Wenn ein Paket mit dem Ziel
<replaceable>foo</replaceable> die Maschine mit dieser
Regel erreicht, wird das Paket an
<replaceable>10.0.0.1</replaceable> weitergeleitet; die
Zieladresse im Paket lautet aber immer noch
<replaceable>foo</replaceable>! Die Zieladresse wird
<emphasis>nicht</emphasis> in
<replaceable>10.0.0.1</replaceable> geändert. Die
meisten Rechner werden allerdings Pakete verwerfen, wenn
die Zieladresse des Paketes nicht mit der Adresse des
Rechners übereinstimmt. Das ist der Grund, warum
eine <quote>fwd</quote> Regel oft nicht den Effekt hat,
den der Benutzer wollte. Dieses Verhalten ist aber kein
Fehler, sondern erwünscht.</para>
<para>Wenn Sie einen Dienst auf eine andere Maschine
umleiten wollen, sollten Sie sich den <link
linkend="service-redirect">FAQ-Eintrag über die
Umleitung von Diensten</link> oder die Online-Hilfe zu
&man.natd.8; durchlesen. Auch in der <ulink
url="../../../../ports/index.html">Ports Sammlung</ulink> sind diverse
Hilfsprogramme für diesen Zweck enthalten.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="service-redirect">
<para>Wie kann ich Service-Requests von einer Maschine auf
eine andere umleiten?</para>
</question>
<answer>
<para>Sie können FTP-Requests (und andere Dienste) mit
dem Package <literal>socket</literal> umleiten, das im
Ports-Tree in der Kategorie <quote>sysutils</quote>
verfügbar ist. Ersetzen sie die Befehlszeile
für den Dienst einfach so, daß stattdessen
socket aufgerufen wird, zum Beispiel so:</para>
<programlisting>
ftp stream tcp nowait nobody /usr/local/bin/socket socket <replaceable>ftp.example.com</replaceable> <replaceable>ftp</replaceable>
</programlisting>
<para>wobei <replaceable>ftp.example.com</replaceable> und
<replaceable>ftp</replaceable> entsprechend der Host und
der Port sind, wohin umgeleitet werden soll.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="bandwidth-mgr-tool">
<para>Woher kann ich ein Bandbreiten-Managementtool
bekommen?</para>
</question>
<answer>
<para>Für FreeBSD gibt es drei
Bandbreiten-Managementtools. &man.dummynet.4; ist in
FreeBSD (um genau zu sein, in &man.ipfw.4;) integriert.
<ulink
url="http://www.csl.sony.co.jp/person/kjc/programs.html">ALTQ</ulink>
gibt es umsonst; Bandwidth Manager von <ulink
url="http://www.etinc.com/">Emerging Technologies</ulink>
ist ein kommerzielles Produkt.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="bpf-not-configured">
<para>Warum erhalte ich die Meldung <errorname>/dev/bpf0:
device not configured</errorname>?</para>
</question>
<answer>
<para>Der Berkeley-Paket-Filter (&man.bpf.4;) muß in
den Kernel eingebunden werden, bevor er von einem
Programme aus genutzt werden kann. Fügen Sie
folgendes zu Ihrer Kernelkonfigurationsdatei hinzu und
erstellen Sie einen neuen Kernel:</para>
<programlisting>pseudo-device bpf # Berkeley Packet Filter</programlisting>
<para>Nach dem Neustart müssen Sie den Device Node
erstellen. Wechseln Sie dazu in das Verzeichnis
<filename>/dev</filename> und führen Sie den folgenden
Befehl aus:</para>
<screen>&prompt.root; <userinput>sh MAKEDEV bpf0</userinput></screen>
<para>Weitere Informationen zur Erstellung von Geräten
finden Sie im <ulink
url="../handbook/kernelconfig-nodes.html">Handbucheintrag
über Device Nodes</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="mount-smb-share">
<para>Habe ich, analog zum smbmount von Linux, eine
Möglichkeit, auf ein freigegebenes Laufwerk einer
Windows-Maschine in meinem Netzwerk zuzugreifen.</para>
</question>
<answer>
<para>Benutzen Sie die Kernel-Erweiterungen und Benutzerprogramme
aus dem Programmpaket <application>SMBFS</application>. Das
Paket und weitergehende Informationen sind unter
<filename role="package">net/smbfs</filename> in den Ports
verfügbar; ab der Version 4.5 ist
<application>SMBFS</application> Bestandteil
des Basissystems.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="icmp-response-bw-limit">
<para>Was bedeutet die Meldung <quote>icmp-response
bandwidth limit 300/200 pps</quote> in meinen
Logfiles?</para>
</question>
<answer>
<para>Mit dieser Meldung teilt Ihnen der Kernel mit,
daß irgend jemand versucht, ihn zur Generierung von
zu vielen ICMP oder TCP reset (RST) Antworten zu
provozieren. ICMP Antworten sind oft das Ergebnis von
Verbindungsversuchen zu unbenutzten UDP Ports. TCP Resets
werden generiert, wenn jemand versucht, eine Verbindung zu
einem ungenutzten TCP Port aufzubauen. Die Meldungen
können unter anderem durch die folgenden Ereignisse
ausgelöst werden:</para>
<itemizedlist>
<listitem>
<para>Denial of Service (DoS) Angriffe mit der
Brechstange (und nicht durch Angriffe mit einzelnen
Paketen, die gezielt eine Schwachstelle des Systems
ausnutzen sollen).</para>
</listitem>
<listitem>
<para>Port Scans, bei denen versucht wird, Verbindungen
zu einer großen Anzahl von Ports (und nicht nur
einigen bekannten Ports) herzustellen.</para>
</listitem>
</itemizedlist>
<para>Die erste Zahl gibt an, wieviele Pakete vom Kernel
ohne das Limit versendet worden wären; die zweite
Zahl gibt das Limit an. Sie können das Limit mit
Hilfe der sysctl-Variable
<varname>net.inet.icmp.icmplim</varname> einstellen. Im
Beispiel wird das Limit auf <literal>300</literal> Pakete
pro Sekunde gesetzt:</para>
<screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim=300</userinput></screen>
<para>Wenn Sie zwar die Begrenzung benutzen möchten, aber
die Meldungen nicht in Ihren Logfiles sehen möchten,
können Sie die Meldungen mit der sysctl-Variable
<varname>net.inet.icmp.icmplim_output</varname>
abschalten:</para>
<screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim_output=0</userinput></screen>
<para>Falls Sie die Begrenzung ganz abschalten wollen,
können Sie die Sysctl-Variable
<varname>net.inet.icmp.icmplim</varname> auf
<literal>0</literal>. Wir raten Ihnen aus den oben
genannten Gründen dringend von diesem Schritt
ab.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="unknown-hw-addr-format">
<para>Was bedeutet die Meldung <errorname>arp: unknown
hardware address format</errorname>?</para>
</question>
<answer>
<para>Ein Gerät im lokalen Ethernet verwendet eine
MAC-Adresse in einem Format, das FreeBSD nicht kennt. Der
wahrscheinlichste Grund ist, daß jemand Experimente
mit einer Ethernet-Karte anstellt. Die Meldung tritt sehr
häufig in Netzwerken mit Cable Modems auf. Die
Meldung ist harmlos und sollte die Performance Ihres
Systems nicht negativ beeinflussen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="cvsup-missing-libs">
<para>Ich habe gerade CVSup installiert, aber das Programm bricht
mit Fehlermeldungen ab. Was ist da schief gelaufen?</para>
</question>
<answer>
<para>Schauen Sie bitte zuerst nach, ob Sie eine Fehlermeldung
wie die unten gezeigte erhalten.</para>
<programlisting>/usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found</programlisting>
<para>Solche Fehlermeldungen erhalten Sie, wenn Sie den
<filename role="package">net/cvsup</filename> Port auf einer
Maschine installieren, die kein
<application>XFree86</application>-System besitzt. Wenn Sie
das <acronym>GUI</acronym> von <application>CVSup</application>
benutzen wollen, müssen Sie
<application>XFree86</application> installieren. Wenn Sie
<application>CVSup</application> nur auf der Kommandozeile
benutzen wollen, entfernen Sie bitte den Port, den Sie gerade
installiert haben. Installieren Sie stattdessen den Port
<filename role="package">net/cvsup-without-gui</filename>.
Genauere Informationen finden Sie im
<ulink url="../handbook/cvsup.html">CVSup Abschnitt</ulink>
des Handbuchs.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="security">
<title>Sicherheit</title>
<qandaset>
<qandaentry>
<question id="extra-named-port">
<para>Wieso wartet BIND (<command>named</command>) sowohl auf Port
53 als auch auf einem hohen Port auf Anfragen?</para>
</question>
<answer>
<para>FreeBSD benutzt seit Version 3.0 eine Version von
BIND, die einen Port mit einer hohen, zufälligen
Nummer für den Versand von Anfragen nutzt. Wenn Sie
Port 53 für abgehende Anfragen benutzen wollen, um
durch eine Firewall zu kommen oder sich einfach nur besser
zu fühlen, können die folgenden Zeilen in
<filename>/etc/namedb/named.conf</filename>
eintragen.</para>
<programlisting>options {
query-source address * port * 53;
};</programlisting>
<para>Wenn Sie möchten, können Sie statt
<literal>*</literal> auch eine einzelne IP-Adresse
eintragen, um die Dinge noch weiter
einzuschränken.</para>
<para>Ach übrigens, herzlichen Glückwunsch. Es
ist eine sehr gute Angewohnheit, die Ausgaben von
&man.sockstat.1; durchzusehen und auf merkwürdige
Dinge zu achten.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="sendmail-port-587">
<para>Wieso wartet Sendmail neuerdings sowohl auf Port 587
als auch auf dem Standard-Port 25 auf Anfragen?</para>
</question>
<answer>
<para>Aktuelle Sendmail-Versionen unterstützen eine
neue Technik zur Einlieferung von Mails, die Port 587
nutzt. Diese Technik wird zwar noch nicht oft angewendet,
erfreut sich aber ständig steigenden
Popularität,</para>
</answer>
</qandaentry>
<qandaentry>
<question id="toor-account">
<para>Woher kommt dieser Benutzer <username>toor</username>
mit UID 0? Ist mein System gehackt worden?</para>
</question>
<answer>
<para>Keine Panik. <username>toor</username> ist ein
<quote>alternativer</quote> Account für den
Super-User (wenn man root rückwärts schreibt,
erhält man toor). Früher wurde er nur erzeugt,
wenn die Shell &man.bash.1; installiert wurde, heute wird
er auf jeden Fall erzeugt. Dieser Account ist für
die Verwendung mit einer alternativen Shell vorgesehen;
damit ist es nicht mehr erforderlich, die Shell von
<username>root</username> zu ändern. Dies ist
wichtig, wenn eine Shell verwendet wird, die nicht zum
Lieferumfang von FreeBSD gehört, zum Beispiel aus
einem Port oder einem Package. Diese Shells werden in der
Regel in <filename>/usr/local/bin</filename> installiert
und dieses Verzeichnis liegt standardmäßig auf
einem anderem Filesystem. Wenn die Shell von
<username>root</username> in
<filename>/usr/local/bin</filename> liegt und
<filename>/usr</filename> (oder das Filesystem, auf dem
<filename>/usr/local/bin</filename> liegt) nicht gemountet
werden kann, kann sich <username>root</username> nicht
mehr einloggen, um das Problem zu beheben. Es ist
allerdings möglich, das System zu rebooten und das
Problem im Single-User Modus zu lösen, da man hier
gefragt wird, welche Shell benutzt werden soll.</para>
<para>Einige Anwender benutzen <username>toor</username> mit
einer alternativen Shell für die tägliche Arbeit
und benutzen <username>root</username> (mit der
Standard-Shell) für den Single-User Modus und
für Notfälle. Standardmäßig kann man
sich nicht als <username>toor</username> anmelden, da der
Account kein gültiges Paßwort hat; Sie
müssen sich also als <username>root</username>
anmelden und ein Paßwort für
<username>toor</username> setzen, wenn Sie diesen Account
benutzen wollen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="suidperl">
<para>Warum funktioniert <command>suidperl</command> nicht
richtig?</para>
</question>
<answer>
<para>Aus Sicherheitsgründen wird <command>suidperl</command>
standardmäßig ohne das SUID-Bit installiert.
Der Systemadministrator kann das normale Verhalten mit dem
folgenden Befehl herstellen:</para>
<screen>&prompt.root; <userinput>chmod u+s /usr/bin/suidperl</userinput></screen>
<para>Wenn Sie wollen, daß <command>suidperl</command>
auch beim Update via Sourcecode das SUID-Bit erhält,
müssen Sie in <filename>/etc/make.conf</filename> die
Zeile <varname>ENABLE_SUIDPERL=true</varname>
einfügen, bevor Sie <command>make
buildworld</command> starten.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="ppp">
<title>PPP</title>
<qandaset>
<qandaentry>
<question id="userppp">
<para>Ich bekomme &man.ppp.8; nicht zum Laufen. Was mache
ich falsch?</para>
</question>
<answer>
<para>Sie sollten zuerst &man.ppp.8; (die Manualpage zu ppp)
und den <ulink
url="../handbook/ppp-and-slip.html#USERPPP">Abschnitt zu
PPP im Handbuch</ulink> lesen. Aktivieren Sie das Logging
mit folgendem Befehl:</para>
<programlisting>
set log Phase Chat Connect Carrier lcp ipcp ccp command
</programlisting>
<para>Dieser Befehl kann an der Eingabeaufforderung von
&man.ppp.8; eingegeben oder in die Konfigurationsdatei
<filename>/etc/ppp/ppp.conf</filename> eingetragen werden
(der beste Ort hierfür ist der Anfang des Abschnitts
<literal>default</literal>. Stellen Sie sicher, daß
die Datei <filename>/etc/syslog.conf</filename> die
folgenden Zeilen enthält:</para>
<programlisting>
!ppp
*.* /var/log/ppp.log
</programlisting>
<para>und, daß die Datei
<filename>/var/log/ppp.log</filename> existiert. Sie
können nun über die Logfiles eine Menge
darüber herausfinden, was geschieht. Es macht
nichts, wenn die Einträge in den Logfiles Ihnen gar
nichts sagen. Wenn Sie jemandem um Hilfe bitten
müssen, könnten sie für ihn von Nutzen
sein.</para>
<para>Falls Ihre Version von &man.ppp.8; den <command>set
log</command> Befehl nicht versteht, sollten Sie sich die
<ulink url="http://people.FreeBSD.org/~brian/">neueste
Version</ulink> herunterladen. Sie kann auf
Freebsd-Version 2.1.5 und höher erstellt
werden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-hangs">
<para>Warum hängt sich ppp auf, wenn ich es
benutze?</para>
</question>
<answer>
<para>Das liegt meistens daran, daß Ihr Rechnername
nicht aufgelöst werden kann. Um dieses Problem zu
lösen, müssen Sie sicherstellen, daß die
Datei <filename>/etc/hosts</filename> von Ihrem Resolver
zuerst genutzt wird. Dazu muß in der Datei
<filename>/etc/host.conf</filename> der Eintrag
<literal>hosts</literal> an die erste Stelle gesetzt
werden. Erstellen Sie dann einfach für Ihren lokalen
Rechner einen Eintrag in der Datei
<filename>/etc/hosts</filename>. Falls Sie kein lokales
Netzwerk besitzen, ändern Sie die
<hostid>localhost</hostid>-Zeile:</para>
<programlisting>
127.0.0.1 foo.example.com foo localhost
</programlisting>
<para>Andernfalls fügen Sie einfach einen weiteren
Eintrag für Ihren lokalen Rechner hinzu. Weitere
Details finden Sie in den betreffenden
Manualpages.</para>
<para>Wenn Sie fertig sind sollten Sie <command>ping -c1
`hostname`</command> erfolgreich ausführen
können.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-nodial-auto">
<para>Warum wählt &man.ppp.8; im
<literal>-auto</literal>-Modus nicht?</para>
</question>
<answer>
<para>Überprüfen Sie zunächst, ob Sie einen
Standard-Gateway eingestellt haben. Wenn Sie
<command>netstat -rn</command> ausführen, sollten Sie
zwei Einträge ähnlich den folgenden
sehen:</para>
<programlisting>
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.2 UGSc 0 0 tun0
10.0.0.2 10.0.0.1 UH 0 0 tun0
</programlisting>
<para>Hier wird angenommen, daß Sie die Adressen aus
dem Handbuch, der Manualpage oder aus der Datei
ppp.conf.sample benutzt haben. Falls Sie keine
Standardroute haben, kann es daran liegen, daß Sie
eine alte Version von &man.ppp.8; benutzen, die das Wort
<literal>HISADDR</literal> in der Datei ppp.conf nicht
versteht. Falls Ihre &man.ppp.8;-Version älter als
2.2.5 ist, ändern Sie die Zeile</para>
<programlisting>
add 0 0 HISADDR
</programlisting>
<para>in</para>
<programlisting>
add 0 0 10.0.0.2
</programlisting>
<para>Ein weiterer Grund dafür, daß die Zeile
für die Standardroute fehlt, könnte der sein,
daß Sie fälschlicherweise eine Standardroute in
der Datei <filename>/etc/rc.conf</filename> (diese Datei
hieß vor Version 2.2.2
<filename>/etc/sysconfig</filename>) eingetragen und die
folgende Zeile in <filename>ppp.conf</filename>
ausgelassen haben:</para>
<programlisting>
delete ALL
</programlisting>
<para>Lesen Sie in diesem Fall den Abschnitt <ulink
url="../handbook/ppp-and-slip.html#USERPPP-FINAL">Abschließende
Systemkonfiguration</ulink> des Handbuchs.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="no-route-to-host">
<para>Was bedeutet <errorname>No route to
host</errorname>?</para>
</question>
<answer>
<para>Dieser Fehler beruht für gewöhnlich auf
einem fehlenden Abschnitt</para>
<programlisting>
MYADDR:
delete ALL
add 0 0 HISADDR
</programlisting>
<para>in Ihrer Datei
<filename>/etc/ppp/ppp.linkup</filename>. Er ist nur
notwendig, wenn Sie eine dynamische IP-Adresse besitzen
oder die Adresse Ihres Gateways nicht kennen. Wenn Sie
den interaktiven Modus benutzen, können Sie folgendes
eingeben, nachdem Sie in den <literal>packet
mode</literal> gelangt sind (den Paket Modus erkennen Sie
an <acronym>PPP</acronym> im Prompt):</para>
<programlisting>
delete ALL
add 0 0 HISADDR
</programlisting>
<para>Weitere Details finden Sie im Abschnitt <ulink
url="../handbook/ppp-and-slip.html#USERPPP-DYNAMICIP">PPP
und Dynamische IP-Adressen</ulink> des Handbuchs.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="connection-threeminutedrop">
<para>Wieso werden meine Verbindungen nach ca. drei Minuten
beendet?</para>
</question>
<answer>
<para>Der Standardtimeout für &man.ppp.8; beträgt
drei Minuten. Er kann durch die Zeile</para>
<programlisting>
set timeout <replaceable>NNN</replaceable>
</programlisting>
<para>eingestellt werden, wobei
<replaceable>NNN</replaceable> die Inaktivität in
Sekunden, bevor die Verbindung geschlossen wird, angibt.
Falls <replaceable>NNN</replaceable> Null ist, wird die
Verbindung niemals aufgrund eines Timeouts geschlossen.
Es ist möglich, diesen Befehl in die Datei
<filename>ppp.conf</filename> einzubinden, oder ihn an der
Eingabeaufforderung im interaktiven Modus einzugeben.
Durch eine Verbindung zum Server-Socket von
<application>ppp</application> über &man.telnet.1;
oder &man.pppctl.8; ist es auch möglich, den Timeout
bei aktiver Verbindung anzupassen. Weitere Details finden
Sie in der Manualpage &man.ppp.8;.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-drop-heavy-load">
<para>Wieso bricht meine Verbindung bei hoher Auslastung
ab?</para>
</question>
<answer>
<para>Falls Sie Link-Quality-Reporting (LQR) konfiguriert
haben, ist es möglich, daß zu viele LQR-Pakete
zwischen Ihrer Maschine und dem verbundenen Rechner
verloren gehen. ppp folgert daraus, daß die
Verbindung nicht in Ordnung ist und schließt sie.
Vor FreeBSD Version 2.2.5 war LQR standardmäßig
aktiviert; nun ist es standardmäßig
deaktiviert. Es kann durch folgende Zeile deaktiviert
werden:</para>
<programlisting>
disable lqr
</programlisting>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-drop-random">
<para>Warum brechen meine Verbindungen nach unbestimmter
Zeit zusammen?</para>
</question>
<answer>
<para>Wenn die Qualität Ihrer Telefonleitung zu
schlecht oder bei Ihrem Anschluß die Option
(Telekomdeutsch: das Leistungsmerkmal) Anklopfen aktiviert
ist, kann es manchmal vorkommen, daß Ihr Modem
auflegt, weil es (fälschlicherweise) annimmt,
daß es das Trägersignal verloren hat.</para>
<para>Bei den meisten Modems gibt es eine
Einstellmöglichkeit, um anzugeben, wie tolerant es
gegenüber vorübergehenden Verlusten des
Trägersignals sein soll. Bei einem USR Sportster
wird dies zum Beispiel im Register S10 in Zehntelsekunden
angegeben. Um Ihr Modem toleranter zu machen, können
Sie zu Ihrem Wählbefehl die folgende
Sende-Empfangs-Sequenz hinzufügen:</para>
<programlisting>
set dial "...... ATS10=10 OK ......"
</programlisting>
<para>Weitere Information sollten Sie dem Handbuch Ihres
Modems entnehmen können.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-hangs-random">
<para>Warum hängen meine Verbindung nach einer
unbestimmten Zeit?</para>
</question>
<answer>
<para>Viele Leute machen Erfahrungen mit hängenden
Verbindungen ohne erkennbaren Grund. Als erstes muß
festgestellt werden, welche Seite der Verbindung
hängt.</para>
<para>Wenn Sie ein externes Modem benutzen, können Sie
einfach versuchen, &man.ping.8; zu benutzen, um zu sehen,
ob die <acronym>TD</acronym>-Anzeige aufleuchtet, wenn Sie
Daten übertragen. Falls sie aufleuchtet (und die
<acronym>RD</acronym>-Anzeige nicht), liegt das Problem am
anderen Ende. Falls <acronym>TD</acronym> nicht
aufleuchtet, handelt es sich um ein lokales Problem. Bei
einem internen Modem müssen Sie den Befehl
<literal>set server</literal> in Ihrer Datei
<filename>ppp.conf</filename> benutzen. Stellen Sie
über &man.pppctl.8; eine Verbindung zu &man.ppp.8;
her, wenn die Verbindung hängt. Falls Ihre
Netzwerkverbindung plötzlich wieder funktioniert (ppp
wurde durch die Aktivität auf dem Diagnose-Socket
wiederbelebt) oder Sie keine Verbindung bekommen
(vorausgesetzt, der Befehl <literal>set socket</literal>
wurde beim Start erfolgreich ausgeführt), handelt es
sich um ein lokales Problem. Falls Sie eine Verbindung
bekommen und die externe Verbindung weiterhin hängt,
aktivieren Sie lokales asynchrones Logging mit
<literal>set log local async</literal> und benutzen Sie
&man.ping.8; von einem anderen Fenster oder Bildschirm
aus, um die externe Verbindung zu benutzen. Das
asynchrone Logging zeigt Ihnen, welche Daten über die
Verbindung gesendet und empfangen werden. Falls Daten
hinausgehen, aber nicht zurückkommen, handelt es sich
um ein externes Problem.</para>
<para>Wenn Sie festgestellt haben, ob es sich um ein lokales
oder um ein externes Problem handelt, haben Sie zwei
Möglichkeiten:</para>
<itemizedlist>
<listitem>
<para>Wenn es ein externes Problem ist, lesen Sie bitte bei
<xref linkend="ppp-remote-not-responding"> weiter.</para>
</listitem>
<listitem>
<para>Handelt es sich um ein lokales Problem, lesen Sie bitte
<xref linkend="ppp-hung">.</para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-remote-not-responding">
<para>Was kann ich machen, wenn die Gegenstelle nicht
antwortet?</para>
</question>
<answer>
<para>Hier können Sie wenig tun. Die meisten ISPs
werden ablehnen, Ihnen zu helfen, wenn Sie kein
Betriebssystem von Microsoft benutzen. Sie können
<literal>enable lqr</literal> in Ihrer Datei
<filename>ppp.conf</filename> angeben, wodurch &man.ppp.8;
ermöglicht wird, ein externes Versagen zu erkennen
und aufzulegen, aber diese Erkennung ist relativ langsam
und deshalb nicht besonders nützlich. Evtl. sagen
Sie Ihrem ISP nicht, daß Sie user-PPP
benutzen...</para>
<para>Versuchen Sie zunächst, jegliche Datenkompression
auszuschalten, indem Sie folgendes zu Ihrer Konfiguration
hinzufügen:</para>
<programlisting>
disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
deny pred1 deflate deflate24 protocomp acfcomp shortseq vj
</programlisting>
<para>Stellen Sie nun wieder eine Verbindung her, um
festzustellen, ob sich etwas geändert hat. Falls es
nun besser läuft oder falls das Problem
vollständig behoben ist, versuchen Sie durch
schrittweises Ändern der Einstellungen festzustellen,
welche Einstellung den Unterschied bewirkt. Hierdurch
erhalten Sie schlüssige Fakten für ein Gespräch
mit Ihrem ISP (andererseits wird hierdurch offensichtlich,
daß Sie kein Microsoft-Produkt benutzen).</para>
<para>Aktivieren Sie asynchrones Logging und warten Sie, bis
die Verbindung wieder hängt, bevor Sie sich an Ihren
ISP wenden. Hierzu kann einiges an Plattenplatz
nötig sein. Die Daten, die als letztes von dem Port
gelesen wurden, könnten von Interesse sein. Für
gewöhnlich handelt es sich um ASCII-Text, der sogar
den Fehler beschreiben kann (<quote>Memory fault, core
dumped</quote>).</para>
<para>Falls Ihr ISP hilfsbereit ist, sollte er in der Lage
sein, an seinem Ende das Logging zu aktivieren und wenn
das nächste Mal die Verbindung abbricht, könnte
er Ihnen mitteilen, worin das Problem auf seiner Seite
besteht. Gerne können Sie Details auch an &a.brian;
schicken, oder Ihren ISP bitten, sich direkt an ihn zu
wenden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-hung">
<para>Was kann ich tun, wenn sich &man.ppp.8;
aufhängt?</para>
</question>
<answer>
<para>In diesem Fall erstellen Sie am besten &man.ppp.8;
neu, indem Sie <literal>CFLAGS+=-g</literal> und
<literal>STRIP=</literal> am Ende des Makefiles
einfügen und dann <command>make clean && make
&& make install</command> ausführen. Suchen
Sie die Prozeßnummer von &man.ppp.8; mit <command>ps
ajxww | fgrep ppp</command>, wenn &man.ppp.8; sich
aufhängt und führen Sie <command> gdb ppp
<replaceable>PID</replaceable></command> aus. Am
gdb-Prompt können Sie <command>bt</command> benutzen,
um einen Auszug von Stack zu erhalten.</para>
<para>Senden Sie die Ergebnisse an &a.brian;.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-loginok-thennothing">
<para>Warum passiert nach der Nachricht <quote>Login
OK!</quote> nichts?</para>
</question>
<answer>
<para>Bei Freebsd-Versionen vor 2.2.5 wartete &man.ppp.8;
darauf, daß der Partner das Line Control Protocol
(LCP) initiiert. Viele ISPs starten nicht mit der
Initiierung, sondern erwarten dies vom Client. Benutzen
Sie die folgende Zeile, um &man.ppp.8; zu veranlassen, LCP
zu initiieren:</para>
<programlisting>
set openmode active
</programlisting>
<note>
<para>Für gewöhnlich schadet es nicht, wenn
beide Seiten versuchen, Verhandlungen einzuleiten.
Deshalb ist openmode nun standardmäßig aktiv.
Im nächsten Abschnitt wird allerdings erklärt,
in welchen Fällen es <emphasis>doch</emphasis>
schadet.</para>
</note>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-same-magic">
<para>Ich sehe ständig Fehlermeldungen über
gleiche <quote>Magic Numbers</quote> Was heißt das?</para>
</question>
<answer>
<para>Nach dem Aufbau einer Verbindung kann es sein,
daß Sie in der Logdatei gelegentlich Meldungen mit
dem Hinweis <quote>magic is the same</quote> sehen.
Manchmal sind diese Meldungen harmlos und manchmal bricht
die eine oder andere Seite die Verbindung ab. Die meisten
Implementationen von PPP können dieses Problem nicht
handhaben und Sie werden wiederholte
Konfigurationsanforderungen und -bestätigungen in der
Logdatei finden, bis &man.ppp.8; schließlich aufgibt
und die Verbindung beendet.</para>
<para>Dies geschieht normalerweise auf Servern mit langsamen
Festplatten, bei denen ein getty auf dem Port
ausgeführt und &man.ppp.8; nach dem Einloggen von
einem Login-Skript oder einem Programm aus gestartet wird.
Ich habe auch davon gehört, daß dies bei der
Benutzung von slirp regelmäßig auftritt. Der
Grund hierfür ist, daß das ppp auf der
Client-Seite in der Zeit, die benötigt wird, getty zu
beenden und ppp zu starten, bereits beginnt, Line Control
Protocol (LCP) Pakete zu senden. Da ECHO auf dem
Serverport weiterhin eingeschaltet ist, werden diese
Pakete zum &man.ppp.8; auf der Client-Seite
<quote>reflektiert</quote>.</para>
<para>Ein Teil der LCP-Verhandlungen ist die Einrichtung
einer <quote>Magic Number</quote> für jede Seite der
Verbindung, damit <quote>Echos</quote> erkannt werden können.
Das Protokoll besagt, daß, wenn der Partner
versucht, die gleiche <quote>Magic Number</quote> auszuhandeln,
ein NAK zurückgesendet und eine neue "Magic Number"
gewählt werden soll. Während der Server das
ECHO eingeschaltet hat, sendet der Client LCP Pakete,
sieht die gleiche <quote>Magic Number</quote> im reflektierten
Paket und erzeugt ein NAK. Er sieht auch das reflektierte NAK
(was bedeutet, daß &man.ppp.8; seine "Magic Number"
ändern muß). Hierdurch wird eine Vielzahl von
Änderungen der <quote>Magic Number</quote> hervorgerufen,
die sich allesamt im tty-Puffer des Servers ansammeln. Sobald
&man.ppp.8; auf dem Server startet, wird es mit
Änderungen der <quote>Magic Number</quote> überflutet
und entscheidet, daß es sich zur Genüge mit den
LCP-Verhandlungen beschäftigt hat und gibt auf. Und
während sich der Client noch darüber freut,
daß er keine weiteren Reflexionen sieht, wird ihm
gemeldet, daß der Server auflegt.</para>
<para>Dies kann verhindert werden, indem dem Partner durch
die folgende Zeile in der Datei
<filename>ppp.conf</filename> erlaubt wird, mit der
Verhandlung zu beginnen:</para>
<programlisting>
set openmode passive
</programlisting>
<para>Hierdurch wird &man.ppp.8; mitgeteilt, darauf zu
warten, daß der Server mit den LCP-Verhandlungen
beginnt. Einige Server starten jedoch nie mit der
Verhandlungen; falls dies der Fall ist, können Sie
folgendes tun:</para>
<programlisting>
set openmode active 3
</programlisting>
<para>Hierdurch bleibt &man.ppp.8; für drei Sekunden
passiv und fängt dann erst an, LCP-Anforderungen zu
senden. Falls der Partner während dieser Zeit
beginnt, Anforderungen zu senden, wird &man.ppp.8; direkt
antworten und nicht erst, nachdem die drei Sekunden
abgelaufen sind.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-lcp-constant">
<para>Die LCP-Verhandlungen dauern an, bis die Verbindung
geschlossen wird. Was mache ich falsch?</para>
</question>
<answer>
<para>Es gibt eine Fehlfunktion in der Implementierung von
&man.ppp.8;, die darin besteht, daß LCP-, CCP- &
IPCP-Antworten nicht mit den ursprünglichen
Anforderungen assoziiert werden. Für den Fall,
daß eine Implementation von PPP mehr als sechs
Sekunden langsamer ist, als die andere Seite, resultiert
das darin, daß die andere Seite zwei weitere
LCP-Konfigurationsanforderungen sendet, was fatale
Auswirkungen hat.</para>
<para>Stellen Sie sich vor, wir hätten es mit zwei
Implementierungen <hostid>A</hostid> und
<hostid>B</hostid> zu tun. <hostid>A</hostid> beginnt
unmittelbar nach der Verbindung, LCP-Anforderungen zu
senden und <hostid>B</hostid> benötigt sieben
Sekunden, zu starten. Wenn <hostid>B</hostid> startet,
hat <hostid>A</hostid> bereits drei LCP-Anforderungen
gesendet. Wir nehmen an, daß ECHO ausgeschaltet
ist; andernfalls würden wir Probleme mit der "Magic
Number" beobachten, wie bereits im vorherigen Abschnitt
beschrieben. <hostid>B</hostid> sendet eine Anforderung
und anschließend eine Bestätigung der ersten
Anforderung von <hostid>A</hostid>. Dies führt dazu,
daß <hostid>A</hostid> in den Zustand
<acronym>OPENED</acronym> übergeht und eine
Bestätigung (die erste) zurück an
<hostid>B</hostid> sendet. In der Zwischenzeit sendet
<hostid>B</hostid> zwei weitere Bestätigungen als
Antwort auf die zusätzlichen Anforderungen, die von
<hostid>A</hostid> gesendet worden sind, bevor
<hostid>B</hostid> gestartet ist. <hostid>B</hostid>
empfängt dann die erste Bestätigung von
<hostid>A</hostid> und geht in den Zustand
<acronym>OPENED</acronym> über. <hostid>A</hostid>
empfängt die zweite Bestätigung von
<hostid>B</hostid>, geht zurück in den Zustand
<acronym>REQ-SENT</acronym> und sendet eine
weitere (vierte) Anforderung entsprechend dem RFC.
<hostid>A</hostid> empfängt dann die dritte
Bestätigung und geht in den Zustand
<acronym>OPENED</acronym> über. In der Zwischenzeit
empfängt <hostid>B</hostid> die vierte Anforderung
von <hostid>A</hostid>, wechselt in den Zustand
<acronym>ACK-SENT</acronym> und sendet eine weitere
(zweite) Anforderung und (vierte) Bestätigung
entsprechend dem RFC. <hostid>A</hostid> erhält die
Anforderung, geht in den Zustand
<acronym>REQ-SENT</acronym> über, sendet eine weitere
Anforderung, erhält unverzüglich die
nächste Bestätigung und geht in
<acronym>OPENED</acronym> über.</para>
<para>Das geht so weiter, bis eine Seite erkennt, daß
man zu keinem Ergebnis gelangt und aufgibt.</para>
<para>Am besten verhindert man solche Situationen, indem man
eine Seite als <literal>passiv</literal> konfiguriert,
das heißt dafür sorgt, daß eine Seite darauf
wartet, daß die andere mit den Verhandlungen beginnt. Das
kann durch den Befehl</para>
<programlisting>
set openmode passive
</programlisting>
<para>geschehen. Diese Option sollten Sie mit Vorsicht
genießen. Folgenden Befehl sollten Sie benutzen, um
die Wartezeit auf den Beginn der Verhandlungen des
Partners von &man.ppp.8; zu begrenzen:</para>
<programlisting>
set stopped N
</programlisting>
<para>Alternativ kann der Befehl</para>
<programlisting>
set openmode active <replaceable>N</replaceable>
</programlisting>
<para>(wobei <replaceable>N</replaceable> die Wartezeit in
Sekunden vor Beginn der Verhandlungen angibt) benutzt
werden. Weitere Details finden Sie in den
Manualpages.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-lockups">
<para>Warum hängt sich &man.ppp.8; kurz nach Aufbau der
Verbindung weg?</para>
</question>
<answer>
<para>Bei FreeBSD-Versionen vor 2.2.5 konnte es passieren,
daß Ihre Verbindung kurz nach dem Aufbau deaktiviert
wurde, weil &man.ppp.8; die Verhandlungen der Kompression
Predictor1 falsch handhabte. Das passiert nur dann, wenn
beide Seiten versuchen, ein unterschiedliches
Kompressionsprotokoll (Compression Control Protocol (CCP))
auszuhandeln. Dieses Problem ist bereits behoben, falls
Sie aber noch eine alte Version von &man.ppp.8; verwenden,
können Sie es mit Hilfe der folgenden Zeile
umgehen:</para>
<programlisting>
disable pred1
</programlisting>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-shell-test-lockup">
<para>Warum reagiert &man.ppp.8; nicht mehr, wenn ich es mit
shell verlassen habe?</para>
</question>
<answer>
<para>Wenn Sie den Befehl <command>shell</command> oder
<command>!</command> benutzen, führt &man.ppp.8; eine
Shell aus (falls Sie Argumente übergeben haben,
führt &man.ppp.8; diese Argumente aus). &man.ppp.8;
wartet auf die Beendigung des Befehls, bevor es seine
Arbeit fortsetzt. Falls Sie versuchen, die PPP-Verbindung
während der Programmausführung zu benutzen, wird
es so aussehen, als wäre die Verbindung eingefroren.
Das liegt daran, daß &man.ppp.8; auf die
Beendigung des Befehls wartet.</para>
<para>Falls Sie solche Befehle verwenden möchten,
benutzen Sie stattdessen den Befehl
<command>!bg</command>. Hierdurch wird der angegebene
Befehl im Hintergrund ausgeführt und &man.ppp.8; kann
fortfahren, die Verbindung zu bedienen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-nullmodem">
<para>Warum wird &man.ppp.8; niemals beendet, wenn ich es
über ein Null-Modem-Kabel benutze?</para>
</question>
<answer>
<para>Es gibt keine Möglichkeit für &man.ppp.8;,
automatisch festzustellen, ob eine direkte Verbindung
beendet worden ist. Das liegt an den Leitungen, die bei
einem seriellen Null-Modem-Kabel benutzt werden. Wenn Sie
diese Art der Verbindung verwenden, sollte LQR immer
aktiviert werden:</para>
<programlisting>
enable lqr
</programlisting>
<para>LQR wird standardmäßig akzeptiert, wenn es
vom Partner ausgehandelt wird.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-auto-noreasondial">
<para>Warum wählt &man.ppp.8; im Modus -auto ohne
Grund?</para>
</question>
<answer>
<para>Falls &man.ppp.8; unerwarteterweise wählt,
müssen Sie den Grund herausfinden und Wählfilter
(dfilters) einsetzen, um dies zu verhindern.</para>
<para>Benutzen Sie die folgende Zeile, um den Grund
herauszufinden:</para>
<programlisting>
set log +tcp/ip
</programlisting>
<para>Dadurch wird jeglicher Verkehr über die
Verbindung geloggt. Wenn das nächste mal unerwartet
eine Verbindung hergestellt wird, werden Sie den Grund
zusammen mit einer hilfreichen Zeitangabe in der Logdatei
finden.</para>
<para>Sie können nun das Wählen aufgrund dieser
Bedingungen verhindern. Normalerweise wird diese Art von
Problemen durch Anfragen an den DNS verursacht. Um zu
verhindern, daß DNS-Anfragen den Aufbau der
Verbindung hervorrufen (das verhindert
<emphasis>nicht</emphasis>, daß Pakete über
eine bestehende Verbindung gesendet werden), benutzen Sie
die folgenden Zeilen:</para>
<programlisting>
set dfilter 1 deny udp src eq 53
set dfilter 2 deny udp dst eq 53
set dfilter 3 permit 0/0 0/0
</programlisting>
<para>Dies ist nicht immer brauchbar, weil es effektiv Ihre
Fähigkeit, auf Anforderung wählen zu können
einschränkt - die meisten Programme müssen eine
DNS-Anfrage durchführen, bevor Sie andere, das
Netzwerk betreffenden Dinge tun können.</para>
<para>Im Fall von DNS sollten Sie versuchen, herauszufinden,
welches Programm tatsächlich versucht, einen
Hostnamen aufzulösen. Sehr oft handelt es sich hier
um &man.sendmail.8;. Sie sollten
sicherstellen, daß Sie sendmail in der
Konfigurationsdatei sagen, daß keine DNS-Anfragen
durchführen soll. Lesen Sie den Abschnitt zur <link
linkend="ispmail">Mail-Konfiguration</link>, um Details
zur Erstellung Ihrer eigenen Konfigurationsdatei und
darüber, was dort angegeben werden sollte, zu
erfahren. Sie könnten z.B. die folgende Zeile in
Ihre <filename>.mc</filename>-Datei einfügen:</para>
<programlisting>
define(`confDELIVERY_MODE', `d')dnl
</programlisting>
<para>Das veranlaßt sendmail dazu, alles in eine
Warteschlange einzureihen, bis die Warteschlange
verarbeitet wird (normalerweise wird sendmail mit
<option>-bd -q30m</option> aufgerufen, was besagt,
daß die Warteschlange alle 30 Minuten abgearbeitet
wird) oder, bis ein <command>sendmail -q</command>
ausgeführt wird (z.B. aus Ihrer Datei ppp.linkup
heraus).</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ccp-errors">
<para>Was bedeuten diese CCP-Fehler?</para>
</question>
<answer>
<para>Ich sehe ständig folgende Fehler in meiner
Logdatei:</para>
<programlisting>
CCP: CcpSendConfigReq
CCP: Received Terminate Ack (1) state = Req-Sent (6)
</programlisting>
<para>Das liegt daran, daß &man.ppp.8; versucht, die
Komprimierung Predictor1 auszuhandeln und der Partner
über keinerlei Komprimierung verhandeln will. Die
Meldungen sind harmlos, aber wenn Sie sie beseitigen
möchten, können Sie die Komprimierung Predictor1
auch lokal ausschalten:</para>
<programlisting>
disable pred1
</programlisting>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-lockup-ioerrors">
<para>Warum hängt sich &man.ppp.8; während einer
Dateiübertragung mit IO-Fehlern auf?</para>
</question>
<answer>
<para>Unter FreeBSD 2.2.2 und frühere gab es einen Bug
im Tun-Treiber, der ankommende Pakete die
größer als die MTU der Tun-Schnittstelle sind,
ablehnt. Der Empfang eines Paketes größer der
MTU resultiert in einem IO-Fehler, der über syslogd
geloggt wird.</para>
<para>Die PPP-Spezifikation besagt, daß eine MTU von
1500 <emphasis>immer</emphasis> als Minimum akzeptiert
werden sollte, ungeachtet aller LCP-Verhandlungen. Es ist
deshalb möglich, daß Sie die MTU auf unter 1500
herabsetzen, Ihr ISP wird trotzdem Pakete der
Größe 1500 übertragen und Sie werden auf
diese Fehlfunktion stoßen, die Ihre Verbindung
lahmlegt.</para>
<para>Das Problem kann umgangen werden, indem unter FreeBSD
2.2.2 und früher niemals eine MTU von weniger als
1500 gesetzt wird.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-connectionspeed">
<para>Warum loggt ppp die Geschwindigkeit meiner Verbindung
nicht?</para>
</question>
<answer>
<para>Um alle Zeilen Ihrer <quote>Modemkonversation</quote>
mitzuloggen, müssen Sie folgendes einstellen:</para>
<programlisting>
set log +connect
</programlisting>
<para>Dies veranlaßt &man.ppp.8; dazu, alles bis zur
letzten angeforderten <quote>expext</quote>-Zeile
mitzuloggen.</para>
<para>Falls Sie die Geschwindigkeit Ihrer Verbindung
erfahren möchten und PAP oder CHAP (und deshalb nach
dem CONNECT im Wählskript nichts mehr zu
<quote>chatten</quote> haben - kein <literal>set
login</literal>-Skript), müssen Sie sicherstellen,
daß Sie &man.ppp.8; anweisen, die gesamte
CONNECT-Zeile zu <quote>erwarten</quote>, etwa so:</para>
<programlisting>
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"
</programlisting>
<para>Hier bekommen wir unser CONNECT, senden nichts,
erwarten dann einen Line-Feed, der &man.ppp.8; zwingt, die
gesamte CONNECT-Antwort zu lesen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-ignores-backslash">
<para>Warum ignoriert &man.ppp.8; das Zeichen
<literal>\</literal> in meinem Chat-Skript?</para>
</question>
<answer>
<para>ppp analysiert jede Zeile in Ihrer
Konfigurationsdatei, damit es Zeichenketten wie z.B.
<literal>set phone "123 456 789"</literal> korrekt
interpretieren kann (und erkennen, daß es sich bei
der Nummer tatsächlich nur um
<emphasis>ein</emphasis> Argument handelt). Um das
Zeichen <literal>"</literal> anzugeben, müssen
Sie ihm einen Backslash (<literal>\</literal>)
voranstellen.</para>
<para>Wenn der Chat-Interpreter jedes Argument analysiert,
reinterpretiert er die Argumente, um irgendwelche
speziellen Escape-Sequenzen wie z.B. <literal>\P</literal>
oder <literal>\T</literal> (sehen Sie in die Manualpage)
zu finden. Das Ergebnis dieser Doppelanalyse ist,
daß Sie daran denken müssen, die richtige
Anzahl an Escape-Zeichen zu verwenden.</para>
<para>Falls Sie tatsächlich das Zeichen
<literal>\</literal> z.B. zu Ihrem Modem senden
möchten, brauchen Sie etwas ähnliches,
wie:</para>
<programlisting>
set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"
</programlisting>
<para>woraus sich folgende Zeichen ergeben:</para>
<programlisting>
ATZ
OK
AT\X
OK
</programlisting>
<para>oder</para>
<programlisting>
set phone 1234567
set dial "\"\" ATZ OK ATDT\\T"
</programlisting>
<para>was folgende Zeichen ergibt:</para>
<programlisting>
ATZ
OK
ATDT1234567
</programlisting>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-segfault-nocore">
<para>Warum gibt es die Datei <filename>ppp.core</filename>
nicht, wenn &man.ppp.8; einen Segmentation Fault erzeugt
hat?</para>
</question>
<answer>
<para>Weder &man.ppp.8; noch andere Programme sollten
Core-Dumps erzeugen. Da &man.ppp.8; mit der effektiven
Benutzerkennung 0 ausgeführt wird, wird das
Betriebssystem &man.ppp.8;'s Coreimage nicht auf die
Festplatte schreiben, bevor es &man.ppp.8; beendet hat.
Falls &man.ppp.8; jedoch tatsächlich aufgrund einer
Speicherverletzung abbricht <emphasis>und</emphasis> Sie
die aktuellste Version (siehe Anfang dieses Kapitels)
benutzen, dann sollten Sie folgendes tun:</para>
<screen>&prompt.user; <userinput>tar xfz ppp-*.src.tar.gz</userinput>
&prompt.user; <userinput>cd ppp*/ppp</userinput>
&prompt.user; <userinput>echo STRIP= >>Makefile</userinput>
&prompt.user; <userinput>echo CFLAGS+=-g >>Makefile</userinput>
&prompt.user; <userinput>make clean all</userinput>
&prompt.user; <userinput>su</userinput>
&prompt.root; <userinput>make install</userinput>
&prompt.root; <userinput>chmod 555 /usr/sbin/ppp</userinput></screen>
<para>Nun ist die installierte Version von &man.ppp.8; mit
einem Debugger ausführbar. Sie können
&man.ppp.8; nun nur noch als <username>root</username>
ausführen, da alle vorherigen Zugriffsrechte
aufgehoben worden sind. Achten Sie darauf, in welchem
Verzeichnis Sie sich gerade befinden, wenn Sie &man.ppp.8;
starten.</para>
<para>Wenn nun wieder eine Speicherverletzung auftreten
sollte, wird &man.ppp.8; einen Speicherauszug erzeugen,
den Sie in der Datei <filename>ppp.core</filename> finden.
Sie sollten dann folgendes tun:</para>
<screen>&prompt.user; <userinput>su</userinput>
&prompt.root; <userinput>gdb /usr/sbin/ppp ppp.core</userinput>
<prompt>(gdb)</prompt> <userinput>bt</userinput>
.....
<prompt>(gdb)</prompt> <userinput>f 0</userinput>
....
<prompt>(gdb)</prompt> <userinput>i args</userinput>
....
<prompt>(gdb)</prompt> <userinput>l</userinput>
.....</screen>
<para>Mit Hilfe all dieser Informationen sollte es
möglich sein, das Problem zu diagnostizieren.</para>
<para>Falls Sie mit dem Umgang mit gdb vertraut sind,
könnten Sie weitere Einzelheiten herausfinden, z.B.
wodurch der Fehler tatsächlich hervorgerufen wurde
und die Adressen & Werte der betreffenden
Variablen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-autodialprocess-noconnect">
<para>Warum bekommt das Programm, das eine automatische
Anwahl ausgelöst hat, keine Verbindung?</para>
</question>
<answer>
<para>Dies war ein bekanntes Problem bei
&man.ppp.8;-Konfigurationen, bei denen automatisch
dynamische, lokale IP-Adressen mit dem Partner
ausgehandelt werden. In der aktuellsten Version ist das
Problem behoben - suchen Sie in den Manualpages nach
<literal>iface</literal>.</para>
<para>Das Problem bestand darin, daß, wenn das erste
Programm &man.connect.2; aufruft, die IP-Adresse der
tun-Schnittstelle dem Socketendpunkt zugeordnet wird. Der
Kernel erstellt das erste ausgehende Paket und schreibt es
in das tun-Gerät. &man.ppp.8; liest dann das Paket
und baut eine Verbindung auf. Falls die
Schnittstellenadresse sich nun aufgrund &man.ppp.8;s
dynamischer Adreßzuordnung ändert, wird der
originale Socketendpunkt ungültig. Alle weiteren
Pakete, die zum Partner gesendet werden, werden für
gewöhnlich verworfen. Selbst wenn sie nicht
verworfen werden würden, würden alle Antworten
nicht an den betreffenden Rechner gelangen, weil die
IP-Adresse nicht mehr zu diesem Rechner
gehört.</para>
<para>Theoretisch gibt es mehrere Möglichkeiten, dieses
Problem anzugehen. Am schönsten wäre es, wenn
der Partner die gleiche IP-Adresse wieder zuordnen
würde, wenn möglich <literal>:-)</literal> Die
derzeitige Version von &man.ppp.8; tut das, aber die
meisten anderen Implementierungen nicht.</para>
<para>Die einfachste Maßnahme von unserer Seite
wäre die, niemals die IP-Adresse der
tun-Schnittstelle zu ändern, sondern stattdessen alle
ausgehenden Pakete so zu ändern, daß als
Absender-IP-Adresse anstelle der IP-Adresse der
Schnittstelle die ausgehandelte IP-Adresse gesetzt wird.
Das ist im wesentlichen das, was durch die Option
<literal>iface-alias</literal> in der aktuellsten Version
von &man.ppp.8; bewirkt wird (mit Unterstützung von
&man.libalias.3; und &man.ppp.8;'s <option>-nat</option>
Schalter) - alle Schnittstellenadressen werden beibehalten
und auf die letzte ausgehandelte Adresse
umgesetzt.</para>
<para>Eine andere Alternative (und wahrscheinlich die
zuverlässigste) wäre die, einen Systemaufruf zu
implementieren der die IP-Adressen aller verbundenen
Sockets von einer Adresse in eine andere ändert.
&man.ppp.8; würde diesen Aufruf benutzen, um die
Sockets aller laufenden Programme zu ändern, nachdem
eine neue IP-Adresse ausgehandelt worden ist. Der gleiche
Systemaufruf könnte von DHCP-Clients benutzt werden,
wenn sie gezwungen werden, einen re-bind() auf ihren
Sockets auszuführen.</para>
<para>Noch eine andere Möglichkeit wäre die, das
Aktivieren von Schnittstellen ohne IP-Adresse zu erlauben.
Ausgehende Paketen würde die IP-Adresse
255.255.255.255 gegeben, bis der erste ioctl() mit
SIOCAIFADDR erfolgt. Dies würde in der
vollständigen Verbindung des Sockets resultieren. Es
wäre die Aufgabe von &man.ppp.8;, die
Absender-IP-Adresse zu ändern, allerdings nur dann,
wenn sie 255.255.255.255 lautet und nur die IP-Adresse und
IP-Prüfsumme müßten geändert werden.
Dies wäre allerdings keine besonders elegante
Lösung, da der Kernel fehlerhafte Pakete an eine
unzureichend konfigurierte Schnittstelle senden
würde, in der Annahme, daß andere Mechanismen
in der Lage sind, diese Dinge rückwirkend zu
beheben.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ppp-nat-games">
<para>Warum laufen die meisten Spiele mit dem <option>-nat</option>
Schalter nicht?</para>
</question>
<answer>
<para>Der Grund dafür, daß Spiele und andere
Programme nicht funktionieren, wenn libalias benutzt wird,
ist der, daß der Rechner außerhalb des lokalen
Netzes versucht, eine Verbindung aufzubauen und
(unaufgefordert) UDP-Pakete an den Rechner innerhalb des
lokalen Netzes zu senden. Die Software, die für die
NAT zuständig ist, weiß nicht, daß sie
diese Pakete an den internen Rechner weiterleiten
soll.</para>
<para>Um dies zu beheben, stellen Sie zunächst sicher,
daß die Software, mit der Sie Probleme haben, die
einzige ist, die gerade läuft. Benutzen Sie dann
entweder tcpdump auf der tun-Schnittstelle des Gateways
oder aktivieren Sie auf dem Gateway das Logging von TCP/IP
(<literal>set log +tcp/ip</literal>) unter
&man.ppp.8;.</para>
<para>Wenn Sie nun das betreffende Programm starten, sollten
Sie sehen, wie Pakete den Gateway-Rechner passieren. Wenn
von außen etwas zurückkommt, wird es ignoriert
(das ist das Problem). Merken Sie sich die Portnummer
dieser Pakete und beenden Sie das betreffende Programm.
Wiederholen Sie diesen Schritt einige Male, um
festzustellen, ob die Portnummern konsistent sind. Falls
dem so ist, wird die folgende Zeile im entsprechenden
Abschnitt von <filename>/etc/ppp/ppp.conf</filename>
dafür sorgen, daß das Programm
funktioniert:</para>
<programlisting>
nat port <replaceable>proto</replaceable> <replaceable>internalmachine</replaceable>:<replaceable>port</replaceable> <replaceable>port</replaceable>
</programlisting>
<para>wobei für <replaceable>proto</replaceable>
entweder <literal>tcp</literal> oder
<literal>udp</literal> zu setzen ist,
<replaceable>internalmachine</replaceable> den Rechner
bezeichnet, an den die Pakete geschickt werden sollen und
<replaceable>port</replaceable> die betreffende
Portnummer.</para>
<para>Sie können das Programm nicht auf einem anderen
Rechner benutzen, ohne die obige Zeile abzuändern und
die Benutzung des Programms auf zwei internen Rechnern
steht außer Frage - schließlich sieht die
Außenwelt Ihr gesamtes internes Netz so, als
wäre es ein einzelner Rechner.</para>
<para>Falls die Portnummern nicht konsistent sind, gibt es
drei weitere Optionen:</para>
<orderedlist>
<listitem>
<para>Ermöglichen Sie die Unterstützung durch
libalias. Beispiele für <quote>spezielle
Fälle</quote> finden Sie in
<filename>/usr/src/lib/libalias/alias_*.c</filename>
(<filename>alias_ftp.c</filename> ist ein schöner
Prototyp). Hierzu gehört für
gewöhnlich das Lesen bestimmter, erkannter,
ausgehender Pakete, die Identifizierung der
Instruktion, die den entfernten Rechner dazu
veranlaßt, auf einem bestimmten (wahlfreien)
Port eine Verbindung zurück zum lokalen Rechner
herzustellen, sowie das Erstellen einer
<quote>Route</quote> in der Aliastabelle, so daß
nachfolgende Pakete wissen, wohin sie
gehören.</para>
<para>Dieses ist zwar die komplizierteste Lösung,
aber die beste, die auch dafür sorgt, daß
die Software auf mehreren Rechnern
funktioniert.</para>
</listitem>
<listitem>
<para>Benutzen Sie einen Proxy. Die Anwendung
könnte z.B. socks5 unterstützen, oder (wie
im Fall von <quote>cvsup</quote>) eine Option
<quote>passiv</quote> besitzen, die stets verhindert,
daß verlangt wird, daß der Partner eine
Verbindung zurück zur lokalen Maschine
aufbaut.</para>
</listitem>
<listitem>
<para>Leiten Sie mit <literal>nat addr</literal> alles
zur lokalen Maschine um. Dieses Vorgehen ähnelt
dem mit einem Vorschlaghammer.</para>
</listitem>
</orderedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="useful-port-numbers">
<para>Hat jemand eine Liste mit nützlichen Portnummern
erstellt?</para>
</question>
<answer>
<para>Noch nicht, aber hieraus könnte eine solche
entstehen (falls Interesse besteht). In jedem Beispiel
sollte <replaceable>internal</replaceable> durch die
IP-Adresse der Maschine ersetzt werden, auf der das Spiel
laufen soll.</para>
<itemizedlist>
<listitem>
<para><application>Asheron's Call</application></para>
<para><literal>nat port udp
<replaceable>internal</replaceable>:65000
65000</literal></para>
<para>Konfigurieren Sie das Spiel manuell auf Port 65000
um. Wenn Sie von mehreren Rechner aus spielen wollen,
weisen Sie jedem eine eindeutige Portnummer zu (also
65001, 65002, u.s.w.) und fügen Sie für jede
Maschine eine eigene <literal>nat port</literal> Zeile
ein.</para>
</listitem>
<listitem>
<para><application>Half Life</application></para>
<para><literal>nat port udp
<replaceable>internal</replaceable>:27005
27015</literal></para>
</listitem>
<listitem>
<para><application>PCAnywhere 8.0</application></para>
<para><literal>nat port udp
<replaceable>internal</replaceable>:5632
5632</literal></para>
<para><literal>nat port tcp
<replaceable>internal</replaceable>:5631
5631</literal></para>
</listitem>
<listitem>
<para><application>Quake</application></para>
<para><literal>nat port udp
<replaceable>internal</replaceable>:6112
6112</literal></para>
<para>Alternativ können sie wegen
Proxyunterstützung für Quake unter <ulink
url="http://www.battle.net/support/proxy/">www.battle.net</ulink>
nachsehen.</para>
</listitem>
<listitem>
<para><application>Quake 2</application></para>
<para><literal>nat port udp
<replaceable>internal</replaceable>:27901
27910</literal></para>
<para><literal>nat port udp
<replaceable>internal</replaceable>:60021
60021</literal></para>
<para><literal>nat port udp
<replaceable>internal</replaceable>:60040
60040</literal></para>
</listitem>
<listitem>
<para><application>Red Alert</application></para>
<para><literal>nat port udp
<replaceable>internal</replaceable>:8675
8675</literal></para>
<para><literal>nat port udp
<replaceable>internal</replaceable>:5009
5009</literal></para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="fcs-errors">
<para>Was sind FCS-Fehler?</para>
</question>
<answer>
<para>FCS steht für <literal>F</literal>rame
<literal>C</literal>heck <literal>S</literal>equence.
Jedes PPP-Paket besitzt eine Checksumme, um
sicherzustellen, daß die empfangenen Daten dieselben
sind, wie die versendeten. Falls die FCS eines
ankommenden Paketes fehlerhaft ist, wird das Paket
verworfen und der Zähler HDLC FCS wird erhöht.
Der HDLC-Fehlerwert kann durch den Befehl <literal>show
hdlc</literal> angezeigt werden.</para>
<para>Falls Ihre Leitung schlecht ist (oder falls Ihr
serieller Treiber Pakete verwirft), werden sie
gelegentliche FCS-Fehler sehen. Normalerweise lohnt es
sich nicht, sich hierüber Gedanken zu machen, obwohl
das Kompressionsprotokoll hierdurch wesentlich langsamer
wird. Wenn Sie ein externes Modem besitzen, stellen Sie
sicher, daß Ihr Kabel ausreichend gegen
Interferenzen abgeschirmt ist - das könnte das
Problem beseitigen.</para>
<para>Falls Ihre Leitung einfriert, sobald die Verbindung
steht, und viele FCS-Fehler auftreten, könnte das
daran liegen, daß Ihre Leitung nicht 8-Bit-rein ist.
Stellen Sie sicher, daß Ihr Modem keinen
Software-Flow-Control (XON/XOFF) verwendet. Falls Ihre
Datenschnittstelle Software-Flow-Control verwenden
<emphasis>muß</emphasis>, benutzen Sie den Befehl
<literal>set accmap 0x000a0000</literal>, um &man.ppp.8;
zu sagen, daß es die Zeichen <literal>^Q</literal>
und <literal>^S</literal> maskieren soll.</para>
<para>Ein weiterer Grund dafür, daß zu viele
FCS-Fehler auftreten, könnte der sein, daß das
andere Ende aufgehört hat, <acronym>ppp</acronym> zu
sprechen. Aktivieren Sie <literal>async</literal>
Logging, um festzustellen, ob es sich bei den eingehenden
Daten tatsächlich um einen login- oder Shell-Prompt
handelt. Wenn Sie am anderen Ende einen Shell-Prompt
haben, ist es möglich, durch den Befehl
<literal>close lcp</literal> &man.ppp.8; zu beenden, ohne
die Verbindung zu beenden (ein folgender
<literal>term</literal>-Befehl wird Sie wieder mit der
Shell auf dem entfernten Rechner verbinden.</para>
<para>Falls nichts in Ihrer Logdatei darauf hindeutet, warum
die Verbindung beendet wurde, sollten Sie den
Administrator des externen Rechners (Ihren ISP?) fragen,
warum die Sitzung beendet worden ist.</para>
</answer>
</qandaentry>
<qandaentry id=PPPoEwithNAT>
<question id="macos-win98-pppoe-freeze">
<para>Wieso hängen die Verbindungen meiner MacOS- und
Windows98(tm)-Maschinen, wenn auf meinem Gateway PPPoE
läuft?</para>
</question>
<answer>
<para>Vielen Dank an Michael Wozniak
<email>mwozniak@netcom.ca</email> für die
Erklärung und an Dan Flemming
<email>danflemming@mac.com</email> für die
Lösung für MacOS</para>
<para>Die Ursache des Problems ist ein sogenannter
<quote>Black Hole Router</quote>. MacOS und Windows 98
(und wahrscheinlich auch die anderen Betriebssysteme von
Microsoft) senden TCP Pakete, bei denen zum einen die
angeforderte Segmentgröße zu groß
für einen PPPoE-Rahmen ist (die Default-MTU für
Ethernet beträgt 1500 Byte) <emphasis>und</emphasis>
bei denen das <quote>don't fragment</quote> Bit gesetzt
ist (das ist bei TCP allerdings Standard). Außerdem
sendet der Router beim Provider nicht die eigentlich
notwendigen <quote>must fragment</quote>-Meldungen zu dem
Webserver, von dem Sie gerade eine Seite laden wollen. Es
ist auch möglich, daß diese Meldung zwar
erzeugt, aber danach von einem Firewall vor dem Webserver
abgefangen wird. Wenn Ihnen dieser Webserver nun ein
Paket schickt, das nicht in einen PPPoE-Rahmen paßt,
dann verwirft der Router dieses Paket und die Seite wird
nicht geladen (einige Seiten/Grafiken werden geladen, weil
ihre Größe kleiner ist als die MSS). Dies
scheint leider der Normalfall zu sein (wenn die Leute doch
nur wüßten, wie man einen Router
konfiguriert... stöhn...)</para>
<para>Eine der möglichen Lösungen für dieses
Problem ist die Erzeugung des folgenden Schlüssels in
der Registry des Windows-Clients:</para>
<programlisting>
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU
</programlisting>
<para>Der Schlüssels sollte vom Typ String sein und den
Wert <quote>1436</quote> haben, da einige ADSL-Router
nicht mit größeren Paketen umgehen können.
Wenn Sie Windows 2000 verwenden, müssen Sie dagegen
den Schlüssel
<literal>Tcpip\Parameters\Interfaces\<replaceable>ID der
Netzwerkkarte</replaceable>\MTU</literal> benutzen,
außerdem müssen Sie als Typ DWORD
verwenden.</para>
<para>Die Knowledge Base von Microsoft enthält weitere
Informationen darüber, wie sie die MTU einer
Windows-Maschine ändern, damit diese mit einem
NAT-Router korrekt zusammenarbeitet. Vom besonderen
Interesse sind die Artikel <ulink
url="http://support.microsoft.com/support/kb/articles/Q158/4/74.asp">Q158474
- Windows TCPIP Registry Entries</ulink> und <ulink
url="http://support.microsoft.com/support/kb/articles/Q120/6/42.asp">Q120642
- TCPIP & NBT Configuration Parameters for Windows
NT</ulink>.</para>
<para>Bei Windows 2000 können Sie alternativ auch, wie
im Artikel 120642 beschrieben, mit regedit das DWORD
<literal>Tcpip\Parameters\Interfaces\<replaceable>ID der
Netzwerkkarte</replaceable>\EnablePMTUBHDetect</literal>
auf 1 setzen.</para>
<para>Mit den Bordmitteln von MacOS ist es leider nicht
möglich, die TCP/IP-Einstellungen zu verändern.
Es gibt jedoch kommerzielle Lösungen wie zum Beispiel
OTAdvancedTuner (OT steht für OpenTransport, den
TCP/IP-Stack von MacOS) von <ulink
url="http://www.softworks.com/">Sustainable
Softworks</ulink>, mit denen man die TCP/IP-Einstellungen
bearbeiten kann. Wenn Sie als MacOS-Anwender NAT
benutzen, sollten Sie im entsprechenden drop-down
Menü den Punkt <literal>ip_interface_MTU</literal>
auswählen und in der Dialogbox
<literal>1450</literal> statt <literal>1500</literal>
eingeben. Aktivieren Sie den Punkt <literal>Save as Auto
Configure</literal> und klicken Sie danach auf
<literal>Make Active</literal>.</para>
<para>&man.ppp.8; kennt seit Version 2.3 den Befehl
<command>enable tcpmssfixup</command>, mit dem die MSS
automatisch korrigiert wird. Wenn Sie einen ältere
Version von &man.ppp.8; benutzen müssen, könnte
der Port <application>tcpmssd</application> für Sie
interessant sein.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="desperation">
<para>Nichts von alledem hilft - ich bin
verzweifelt! Was soll ich machen?</para>
</question>
<answer>
<para>Falls alles andere fehlschlägt, senden Sie
möglichst umfangreiche Informationen,
einschließlich Ihrer Konfigurationsdateien, wie Sie
&man.ppp.8; starten, die relevanten Teile Ihrer Logdateien
und die Ausgabe des Befehls <command>netstat -rn</command>
(vor und nach Aufbau der Verbindung) an die
Mailingliste &a.de.questions; oder die Newsgroup <ulink
url="news:de.comp.os.unix.bsd">de.comp.os.unix.bsd</ulink>.
Irgend jemand sollte Ihnen dann weiterhelfen.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="serial">
<!--
The FreeBSD German Documentation Project FAQ - serial
communications,
Uebersetzer: Robert S. F. Drehmel
Original revision 1.54
-->
<title>Serielle Verbindungen</title>
<para>Dieses Kapitel beantwortet häufig gestellte Fragen zu
seriellen Verbindungen mit FreeBSD. PPP und SLIP werden im
<link linkend="networking">Abschnitt Netzwerke</link> behandelt.</para>
<qandaset>
<qandaentry>
<question id="found-serial">
<para>Wie kann ich feststellen, ob FreeBSD meine seriellen
Schnittstellen gefunden hat?</para>
</question>
<answer>
<para>Wenn der FreeBSD Kernel bootet, testet er die
seriellen Schnittstellen, für die er konfiguriert
wurde. Sie können entweder Ihrem System aufmerksam
beim Booten zusehen und die angezeigten Nachrichten lesen,
oder Sie führen den Befehl</para>
<screen>&prompt.user; <userinput>dmesg | grep sio</userinput></screen>
<para>aus, nachdem Ihr System hochgefahren ist und
läuft.</para>
<para>Hier ist ein Beispiel einer Ausgabe nach dem oben
genannten Befehl:</para>
<programlisting>
sio0: at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1: at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
</programlisting>
<para>Es zeigt zwei serielle Schnittstellen. Die erste
verwendet Port-Adresse <literal>0x3f8</literal>, IRQ 4 und
hat einen 16550A UART Chip. Die zweite benutzt ebenfalls
einen 16550A UART, jedoch Port-Adresse
<literal>0x2f8</literal> und IRQ 3. Modemkarten werden
wie serielle Schnittstellen behandelt. Der einzige
Unterschied ist, daß an diesen Schnittstellen immer
ein Modem <quote>angeschlossen</quote> ist.</para>
<para>Der <filename>GENERIC</filename> Kernel beinhaltet
Unterstützung für zwei serielle Schnittstellen,
die den im Beispiel genannten Port und IRQ verwenden.
Wenn diese Einstellungen nicht richtig für Ihr System
sind, Sie Modemkarten hinzugefügt oder mehr serielle
Schnittstellen haben als Ihre Kernelkonfiguration
zuläßt, konfigurieren Sie Ihren Kernel einfach
neu. In dem Kapitel über die <link
linkend="make-kernel">Kernelkonfiguration</link> finden
Sie mehr Details.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="found-modem">
<para>Wie kann ich feststellen, ob FreeBSD meine Modemkarten
gefunden hat?</para>
</question>
<answer>
<para>Die vorherige Frage sollte darauf eine Antwort
geben.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="missing-tty0X">
<para>Ich habe gerade auf 2.0.5 geupdatet und meine
<devicename>tty0<replaceable>X</replaceable></devicename>
fehlen! Wie kann ich das Problem lösen?</para>
</question>
<answer>
<para>Keine Sorge, die wurden mit den
<devicename>ttyd<replaceable>X</replaceable></devicename>
Geräten zusammengeführt. Sie müssen
allerdings die alten Konfigurationsdateien
ändern.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="access-serial-ports">
<para>Wie kann ich auf die seriellen Schnittstellen in
FreeBSD zugreifen?</para>
</question>
<answer>
<para>Die dritte serielle Schnittstelle,
<devicename>sio2</devicename> (bekannt als COM3 in
DOS/Windows), ist <devicename>/dev/cuaa2</devicename> für
Geräte mit abgehenden Verbindungen und
<devicename>/dev/ttyd2</devicename> für Geräte mit
eingehenden Verbindungen. Was ist der Unterschied
zwischen den beiden Geräteklassen?</para>
<para>Sie benutzen
<devicename>ttyd<replaceable>X</replaceable></devicename>
für eingehende Verbindungen. Wird
<devicename>/dev/ttyd<replaceable>X</replaceable></devicename>
im blockierenden Modus geöffnet, wartet ein
Prozeß darauf, daß das entsprechende
<devicename>cuaa<replaceable>X</replaceable></devicename>
Gerät inaktiv und der Empfangssignalpegel
<footnote>
<para>Mit <quote>Empfangssignalpegel</quote> oder
<quote>Trägersignalerkennung</quote> wird hier
die <foreignphrase>carrier detect</foreignphrase>
Leitung bezeichnet.</para>
</footnote>
aktiv ist. Wird das
<devicename>cuaa<replaceable>X</replaceable></devicename>
Gerät geöffnet, vergewissert es sich, daß
die serielle Schnittstelle nicht bereits von dem
<filename>ttyd<replaceable>X</replaceable></filename>
Gerät in Gebrauch ist. Sollte die Schnittstelle
verfügbar sein, <quote>stiehlt</quote> es sie von dem
<devicename>ttyd<replaceable>X</replaceable></devicename>
Gerät. Das
<devicename>cuaa<replaceable>X</replaceable></devicename>
Gerät kümmert sich nicht um
Trägersignalerkennung. Mit diesem Schema und einem
automatisch antwortenden Modem, können sich Benutzer
von außen einloggen, Sie können weiterhin mit
demselben Modem wählen und das System kümmert
sich um die Konflikte.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="enable-multiport-serial">
<para>Wie kann ich die Unterstützung für eine
Karte mit mehreren seriellen Schnittstellen
aktivieren?</para>
</question>
<answer>
<para>Die Sektion über die Kernelkonfiguration bietet
Informationen darüber, wie Sie Ihren Kernel
konfigurieren. Für eine Karte mit mehreren seriellen
Schnittstellen, schreiben Sie eine &man.sio.4; Zeile
für jede serielle Schnittstelle auf der Karte in die
Kernelkonfigurationsdatei. Aber achten Sie darauf, den
IRQ und die Vektorbezeichnung nur in einem der
Einträge zu plazieren. Alle seriellen Schnittstellen
auf der Karte sollten sich einen IRQ teilen. Daher
sollten Sie den IRQ nur beim letzten Eintrag angeben.
Aktivieren Sie auch die <literal>COM_MULTIPORT</literal>
Option.</para>
<para>Das folgende Beispiel ist geeignet für eine AST
Karte mit 4 seriellen Schnittstellen, die IRQ 7
benutzt:</para>
<programlisting>
options "COM_MULTIPORT"
device sio4 at isa? port 0x2a0 tty flags 0x781
device sio5 at isa? port 0x2a8 tty flags 0x781
device sio6 at isa? port 0x2b0 tty flags 0x781
device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr
</programlisting>
<para>Die Flags zeigen an, daß die
Master-Schnittstelle die Minor-Nummer 7
(<literal>0x700</literal>) hat, Diagnosen während des
Bootens ermöglicht sind (<literal>0x080</literal>),
und daß sich alle Schnittstellen einen IRQ teilen
(<literal>0x001</literal>).</para>
</answer>
</qandaentry>
<qandaentry>
<question id="multiport-serial-share-irq">
<para>Kann FreeBSD mehrere Karten mit mehreren seriellen
Schnittstellen mit den gleichen IRQs verwalten?</para>
</question>
<answer>
<para>Noch nicht. Sie müssen für jede Karte einen
anderen IRQ verwenden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="default-serial-params">
<para>Kann ich die vorgegebenen seriellen Parameter für
eine Schnittstelle einstellen?</para>
</question>
<answer>
<para>Das
<devicename>ttyd<replaceable>X</replaceable></devicename>
(oder
<devicename>cuaa<replaceable>X</replaceable></devicename>)
Gerät ist das reguläre Gerät, das man in
Anwendungen öffnet. Wenn ein Prozeß es
öffnet, hat es die voreingestellten Terminal
Eingabe/Ausgabe-Einstellungen. Sie können diese
Einstellungen mit dem Befehl</para>
<screen>&prompt.root; <userinput>stty -a -f /dev/ttyd1</userinput></screen>
<para>ansehen. Wenn Sie die Einstellungen für dieses
Gerät ändern, sind die Einstellungen
gültig, bis das Gerät geschlossen wird. Wird es
danach geöffnet, hat es wieder die vorgegebenen
Einstellungen. Um Änderungen an den vorgegebenen
Einstellungen vorzunehmen, können Sie das
Anfangsstatus-Gerät öffnen und dessen
Einstellungen anpassen. Um zum Beispiel den
<acronym>CLOCAL</acronym> Modus, 8 Bits und
<acronym>XON/XOFF</acronym> Datenflußkontrolle als
Standard für ttyd5 einzustellen, geben Sie</para>
<screen>&prompt.root; <userinput>stty -f /dev/ttyid5 clocal cs8 ixon ixoff</userinput></screen>
<para>ein. Eine gute Stelle um dies zu tun ist in
<filename>/etc/rc.serial</filename>. Jetzt hat eine
Anwendung diese Einstellungen als Standardwerte, wenn sie
<devicename>ttyd5</devicename> öffnet. Die Anwendung
kann die Einstellungen jedoch immer noch nach Belieben
verändern.</para>
<para>Man aber kann auch bestimme Einstellungen davor
schützen, von einer Anwendung verändert zu
werden, indem man Veränderungen am <quote>lock
state</quote> Gerät vornimmt. Um beispielsweise die
Geschwindigkeit von <devicename>ttyd5</devicename> auf 57600
bps festzusetzen:</para>
<screen>&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput></screen>
<para>Wenn jetzt eine Anwendung <devicename>ttyd5</devicename>
öffnet und versucht die Geschwindigkeit zu
verändern, wird diese bei 57600 bps bleiben.</para>
<para>Natürlich sollten Sie das Schreiben auf die
Anfangsstatus- und lock state-Geräte nur
<username>root</username> erlauben. Das &man.MAKEDEV.8;
Skript tut dies <emphasis>nicht</emphasis>, wenn es die
Geräte-Einträge erstellt.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="enable-dialup">
<para>Wie kann ich Einwahl-Logins über mein Modem
aktivieren?</para>
</question>
<answer>
<para>Also Sie wollen ein Internet Service Provider werden,
ja? Als erstes brauchen Sie eines oder mehrere Modems,
die automatisches Antworten beherrschen. Ihr Modem sollte
auf Trägersignalerkennung reagieren und nicht fortlaufend
die Leitung offen halten. Es muß auflegen und sich
neu initialisieren können, wenn die <quote>Data
Terminal Ready</quote> (<acronym>DTR</acronym>) Leitung
ausgeschaltet wird. Es sollte wahrscheinlich
<acronym>RTS/CTS</acronym> oder gar keine lokale
Datenflußkontrolle benutzen. Zuletzt muß es
eine konstante Geschwindigkeit zwischen dem Computer und
sich selbst verwenden, aber es sollte (um die Anrufer
freundlich zu behandeln) eine Geschwindigkeit zwischen
sich und dem entfernten Modem aushandeln können.</para>
<para>Für viele Modems, die mit dem Hayes Befehlssatz
kompatibel sind, erzeugt der folgende Befehl diese
Einstellungen und legt sie im nicht-flüchtigen
Speicher ab:</para>
<programlisting>AT &C1 &D3 &K3 &Q6 S0=1 &W</programlisting>
<para>Die Sektion <link linkend="direct-at">über das
Senden von AT-Befehlen</link> bietet weitere
Informationen, wie man diese Einstellungen vornimmt, ohne
zu einem MS-DOS Terminal Programm zu
flüchten.</para>
<para>Als nächstes erstellen Sie einen Eintrag in
<filename>/etc/ttys</filename> für das Modem. Diese
Datei listet alle Schnittstellen auf, auf denen das
Betriebssystem Einlogversuche erwartet. Fügen Sie
eine solche Zeile hinzu:</para>
<programlisting>
ttyd1 "/usr/libexec/getty std 57600" dialup on insecure
</programlisting>
<para>Diese Zeile bedeutet, daß an der zweiten
seriellen Schnittstelle (<devicename>/dev/ttyd1</devicename>)
ein Modem angeschlossen ist, das mit 57600 bps läuft
und keine Parität besitzt
(<literal>std.57600</literal> aus
<filename>/etc/gettytab</filename>). Der Terminal-Typ
für diese Schnittstelle ist <quote>dialup</quote>
(<literal>Einwahl</literal>). Die Schnittstelle ist
eingeschaltet (<literal>on</literal>) und
<quote>unsicher</quote> (<literal>insecure</literal>) —
das bedeutet, man kann sich über diese Schnittstelle
nicht als <username>root</username> einloggen. Für
Einwahlanschlüsse wie diesen, benutzen Sie den
<literal>ttyd<replaceable>X</replaceable></literal> Eintrag.</para>
<para>Es ist relativ geläufig,
<literal>dialup</literal> als Terminal-Typ zu verwenden.
Viele Benutzer richten in ihren
<filename>.profile</filename> oder
<filename>.login</filename> Dateien eine Abfrage für
das eigentliche Terminal ein, wenn der Start-Typ
<literal>dialup</literal> ist. Das Beispiel zeigt die
Schnittstelle als unsicher und um über diese
Schnittstelle <username>root</username> zu werden,
müssen Sie sich als normaler Benutzer einloggen und
&man.su.1;. Wenn sie
<literal>secure</literal> (<quote>sicher</quote>) als
Einstellung verwenden, kann sich <username>root</username>
direkt einloggen.</para>
<para>Nachdem Sie Modifikationen in
<filename>/etc/ttys</filename> vorgenommen haben,
müssen Sie ein <acronym>hangup</acronym> oder
<acronym>HUP</acronym> Signal an &man.init.8;
senden:</para>
<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
<para>Das bringt &man.init.8; dazu, die Datei
<filename>/etc/ttys</filename> neu einzulesen.
<command>init</command> startet dann an allen als
eingeschaltet (<literal>on</literal>) markierten
Schnittstellen die getty-Prozesse. Sie können
herausfinden ob noch Logins für Ihre Schnittstelle
verfügbar sind, wenn Sie folgendes eingeben:</para>
<screen>&prompt.user; <userinput>ps -ax | grep '[t]tyd1'</userinput></screen>
<para>Sie sollten etwas sehen, das so ähnlich aussieht
wie:</para>
<programlisting>
747 ?? I 0:00:04 /usr/libexec/getty std.57600 ttyd1
</programlisting>
</answer>
</qandaentry>
<qandaentry>
<question id="dumb-terminal">
<para>Wie kann ich ein Hardware-Terminal mit meiner FreeBSD
Box verbinden?</para>
</question>
<answer>
<para>Wenn Sie einen anderen Computer als Terminal für
Ihr FreeBSD System verwenden wollen, verbinden Sie die
beiden seriellen Schnittstellen mit einem Nullmodem-Kabel.
Wenn Sie ein <quote>echtes</quote> (Hardware-)Terminal
benutzen, lesen Sie die Begleitinformationen.</para>
<para>Ändern Sie <filename>/etc/ttys</filename> wie
oben angegeben. Wenn Sie zum Beispiel ein WYSE-50
Terminal mit der fünften seriellen Schnittstelle
verbinden wollen, schreiben Sie einen Eintrag wie
diesen:</para>
<programlisting>
ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure
</programlisting>
<para>Das Beispiel zeigt, daß die Schnittstelle an
<devicename>/dev/ttyd4</devicename> mit einem wyse50 Terminal
mit 38400 bps und ohne Parität
(<literal>std.38400</literal> aus
<filename>/etc/gettytab</filename>) verbunden ist und
<username>root</username> Logins möglich sind
(<literal>secure</literal>).</para>
</answer>
</qandaentry>
<qandaentry>
<question id="cannot-tip">
<para>Warum kann ich <command>tip</command> oder
<command>cu</command> nicht laufen lassen?</para>
</question>
<answer>
<para>Vielleicht sind auf Ihrem System die Programme
&man.tip.1; und &man.cu.1; nur von
<username>uucp</username> und der Gruppe
<groupname>dialer</groupname> ausführbar. Sie
können die Gruppe <groupname>dialer</groupname>
verwenden, um zu kontrollieren wer Zugriff auf Ihr Modem
oder entfernte Systeme hat. Fügen Sie sich einfach
selbst zur Gruppe <groupname>dialer</groupname>
hinzu.</para>
<para>Als Alternative können Sie jeden Benutzer auf
Ihrem System &man.tip.1; und &man.cu.1; verwenden lassen,
dazu müssen Sie das folgende eingeben:</para>
<screen>&prompt.root; <userinput>chmod 4511 /usr/bin/cu</userinput>
&prompt.root; <userinput>chmod 4511 /usr/bin/tip</userinput></screen>
</answer>
</qandaentry>
<qandaentry>
<question id="hayes-unsupported">
<para>Mein Hayes Modem wird nicht unterstützt — was
kann ich tun?</para>
</question>
<answer>
<para>Eigentlich ist die Onlinehilfe für &man.tip.1;
nicht mehr aktuell. Es gibt einen eingebauten,
allgemeinen Hayes Wähler. Verwenden Sie einfach
<literal>at=hayes</literal> in
<filename>/etc/remote</filename>.</para>
<para>Der Hayes Treiber ist nicht schlau genug, um ein paar
der erweiterten Merkmale von neueren Modems zu erkennen —
Nachrichten wie <literal>BUSY</literal>, <literal>NO
DIALTONE</literal> oder <literal>CONNECT 115200</literal>
verwirren ihn nur. Sie sollten diese Nachrichten mit
Hilfe von <literal>ATX0&W</literal> abschalten, wenn
Sie <command>tip</command> benutzen.</para>
<para>Das Anwahl-Timeout von &man.tip.1;
beträgt 60 Sekunden. Ihr Modem sollte weniger
verwenden, oder <command>tip</command> denkt, daß
ein Kommunikationsfehler vorliegt. Versuchen Sie es mit
<literal>ATS7=45&W</literal>.</para>
<para>Tatsächlich unterstützt die ausgelieferte
Version von &man.tip.1; es noch nicht
vollständig. Die Lösung ist,
<filename>tipconf.h</filename> im Verzeichnis
<filename>/usr/src/usr.bin/tip/tip</filename> zu
editieren. Dafür benötigen Sie natürlich
die Quellcode Distribution.</para>
<para>Editieren Sie die Zeile <literal>#define HAYES
0</literal> in <literal>#define HAYES 1</literal> um.
Dann führen Sie <command>make</command> und
<command>make install</command> aus. Es sollte jetzt
funktionieren.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="direct-at">
<para>Wie soll ich die AT Befehle eingeben?</para>
</question>
<answer>
<para>Erstellen Sie einen sogenannten
<literal>direct</literal> Eintrag in
<filename>/etc/remote</filename>. Wenn Ihr Modem zum
Beispiel an der ersten seriellen Schnittstelle,
<devicename>/dev/cuaa0</devicename>, angeschlossen ist, dann
fügen Sie die folgende Zeile hinzu:</para>
<programlisting>
cuaa0:dv=/dev/cuaa0:br#19200:pa=none
</programlisting>
<para>Verwenden Sie die höchste bps Rate, die Ihr Modem
in der br Fähigkeit unterstützt. Geben Sie dann
<command>tip <devicename>cuaa0</devicename></command> ein
und Sie sind mit Ihrem Modem verbunden.</para>
<para>Wenn auf Ihrem System keine
<devicename>/dev/cuaa0</devicename> Datei existiert, geben Sie
folgendes ein:</para>
<screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>sh MAKEDEV cuaa0</userinput></screen>
<para>Oder benutzen Sie <command>cu</command> als
<username>root</username> mit dem folgenden Befehl:</para>
<screen>&prompt.root; <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput></screen>
<para><replaceable>line</replaceable> steht für die
serielle Schnittstelle (<devicename>/dev/cuaa0</devicename>)
und <replaceable>speed</replaceable> für die
Geschwindigkeit (<literal>57600</literal>). Wenn Sie mit
dem Eingeben der AT Befehle fertig sind, beenden Sie mit
<literal>~.</literal>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="gt-failure">
<para>Wieso funktioniert das <literal><@></literal>
Zeichen für die pn Fähigkeit nicht?</para>
</question>
<answer>
<para>Das <literal><@></literal> Zeichen in der
Telefonnummerfähigkeit sagt tip, daß es in der
Datei <filename>/etc/phones</filename> nach einer Nummer
suchen soll. Aber <literal><@></literal> ist auch
ein spezielles Zeichen in den Dateien, in denen
Fähigkeiten beschrieben werden, wie
<filename>/etc/remote</filename>. Schreiben Sie es mit
einem '\' (backslash):</para>
<programlisting>pn=\@</programlisting>
</answer>
</qandaentry>
<qandaentry>
<question id="dial-command-line">
<para>Wie kann ich von der Kommandozeile eine Telefonnummer
wählen?</para>
</question>
<answer>
<para>Stellen Sie einen <quote>allgemeinen</quote> Eintrag
in <filename>/etc/remote</filename>. Zum
Beispiel:</para>
<programlisting>
tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:
</programlisting>
<para>Mit einem Befehl wie <command>tip -115200
5551234</command> können Sie dann wählen.
Sollten Sie &man.cu.1; im Gegensatz zu &man.tip.1;
bevorzugen, verwenden Sie einen allgemeinen
cu-Eintrag:</para>
<programlisting>
cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
</programlisting>
<para>Zum Wählen können Sie dann <command>cu
5551234 -s 115200</command> eingeben.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="set-bps">
<para>Muß ich dabei jedes Mal die bps Rate
angeben?</para>
</question>
<answer>
<para>Schreiben Sie einen <literal>tip1200</literal> oder
einen <literal>cu1200</literal> Eintrag, aber geben Sie
auch die bps Rate an, die Ihr Modem wirklich
unterstützt. Leider denkt &man.tip.1;, daß
1200 bps ein guter Standardwert ist und deswegen sucht es
nach einem <literal>tip1200</literal>-Eintrag.
Natürlich müssen Sie nicht wirklich 1200 bps
benutzen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="terminal-server">
<para>Wie kann ich möglichst komfortabel über
einen Terminal-Server auf verschiedene Rechner
zugreifen?</para>
</question>
<answer>
<para>Sie müssen nicht warten bis Sie verbunden sind,
und jedesmal <command>CONNECT
<replaceable>Rechner</replaceable></command> eingeben,
benutzen Sie tip's <literal>cm</literal> Fähigkeit.
Sie können diese Einträge in
<filename>/etc/remote</filename> verwenden:</para>
<programlisting>
pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:
</programlisting>
<para>Mit den Befehlen <command>tip pain</command> oder
<command>tip muffin</command> können Sie eine
Verbindungen zu den Rechnern <hostid>pain</hostid> oder
<hostid>muffin</hostid> herstellen; mit <command>tip
deep13</command> verbinden Sie sich mit dem Terminal
Server.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="tip-multiline">
<para>Kann tip mehr als eine Verbindung für jede Seite
ausprobieren?</para>
</question>
<answer>
<para>Das ist oft ein Problem, wenn eine Universität
mehrere Telefonleitungen hat und viele tausend Studenten
diese benutzen wollen.</para>
<para>Erstellen Sie einen Eintrag für Ihre
Universität in <filename>/etc/remote</filename> und
benutzen Sie <literal><\@></literal> für die
<literal>pn</literal> Fähigkeit:</para>
<programlisting>
big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
</programlisting>
<para>Listen Sie die Telefonnummern der Universität
in <filename>/etc/phones</filename> auf:</para>
<programlisting>
big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114
</programlisting>
<para>&man.tip.1; probiert jede der Nummern in der
aufgelisteten Reihenfolge und gibt dann auf. Möchten
Sie, daß <command>tip</command> beim Versuchen eine
Verbindung herzustellen nicht aufgibt, lassen Sie es in
einer while-Schleife laufen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="multi-controlp">
<para>Warum muß ich zweimal
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>P</keycap>
</keycombo> tippen, um ein
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>P</keycap>
</keycombo> zu senden?</para>
</question>
<answer>
<para><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>P</keycap>
</keycombo> ist das voreingestellte Zeichen, mit dem eine
Übertragung erzwungen werden kann und wird benutzt,
um &man.tip.1; zu sagen, daß das nächste
Zeichen direkt gesendet werden soll und nicht als
Fluchtzeichen interpretiert werden soll. Mit Hilfe der
<literal>~s</literal> Fluchtsequenz, mit der man Variablen
setzen kann, können Sie jedes andere Zeichen als
<quote>force</quote>-Zeichen definieren.</para>
<para>Geben Sie
<literal>~sforce=<replaceable>zeichen</replaceable></literal>
ein und drücken Sie <keycap>Enter</keycap>. Für
<replaceable>zeichen</replaceable> können Sie ein
beliebiges einzelnes Zeichen einsetzen. Wenn Sie
<replaceable>zeichen</replaceable> weglassen, ist das
<quote>force</quote>-Zeichen <quote>nul</quote>, das Sie mit
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>2</keycap>
</keycombo> oder
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>SPACE</keycap>
</keycombo> eingeben können. Ein
guter Wert für <replaceable>zeichen</replaceable> ist
<keycombo action="simul">
<keycap>Shift</keycap>
<keycap>Ctrl</keycap>
<keycap>6</keycap>
</keycombo>, welches ich erst auf ein paar
Terminal-Servern in Benutzung gesehen habe.</para>
<para>Sie können das <quote>force</quote>-Zeichen auch
bestimmen, indem Sie in <filename>$HOME/.tiprc</filename>
das folgende einstellen:</para>
<programlisting>
force=<replaceable>single-char</replaceable>
</programlisting>
</answer>
</qandaentry>
<qandaentry>
<question id="uppercase">
<para>Warum ist auf einmal alles was ich schreibe in
GROSSBUCHSTABEN??</para>
</question>
<answer>
<para>Sie müssen
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>A</keycap>
</keycombo> eingegeben haben, das
<quote>raise</quote>-Zeichen von &man.tip.1; das speziell
für Leute mit defekten <keycap>Caps Lock</keycap> Tasten
eingerichtet wurde. Benutzen Sie <literal>~s</literal> wie
oben und setzen Sie die Variable <quote>raisechar</quote> auf
etwas, das Ihnen angemessen erscheint. Tatsächlich
kann die Variable auf das gleiche Zeichen wie das
<quote>force</quote>-Zeichen gesetzt werden, wenn Sie
diese Fähigkeiten niemals benutzen wollen.</para>
<para>Hier ist ein Muster der <filename>.tiprc</filename>
Datei, perfekt für <application>Emacs</application>
Benutzer, die oft
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>2</keycap>
</keycombo> und
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>A</keycap>
</keycombo> tippen müssen:</para>
<programlisting>
force=^^
raisechar=^^
</programlisting>
<para>Das ^^ steht für
<keycombo action="simul">
<keycap>Shift</keycap>
<keycap>Ctrl</keycap>
<keycap>6</keycap>
</keycombo>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="tip-filetransfer">
<para>Wie kann ich Dateien mit <command>tip</command>
übertragen?</para>
</question>
<answer>
<para>Wenn Sie mit einem anderen &unix; System kommunizieren,
können Sie Dateien senden und empfangen — mit
<literal>~p</literal> (put) und <literal>~t</literal>
(take). Diese Befehle lassen &man.cat.1; und &man.echo.1;
auf dem entfernten System laufen, um Dateien zu
akzeptieren und zu senden. Die Syntax ist:</para>
<programlisting>
~p <local-file> [<remote-file>]
~t <remote-file> [<local-file>]
</programlisting>
<para>Es gibt keine Fehlerkontrolle, deshalb sollten Sie
besser ein anderes Protokoll benutzen, wie zmodem.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="zmodem-tip">
<para>Wie kann ich zmodem mit <application>tip</application>
laufen lassen?</para>
</question>
<answer>
<para>Zuerst installieren Sie ein zmodem Programm aus der
Ports-Sammlung (eines der beiden aus der comms-Kategorie,
<application>lrzsz</application> oder
<application>rzsz</application>).</para>
<para>Um Dateien zu empfangen, starten Sie das Programm zum
Senden auf dem entfernten Computer. Drücken Sie dann
<keycap>Enter</keycap> gefolgt von <literal>~C rz</literal> (oder
<literal>~C lrz</literal>, wenn Sie lrzsz installiert
haben), um diese lokal zu empfangen.</para>
<para>Um Dateien zu senden, starten Sie das Programm zum
Empfangen auf dem entfernten Computer. Drücken Sie
dann <keycap>Enter</keycap> gefolgt von <literal>~C sz
<replaceable>Dateien</replaceable></literal> (oder
<literal>~C lsz
<replaceable>Dateien</replaceable></literal>), um sie zum
entfernten System zu senden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="cannot-find-serial">
<para>Wieso kann FreeBSD meine seriellen Schnittstellen
nicht erkennen, auch wenn die Einstellungen korrekt
sind?</para>
</question>
<answer>
<para>Hauptplatinen und Karten mit Acer UARTs werden im
FreeBSD sio test nicht richtig erkannt. Sie erhalten
einen Patch von <ulink
url="http://www.lemis.com/serial-port-patch.html">www.lemis.com</ulink>,
mit dem Sie das Problem beheben können.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="misc">
<title>Verschiedene Fragen</title>
<qandaset>
<qandaentry>
<question id="more-swap">
<para>FreeBSD benutzt viel mehr Swap-Speicher als Linux.
Warum?</para>
</question>
<answer>
<para>Es sieht nur so aus, als ob FreeBSD mehr Swap benutzt,
als Linux. Tatsächlich ist dies nicht der Fall. In
dieser Hinsicht besteht der Hauptunterschied zwischen
FreeBSD und Linux darin, daß FreeBSD vorbeugend
vollkommen untätige, unbenutzte Seiten aus dem
Hauptspeicher in den Swap-Bereich auslagert, um mehr
Hauptspeicher für die aktive Nutzung zur
Verfügung zu stellen. Linux tendiert dazu, nur als
letzten Ausweg Seiten in den Swap-Bereich auszulagern.
Die spürbar höhere Nutzung des Swap-Speichers
wird durch die effizientere Nutzung des Hauptspeichers
wieder ausgeglichen.</para>
<para>Beachten Sie, daß FreeBSD in dieser Hinsicht
zwar vorbeugend arbeitet, es entscheidet jedoch nicht
willkürlich, Seiten auszulagern, wenn das System
vollkommen untätig ist. Deshalb werden Sie
feststellen, daß nicht alle Seiten Ihres Systems
ausgelagert wurden, wenn Sie morgens aufstehen, nachdem
das System eine Nacht lang nicht benutzt worden
ist.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="top-freemem">
<para>Warum zeigt mir &man.top.1; so wenig freien Speicher
an, obwohl nur wenige Programme laufen?</para>
</question>
<answer>
<para>Die Antwort ist ganz einfach: Freier Speicher ist
verschwendeter Speicher. Der FreeBSD Kernel verwendet den
von den Programmen nicht genutzten Speicher automatisch
für den Plattencache. Die in &man.top.1; für
<literal>Inact</literal>, <literal>Cache</literal> und
<literal>Buf</literal> gemeldeten Werte stehen alle
für zwischengespeicherte Daten mit unterschiedlichem
Alter. Wenn das System wiederholt auf Daten zugreifen
muß, braucht es nicht auf die langsame Platte
zuzugreifen, da die Daten noch zwischengespeichert sind.
Dadurch erhöht sich die Performance. Ganz generell
ist es ein gutes Zeichen, wenn &man.top.1; einen kleinen
Wert bei <literal>Free</literal> anzeigt, solange der Wert
nicht <emphasis>extrem</emphasis> klein ist.</para>
<para>Anmerkung des Übersetzers: Mit <quote>extrem
klein</quote> sind hier Werte unterhalb 512 KByte
gemeint.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="aout-elf">
<para>Warum benutzt man (was sind) die Formate a.out und ELF
für ausführbare Dateien?</para>
</question>
<answer>
<para>Um zu verstehen, warum FreeBSD das Format
<filename>ELF</filename> benutzt, müssen Sie
zunächst etwas über die drei gegenwärtig
<quote>dominanten</quote> ausführbaren Formate
für &unix; Systeme wissen:</para>
<note>
<para>FreeBSD-Version 1.X und 2.X benutzten das Format
a.out.</para>
</note>
<itemizedlist>
<listitem>
<para>&man.a.out.5;</para>
<para>Das älteste und <quote>klassische</quote>
Objektformat von &unix; Systemen. Es benutzt einen kurzen, kompakten
Header mit einer magischen Nummer am Anfang, die oft
benutzt wird, um das Format zu charakterisieren
(weitere Details finden Sie unter &man.a.out.5;). Es
enthält drei geladene Segmente: .text, .data und
.bss, sowie eine Symboltabelle und eine
Stringtabelle.</para>
</listitem>
<listitem>
<para><acronym>COFF</acronym></para>
<para>Das Objektformat von SVR3. Der Header
enthält nun eine <quote>Sectiontable</quote> Man kann
also mit mehr als nur den Sections .text, .data und .bss
arbeiten.</para>
</listitem>
<listitem>
<para><acronym>ELF</acronym></para>
<para>Der Nachfolger von <acronym>COFF</acronym>.
Kennzeichnend sind mehrere Sections und mögliche
32-Bit- oder 64-Bit-Werte. Ein wesentlicher Nachteil:
<acronym>ELF</acronym> wurde auch unter der Annahme
entworfen, daß es nur ein ABI (Application
Binary Interface) pro Systemarchitektur geben wird.
Tatsächlich ist diese Annahme falsch - nicht
einmal für die kommerzielle SYSV-Welt (in der es
mindestens drei ABIs gibt: SVR4, Solaris, SCO) trifft
sie zu.</para>
<para>FreeBSD versucht, dieses Problem zu umgehen, indem
ein Utility bereitgestellt wird, um ausführbare
Dateien im <acronym>ELF</acronym>-Format mit
Informationen über die ABI zu versehen, zu der
sie passen. Weitere Informationen finden Sie in der
Manualpage &man.brandelf.1;.</para>
</listitem>
</itemizedlist>
<para>FreeBSD kommt aus dem <quote>klassischen</quote> Lager
und verwendete traditionell das Format &man.a.out.5;, eine
Technologie, die bereits über viele BSD-Releases
hinweg eingesetzt und geprüft worden ist. Obwohl es
bereits seit einiger Zeit möglich war, auf einem
FreeBSD-System auch Binaries (und Kernel) im
<acronym>ELF</acronym>-Format zu erstellen und
auszuführen, widersetzte FreeBSD sich anfangs dem
<quote>Druck</quote>, auf <acronym>ELF</acronym> als
Standardformat umzusteigen. Warum? Nun, als das
Linux-Lager die schmerzhafte Umstellung auf
<acronym>ELF</acronym> durchführte, ging es nicht so
sehr darum, dem ausführbaren Format
<filename>a.out</filename> zu entkommen, als dem
unflexiblen, auf Sprungtabellen basierten Mechanismus
für <quote>Shared Libraries</quote> der die Konstruktion von
Shared Libraries für Hersteller und Entwickler
gleichermaßen sehr kompliziert machte. Da die
verfügbaren <acronym>ELF</acronym>-Werkzeuge eine
Lösung für das Problem mit den Shared Libraries
anboten und ohnehin generell als <quote>ein Schritt
vorwärts</quote> angesehen wurden, wurde der Aufwand
für die Umstellung als notwendig akzeptiert und die
Umstellung wurde durchgeführt.</para>
<para>Im Fall von FreeBSD ist der Mechanismus von Shared
Libraries enger an den Mechanismus im Stil von Sun's
<application>SunOS</application> angelehnt und als solcher
sehr einfach zu verwenden. Seit Version 3.0
unterstützt FreeBSD <acronym>ELF</acronym>-Binaries
jedoch offiziell als das Standardformat. Obwohl das
ausführbare Format <filename>a.out</filename> uns
gute Dienste geleistet hat, hat das GNU-Team, das den von
uns verwendeten Compiler erstellt, die Unterstützung
des <filename>a.out</filename>-Formats eingestellt. Dies
zwang uns dazu, abweichende Versionen der Compiler und
Linker beizubehalten und hinderte uns daran, Nutzen aus
den aktuellen Entwicklungsergebnissen von GNU zu ziehen.
Auch die Anforderungen von ISO-C++, besonders
Konstruktoren und Destruktoren, haben zur
Unterstützung von <acronym>ELF</acronym> in
zukünftigen Versionen von FreeBSD
geführt.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="binary-formats">
<para>Ja aber warum gibt es so viele unterschiedliche
Formate?</para>
</question>
<answer>
<para>In alter, grauer Vorzeit gab es simple Hardware.
Diese simple Hardware unterstützte ein einfaches,
kleines System. a.out war absolut passend für die
Aufgabe, Binaries auf diesem simplen System (eine PDP-11)
darzustellen. Als &unix; von diesem simplen System portiert
wurde, wurde auch das a.out-Format beibehalten, weil es
für die frühen Portierungen auf Architekturen
wie den Motorola 68000, VAXe usw. ausreichte.</para>
<para>Dann dachte sich ein schlauer Hardware-Ingenieur,
daß wenn er Software zwingen könnte, einige
Tricks anzustellen, es ihm möglich wäre, ein
paar Gatter im Design zu sparen, und seinen CPU-Kern
schneller zu machen. Obgleich es dazu gebracht wurde, mit
dieser neuen Art von Hardware (heute als RISC bekannt) zu
arbeiten, war <filename>a.out</filename> für diese
Hardware schlecht geeignet. Deshalb wurde viele neue
Formate entwickelt, um eine bessere Leistung auf dieser
Hardware zu erreichen, als mit dem begrenzten, simplen
<filename>a.out</filename>-Format. Dinge wie
<acronym>COFF</acronym>, <acronym>ECOFF</acronym> und
einige andere obskure wurden erdacht und ihre Grenzen
untersucht, bevor die Dinge sich in Richtung
<acronym>ELF</acronym> entwickelten.</para>
<para>Hinzu kam, daß die Größe von
Programmen gewaltig wurden und Festplatten (und
physikalischer Speicher) immer noch relativ klein waren.
Also wurde das Konzept von Shared Libraries geboren. Das
VM-System wurde auch immer fortgeschrittener. Obwohl bei
jedem dieser Fortschritte das
<filename>a.out</filename>-Format benutzt worden ist,
wurde sein Nutzen mit jedem neuen Merkmal mehr und mehr
gedehnt. Zusätzlich wollte man Dinge dynamisch zur
Ausführungszeit laden, oder Teile ihres Programms
nach der Initialisierung wegwerfen, um Hauptspeicher
oder Swap-Speicher zu sparen. Programmiersprachen
wurden immer fortschrittlicher und man wollte, daß
Code automatisch vor der main-Funktion aufgerufen wird.
Das <filename>a.out</filename>-Format wurde oft
überarbeitet, um alle diese Dinge zu ermöglichen
und sie funktionierten auch für einige Zeit.
<filename>a.out</filename> konnte diese Probleme nicht
ohne ein ständiges Ansteigen eines Overheads im Code
und in der Komplexität handhaben. Obwohl
<acronym>ELF</acronym> viele dieser Probleme löste,
wäre es sehr aufwendig, ein System umzustellen, das
im Grunde genommen funktionierte. Also mußte
<acronym>ELF</acronym> warten, bis es aufwendiger war, bei
<filename>a.out</filename> zu bleiben, als zu
<acronym>ELF</acronym> überzugehen.</para>
<para>Im Laufe der Zeit haben sich die Erstellungswerkzeuge,
von denen FreeBSD seine Erstellungswerkzeuge abgeleitet
hat (speziell der Assembler und der Loader), in zwei
parallele Zweige entwickelt. Im FreeBSD-Zweig wurden
Shared Libraries hinzugefügt und einige Fehler
behoben. Das GNU-Team, das diese Programme
ursprünglich geschrieben hat, hat sie umgeschrieben
und eine simplere Unterstützung zur Erstellung von
Cross-Compilern durch beliebiges Einschalten verschiedener
Formate usw. hinzugefügt. Viele Leute wollten
Cross-Compiler für FreeBSD erstellen, aber sie hatten
kein Glück, denn FreeBSD's ältere Sourcen
für as und ld waren hierzu nicht geeignet. Die neuen
GNU-Werkzeuge (binutils) unterstützen
Cross-Compilierung, <acronym>ELF</acronym>, Shared
Libraries, C++-Erweiterungen usw. Weiterhin geben viele
Hersteller <acronym>ELF</acronym>-Binaries heraus und es
ist gut, wenn FreeBSD sie ausführen kann. Und wenn
es <acronym>ELF</acronym>-Binaries ausführt, warum
dann auch noch <filename>a.out</filename> behalten? Es
ist ein müdes, altes Pferd, daß sich für
eine lange Zeit als nützlich erwiesen hat, aber es
ist an der Zeit, es für seine langen, treuen
Dienstjahre auf die Weide zu schicken.</para>
<para><acronym>ELF</acronym> ist ausdrucksfähiger als
a.out und gestattet eine bessere Erweiterbarkeit des
Basissystems. Die <acronym>ELF</acronym>-Werkzeuge werden
besser gewartet und bieten Unterstützung von
Cross-Compilierung, was für viele Leute wichtig ist.
<acronym>ELF</acronym> mag etwas langsamer sein, als
a.out, aber zu versuchen, das zu messen, könnte
schwierig werden. Es gibt unzählige Details, in
denen sich die beiden Formate unterscheiden, wie sie Pages
abbilden, Initialisierungscode handhaben usw. Keins davon
ist sehr wichtig, aber es sind Unterschiede. Irgendwann
wird die Unterstützung für Programme im
<filename>a.out</filename>-Format aus dem GENERIC Kernel
entfernt werden. Wenn es dann keinen oder kaum noch
Bedarf für die Unterstützung dieses Formates
gibt, werden die entsprechenden Routinen ganz entfernt
werden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="chmod-symlinks">
<para>Warum ändert chmod die Zugriffsrechte auf
symbolische Links nicht?</para>
</question>
<answer>
<para>Für symbolische Links gibt es keine separaten
Zugriffsrechte und standardmäßig folgt
&man.chmod.1; dem Link nicht; die Zugriffsrechte für
die Datei, auf die der symbolische Link zeigt, werden also
nicht verändert. Wenn Sie eine Datei mit dem Namen
<filename>foo</filename> und einen auf diese Datei
zeigenden symbolischen Link mit dem Namen
<filename>bar</filename> haben, wird das folgende Kommando
niemals einen Fehler melden.</para>
<screen>&prompt.user; <userinput>chmod g-w bar</userinput></screen>
<para>Trotzdem werden die Zugriffsrechte für
<filename>foo</filename> nicht geändert.</para>
<para>Hierzu müssen Sie entweder <option>-H</option>
oder <option>-L</option> zusammen mit der Option
<option>-R</option> benutzen. Weitere Informationen
finden Sie in den Manualpages &man.chmod.1; und
&man.symlink.7;.</para>
<warning>
<para>Die Option <option>-R</option> bewirkt ein
<acronym>REKURSIVES</acronym> &man.chmod.1;
Seien Sie vorsichtig, wenn Sie bei
&man.chmod.1; Verzeichnisse oder symbolische
Links zu Verzeichnissen angeben. Wenn Sie die
Zugriffsrechte eines Verzeichnisses ändern
möchten, das durch einen symbolischen Link
referenziert wird, benutzen Sie &man.chmod.1;
ohne irgendwelche Optionen und folgen dem symbolischen
Link durch einen abschließenden Schrägstrich
(<filename>/</filename>). Falls z.B.
<filename>foo</filename> ein symbolischer Link zum
Verzeichnis <filename>bar</filename> ist und Sie die
Zugriffsrechte von <filename>foo</filename>
(tatsächlich <filename>bar</filename>) ändern
möchten, dann benutzen Sie etwas ähnliches
wie:</para>
<screen>&prompt.user; <userinput>chmod 555 foo/</userinput></screen>
<para>Durch den abschließenden Schrägstrich folgt
&man.chmod.1; dem symbolischen Link
<filename>foo</filename>, um die Zugriffsrechte für
das Verzeichnis <filename>bar</filename> zu
ändern.</para>
</warning>
</answer>
</qandaentry>
<qandaentry>
<question id="login-8char">
<para>Warum sind Loginnamen bis einschließlich FreeBSD
2.2.X auf acht Zeichen begrenzt?</para>
</question>
<answer>
<para>Sie denken vielleicht, daß es leicht sein
sollte, <literal>UT_NAMESIZE</literal> zu ändern, das
ganze System neu zu erstellen und das dann alles
funktionieren müßte. Unglücklicherweise
gibt es oft dutzende Anwendungen und Utilities
(einschließlich Systemwerkzeuge), bei denen kleine
Zahlen (nicht immer <literal>8</literal> oder
<literal>9</literal>, sondern auch sonderbare, wie
<literal>15</literal> und <literal>20</literal>) in
Strukturen und Puffern fest codiert sind. Hierdurch
erhalten Sie nicht nur unbrauchbare Logdateien (weil
variabel lange Sätze ausgegeben werden, wo Sätze
fester Länge erwartet werden), sondern es kann dazu
führen, daß Sun's NIS-Clients nicht mehr
funktionieren und möglicherweise andere Probleme bei
der Interaktion mit anderen &unix; Systemen
verursachen.</para>
<para>In FreeBSD 3.0 und späteren wurde die maximale
Länge für Namen auf 16 Zeichen erweitert und die
unterschiedlichen Utilities mit fest codierten
Namenslängen wurden gefunden und bereinigt. Die
Tatsache, daß hiervon so viele Bereiche des Systems
betroffen waren, ist der Grund, warum diese Änderung
nicht vor 3.0 durchgeführt worden ist.</para>
<para>Wenn Sie sich absolut sicher sind, daß Sie diese
Art von Problemen selbst finden und bereinigen
können, wenn und falls sie auftreten, dann
können Sie die Länge von Loginnamen in
früheren Versionen ändern, indem Sie
<filename>/usr/include/utmp.h</filename> editieren und
UT_NAMESIZE entsprechend ändern. Sie müssen
MAXLOGNAME in
<filename>/usr/include/sys/param.h</filename> auch
entsprechend der Änderung von UT_NAMESIZE
ändern. Schließlich, vergessen Sie nicht,
daß /usr/include jedesmal aktualisiert wird, wenn
Sie von den Sourcen aus Erstellen! Ändern Sie
stattdessen die entsprechen Dateien in
/usr/src/...</para>
</answer>
</qandaentry>
<qandaentry>
<question id="dos-binaries">
<para>Kann ich DOS-Programme unter FreeBSD
ausführen?</para>
</question>
<answer>
<para>Ja, ab Version 3.0 können Sie die DOS-Emulation
<application>doscmd</application> der Firma BSDi benutzen,
die integriert und erweitert wurde. Schicken Sie eine
Mail an die Mailingliste &a.emulation;, wenn Sie daran
interessiert sind, an den laufenden Bemühungen
teilzunehmen!</para>
<para>Für Systeme vor 3.0 gibt es ein nettes Utility
<application>pcemu</application> in der Ports-Sammlung,
das einen 8088 und genug BIOS-Dienste emuliert, um
DOS-Anwendungen im Textmodus auszuführen. Hierzu
wird das X Window-System benötigt (erhältlich
als XFree86).</para>
</answer>
</qandaentry>
<qandaentry>
<question id="translation">
<para>Was muß ich tun, um die FreeBSD-Dokumentation in
meine Muttersprache zu übersetzen?</para>
</question>
<answer>
<para>Informationen zu diesem Thema finden Sie in der <ulink
url="http://www.de.FreeBSD.org/de/uebersetzung.html">FAQ</ulink>
des FreeBSD German Documentation Project.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="freebsd-mail-bounces">
<para>Warum kommen alle meine Mails, die ich an @FreeBSD.org
schicke, wieder zurück?</para>
</question>
<answer>
<para>Das Mailsystem von FreeBSD.org verwendet einige der
strengeren Überprüfungen von
<application>Postfix</application> für eingehende Mails.
Mails, bei denen es Anzeichen für Konfigurationsprobleme
oder Spam gibt, werden nicht akzeptiert. Dies kann aus einem
der folgenden Gründe geschehen:</para>
<itemizedlist>
<listitem>
<para>Die Mail kommt von einem System oder Netzwerk,
daß für Spam-Aktivitäten bekannt
ist.</para>
<para>Die Mailserver von FreeBSD akzeptierten keine
Mails von bekannten Spam-Quellen. Wenn Sie auf eine
Firma oder Domain benutzen, die Spam erzeugt oder
verteilt, sollten Sie sich einen anderen ISP
suchen.</para>
</listitem>
<listitem>
<para>Der Mailtext enthält HTML.</para>
<para>Mail sollte immer im Klartext gesendet werden, Sie
sollten ihr Mailprogramm entsprechend
einstellen.</para>
</listitem>
<listitem>
<para>Das Mailsystem kann die IP-Adresse des
einliefernden Systems nicht in einen symbolischen
Namen umwandeln.</para>
<para>Funktionierendes reverse DNS ist eine
Vorbedingung, damit ihre Mails angenommen wird.
Sorgen Sie dafür, daß der reverse DNS
für Ihren Mailserver korrekt konfiguriert wird.
Viele Anbieter für Privatkunden geben Ihnen diese
Möglichkeit nicht. In diesem Fall sollten Sie
Ihre Mails über den Mailserver Ihres Providers
versenden.</para>
</listitem>
<listitem>
<para>Der Rechnername, der im EHLO/HELO Teil der SMTP
Kommunikation übergeben wird, kann nicht zu einer
IP-Adresse aufgelöst werden.</para>
<para>Damit die E-Mail akzeptiert wird, brauchen Sie einen
voll qualifizierten Rechnernamen, der im DNS eingetragen ist.
Wenn Sie diesen nicht besitzen, benutzen Sie bitte den
Mailserver Ihres Providers, um E-Mails zu verschicken.</para>
</listitem>
<listitem>
<para>Die Message-ID Ihrer Mail endet in
<literal>localhost</literal>.</para>
<para>Einige Mail-Clients generieren eine Message-ID, die
nicht akzeptiert wird. Sie müssen Ihren Mail-Client
so konfigurieren, daß er eine gültige Message-ID
generiert. Alternativ können Sie die Message-ID von
Ihrem Mailserver umschreiben lassen.</para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question id="free-account">
<para>Wo kann ich einen freien FreeBSD-Account bekommen?</para>
</question>
<answer>
<para>Das FreeBSD-Projekt bietet zwar keinen freien Zugang
zu seinen Servern an; andere Firmen bieten jedoch frei
zugängliche &unix; Systeme. Die Kosten variieren und
es kann sein, daß nicht alle Dienste zur
Verfügung stehen.</para>
<para><ulink url="http://www.arbornet.org/">Arbornet,
Inc</ulink>, auch als M-Net bekannt, bietet seit 1983
uneingeschränkten Zugang zu &unix; Systemen.
Zunächst wurde eine Altos-Maschine mit System III
benutzt, 1991 erfolgte dann der Wechsel zu BSD/OS. Im
Juni 2000 erfolgte ein erneuter Wechsel, diesmal zu
FreeBSD. M-Net bietet Zugang mit Telnet und SSH und den
Zugang zur gesamten Software von FreeBSD. Allerdings ist
der Zugriff auf das Netzwerk auf Mitglieder und
Gönner beschränkt, die eine Spende an die
nicht-kommerzielle Organisation geleistet haben. M-Net
stellt zusätzlich ein Mailbox-System und einen
interaktiven Chat zur Verfügung.</para>
<para><ulink url="http://www.grex.org/">Grex</ulink> bietet
ein ganz ähnlichen Dienst wie M-Net an, dazu
gehören auch das Mailbox-System und der interaktive
Chat. Allerdings wird eine SUN4M mit SunOS
benutzt.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="sup-define">
<para>Was ist <command>sup</command> und wie benutze ich
es?</para>
</question>
<answer>
<para>Der Name <acronym>SUP</acronym> steht für
Software Update Protocol und wurde von der CMU (Carnegie
Mellon University) entwickelt, um ihre Entwicklungszweige
zu synchronisieren. Wir haben es benutzt, um entfernte
Sites mit unseren zentralen Quellcodeentwicklungen zu
synchronisieren.</para>
<para>SUP ist nicht sehr bandbreitenfreundlich und wurde
abgelöst. Die derzeit empfohlene Methode, um Ihren
Quellcode auf dem neuesten Stand zu halten ist <ulink
url="../handbook/synching.html#CVSUP">CVSup</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="daemon-name">
<para>Wie heißt das niedliche rote Kerlchen?</para>
</question>
<answer>
<para>Er ist namenlos, es ist einfach der <quote>der BSD
Daemon</quote>. Wenn Sie ihm unbedingt einen Namen geben
wollen, rufen Sie ihn <quote>beastie</quote>. Beachten
Sie aber, daß <quote>beastie</quote> wie
<quote>BSD</quote> ausgesprochen wird.</para>
<para>Weitere Informationen über den BSD daemon finden
Sie auf <ulink
url="http://www.mckusick.com/beastie/index.html">seiner
Homepage</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="use-beastie">
<para>Kann ich Bilder des BSD Daemon verwenden?</para>
</question>
<answer>
<para>Eventuell. Der BSD Daemon unterliegt dem Copyright
von Marshall Kirk McKusick. Wenn Sie genaue Informationen
über die Einschränkungen bei der Nutzung
brauchen, sollten Sie sein <ulink
url="http://www.mckusick.com/beastie/mainpage/copyright.html">Statement
on the Use of the BSD Daemon Figure</ulink> lesen.</para>
<para>Kurz gesagt, können Sie den BSD Daemon benutzen,
solange es für einen privaten Zweck ist und die
Nutzung geschmackvoll bleibt. Für den kommerziellen
Einsatz brauchen Sie die Zustimmung von Kirk McKusick.
Weitere Informationen erhalten Sie auf der Webseite <ulink
url="http://www.mckusick.com/beastie/index.html">BSD
Daemon's home page</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="daemon-images">
<para>Woher kann ich Bilder des BSD Daemon bekommen?</para>
</question>
<answer>
<para>Einige Bilder in den Format xfig und eps sind unter
<filename>/usr/share/examples/BSD_daemon/</filename> zu
finden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="define-MFC">
<para>Was bedeutet <acronym>MFC</acronym>?</para>
</question>
<answer>
<para>MFC ist ein Acronym für <quote>Merged From
-Current</quote>. Es wird in den CVS-Logs benutzt, um zu
kennzeichnen, wenn eine Änderung vom CURRENT-Zweig in
den STABLE-Zweig übernommen worden ist.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="define-BSD">
<para>Was bedeutet <acronym>BSD</acronym>?</para>
</question>
<answer>
<para>Es steht für etwas in einer geheimen Sprache, das
nur Mitglieder wissen können. Es kann nicht
wörtlich übersetzt werden, aber wir können
Ihnen sagen, daß die Übersetzung von BSD etwas
zwischen <quote>Formel-1 Team</quote>, <quote>Pinguine
sind ein leckerer Imbiß</quote> und <quote>Wir haben
einen besseren Sinn für Humor als Linux</quote> ist
:-)</para>
<para>Ernsthaft, BSD ist ein Acronym für <quote>Berkeley
Software Distribution</quote>. Das ist der Name, den die
Berkeley <acronym>CSRG</acronym> (Computer Systems Research
Group) damals für ihre Distribution des &unix; Systems gewählt
hat.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="define-pola">
<para>Was bedeutet <acronym>POLA</acronym>?</para>
</question>
<answer>
<para>Prinzip der kleinsten Überraschung (engl.
<foreignphrase>Principle of Least Astonishment</foreignphrase>).
Das bedeutet, daß Änderungen in FreeBSD, die den
Endanwender betreffen, für diesen so transparent wie
möglich bleiben. Es wäre beispielsweise eine
Verletzung dieses Prinzips die Variablen in
<filename>/etc/defaults/rc.conf</filename> willkürlich
umzuordnen. Entwickler berücksichtigen dieses Prinzip,
wenn Sie über Änderungen nachdenken, die den Endanwender
betreffen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="define-repocopy">
<para>Was ist eine repo-copy?</para>
</question>
<answer>
<para>Eine repo-copy (die Kurzform von <quote>repository
copy</quote>) bedeutet, daß Dateien direkt innerhalb
des CVS repository kopiert wurden.</para>
<para>Wenn eine Datei an einen anderen Ort im Repository
kopiert oder verschoben werden müsste, würde ein
Committer ohne repo-copy die neue Datei mit <command>cvs
add</command> hinzufügen und die alte ggfs. mit
<command>cvs rm</command> löschen.</para>
<para>Damit würden allerdings die Einträge in der
History (die Einträge im CVS-Logfile) nicht mit
übertragen. Da das FreeBSD Projekt diese
Informationen allerdings für äußerst
nützlich hält, wird eine repository copy
durchgeführt. Bei diesem Vorgang wird einer der
CVS-Meister die Dateien direkt innerhalb des Repository
verschieben, statt das Programm &man.cvs.1; zu
benutzen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="bikeshed-painting">
<para>Warum sollte mich die Farbe des Fahrradschuppens
interessieren?</para>
</question>
<answer>
<para>Die ganz, ganz kurze Antwort ist überhaupt nicht.
Die etwas längere Antwort lautet: Nur weil Sie in der
Lage sind, einen Fahrradschuppen zu bauen, müssen Sie
noch lange nicht andere davon abhalten, nur weil Ihnen die
nicht Farbe gefällt. Dies ist natürlich eine Metapher
dafür, daß Sie nicht eine Diskussion über
jede kleine Änderung beginnen sollen, nur weil Sie
das können. Einige Leute behaupten sogar, daß
die Anzahl der (nutzlosen) Kommentare über eine
Änderung umgekehrt proportional zu Ihrer
Komplexität der Änderung ist.</para>
<para>Die noch längere und vollständigere Antwort
ist, daß &a.phk; nach einen langen Diskussion
über das Thema "Soll &man.sleep.1; Sekundenbruchteile
als Parameter akzeptieren?" eine lange Mail mit dem Titel
<quote><ulink
url="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers">A
bike shed (any colour will do) on greener
grass...</ulink></quote> schrieb. Die einschlägigen
Teile der Nachricht lauteten:</para>
<blockquote>
<attribution>&a.phk; in freebsd-hackers,
2.10.1999</attribution>
<para>Einige von Euch haben mich gefragt, <quote>Was
meinst Du mit dem Fahrradschuppen?</quote></para>
<para>Es ist eine lange oder eigentlich eher eine sehr
alte und doch sehr kurze Geschichte. C. Northcote
Parkinson schrieb in den führen sechzigern ein Buch
mit dem Namen <quote>Parkinson's Law</quote>, das viele
Einblick in die Beziehungen innerhalb des Managements
gibt.</para>
<para>[ein paar Kommentare zum Buch gestrichen]</para>
<para>In dem Beispiel mit dem Fahrradschuppen ist die
andere wichtige Komponente ein Kernkraftwerk. Ich
glaube, daß zeigt schon, wie alt dieses Buch
ist.</para>
<para>Parkinson zeigte, daß man zum Vorstand gehen
kann und die Genehmigung für ein mehrere Millionen
oder sogar Milliarden Dollar teures Kernkraftwerk
bekommt; wenn man aber einen Fahrradschuppen bauen will,
wird man in endlose Diskussionen verwickelt.</para>
<para>Laut Parkinson liegt das daran, daß ein
Kernkraftwerk so groß, so teuer und so kompliziert
ist, daß die Leute es nicht verstehen. Und bevor
sie versuchen, es zu verstehen, verlassen Sie sich
lieber darauf, daß irgend jemand sicherlich die
ganzen Details geprüft hat, bevor das Projekt bis
zum Vorstand gekommen ist. Im Buch von Richard P.
Feynmann finden sich einige interessante und sehr
passende Beispiele aus dem Gebiet von Los
Alamos.</para>
<para>Ein Fahrradschuppen ist was anderes. Jeder kann an
seinem freien Wochenende einen bauen und hat trotzdem
noch genug Zeit für die Sportschau. Daher ist es
unwichtig, wie gut man sich vorbereitet und wie sinnvoll
der eigene Vorschlag ist. Irgend jemand wird die
Möglichkeit nutzen und zeigen, daß er seine
Arbeit tut, daß er aufmerksam ist, daß er
<emphasis>da ist</emphasis>.</para>
<para>In Dänemark nennen wir dieses Verhalten
<quote>Seine Fingerabdrücke hinterlassen</quote>.
Es geht um persönlichen Stolz und Prestige; die
Chance, auf irgend etwas zu zeigen und zu sagen zu
können: <quote>Da! Das habe
<emphasis>Ich</emphasis> getan.</quote> Politiker leiden
sehr stark darunter, aber viele Leute verhalten sich so,
wenn sie die Chance haben. Denkt einfach mal an
Fußabdrücke in feuchtem Zement.</para>
</blockquote>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="funnies">
<title>Nicht ganz ernstgemeinte Fragen</title>
<qandaset>
<qandaentry>
<question id="very-very-cool">
<para>Wie cool ist FreeBSD?</para>
</question>
<answer>
<para>Q. Hat irgend jemand Temperaturmessungen
durchgeführt, während FreeBSD läuft? Ich
weiß, daß Linux cooler läuft, als DOS,
aber niemals gesehen, daß FreeBSD erwähnt
wurde. Es scheint sehr heiß zu laufen.</para>
<para>A. Nein, aber wir haben zahlreiche Geschmackstests mit
verblendeten Freiwilligen durchgeführt, denen
außerdem zuvor 250 Mikrogramm LSD-25 verabreicht
wurden. 35% der Freiwilligen sagte, daß FreeBSD
nach Orange schmeckte, Linux hingegen schmecke wie
<quote>purple haze</quote> (Anm. d. Übersetzers: Song
von Jimmy Hendrix und LSD-Marke). Keine der Gruppen hat
besondere Abweichungen der Temperatur erwähnt.
Eventuell hätten wir sämtliche Ergebnisse dieser
Untersuchung fortwerfen sollen, als wir festgestellt
haben, daß zu viele der Freiwilligen den Raum
während der Tests verlassen haben und dadurch die
Ergebnisse verfälscht haben. Wir glauben, daß
die meisten der Freiwilligen nun bei Apple sind und an
ihrer neuen <quote>scratch and sniff</quote>
Oberfläche arbeiten. Es ist ein lustiges, altes
Geschäft, in dem wir uns befinden!</para>
<para>Ernsthaft, FreeBSD und Linux benutzen beide die
Instruktion <acronym>HLT</acronym> (halt), wenn das System
untätig ist, wodurch der Energieverbrauch und dadurch
die produzierte Wärme reduziert wird. Falls Sie auch
noch APM (Advanced Power Management) konfiguriert haben,
kann FreeBSD Ihre CPU auch in einen Low-Power-Modus
bringen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="letmeoutofhere">
<para>Wer kratzt in meinen Speicherbänken??</para>
</question>
<answer>
<para>Q. Gibt es irgend etwas <quote>seltsames</quote>, das
FreeBSD tut, wenn ich den Kernel kompiliere, das dazu
führt, daß der Speicher ein kratzendes
Geräusch macht? Bei der Kompilierung (und auch
für einen kurzen Moment nach der Erkennung des
Floppy-Laufwerks beim Hochfahren), kommt ein seltsames
kratzendes Geräusch von etwas das die
Speicherbänke zu sein scheinen.</para>
<para>A. Ja! In der BSD-Dokumentation finden Sie
häufige Verweise auf <quote>Daemons</quote> und was
die meisten Leute nicht wissen, ist, daß diese sich
auf echte, nicht-körperlichen Wesen beziehen, die
Besitz von Ihrem Computer ergriffen haben. Das kratzende
Geräusch, das von Ihrem Speicher kommt, ist in
Wirklichkeit hochtöniges Flüstern, das unter den
Daemons ausgetauscht wird, während Sie entscheiden,
wie Sie die verschiedenen Systemadministrationsaufgaben,
am besten erledigen.</para>
<para>Wenn Sie das Geräusch stört, wird ein
<command>fdisk /mbr</command> sie vertreiben, aber wundern
Sie sich nicht, wenn sie feindlich reagieren und
versuchen, Sie aufzuhalten. Wenn Sie während der
Ausführung zu irgendeinem Zeitpunkt die teuflische
Stimme von Bill Gates aus dem eingebauten Lautsprecher
kommen hören, laufen Sie weg und sehen Sie sich auf
keinen Fall um! Befreit von dem ausgleichenden
Einfluß der BSD Dämonen sind die beiden
Dämonen von DOS und Windows oft dazu in der Lage, die
totale Kontrolle über Ihre Maschine für die
ewige Verdammung Ihrer Seele zurückzuerlangen. Da
Sie jetzt die Wahrheit kennen, würden Sie es
vorziehen, sich an die Geräusche zu gewöhnen,
wenn Sie die Wahl hätten.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="changing-lightbulbs">
<para>Wieviele FreeBSD-Hacker braucht man, um eine
Glühbirne auszuwechseln?</para>
</question>
<answer>
<para>Eintausendeinhundertundneunundsechzig:</para>
<para>Dreiundzwanzig, die sich bei -CURRENT beschweren,
daß das Licht aus ist;</para>
<para>Vier, die behaupten, daß es sich um ein
Konfigurationsproblem handelt und daß solche Dinge
wirklich nach -questions gehören;</para>
<para>Drei, die PRs hierzu einreichen, einer von ihnen wird
falsch unter DOC abgelegt und fristet sein Dasein im
Dunkeln;</para>
<para>Einen, der eine ungetestete Glühbirne einreicht,
wonach buildworld nicht mehr funktioniert, und sie dann
fünf Minuten später wieder herausnimmt;</para>
<para>Acht, die die PR-Erzeuger beschimpfen, weil sie zu
ihren PRs keine Patche hinzugefügt haben;</para>
<para>Fünf, die sich darüber beschweren, daß
buildworld nicht mehr funktioniert;</para>
<para>Einunddreißig, die antworten, daß es bei
ihnen funktioniert und daß sie cvsup wohl zu einigem
ungünstigen Zeitpunkt durchgeführt
haben;</para>
<para>Einen, der einen Patch für eine neue
Glühbirne an -hackers schickt;</para>
<para>Einen, der sich beschwert, daß es vor drei
Jahren Patches hierfür hatte, aber als er sie nach
-CURRENT schickte, sind sie einfach ignoriert worden und
er hatte schlechte Erfahrungen mit dem PR-System; nebenbei
ist die vorgeschlagene Glühbirne nicht
reflexiv;</para>
<para>Siebenunddreißig, die schreien, daß
Glühbirnen nicht in das Basissystem gehören,
daß Committer nicht das Recht haben, solche Dinge
durchzuführen, ohne die Gemeinschaft zu konsultieren
und WAS GEDENKT -CORE HIER ZU TUN!?</para>
<para>Zweihundert, die sich über die Farbe des
Fahrradschuppens beschweren;</para>
<para>Drei, die darauf hinweisen, daß der Patch nicht
mit &man.style.9; übereinstimmt;</para>
<para>Siebzehn, die sich beschweren, daß die
vorgeschlagene neue Glühbirne der GPL
unterliegt;</para>
<para>Fünfhundertundsechsundachtzig, die sich in einen
Streit über die vergleichbaren Vorteile der GPL, der
BSD-Lizenz, der MIT-Lizenz, der NPL und der
persönlichen Hygiene nichtgenannter FSF-Gründer
verwickeln;</para>
<para>Sieben, die unterschiedliche Teile des Threads nach
-chat und -advocacy weiterleiten;</para>
<para>Einer, der die vorgeschlagene Glühbirne einbaut,
obwohl sie dunkler leuchtet, als die alte;</para>
<para>Zwei, die sie wieder ausbauen, und in einer
wütenden Nachricht argumentieren, daß FreeBSD
besser ganz im Dunkeln dasteht, als mit einer
dämmerigen Glühbirne;</para>
<para>Sechsundvierzig, die sich lärmend wegen des
Wiederausbaus der dämmerigen Glühbirne streiten
und eine Erklärung von -core verlangen;</para>
<para>Elf, die eine kleinere Glühbirne beantragen,
damit sie in ihr Tamagotchi paßt, falls wir
irgendwann beschließen, FreeBSD auf diese Plattform
zu portieren;</para>
<para>Dreiundsiebzig, die sich über die SNR auf
-hackers und -chat beschweren und aus Protest
abmelden;</para>
<para>Dreizehn, die <quote>unsubscribe</quote>,
<quote>How do I unsubscribe?</quote>
oder <quote>Please remove me from the list</quote> gefolgt
von der üblichen Fußzeile abschicken;</para>
<para>Einen, der eine funktionierende Glühbirne
einbaut, während alle zu beschäftigt damit sind,
mit jedem zu streiten, um es zu bemerken;</para>
<para>Einunddreißig, die herausstellen, daß die
neue Glühbirne 0,364% heller leuchten würde,
wenn sie mit TenDRA kompiliert werden würde (obwohl
sie ein einen Würfel umgeformt werden
müßte) und daß FreeBSD deshalb nach
TenDRA, anstatt nach GCC wechseln sollte;</para>
<para>Einen, der sich beschwert, daß bei der neuen
Glühbirne die Verkleidung fehlt;</para>
<para>Neun (einschließlich der PR-Ersteller), die
fragen <quote>Was ist MFC?</quote></para>
<para>Siebenundfünfzig, die sich zwei Wochen, nachdem
die Birne gewechselt worden ist, darüber beschweren,
daß das Licht aus war.</para>
<para><emphasis>&a.nik; hat
hinzugefügt:</emphasis></para>
<para><emphasis>Ich habe ziemlich hierüber
gelacht.</emphasis></para>
<para><emphasis>Und dann dachte ich: "Halt, sollte in dieser
Liste nicht irgendwo 'Einer, der es dokumentiert'
sein?"</emphasis></para>
<para><emphasis>Und dann wurde ich erleuchtet
:-)</emphasis></para>
</answer>
</qandaentry>
<qandaentry>
<question id="dev-null">
<para>Was passiert mit den Daten, die nach
<filename>/dev/null</filename> geschrieben werden?</para>
</question>
<answer>
<para>Sie werden in einer speziellen Datensenke der CPU in
Wärme umgewandelt, die dann über den
Kühlkörper und den Lüfter abgeführt
wird. Dies ist einer der Gründe für die
Kühlung von CPUs; die Anwender gewöhnen sich an
die schnelleren Prozessoren, gehen nicht mehr so
sorgfältig mit Ihren Daten um und so landen immer
mehr Daten in <filename>/dev/null</filename>, was zur
Überhitzung der CPU führt. Wenn Sie
<filename>/dev/null</filename> löschen (was die
Datensenke ziemlich sicher abschaltet), wird Ihre CPU zwar
nicht mehr so heiß, dafür wird Ihr System aber
sehr schnell von den überzähligen Daten
überladen und merkwürdige Effekte zeigen. Wenn
Sie eine sehr schnell Netzwerkverbindung haben,
können Sie Ihre CPU kühlen, indem sie Daten aus
<filename>/dev/random</filename> lesen und in die Weite
des Netzwerkes schicken; allerdings besteht hier die
Gefahr der Überhitzung von Netzwerk und
<filename>/</filename>. Außerdem dürfte Ihr
ISP ziemlich wütend werden, da der größte
Teil der Daten von seinen Geräten in Hitze
umgewandelt werden wird; da ISPs aber über
Klimaanlagen verfügen, sollte das kein großes
Problem sein, solange Sie es nicht
übertreiben.</para>
<para><emphasis>Nachtrag Paul Robinson:</emphasis></para>
<para>Es gibt andere Mittel und Wege. Wie jeder gute
Systemadministrator weiß, gehört es zum guten
Ton, einigen Daten zum Bildschirm zu senden, damit die
Leuchtkäferchen, die das Bild anzeigen,
glücklich sind. Die Leuchtkäferchen werden nach
der Farbe Ihrer Hüte (Rot, Grün, oder Blau)
unterschieden und sie verstecken bzw. zeigen sich (wobei
man die Farbe ihrer Hüte erkennen kann) bei jeder
Nahrungsaufnahme. Grafikkarten wandeln Daten in
Leuchkäfer-Nahrung um und schicken sie dann zu den
Leuchtkäfern - teure Karten erzeugen bessere Nahrung
und sorgen so für besseres Verhalten der
Leuchtkäfer. Diese brauchen allerdings einen
konstanten Stimulus - darum gibt es
Bildschirmschoner.</para>
<para>Darum lautet mein Vorschlag, die zufälligen Daten
einfach zum Bildschirm zu schicken, damit sie von den
Leuchtkäfern verzehrt werden. Dabei entsteht keine
Hitze, die Leuchtkäfer bleiben glücklich und man
wird seine überflüssigen Daten sehr schnell los,
auch wenn der Bildschirm etwas merkwürdig
aussieht.</para>
<para>Übrigens: Als Ex-Admin eines großen ISPs,
der so seine Probleme mit der Kühlung seines
Rechenzentrums hatte, kann ich nur davon abraten,
überflüssige Daten einfach in das Netzwerk zu
schicken. Die Heinzelmännchen, die die Pakete
verteilen und versenden, regen sich darüber ganz
furchtbar auf.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="advanced">
<title>Weiterführende Themen</title>
<qandaset>
<qandaentry>
<question id="learn-advanced">
<para>Wie kann ich mehr über die Interna von FreeBSD
erfahren?</para>
</question>
<answer>
<para>Zur Zeit gibt es kein Buch über die Interna von
FreeBSD. Allgemeines Wissen über Wissen kann
allerdings in den meisten Fällen auf FreeBSD
angewendet werden. Auch einige der BSD-spezifischen
Bücher sind für FreeBSD verwendbar.</para>
<para>Eine Liste finden Sie im entsprechenden Abschnitt der
<ulink URL="../handbook/bibliography-osinternals.html">
Bibliographie</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="how-to-contribute">
<para>Wie kann ich bei der Entwicklung von FreeBSD
mitarbeiten?</para>
</question>
<answer>
<para>Genauere Informationen finden Sie im Artikel <ulink
url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributing/article.html">
Contributing to FreeBSD</ulink>. Wie können Hilfe immer gut
gebrauchen!</para>
</answer>
</qandaentry>
<qandaentry>
<question id="define-snap-release">
<para>Was sind SNAPs und RELEASEs?</para>
</question>
<answer>
<para>Derzeit existieren drei aktive/halbaktive Zweige im
<ulink url="http://www.de.FreeBSD.org/cgi/cvsweb.cgi">
FreeBSD-CVS-Repository</ulink> (im Zweig RELENG_2 erfolgen
vielleicht noch zwei Änderungen pro Jahr, daher gibt
es nur drei aktive Entwicklungszweige:</para>
<itemizedlist>
<listitem>
<para><literal>RELENG_2_2</literal> bzw.
<emphasis>2.2-STABLE</emphasis></para>
</listitem>
<listitem>
<para><literal>RELENG_3</literal> bzw.
<emphasis>3.X-STABLE</emphasis></para>
</listitem>
<listitem>
<para><literal>RELENG_4</literal> bzw.
<emphasis>4-STABLE</emphasis></para>
</listitem>
<listitem>
<para><literal>HEAD</literal> bzw.
<emphasis>-CURRENT</emphasis> oder
<emphasis>5.0-CURRENT</emphasis></para>
</listitem>
</itemizedlist>
<para><literal>HEAD</literal> ist keine wirkliche
Bezeichnung für einen Zweig, wie die anderen beiden.
Es ist lediglich eine symbolische Konstante für
<quote><emphasis>den aktuellen, nicht verzweigten
Entwicklungsstrom</emphasis></quote>, auf den wir uns
einfach als <quote>-CURRENT</quote> beziehen.</para>
<para>Zur Zeit ist <quote>-CURRENT</quote> der 5.0
Entwicklungsstrom und der
<literal>4-STABLE</literal>-Zweig
<symbol>RELENG_4</symbol> wurde im März 2000 von
<quote>-CURRENT</quote> abgespalten.</para>
<para>Der <literal>2.2-STABLE</literal>-Zweig
<symbol>RELENG_2_2</symbol> verließ -CURRENT im
November 1996, die Weiterentwicklung wurde fast
vollständig eingestellt.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="custrel">
<para>Wie kann ich meine eigene, angepaßtes Release
erstellen?</para>
</question>
<answer>
<para>Eine Anleitung dazu finden Sie im Artikel <ulink
url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/article.html">
FreeBSD Release Engineering</ulink>.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="makeworld-clobbers">
<para>Wieso überschreibt <command>make world</command>
das installierte System?</para>
</question>
<answer>
<para>Das ist beabsichtigt. Wie der Name schon andeutet,
erstellt <command>make world</command> alle Systemdateien
von Grund auf neu. Sie können also sicher sein, am
Ende eine saubere, konsistente Umgebung zu haben (das ist
der Grund, warum es so lange dauert).</para>
<para>Falls die Umgebungsvariable <literal>DESTDIR</literal>
während der Ausführung von <command>make
world</command> oder <command>make install</command>
definiert ist, werden die neu erstellten Binaries unter
<literal>${DESTDIR}</literal> in einem zum
installierten identischen Verzeichnisbaum abgelegt.
Einige zufällige Kombinationen von Änderungen
von Shared Libraries und Neuerstellungen von Programmen
können hierbei jedoch ein Scheitern von <command>make
world</command> verursachen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="bus-speed-defaulted">
<para>Warum meldet mein System <quote>(bus speed
defaulted)</quote> beim Start?</para>
</question>
<answer>
<para>Die Adaptec 1542 SCSI Hostadapter erlauben dem
Benutzer die Buszugriffsgeschwindigkeit per Software zu
konfigurieren. Ältere Versionen des 1542-Treibers
versuchten, die schnellstmögliche Geschwindigkeit
herauszufinden und konfigurierten den Adapter
entsprechend. Wir haben festgestellt, daß dies auf
einigen Systemen nicht funktioniert, weshalb Sie nun die
Kernelkonfigurationsoption <symbol>TUNE_1542</symbol>
definieren müssen, um es zu aktivieren. Die
Benutzung auf Systemen, auf denen es funktioniert,
könnte Ihre Platten schneller machen, aber auf den
Systemen, auf denen es nicht funktioniert, könnten
Ihre Daten beschädigt werden.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="ctm">
<para>Kann ich -CURRENT mit begrenztem Internetzugang
folgen?</para>
</question>
<answer>
<para>Ja, Sie können das tun, <literal>ohne</literal>
den gesamten Quellbaum herunterzuladen, indem Sie die
Einrichtung <ulink
url="../handbook/synching.html#CTM">CTM</ulink>
benutzen.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="split-240k">
<para>Wie haben Sie die Distribution in 240k-Dateien
aufgespalten?</para>
</question>
<answer>
<para>Bei neueren BSD-basierten Systemen gibt es eine Option
<option>-b</option> zu split, die das Splitten von Dateien
an willkürlichen Bytegrenzen erlaubt.</para>
<para>Hier ist ein Beispiel aus
<filename>/usr/src/Makefile</filename>.</para>
<programlisting>
bin-tarball:
(cd ${DISTDIR}; \
tar cf - . \
gzip --no-name -9 -c | \
split -b 240640 - \
${RELEASEDIR}/tarballs/bindist/bin_tgz.)
</programlisting>
</answer>
</qandaentry>
<qandaentry>
<question id="submitting-kernel-extensions">
<para>Ich habe eine Kernelerweiterung geschrieben. An wen
sende ich sie?</para>
</question>
<answer>
<para>Lesen Sie bitte den Artikel <ulink
url="http://www.de.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributing/article.html">
Contributing to FreeBSD</ulink>.</para>
<para>Und Danke, daß Sie darüber
nachdenken!</para>
</answer>
</qandaentry>
<qandaentry>
<question id="pnp-initialize">
<para>Wie werden Plug&Play ISA-Karten erkannt und
initialisiert?</para>
</question>
<answer>
<para>Von: Frank Durda IV
<email>uhclem@nemesis.lonestar.org</email></para>
<para>Kurz gesagt gibt es nur wenige I/O-Ports über die
PnP-Karten antworten, wenn der Host fragt, ob jemand da
ist. Wenn die PnP-Erkennungsroutine startet, fragt sie,
ob irgendwelche PnP-Karten vorhanden sind und alle
PnP-Karten antworten mit ihrer Modellnummer auf demselben
Port, von dem sie auch gelesen haben. Die
Erkennungsroutine erhält also ein geodertes
<quote>Ja</quote> auf diese Frage. Mindestens ein Bit
wird bei dieser Antwort gesetzt sein. Die
Erkennungsroutine ist dann in der Lage, dafür zu
sorgen, daß Karten mit Modellnummern (zugeordnet von
Microsoft/Intel) kleiner als X <quote>off-line</quote>
gesetzt werden. Sie prüft dann, ob immer noch Karten
da sind, die auf die Frage antworten. Falls die Antwort
<literal>0</literal> war, sind keine Karten mit IDs
größer X vorhanden. Nun prüft die
Erkennungsroutine, ob Karten unterhalb
<literal>X</literal> vorhanden sind. Dann setzt die
Erkennungsroutine alle Karten größer als
X-(limit/4) off-line und wiederholt die Frage. Wenn diese
halbbinäre Suche nach IDs in Folge genügend oft
wiederholt worden ist, wird die Erkennungsroutine
schließlich alle in einem Rechner befindlichen
PnP-Karten identifiziert haben und das mit einer
Iterationszahl sehr viel kleiner als 2^64.</para>
<para>Die IDs bestehen aus zwei 32-Bit-Feldern (daher 2^64)
+ acht Bit Prüfsumme. Die ersten 32 Bit sind die
Herstellerkennung. Es wurde zwar nicht bestätigt,
aber es wird angenommen, daß unterschiedliche
Kartentypen desselben Herstellers unterschiedliche 32-Bit
Herstellerkennungen besitzen können. 32 Bit nur
für eindeutige Hersteller zu benötigen, scheint
etwas übertrieben.</para>
<para>Die niedrigen 32 Bit sind eine Seriennummer,
Ethernetadresse - etwas, das die betreffende Karte
einzigartig macht. Die Hersteller dürfen niemals
eine zweite Karte mit denselben niedrigen 32 Bit
herstellen, es sei denn, die höheren 32 Bit sind
unterschiedlich. Sie können also mehrere Karten des
selben Typs im Rechner haben und die gesamten 64 Bit
bleiben stets eindeutig.</para>
<para>Die 32-Bit-Gruppen können niemals nur aus Nullen
bestehen. Das erlaubt es, bei der binären Suche zu
Beginn nur auf von Null verschiedene Bits zu
achten.</para>
<para>Wenn das System alle vorhandenen Karten-IDs
identifiziert hat, reaktiviert es jede Karte - eine nach
der anderen (über dieselben I/O-Ports) und ermittelt,
welche Ressourcen von der jeweiligen Karte benötigt
werden, welche Wahlmöglichkeiten für Interrupts
bestehen usw. Alle Karten werden abgefragt, um diese
Informationen zusammenzustellen.</para>
<para>Diese Informationen werden dann mit Informationen aus
allen ECU-Dateien auf der Festplatte oder mit im MLB-BIOS
verdrahteten Informationen verknüpft. Die ECU- und
BIOS-PnP-Unterstützung für Hardware auf dem MLB
ist für gewöhnlich künstlich und was die
Peripheriegeräte tun ist nicht wirklich echtes PnP.
Durch die Untersuchung der BIOS-Informationen und der
ECU-Informationen können die Erkennungsroutinen
jedoch die von PnP-Geräten benutzten Ressourcen so
ändern, daß vermieden wird, daß bereits
von anderen Geräten benutzte Ressourcen verwendet
werden.</para>
<para>Dann werden die PnP-Geräte nochmals besucht und
ihre I/O, DMA, IRQ und Memory-Map-Adressen werden
zugeordnet. Die Geräte werden an diesen Stellen
sichtbar werden und dort bis zum nächsten Reboot
verbleiben. Allerdings hindert Sie auch nichts daran, sie
zu verschieben, wohin Sie wollen.</para>
<para>Im obigen Teil wurde sehr viel vereinfacht, aber die
grundlegende Idee sollte klar geworden sein.</para>
<para>Microsoft hat einige der primären
Druckerstatusports für PnP übernommen, da keine
Karte diese Adressen für die entgegengesetzten
I/O-Zyklen decodiert. Ich habe während der
frühen Überprüfungsperiode des
PnP-Vorschlags eine echte IBM Druckerkarte gefunden, die
Schreibzugriffe auf dem Statusport decodiert hat, aber MS
hat nur <quote>tough</quote> gesagt. Also schreiben sie
auf den Druckerstatusport, um Adressen zu setzen, benutzen
zusätzlich diese Adresse + <literal>0x800</literal>
und einen dritten I/O-Port zum Lesen, der irgendwo
zwischen <literal>0x200</literal> und
<literal>0x3ff</literal> liegen kann.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="major-numbers">
<para>Wie bekommen ich eine major number für einen
Gerätetreiber, den ich geschrieben habe?</para>
</question>
<answer>
<para>Das hängt davon ab, ob Sie beabsichtigen, den
Treiber frei verfügbar zu machen, oder nicht. Falls
dem so ist, senden Sie uns bitte eine Kopie der
Treiber-Sourcen und zusätzlich die entsprechenden
Änderungen der Datei <filename>files.i386</filename>,
ein Beispiel für einen Eintrag in der
Konfigurationsdatei und den entsprechenden Code für
&man.MAKEDEV.8; um spezielle Geräte zu erstellen, die
Ihr Gerät benutzt. Falls Sie nicht beabsichtigen,
den Treiber frei verfügbar zu machen, oder es
aufgrund von Lizenzbeschränkungen nicht können,
dann ist die major number 32 für zeichenorientierte
und die major number 8 für blockorientierte
Geräte speziell für diesen Zweck reserviert. In
jedem Fall würden wir uns freuen, auf der Mailingliste
&a.hackers; etwas über Ihren neuen Treiber zu
hören.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="alternate-directory-layout">
<para>Gibt es alternative Layoutverfahren für
Verzeichnisse?</para>
</question>
<answer>
<para>Als Antwort auf die Frage nach alternativen
Layoutverfahren für Verzeichnisse ist das Schema, das
derzeit benutzt wird, unverändert von dem, das ich
1983 geschrieben habe. Ich habe das Vorgehen für das
originale Fast-Filesystem geschrieben und es niemals
überarbeitet. Es funktioniert gut, wenn es darum
geht, zu verhindern, daß Zylindergruppen volllaufen.
Wie viele von Ihnen angemerkt haben, funktioniert es
schlecht für find. Die meisten Dateisysteme werden
von Archiven erstellt, die mit einer Tiefensuche (also
ftw) erstellt wurden. Diese Verzeichnisse werden
über die Zylindergruppen hinweg entfaltet und
erzeugen denkbar ungünstigste Voraussetzungen
für zukünftige Tiefensuchen. Falls man die
Gesamtzahl der zu erstellenden Verzeichnisse wüsste,
wäre die Lösung die, (gesamt / fs_ncg) pro
Zylindergruppe zu erstellen, bevor fortgefahren wird.
Offensichtlich müßte man eine Heuristik
erstellen, um die Zahl zu schätzen. Sogar die
Benutzung einer kleinen, fixen Zahl, z.B. 10, würde
eine Verbesserung um Größenordnungen ausmachen.
Um Wiederherstellungen von normalem Betrieb (wo der
derzeitige Algorithmus vermutlich sinnvoller ist) zu
unterscheiden, könnten Sie die Clusterung von bis zu
10 benutzen, wenn sie alle innerhalb eines
10-Sekunden-Fensters durchgeführt würden.
Jedenfalls ist mein Schluss, daß dies ein
fruchtbares Gebiet für Experimente ist.</para>
<para>Kirk McKusick, September 1998</para>
</answer>
</qandaentry>
<qandaentry>
<question id="kernel-panic-troubleshooting">
<para>Wie kann ich optimalen Nutzen aus einer kernel panic
ziehen?</para>
</question>
<answer>
<para><emphasis>[Dieser Abschnitt wurde von &a.des;, der
einige Tippfehler korrigiert und die Kommentare in eckigen
Klammern hinzugefügt hat, aus einer Mail von
&a.wpaul; in der <link
linkend="mailing">Mailingliste</link> freebsd-current
entnommen.]</emphasis></para>
<programlisting>
From: Bill Paul <wpaul@skynet.ctr.columbia.edu>
Subject: Re: the fs fun never stops
To: Ben Rosengart
Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
Cc: current@FreeBSD.org
</programlisting>
<para><emphasis>[<Ben Rosengart> sendete die
folgende Panik-Meldung]</emphasis></para>
<programlisting>
> Fatal trap 12: page fault while in kernel mode
> fault virtual address = 0x40
> fault code = supervisor read, page not present
> instruction pointer = 0x8:0xf014a7e5
^^^^^^^^^^
> stack pointer = 0x10:0xf4ed6f24
> frame pointer = 0x10:0xf4ed6f28
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, def32 1, gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 80 (mount)
> interrupt mask =
> trap number = 12
> panic: page fault
</programlisting>
<para>[Wenn] Sie eine Meldung wie diese sehen, reicht es
nicht, sie einfach zu reproduzieren und sie einzusenden.
Der Wert des Instruktionszeigers, den ich oben
hervorgehoben habe, ist wichtig; leider ist er auch
konfigurationsabhängig. Mit anderen Worten variieren
die Werte abhängig von dem Kernel-Image, das Sie
tatsächlich benutzen. Wenn Sie ein GENERIC
Kernelimage von einem der Snapshots benutzen, dann ist es
für jemand anderen möglich, die fehlerhafte
Instruktion herauszufinden, aber wenn Sie einen
angepaßten Kernel benutzen, können nur
<emphasis>Sie</emphasis> uns sagen, wo der Fehler
auftrat.</para>
<para>Was Sie tun sollten, ist folgendes:</para>
<procedure>
<step>
<para>Notieren Sie sich den Wert des
Instruktionszeigers. Beachten Sie, daß der Teil
<literal>0x8:</literal> am Anfang in diesem Fall nicht
von Bedeutung ist; der Teil
<literal>0xf0xxxxxx</literal> ist der, den wir
wollen.</para>
</step>
<step>
<para>Tun Sie folgendes, wenn das System
rebootet:</para>
<screen>&prompt.user; <userinput>nm -n /kernel.that.caused.the.panic | grep f0xxxxxx</userinput></screen>
<para>wobei <literal>0xf0xxxxxx</literal> der Wert des
Instruktionszeigers ist. Es besteht die
Möglichkeit, daß Sie keinen exakten Treffer
erzielen, weil die Symbole in der Symboltabelle des
Kernels Funktionseinstiegspunkte sind und die Adresse
des Instruktionszeiger irgendwo innerhalb einer
Funktion liegen wird und nicht am Anfang. Falls sie
keinen exakten Treffer erzielen, lassen Sie den
letzten Teil des Werts des Instruktionszeigers weg und
versuchen es nocheinmal, z.B.:</para>
<screen>&prompt.user; <userinput>nm -n /kernel.that.caused.the.panic | grep f0xxxxx</userinput></screen>
<para>Falls das kein Ergebnis liefert, hacken Sie eine
weitere Ziffer ab. Wiederholen Sie die Schritte, bis
Sie irgendeine Ausgabe erhalten. Das Ergebnis wird
eine Liste möglicher Funktionen sein, die die
Panik verursacht haben. Das ist zwar kein absolut
genauer Mechanismus, um die Fehlerursache ausfindig zu
machen, aber es ist besser als gar nichts.</para>
</step>
</procedure>
<para>Ich sehe ständig Leute, die Panik-Meldungen wie
diese zeigen, aber ich sehe kaum jemanden, der sich die
Zeit nimmt, den Instruktionszeiger einer Funktion aus der
Symboltabelle des Kernel zuzuordnen.</para>
<para>Der beste Weg, den Grund für eine Panik
herauszufinden, ist der, einen Crash-Dump festzuhalten und
dann &man.gdb.1; zu benutzen, um den Stack im Crash-Dump
zurückzuverfolgen.</para>
<para>Jedenfalls ist die Methode, die ich normalerweise
benutze, folgende:</para>
<procedure>
<step>
<para>Richten Sie eine Kernelkonfigurationsdatei ein,
fügen Sie optional <literal>options DDB</literal>
hinzu, falls Sie glauben, daß Sie den
Kerneldebugger benötigen. (Ich benutze ihn
hauptsächlich zum Setzen von Haltepunkten, wenn
ich eine Endlosschleife irgendeiner Art
vermute.)</para>
</step>
<step>
<para>Benutzen Sie <command>config -g
<replaceable>KERNELCONFIG</replaceable></command>, um
das Erstellungsverzeichnis einzurichten.</para>
</step>
<step>
<para><command>cd
/sys/compile/<replaceable>KERNELCONFIG</replaceable>;
make</command></para>
</step>
<step>
<para>Warten Sie, bis der Kernel fertig kompiliert
ist.</para>
</step>
<step>
<para><command>make install</command></para>
</step>
<step>
<para>reboot</para>
</step>
</procedure>
<para>Der &man.make.1;-Prozeß wird zwei Kernel
erstellt haben: <filename>kernel</filename> und
<filename>kernel.debug</filename>.
<filename>kernel</filename> wurde als
<filename>/kernel</filename> installiert, während
<filename>kernel.debug</filename> als Quelle für
Debuggersymbole für &man.gdb.1; benutzt werden
kann.</para>
<para>Um sicherzustellen, daß ein Crash-Dump erhalten
bleibt, müssen Sie
<filename>/etc/rc.config</filename> editieren und
<literal>dumpdev</literal> so setzen, daß es auf
Ihre Swap-Partition zeigt. Das bewirkt, daß die
&man.rc.8;-Skripte den Befehl &man.dumpon.8; benutzen, um
Crash-Dumps zu ermöglichen. Sie können
&man.dumpon.8; auch manuell ausführen. Nach einer
Panik kann der Crash-Dump mit &man.savecore.8;
wiederhergestellt werden; wenn <literal>dumpdev</literal>
in <filename>/etc/rc.conf</filename> gesetzt ist, werden
die &man.rc.8;-Skripte &man.savecore.8; automatisch
ausführen und den Crash-Dump unter
<filename>/var/crash</filename> ablegen.</para>
<note>
<para>Crash-Dumps von FreeBSD sind für
gewöhnlich genauso groß wie der physikalische
Hauptspeicher Ihres Rechners. Das heißt, wenn Sie 64MB RAM
haben, werden sie einen 64MB Crash-Dump erhalten.
Deshalb müssen Sie dafür sorgen, daß
genügend Speicherplatz in
<filename>/var/crash</filename> zur Verfügung
steht, um den Dump aufnehmen zu können. Alternativ
führen Sie &man.savecore.8; manuell aus und lassen
es den Crash-Dump in einem anderen Verzeichnis
wiederherstellen, in dem Sie mehr Platz haben. Es ist
möglich, die Größe des Crash-Dumps zu
begrenzen, indem <literal>options MAXMEM=(foo)</literal>
benutzt wird, um den Speicher, den der Kernel benutzt,
auf einen etwas vernünftigeren Wert zu setzen.
Wenn Sie z.B. 128MB RAM haben, können Sie die
Speicherbenutzung des Kernels auf 16MB begrenzen, so
daß die Größe Ihres Crash-Dumps 16MB
anstatt 128MB beträgen wird.</para>
</note>
<para>Wenn Sie den Crash-Dump wiederhergestellt haben,
können Sie den Stack mit &man.gdb.1; so
zurückverfolgen:</para>
<screen>&prompt.user; <userinput>gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0</userinput>
<prompt>(gdb)</prompt> <userinput>where</userinput></screen>
<para>Beachten Sie, daß es mehrere Seiten mit
wertvollen Informationen geben könnte; idealerweise
sollten Sie &man.script.1; benutzen, um sie alle
festzuhalten. Wenn Sie das vollständige Kernelimage
mit allen Debugginginformationen benutzen,
müßten Sie exakt die Zeile des
Kernel-Sourcecodes finden, wo die Panik aufgetreten ist.
Für gewöhnlich müssen Sie den Stack von
unten an zurückverfolgen, um die genaue
Ereignisabfolge, die zum Crash führte,
zurückzuverfolgen. Sie können &man.gdb.1; auch
zum Ausdrucken der Inhalte verschiedener Variablen oder
Strukturen benutzen, um den Systemstatus zum Zeitpunkt des
Absturzes zu untersuchen.</para>
<para>Wenn Sie nun wirklich verrückt sind und einen
zweiten Computer haben, können Sie &man.gdb.1; auch
für entferntes Debugging konfigurieren, so daß
Sie &man.gdb.1; auf einem System benutzen können, um
den Kernel auf einem anderen System zu debuggen,
einschließlich dem Setzen von Haltepunkten und dem
Bewegen in Einzelschritten durch den Kernelcode, genauso,
wie Sie es mit einem normalen Benutzerprogramm tun
können. Ich habe noch nicht damit gespielt weil ich
nicht oft Gelegenheit habe, zwei Rechner nebeneinander
für Debuggingzwecke einzurichten.</para>
<para><emphasis>[Bill hat hinzugefügt: "Ich
vergaß, etwas zu erwähnen: wenn Sie DDB
aktiviert haben und der Kernel im Debugger landet,
können Sie eine Panik (und einen Crash-Dump)
erzwingen, indem Sie einfach 'panic' am ddb-Prompt
eingeben. Er könnte während der Panikphase
wieder im Debugger stoppen. Falls er das tut, geben Sie
'continue' ein, dann wird er den Crash-Dump beenden."
-ed]</emphasis></para>
</answer>
</qandaentry>
<qandaentry>
<question id="dlsym-failure">
<para>Wieso funktioniert dlsym() nicht mehr für
ELF-Executables?</para>
</question>
<answer>
<para>Die ELF-Werkzeuge machen die in einem Executable
definierten Symbole dem dynamischen Linker nicht
standardmäßig sichtbar. Konsequenterweise
werden <function>dlsym()</function>-Suchen nach Handlern
aus Aufrufen von <function>dlopen(NULL, flags)</function>
diese Symbole nicht finden können.</para>
<para>Wenn Sie mit <function>dlsym()</function> nach im
Hauptexecutable eines Prozesses vorhandenen Symbolen
suchen wollen, müssen Sie das Executable mit der
Option <option>-export-dynamic</option> von &man.ld.1;
linken.</para>
</answer>
</qandaentry>
<qandaentry>
<question id="change-kernel-address-space">
<para>Wie kann ich den Adreßraum des Kernels
vergrössern oder verkleinern?</para>
</question>
<answer>
<para>Standardmäßig beträgt der
Adreßraum des Kernels 256MB (FreeBSD 3.X) bzw. 1 GB
(FreeBSD 4.X). Wenn Sie einen netzwerkintensiven Server
(z.B. einen großen FTP- oder HTTP-Server) betreiben,
kann es sein, daß Sie der Meinung sind, daß
256MB nicht ausreichen.</para>
<para>Wie also erhöhen Sie den Adreßraum? Hier
gibt es zwei Aspekte. Erstens müssen Sie dem Kernel
sagen, daß er einen größeren Anteil des
Adreßraums für sich selbst reservieren soll.
Da der Kernel am oberen Ende des Adreßraums geladen
wird, müssen Sie zweitens die Ladeadresse verringern,
damit er mit dem Kopf nicht gegen die Obergrenze
stößt.</para>
<para>Das erste Ziel erreicht man, indem man den Wert von
<literal>NKPDE</literal> in
<filename>src/sys/i386/include/pmap.h</filename>
erhöht. Für einen Adreßraum von 1 GB
sieht das so aus:</para>
<programlisting>
#ifndef NKPDE
#ifdef SMP
#define NKPDE 254 /* addressable number of page tables/pde's */
#else
#define NKPDE 255 /* addressable number of page tables/pde's */
#endif /* SMP */
#endif
</programlisting>
<para>Dividieren Sie die gewünschte
Adreßraumgröße (in Megabyte) durch vier
und subtrahieren Sie dann eins für UP und zwei
für SMP, um den korrekten Wert für
<literal>NKPDE</literal> zu finden.</para>
<para>Um das zweite Ziel zu erreichen müssen Sie die
korrekte Ladeadresse berechnen: subtrahieren Sie einfach
die Größe des Adreßraums (in Byte) von
0x100100000; für einen Adreßraum von 1 GB
lautet das Ergebnis 0xc0100000. Setzen Sie
<symbol>LOAD_ADDRESS</symbol> in
<filename>src/sys/i386/conf/Makefile.i386</filename> auf
diesen Wert; setzen Sie dann den Location-Counter am
Anfang der Abschnittsliste in
<filename>src/sys/i386/conf/kernel.script</filename> auf
denselben Wert:</para>
<programlisting>
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(btext)
SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib);
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0xc0100000 + SIZEOF_HEADERS;
.interp : { *(.interp) }
</programlisting>
<para>Konfigurieren und erstellen Sie Ihren Kernel dann neu.
Sie werden vermutlich Probleme mit &man.ps.1;, &man.top.1;
und ähnlichen Programmen haben. Ein <command>make
world</command> sollte diese beheben; alternativ
können Sie die gepatchte <filename>pmap.h</filename>
in das Verzeichnis <filename>/usr/include/vm</filename>
kopieren und danach <filename>libkvm</filename>,
&man.ps.1; und &man.top.1; neu erzeugen.</para>
<para>Hinweis: die Größe des
Kernel-Adreßraums muß ein Vielfaches von vier
Megabyte betragen.</para>
<para>[&a.dg; fügt hinzu: <emphasis>Ich glaube, der
Kerneladreßraum muß eine Zweierpotenz sein,
aber ich bin mir dessen nicht sicher. Der alte
(ältere) Bootcode pflegte die oberen Adreßbits
zu mißbrauchen und ich glaube, er erwartete
mindestens 256MB Granularität.]</emphasis></para>
</answer>
</qandaentry>
</qandaset>
</chapter>
<chapter id="acknowledgments">
<title>Danksagung</title>
<blockquote>
<attribution>FreeBSD Core Team</attribution>
<para>Falls Sie ein Problem in dieser FAQ entdecken, oder einen
Eintrag einsenden möchten, senden Sie uns bitte eine Mail
an &a.de.translators; Wir schätzen Ihr Feedback und können
diese FAQ ohne Ihre Hilfe nicht verbessern!</para>
</blockquote>
<variablelist>
<title>Originalversion</title>
<varlistentry>
<term>&a.jkh;</term>
<listitem>
<para>Gelegentliche Anpassungen von Umstrukturierungen der
FAQ und Aktualisierung.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&a.dwhite;</term>
<listitem>
<para>Dienste über Pflichtbesuche in freebsd-questions
hinaus</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&a.joerg;</term>
<listitem>
<para>Dienste über Pflichtbesuche im Usenet
hinaus</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&a.wollman;</term>
<listitem>
<para>Netzwerke und Formatierung</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Jim Lowe</term>
<listitem>
<para>Multicast-Informationen</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&a.pds;</term>
<listitem>
<para>Schreibmaschinenknecht der FreeBSD-FAQ</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Das FreeBSD-Team</term>
<listitem>
<para>Nörgeln, Stöhnen, Einsenden von
Daten</para>
</listitem>
</varlistentry>
</variablelist>
<para>Folgende Personen haben durch die Beantwortung von Fragen,
sowie durch Hinweise und Kommentare an der Entstehung der
deutschen Übersetzung mitgewirkt:</para>
<itemizedlist>
<listitem>
<para>Ross Alexander</para>
</listitem>
<listitem>
<para>&a.jhb;</para>
</listitem>
<listitem>
<para>&a.nik;</para>
</listitem>
<listitem>
<para>Glen Foster</para>
</listitem>
<listitem>
<para>Oliver Fromme</para>
</listitem>
<listitem>
<para>Frank Gruender</para>
</listitem>
<listitem>
<para>Chris Hill</para>
</listitem>
<listitem>
<para>James Howard</para>
</listitem>
<listitem>
<para>&a.jkh;</para>
</listitem>
<listitem>
<para>&a.alex;</para>
</listitem>
<listitem>
<para>&a.jmas;</para>
</listitem>
<listitem>
<para>Mike Meyer</para>
</listitem>
<listitem>
<para>Dan O'Connor</para>
</listitem>
<listitem>
<para>Eric Ogren</para>
</listitem>
<listitem>
<para>&a.de.pierau;</para>
</listitem>
<listitem>
<para>Oliver Schneider</para>
</listitem>
<listitem>
<para>Christoph Sold</para>
</listitem>
</itemizedlist>
<para>Und an alle anderen, an die wir nicht gedacht haben.
Entschuldigung und herzlichen Dank!</para>
</chapter>
&bibliography;
</book>
|