File: lg_tips36.html

package info (click to toggle)
lg-issue36 2-4
  • links: PTS
  • area: main
  • in suites: woody
  • size: 2,920 kB
  • ctags: 242
  • sloc: makefile: 36; sh: 4
file content (1149 lines) | stat: -rw-r--r-- 45,986 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
<!--startcut ==========================================================-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> 
<html>
<head>
<title>More 2 Cent Tips & Tricks LG #36</title>
</head>

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

<!-- QUICK TIPS SECTION ==================================================  -->
<center>
<H1><A NAME="tips"><IMG ALIGN=MIDDLE ALT="" SRC="../gx/twocent.gif">
More 2&#162; Tips!</A></H1> <BR>
Send Linux Tips and Tricks to <A HREF="mailto:gazette@ssc.com">
gazette@ssc.com
</A></center>

<p><hr><p>
<H3>Contents:</H3>
<ul>
<li><a HREF="./lg_tips36.html#dahlgren">
Forcing fsck on Red Hat 5.1
</a>
<li><a HREF="./lg_tips36.html#peters">
Personal Listserver
</a>
<li><a HREF="./lg_tips36.html#buchanan">
Re: Back Ups
</a>
<li><a HREF="./lg_tips36.html#brower">
ANSWER: Your Supra Internal Modem Problems
</a>
<li><a HREF="./lg_tips36.html#leyba">
ANSWER: Single Floppy Linux
</a>
<li><a HREF="./lg_tips36.html#hughes">
ANSWER: Re: scsi + ide; boot ide
</a>
<li><a HREF="./lg_tips36.html#stevenson">
ANSWER: Numlock at startup
</a>
<li><a HREF="./lg_tips36.html#enrique">
ANSWER: Re: graphics for disabled
</a>
<li><a HREF="./lg_tips36.html#milgram">
ANSWER: BTS: GNU wget for updating web site
</a>
<li><a HREF="./lg_tips36.html#carr">
ANSWER: Linux Boot-Root
</a>
<li><a HREF="./lg_tips36.html#sergio">
Replies to My Questions in Nov. 98 <I>Linux Gazette</I>
</a>
</ul>

<P> <hr> <P> 
<!--================================================================-->

