File: lg_answer18.html

package info (click to toggle)
lg-issue18 5-4
  • links: PTS
  • area: main
  • in suites: woody
  • size: 2,928 kB
  • ctags: 148
  • sloc: makefile: 36; sh: 4
file content (2595 lines) | stat: -rw-r--r-- 98,337 bytes parent folder | download | duplicates (2)
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
<!--startcut =======================================================  -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> 
<html>
<head>
<title>The Answer Guy Issue 18</title>
</head>

<BODY BGCOLOR="#EEE1CC" TEXT="#000000" LINK="#0000FF" VLINK="#0020F0"
ALINK="#FF0000">
<!--endcut =========================================================  -->
<H4>&quot;Linux Gazette...<I>making Linux just a little more fun!</I>&quot;
</H4>
<P> <hr> <P> 

<!-- ===============================================================  -->
<center>
<H1><A NAME="answer">
<img src="../gx/ans.gif" alt="" border=0 align=middle>
The Answer Guy
<img src="../gx/ans.gif" alt="" border=0 align=middle>
</A></H1> <BR>
<H4>By James T. Dennis,
<a href="mailto:jimd@starshine.org">jimd@starshine.org</a><BR> 
Starshine Technical Services, <A HREF="http://www.starshine.org/">
http://www.starshine.org/</A> </H4> 
</center>

<p><hr><p>
<H3>Contents:</H3>
<ul>
<li><a HREF="./lg_answer18.html#network">Networking Problems</a>
<li><a HREF="./lg_answer18.html#fetch">Fetchmail</a>
<li><a HREF="./lg_answer18.html#procmail">Procmail</a>
<li><a HREF="./lg_answer18.html#tcl">Tcl/tlk Dependencies</a>
<li><a HREF="./lg_answer18.html#var">/var/log/messages</a>
<li><a HREF="./lg_answer18.html#show">OS Showdown</a>
<li><a HREF="./lg_answer18.html#adding">Adding Linux to a DEC XLT-366</a>
<li><a HREF="./lg_answer18.html#config">Configuration Problems of a Soundcard</a>
<li><a HREF="./lg_answer18.html#proc">Procmail Idea and Question</a>
<li><a HREF="./lg_answer18.html#uucp">UUCP/Linux on Caldera</a>
<li><a HREF="./lg_answer18.html#active">ActiveX For Linux</a>
<li><a HREF="./lg_answer18.html#pack">What Packages Do I Need?</a>
<li><a HREF="./lg_answer18.html#users">Users And Mounted Disks</a>
<li><a HREF="./lg_answer18.html#map">[q] Map Left Arrow to Backspace</a>
<li><a HREF="./lg_answer18.html#pull">Adding Programs to Pull Down Menus</a>
<li><a HREF="./lg_answer18.html#nt">Linux and NT</a>
<li><a HREF="./lg_answer18.html#serv">pcmcia 28.8 Modems and Linux 1.2.13
Internet Servers</a>
</ul>

<p><hr><p> 
<!--================================================================-->

<a name="tcl"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Tcl/tlk Dependencies
</h3>
<P><B>

From: David E. Stern, <a href="mailto:kotsya@u.washington.edu">lptsua@i/wasjomgtpm/edu</a>
 
<p>The end goal: to install FileRunner, I simply MUST have it! :-)

<p>My intermediate goal is to install Tcl/Tk 7.6/4.2, because FileRunner
needs these to install, and I only have 7.5/4.1 . However, when I try to
upgrade tcl/tlk, other apps rely on older tcl/tk libraries, atleast that's
what the messages allude to:

<pre>  libtcl7.5.so is needed by some-app
       libtk4.1.so is needed by some-app</pre>

(where some-app is python, expect, blt, ical, tclx, tix, tk, tkstep,...)

<p>I have enough experience to know that apps may break if I upgrade the
libraries they depend on. I've tried updating some of those other apps,
but I run into further and circular dependencies--like a cat chasing it's
tail. 

<p>In your opinion, what is the preferred method of handling this scenario?
I must have FileRunner, but not at the expense of other apps.
</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	It sounds like you're relying too heavily on RPM's.
	If you can't afford to risk breaking your current stuff,
	and you "must" have the upgrade you'll have to do some
	stuff beyond what the RPM system seems to do.