<a name="dahlgren"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">Forcing fsck on Red Hat 5.1</font>
</H3>
Date: Tue, 08 Dec 1998 18:20:28 -0500<BR>
From: James Dahlgren, <A HREF="mailto:jdahlgren@netreach.net">
jdahlgren@netreach.net</A> 
<P> 
I don't know if this is a 2 cent tip or what, and since it's
distribution specific, it's applicability is limited, but I still
thought it was worth sharing.
<P> 
The shutdown command accepts a -F switch to force a fsck when the system
is rebooted. This switch just writes a flag file /forcefsck, it is up to
the initialization scripts do do something about it. In Red Hat 5.1 ( I
don't know about 5.2 ) the rc.sysinit script uses a different method to
force a fsck.
<P> 
It checks for the existence of /fsckoptions and if it exists uses it's
contents as a switch when calling fsck. The command "echo -n '-f' >
/fsckoptions" will create a file, /fsckoptions, with "-f" in it and will
force a fsck the next time the system is booted. The rc.sysinit script
removes the /fsckoptions file after remounting the drive read-write, so
that the fsck won't be forced every time the system is booted.
<P> 
If you want the -F switch from the shutdown command to work, a little
editing of the /etc/rc.d/rc.sysinit file will do it.
<P> 
near the beginning of the rc.sysinit file is the following:
<PRE> 
if [ -f /fsckoptions ]; then
        fsckoptions=`cat /fsckoptions`
else
        fsckoptions=''
fi                        
</PRE> 
This is where it checks for the /fsckoptions file and reads its contents
into a variable for later use. We add an elif to check for the
/forcefsck file and set the variable accordingly:
<PRE> 
if [ -f /fsckoptions ]; then
        fsckoptions=`cat /fsckoptions`
elif [ -f /forcefsck ]; then
        fsckoptions='-f'
else
        fsckoptions=''
fi
</PRE> 
Now the /forcefsck flag file created by using the -F switch with
shutdown will force a fsck on reboot. Now we need to get rid of the
/forcefsck file, or it will force the check every time the system is
started. Further down in the rc.sysinit file, after the disk is
remounted read-write, is the following line which removes any existing
/fsckoptions file:
<PRE> 
rm -f /etc/mtab~ /fastboot /fsckoptions 
</PRE> 
We just add /forcefsck to the list of files to delete:
<PRE> 
rm -f /etc/mtab~ /fastboot /fsckoptions /forcefsck
</PRE> 
Now we have two ways to force the fsck, we can use the -F switch when
running shutdown, or we can put specific flags in a /fsckoptions file.
<P> 
CAUTION!<BR> 
The rc.sysinit file is critical to system startup. A silly typo in it
can make the system hang when it boots. ( I've been there! ) Make a
backup before you edit it. Edit it carefully. If you do blotch it, you
can recover by rebooting and using the -b switch after the image name on
the lilo command line. This brings you up in maintenance mode without
running the rc.sysininit script. The disk is in read-only mode.
<PRE> 
mount -n -o remount,rw /
</PRE> 
will get you to read-write mode so you can fix the problem.
<PRE> 
mount -n -o remount,ro /
</PRE> 
after fixing the problem to prepare the system for continuing startup.
<P> 
exit or ctl-d to exit the maintenance shell and continue on to the
default runlevel.
<P> 
Hope this is of some use to someone.
<P> 
--<BR> 
Jim

<P> <hr> <P> 
<!--================================================================-->

<a name="peters"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">Personal Listserver</font>
</H3>
Date: Mon, 07 Dec 1998 01:59:48 +0100<BR> 
From: "Soenke J. Peters", <A HREF="mailto:peters@simprovement.com">
peters@simprovement.com</A> 
<P> 
An often unused feature of "sendmail" is it's "plussed user feature"
which makes mails to "user+testlist@localhost" match "user@localhost".
I will show you how to use this to implement personal mailing lists.
<P> 
First, you have to set up "procmail" to act as a filter on your incoming
mails. This could be done inside sendmail by setting it up as your local
mailer, or simply via your "~/.forward" file.
<P> 
Now, you should get a mailing list program. I prefer BeroList, because
it's easy to configure. Compile it (don't forget to adjust the paths!)
and install it somewhere in your home directory.
<P> 
Done that, you have to tell procmail what mails are to be passed to the
mailing list program. This is done inside "~/.procmailrc" and should
contain something like the following for every list (in this example,
the list is called "testlist", the mailname of the user is "username"):
<PRE> 
:0
* ^To:.*username\+testlist
| path/to/the/listprogram testlist
</PRE> 
The last step is to prepare the configuration files for the mailing
list. As this is specific to the program you use, I can't tell you here.
<P> 
For a german description see:<BR> 
http://www.simprovement.com/linux/listserver.html
<P> 
--<BR> 
Soenke Jan  Peters

<P> <hr> <P> 
<!--================================================================-->

<a name="buchanan"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">Re: Back Ups</font>
</H3>
Date: Tue, 1 Dec 1998 10:07:46 -0500 (EST)<BR> 
From: Jim Buchanan, <A HREF="mailto:c22jrb@koptsv01.delcoelect.com">
c22jrb@koptsv01.delcoelect.com</A>
<blockquote> <font color="navy">
From: Anthony Baldwin:<BR> 
Disk space is relatively cheap, so why not buy a small drive say
500Meg which is used for holding just the root /lib /bin /sbin
directories. Then setup a job to automatically back this up to another
drive using "cp -ax" (and possibly pipe it through gzip and tar). This
way when the unthinkable happens and you loose something vital, all
you have to do is boot from floppy mount the 2 drives and do a
copy. This has just saved my bacon while installing gnu-libc2
</font></blockquote> 
A good idea as far as it goes, but there is one gotcha. If lightning
or some other power surge takes out one drive, it might take out the
on-line backup as well.
<P> 
I use a very similar method where each night, on each machine, I have
a cron job back up vital information to another HD in another machine
on my home network.
<P> 
In addition to the nightly back-ups, I do a weekly backup to removable
media, which I keep in a separate building (my workshop at the back of
my lot). That way if lightning takes out everything on the network, I
have lost a weeks or less work. The separate building part might be
paranoia, but I really recommend at least weekly off-line back ups.
<P> 
-- <BR> 
Jim Buchanan


<P> <hr> <P> 
<!--================================================================-->
<H4><font color="maroon">
Tips in the following section are answers to questions printed in the Mail
Bag column of previous issues.
</font></H4> 

<P> <hr> <P> 
<!--================================================================-->

<a name="brower"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">Your Supra Internal Modem Problems</font>
</H3>
Date: Tue, 1 Dec 1998 09:48:10 -0500 
From: "Brower, William" wbrower@indiana.edu
<P> 
<blockquote> <font color="navy">
Richard wrote:<BR> 
I have a PII (350MHz) running with an AGP ATI 3DRage graphics
card (which works fine) and a Sound Blaster 16 PnP (which also works fine).
But, I can't get my internal SupraExpress 56k modem to
work.
</font></blockquote> 
Your modem sounded familiar from a past search I had done, so I went to
Red Hat's www site (http://www.redhat.com/) and followed the support |
hardware link. You will find this reference in the modem category:
<P> 
Modems that require software drivers for compression, error correction,
high-speed operation, etc. <BR> 
PCI Memory Mapped Modems (these do not act like serial ports) <BR> 
Internal SupraExpress 56k & also the Internal SupraSonic 56k 
<P> 
It appears that your modem is inherently not compatible with Linux.
I use an inexpensive clone modem called the E-Tech Bullet, pc336rvp model -
paid $28 for it and it operates with no problems at all.
Good luck in finding a compatible modem!
<P> 
--<BR> 
Bill 

<P> <hr> <P> 
<!--================================================================-->

<a name="leyba"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">Single Floppy Linux</font>
</H3>
Date: Tue, 01 Dec 1998 22:05:59 -0800<BR> 
From: Ken Leyba, <A HREF="mailto:kleyba@pacbell.net">
kleyba@pacbell.net</A> <BR> 
<P> 
To: roberto.urban@uk.symbol.com<BR> 
There are a few choices for a single floppy Linux (O.K. some are more
than one floppy).  I haven't tried them, but I will be doing a Unix
presentation next month and plan to demo and handout a single or double
floppy sets for hands-on.
<P> 
muLinux (micro linux):<BR> 
http://www4.pisoft.it/~andreoli/mulinux.html
<P> 
tomsrtbt:<BR> 
http://www.toms.net/rb/
<P> 
Linux Router Project:<BR> 
http://www.linuxrouter.org/
<P> 
Trinux:<BR> 
http://www.trinux.org/
<P> 
Good Luck,<BR> 
--<BR> 
Ken

<P> <hr> <P> 
<!--================================================================-->

<a name="hughes"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">Re: scsi + ide; boot ide</font>
</H3>
Date: Sun, 29 Nov 1998 07:42:29 -0800 (PST)<BR> 
From: Phil Hughes, <A HREF="mailto:fyl@ssc.com">fyl@ssc.com</A>
<blockquote> <font color="navy">
The amazing Al Goldstein wrote:<BR> 
I have only linux on a scsi disk. I want to add an ide disk and want to
continue to boot from the scsi which has scsi id=0. Redhat installation
says this is possible. Is that true? If so how is it done?
</font></blockquote> 
First, you should be able to tell your BIOS where to boot from.  Just set
it to SCSI first and all should be ok.
<P> 
If that isn't an option, just configure LILO (/etc/lilo.conf) so that it
resides on the MBR of the IDE disk (probably /dev/hda) but boots Linux
from where it lives on the SCSI disk.
<P> 
-- <BR> 
Phil

<P> <hr> <P> 
<!--================================================================-->

<a name="stevenson"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">Numlock at startup</font>
</H3>
Date: Thu, 03 Dec 1998 21:51:08 -0800<BR> 
From: "D. Cooper Stevenson", <A HREF="mailto:coopers@proaxis.com">
coopers@proaxis.com</A>
<blockquote> <font color="navy">
To: bmtrapp@acsu.buffalo.edu
</font></blockquote> 
Here's a bit of code I found while searching the documentation for
"numlock" It turns numlock on for all terminals at startup! The bolded
code is the added code in the /etc/rc.d/rc file of my Redhat 5.1 Linux:
<PRE> 
 Is there an rc directory for this new runlevel?
if [ -d /etc/rc.d/rc$runlevel.d ]; then
        # First, run the KILL scripts.
        for i in /etc/rc.d/rc$runlevel.d/K*; do
                # Check if the script is there.
                [ ! -f $i ] && continue

                # Check if the subsystem is already up.
                subsys=${i#/etc/rc.d/rc$runlevel.d/K??}
                [ ! -f /var/lock/subsys/$subsys ] && \
                    [ ! -f /var/lock/subsys/${subsys}.init ] && continue

                # Bring the subsystem down.
                $i stop
        done

        # Now run the START scripts.
        for i in /etc/rc.d/rc$runlevel.d/S*; do
                # Check if the script is there.
                [ ! -f $i ] && continue

                # Check if the subsystem is already up.
                subsys=${i#/etc/rc.d/rc$runlevel.d/S??}
                [ -f /var/lock/subsys/$subsys ] || \
                    [ -f /var/lock/subsys/${subsys}.init ] && continue

                # Bring the subsystem up.
                $i start
        done

        # Turn the NumLock key on at startup
        INITTY=/dev/tty[1-8]
        for tty in $INITTY; do
             setleds -D +num < $tty
        done
fi
</PRE> 

<P> <hr> <P> 
<!--================================================================-->

<a name="enrique"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">Re: graphics for disabled</font>
</H3>
Date: Wed, 16 Dec 1998 00:13:19 GMT<BR> 
From: Enrique I.R., <A HREF="mailto:esoft@arrakis.es">
esoft@arrakis.es</A>

<blockquote> <font color="navy">
In a previous message, Pierre LAURIER says:
- control of the pointer device with the keyboard 
</font></blockquote> 
You can do it with any windowmanager. It's a XFree86 feature (v3.2, don't know
of older versions). You only have to use the XKB extension. You enable it hiting
the Control+Shift+NumLock. You should hear a beep here. Now you use the
numerical keypad to:
<PRE> 
Numbers (cursors) -&gt; Move pointer.
/,*,- -&gt; l,r&m buttons.
5 -&gt; Click selected button.
+ -&gt; Doubleclick selected button.
0(ins) -&gt; Click&Hold selected button.
.(del) -&gt; Release holded button.
</PRE> 
Read the XFree86 docs to get details.
<P> 
--<BR> 
Enrique I.R.

<P> <hr> <P> 
<!--================================================================-->

<a name="milgram"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">BTS: GNU wget for updating web site</font>
</H3>
Date: Thu, 24 Dec 1998 03:15:16 -0500<BR> 
From: "J. Milgram", <A HREF="mailto:milgram@cgpp.com">
milgram@cgpp.com</A> 

<blockquote> <font color="navy">
Re. the question "Updating Web Site" in the Jan 1999 <I>Linux Journal</I>,
p. 61 ...
</font></blockquote> 
Haven't tried the mirror package - might be good, but you can also use
GNU wget (prep.ai.mit.edu). Below is the script I use to keep the
University of Maryland LUG's Slackware mirror up-to-date. "Crude but
effective".
<PRE> 
#!/bin/bash
#
#  Update slackware
#
#  JM 7/1998  

# usage:   slackware.wget [anything]
# any argument at all skips mirroring, moves right to cleanup.

site=ftp://sunsite.unc.edu
sitedir=pub/Linux/distributions/slackware-3.6; cutdirs=3
localdir=`basename $sitedir`
log=slackware.log
excludes=""
for exclude in bootdsks.12 source slaktest live kernels; do
  [ "$excludes" ] && excludes="${excludes},"
  excludes="${excludes}${sitedir}/${exclude}"
done

# Do the mirroring:

if [ ! "$*" ]; then
 echo -n "Mirroring from $site (see $log) ... "
 wget -w 5 --mirror $site/$sitedir -o $log -nH --cut-dirs=$cutdirs -X"$excludes"
 echo "done."
fi

# Remove old stuff
# (important, but wipes out extra stuff you might have added)

echo "Removing old stuff ..."
for d in `find $localdir -depth -type d`; do
  pushd $d > /dev/null
  for f in *; do
     grep -q "$f" .listing || { rm -rf "$f" && echo $d/$f; }
  done
  popd > /dev/null
done
echo "Done."

</PRE>
--<BR>  
Judah 

<P> <hr> <P> 
<!--================================================================-->

<a name="carr"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">Linux Boot-Root</font>
</H3>
Date: Mon, 7 Dec 1998 12:57:34 +0100<BR> 
From: Ian Carr-de Avelon, <A HREF="mailto:ian@emit.pl">
ian@emit.pl</A> 
<P>
This is an answer to one of the letters in the December '98 issue.
<blockquote> <font color="navy">
   Date: Wed, 04 Nov 1998 19:01:02 +0000
   From: Roberto Urban, roberto.urban@uk.symbol.com
   Subject: Help Wanted - Installation On Single Floppy
</font></blockquote> 
<blockquote> <font color="navy">
   My problem seems to be very simple yet I am struggling to solve it. I
   am trying to have a very basic installation of Linux on a single
   1.44MB floppy disk and I cannot find any documents on how to do that.
   My goal is to have just one floppy with the kernel, TCP/IP, network
   driver for 3COM PCMCIA card, Telnet daemon, so I could demonstrate our
   RF products (which have a wireless Ethernet interface - 802.11 in case
   you are interested) with just a laptop PC and this floppy. I have
   found several suggestions on how to create a compressed image on a
   diskette but the problem is how to create and install a _working_
   system on the same diskette, either through a RAM disk or an unused
   partition. The distribution I am currently using is Slackware 3.5.
</font></blockquote> 
Making a "boot-root" disk is not too difficult and there is information
and and examples available:
http://metalab.unc.edu/LDP/HOWTO/Bootdisk-HOWTO.html
http://www.linuxrouter.org/
<P> 
Maybe the new LDP site should have a link from every page of Linux Gazett:
http://metalab.unc.edu/LDP/ 
<P> 
I build boot-root disks quite regularly and they have lots of uses Eg:
<ol>
<li>change an old PC into a dial on demand router for a net.
<li>Give clients and emergency disk which will ring in to us so we can 
log in and fix things. (Even if the main  OS on the machine is not
Linux)
<li>Turn any Windows PC on the net into a terminal, or testbed for 
network hardware.
<li>Clients often bring laptops for installations with no easy way of 
connecting them to the net. A bootroot disk and a PLIP cable gives
me a simple way to get the laptop to let me telnet to it and ftp files
across.
</ol>
Basicly it is just a matter of reducing what you are trying to something
which will fit on the floppy and following the HOWTO. If you are short of
space you can usually gain a little by using older versions.
<P> 
Having said that you are putting yourself up against some additional 
problems here.  Laptops are notorious for being only PC compatable
with drivers which are only available for Windows. Even here there
is some support:
http://www.cs.utexas.edu/users/kharker/linux-laptop/
but you should realise that not all PCMCIA chip sets are supported 
and that is before you get onto support for the card itself. Obvioulsy
if the card is your own product you have some advantages as far as getting
access to technical information :-) but in general if the laptop and
card manufacturers are unwilling to give information you can end up
wasting a lot of time on reverse engineering and sometimes still fail.
<P> 
--<BR> 
Ian

<P> <hr> <P> 
<!--================================================================-->

<a name="sergio"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">Replies to My Questions in Nov. 98 <I>Linux
Gazette</I></font>
</H3>
Date: Tue, 15 Dec 1998 20:23:48 -0800<BR> 
From: Sergio Martinez, <A HREF="mailto:sergiomart@csi.com">
sergiomart@csi.com</A> 
<P> 
Last month, Ms. Richardson published a short letter I wrote
that asked some questions about the differences among the
terminology of GUIs, window managers, desktops, interfaces,
and a bit about the differences among GNOME, KDE, and Windows.
These matters came to mind as I switched from Windows 95 to
Linux, with its multiple choices of window managers.
<P> 
Several people were kind enough to send long replies. I'm
forwarding them to you in case you would like to consider using
one as an article, or editing them into one. I suppose the title
could be something like "A Vocabulary Primer to GUI's, Window
Managers, Desktops, Interfaces, and All That".
<P> 
I'm leaving all this to your judgment. It would be an article
for newbies, but I found most of the replies very informative
for this migrant from Windows 95.
<P> 
--<BR> 
Sergio E. Martinez
<P> <center>--------------------------------------------------------------</center>
Date: Tue, 1 Dec 1998 13:44:20 -0500 <BR> 
From: Moore, Tim, <A HREF="mailto:Tim.Moore@ThomsonConsulting.com">
Tim.Moore@ThomsonConsulting.com</A> 
<P> 
I don't have time to write a full article, but I can answer your questions.
Unfortunately, I'm using MS Outlook to do so (I'm at work and I have to )-:
) so sorry if this comes out formatted funny in your mailer.
<P> 
<blockquote><font color="navy">
Terminology: The differences (if any) among a GUI, a window manager, a
desktop, and an interface. How do they differ from X windows? 
</font></blockquote> 
In the X world, things tend to be split up into multiple components, whereas
in other systems, everything is just part of the "OS". Here are some
definitions:
<P> 
Interface is a general term which really just means a connection between two
somewhat independent components -- a bridge. It is often used to mean "user
interface" which is just the component of a computer system which interacts
with the user.
<P> 
GUI is another general term, and stands for graphical user interface.  It's
pretty much just what it sounds like; a user interface that is primarily
graphical in nature.  Mac OS and Windows are both GUIs.  In fact, pretty
much everything intended for desktop machines is these days.
<P> 
On Mac OS and Windows, capabilities for building a graphical interface are
built into the OS, and you just use those.  It's pretty simple that way, but
not very flexible.  Unix and Unix-like OSes don't have these built in
capabilities -- to use a GUI, you have to have a "windowing system."  X is
one of them -- the only one that sees much use these days.
<P> 
All X provides is a way to make boxes on the screen (windows) and draw stuff
in them.  It doesn't provide a) ways to move windows around, resize them, or
close them, b) standard controls like buttons and menus, c) standards or
guidelines for designing user interfaces for programs, or for interoperating
between programs (e.g., via drag and drop or a standard help system).
<P> 
A window manager is a program which lets you move windows around and resize
them.  It also usually provides a way to shrink a window into an icon or a
taskbar, and often has some kind of a program launcher.  The user can use
any window manager that he or she wants -- any X application is supposed to
work with any window manager, but you can only run one at a time.  That is,
you can switch between window managers as much as you want, but at most one
can be running at a time, and all programs on screen are managed by
whichever one is running (if any).
<P> 
A widget set is a library of routines that programmers can use to make
standard controls like buttons and menus (which are called widgets by X
programmers).  The widget set that an application uses is chosen by the
*programmer* (not the user).  Most people have multiple widget sets
installed, and can run multiple programs using different widget sets at the
same time.
<P> 
Finally, there's the desktop environment.  This is the newest and most
nebulous X term.  It basically means "the things that the Mac OS and Windows
GUIs have that X doesn't but should" which generally consists a set of
interacting applications with a common look and feel, and libraries and
guidelines for creating new applications that "fit in" with the rest of the
environment.  For example, all KDE applications use the same widget set (Qt)
and help program, and you can drag and drop between them.  You can have
multiple desktop environments installed at the same time, and you can run
programs written for a different environment than the one you're running
without having to switch, as long as you have it installed.  That is, if you
use GNOME, but like the KDE word processor KLyX, you can run KLyX without
running any other KDE programs, but it won't necessarily interoperate well
with your GNOME programs.  You can even run the GNOME core programs and the
KDE core programs at the same time, thought it doesn't really make much
sense to, as you would just end up with two file managers, two panels, etc.