<p>	One method would be to grab the sources (SRPM or tarball)
	and manually compile the new TCL and tk into /usr/local
	(possibly with some changes to their library default 
	paths, etc).  Now you'll probably need to grab the 
	FileRunner sources and compile that to force it to use the
	/usr/local/wish or /usr/local/tclsh (which, in turn, will
	use the /usr/local/lib/tk if you've compiled it all right).

<p>	Another approach is to set up a separate environment 
	(separate disk, a large subtree of an existing disk
	-- into which you chroot, or a separate system entirely)
	and test the upgrade path where it won't inconvenience you
	by failing.  A similar approach is to do a backup, test your
	upgrade plan -- (if the upgrade fails, restore the backup).

<p>	This is a big problem in all computing environments (and
	far worse in DOS, Windows, and NT systems than in most 
	multi-user operating systems.  At least with Unix you have
	the option of installing a "playpen" (accessing it with the
	chroot call -- or by completely rebooting on another partition
	if you like).  

<p>	Complex interdepencies are unavoidable unless you require that
	every application be statically linked and completely self-sufficient
	(without even allowing their configuration files to be separate.
	So this will remain an aspect of system administration where
	experience and creativity are called for (and a good backup
	may be the only thing between you and major inconvenience).

--
Jim 

<p><hr><p> 
<!--================================================================-->

<a name="network"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Networking Problems
</h3>
<P><B>

From: Bill Johnson, <a href="mailto:b_johnson@cel.co.chatham.ga.us">b_johnson@cel.co.chatham.ga.us</a>
 
<p>I have two networking problems which may be related.  I'm using a 
dial-up (by chat) ppp connection.

<p>1) pppd will not execute for anyone without root privilege, even 
though it's permissions are set rw for group and other.
</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	I presume you mean that it's *x* (execute) bit is set.
	It's *rw* bits should be disabled -- the *w* bit ESPECIALLY.

<p>	If you really want pppd to be started by users (non-root)
	you should write a small C "wrapper" program that executes
	pppd after doing a proper set of suid (seteuid) calls and 
	sanity checks.  You might be O.K. with the latest suidperl
	(though there have been buffer overflows with some versions
	of that.

<p>	Note that the file must be marked SUID with the chmod command
	in order for it to be permitted to use the seteuid call
	(unless ROOT is running it, of course).

<p>	Regardless of the method you use to accomplish your SUID of 
	pppd (even if you just set the pppd binary itself to SUID):

<p>	I suggest you pick or make a group (in /etc/group) and make
	the pppd wrapper group executable, SUID (root owned), and 
	completely NON-ACCESSIBLE to "other"  (and make sure to just
	as the "trusted" users to the group.

<p>	'sudo' (University of Colorado, home of Evi Nemeth) is a 
	generalized package for provided access to privileged programs.
	You might consider grabbing it and installing it.

<p>	I'd really suggest diald -- which will dynamically bring the 
	link up and down as needed.  Thus your users will just try to
	access their target -- wait a long time for dialing, negotiation,
	etc (just like pppd only a little faster) and away you go
	(until your connection is idle long enough to count as a 
	"timeout" for diald.
<P><B><img align=bottom alt=" " src="../gx/ques.gif">
<p>2) http works, and mail works, and telnet works, but ftp does not 
work.  I can connect, login, poke around, and all that.  But when I 
try to get a file, it opens the file for writing on my machine and 
then just sits there.  No data received, ever.  Happens with 
Netscape, ftp, ncftp, consistently, at all sites. Even if user is 
root.  Nothing is recorded in messages or in ppp-log.  
/etc/protocols, /etc/services and all that seems to be set up 
correctly.  Any suggestions?
</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	Can you dial into a shell account and do a kermit 
	or zmodem transfer?  What does 'stty -a < /dev/modem' 
	say?  Make sure you have an eight-bit clean session.
	Do you have 16550 (high speed) UARTS.

<p>	Do you see any graphics when you're using HTTP?
	(that would suggest that binary vs. text is not the 
	problem).

<p>
--
Jim 

<p><hr><p> 
<!--================================================================-->

<a name="fetch"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Fetchmail
</h3>
<P><B>

From: Zia Khan, <a href="mailto:khanz@foxvalley.net">khanz@foxvalley.net</a>


<p>I have a question regarding fetchmail. i've been successful at using it
to send and recieve mail from my ISP via a connection to their POP3
server. there is a slight problem though. the mail that i send out has
in its from: field my local login and local hostname e.g.
ruine@clocktower.net. when it should be my real email address
khanz@foxvalley.net those who recieve my message recieve an non existant
email address to reply to. is there any way in modifying this behavior?
i've been investigating sendmail with hopes it may have have a means of
making this change,to little success.

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	Technically this has nothing to do with fetchmail or POP.
	'fetchmail' just *RECIEVES* your mail -- POP is just the 
	protocol for storing and picking up your mail.  All of your
	outgoing mail is handles by a different process.

<p>	Sendmail has a "masquerade" feature and an "all_masquerade"
	feature which will tell it to override the host/domain portions
	of the headers addresses when it sends your mail.  That's
	why my mail shows up as "jimd@starshine.org" rather than 
	"jimd@antares.starshine.org." 

<p>	The easy way to configure modern copies of sendmail is to use
	the M4 macro package that comes with it.  You should be able to 
	find a file in /usr/lib/sendmail-cf/cf/ 

<p>	Mine looks something like:
<pre>
divert(-1)
include(`../m4/cf.m4')
VERSIONID(`@(#)antares.uucp.mc  .9 (JTD) 8/11/95')
OSTYPE(`linux')

FEATURE(nodns)
FEATURE(nocanonify)
FEATURE(local_procmail)
FEATURE(allmasquerade)
FEATURE(always_add_domain)
FEATURE(masquerade_envelope)

MAILER(local)
MAILER(smtp)

MASQUERADE_AS(starshine.org)
define(`RELAY_HOST', a2i)
define(`SMART_HOST', a2i)
define(`PSEUDONYMS', starshine|antares|antares.starshine.org|starshine.org)
</pre>
<p>	(I've removed all the UUCP stuff that doesn't apply to you
	at all). 

<p>	Note:  This will NOT help with the user name -- just the host and 
	domain name.  You should probably just send all of your outgoing 
	mail from an account name that matches your account name at your
	provider.  There are other ways to do it  -- but this is the 
	easiest.

<p>	Another approach would require that your sendmail "trust"
	your account (with a define line to add your login ID as one
	which is "trusted" to "forge" their own "From" lines in 
	sendmail headers.  Then you'd adjust your mail-reader to 
	reflect your provider's hostname and ID rather than your local
	one.  The details of this vary from one mailer to another --
	and I won't give the gory details here).

<p>	Although I said that this is not a fetchmail problem -- I'd
	look in th fetchmail docs for suggestions.  I'd also read
	(or re-read) the latest version of the E-Mail HOW-TO.

<p>
--
Jim 

<p><hr><p> 
<!--================================================================-->

<a name="procmail"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Procmail
</h3>
<P><B>

Justin Mark Tweedie, <a href="mailto:linda@zanet.co.za">linda@zanet.co.za</a> 

 
<p>Our users no not have valid command shells in the /etc/passwd file (they
have /etc/ppp/ppp.sh). I would like the users to use procmail to process
each users mail but .forward returns an error saying user does not have a
vaild shell.

<p>The .forward file has the following entry
<pre>|IFS=' '&&exec /usr/local/bin/procmail -f-||exit 75 #justin</pre>

<p>How can I make this work ???
<p>Cheers Justin

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	I suspect that its actually 'sendmail' that issuing the
	complaint.

<p>	Add the ppp.sh to your /etc/shells file.
	procmail will still use /bin/sh for processing the 
	recipes in the .procmailrc file.

<p>	Another method would be to use procmail as your local
	delivery agent.  In your sendmail "mc" (m4 configuration 
	file) you'd use the following:

<pre>FEATURE(local_procmail)</pre>

<p>	(and make sure that your copy of procmail is in a place
	where sendmail can find it -- either using symlinks or
	by adding:

<pre>define(`PROCMAIL_PATH', /usr/local/your/path/to/procmail);</pre>

<p>	Then you don't have to muss with .forward files at all.
	'sendmail' will hand all local mail to procmail which will
	look for a .procmailrc file.

<p>	Another question to as is whether you want to use your 
	ppp.sh has a login shell at all.  If you want people to 
	login in and be given an automatic PPP connection I'd look
	at some of the cool features of mgetty (which I haven't 
	used yet -- but seen in the docs).

<p>	These allow you to define certain patterns that will be 
	caught by 'mgetty' when it prompts for a login name -- 
	so that something like Pusername will call .../ppplogin
	while Uusername will login with with 'uucico' etc.

<p>	If you want to limit your customers solely to ppp services
	and POP (with procmail) then you've probably can't do it in
	any truly secure or reasonably way.  Since the .procmailrc
	can call on arbitrary external programs -- the user with a 
	valid password and account can access other services on the 
	system.  Also the ftp protocol can be subverted to provide
	arbitrary interactive access -- unless it is run in a 
	'chroot' environment -- one which would make the processing
	of updating the user's .procmailrc and any other .forward or
	configuration files a hassle.

<p>	It can be done -- but it ultimately is more of a hassle than 
	it's worth.  So if you want to securely limit your customers'
	from access to interactive services and arbitrary commands
	you'll want to look at a more detailed plan than I could 
	write up here.
<p>
--
Jim 



<p><hr><p> 
<!--================================================================-->

<a name="var"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
/var/log/messages
</h3>
<P><B>
From: Mike West, <a href="mailto:mwest@netpath.net">mwest@netpath.net</a><br>

<P>Hi Jim,

This may seem like a silly question, but I've been unable to find any 
HOW-TOs or suggestions on how to do it right.  My question is, how should 
I purge my /var/log/messages file?  I know this file continues to grow.  
What would be the recommended way to purge it each month?  Also, are 
there any other log files that are growing that I might need to know 
about?  Thanks in advance Jim.


</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	I'm sorry to have dropped the ball on your message.
	Usually when I don't answer a LG question right away
	it's because I have to go do some research.  In this case
	it was that I knew exactly what I wanted to say -- which would be
	"read my 'Log Management' article in the next issue of LG"
	
<p>	However haven't finished the article yet.  I have finished 
	the code.

<p>	Basically the quick answer is:  

<pre>		rm /var/log/messages
		kill -HUP $(cat /var/run/syslog.pid)
</pre>
	(on systems that are configured to conform to the FSSTND 
	and putting a syslog.pid file in /var/run).

<p>	The HUP signal being send to the syslogd process is to 
	tell it to close and re-open its files.  This is necessary 
	because of the way that Unix handles open files.
	"unlinking" a file (removing the directory entry for it)
	is only a small part of actually removing it.  Remember that
	real information about a file (size, location on the device,
	ownership, permissions, and all three date/time stamps for 
	access, creation, and modification) is stored in the 
	"inode."  This is a unique, system maintained data structure.
	One of the fields in the inode is a "reference" or "link" 
	count.  If the name that you supplied to 'rm' was the only
	"hard link" to the file than the reference count reaches
	zero.  So the filesystem driver will clear the inode and
	return all the blocks that were assigned to that file to the
	"free list" -- IF THE FILE WASN'T OPEN BY ANY PROCESS!

<p>	If there is any open file descriptor for the file -- then
	the file is maintained -- with no links (no name).  This 
	is because it could be critically bad to remove a file out
	from under a process with no warning.

<p>	So, many daemons interrupt a "Hang-up" signal (sent via
	the command 'kill -HUP') as a hint that they should
	"reinitialize in some way.  That usually means that they 
	close all files, re-read any configuration or options files
	and re-open any files that they need for their work.

<p>	You can also do a 
<pre>		
		cp /dev/null /var/log/messages
</pre>
	.. and you get away without doing the 'kill -HUP'.

<p>	I don't really know why this doesn't get the syslog 
	confused -- since it's offset into the file is all 
	wrong.  Probably this generates a "holey" file -- which
	is a topic for some other day.

<p>	Another quick answer is:

		Use the 'logrotate' program from Red Hat.

		(That comes with their 4.1 distribution -- and
		is probably freely usable if you just want to 
		fetch the RPM from their web site.  If you don't
		use a distribution that support RPM's you can 
		get converters that translate .rpm files into
		tar or cpio files.  You can also just use
		Midnight Commander to navigate through an RPM 
		file just like it was a tar file or a directory).

<p>	The long answer looks a little more like:

<pre>
#! /bin/bash
## jtd: Rotate logs

## This is intended to run as a cron job, once per day
## it renames a variety of log files and then prunes the
## oldest.

cd /var/log
TODAY=$(date +%Y%m%d)	# YYYYMMDD convenient for sorting

function rotate {
	cp $1 OLD/${1}.$TODAY
	cp /dev/null $1
	}

rotate maillog
rotate messages
rotate secure
rotate spooler
rotate cron

( echo -n "Subject: Filtered Logs for:  " ; date "+%a %m/%d/%Y"
echo; echo; echo;
echo "Messages:"
/root/bin/filter.log /root/lib/messages.filter  OLD/messages.$TODAY

echo; echo; echo "Cron:"
/root/bin/filter.log /root/lib/cron.filter OLD/cron.$TODAY

echo; echo; echo "--"; echo "Your Log Messaging System"
echo; echo; echo ) | /usr/lib/sendmail -oi -oe  root
## End of rotate.logs
</pre>

<p>	That should be fairly self explanatory except for the 
	part at the end with the (....) | sendmail ....
	stuff.  The parenthese here group the output from all
	of those commands into the pipe for sendmail -- so the
	provide a whole message for sendmail.  (Otherwise
	only the last echo would go to sendmail and the
	rest would try to go to the tty of the process that ran
	this -- which (when cron runs the job) will generate a
	different -- much uglier -- piece of mail.

<p>	Now there is one line in the sendmail group that bears
	further explanation:

/root/bin/filter.log /root/lib/messages.filter  OLD/messages.$TODAY

<p>	This is a script (filter.log) that I wrote -- it 
	takes a data file (messages.filter) that I have created
	in little parts over several weeks and still have to 
	update occasionally.

<p>	Here's the filter.log script:

<pre>
#!  /usr/bin/gawk -f
	# filter.log
	# by James T. Dennis

	# syntax filter.log patternfile  datafile [datafile2 .....]

	# purpose -- trim patterns, listed in the first filename
	# from a series of data files (such as /var/adm/messages)
	# the patterns in the patternfile should take the form
	# of undelimited (no '/foo/' slashes and no "foo" quotes)

        # Note:  you must use a '-' as the data file parameter if 
        # if you to process stdin (use this as a filter in a pipe
        # otherwise this script will not see any input from it!

ARGIND == 1  { 
		# ugly hack. 
	# allows first parameter to be specially used as the 
	# pattern file and all others to be used as data to 
	# be filtered; avoids need to use 
	# gawk -v patterns=$filename ....  syntax.
	if ( $0 ~/^[ \t]*$/ ) { next }  # skip blank lines
		# also skip lines that start with hash
		# to allow comments in the patterns file.
	if ( $0 !~ /^\#/ ) { killpat[++i]=$0 }}

ARGIND > 1 { 
	for( i in killpat ) { 
	 	if($0 ~ killpat[i]) { next }}}
 
 ARGIND > 1 { 
	 print FNR ": " $0 }
</pre>
<p>	That's about eight lines of gawk code.  
	I hope the comments are clear enough.  All this
	does is reads one file full of pattern, and then
	use that set of patterns as a filter for all of the
	rest of the files that are fed through it.

<p>	Here's an excerpt from my ~root/lib/messages.filter
	file:
<pre>
... ..? ..:..:.. antares ftpd\[[0-9]+\]: FTP session closed
... ..? ..:..:.. antares getty\[[0-9]+\]: exiting on TERM signal
... ..? ..:..:.. antares innd: .*
... ..? ..:..:.. antares kernel:[ \t]*
... ..? ..:..:.. antares kernel:   Type: .*
</pre>

<p>	Basically those first seventeen characters on each 
	line match any date/time stamp -- the antares 
	obviously matches my host name and the rest of each
	line matches items that might appear in my messages 
	file that I don't care about.

<p>	I use alot of services on this machine.  My filter
	file is only about 100 lines long.  This scheme trims
	my messages file (several thousand lines per day)
	down to about 20 or 30 lines of "different" stuff
	per day.

<p>	Everyone once in awhile I see a new pattern that 
	I add to the patterns list.

<p>	This isn't an ideal solution.  It is unreasonable to 
	expect of most new Linux users (who shouldn't "have to"
	learn this much about regular expressions to winnow 
	the chaff from their messages file.  However it is
	elegant (very few lines of code -- easy to understand
	exactly what's happening).

<p>	I thought about using something like swatch or some other
	log management package -- but my concern was that these are
	looking for "interesting things" and throwing the rest 
	away.  Mine looks for "boring things" and whatever is 
	left is what I see.  To me anything that is "unexpected"
	is interesting (in my messages file) -- so I have to use a 
	fundamentally different approach.

	I look at these messages files as a professional sysadmin.
	They may warn me about problems before my users notice them.

	(incidentally you can create a larger messages file that
	handles messages for many hosts -- if you are using 
	remote syslogging for example).

<p>	Most home users can just delete these files with abandon. 
	They are handy diagnostics -- so I'd keep at least a few
	days worth of them around.  
<p>
--
Jim 


<p><hr><p> 
<!--================================================================-->

<a name="show"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
OS Showdown
</h3>
<P><B>

From: William Macdonald <a href="mailto:will@merchant.clara.net">will@merchant.clara.net</a><br>
Subject: OS showdown 
 
<p>Hi,
I was reading one of the British weekly computing papers this week and
there was an article about a shoot out between Intranetware and NT. 
This was to take place on 20th May in the Guggenhiem museum in NYC.

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	Intranetware sounds interesting.  Sadly I think it may be
	too little, too late in the corporate world.  However, if 
	Novell picks the right pricing strategy and niche they may be 
	able to come back in from the bottom.

<p>	I won't talk about NT -- except when someone is paying me 
	for the discomfort.

<P><B>
<img align=bottom alt=" " src="../gx/ques.gif">
 
<p>The task was to have a system offering an SQL server that could process
1 billion transasctions in a day.  This was supposed to be 10 time what
Visa requires and 4 time what a corporation like American Airlines.  It
was all about proving that these OSs could work reliably in a mission
critical environment. 

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	If I wanted to do a billion SQL transactions a day I'd probably 
	look at a Sun Starfire running Solaris.  The Sun Starfire
	has 64 SPARC (UltraSPARC's??) running in parallel.

<p>	Having a face off between NT and Netware (or "Intra" Netware 
	as they've labelled their new release) in this category is 
	really ignoring the "real" contenders in the field of SQL.

<p>	Last I heard the world record for the largest database system
	was owned by Walmart and ran on Tandem mini-computers.  However
	that was several years ago.  

<P><B>
<img align=bottom alt=" " src="../gx/ques.gif">
<p>I haven't seen the follow up article yet so I can't say what the result
was.  The paper was saying it was going to be a massive comp with both
the boss' there etc.

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	Sounds like typical hype to me.  Pick one or two companies
	that you think are close to you and pretend that your small
	group comprises the whole market.

<P><B>
<img align=bottom alt=" " src="../gx/ques.gif">
<p>How would linux fair in a comp like this ??  The hardware resources were
virtually unlimited.  I think the NT box was a compaq 5000 (proliant
??).  Quad processors, 2 GB RAM, etc.
</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	The OS really doesn't have to much to do with the SQL 
	performance.  The main job of the OS in running an SQL 
	engine is to provide system and file services as fast as
	possible and stay the heck out of the way the real work.

<p>	The other issue is that the hardware makes a big difference.
	So a clever engineer could make a DOG of a OS still look 
	like a charging stallion -- by stacking the hardware in
	his favor.

<p>	If it was me -- I'd think about putting in a few 
	large (9 Gig) "silicon disks."  A silicon disk is really
	a bunch of RAM that's plugged into a special controller
	that makes it emulate a conventional IDE or SCSI hard 
	drive.  If you're Microsoft or Novell and you're serious 
	about winning this (and other similar) face offs -- the
	half a million bucks you spend on the "silicon disks" 
	may pay for itself in one showing.

<p>	In answer to your question -- Linux, by itself, can't 
	compete in this show -- it needs an SQL server.  Postgres
	'95 is, from what I've seen and heard, much too lightweight
	to go up against MS SQL Server -- and probably no match for
	whatever Novell is using.  mSQL is also pretty lightweight.
	Mind you P'gres '95 and mSQL are more than adequate for 
	most businesses -- and have to offer a price performance
	ratio that's unbeatable (even after figuring in "hidden"
	and "cost of ownership" factors).  I'm not sure if Beagle
	is stable enough to even run.

<p>	So we have to ask:<br>

		What other SQL packages are available for Linux?<br>

	Pulling out my trusty _Linux_Journal_1997_Buyers's_Guide_
	(and doing a Yahoo! search) I see:

<ul>
<li><a href="http://www.solidtech.com">Solid</a>

<li><a href="http://www.justlogic.com">Just Logic Technologies</a> 

<li><a href="http://www.yard.de">YARD Software GmbH</a> 
</ul>
<p>	That's all that are listed in the Commercial-HOWTO
	However -- here's a few more:

<ul>
<li><a href="http://www.infoflex.com">Infoflex</a>--
		(which goes into my Lynx hall of shame list --
		it was quite a challenge reading that without
		resorting to a GUI).

<li><a href="http://www.vbix.com/dbix.html">DBIX Information</a> -- (SQL Server???)
			
<li><a href="http://www.inter-soft.com/html/products/sqlserver.html">InterSoft</a>(Essential -- SQL Engine)

<li><a href="http://www.bytedesigns.com">Byte Designs Home on the Internet</a> 
(ISAM with ODBC/SQL gateways)

<li><a href="http://tiny.iapnet.com/rob/beagle.html</a>Beagle SQL</a>--Free client server SQL database engine.
</ul>
<p>	And here's a couple of articles (not about SQL servers --
	just making references to SQL and Linux or Unix):

<ul>
<li><a href="http://think.ucdavis.edu/~cgi/SQLGate/SQLGateUserGuide.html">SQLGate User's Guide</a> -- (Embedding SQL in HTML)

<li><a href="http://ww.datamation.com/PlugIn/issues/april15/04bint10.html">April-15-1995 DATAMATION: International</a> -- Article on Linux
</ul>
<p>	Sadly the "big three" (Informix, Oracle, and Sybase) 
	list nothing about Linux on their sites.  I suspect they 
	still consider themselves to be "too good" for us -- and 
	they are undoubtedly tangled in deep licensing aggreements
	with SCO, Sun, HP, and other big money institutions.  So
	they probably view us as a "lesser threat" -- (compared
	to the 800 lb gorilla in Redmond).  Nonetheless -- it doesn't
	look like they are willing to talk about Linux on their 
	web pages.

<p>	I'd also like to take this opportunity to lament the 
	poor organization and layout of these three sites.  These
	are the large database software companies in the world --
	and they can create a simple, INFORMATIVE web site.  Too 
	much "hype" and not enough "text."

<p>	(My father joked:  "Oh! you meant 'hypertext' -- I thought
	it was 'hype or text'"  -- Obviously too many companies
	hear it the same way and choose the first option of a 
	mutually exclusive pair).
 

<p>--
Jim 




<p><hr><p> 
<!--================================================================-->

<a name="adding"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Adding Linux to a DEC XLT-366
</h3>
<P><B>

From: Alex Pikus of WEBeXpress <a href="mailto:alex@webexpress.net">alex@webexpress.net</a>

<p>I have a DEC XLT-366 with NTS4.0 and I would like to add Linux to it.  I
have been running Linux on an i386 for a while.

I have created 3 floppies:
<ol>
<li>Linload.exe and MILO (from DEC site)
<li>Linux kernel 2.0.25
<li>RAM disk
</ol>
<p>I have upgrade AlphaBIOS to v5.24 (latest from DEC) and added a Linux
boot option that points to a:\

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	You have me at a severe disadvantage.  I'll be running
	Linux on an Alpha based system for the first time next
	week.

	So I'll have to try answering this blind.

<P><B>
<img align=bottom alt=" " src="../gx/ques.gif">
<p>When I load MILO I get the "MILO&gt;" prompt without any problem.  When I
do "show" or "boot ..." at the MILO&gt;" I get the following result ...
SCSI controller gets identified as NCR810 on IRQ 28 ... test1 runs and
gets stuck "due to a lost interrupt" and the system hangs ...
In WinNTS4.0 the NCR810 appears on IRQ 29.

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>     My first instinct is the ask if the autoprobe code in
	Linux (Alpha) is broken.  Can you use a set of command-line
	(MILO) parameters to tell pass information about your 
	SCSI controller to your kernel?  You could also see about
	getting someone else with an Alpha based system to compile
	a kernel for you -- and make sure that it has values in 
	it's scsi.h file that are appropriate to your system -- as
	well as insuring that the corrective drivers are built in.

<P><B>
<img align=bottom alt=" " src="../gx/ques.gif">
<p>How can make further progress here?

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	It's a tough question.  Another thing I'd look at 
	is to see if the Alpha system allows booting from a
	CD-ROM.  Then I'd check out Red Hat's (or Craftworks')
	Linux for Alpha CD's -- asking each of them if they 
	support this sort of boot.

<p>	(I happened to discover that the Red Hat Linux 4.1 (Intel)
	CD-ROM was bootable when I was working with one system that 
	had an Adaptec 2940 controller where that was set as an 
	option.  This feature is also quite common on other Unix
	platforms such as SPARC and PA-RISC systems -- so it is 
	a rather late addition to the PC world).
 
<p>
--
Jim 






<p><hr><p> 
<!--================================================================-->

<a name="config"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Configuration Problems of a Soundcard
</h3>
<P> <B> 

From: Stuby Bernd, <a href="mailto:eacj1049@inuers17.inue.uni-stuttgart.de">eacj1049@inuers17.inue.uni-stuttgart.de</a>

<P>Hello there,

First I have to metion that my Soundcard (MAD16 Pro from Shuttle
Sound System with an OPTi 82C929 chipset) works right under Windows.
I tried to get my Soundcard configured under Linux 2.0.25.with the same 
Parameters as under Windows but as I was booting the new compiled Kernel
the Soundcard whistled and caused terrible noise. The same happened
as I compiled the driver as a module and installed it in the kernel.
In the 'README.cards' file the problem coming up just with this
Soundcard is mentioned (something like line 3 mixer channel).
I don't know what to do with this information and how to change the
sounddriver to getting it working right.
May be there's somebody who knows how to solve this problem or where
I can find more information.

<P>With best regards
Bernd

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	Sigh.  I've never used a sound card in my machine.
	I have a couple of them floating around -- and will
	eventually do that -- but for now I'll just have to 
	depend on "the basics"

<p>	Did you check the 
	<a href="http://sunsite.unc.edu/LDP/HOWTO/Hardware-HOWTO-11.html#ss11.1">Hardware-HOWTO</a>?
I see the MAD16 and this chipset listed there.  That's
encouraging.
How about the 
	<a href="http://sunsite.unc.edu/LDP/HOWTO/Sound-HOWTO-6.html">Soundcard-HOWTO</a>?

	Unfortunately this has no obvious reference to your 
	problem.  I'd suggest browsing through it in detail.
	Is your card a PnP (plug and "pray")?  I see notes
	about that being a potential source of problems.
	I also noticed a question about "noise" being "picked
	up" by the sound card<br>
	<a href="http://sunsite.unc.edu/LDP/HOWTO/Sound-HOWTO-6.html#ss6.23">http://sunsite.unc.edu/LDP/HOWTO/Sound-HOWTO-6.html#ss6.23</a>

That might not match your probelm but it's worth looking at.

<p>	Did you double check for IRQ and DMA conflicts?

	The thing I hate about PC sound cards is that most of them
	use IRQ's and DMA channels.  Under DOS/Windows you used to be
	able to be fairly sloppy about IRQ's.  When your IRQ conflicts
	caused conflicts the symptoms (like system lockups) tend to 
	get lost in the noise of other problems (like system lockups
	and mysterious intermittent failures).  Under Linux these 
	problems usually rear their ugly heads and have nowhere to 
	hide.
	
<p>	Have you contacted the 
	<a href="http://www.shuttlegroup.com/products/support/sound.html">manufacturer</a>
of the card?

	I see a Windows '95 driver.  No technical notes on 
	their sound cards -- and no mention of anything other 
	than Windows on their web site (that I could find).
	That would appear to typify the "we only do Windows"
	attitude of so many PC peripherals manufacturers.

	I've blind copied their support staff on this -- so
	they have the option to respond.

<p>	If this is a new purchase -- and you can't resolve the 
	issue any other way -- I'd work with your retailer or
	the manufacturer to get a refund or exchange this with
	hardware that meets your needs.

	An interesting side note.  While searching through 
<a href="http://av.yahoo.com/bin/query?p=%2blinux+%2bsound+%2bnoise&b=21&d=a&hc=0&hs=0">Alta
Vista</a> on 
<a href="http://www.yahoo.com">Yahoo!</a>
I found a page that described itself as 
<a href="http://romeo.pf.jcu.cz/~perex/ultra/">The Linux Ultra Sound
Project</a>.

	Perhaps that will help you choose your next PC sound system
	(if it comes to that).
<p>
--
Jim 



<p><hr><p> 
<!--================================================================-->

<a name="proc"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Procmail Idea and Question
</h3>
<P> <B> 

From: Larry Snyder, <a href="mailto:larrys@lexis-nexis.com">larrys@lexis-nexis.com</a> 

<p>Just re-read your excellent article on procmail in the May LJ.  
(And yes, I've read both man pages :-).  What I want to try is: 
<ol>
<li>Ignore the header completely
<li>Scan the body for <pre>[*emov* *nstruction*]</pre> or <pre>remove@*</pre>
<li>/dev/null anything that passes that test
</ol>
<p>This should be a MUCH cheaper (in cpu cycles) way of implementing a spam
filter than reading the header then going through all the possible domains
that might be applicable.  Most of the headers are forged in your 
average spam anyway....

<p>Not my idea, but it sounds good to me.  What do you think, and how would 
I code a body scan in the rc?


</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	I think it's a terrible idea.

<p>	The code would be simple -- but the patterns you suggest
	are not very specific.

<p>	Here's the syntax (tested):

<pre>		:0 B
		* (\[.*remove.*instruction.*\]|\[.*remove@.*\])
		/dev/null
</pre>
<p>	... note the capital "B" specifies that the recipe 
	applies to the "Body" of the message --  the line 
	that starts with an asterisk is the only conditional
	(pattern) the parentheses enclose/group the regular
	expression (regex) around the "pipe" character.  The
	pipe character means "or" in egrep regex syntax. Thus
	(foo|bar) means "'foo' or 'bar'"

<p>	The square brackets are a special character in regexes
	(where they enclose "classes" of characters).  Since 
	you appeared to want to match the literal characters
	-- i.e. you wanted your phrases to be enclosed in
	square brackets -- I've had to "escape" them in my
	pattern -- so they are treated literally and not taken
	as delimiters.  

<p>	The * (asterisk) character in the regex means
	"zero or more of the preceding element" and the . (dot or 
	period) means "any single character" --  so the 
	pair of them taken together means "any optional characters"
	If you use a pattern line like:

<pre>		* foo*l</pre>

<p>	... it can match fool fooool and fooooolk and even fol but 
	not forl or foorl.  The egrep man page is a pre-requisite to
	any meaningful procmail work.  Also O'Reilly has an entire
	book (albeit a small one) on regular expressions.

<p>	The gist of what I'm trying to convey is that .* is needed
	in regex'es -- even though you might use just * in shell
	or DOS "globbing"  (the way that a shell matches filenames
	to "wildcards" is called "globbing" -- and generally does
	NOT use regular expressions -- despite some similarities 
	in the meta characters used by each).

<p>	Not also that the * token at the beginning of this line
	is a procmail thing.  It just identifies this as being
	a "condition" line.  Lines in procmail recipes usually start
	with a token like a : (colon), a * (asterisk), a | (pipe) or
	a ! (bang or exclammation point) -- any that don't 
	may consist of a folder name (either a file or a directory)
	or a shell variable assignment (which are the lines with
	= (equal signs) somewhere on them.

<p>	In other words the * (star) at the begining of that line
	is NOT part of the expression -- it's a token that tells
	the procmail processor that the rest of the line is a regex.


<p>	Personally I found that confusing when I first started with
	procmail.

<p>	Back to your original question:

<p>	I'm very hesitant to blindly throw mail away. 
	I'd consider filing spam in a special folder which is 
	only review in a cursory fashion.  That would go something
	like this:

<pre>		:0 B:
		* (\[.*remove.*instruction.*\]|\[.*remove@.*\])
		prob.spam
</pre>
<p>	Note that I've added a trailing : (colon) to the start
	of the recipe.  This whole :x FLAGS business is a throwback
	to an early procmail which required each recipe to specify
	the number of patterns that followed the start of a recipe.
	Later :0 came to mean "I didn't count them -- look at the
	first character of each line for a token."  This means that
	procmail will can forward through the patterns and -- when
	one matches -- it will execute ONE command line at the end
	of the recipe (variable assignments don't count).  

<p>	I'm sure none of that made any sense.  So :0 starts a 
	recipe, the subsequent * ... lines provide a list of patterns,
	and each recipe ends with a folder name, a pipe, or a 
	forward (a ! -- bang thingee).  The : at the *END* of the :0 B
	line is a signal that this recipe should use locking -- so that
	to pieces of spam don't end up interlaced (smashed together)
	in your "prob.spam" mail folder.  I usually use MH folders
	(which are directories in which each message takes up a single
	file -- with a number for a filename).  That doesn't require
	locking -- you'd specify it with a folder like:

<pre>		:0 
		* ^TO.*tag
		linux.gazette/.
</pre>
<p>	... (notice the "/." (slash, dot) characters at the end of this).

<p>	Also note that folder names don't use a path.  procmail
	defaults to using Mail (like elm and pine).  You can set
	the MAILDIR variable to over-ride that -- mine is set to
	$HOME/mh.  To write to /dev/null (where you should NOT
	attempt to lock the file!) you must use a full path
	(I suppose you could make a symlink named "null" in your
	MAILDIR or even do a mknod but....).  When writing procmail
	scripts just think of $MAILDIR as your "current" directory
	(not really but...) and either use names directly under it
	(no leading slashes or dot/slash pairs) or use a full path.

<p>	The better answer (if you really want to filter
	mail that looks like spam) is to write an auto-responder.
	This should say something like:

<p>	<I>The mail you've sent to foo has been trapped
	by a filtering system.  To get past the filter
	you must add the following line as the first
	line in the body of your message:

				......

		... Your original message follows:

				......</I>

<p>	... using this should minimize your risks.  Spammers
	rely on volume -- no spammer will look through thousands
	of replies like this and manually send messages with the
	requisite "pass-through" or "bypass" directive to all of 
	them.  It's just not worth it.  At the same time your
	friends and business associates probably won't mind pasting
	and resending (be sure to use a response format that 
	"keeps" the body -- since your correspondents may get
	irritated if they have to dig up their original message for
	you.

<p>	Here's where we can work the averages against the spammer.
	He uses mass mailings to shove their message into our view
	-- we can each configure our systems to require unique 
	(relatively insecure -- but unique) "pass codes" to reject
	"suspicious" mail.  Getting the "pass codes" on thousands
	of accounts -- and using them before they are changed -- is
	not a task that can be automated easily (so long as we each
	use different explanations and formatting in our "bypass"
	instructions.

<p>	More drastic approaches are:
<ul>
<li>		Require that all incoming mail be PGP, PEM or 
		S/MIME signed -- and that the signatories 
		signature be on your mail keyring.  (Enhancements 
		would allow anyone to add themselves to your 
		mail keyring if they got thier signature "counter 
		signed" by anyone on one of your other keyrings).

<li>		(Return any unsigned mail with a message of
		explanation).

<li>		Test all incoming mail against a list of 
		associates and friends -- accept anything from
		them.  Test all remaining mail against a list of 
		know spammers -- reject those with an error
		message.  Respond to all remaining mail to 
		explain your anti-spam policy -- and provide
		"bypass" instuctions (so they can add themselves
		to your accept list).

<li>		Compare the "mail" and "envelope" addresses
		(the From: and From_ (space) header lines).
		Reject any that are inconsistent.

<li>		Upgrade to a recent sendmail and configure the
		"reverse lookup" and the "rejection mailer table"
		features (which I haven't done yet -- so I 
		know NOTHING about).
</ul>
<p>	I hope some of these ideas help.

<p>	Here is a copy of one of my autoresponders for your 
	convenience:
<pre>
:0
* < 1000
* !^FROM_DAEMON
* !^X-Loop:[    ]*info@starshine.org
* ^Subject:[    ]*(procmail|mailbot)
| ((formail -rk -A "Precedence: junk" \
-A "X-Loop: info@starshine.org" ; \
echo "Mail received on:" `date`)  \
| $HOME/insert.doc -v file=$DOC/procmail.tutorial ) | $SENDMAIL -t -oi -oe
</pre>

<p>	I realize this looks ugly.  The first condition is to
	respond only to requests that are under 1K in size.
	(An earlier recipe directs larger messages to me).
	The next two try to prevent reponses to mail lists and
	things like "Postmaster@..." (to prevent some forms of
	"ringing") and check against the "eXtended" (custom) 
	header that most procmail scripts use to identify 
	mail loops.  The next one matches subjects of "procmail"
	or "mailbot."

<p>	If all of those conditions are met than the message is 
	piped to a complex command (spread over four lines -- it
	has the trailing "backslash" at the end of each of those --
	to force procmail to treat it all as a single logical line:

<p>		This command basically breaks down like so:

<pre>			(( formail -rk ...
</pre>
<p>		... the two parenthese have to do with how the
		data passes through the shell's pipes.  Each set
		allows me to group the output from a series of
		commands into each of my pipes.

<p>		.... the formail command creates a mail header
		the -r means to make this a "reply" and the -k
		means to "keep" the body.  The two -A parameters are
		"adding" a couple of header lines.  Those are enclosed
		in quotes because they contain spaces.

<p>		... the echo command adds a "timestamp" to when
		I received the mail.  The `date` (backtick "date")
		is a common shell "macro expansion" construct --
		Korn shell and others allow one to use the $(command)
		syntax to accomplish the same thing.

<p>		Now we close the inner group -- so formail's output --
		and the echo's output are fed into my little awk
		script:  insert.doc.  This just takes a parameter
		(the -v file=) and scans its input for a blank line.
		After the first blank line insert.doc prints the 
		contents of "file."  Finally it then just prints
		all of the rest of it's input.

<p>		Here's a copy of insert.doc:

<pre>#! /usr/bin/gawk -f
/^[ \t]*$/ && !INSERTED { print; system("cat " file ); INSERTED=1}
1
</pre>
<p>	... that's just three lines:  the pattern matches any line
	with nothing or just whitespace on it.  INSERTED is a variable
	that I'm using as a flag.  When those to conditions are met
	(a blank line is found *and* the variable INSERTED has not
	yet been set to anything) -- we print a blank line, call
	the system() function to cat the contents of a file -- whose
	name is stored in the 'file' variable, and we set the 
	INSERTED flag.  The '1' line is just an "unconditional true"
	(to awk).  It is thus a pattern that matches any input -- 
	since no action is specified (there's nothing in braces on 
	that line) awk takes the default action -- it prints the 
	input.

<p>		In awk the two lines:

		<pre>	1</pre>
	<p>	... and
	<pre>		{print}</pre>

<p>		... are basically the same.  They both match 
		every line of input that  reaches them and they
		both just print that and continue.

<p>	... Back to our ugly procmail recipe.  'insert.doc'
	has now "inserted" the contents of a doc file between
	formail's header and the body of the message that was
	"kept."  So we combine all of that and pipe it into 
	the local copy of sendmail.  procmail thoughtfully presets
	the variable $SENDMAIL -- so we can use it to make our 
	scripts (recipes) more portable (otherwise they would 
	break when written on a system with /usr/lib/sendmail and
	moved to a system that uses /opt/local/new/allman/sendmail
	(or some silly thing like that)).

<p>	The switches on this sendmail command are:

<ul>
<li>-t (take the header from STDIN)
<li>-oi (option: ignore lines that contain just a dot)
<li>-oe (option: errors generate mail)
</ul>
<p>	... I'll leave it as an exercise to the reader to look
	those up in the O'Reilly "bat" book (the "official" Sendmail 
	reference).

<p>	There are probably more elegant ways to do the 
	insertion.  However it is a little messy that 
	our header and our "kept" body are combined in 
	formail's output.  If we had a simple shell syntax
	for handling multiple file streams (bash has this 
	feature -- but I said *simple*) then it would be 
	nice to change formail to write the header to one
	stream and the body to another.  However we also want
	to avoid creating temp files (and all the hassles 
	associated with cleaning up after them).  So -- this is
	the shortest and least resource intensive that I've
	come up with.


<p>	So that's my extended tutorial on procmail.

<p>	I'd like to thank Stephen R. van den Berg (SRvdB)
	(creator of procmail), Eric Allman (creator of sendmail),
	and Alan Stebbens (an active contributor to the procmail
	mailing list -- and someone who's written some nice
	extensions to SmartList).

<p>	Alan Stebbens' web pages on mail handling can be found
	at:
<a href="http://reality.sgi.com/aks/mail/">http://reality.sgi.com/aks/mail</a>

<p>		
--
Jim 


<p><hr><p> 
<!--================================================================-->

<a name="uucp"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
UUCP/Linux on Caldera
</h3>
<P> <B> 
From: David Cook, <a href="mailto:david_cook@VNET.IBM.COM">david_cook@VNET.IBM.COM</a><br>

<p>We have spoken before on this issue over the caldera-users list (which I
dropped because of too much crap).

I recently gave up on Caldera's ability to support/move forward and acquired
redhat 4.1.

<p>All works well, except I cannot get uucico & cu to share properly the modem
under control of uugetty. Other comm programs like minicom and seyon have no
problem with it.

<p>Both uucico and cu connect to the port and tell me that they cannot change
the flow control !? and exit.
 
<p>If I kill uugetty, both uucico and cu work perfectly.

<p>In your discussion on the caldera newsgroup of Nov 2/96 you don't go into the
details of your inbound connection, but you mention "mgetty" as opposed to
uugetty.

<p>What works/why doesn't mine?<br>
What are pros/cons of mgetty?

<p>By the way, I agree wholeheartedly with your rational for UUCP. Nobody else seems to
apreciate the need for multiple peer connections and the inherit security
concerns with bringing up an unattended TCP connection with an ISP.

<p>Dave Cook, IBM Global Solutions.

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">
	
<p>The two most likely problems are:

		lock files
	or
		permissions

<p>	There are three factors that may cause problems with 
	lock files:  location, name, and format.

<p>	For lock files to work you must use the same device 
	names for all access to a particular device -- i.e. if 
	you use a symlink named 'modem' to access your modem
	with *getty -- then you must use the same symlink for 
	your cu, uucico, pppd, minicom, kermit, seyon, etc.  
	(or you must find some way to force them to map the
	device name to a properly named LCK..* file). 

<p>	You must also configure each of these utilities to look
	for their lock files in the same location -- /var/lock/
	under Red Hat.  This configuration option may need to be
	done at compile time for some packages (mgetty) or it 
	might be possible to over-ride it with configuration 
	directives (Taylor UUCP) or even command line options.

<p>	The other things that all modem using packages have to 
	agree on is the format of the lock file.  This is normally
	a PID number of the process that creates the lock.   It can
	be in "text" (human readable) or "binary" form.  

<p>	Some packages never use the contents of the lock file -- 
	its mere existence is sufficient.  However most Linux/Unix 
	packages that use device lock files will verify the validity 
	of the lock file by reading the contents and checking the process
	status of whatever PID they read therefrom.  If there is 
	"no such process" -- they assume that it is a "stale" lock
	file and remove it.  

<p>	I currently have all of my packages use text format and 
	the /dev/modem symlink to /dev/ttyS1 (thus if I move my
	modem to /dev/ttyS2 or whatever -- say while migrating
	everything to a new machine -- all I have to change is 
	the one symlink).  My lock files are stored in /var/lock/

<p>	Permissions are another issue that have to be co-ordinated
	among all of the packages that must share a modem.  One 
	approach is to allow everyone write access to the modem.
	This, naturally, is a security whole large enough to steer
	an aircraft carrier through.

<p>	The most common approach is to make the /dev/ node owned
	by uucp.uucp or by root.uucp and group writable.  Then we 
	make all of the programs that access it SGID or SUID (uucp).

<p>	Here are the permissions I currently have set:
<pre>
$ ls -ald `which uucico` `which cu`  /dev/modem /dev/ttyS* /var/lock
-r-sr-s---   1 uucp     uucp       /usr/bin/cu
-r-sr-s---   1 uucp     uucp       /usr/sbin/uucico
lrwxrwxrwx   1 uucp     uucp       /dev/modem -> /dev/ttyS1
crw-rw----   1 root     uucp       /dev/ttyS0
crw-rw-r--   1 root     uucp       /dev/ttyS1
crw-------   1 root     tty        /dev/ttyS2
crw-rw----   1 root     uucp       /dev/ttyS3
drwxrwxr-x   6 root     uucp       /var/lock
</pre>
<p>	On the next installation I do I'll probably experiment
	with tightening these up a little more.  For example I
	might try setting the sticky bit on the /var/lock directory
	(forcing all file removals to be by the owner or root).
	That might prevent some programs from removing stale 
	lock files (they would have to be SUID uucp rather than 
	merely SGID uucp).

<p>	'cu' and 'uucico' are both SUID and SGID because they 
	need access to configuration files in which passwords
	are stored.  Those are mode 400 -- so a bug in minicom
	or kermit won't be enough to read the /etc/uucp/call 
	file (for example).  uucico is started by root run 
	cron jobs and sometimes from a root owned shell at 
	the console.  cu is called via wrapper script by members
	of a modem group.

<p>	Things like pppd, diald, and mgetty are always exec'd by
	root (or SUID 'root' wrappers).  mgetty is started by 
	init and diald and pppd need to be able to set routing
	table entries (which requires root).  So they don't need
	to be SUID anything.  (If you want some users to be able to 
	execute pppd you can make it SUID or you can write a simple
	SUID wrapper or SUID perl script.  I favor perl on my home 
	system and I make the resulting script inaccessible (unexecutable)
	by "other".  At customer sites with multi-user systems I 
	recommend C programs as wrappers -- a conservative approach
	that's been re-justified by recent announcements of new 
	buffer overflows in sperl 5.003).

<p>	Oddly enough ttyS2 is the null modem that runs into the 
	living room.  I do a substantial portion of my writing
	while sitting in my easy chair watching CNN and SF 
	(Babylon 5, Deep Space 9, Voyager that stuff).  

<p>	Permissions are a particularly ugly portion of Unix
	since we rightly don't trust SUID things (with all of the
	buffer overflows, race conditions between stat() and open()
	calls and complex parsing trickery (ways to trick embedded
	system(), popen() and other calls that open a shell behind
	the programmer's back -- and are vulnerable to the full range
	of IFS, SHELL, alias, and LD_* attacks).

<p>	However I'm not sure that the upcoming Linux implementation
	of ACL's will help with this.  I really need to read more
	about the planned approach.  If it follows the MLS (multi-
	layer security) model of DEC and other commercial Unix 
	implementations -- then using them make the system largely
	unusable for general-purpose computing (i.e. -- cast them
	solely as file servers).

<p>	From what I've read some of the problem is inherent in basing 
	access primarily on ID and "group member ship" (really an 
	extension of "identity").  For a long time I racked my brains
	to try to dream up alternative access control models -- and 
	the only other one I've heard of is the "capabilities" of
	KeyKOS, Multics, and the newer Eros project.

<p>	Oh well -- we'll see.  One nice thing about having the
	Linux and GNU project consolidating some much source code
	in such a small number of places is that it may just be 
	possible to make fundamental changes to the OS design and
	"fix" enough different package to allow some those changes
	to "take" (attain a critical mass).
<p>
--
Jim                                 

<p><hr><p> 
<!--================================================================-->

<a name="active"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
ActiveX for Linux
</h3>
<P> <B> 

To: John D. Messina, <a href="mailto:messina@bellatlantic.net">messina@bellatlantic.net</a><br>

<p>I was recently at the AIIM trade show in New York.  There was nothing
for Linux there, but I happened to wander over to the cyber cafe that
was set up.  I happened to be reading last month's Linux Gazette when a
Microsoft employee walked up behind me.  He was excited to find someone
who was knowledgeable about Linux - he wanted to get a copy for himself.

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

	I presume that you're directing this to the "Linux Gazette
	Answer Guy."  
<P><B>
<img align=bottom alt=" " src="../gx/ques.gif">
Anyway, we got to talking and he told me that Linux was getting so
popular that Microsoft had decided to port ActiveX to Linux.  Do you
know if, in fact, this is true?  If so, when might we see this port
completed?

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">
	I have heard the same story from other Microsoft 
	representatives (once at a Java SIG meeting where
	the MS group was showing off their J++ package).

<p>	This doesn't tell me whether or not the rumor is 
	"true" -- but it does suggest that it is an 
	"officially condoned leak."  Even if I'd heard an
	estimated ship date (I heard this back in Nov. or
	Dec.) I wouldn't give it much credence.

<p>		(That is not MS bashing by the way --
		I consider ship dates from all software
		companies and groups -- even our own 
		Linus and company -- to be fantasies).

<p>	To be honest I didn't pursue the rumor.  I asked
	the gentlemem I spoke to what ActiveX provides that
	CGI, SSI (server side includes), XSSI (extended 
	server side includes), FastCGI, SafeTCL, Java and 
	JavaScript don't.  About the only feature they could 
	think of is that it's from Microsoft.  To be honest 
	they tried valiantly to describe something -- but I 
	just didn't get it.  

<p>	So, your message as prompted me to ask this question
	again.  Switching to another VC and firing up Lynx and
	my PPP line (really must get that ISDN configured one 
	of these dasy) I surf on over to MS' web site.  

<p>	After a mildly amusing series of redirects (their sites 
	seems to be *all* .ASP (active server procedures?) files)
	I find my self at a reasonably readable index page.  That's
	hopeful -- they don't qualify for my "Lynx Hall of Shame"
	nomination.  I find the "Search" option and search on the
	single keyword "Linux."

<p>	"No Documents Match Query"

<p>	... hmm.  That would be *too* easy wouldn't it.  So I search
	on ActiveX:

<p>	"No Documents Match Query"

<p>	... uh-oh!  I thought this "Search" Feature would search 
	massive lists of press releases and "KnowlegeBase" articles
	and return thousands of hits.  Obviously MS and I are 
	speaking radically different languages.

<p>	Let's try Yahoo!

<p>	So I try "+ActiveX +Linux."  


<p>	Even more startling was the related rumor -- that 
	I heard at the same Java SIG meeting.  The Microsoft
	reps there announced Microsoft's intention to port
	IE (Internet Explorer) to Unix.  They didn't say which
	implementations of Unix would be the recipients of this
	dubious honor -- but suggested that Linux was under
	serious consideration.

<p>	(We can guess that the others would include SCO, Solaris,
	Digital, and HP-UX.  Some of MS' former bed partners
	(IBM's AIX) would likely be snubbed -- and more "obscure"
	OS' (like FreeBSD???), and "outmoded" OS' like SunOS
	are almost certainly to be ignored).

<p>	It appears that the plan is to port ActiveX to a few
	X86 Unix platforms -- and use that to support an IE
	port (I bet IE is in serious trouble without ActiveX))

<p>	They'll run the hype about this for about a year before
	shipping anything -- trying to convince people to wait a 
	little longer before adopting any other technologies.

<p>	"No! Joe!  Don't start that project in Java -- wait a 
	couple of months and those "Sun" and "Linux" users will
	be able to use the ActiveX version."

<p>	Some Links on this:

<ul>
<li><a href="http://www8.zdnet.com/pcweek/news/0303/03actx.html">PC
WEEK</a>: ActiveX moving to Unix; Netscape support lags

<li><a href="http://www.zendatta.com/workshop/techbriefs/activex.html">ActiveX--Zendetta</a>
	
<li><a href="http://antenna.infocity.co.jp/activex-howto.html">ANTENNA
ActiveX Mini-HOWTO</a>
<li>	This last one is amusing since it displays a footer at the
	end of every page:<br>

	"This server is: Digital Multia VX40 - Running RedHat Linux"


Here's one that meets my criteria for "Hall of Shame",

<li><a href="http://connected-place.co.uk">Connected Place Ltd</a>. Now
here's one that meets my criteria for "Hall of Shame".

	It contained no text on the main index page -- all icons.  
	The only reference to Linux on the site seemed to be in 
	the Keywords tag:<br>

		  &lt;META Name="KEYWORDS" Content="....&gt;<br>

	(Which repeated every term about four times -- this tag was 
	a half a screenful long).  Unfortunately it showed up 
	first in the hits list (first page in English that is --
	the one French page that preceded just had an "I've moved
	notice" -- or maybe it was a "You're a silly goat" message
	-- my French never was that good).

<li><a href="http://syrinx.res.cmu.edu/programmers.html">Jason't
Programmer Corner</a>
	... which started with the words,<br>
"ActiveX Sucks!"<br>

	... and said nothing else on the matter.  However,
	it doesn't make it into the Hall of Shame -- because
	the page is well organized, easily read -- only two
	"un-ALT'd" icons on several pages of information -- and
	has many good Linux and other links.  Even the "hit counter"
	works in Lynx saying, <br>

"You are visitor number 253 since 8.4.97"<br>
</ul>
<p>	Everybody who uses NetNews or E-Mail should read the little
	essay on "Good Subject Lines."

	A promising page which I didn't have time to properly
	peruse is
<ul>
<li><a href="http://www.blueriver.net/~wyrm/program.html">Sean Michael Mead's
Computer Programming Links</a>

	 which had "ActiveX" in the Meta, Keywords tag --
	but no obvious links to ActiveX content.

<p>	There was alot of good info on Java, Linux, HTML,
	Ada, TCL and many other topics.  I wouldn't be surprised
	if there was something about ActiveX somewhere below
	this page.  <br>

	Suggestion: Sean -- Install Glimpse!<br>

	(I've copied many of the owners/webmasters at the 
	sites I'm referring to here).

<li><a href="http://www.dimensionx.com/products/lr/download/index.html">ActiveX
Resources</a>,

	only had one reference to Linux.  This noted that
	the "Liquid Reality Toolkit" is a "is a set of Java class 
	libraries that gives you VRML functionality."

<p>Sounds interesting and wholly unrelated to ActiveX.
</ul>

<p>Conclusion:

	Microsoft's mumblings to Linux users about porting IE and
	ActiveX to Linux is interesting.  The mumbling is more 
	interesting than any product they deliver is likely to be.  
	I still don't know what ActiveX "does" well enough to 
	understand what "supporting ActiveX under Linux" would mean.

<p>	It seems that ActiveX is a method of calling OCX and DLL
	code.  That would imply that *using* ActiveX controls on 
	Linux would require support for OCS and DLL's -- which would 
	essentially mean porting all of the Windows API to work
	under Linux.

<p>	Now I have alot of trouble believing that Microsoft will
	deliver *uncompromised* support for Windows applications
	under Linux or any other non-Microsoft OS.  

<p>	Can you imaging Bill Gates announcing that he's writing a 
	multi-million dollar check to support the WINE project?  
	If that happens I'd suggest we call in the Air Force with 
	instructions to rescue the poor man from whatever UFO 
	snatched him -- and get the FBI to arrest the imposter!

<p>	What's amazing is that this little upstart collection of
	freeware has gotten popular enough that the largest software
	company in the world is paying any attention to it at all.

<p>	Given Microsoft's history we have to assume that any 
	announcement they make regarding Linux is carefully 
	calculated to offer them some substantial benefit in
	their grand plan.  That grand plan is to dominate the 
	world of software -- to be *THE* software that controls
	everything (including your toaster and your telephone)
	(and everyone???).

<p>	This doesn't mean that we should react antagonistically
	to these announcements.  The best bet -- for everyone
	who must make development or purchasing plans  for any
	computer equipment -- is to simply cut through as much
	of the hype as possible and ask:

		What are the BENEFITS of the package
		that is shipping NOW?

<p>	Don't be swayed by people who talk about FEATURES
	(regardless of whether they are from from Microsoft, 
	the local used car lot, or anywhere else).

<p>	The difference between BENEFITS and FEATURES is simply
	this -- 

		Benefits are relevant to you.

<p>	The reason software publishers and marketeers in general
	push "features" is because they are engaged in MASS 
	marketing.  Exploring and understanding individual 
	set of requirements is not feasible in MASS marketing.

<p>	(Personally one of the features that I find to be a 
	benefit in the Linux  market is the lack of hype.  I 
	don't have to spend time translating marketese and 
	advertisian into common English).


<p>	I hope this answers your question.  The short answers are:

<p>		Is it true (that MS is porting ActiveX to *ix)?

<p>			The rumor is widespread by their employees
			-- but there are no "official" announcements
			that can be found on their web site with 
			their own search engine.

<p>		When might we see it?

			Who nows.  Let's stick with NOW.

<p>	Finally let me ask this:

	What would you do with ActiveX support under Linux?
	Have you tried WABI?  Does ActiveX work under Windows 3.1
	and/or Windows 3.11?  Would you try it under WABI?

<p>	What are your requirements (or what is your wishlist)?

		(Perhaps the Linux programming community can 
		 meet your requirements and/or fullfill your 
		 wishes more directly).

<p><hr><p> 
<!--================================================================-->

<a name="pack"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
What Packages Do I Need?
</h3>
<P> <B> 

From: buck, <a href="mailto:buck@athenet.net">buck@athenet</a>

<p>I just installed Redhat 4.1 and was not sure what packages that I really
needed so I installed a lot just to be safe. The nice thing is that
Redhat 4.1 has the package manager that I can use to safely remove
items. Well seeing as how my installation was about 400 megs I really
need to clean house here to reclaim space. Is is save to remove the
developement packages and a lot of the networking stuff that I
installed. And what about the shells and window managers that I don't
use. I have Accelerated X so I know that I can get rid of a lot off the
X stuff. I need my space back!
</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	Since you just installed this -- and haven't had much time
	to put alot of new, unrecoverable data on it -- it should be
	"safe" to do just about anything to it.  The worst that will
	happen if you trim out to much is that you'll have to re-install.

<p>	I personally recommend the opposite approach.  Install the 
	absolute minimum you think is usable.  Then *add* packages
	one at a time.

<p>	I also strongly suggest creating a /etc/README file.  
	Create it *right after* you reboot you machine following
	the install process.  Make a dated note in there for 
	each *system* level change you make to your system.
	(My rule of thumb is that anything thing I edited 
	or installed as 'root' is a "system" level change).


<P>Most of my notes are in the form of comments near the top
	of any config files or scripts that support them. Typical 
	notes in /etc/README would be like:

		
		<PRE>Sun Apr 13 15:32:00 PDT 1997: jimd

			Installed mgetty.  See comments in 
			/usr/local/etc/mgetty/*.config.

		Sun May  4 01:21:11 PDT 1997: jimd

			Downloaded 2.0.30 kernel.
			unpacked into /usr/local/src/linux-2.0.30
			and replace /usr/src/linux symlink 
			accordingly.

			Picked *both* methods of TCP SYN
			cookies.  Also trying built-in kerneld
			just about everything is loadable modules.
			Adaptec SCSI support has to be built-in
			though.

			Needed to change rc files to do the
			mount of DOS filesystem *after* rc.modules.
			
	... etc.</pre>

<p>	Notice that these are free form -- a date, and login
	name (not ROOT's id -- but whoever is actualy doing
	work as root).  I maintain a README even on my 
	home machines.  

<p>	The goal is to keep notes that are good enough that 
	I could rebuild my system with all the packages I 
	currently use -- just using the README. It tells me 
	what packages I installed and what order 
	I installed them in.  It notes what things seemed 
	important to me at the time (like the note that 
	trying to start a kernel whose root filesystem is on
	a SCSI disk requires that the kernel be compile with
	that driver built-in -- easy to overlook and time consuming
	to fix if you forget it).

<p>	Sometime I ask myself questions in the README -- like:

		"Why is rnews throttling with this error:..."

	(and an excerpt from my /var/log messages).

<p>	This is handy if you later find that you need to correlate
	an anomaly on your system with some change made by your
	ISP -- or someone on your network.

<p>	Of course you could succumb to the modern trend -- buy
	another disk drive.  I like to keep plenty of those
	around.  (I have about 62Mb of e-mail currently cached
	in my mh folders -- that's built up since I did a fresh
	install last August -- with a few megs of carry over from
	my previous installation).
<p>
--
Jim                                 

<p><hr><p> 
<!--================================================================-->

<a name="users"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Users and Mounted Disks
</h3>
<P> <B> 

To: John E. (Ned) Patterson, <a href="mailto:jpatter@flanders.mit.edu">jpatter@flanders.mit.edu</a>,br>
 
<p>As a college student on a limited budget, I am forced to comprimise
between Win95 and Linux.  I use linux for just about everything, but
need the office suite under Win95 since I can't afford to buy
something for Linux.  (Any recommendations you have for cheep
alternatives would be appreciated, but that is not the point of the
question.)

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	I presume you mean MS Office.  (Caps mean a bit here).
	I personally have managed to get by without a couple of 
	Office (Word or Excel) for some time.  However I realize 
	that many of us have to exchange documents with <sarcasm>
	"less enlightened"</sarcasm> individuals (like professors
	employers and fellow students).

<p>	So getting MS Office so you can handle .DOC and .XLS 
	(and maybe PowerPoint) files is only a venial sin in 
	the Church of Linux (say a few "Hail Tove's" and go in
	peace).

<p>	As for alternatives:  Applixware, StarOffice, CliqSuite,
	Corel Application Suite (in Java), Caldera's Internet Office
	Suite, and a few others are out there.  Some of them can 
	do some document conversions from (and to??) .DOC format.
	
<p>	Those are all applications suites.  For just spreadsheets
	you have Xess, Wingz and others.

<p>	In addition there are many individual applications.
	Take a look at the Linux Journal Buyer's Guide Issue for
	a reasonably comprehensive list of commercial applications
	for Linux (and most of the free was as well).

<p>	Personally I use vi, emacs (in a vi emulation mode -- to 
	run M-x shell, and mh-e), and sc (spreadsheet calculator).

<p>	Recently I've started teaching myself TeX -- and I have
	high hopes for LyX though I haven't even seen it yet.

<p>	Unfortunately there is no good solution to the problem of 
	proprietary document formats. MS DOC and MS XLS files are
	like a stranglehold on corporate America.  I can't really 
	blame MS for this -- the competition (including the 
	freeware community) didn't offer a sufficiently attractive
	alternative.  So everyone seems to have stepped up to the
	gallows and stuck their own necks in it.

<p>	"Owning" an ubiquitous data format is the fantasy of 
	every commercial software company.  You're customers will
	pass those documents around to their associates, vendors,
	even customers, and *expect* them to read it.  Obviously 
	MS is trying to leverage this by "integrating" their 
	browser, mailer, spreadsheet, and word processors together
	with OLE, DSOM, ActiveX and anything else they can toss
	together.

<p>	The idea is to blur everything together so that customers
	link spreadsheets and documents into their web pages and
	e-mail -- and the recipients are then forced to have the
	same software.  Get a critical mass doing that and 
	"everyone" (except a few fringe Unix weirdos like me)
	just *HAS* to belly up and buy the whole suite.

<p>	This wouldn't be so bad -- but then MS has to keep revenues
	increasing (not just keep them flowing -- but keep them
	*increasing*).  So we get upgrades.  Each component of your
	software system has to be upgraded once every year or two --
	and the upgrade *MUST* change some of the data (a one way
	conversion to the new format) -- which transparently makes
	your data inaccessible to anyone who's a version behind. 

<p>	Even that wouldn't be so bad.  Except that MS also has its
	limits.  It can't be on every platform (so you can't access
	that stuff from your SGI or your Sun or your HP 700 or your
	OS/400).  Not that MS *couldn't* create applications for
	these platforms.  However that might take away some of Intel's
	edge -- and MS can't *OWN* the whole OS architecture on your
	Sun, SGI, HP or AS/400.

<p>	But enough of that diatribe.  Let's just say -- I don't
	like proprietary file formats.
 
<P><B>
<img align=bottom alt=" " src="../gx/ques.gif">
I mount my Win95 partition under /mnt/Win95, and would like to have
write permission enabled for only certain users, much like that which
is possible using AFS.  Recognizing that is not terribly feasable, I
have resorted to requireing root to mount the partition manually, but
want toi be able to write to it as a random user, as long as it is
mounted.  The rw option for mount does not seem to cut the mustard,
either.  it allows write for root uid and gid, but not anyone else.
Any suggestions?

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

	You can mount your Win95 system to be writable by a 
	specific group.  All you have to do is use the right
	options.  Try something like:
<pre>
mount -t umsdos -w -ogid=10,uid=0,umask=007 /dev/hda1 /mnt/c
</pre>
<p>	(note: you must use numeric GID and UID values here
	-- mount would look them up by name!)

<p>	This will allow anyone in group 10 (wheel on my system)
	to write to /mnt/c.

<p>	There are a few oddities in all of this.  I personally
	would prefer to see a version of 'mount' -- or an option
	to 'mount' that would mount the target with whatever 
	permissions and modes the underlying mount point had
	at mount time.  In other words, as an admin., I'd like to
	set the ownership and permissions on /mnt/c to something
	like joeshmo user with a mode of 1777 (sticky bit set).
	Then I'd use a command like:

<pre>		mount -o inherit /mnt/c /dev/hda1
</pre>
<p>	Unfortunately I'm not enough of a coder to feel comfortable
	make this change (yet) and my e-mail with the current 
	maintainer of the Linux mount (resulting from the last time
	I uttered this idea in public) suggests that it won't come
	from that source.

<p>	(While we were at it I'd also add that it would be nice
	to have a mount -o asuser -- which would be like the 
	user option in that it would allow any user (with access
	to the SUID mount program) to mount the filesystem.  The
	difference would be that the resulting mount point would be
	owned by the user -- and the nodev, nosuid etc, options would
	be enforced.)

<p>	Getting back to your question:

<p>	Another way to accomplish a similar effect (allowing
	some of your users to put files on under you /mnt/Win95
	directory) would be to create a /usr/Win95 directory --
	allow people to write files into that and use a 
	script to mirror that over to the /mnt/Win95 tree.

<p>	(Personally I think the whole this is pretty dangerous
	 -- so using the -o gid=... is the best bet).

<p>
--
Jim 

<p><hr><p> 
<!--================================================================-->

<a name="map"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
[q] Map Left Arrow to Backspace
</h3>
<P> <B> 
To: <ahref="mailto:wenbing@statcan.ca">wenbing@statcan.ca</a><br>

<p>I have a client who would like to use the left arrow key to backspace 
and erase characters to the left of the cursor. Is this possible? And
how? Thanks for an answer.

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">
	
<p>Read the Keyboard-HOWTO (section 5).

	The loadkeys and xmodmap man pages, and the 
	Backspace-Mini-HOWTO are also related to this. It is 
	possible to completely remap your keys in Linux and in 
	X Windows.  You can also set up keybindings that are 
	specific to bash (using the built in bind command) and
	to bash and other programs that use the "readline" 
	library using the .inputrc file.

<p>	The Keyboard-HOWTO covers all of this.
<p>
--
Jim 

<p><hr><p> 
<!--================================================================-->

<a name="pull"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Adding Programs to the Pull Down Menus
</h3>
<P> <B> 

To: Ronald B. Simon, <a href="mailto:rbsimon@anet.bna.boeing.com">rbsimon@anet.bna.boeing.com</a><br>

<p>I have written several utility programs that I use all the time.  I 
would like to add them to either the Application or Utility "pull 
down" menu of the Start menu.  Could you address this in your Linux 
Gazette article?

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	I assume you are referring to the menus for your 
	X "Window Manager."

<p>	Since you don't specify which window manager you're using
	(fvwm, fvwm95, twm, gwm, ctwm, mwm, olwm, TheNextLevel ---
	there are lots of wm's out there) -- I'll have to guess
	that you're using fvwm (which is the default) on most
	XFree86 systems.  The fvwm95 (which is a modification of
	fvwm to provide a set of menus and behaviors that is 
	visually similar to that of Windows '95) uses the same 
	file/menu format (as far as I know).

<p>	The way you customize the menus of almost any wm is to 
	edit (possibly creating) an rc file.  For fvwm that would be
	~/.fvwmrc

<p>	Here's an excerpt from mine (where I added the Wingz 
	demo):
<pre>
Popup "Apps"
        Exec    "Wingz"         exec /usr/local/bin/wingz &
        Nop     ""
        Exec    "Netscape"      exec netscape &
        Exec    "Mosaic"        exec Mosaic &
        Nop     ""
        Exec    "Elm"           exec xterm -e elm &
        Nop     ""
EndPopup

	You'd just add a line like:

	Exec	"Your App"	exec /path/to/your/app &

	.... to this.

	If you add a line like:

	PopUp	"My Menu"	MyMenu

	... and a whole section like:

PopUp "MyMenu"
	Exec	"One App"	exec /where/ever/one.app &
	Exec	"Another Toy"   exec /my/bin/toy &
EndPopUp
</pre>

<p>	... you'll have created your on submenu.

	Most other Window Managers have similar features and 
	man pages to describe them.
<p>
--
Jim 

<p><hr><p> 
<!--================================================================-->

<a name="nt"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
Linux and NT
</h3>
<P> <B> 

To: Greg C. McNichol, <a href="mailto:greg_c_mcnichol@em.fcnbd.com">greg_c_mcnichol@em.fcnbd.com</a><br>

<p>I am new to LINUX (and NT 4.0 for that matter) and would like any and all 
information I can get my hands on regarding the dual-boot issue. Any help 
is appreciated.

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	More than you wanted to know about:

<p>Booting Multiple Operating Systems

<p>	There are several mini-HOW-TO documents specifically
	covering different combinations of multi-boot.  Here's
	some that can be found at: 

<a
href="http://www.linuxresources.com//LDP/HOWTO/HOWTO-INDEX.html">http://www.linuxresources.com//LDP/HOWTO/HOWTO-INDEX.html</a>
<ul>
<li><a href="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+DOS+Win95">
Linux+DOS+Win95 mini-HOWTO</a><br>
  
How to use Linux and DOS and Windows95 together.
          Updated 10 September 1996.

<li><a href="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+OS2+DOS">Linux+DOS+Win95
mini-HOWTO</a><br>
          How to use Linux and OS/2 and DOS together.
          Updated 20 May 1996.

<li><a href="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+DOS+Win95+OS2">Linux+OS2+DOS
mini-HOWTO</a><br>
          How to use Linux and DOS and OS/2 and Win95 together.
          Updated 6 March 1996.

<li><a href="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+Win95">Linux+DOS+Win95+OS2</a><br>
          How to use Linux and Windows95 together.
          Updated 25 June 1996.

<li><a href="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+WinNT">
Linux+WinNT mini-HOWTO</a><br>
          How to use Linux and WindowsNT together.
          Updated 19 February 1997.

<li><a href="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+WinNT++">
Linux+WinNT++ mini-HOWTO</a> by Kurt Swendson<br> 
How to use Linux and
WindowsNT together, with NT preinstalled.
          Updated 21 December 1996.
</ul>

<p>	Personally I think the easiest approach to make 
	Linux co-exsist with any of the DOS derived OS'
	(Win  '95, OS/2, or NT) is to use Han Lerman's
	LOADLIN package.  Available at "Sunsite":

<a href="ftp://sunsite.unc.edu/pub/Linux/system/Linux-boot/lodlin16.tgz">ftp://sunsite.unc.edu/pub/Linux/system/Linux-boot/lodlin16.tgz</a>
 (85k)


<p>	To use this -- start by installing a copy of DOS
	(or Win '95).  Be sure to leave some disk space
	unused (from DOS/Win '95's perspective) -- I like
	to add whole disks devoted to Linux.

<p>	Now install Linux on that 2nd, 3rd or nth hard drive --
	or by adding Linux partitions to the unused portion of
	whichever hard drives you're already using.  Be sure to 
	configure Linux to 'mount' your DOS partition(s)
	(make them accessible as parts of the Unix/Linux directory
	structure).  While installing be sure to answer "No"
	or "Skip" to any questions about "LILO"  (Feel free to 
	read the various HOW-TO's and FAQ's so you'll understand
	the issues better -- I'd have to give a rather complete
	tutorial on PC Architecture, BIOS boot sequence and 
	disk partitioning to avoid oversimplifying this last item)

<p>	Once you're done with the Linux installation find and 
	install a copy of LOADLIN.EXE.  The LOADLIN package 
	is a DOS program that loads a Linux kernel.  It can be
	called from a DOS prompt (COMMAND.COM or 4DOS.COM) or 
	it can be used as a INSTALL directive in your CONFIG.SYS 
	(which you'd use with any of the multi-boot features
	out there -- including those that were built into DOS
	6.x and later).  After installation you'd boot into DOS
	(or into the so-called "Safe-Mode" for Windows '95) and
	call LOADLIN with a batch file like:
<pre>
		C:
		CD \LINUX
		LOADLIN.EXE RH2013.KRN root=/dev/hda2 .....
</pre>
<p>	(Note the value of your root= parameter must correspond
	to the Linux device node for the drive and partition on
	which you've installed Linux.  This example shows the 
	second partition on the first IDE hard drive.  The first
	partition on the second IDE drive would be /dev/hdb1
	and the first "logical" partition within an extended partition
	of your fourth SCSI hard drive would be /dev/sdd5.  The
	PC Architecture specifies room for 4 partitions per drive.
	Exactly one of those (per drive) may be an "extended" partition.
	An extended partition may have an arbitrary number of 
	"logical" drives.  The Linux nomenclature for logical drives
	always starts at 5 since 1 through 4 or reserved for the 
	"real" partitions).

<p>	The root= parameter may not be necessary in some cases
	since the kernel has a default which was compiled into
	it -- and which might have been changed with the rdev 
	command.  rdev is a command that "patches" a Linux kernel
	with a pointer to it's "root device."

<p>	This whole concept of the "root device" or "root filesystem"
	being different than the location of your kernel may be 
	confusing at first.  Linux (and to a degree other forms
	of Unix) doesn't care where you put you kernel.  You can 
	put it on a floppy.  That floppy can be formatted with a DOS, 
	Minix or ext2 filesystem -- or can be just a "raw" kernel
	image.  You can put your kernel on ANY  DOS filesystem
	so long as LOADLIN can access it.

<p>	LOADLIN and LILO are "boot loaders"  they copy the 
	kernel into RAM and execute it.  Since normal DOS
	(with no memory managers loaded -- programs like EMM,
	QEMM, and Windows itself) has no memory protection
	mechanisms it is possible to load an operating sytem 
	from a DOS prompt.  This is, indeed, how the Netware 3.x
	"Network Operating System" (NOS) has always been loaded
	(with a "kernel" image named SERVER.EXE).  It is also
	how one loads the TSX-32 (a vaguely VMS like operating 
	system for 386 and later PC's).

<p>	My my example RH2013.KRN is the name of a kernel file.
	Linux doesn't care what you name it's kernel file.  I
	use the convention of naming mine LNXvwyy.KRN -- where
	v is the major version number, w is the minor version and
	yy is the build.  LNX is for a "general use" kernel that
	I build myself, RH is a kernel I got from a RedHat CD,
	YGG would be from an Yggdrasil, etc).

<p>	One advantage of using LOADLIN over LILO is that can
	have as many kernels and your disk space allows.  You can
	have them arranged in complex hierarchies.  You can have as
	many batch files passing as many different combinations of 
	of kernel parameters as you like.  LILO is limited to
	16 "stanzas" in its /lilo.conf file.

<p>	The other advantage of LOADLIN over LILO is that it is
	less scary and hard to understand for new users.  To them
	Linux is just a DOS program that you have to reboot to get 
	out of.  It doesn't involve any of that mysterious 
	"master boot record" stuff like a computer virus.

<p>	A final advantage of LOADLIN over LILO is that LOADLIN
	does not require that the root file system be located 
	on a "BIOS accessible" device.  That's a confusing 
	statement -- because I just tossed in a whole new 
	concept.  The common system BIOS for virtually ALL 
	PC's can only see one or two IDE hard drives (technically 
	ST-506 or compatible -- with a WD8003 (???) or register 
	compatible controller -- however ST-506 (the old MFM and
	RLL drives) haven't been in use on PC's since the XT)
	To "see" a 3rd or 4th hard drive -- or any SCSI hard 
	drive the system requires additional software or firmware
	(or an "enhanced BIOS").  There is a dizzying array of 
	considerations in this -- which have almost as many 
	exceptions.  So to get an idea of what is "BIOS" accessible
	you should just take a DOS boot floppy -- with no CONFIG.SYS
	at all -- and boot off of it.  Any drive that you can't see
	is not BIOS accessible.

<p>	Clearly for the vast majority of us this is not a problem.
	For the system I'm on -- with two IDE drives, two internal
	SCSI drives, one internal CD reader, an external SCSI 
	hard drive, a magneto optical drive, a 4 tape DAT autochanger
	and a new CD-Writer (which also doubles as a CD reader, of
	course) -- with all of that it makes a difference.
	
<p>	Incidentally this is not an "either/or" proposition.
	I have LILO installed on this system -- and I have
	LOADLIN as well.  LILO can't boot my main installation
	(which is on the SCSI drives.  But it can boot a second
	minimal root installation -- or my DOS or OS/2 partitions.

<p>	(I'm not sure the OS/2 partition is still there -- I 
	might have replaced that with a FreeBSD partition at
	some point).

<p>	Anyway -- once you have DOS and Linux happy -- you can 
	install NT with whatever "dual boot" option it supports.
	NT is far less flexible about how it boots.  So far as 
	I know there is no way to boot into DOS and simply
	run NT.

<p>	It should be noted that loading an OS from DOS (such as
	we've described with LOADLIN, or with FreeBSD's FBSDBOOT.EXE
	or TSX-32's RUNTSX.EXE) is a ONE WAY TRIP!   You load them
	from a DOS prompt -- but DOS is completely removed from 
	memory and there is no way to exit back to it.  To get back
	to DOS you much reboot.  This isn't a new experience to 
	DOS users.  There have been many games, BBS packages and
	other pieces of software that had not "exit" feature.

<p>	(In the case of Netware there is an option to return to 
	DOS -- but it is common to use an AUTOEXEC.NCF (netware
	control file) that issues the Netware command REMOVE DOS
	to free up the memory that's reserved for this purpose).

<p>	In any event those mini-HOWTO's should get you going.
	The rest of this is just background info.
	
<p>
--
Jim 

<p><hr><p> 
<!--================================================================-->

<a name="serv"></a>
<h3><img align=bottom alt=" " src="../gx/ques.gif">
pcmcia 28.8 Modems and Linux 1.2.13 Internet Servers
</h3>
<P> <B> 

To: Brian Justice <bboyd@netscope.net>

<p>I was browsing the web and noticed your web page on Linux.  I am not 
familar with Linux but have an ISP who uses the software on their 
server. 

<p>I was wondering if anyone at your organization knew of any problems with 
</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	I'm the only one at my organization -- Starshine is a 
	sole proprietorship.
<P><B>
<img align=bottom alt=" " src="../gx/ques.gif">

<p>Pentium notebooks with 28.8 modems connecting to Linux 1.2.13 internet 
servers that would do the following:
<ul>
   <li>drop connection at 28.8 after connected for several minutes
    <li>have trouble on the initial connection or reconnection
</ul>
</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	It sounds like you're saying that the Pentium Notebook
	is running some other OS -- like Windows or DOS and that
	it is using a PCMCIA modem to dial into another system
	(with unspecified modem and other hardware -- but which 
	happens to run Linux).

<p>	If that's the case then you're troubleshooting the
	wrong end of the connection.

<p>	First identify which system is having the problem --
	use the Pentium with the "piecemeal" (PCMCIA) modem to
	call a BBS or other ISP at 28.8.  Try several.  

<p>	Does your Pentium sytem have problems with all or most of them?  

<p>	If so then it is quite likely a problem with the combination 
	of your Pentium, your OS, and your piecemeal modem.  

<p>	Try booting the Pentium off of a plain boring copy of DOS 
	(with nothing but the PCMCIA drivers loaded).  Repeat the 
	other experiments.  Does it still fail on all or most of
	them?

<p>	If so then it is probably the PCMCIA drivers.  

<P><B>
<img align=bottom alt=" " src="../gx/ques.gif">
<p>Regular desktop 28.8 modems seem to work fine.  I have a few 14.4 PCMCIA
modems that seem to work fine.

<p>Would incorrect settings cause this?  Or could this be a program glitch
that doesn't support these 28.8 modems due to the low level of the
release?  I noticed their are higher versions of Linux out there.

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	"incorrect settings" is a pretty vague term.  Yes. The 
	settings on your hardware *AND THEIRS* and the settings
	in your software *AND THEIRS* has to be right.  
	Yes.  The symptoms of incorrect settings (in the server 
	hardware, the modem hardware, the OS/driver software or the 
	applications software *AT EITHER END OF THE CONNECTION* could 
	cause sufficiently sporadic handshaking that one or the other 
	modem in a connection "gives up" and hangs up on the other.
	
<P><B>
<img align=bottom alt=" " src="../gx/ques.gif">
<p>The BIG question is "Have you heard of any 28.8 PCMCIA modem problems
with Linux internet servers? "  If so, could you drop me a few lines so
I can talk this over with my ISP.   If not , do you know of any other
sites or places I can check for info about this subject.

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	I've heard of problems with every type of modem for every
	type of operating system running on every platform.
	None of them has been specific to PCMCIA modems with 
	Linux.  I've operated a couple of large BBS' (over a 100
	lines on one and about 50 on the other) and worked with
	a number of corporate modem pools and remote access servers.

<p>	I don't understand why your ISP would want a note from
	me before talking to you.

<p>	It sounds like your asking me to say:

		"Oh yeah!  He shouldn't be running Linux there!"

	... or to say"

		"1.2.13!  That fool -- he needs to upgrade to 2.0.30!"

	... so you can then refer this "expert" opinion to some
	support jockey at your ISP.

<p>	Now if you mean that your ISP is running Linux 1.2.13
	on a Pentium laptop with PCMCIA modems -- and using that
	as a server for his internet customers -- I'd venture to 
	say that this is pretty ludicrous.

<p>	If you were running Linux on your laptop and having problems 
	with your PCMCIA modem I wouldn't be terribly surprised.
	PCMCIA seems to be an unruly specification -- and the designers
	of PCMCIA equipment seem to have enough trouble in their 
	(often unsuccessful) attempts to support simple DOS and
	Windows users.  The programmers that contribute drivers for
	Linux often have to work with incomplete or nonexistent 
	specifications for things like video cards and chipsets --
	and PCMCIA cards of any sort.

<p>	I mostly avoid PCMCIA -- it is a spec that is ill-suited
	to any sort of peripheral other than *MEMORY CARDS*
	(which is, after all, what the letters MC stand for in this
	unpronounceable stream of gibberish that I dubbed "piecemeal"
	a few years ago).

<P><B>
<img align=bottom alt=" " src="../gx/ques.gif">
<p>Any help would be appreciated.

</B><P>
<img align=bottom alt=" " src="../gx/ans2.gif">

<p>	I could provide much better suggestions if I had more
	information about the setup.  I could even provide
	real troubleshooting for my usual fees.

<p>	However, if the problem really is specific to your
	connections with your ISP (if these same 28.8 "piecemeal"
	modems work fine with say -- your Cubix RAS server or
	your favorite neighborhood BBS), then you should probably
	work with them to resolve it (or consider changing
	ISP's).

<p>	As a side note:  Most ISP's use terminal servers on their
	modem banks.  This means that they have their modems plugged
	into a device that's similar to a router (and usually made be
	a company that makes routers).  That device controls the
	modems and converts each incoming session into an rlogin or
	"8-bit clean" telnet session on one more more ethernet
	segments.  

<p>	Their Unix or other "internet servers" don't have any 
	direct connections to any of the normal modems.  (Sometimes 
	an sysadmin will connnect a modem directly to the serial ports
	of one or more of these systems -- for administrative access
	so they can call on a special number and bypass the terminal 
	servers, routers, etc).

<p>	It's possible that the problem is purely between the two
	brands of modems involved.  Modern modems are complex
	devices (essentiall dedicated microcomputers) with substantial
	amounts of code in their firmware.  Also the modem business
	sports cutthroat competition -- with great pressure to add
	"enhancements," a lot of fingerpointing, and *NO* incentive 
	to share common code bases for interoperability's sake.
	So slight ambiguities in protocol specification lead to 
	sporadic and chronic problems.  Finally we're talking about
	analog to digital conversion at each end of the phone line.
	The phone companies have *NO* incentive to provide good
	clean (noise free) phone lines to you and your ISP.  They make
	a lot more money on leased lines -- and get very little
	complaint for "voice grade" line quality.

<p>	The problem is that none of us should have been using modem
	for the last decade.  We should have all had digital signals
	coming into our homes a long time ago.  The various phone
	companies (each a monopoly in it's region -- and all stemming
	from a small set of monopolies) have never had any incentive
	to implement this, every incentive NOT to (since they can charge
	a couple grand for installationn and several hundred per month
	on the few T1's they to do sell -- and they'll never approach
	that with digital lines to the home.  They do, however, have 
	plenty of money to make their concerns heard in regulatory
	bodies throughout the government.  So they cry "who's going
	to pay for it?" so loudly and so continuously that no one can
	hear the answer of the American people. Our answer should be 
	"You (monopolies) will pay for it -- since we (the people) 
	provided you with a legal monopoly and the funds to build OUR
	copper infrastructure"  (but that answer will never be heard).

<p>	If you really want to read much more eloquent and much 
	better researched tirades and diatribes on this topic --
	subscribe to Boardwatch magazine and read Jack Rickard
	(the editor) -- who mixes this message with new information
	about communications technology every month.
	
<p> 
--
Jim 

<P> 

<!--================================================================-->
<P> <hr> <P> 
<center><H4>Previous "Answer Guy" Columns</H4></center>
<P>
<A HREF="../issue13/answer.html">Answer Guy #1, January 1997</A><BR>
<A HREF="../issue14/answer.html">Answer Guy #2, February 1997</A><br>
<A HREF="../issue15/answer.html">Answer Guy #3, March 1997</A><br>
<A HREF="../issue16/answer.html">Answer Guy #4, April 1997</A><br>
<A HREF="../issue17/answer.html">Answer Guy #5, May 1997</A>
<P><HR><P>
<center><H5>Copyright &copy; 1997, James T. Dennis <BR> 
Published in Issue 18 of the Linux Gazette June 1997</H5></center>

<P> <hr> <P> 
<!--================================================================-->
<A HREF="./lg_toc18.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF 
CONTENTS ]"></A> <A HREF="../index.html"><IMG SRC="../gx/homenew.gif" 
ALT="[ FRONT PAGE ]"></A> 
<A HREF="lg_bytes18.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<A HREF="./bash.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<!--startcut =======================================================  -->
</body> 
</html>
<!--endcut =========================================================  -->