<blockquote><font color="navy">
Do all window managers (like GNOME or KDE or FVWM95) run on top of X
windows? 
</font></blockquote> 
Yes, though GNOME and KDE aren't window managers (they're desktop
environments).  KDE comes with a windowmanager (called KWM).  GNOME doesn't
come with a window manager -- you can use whichever one you want, though
some have been specifically written to interoperate well with GNOME programs
(Enlightenment being the furthest along).  But yes, they all require X to be
running.

<blockquote><font color="navy">
What exactly does it mean for an application to be GNOME or KDE aware? What
happens if it's not? Can you still run it? 
</font></blockquote> 
It just means that it was written using the GNOME or KDE libraries.  This
means a few things: 1) programs will probably *not* be both GNOME *and* KDE
aware, 2) you have to have the GNOME libraries installed to run GNOME-aware
applications, 3) you can run GNOME applications and KDE applications
side-by-side, and to answer your question, 4) you can always run non-aware
applications if you use either environment.

<blockquote><font color="navy">
What exactly do the GTK+ (for GNOME) or Troll (for KDE) libraries do? 
</font></blockquote> 
GTK+ and Qt (which is the name of the product by Troll Tech that KDE uses)
are both widget sets.  That is, they provide buttons, menus, scrollbars, and
that sort of thing to application developers.  Note that applications can
use GTK+ or Qt without being GNOME or KDE aware, but *all* GNOME apps use
GTK+ and *all* KDE apps use Qt.

<blockquote><font color="navy">
How does the history of Linux (or UNIX) window managers compare to that of
say, the desktop given to Win98/95 users? How, specifically, does Microsoft
limit consumer's choices by giving them just one kind of desktop, supposedly
one designed for ease of use? 
</font></blockquote> 
This is a much more complicated question.  In essence, Windows provides a
built in windowing system, window manager, widget set, and desktop
environment, so everybody uses those instead of being able to chose the one
they like.

<blockquote><font color="navy">
What's happening with Common Desktop Environment? Is it correct that it's
not widely adopted among Linux users because it's a resource hog, or not
open source? 
</font></blockquote> 
Yes.  Also, it costs a lot of money.  You can get it from Red Hat, though.
<P> 
--<BR> 
Tim
<P> <center>--------------------------------------------------------------</center>
Date: Wed, 2 Dec 1998 00:34:46 +0100 (AMT)<BR> 
From: Hans Nieuwenhuis, <A HREF="mailto:niha@ing.hj.se">
niha@ing.hj.se</A> 
<P> 
I read your mail today in the Linux Gazette and decided to answer (or try
to) your questions.
<P> 
Here it goes:
<P> 
X-Windows is designed as a client-server system. Advantage is that you can
run the server on another machine then the machine your monitor is
connected to. Then you need a client. This can be a program or a window
manager. A window manager communicates with the server by asking it to
create a window. When the server fullfilled the requests the windowmanager
ads a nice titlebar to it and lets the application create its interface.
Basicly the window manager stand between the server and the application,
but that is not necessary. It is possible to run an application on a X
server without a window manager but the only thing you are able to do is
run that specific application, close it and kill the X server.
<P> 
A GUI is a Graphical User Interface, which means all of the information
presented on the screen is done by windows, menus, buttons etc... Just
like Windows. Also all the interaction, the interface is based upon those
windows and buttons. The main goal of a GUI is to provide a uniform system
of presenting windows and gathering information. A good example in MS
Windows is the Alt+F4 keystroke, with this keystroke you can close any
window on your screen. 
A window manager can be part of this system. This is what happens with
KDE and CDE. They both feature their own window manager and then you are
able to bring this same uniformity to your desktop. Basicly what I see as 
a desktop is the set of applications which are availeble on a certain
system. A uniform GUI can bring also features like drag and drop and
"point and shoot", associate applications to a certain filetype.
One question you ask about the awareness for GNOME or KDE, this means,
that a program that is designed for those environment is (or should be)
able to communicate with other programs that are designed for those
environments. This brings you for example drag and drop. Some programs can
indeed not run without the desktop environment for which they are
designed, but some can. For example I use KDE programs, but I do not like
their window manager so I use Window Maker, which is not designed for use
in the KDE environment, therefore I have to lack some features.
<P> 
The libraries: GTK+ and Qt (Troll, as you mentioned it) are toolkits. What
they basicly do is draw windows, buttons and menus. These are tour Legos
with which you build your interface. And yes, if you want to run
applications designed for a specif environment, say GNOME, you need
atleast the GNOME libaries, like GTK+ and a few others.
<P> 
As I mentioned before, the client-server design of X-Windows gives the
user the flexibility to choose a window manager they like, but basicly
they do the same as the win95/98 system. Win95/98 limits you to one look
and feel (yeah you can change the color of your background, but that is
about it), but manages also windows. But it does not give the user the
freedom to experiment with other looks and feels. Most modern window
managers permits you to define other keybindings and such. And if you
don't like GNOME you can use KDE and vice versa (there are a few others
btw).
<P> 
All I know about CDE is that it is based on the Motif toolkit (compare
GTK+ and Qt) and this toolkit is not free (better say GPLed software)  
like GTK+. I think that is the main reason why it is not used very much on
Linux. But if it is a resource hog I do not know. Personally the main
reason why I will not use it is because it looks ugly :-)
<P> 
Well that is about it, I hope this information is a bit usefull. If you
have questions, do not hesitate...
<P> 
--<BR> 
Hans Nieuwenhuis

<P> <center>--------------------------------------------------------------</center>
Date: Sat, 05 Dec 1998 00:29:34 -0500<BR> 
From: sottek, <A HREF="mailto:sottek@quiknet.com">
sottek@quiknet.com</A>
<P> 
  I thought I would take the time to send you some
information about the questions you have posted
on Linux Gazette. From your question I can tell
that even though you are new to Linux you have seen
some of the fundamental differences in the interface
workings. I currently work for Intel where I
administrate Unix Cad tools, and am having to
explain these differences to management everyday...
I think you will understand far better than they
do :)

<blockquote><font color="navy">
1.Terminology: The differences (if any) among a GUI, a window manager, a
desktop, and an interface. How do they differ from X windows? 
</font></blockquote> 
X windows is a method by which things get drawn on
your screen. All x windows clients (the part drawing
in front of you) have to know how to respond to
certain commands, like 'draw a green box', 'Draw a
pixel' allocate memory for client images... This
in itself is NOT what you think of as "Windows". All
applications send these commands to your client.
This is done through tcp/ip, even if your
application and your client are both on the machine
in front of you.  This is VERY VERY important. The
#1 design flaw in MS Windows is the lack of this
network layer in the windows system. Every X
application (any window... xterm netscape xclock)
looks at your "DISPLAY" environment variable to
find out who it should tell to draw itself. IF
your DISPLAY is set to computer1:0.0 and you are
on computer2 and you type 'xterm' it will pop up
on computer1's screen (Provided you have permission)
This is why on my computer at work I have windows
open from HP's RS6000's Sun's... Linux(when I'm
sneeky) and they all work just fine together.
<blockquote><font color="navy">
2.Do all window managers (like GNOME or KDE or FVWM95) run on top of X
windows? 
</font></blockquote> 
 Well, yes. Given the above you should now know
that X is the thing that draws. Anything that needs
to draw has to run "on" X.
<P> 
  BUT, we need to get a better understanding of the
window manager because I didn't tel you about that
yet. In MS Windows when a program hangs it sits
on your screen until you can kill it. There is
usually no way to move it, or minimize it. This is
design flaw #2 in windows. Every MS Windows program
has to have some code for the title bar, close,
maximize, and minimize buttons. This code is in
shared libs so you don't have to write it yourself
but never the less it IS there. In X windows the
program knows nothing about its titlebar, or the
buttons on it. The program just keeps telling X
to draw whatever it needs. Another program, the
window manager does those things (It 'Manages
windows') The window manager draws the title bars
and the buttons. The window manager also 'hides'
a window from you when it is minimized and replaces
it with an icon. The program has NO say so in the
matter. This means that even is a program is totally
locked up it can be moved, minimized, and killed.
(Sometimes not killed unless you window manager
is set to send a kill -9)
<P> 
  That being said here is the bad news. KDE and
gnome and NOT window managers. They do not draw
title bars, allow you to resize windows and stuff
like that. They are just a program that does things
like provide a button bar (which some window
managers do too) and the stuff like telling programs
how they should look.

<blockquote><font color="navy">
3.What exactly does it mean for an application to be GNOME or KDE aware?
What happens if it's not? Can you still run it? 
</font></blockquote> 
 gnome aware applications do what I was just about
to mention. They pay attention to gnome when it
tells them how to look and act. If gnome says 'you
should have a red background' they do it. Also
there will be some advanced things like an app can
ask gnome if it can have a spell checker and gnome
can supply it with one (See CORBA stuff) KDE is
the same way minus the CORBA (I think)

<blockquote><font color="navy">
4.What exactly do the GTK+ (for GNOME) or Troll (for KDE) libraries do? 
</font></blockquote> 

  This is a hidden layer called widgets. It allows
you do say 'draw a button' rather than 'draw a box,
draw an edge on that box so it looks 3d, put some
text in that box, make sure this box looks for 
mouse clicks, if a click happens remove that 3d
stuff and put it back pretty quick'.  It would not
be a good idea to try to program complex things
without a widget set.

<blockquote><font color="navy">
5.How does the history of Linux (or UNIX) window managers compare to
that of say, the desktop given to Win98/95 users? How, specifically,
does Microsoft limit
     consumer's choices by giving them just one kind of desktop,
supposedly one designed for ease of use?
</font></blockquote> 
 
 I think you can get this from the other answers.
really the limit are...
<ol>
<li>You have to run the program on the same machine
where you want to see it.
<li>You can't choose another window manager if you
don't like the way windows works.
<li>No matter how configurable windows is, if there
is just 1 thing you need that it doesn't have built
in , there is no way to get it. With X you just
use a different wm,desktop,widget set, whatever.
</ol>
<blockquote><font color="navy">
6.What's happening with Common Desktop Environment? Is it correct that
it's not widely adopted among Linux users because it's a resource hog,
or not open
     source? 
</font></blockquote> 
 CDE what a thing driven by big Unix verdors for
their own needs. Things that start that way
get re-invented to suit everyones needs, hence
Gnome and KDE.
<P> 
  Well, when I get going I can sure waste some time.
I hope I haven't taken up too much of you time
with this. I'll leave you with just 1 thing.
<P> 
 I know hundreds of world class programmers, and
administrators who are gods on BOTH NT and Unix.
I know not a single one who prefers NT. Keep
learning until you agree, I know you will.
<P> 
--<BR> 
SOTTEK

<P> <center>--------------------------------------------------------------</center>
Date: Sat, 5 Dec 1998 09:48:43 -0600<BR> 
From: Dustin Puryear, <A HREF="mailto:dpuryear@usa.net">
dpuryear@usa.net</A> 
<blockquote><font color="navy">
desktop, and an interface. How do they differ from X windows? 
</font></blockquote> 

X windows is what sits behind it all. More or less, it controls the access to
your hardware and provides the basic functionality that is needed by the wm.
The wm controls windows, and how the user interacts with them. A desktop, such
as KDE or GNOME, provides more services than a wm. For instance, drag 'n drop
is a feature of a desktop, not a wm.

<blockquote><font color="navy">
Do all window managers (like GNOME or KDE or FVWM95) run on top of X
windows?      
</font></blockquote> 

Yes.

<blockquote><font color="navy">
What exactly does it mean for an application to be GNOME or KDE aware? What
happens if it's not? Can you still run it?      
</font></blockquote> 

They use the functions provided by GNOME or KDE, not just X.

<blockquote><font color="navy">
What exactly do the GTK+ (for GNOME) or Troll (for KDE) libraries do?     
</font></blockquote> 

GTK+ and Qt (KDE) provide the basic foundation for the desktops. For instance,
Qt provides the code to actually create a ListBox (a list of items a user can
choose). KDE just uses this code to do it's thing. Note that Qt can be used for
console apps just as well as for X apps. I'm not familiar with GTK+, so I can't
comment.

<blockquote><font color="navy">
What's happening with Common Desktop Environment? Is it correct that it's not
widely adopted among Linux users because it's a resource hog, or not open
source? 
</font></blockquote> 

Well, Red Hat used CDE for a while (I think). However, they could not actually
fix anything with it since it's was closed source. They have since moved to
GNOME. However, there are some CDE clones out there.
<P> 
--<BR> 
Dustin 

<P> <center>--------------------------------------------------------------</center>
Date: Sat, 05 Dec 1998 19:45:34 +0000<BR> 
From: "Richard J. Moore", <A HREF="mailto:moorer@cs.man.ac.uk">
moorer@cs.man.ac.uk</A> 
<P> 
Hope this helps:

<blockquote><font color="navy">
1.Terminology: The differences (if any) among a GUI, a window manager, a desktop, and an interface. How do they differ from X windows? 
</font></blockquote> 

A GUI (Graphical User Interface) is a general term that refers to the
basic
idea of using a graphical representation to communicate with the user
(as
opposed to a text based interface such as the command line).
<P> 
A window manager is an idea that is really specific to X windows. In X
windows the policy for how windows are arranged and controlled is
separated
from the core system, the window manager is a special program that does
this.
This allows people to choose a window manager that has a policy that is
good 
for them, and allows new window managers to be created that have
different
policies. The window manager draws window borders, minimise/maximise
buttons etc.
You can mix and match window managers, but most GUI toolkits for UNIX
will
provide one as standard.
<P> 
A desktop is a metaphor used by many GUIs it is basically an attempt to
make computers fit in with the way people would work in an office. The
hope
is that this will make it easy for people to operate the system. The
term is
also used more generally to refer to a combination of window manager,
toolkit
(the box of parts used by the programmers of the system), and other
'standard'
applications. If a set of tools is referred to as a desktop, it
generally means
that it will provide all of these things, and that they will be designed
to
work together in an integrated fashion. An example would be KDE
(http://www.kde.org/).
<P> 
An 'interface' is just an abbreviation for a user interface. This is the
view that a program presents to the user, and (for a graphical user
interface)
is usually composed of widgets such as menus, checkboxes, push buttons
etc.
<P> 
Finally X windows is a toolkit for actually getting all of the widgets
etc.
onto your screen. It provides routines for drawing lines, circles etc.
and
these are used to draw everything you see. X windows is a lot more
complicated
and powerful than this really, but it would take a book to explain why.
If you
want this level of detail then look at the O'Reilly X windows
programming series.

<blockquote><font color="navy">
2.Do all window managers (like GNOME or KDE or FVWM95) run on top of X windows? 
</font></blockquote> 

Yes, though neither Gnome nor KDE is a window manager. Both of these are
complete
desktops and though they provide window managers, there is much more to
them than
just that. The window manager in KDE is called kwm.

<blockquote><font color="navy">
    3.What exactly does it mean for an application to be GNOME or KDE aware? What happens if it's not? Can you still run it? 
</font></blockquote> 

It means the app will talk to the window manager to get support for
special
features of that environment, and that it will use the standard look and
feel
of the desktop. If the app is not compliant then it should still work
fine,
but the special features will be unavailable. The other situation is
using
a compliant app with a nonstandard window manager, in this case too the
app
should work fine (but some feature may be unavailable). It is possible
for
window managers other than the standard ones to be compliant, for
example
there is now a KDE-Compliant version of the BlackBox WM.

<blockquote><font color="navy">
    4.What exactly do the GTK+ (for GNOME) or Troll (for KDE) libraries do? 
</font></blockquote> 

They provide tools such as edit widgets, menus etc. in a form that makes
them
easy to reuse. The library used by KDE (called Qt, see
http://www.troll.no/qt)
is written in a language called C++ and also provides tools for
programmers such
as routines for platform independent access to files and directories
etc. GTK+
is similar though it has narrower scope and is written in C.

<blockquote><font color="navy">
    5.How does the history of Linux (or UNIX) window managers compare to that of say, the desktop given to Win98/95 users? 
</font></blockquote> 

Badly :-(

<blockquote><font color="navy">
     How, specifically, does Microsoft limit consumer's choices by giving them just one kind of desktop, supposedly one designed for ease of use? 
</font></blockquote> 

They restrict the system to a single view which may not be the best one
for the
job. Allowing people the choice means people can choose the best for
them, even
if it is nonstandard. The downside of this is that if everyone uses a
different
window manager then supporting and managing the system becomes
difficult. In
between these two options is the choice made by most UNIX toolkits -
have a
standard window window manager, but allow people to use another if they
want.

<blockquote><font color="navy">
    6.What's happening with Common Desktop Environment? Is it correct that it's not widely adopted among Linux users because it's a resource hog, or not open
      source? 
</font></blockquote> 

CDE is based on Motif which is an old C toolkit that is (IMHO) looking
rather
dated. Motif is very slow, and as you say is very resource hungry. In
the
past linux versions have often been buggy, though this situation may
have
improved. I found CDE itself to be quite poor, it works fine if you
spend
all your time in a single application (such as emacs), but using the
drag
and drop, and some of the built in tools was generally problematic. IMHO
It is unlikely to take off on linux because it it pricey and of lower
quality than the free alternatives.
<P> 
--<BR> 
Rich



<P> <hr> <P> 
<!--================================================================-->
<center>Published in <I>Linux Gazette</I> Issue 36, January 1999</center>
<P> <hr> <P> 
<!--================================================================-->
<A HREF="./lg_toc36.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_mail36.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<A HREF="./lg_bytes36.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>

<P> <hr> <P>
<h5>This page maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A><BR> 
Copyright &copy; 1999 Specialized Systems Consultants, Inc. </H5> 
<P> 
<!--startcut ==========================================================-->
</body> 
</html>
<!--endcut ============================================================-->