home *** CD-ROM | disk | FTP | other *** search
/ Der Mediaplex Sampler - Die 6 von Plex / 6_v_plex.zip / 6_v_plex / DISK3 / DFUE_97 / FAQ00391.ZIP / FAQ00391.TXT
Text File  |  1993-04-07  |  62KB  |  1,559 lines

  1. Archive-name: linux-faq/part3
  2. Last-Modified: 93/03/28
  3. Version: 1.17
  4.  
  5. *********************************************************
  6. *       *
  7. *   Answers to Frequently asked questions about Linux   *
  8. *       *
  9. *********************************************************
  10.  
  11. This post contains Part 3 of the Linux FAQ (4 parts).
  12. It must be read *after* the 2 first parts. 
  13.  
  14. ===================================8<====>8============================
  15. CONTENTS (of this part)
  16.  
  17.  VI.  MISCELLANEOUS HINTS   (part3)
  18.  VII. MORE HINTS   (part3)
  19.  VIII. FEATURES   (part3)
  20.  
  21. ===================================8<====>8============================
  22.  
  23.  
  24.  
  25. VI. MISCELLANEOUS HINTS 
  26. =======================
  27. *** This section is maintained by Matt Welsh (mdw@tc.cornell.edu). Please
  28. *** mail me if you have any changes/updates/questions. Thanks -mdw
  29.  
  30. Special gcc information are located in section IX. A special section is
  31. devoted to it since it's *the* compiler of Linux. I have subsectionned
  32. this part in 3 subsections: Misc/Device Major-Minor/Serial Information.
  33.  
  34.  
  35. VI.A. Misc information
  36. ~~~~~~~~~~~~~~~~~~~~~~
  37.  
  38.   VI.01)  It seems that $#@! ported on linux don't run correctly, what
  39. do I do about reporting bugs?
  40.  
  41. ANSWER: (Matt Welsh) It's possible that either the program itself has a bug
  42. or that Linux has a problem that this program brings out. :) But first check
  43. that the size of the file(s) corresponds that of the files(s) on the FTP
  44. sites where it's available. If they're different, either you downloaded them
  45. incorrectly (i.e. you forgot to turn on "bin") or whoever put them on the
  46. FTP site uploaded them incorrectly. 
  47.  
  48. If that's not the problem, then post to comp.os.linux asking about the 
  49. program, to verify that it is a bug. PLEASE: when posting possible "bug 
  50. reports" include all error and output information from running/compiling
  51. the program. Just saying "it doesn't work" isn't very helpful. Also mention
  52. your specific setup, Linux version, GCC version, etc. Some of these things
  53. depend on running under certain versions and you may have missed that
  54. information. 
  55.  
  56. Note that my "ml-linux-bugs@dg-rtp.dg.com" bug reporting list has been
  57. phased out. It turns out that Linux has so few bugs, most of which are
  58. resolved on the newsgroup or through Linus before I can accumulate them
  59. and post. :) In short: if there's a bug in Linux or in Linux-ported
  60. software, it will usually be fixed in the next patchlevel or version.
  61.  
  62.  
  63.   VI.02)  Has $#@! been ported to Linux?
  64.  
  65. ANSWER: First check out the FTP sites and read the monthly INFO-SHEET,
  66. as well as the new "Linux News" and the META-FAQ's (all of which are 
  67. either available on the FTP sites and/or posted to the newsgroup as they're
  68. written). Also check out the "Linux Project Registry" (posted to the 
  69. newsgroup and on the FTP sites) which lists ongoing/current Linux projects.
  70. Also look in the "old" Linux digests and mailing-list archives, kept on
  71. tsx-11.mit.edu and nic.funet.fi. Also, see if there's a GNU(*) version
  72. of the program you're looking for (which are available everywhere).
  73. Since Linux uses GCC as its native compiler, most GNU software ports
  74. directly to Linux without problems. If all else fails, ask on the
  75. mailing list or newsgroup if the program is ported and where it's
  76. available. 
  77.  
  78.  
  79. (*) GNU stands for GNU's Not Unix, which (besides being a recursive
  80. acronym) is a project started by the Free Software Foundation (the FSF)
  81. to write a freely distributable version of Unix.  The GNU kernel is
  82. named HURD, and is based on Mach.  It is currently being written, and is
  83. not yet done.  Many of the GNU utilities, however, are completed and are
  84. much more functional than the original Unix utilities.  Since they are
  85. freely available, Linux is using them as well.
  86.  
  87.  
  88.  
  89.   VI.03)  I've ported $#@! to Linux, what should i do to add it in the 
  90. standard distribution?
  91.  
  92. ANSWER: (Matt Welsh) First read the previous Q/A, then talk to the
  93. maintainers of the various releases (MCC interim, SLS, and so on)
  94. about including your program with those releases. The best way to make
  95. programs available to the rest of the world is to upload it to one of
  96. the Linux FTP sites (such as tsx-11.mit.edu:/pub/incoming or
  97. sunsite.unc.edu:/pub/Linux/Incoming). 
  98.  
  99. BTW Whenever you submit binaries, please think that if you link them
  100. with shared libraries, this might cause problems for those who (gasp!)
  101. don't have the shared libraries installed. You can either link them
  102. using -static, and if someone wants to build a shared version on their
  103. own machine they can get the sources (which you should also make
  104. available) and build it themself. Or else provide the shared lib.
  105.  
  106.  
  107.   VI.04)  I want to port $#@! to Linux, what are the flags?
  108.  
  109. ANSWER: Recall that Linux implements subset of SYSV and POSIX, so
  110. -DUSG and -DPOSIX work in general. 
  111.  
  112. NOTE1: SIGBUS is not there, and can be safely commented out in general.
  113. NOTE2: see section related to GCC, in the third part of this FAQ, for
  114. more details. 
  115.  
  116.  
  117. VI.B. Major/Minor device number
  118. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  119. *** This section is maintained by Rick Miller, any comments,
  120. *** suggestions, remarks should be mailed to him at <rick@ee.uwm.edu>
  121. *** Last Update: 17 Feb 1993 21:12:24 +0200
  122.  
  123.   VI.05)  What are the device minor/major numbers?
  124.  
  125.    The Linux Device List
  126.     maintained by rick@ee.uwm.edu (Rick Miller, Linux Device Registrar)
  127.      February 17, 1993
  128.  
  129. Many thanks to richard@stat.tamu.edu, Jim Winstead Jr., and many others.
  130.  
  131. Majors:
  132.  0.  Unnamed . (unknown) .... for proc-fs, NFS clients, etc.
  133.  1.  Memory .. (character) .. ram, mem, kmem, null, port, zero, cmem
  134.  2.  Floppy .. (block) ...... fd[0-1]<[dhDH]{360,720,1200,1440} or fd[01]
  135.  3.  Hard Disk (block) ...... hd[a-b]<[0-8]>
  136.  4.  Tty ..... (character) .. {p,t}ty<{S,[p-s][0-f]}><#>
  137.  5.  tty ..... (character) .. tty, cua[0-63]
  138.  6.  Lp ...... (character) .. lp[0-2] or par[0-2]
  139.  7.  Tape .... (block) ...... t[0-?] (reserved for Non-SCSI tape drives)
  140.  8.  Scsi Disk (block) ...... sd[a-h]<[0-8]>
  141.  9.  Scsi Tape (block) ...... <n>rmt[0-1]
  142. 10.  Mouse ... (character) .. bm, psaux (mouse)
  143. 11.  CD-ROM .. (block) ...... scd[0-1]
  144. 12.  QIC-tape?  (character) ..  rmt{8,16}, tape<{-d,-reset}>
  145. 13.  XT-disk .  (block) ......  xd[a-b]<[0-8]>
  146. 14.  Audio ...  (character) ..  audio, dsp, midi, mixer, sequencer
  147.  
  148. Breakdown of minors by Majors:
  149. ------------------------------
  150.  0.  Unnamed . (unknown) .... for proc-fs, NFS clients, etc.
  151.  Minors?
  152.  
  153.  1.  Memory .. (character) .. ram, mem, kmem, null, port, zero, cmem
  154.  0.  /dev/ram
  155.  1.  (block): RAM-Disk (character): /dev/mem
  156.  2.  /dev/kmem
  157.  3.  /dev/null
  158.  4.  /dev/port
  159.  5.  /dev/zero
  160.  6.  /dev/cmem
  161.  
  162.  2.  Floppy .. (block) ...... fd[0-1]<[dhDH]{360,720,1200,1440}>
  163.  Minors are [drive + [4 * type]] where drive 0-3 == A:-D: (floppy)
  164.  and type is: 0: Autodetect  4: 720k in 3.5"
  165.    1: 360k in 5.25" 1.2M 5: 360k in 5.25" 1.2M
  166.    2: 1.2M in 5.25" 1.2M 6. 720k in 5.25" 1.2M
  167.    3: 360k in 3.5"  7. 1.44M in 3.5" 1.44
  168.  
  169.  0. /dev/fd0:  Autodetected first floppy.
  170.  1. /dev/fd1:  Autodetected second floppy.
  171.  2. /dev/fd2:  Autodetected third floppy.
  172.  3. /dev/fd3:  Autodetected fourth floppy.
  173.  4. /dev/fd0d360:  360k in 5.25" 1.2M first drive
  174.  5. /dev/fd1d360:  360k in 5.25" 1.2M second drive
  175.   (You can work out the rest of the intermediates...)
  176.  8. /dev/fd0h1200:  1.2M in 5.25" 1.2M first drive
  177.  12. /dev/fd0D360 (/dev/fd0H360):  360k in 3.5" first drive
  178.  16. /dev/fd0D720 (/dev/fd0H720):  720k in 3.5" first drive
  179.  20. /dev/fd0h360:  360k in 5.25" 1.2M first drive
  180.  24. /dev/fd0h720:  720k in 5.25" 1.2M first drive
  181.  28. /dev/fd0H1440:  1.44M in 3.5" 1.44M first drive
  182.  
  183.  Naming goes like this:
  184.  fd[drive][type][size] where:
  185.   [drive]=0-3:  Just like DOS's "A:"-"D:".
  186.   [type]={d,h,D,H}:  Enlighten me.  All I can tell you
  187.        for certain is that the capital
  188.        letters represent 3.5" drives.
  189.   [size]={360,720,1200,1440} kilobytes.
  190.  
  191.  3.  Hard Disk (block) ...... hd[a-b]<[0-8]>
  192.  0.  /dev/hda (/dev/hda0):  The whole first HD, including its MBR.
  193.  1-4.  /dev/sda{1-4}:  Primary partitions on the first SCSI drive.
  194.  5-8.  /dev/sda{5-8}:  Extended partitions on the first SCSI drive.
  195.  64.  /dev/hdb (/dev/hdb0):  The whole second HD, including its MBR.
  196.  65-68.  /dev/sdb{1-4}:  Primary partitions on the second drive.
  197.  69-72.  /dev/sdb{5-8}:  Extended partitions on the second drive.
  198.  
  199.  Notes: BE *VERY* CAREFUL WITH /dev/hda AND /dev/hdb!!  These two
  200.   devices signify the *entire* *drive*, not just one partition.
  201.   The only things that use /dev/hda or /dev/hdb are things that
  202.   need to read/change the partition table (like fdisk).
  203.  
  204.   Linux doesn't order anything.  It perceives partitions in the
  205.   order in which they appear in the partition table.  Thus,
  206.   /dev/hd?1 may follow /dev/hd?2 in the cylinder numbering.
  207.  
  208.   The names of the hard drives are not the same as under Minix.
  209.  
  210.  4.  Tty ..... (character) .. {p,t}ty<{S,[p-s][0-f]}><#>
  211.  0.  /dev/tty0:  This is the currently active Virtual Console.
  212.  1-63.  /dev/tty[1-63]:  Specific virtual consoles.
  213.  64-127.  /dev/ttyS[0-63]:  Serial ports (dial-in mode).
  214.  128-191.  /dev/pty[p-s][0-f]:  PTY Masters.
  215.  192-255.  /dev/tty[p-s][0-f]:  PTY Slaves. ([0-f]=0123456789abcdef)
  216.  
  217.  Notes:  There are several constants set in the kernel sources which
  218.   can be changed to compile a more customized kernel.  They're
  219.   found in [/usr/src]/linux/include/linux/tty.h:
  220.  
  221.    NR_CONSOLES The number of virtual consoles.
  222.    NR_SERIALS The number of serial lines.
  223.    NR_PTYS  The number of pty's.
  224.  
  225.  5.  tty ..... (character) .. tty, cua[0-63]
  226.  0.  /dev/tty:  the tty that owns the process calling it.
  227.  64-127.  /dev/cua[0-63]:  Serial ports (dial-out mode).
  228.  
  229.  6.  Lp ...... (character) .. lp{0-2} or par{0-2}
  230.      Parallel (printer) ports.  (Increasable in include/linux/lp.h)
  231.  0.  /dev/lp0
  232.  1.  /dev/lp1:  Same as MS-DOS's "LPT1:" on my machine...
  233.  2.  /dev/lp2
  234.  
  235.  Notes: The number of line printers is defined by LP_NO which is
  236.   found in [/usr/src]/linux/include/lp.h.
  237.  
  238.   Even if you only have one printer port, Linux may still call
  239.   it /dev/lp1 (rather than /dev/lp0).  Watch during boot-up to
  240.   see how it recognizes your printer port.
  241.  
  242.  7.  Tape .... (block) ...... t[0-?] (reserved for Non-SCSI tape drives)
  243.  This one's getting old.  No minor numbers are yet assigned.
  244.  It's not even in the source code.  Maybe it never will be...
  245.  
  246.  8.  Scsi Disk (block) ...... sd[0-?] or sd[0-?][0-?]
  247.    Minors numbers are [[16 * DiskNR] + partition]
  248.    
  249.   The system autoconfigures at boot time, and the kernel simply
  250.  assigns numbers (DiskNR) to each disk as it finds them, starting with 0.
  251.  
  252.    0.  First HD (/dev/sda), whole drive including Master Boot Record.
  253.    1-4.  Partitions on the first HD.
  254.    5-15.  Logical partitions within an extended partition on first HD.
  255.    16.  Second HD (/dev/sdb), whole drive including Master Boot Record.
  256.    17-20.  Partitions on the second HD.
  257.    21-31.  Logical partitions within an extended partition on second HD.
  258.  etc.
  259.  
  260.  
  261.  9.  Scsi Tape (character) .. st[0-?]
  262.  
  263.        For a SCSI tape, each physical device has two minor numbers
  264.  that are associated with it.  If you have two tape drives, then
  265.  minors 0 and 1 will refer to the first and second drives and the
  266.  tape will be rewound when the device is closed.  Minor numbers 128
  267.  and 129 (i.e. 128+n) also refer to the first and second physical
  268.  drives, but the tape will not be rewound after closing the device.
  269.  If you have one tape, you could create the devices with the
  270.  following commands: 
  271.  
  272.  mknod /dev/rmt0 c 9 0
  273.  mknod /dev/nrmt0 c 9 128
  274.  
  275. 10.  Mouse (character) .. bm, psaux (mouse)
  276.      (MGR may require that /dev/mouse be linked to one of these...)
  277.   NOTE THE CHANGES TO DIFFERENTIATE MOUSE TYPES!
  278.   (Please implement these in the distributions.)
  279.  0.  /dev/logibm:  (Logitec?) bus mouse
  280.  1.  /dev/psaux:  PS/2 mouse port
  281.  2.  /dev/inportbm:  MicroSoft "InPort" bus mouse
  282.  3.  /dev/atibm:  ATI XL bus mouse
  283.  
  284.      If you don't feel like re-configuring your applications, you can
  285.      just leave the old "/dev/bm" lying around.
  286.  
  287. 11.  CD-ROM .. (block) ...... scd[0-1]
  288.  0.  /dev/scd0:  The first (detected) SCSI CD-ROM.
  289.  1.  /dev/scd1:  The second (detected) SCSI CD-ROM.
  290.  ("There's not much more to it than that" says Eric Youngdale.)
  291.  
  292. 12.  QIC-tape?  (character) ..  rmt{8,16}, tape<{-d,-reset}>
  293.      (I really don't have much info on this one... )
  294.  6.  /dev/rmt8:  QIC-120
  295.  8.  /dev/rmt16 (/dev/tape):  QIC-150
  296.  136.  /dev/tape-d:  (It has something to do with being 128+8... ?)
  297.  255.  /dev/tape-reset:  For resetting only.
  298.  
  299. 13.  XT-disk .  (block) ......  xd[a-b]<[0-8]>
  300.      XT (8-bit) hard disk controller devices.
  301.  Minor numbers are assigned in the same manner as for the
  302.  normal Hard Drive devices ("/dev/hd*").
  303.  
  304. 14.  Audio ...  (character) ..  audio, dsp, midi, mixer, sequencer
  305.  0.  /dev/mixer:  Mixer and Control Device
  306.  1.  /dev/sequencer:  FM-synthesizer and Midi
  307.  2.  /dev/midi:  (for future use)
  308.  3.  /dev/dsp:  Digitized voice (DAC/ADC)
  309.  4.  /dev/audio:  (Reserved for compatibility with Sun)
  310.  
  311. NOTE: all the numbers given are in decimal form (the one you can see if
  312. you perform ls -l on /dev). 
  313.  
  314.  
  315.   VI.06)  Could some one give me indication about the meaning of the
  316. IRQ's ?
  317.  
  318.  
  319. ANSWER: (alawrenc@sobeco.com:)
  320. Standard IRQ's :
  321.  IRQ 0 - Timer
  322.  IRQ 1 - Keyboard
  323.  IRQ 2 - Slave 8259 (AT)
  324.  IRQ 3 - COM 2 / COM 4
  325.  IRQ 4 - COM 1 / COM 3
  326.  IRQ 5 - (XT) Hard Disk, (AT) LPT2
  327.  IRQ 6 - Floppy Disk
  328.  IRQ 7 - LPT1
  329.  
  330. AT only IRQ  8 - Real Time Clock
  331.  IRQ  9 - Re-direct to IRQ 2
  332.  IRQ 10 - Not Defined
  333.  IRQ 11 - Not Defined
  334.  IRQ 12 - Not Defined
  335.  IRQ 13 - 80287
  336.  IRQ 14 - Hard Disk (AT)
  337.  IRQ 15 - Not Defined
  338.  
  339.   VI.07)  (Chuck Boyer) Could some one clear up the devices meaning?
  340.  
  341. ANSWER: (Jim Winstead Jr)
  342. >port
  343.  
  344. This allows programs to access the hardware ports directly.  Not
  345. something you generally mess around with much.
  346.  
  347. >ptyp0-3
  348. >ptypa...tty
  349.  
  350. These are the pseudo-tty 'master' devices.  Each pty connection uses
  351. a slave-master set of tty devices.
  352.  
  353. >tty0...
  354.  
  355. tty[1-8] are the virtual consoles associated with Alt-F[1-8].  tty0 is
  356. the current virtual console (so writing something to tty0 goes to the
  357. current vc).
  358.  
  359. >tty64 I've figured out is the modem connection
  360.  
  361. Yes, that would correspond to COM1 under DOS.  However, the tty64 name
  362. is obsolete - ttys[1-4] should be used instead.
  363.  
  364. >ttyp0...
  365. >ttypa...
  366.  
  367. These are the pseudo-tty 'slave' devices.
  368.  
  369. >ttys1...
  370.  
  371. These are the serial devices.  ttys1 corresponds to COM1 under DOS,
  372. ttys2 corresponds to COM2, etc.
  373.  
  374.  
  375.  
  376. VI.C Special Serial
  377. ~~~~~~~~~~~~~~~~~~~
  378. *** This section is maintained by Jim Gifford
  379. *** (jgifford@attmail,world.std}.com 
  380. *** Last update October 1992.
  381.  
  382. Douglas E. Quale:
  383. This has come up a couple of times already (including the case of
  384. serial mice as well), but for the record stty acts on stdin not
  385. stdout.  Old stty's (from V7 through BSD4.3) used stdout, but this is
  386. suboptimal and doesn't conform to POSIX.  The GNU stty you are likely
  387. using on Linux uses stdin, as does the stty distributed with BSD
  388. Networking Release 2.  (Also, ``stty -a'' is more informative about
  389. possible parameters, although it's pretty hard for me to remember what
  390. 90% of that stuff does without refering to the man page.)
  391. Jim Gifford:
  392. However, there are a few older (of mysterious origin) stty's that work
  393. on stdout(I have one myself!)
  394.  
  395.   VI.08)  Is there a list somewhere where I can get help with serial
  396.    communications under Linux?
  397.  
  398. ANSWER: (Jim Gifford -- jgifford@world.std.com)
  399.    There is a list for the discussion of serial communications under
  400.    Linux.  It is for problems, drivers, new developments, etc... with
  401.    the Linux serial devices. The list is: linux-serial@stolaf.edu
  402.    To join, send mail to linux-serial-request@stolaf.edu
  403.    I hope that this list will prove beneficial to the improvement of
  404.    Linux. This list is maintained by Michael K. Johnson as
  405.    linux-serial-request@stolaf.edu
  406.  
  407.   VI.09)  When I run kermit under Linux, I get "Warning, Read access
  408.    to lock directory denied". What am I doing wrong?
  409.  
  410. ANSWER: Nothing, you just need to create /usr/spool/uucp (kermit 4.6?)
  411.    or /usr/spool/locks (this is for the kermit5A), which is where kermit
  412.    like to lock files.
  413.  
  414.   VI.10)  What are the major, minor numbers for the serial ports under linux?
  415.  
  416. ANSWER:   Major 4, Minor :
  417.    64      /dev/ttys0      - com1
  418.    65      /dev/ttys1      - com2
  419.    66      /dev/ttys2      - com3
  420.    67      /dev/ttys3      - com4
  421.  
  422.   VI.11)  can anyone give me a sample /etc/inittab entry for login
  423.    from a pc attached to serial line /dev/ttys2?
  424.  
  425. ANSWER: "Humberto speaking :), updated by Rick Miller"
  426.    First set up the modem to turn off echo and enable auto answer, I do
  427.    this in kermit by connecting to the modem and typing "ate0s0=1"
  428.    followed by enter (w/o quotes). Then setup inittab to spawn getty on
  429.    the modem
  430.    ttys2:vt100:/etc/getty -m 1200 ttys2
  431.   (Replace "vt100" with the name of the /etc/termcap entry for the
  432.    terminal type you will use, or use "dumb" if you don't have one.)
  433.  
  434.    Then it should work. Some modems can be permanently set to disable
  435.    echo and set auto answer, see your manual.
  436.  
  437.    Jim Weigand says:
  438.      disable all messages. This will prevent getty from hanging up
  439.    your modem.
  440.    Set       For:
  441.    ATE0      No echo
  442.    ATQ1      No messages
  443.    ATS0=2    Answer 2nd ring
  444.    ATS7=60   1 minute to answer (shorter if 2400 baud)
  445.    You can use kermit to set these. Do an AT&W to save for power-up.
  446.  
  447.    Michael K. Johnson says:
  448.    If you would rather not save these commands as defaults to come up
  449.    on power-up, perhaps because you want to use your current modem
  450.    settings under a DOS communications package, you can also shove
  451.    these command out ttys? from /etc/rc (or /etc/rc.local) using
  452.    the command:
  453.       echo "<modem_settings>" > /dev/ttys?
  454.  
  455.   VI.12)  How do I set parameters like parity for serial login?
  456.  
  457. ANSWER: Use stty and redirect input from the serial line.
  458. ex: stty parodd < /dev/ttys2 which gives ttys2 odd parity.  
  459. type stty -a to get an idea of possible parameters. 
  460. Or 'man stty' as well :)
  461.  
  462.  
  463.  
  464.  
  465. VII. MORE HINTS 
  466. =============== 
  467.  
  468. This part try to keep track of the different information
  469. that appeared in comp.os.linux and on the list since beginning of
  470. March. I tried to update it for KERNEL_VERSION, so there might be some
  471. mistakes. Moreover take care to use the correct library and include
  472. stuff, and the ad-hoc gcc you use !!!
  473.  
  474.  
  475.  VII.01)  How can I backup my Hd under Linux ?
  476.  
  477. ANSWER: I know at least two ways. One possibility is tar and mtools,
  478. another possibility is the diskbackup/diskrestore of Diamano Bolla
  479. (digest37 vol. #2) which saves big hd to floppies using the
  480. stdin/stdout. These utilities have been uploaded to the major sites in
  481. file disksplit.tar.Z.
  482. An example usage (Roger Binns) is:
  483.  
  484. tar cvf - bin dev usr etc .. | compress | diskbackup
  485.  
  486. and to restore:
  487.  
  488. diskrestore | uncompress | tar xvf -
  489.  
  490. BTW: if you are on Ethernet you could send your files via tar..|rsh (tar...)
  491. or even via NFS to a host which is regularly backed up !
  492.  
  493.  
  494.  VII.02)  Where is 'which' ?
  495.  
  496. ANSWER: It depends on the sh you are running:
  497. in bash  'type -path'
  498. in tcsh  it's a builtin
  499.  
  500. for rc you can try the following (untested by me) script from
  501. Kevin Brown: 
  502.  
  503. #!/bin/sh
  504. for i in `echo $PATH | sed 's/:/ /g'` ; do
  505.   for j in ""$@" ; do
  506.  if test -x "$i/$j" ; then
  507.     echo "$i/$j"
  508.          fi
  509.   done
  510. done
  511.  
  512.  VII.03)  How to use setterm: for the novice?
  513.  
  514. ANSWER:The setterm utility provides access to most of Virtual Consoles
  515. (VCs) functionality.  You can set your screen up to blank at 10
  516. minutes using:
  517.          setterm -blank 10
  518.  
  519. You can set colors, and clear the screen.  For a full list of commands,
  520. just type "setterm" with no arguments.
  521.         
  522. There are a few tricks with the screen dumper can really make VCs go a 
  523. long way.  Here are a few of the common ones that I use:
  524.  
  525.   setterm dump
  526.  
  527. Dumps the contents of the current VC to screen.dump (in the current dir).
  528.      
  529.   setterm dump 4
  530.     
  531. Dumps the contents of VC 4 to screen.dump
  532.   
  533.   setterm -file mydumpfile -dump 4
  534.  
  535. Dump the contents of VC 4 to the file mydumpfile
  536.  
  537.   setterm -file /dev/tty0 -dump 4
  538.  
  539. Dumps the contents of VC 4 to the current VC.
  540.      
  541.   setterm -file /dev/tty4 -dump
  542.  
  543. Dumps the contents of the current VC to VC 4.
  544.   
  545.   setterm -file /dev/ttys1 -dump
  546.     
  547. Dumps the contents of the current VC to the serial port.
  548. Handy if you are logged on and want to paste a screen full without
  549. having to resort to doing a file transfer.
  550.  
  551.   setterm -file mydumpfile -append 4
  552.     
  553. Appends to instead of overwriting the dump file.  Useful if you
  554. have several screens you wish to concatenate.
  555.  
  556.  
  557.  VII.04)  I've tried clear/reset which exist on most of unix but it
  558. doesn't work, have I missed something? 
  559.  
  560. ANSWER: setterm -clear or setterm -reset will solve your missing.  For
  561. clear, you can also write a small script (which use the cl: part of
  562. /etc/termcap wrt your TERM), or use bash where ctrl-l will do it for
  563. you.
  564.  
  565.  
  566.  VII.05)  I know there are VC, but where is the setterm stuff?
  567.  
  568. ANSWER: It's in the current distribution (i.e. on the images), the
  569. source can be found in virtcons.tar.Z at nic.
  570.  
  571.  
  572.  VII.06)  I know there are shared libraries; does there exist an easy
  573. way to check an executable for sharing ? 
  574.  
  575. ANSWER: (Claude Morin:) There exists at tsx-11 ldd.tar.Z If you follow
  576. the instructions, you will be able to type "ldd <executable>" to List
  577. the Dynamic Dependencies of the executables. In other words 'ldd'
  578. prints the name of the shared libraries needed by the executable,
  579. nothing appears for static one. 
  580.  
  581. ANSWER: (Josh Yelon & HJ Lu) - very old binaries.
  582. (J.Y.) An executable which shares a library is linked with an
  583. (ordinary, non-shared) "stub" version of the library. One of the first
  584. thing this stub does (when the executable is run) is to ask the kernel
  585. to load the (big) "shared version" of the library (which is usually
  586. named /lib/lib.XX.XX) The upshot of this is that in the code for the
  587. stub (part of the executable), is the string "/lib/lib.XX.XX"; which
  588. can be searched by using 'strings' or 'grep'.
  589. (HJ. L.) if you have gcc2.11a or later the shared image is changed to
  590. /lib/libxxxx_vyy_zzz. And you should better use nm to find
  591. "__shared_lib" (nm failed on stripped executable). You can also write 
  592. a function for "file", which can even check the version number ....
  593.  
  594.  VII.07)  What is the rdev program provided in the images?
  595.  
  596. ANSWER: It's a program from Werner Almesberger of ETH. With no
  597. argument it prints the first line of /etc/mtab. With one argument, a
  598. boot-image, it prints the device configured as the root device, and
  599. with two arguments, a boot image and a device, it sets the device as
  600. default root in the specified image.
  601.  
  602.  
  603.  VII.08)  How to start Linux from drive B?
  604.  
  605. ANSWER: There is a DOS utility called boot_b.exe (look at DOS ftp).
  606. Another simple way is to open the box and invert the cables.
  607.  
  608.  
  609.  VII.09)  The program boot_b works fine /but/ once the first disk is
  610. read the system go back to the first drive, any hints?
  611.  
  612. ANSWER: Yes, change the bootimage in just the same way that you change
  613. it to boot on the hard drive, execept that the major/minor pair is
  614. different. All these information are in the file INSTALL-0.10.
  615. Remember that if you use a sun or other endian machine, you will need
  616. to reverse the byte order when you run the filter program (also in the
  617. same file).
  618.  
  619.  
  620.  VII.10)  How can I get Linux to boot directly from the harddisk?
  621.  
  622. ANSWER: (Rick) The best option right now is LILO version ALPHA.8. It
  623. has been generally agreed that the days of using "shoelace" are at an
  624. end. See Section III of this FAQ for LILO information.
  625.  
  626.  VII.11)  I use shoelace, but I want to change my root partition, what
  627. is the process to get rid of it? 
  628.  
  629. ANSWER: With Norton utility you can put back a standard boot sector.
  630. Another possibility is to restore the old boot sector (the one you
  631. should have backup *before* installing shoelace).
  632.  
  633.  
  634.  VII.12)  Sometimes, when I want to remove a directory, I get an error
  635. message, is it a (known) bug?
  636.  
  637. ANSWER: No, There is no bug at all, you probaly have another shell 
  638. on another VC whose working directory is either the one you try to 
  639. remove, either a subdirectory of it.
  640.  
  641.  
  642.  VII.13)  I'm looking for init, getty, login, passwd stuff, where 
  643. can I find them? 
  644.  
  645. ANSWER: You should find it in shadow.tar.Z (only sources), at least 
  646. at tsx in the usr.bin directory. Many people have reported some troubles 
  647. with the *OLD* shadow-passwd (shadow-bin.tar.Z and shadow-src.tar.Z, so 
  648. do not use them anymore); an alternative might be the mcc-interim
  649. which contains standard passwd binary. There is also the Peter Orbaek's
  650. admutil-1.?.tar.Z and poeigl-1.?.tar.Z which contains source for
  651. shutdown, su, chsh, passwd and a system V init compatible. 
  652.  
  653.  
  654.  VII.14)  How can I setup a user account other than root ?
  655.  
  656. ANSWER: You can either use the adduser program, either do it manually.
  657. In the later case, you have to:
  658. a) edit /etc/passwd as root and add a line of the following format:
  659. user:passwd:uid:gid:user name:home directory:login shell
  660.  
  661. user is the login name; uid is the numeric user id, it should be
  662. unique; gid is the numeric group id, this number should correspond to
  663. an entry in /etc/group. The passwd field should be left blank 'cause
  664. it is stored in an encrypted form [to set this field just use the
  665. passwd program].
  666. example
  667. faq::200:5:Marc-Michel:/home/faq:/bin/sh
  668. b) Still as root, you shoud now create the home directory and set the
  669. correct ownership.
  670. mkdir /home/faq
  671. chown faq /home/faq
  672. chgrp 5 /home/faq
  673.  
  674.  
  675.  VII.15)  I've been trying to get Linux to run on my [3/4]86 box. It
  676. can't even boot. Any suggestions?
  677.  
  678. ANSWER: The most common error/problem is writing the bootimage to a
  679. low density disk. It fits, but the bootstrap code will only recognize
  680. high density disk. So try to format explicitely disk as high density:
  681. - for 3.5",  'format a: /n:18 /t:80 '
  682. - for 5.25", 'format a: /n:15 /t:80 '
  683.  
  684.  
  685.  VII.16)  Does there exist games, languages (other than C), and
  686. anything which make the system more friendly?
  687.  
  688. ANSWER: Yes, among other things there are rogue and yahtzee; TeX;
  689. Prolog, Perl.. but in general, if you want some extra tool port it to
  690. Linux this is also a good beta-testing exercice. 
  691.  
  692.  
  693.  VII.17)  Whenever I use uemacs 3.1X on a symlink, the symlink does
  694. not exist anymore, why?
  695.  
  696. ANSWER: (Tristram Mabbs) Since ue3.10, uemacs uses 'safe save' mode,
  697. writing the file to a temporary and moving it OVER the original. In
  698. the process, this deletes the original. To prevent this just add the
  699. following in your emacs '.rc' file: set $ssave FALSE
  700.  
  701.  
  702.  VII.18)  I have an SVGA, but Linux detect an EGAc/EGAm; is it normal?
  703.  
  704. ANSWER: (Jim Winstead) This is correct actually. You have an EGA+ card
  705. (SVGA) with a Color/Mono monitor. The only four possibilties are EGAc,
  706. EGAm, *MDA and *CGA (according to the code in
  707. kernel/chr_drv/console.c).
  708. The true test, if Linux detects your video card, is if you press
  709. <RETURN> at the "Press <RETURN> to see SVGA- ..." boot-time message.
  710. If you have a SVGA  recognized card, it will ask you to choose a
  711. screen size. If not detected, the default is 80x50 mode. 
  712. BTW if you have no SVGA, press the <space> and you are in 80x25 mode.
  713.  
  714. If you have dowloaded the kernel, you can automatically skip this
  715. query at boot-time if you set the SVGA_MODE variable in the main
  716. Makefile before compiling a new bootimage. 
  717.  
  718.  
  719.  VII.19)  How can I change the keyboard repeat rate?
  720.  
  721. ANSWER: (Michael K Johnson) In boot/setup.S there are the lines:
  722. ! set the keyboard repeat rate to max
  723.  mov ax,#0x0305
  724.  mov bx,0x0000
  725.  int 0x16
  726.  
  727. If you don't want to change the repeat rate at all, just comment out
  728. these lines. If you want something in the middle, change the
  729.  mov bx,0x000
  730. by mov bx,0x??yy
  731. where ??yy is determined by (Ralf Brown's interrupt list)
  732. bh= delay value (0x00 = 250ms to 0x03= 1000ms (one sec))
  733.  this is the delay before the repeat is performed
  734. bl= repeat rate (0x00 =30/sec to 0x1f=2/sec; 0x0c=10/sec [default])
  735.  
  736.  
  737.  VII.20)  I compiled fdformat.c and ran it on 1.44Mb and 1.2Mb, the
  738. results are unreadable, any clue? 
  739.  
  740. ANSWER: (M. Pereckas) fdformat only low-level formats the disk. to use
  741. the fdformatted disk with DOS filesystem, run mformat on the disk.
  742. Mformat writes DOS filesystem information but is unable to low-format
  743. :). In order to put a Linux filesystem on a (low)formatted disk you
  744. have to mkfs it. 
  745.  
  746.  VII.21)  Is it possible to disable the 3-fingers salute
  747. (ctrl-alt-del) ?
  748.  
  749. ANSWER: Yes, in kernel/sys.c you can read the following:
  750.  
  751. /*
  752.  * this indicates wether you can reboot with ctrl-alt-del: the deault is yes
  753.  */
  754. static int C_A_D = 1;
  755.  
  756. there is also a small utility written by Linus in digest242 vol#2
  757.  
  758.  
  759.  VII.22)  Could some one explain the information provided at boot-time?
  760.  
  761. ANSWER: (Jim Winstead Jr)
  762. > serial port at 0x03f8 is a 16450 
  763. > serial port at 0x02f8 is a 16450 (what's that the uart chip?)
  764.  
  765. Right, the last number should either be 8250, 16450, 16550, or 16550a,
  766. and on the two 16550 models, it will report that FIFO's have been
  767. disable (16550) or enabled (16550a).
  768.  
  769. > 8 virtual consoles (that's how many alt-F's I can get going?                 
  770. >      but only F1-4 actually work)
  771.  
  772. You can get sessions running on Alt-F[1-8], but the 'standard'
  773. /etc/inittab only runs getty/login on Alt-F[1-4].  You can start
  774. sessions on the other consoles by using 'doshell' or adding lines to
  775. /etc/inittab.
  776.  
  777. > 4 pty's (are these the consoles F1-4?)
  778.  
  779. No, those are 'pseudo' ttys, which programs like MGR use to simulate
  780. tty connections.  That's probably a gross over-simplification, but it
  781. gives you the general idea, I think.  :)
  782.  
  783. > p_init: lp1 exists (0) (is that the (l)ine (p)rinter?)
  784.  
  785. Right.
  786.  
  787.  
  788.  VII.23)  What is the meaning of files ended by .T.Z (or .taz) ?
  789.  
  790. ANSWER: The suffix Z is for compressed files (to uncompress them use
  791. the command `uncompress file.Z`).
  792. The suffix T indicates a "tar file" the usual suffix is tar but, the
  793. 14 chars filename limit of the Minix filesystem makes it cumbersome to
  794. use .tar.Z (to untar a file ended by .T, use the command 
  795. `tar options file.T` (see the man page for more details).
  796.  
  797. For the .taz file, change them as .T.Z and go-ahead.
  798.  
  799.  VII.24)  What is the meaning of files ended by .T.z (or .tpz) ?
  800.  
  801. ANSWER: The suffix z is for files compressed with the
  802. gzip utility, which is being used more frequently because it provides
  803. better compression.  These can be uncompressed with the `gzip -d
  804. file.z` command.
  805.  
  806.  
  807.  VII.25)  I have upgraded the kernel from XX to YY (XX > YY), however the
  808. login screen still says YY.
  809.  
  810. ANSWER: Just change the message in one of these files: /etc/issue and
  811. /etc/motd. The former contains the message before the login, the later
  812. is the one after you are logged in.
  813.  
  814.  VII.26)  What is doshell good for ?
  815.  
  816. ANSWER: It's an old program provided in the early Linux version (0.12)
  817. when the getty was not already there, it spawns a shell on any tty's.
  818. (Mattew Gream): I do this quite often ( getty on tty1, 2, 3 and my
  819. rc.local spawns a shell on tty4 as follows
  820.   '/usr/bin/doshell /dev/tty4 /bin/tcsh &'
  821.  
  822.  
  823.  VII.27)  I don't have the kernel sources, how can I change the keyboard
  824. language?
  825.  
  826. ANSWER: You can use the fixkbd program written by Laurent JULLIARD
  827. (Laurent_JULLIARD@grenoble.hp.com). Its purpose is to fix the keyboard
  828. map used in your kernel image. It works more or less a la "rootdev"
  829. (or rdev). It can be found on tsx-11.mit.edu in
  830. /pub/linux/binaries/sbin/fixkbd.tar.Z.  
  831.  
  832.  
  833.  VII.28)  Does there exist a possibility to track down the source of
  834. kernel pannic messages ?
  835.  
  836. ANSWER:  Here's info from Linus on how to track down the source
  837. of kernel panic messages. The values for EIP, address, and so on are
  838. JUST EXAMPLES: the EIP, EFLAGS, etc. can be anything.
  839.  
  840. The lines after ">" were written by me; the responses by Linus.
  841.  
  842. > Unable to handle kernel paging request at address C000000A
  843.  
  844. This means something in the kernel tried to access kernel memory at
  845. address 0x00A (the C0000000 offset is due to the kernel starting at
  846. virtual address 0xC0000000).  The first page of kernel address space is
  847. unmapped to find these kinds of incorrect references (it's probably a
  848. NULL dereference to a structure member at offset 0xA). 
  849.  
  850. > Oops: 0002
  851.  
  852. Error code. This tells you if it's a read or write (forget which ritgh
  853. now, and don't have any books handy)
  854.  
  855. > EIP: 0008:000290D2
  856.  
  857. This is where it happened: segment 0008 (kernel code segment) and offset
  858. 0x290D2 into the kernel. So to find this, you generally do something
  859. like
  860.  
  861.  nm /usr/src/linux/tools/system | sort | less
  862.  
  863. and search for the function that contains the address 0x290D2.
  864.  
  865. > EFLAGS: 00010087
  866. > fs: 0017
  867.  
  868. Eflags and fs when the exception happened. You usually don't need this.
  869.  
  870. > base: C0000000, limit: 000A0000
  871. > Pid: 0, process nr: 0
  872.  
  873. In what process the exception happened. This is the swapper, which also
  874. means the thing is fatal (other processes you can just kill). That it's
  875. in the swapper process probably means that it's an interrupt that did
  876. it, as the swapper doesn't really do anything.
  877.  
  878. > 89 50 04 c7 03 00 00 00 00 c7
  879.  
  880. This is the instruction that resulted in the error.  I usually
  881. disassemble them by hand and see what it is, then I try to find out
  882. exactly where in the function this assembly sequence comes up (probably
  883. by compiling the .c file to a .s file and looking around). 
  884. Alternatively you can just run 'gdb' on /usr/src/linux/tools/system, but
  885. gdb has some problems. 
  886.  
  887. > task[0] (swapper) killed: unable to recover
  888. > kernel panic: Trying to free up swapper memory space
  889. > In swapper task - not syncing
  890.  
  891. This is just to tell you not to expect anything from the kernel any
  892. more: linux cannot go on without the swapper task.
  893.  
  894. > How can I decode the numbers in the message? 
  895. > Also, note that sometimes the "Unable to handle..."
  896. > message is followed by the "Oops: 0002" block, but
  897. > the last message is sometimes something else (i.e. not
  898. > always a "task[0] (swapper)...." message, but something
  899. > from the TCP driver in this case. 
  900.  
  901. It depends on where it happened. If it's an interrupt, it can
  902. essentially happen in any task (all interrupts are handled in the task
  903. that happens to be currently active), while "normal" code happens in the
  904. task that calls it.
  905.  
  906.  
  907.  
  908.  
  909. VIII. FEATURES 
  910. ==============
  911.  
  912. VIII.01)  I've read that linux has virtual consoles, what must I do to
  913. get them?
  914.  
  915. ANSWER: Yes there are, you can access them with the left <alt>-key
  916. together with <Fn>-key. With the Linux Images distribution, 4 consoles
  917. are available, getty runs on them.  
  918. Notice that they are NOT accessible when running X (contrary to some
  919. commercial unices).
  920.  
  921. VIII.02)  When Linux boots, I get the following message "8 virtual
  922. consoles"; how can I acess to the 5-8 vc's ?
  923.  
  924. ANSWER: If you want the getty to run on the 5-8, you should add the
  925. corresponding entries in /etc/inittab. You can also just run sh on
  926. them by using the doshell soft.
  927. And then in either case, the ALT-F[5-8] will access the corresponding
  928. vc.  
  929.  
  930. VIII.03)  What kind of shell is /bin/sh ?
  931.  
  932. ANSWER: It's the Bourne Again Shell, bash-1.12.3 and 
  933. compilation was straightforward, just "make" 
  934. that's all or nearly. 
  935. BTW There does exist different shells for Linux, these are:
  936. bash, rc, zsh, tcsh and pdksh (a korn shell).
  937.  
  938.  
  939. VIII.04)  Does there exist a man page for **** ?
  940.  
  941. ANSWER: Download man.tar.Z from your favorite linux ftp site, there is
  942. most of the fileutils man page -- either **** or g****, example there
  943. is nothing on ld, but there is for gld :) --, check the whatis
  944. database provided. The files in the cat1 dir are pre-formatted man
  945. pages that the man program can use. Quite recently the man pages for
  946. section 2 have been written (thanks Drew) and can be found, at least
  947. at tsx-11 in /pub/linux/docs/man/man2.tar.Z 
  948.  
  949. Also manpages are in the SLS on the b? disks.
  950.  
  951. BTW there is nroff and groff for Linux. Cawf 2.0 works just
  952. fine for simple man pages, and a partial ms support too. 
  953.  
  954.  
  955. Moreover Michael Johnson is the coordinator for man pages under Linux,
  956. he is looking for volunteers, so contact the DOC Channel.
  957.  
  958. VIII.05)  Is there a simple man package (groff is too big):
  959.  
  960. ANSWER: "Cawf -man" also "fm -m" (Al Clark) tsx-11 in
  961.   /pub/linux/binaries/usr.bin/fm.tar.Z 
  962.  
  963.  
  964. VIII.06)  What are the editors available in linux?
  965.  
  966. ANSWER: Right now there are uemacs-3.11, elvis-1.4 (1.5). 
  967. Gnu Emacs is there, read the section devoted to it in the 4th part of
  968. this FAQ. Also the port of mg (micro gnu) has been done and can be
  969. found at least at athos.rutgers.edu (128.6.4.4) 
  970. in pub/linux, mg is the binary and mg.tar.Z is the sources file. You
  971. can also find a PD ed, and elvis has an ex mode. Finnally there are
  972. joe, vile-3.11, elle (Elle Looks Like Emacs), Xedit and aXe.
  973.  
  974. VIII.07)  Does there exist a printer package for Linux?
  975.  
  976. ANSWER: (R. Miller) Yes.  The "plp" package is currently available
  977. under the directory [/pub/linux]/BETA/plp on tsx-11 and its mirrors.
  978. You may also print things manually like so:  cat filename > /dev/lp1 
  979. (Note that though "/dev/lp0" exists, most people find that their
  980. printer is on /dev/lp1.  Use whatever the kernel says that it detects
  981. in the boot-up messages.) 
  982.  
  983. VIII.08)  Are uucp, mail, and/or USENET news available for Linux?
  984.  
  985. ANSWER: (Vince Skakan)
  986.    Yes !!!  At this time, the following (at least) have been
  987.         ported to Linux:
  988.  
  989.         Package name            version
  990.         ------------            --------
  991.         taylor uucp             1.03
  992.         elm                     2.3-pl11
  993.         smail                   3.1.28
  994.  
  995.         C-news                  12/22/91
  996.         tin                     1.1pl4
  997.         trn                     2.2
  998.         nn                      6.4.18
  999.  
  1000. [...coming soon - Expect an announcement in the near future concerning
  1001. the packages above being made available in binary form in the SLS
  1002. distribution and in source form from sunsite.unc.edu and other Linux
  1003. archive sites...]
  1004.  
  1005. If you are interested in the last uucp features, join the UUCP channel
  1006. (see  part1 of this FAQ for more details about the multi channels list).
  1007.  
  1008. VIII.09)  How do I make swapping work?
  1009.  
  1010. ANSWER: Quite simply, you need the swapon and the mkswap binaries.
  1011. Then you can choose between a swap partition or a swap file.
  1012. The mkswap is used to write the "swap signature", whilst the swapon
  1013. binary is to activate the swapping. 
  1014.  
  1015. First of all you need a partition :), I assume it's the second of your
  1016. first disk namely /dev/hda2, and it's 10MB big
  1017. A) swap partition:
  1018. you have to indicate it's a swap area, this is done via mkswap
  1019. (instead of mkfs) which needs the name of the partition and the size
  1020. in blocks (a block is 1Ko big); the optional -c flag is for bad block
  1021. checking. So for our example you should perform:
  1022. mkswap [-c] /dev/hda2 10000
  1023. Then you need to indicate that you want linux to use the swap area,
  1024. this is done via swapon. In general it is set in the /etc/rc file,
  1025. just put the following entry:
  1026. /bin/swapon /dev/hda2
  1027. It can also be achieved via the /etc/fstab file
  1028. B) swap file:
  1029. The process is quite close; you need a partition, and a swap file.
  1030. Assume that I prefer a swap area of 4MB (I want to keep some place in
  1031. /dev/hda2). I need first to "dd" the file.
  1032. dd if=/dev/hda2 of=/swap_file bs=1024 count=4096
  1033. bs stands for block size, and count is the number of blocks
  1034. then I have to put the "swap signature" on that file:
  1035. mkswap /swap_file 4096
  1036. At this point, you should 'sync', just to be sure the signature is
  1037. effective. And finally add an entry in the rc file:
  1038. /bin/swapon /swap_file
  1039.  
  1040.  
  1041. VIII.10)  When I boot I get one of the following messages:
  1042. "Unable to find swap signature" or "Bad swap-space bitmap"
  1043.  
  1044. ANSWER: You probably forgot to make your swap-device, use the mkswap
  1045. command. 
  1046.  
  1047.  
  1048. VIII.11)  How do I know if it is swapping?
  1049.  
  1050. ANSWER: You will notice it :)) First of all, Linux tells you at boot
  1051. time, "Adding swap: XXX pages of swap space", and if you start running
  1052. out of memory, you will notice that the disk will work overtime, and
  1053. things slow down. Generally a 2Meg RAM will make the system swap
  1054. constantly while running gcc, 4 Meg will swap occasionnaly when
  1055. optimizing big files (and having other things active, such as make).
  1056. Also, the command 'free' (from the ps package) reports total enabled
  1057. swap space and current swap use.
  1058.  
  1059.  
  1060. VIII.12)  How is it possible to remove a swap file?
  1061.  
  1062. ANSWER: Simply perform a rm on that file, and remove the swapon of
  1063. your /etc/rc file.
  1064.  
  1065.  
  1066. VIII.13)  How is it possible to remove a swap device?
  1067.  
  1068. ANSWER: mkfs the device, and remove the swapon of your /etc/rc file.
  1069.  
  1070. VIII.14)  How much swap space do I need ?
  1071.  
  1072. ANSWER: Linux does not perform real swapping, it's rather paging (see
  1073. below for a more complete explanation). The swap area is *added* to
  1074. the memory and can be viewed as virtual memory, so choose the size you
  1075. need, example:
  1076.  
  1077.   8MB RAM + 6MB swap => 14MB virtual memory
  1078.  
  1079. VIII.15)  Could someone explain the swap process on Linux?, is it
  1080. swapping or paging ?
  1081.  
  1082. ANSWER: (Linus) Linux uses swap as /additional/ memory, one page of
  1083. the swap-space is used for the good-page bitmap and the swapspace
  1084. signature. 
  1085. In fact Linux does only paging, no swaping in the meaning "write out
  1086. one whole process to disk".
  1087. The reason it's called swapping is that Linux used paging for memory
  1088. management on a low level since the very beginning, but didn't page to
  1089. disk at all until 0.12. 
  1090.  
  1091. VIII.16)  Is demand paging different from paging and How ?
  1092.  
  1093. ANSWER: (Linus) Demand-paging is really "demand loading of
  1094. executables" and is totally independent of the page-swapping
  1095. algorithms, although they have similarities. When Linux strts up a
  1096. process, no actual code space is loaded: I let the page exceptions
  1097. load in the executable as needed. Thus Linux demand-loads the code and
  1098. initialized data it needs.
  1099. Demand-loading has very good points: (a) it simplifies the exec system
  1100. call; (b) it means page sharing between that have excuted the same
  1101. file is easy to implement; (c) it cuts down on the amount of memory
  1102. required. When Linux runs out of real memory, it starts to lock for
  1103. pages it can swap out, but if it notices that the page is clean, it
  1104. just forgets about it, and demand-loads it when it's needed again.
  1105. Thta means that swap-file isn't needed as much, especially when
  1106. running big binaries such as gcc, where the code-pages can be
  1107. demand-loaded as you wish.
  1108.  
  1109. Point (c) means that even without any swap space, you can usually run
  1110. slightly larger programs that your memory setup would actually permit.
  1111. I've noticed this while running X and doing a kernel compilation +
  1112. something else wshen I've forgotten to turn on swapping: free reports
  1113. 0 page available but things still work, although performance is
  1114. slightly down... 
  1115.  
  1116. VIII.17)  Is there any way to tell how much swap space you are using
  1117. or have left? 
  1118.  
  1119. ANSWER: The free program provided with the ps package handles this.
  1120.  
  1121.  
  1122. VIII.18)  I have a 2Megs box, but "free" reports only 1Meg why?
  1123.  
  1124. ANSWER: (Linus:) "free" doesn't concern with the memory the kernel has
  1125. allocated for itself. In other words what you see is the *user* memory
  1126. available. The kernel has taken the low 1Meg for it's use (~250Ko for
  1127. it and the rest for buffer cache and kernel data structures); for big
  1128. memory machine it could be even 2Megs.
  1129.  
  1130. VIII.19)  What tape drives work with Linux ?
  1131.  
  1132. ANSWER: (24 sept. P. Riipinen)
  1133. - There is a working QIC-02 device driver for Linux, supporting (at
  1134.   least) Everex/Wangtek cards.
  1135. - There are additional patches for the QIC-02 to support Archive
  1136.   SC402/499R. You can find them in /pub/linux/alpha/qic-02 at tsx-11
  1137.   There are some bugs in the driver but you can backup.
  1138. - Newer drivers are all SCSI, so check the SCSI section in this FAQ.
  1139.  
  1140. VIII.20)  Is there only the %$#@ keyboard ?
  1141.  
  1142. ANSWER: There are Dannish, Finnish, French, German, Uk, US and DVORAK 
  1143. keyboards. Set it in the main Makefile of the kernel sources, then  
  1144. (re)compile the kernel again. Make sure the files in kernel/chr_drv
  1145. directory are recompiled.   
  1146.  
  1147.  
  1148. VIII.21)  (special FINNISH/US) I booteed up with the new image and
  1149. everything work except that some keyboard keys produce wrong
  1150. characters. Does anyone know what is happening?
  1151.  
  1152. ANSWER: Since 0.95a images are US product (and so are US-keyboard
  1153. oriented), BUT linux sources are FINNISH product, and so the default
  1154. keyboard is set to be FINNISH. The solution is in the previous Q/A.
  1155.  
  1156.  
  1157. VIII.22)  Does there exist shared libs ?
  1158.  
  1159. ANSWER: (H.J. Lu, hlu@eecs.wsu.edu, 09/01/92)
  1160.  
  1161. The shared library under Linux started at 0.12. Peter MacDonald
  1162. collaborating with Linus made the first generation of shared library,
  1163. which is the base of the classic shared library which is no longer widely
  1164. used.
  1165.  
  1166. The kernel support of shared library under Linux is system call
  1167.  
  1168. extern int uselib (const char *__filename);
  1169.  
  1170. which loads an executable image with fixed entry point into memory,
  1171. just like the ordinary executables.
  1172.  
  1173. In crt0.s, a function which can find out if and which shared images
  1174. are needed and loads them is invoked before `main ()' is called if
  1175. necessary. David Engel and I developed a way to tell the loader which
  1176. shared images have to be loaded, utilizing the similar technique used
  1177. in global constructor in g++ 2.x with the help from GNU binary
  1178. utilities.
  1179.  
  1180. In the classic Linux shared library, we build a big executable image 
  1181. for several libraries and make sure no external variables outside of
  1182. the participating libraries are referenced. Then we can get the
  1183. absolute addresses of all the global variables defined in the
  1184. libraries used to build that executable image. After that, we make a
  1185. stub library for each participating library which just has the
  1186. absolute addresses of all the global variable in it.
  1187.  
  1188. For each shared image, there must be one and only one .o file, which
  1189. defines a global variable containing version, name and entry point of
  1190. the shared image, and a dummy global data. Among those libraries used
  1191. to build the shared image, there must be one library which will always
  1192. be referenced whenever any other library is referenced. We put this .o
  1193. file into the stub library for that library and add a special symbol
  1194. to each of the components of the stub library in order to make sure
  1195. that this .o file is always linked in if any of the participating
  1196. libraries are linked.
  1197.  
  1198. In gcc 2.2.2d, jump table, developed by David Engel, was introduced in 
  1199. the shared library. At the beginning of each shared image, there is
  1200. a table in which every library function has a fixed entry address and
  1201. the instruction at that address is a jump which will lead to the
  1202. real library function. So we can change the library function without
  1203. changing the corresponding entry address of the jump table. For the
  1204. global data we put them at the beginning of data section of the shared
  1205. image. We have to separate them from text code and link them in fixed
  1206. order. It is very hard to maintain the same addresses for the global
  1207. data when library is changed. After the global data are set up properly
  1208. and some spaces are left for possible future changes (that is a very
  1209. tough procedure.), it isn't too difficult to maintain.
  1210.  
  1211. Starting with libc.4.3, a form of dynamic linking developed by Eric
  1212. Youngdale was introduced into the shared libraries.  As part of this,
  1213. the tools that were used to generate the sharable libraries were
  1214. completely redone which made the job of building the libraries much
  1215. easier, and thus the libX*.so.3.0 libraries were made as DLL jumptable
  1216. libraries.
  1217.  
  1218. VIII.23)  Why do I need dynamic linking.
  1219.  
  1220. ANSWER: The best way to illustrate this is with a simple example of
  1221. what happens without dynamic linking.
  1222.  
  1223.  #include <stdio.h>
  1224.  
  1225.  int errno;
  1226.  FILE * foo;
  1227.  
  1228.  main(){
  1229.   foo = fopen("/usr/bin/foo","w");
  1230.   printf("foo: %x errno: %d\\n",foo, errno);
  1231.  }
  1232.  
  1233. Assume this program is run by a non-root user. Normally you would
  1234. expect that the open will fail because the user does not have
  1235. permission to write to /usr/bin - this means that fopen() would return
  1236. NULL, and errno would contain 13, which means EACCES - Permission
  1237. denied. If you link this to a normal jump table library, it prints
  1238.  
  1239.  foo: 0  errno: 0
  1240.  
  1241. Now consider the following nearly identical program:
  1242.  
  1243.  #include <stdio.h>
  1244.  
  1245.  extern int errno;
  1246.  FILE * foo;
  1247.  
  1248.  main(){
  1249.   foo = fopen("/usr/bin/foo","w");
  1250.   printf("foo: %x errno: %d\\n",foo, errno);
  1251.  }
  1252.  
  1253. The results for this program are:
  1254.  
  1255.  foo: 0  errno: 13
  1256.  
  1257. Why does this happen???. First of all you must realize that in the
  1258. first program errno is not declared external, and thus storage will be
  1259. allocated in the data segment for the variable. Unfortunately there
  1260. is no way to tell libc this, and libc has it's own storage for errno.
  1261. Thus libc writes the result in one location and you are looking in the
  1262. other. In the second program errno is declared extern, and thus no
  1263. storage will be allocated. The linker will see the need for a
  1264. definition of errno, and it will find one in libc. Thus in the second
  1265. example the user program is reading the same memory location that the
  1266. library stored the answer in.
  1267.  
  1268. This is of course a simple example. There are more complicated
  1269. examples involving programs that want to redefine a library function
  1270. and these can lead to quite bizarre behavior which is difficult to debug.
  1271.  
  1272. With dynamic linking, both of the above programs yield the same
  1273. (correct) result.
  1274.  
  1275. VIII.24)  How does dynamic linking work under linux?
  1276.  
  1277. ANSWER:  Basically, to implement dynamic linking we need to route all
  1278. function calls to global functions through the jump table. We also
  1279. need to make sure that all global data is accessed indirectly through
  1280. a pointer. The actual libraries do not really look very much
  1281. different from the actual jump table libraries that we are currently
  1282. using, but there are additional pointers to the global data in the
  1283. sharable image that are used internally by the library to access all
  1284. global data. There are also additional symbols in the stub library
  1285. that are defined as the address of the various pointers, and are used
  1286. by the linker to help determine whether there is a pointer or a jmp
  1287. instruction that needs to be fixed up.
  1288.  
  1289.  The linker has one new important task with dynamic linking.
  1290. It watches for duplicate definitions of symbols, and if the
  1291. second definition is in a sharable library, it makes a note of it as a
  1292. conflict that needs to be resolved at run time. The linker puts a list
  1293. of all of these conflicts into a table and makes it available to crt0
  1294. through the variable __SHARABLE_CONFLICTS_.
  1295.  
  1296.  At run time, crt0 (through the function __dynamic_resolve)
  1297. will go through and fix up all of the pointers that need to be fixed.
  1298. Let us say for example that you define your own malloc function in a
  1299. program - in this case at run time the startup code will actually
  1300. modify the jmp instruction in the jump table so that it points to the
  1301. malloc function in your program, not the one in the library.  The
  1302. library will never refer to the malloc function directly, but it will
  1303. always be referenced through the jump table - in this way we ensure
  1304. that there will only be one function named malloc that is used by a
  1305. given program.
  1306.  
  1307.  If you were to run the first example program in the "Why do I
  1308. need dynamic linking" answer, then the pointer in the library that
  1309. corresponds to the variable errno will be modified so that it points
  1310. to the errno variable that is in your program.  The library itself
  1311. will never use errno directly - it will always use it via the special
  1312. pointer variable.  In this way we ensure that all references to the
  1313. variable errno both in your program and in the sharable library will
  1314. reference the same memory address.
  1315.  
  1316. VIII.25)  Does Linux work for SCSI drives?
  1317.  
  1318. ANSWER: Yes since v0.96. At tsx-11.mit.edu in /pub/linux/ALPHA/scsi, you
  1319. will find the last SCSI alpha/beta version and also a special SCSI
  1320. FAQ, read it, it  contains the latter information than the one provided
  1321. in the SCSI section. You should, also, contact the linux-scsi list or
  1322. directly drew@cs.colorado.edu  
  1323.  
  1324.  
  1325. VIII.26)  Linux is supposed to work with ESDI drive. However I have
  1326. trouble with my Magtron MT-4115E (Joincom controler), any clue?
  1327.  
  1328. ANSWER: (Linus) Some harddisk don't like linux (even though they
  1329. should). Maybe not a bug but a deficiency.
  1330. (Mika) I had to remove the printk "unexpected hd interrupt" statement
  1331. in hd.c because I was getting so many of those messages. Be warned
  1332. that if there is any read error the system just hangs, even the
  1333. ctrl-alt-del won't work. You should be able to use your ESDI drives if
  1334. you could live with those nuisances.
  1335.  
  1336. VIII.27)  How does one go about applying a patch to Linux ?
  1337.  
  1338. ANSWER: (Drew Eckhardt) In the unix world most of distribution are in
  1339. source form. This includes the operating system. To apply a patch, you
  1340. apply it with the 'patch' program to the affected sources. The patch
  1341. program takes as input the differences between the old and the new
  1342. version. After patching you need to recompile the sources.
  1343.  
  1344. Assume I want to apply a patch enclosed in the file XXX. First of all
  1345. I will look at the top of XXX, where the file affected is identified.
  1346. This may have aleading path attached to it. Either cd out to the
  1347. "root" of the patch, ie if I see
  1348. linux/kernel/blk_drv/blk.h
  1349.  
  1350. I would cd into /usr/src 
  1351. (assuming it's the place where I can find linux/kernel...) 
  1352. and then patch as follows
  1353. patch -p0 < whatever_place/XXX
  1354.  
  1355. or, you can specify a number of path components to strip from the
  1356. path. If I am in the blk_drv directory patching would be
  1357. patch -p3 < whatever_place/XXX
  1358.  
  1359.  
  1360. VIII.28)  There are a lot of patches available (ps patch, NFS patches,
  1361. CD-ROM patches ...) can I be fairly confident the subsequent patches will
  1362. work?
  1363.  
  1364. ANSWER: This is not true yet for the current version; but it will be
  1365. so I kept it :) 
  1366. No you can't, patching is a real beta tester art :)).  People are not
  1367. working on the same patched release, so you have to check if the
  1368. patches you already applied works on the same kernel part, if not,
  1369. /great/, just apply them. If yes, check if there is an order, patch
  1370. creator knows that, and (should) try to warn patch user (in other
  1371. words: beta tester) otherwise you should edit the patch files (and
  1372. possibly make a brief note to others on this list/newsgroup or even a
  1373. cdiff) before applying them, another solution is to keep cool and wait
  1374. for the next version of Linux where, in general, the modifications
  1375. have been done but this behavior is /not/ Linux helpful.
  1376.  
  1377.  
  1378. VIII.29)  I got the patches on some ftp sites, and applied them to the
  1379. kernel and tried to compile. It didn't !!. Are the patches buggy?
  1380.  
  1381. ANSWER: Before remake, just do a make clean in the directories
  1382. involved by the patches. This will force a rebuild of the .o and .a
  1383. files. 
  1384. If you have a RCS running on your source tree, did you checked a
  1385. patched version of the files changed before /any/ CO either by you or
  1386. make
  1387.  
  1388. Finally, make sure the patches succeded. Normally, failed patches on a
  1389. file FILE will leave a FILE# file. Moreover you will get a "chunk
  1390. failed" message. It is possible to capture the output while patching,
  1391. with the following:
  1392.  
  1393.  patch -p0 < patchfile | 2>&1 patch.result | more
  1394.  
  1395.  
  1396. VIII.30)  What is VFS?
  1397.  
  1398. ANSWER: (Ted) Linux 0.96 already has Virtual FileSystem, which means
  1399. that it acts as a filesystem switch. It makes it easy for someone to
  1400. design another filesystem format and include it in the Linux kernel
  1401. along with the standard minix filesystem format. So it /enables/
  1402. someone to design a robust filesystem which would have some nice
  1403. properties (no 14 chars file name limitation, nor 64Meg limit), and
  1404. could be included in the kernel in such a way that both the Minix and
  1405. the new one could be mounted at the same time. This solves the
  1406. uncompability problem; since the root disk could still use the Minix
  1407. filesystem, while the hardisk could be using the new one.
  1408.  
  1409.  
  1410.  
  1411. VIII.31)  What's about Bus Mice ?
  1412.  
  1413. ANSWER: (Nathan I. Laredo) Since the Linux v0.96c-pl2 the kernel does
  1414. support LOGITECH and BUS MICE 
  1415. If you are unsure that you have a bus mouse or not, check to see if
  1416. your mouse card has a selection for a sample rate switchable between
  1417. 30Hz and 60Hz (or possibly 25/50Hz), if it does not, then it is NOT a
  1418. true  bus mouse (InPort mice for example will not work with this
  1419. driver). 
  1420. To create a bus mouse device:
  1421. mknod /dev/mouse c 10 0
  1422.  
  1423.  
  1424. VIII.32)  What's about TeX ?
  1425.  
  1426. ANSWER: The primary site for Linux TeX is 129.78.66.1, this is 
  1427. P. Williams' site in Australia. The stuff at tsx-11 was posted by 
  1428. T. Dunbar  who does support/maintain the dvilj stuff.
  1429.  
  1430.  
  1431. VIII.33)  What's about LILO ?
  1432.  
  1433. ANSWER: (Werner Almesberger)
  1434. LILO  -  Generic Boot Loader for Linux ("LInux LOader") 
  1435.  
  1436. This is an ALPHA test release of a new boot loader. Be sure to have
  1437. some means to boot your system from a different media if you install
  1438. LILO on your hard disk.
  1439.  
  1440. Features
  1441. --------
  1442.  
  1443. - does not depend on the file system. (Tested with Minix, EXT FS and MS-DOS
  1444.   FS.)
  1445. - can be used to boot from floppies and from hard disks.
  1446. - can replace the master boot record.
  1447. - can boot non-Linux systems (MS-DOS, DR DOS, OS/2, ...) and unstripped
  1448.   kernels.
  1449. - supports up to 16 different boot images that can be selected at boot
  1450.   time. Root and swap disk/partition can be set independently for each
  1451.   image.
  1452. - boot sector, file map and boot images can be all on different disks or
  1453.   partitions.
  1454.  
  1455.  
  1456. Restrictions and known problems
  1457. -------------------------------
  1458.  
  1459. - SCSI disks are not fully supported yet. (Still waiting for some kernel
  1460.   changes.) (Should work in current release - EY).
  1461. - booting other operating systems doesn't seem to work everywhere. If
  1462.   everything but booting a non-Linux OS from LILO works on your system,
  1463.   you should boot LILO by BOOTACTV and select the alternate OS with the
  1464.   latter as a temporary work-around.
  1465. - booting non-Linux systems from the second hard disk ("D:") is not yet
  1466.   supported.
  1467.  
  1468. Please send all bug reports to almesber@nessie.cs.id.ethz.ch
  1469.  
  1470.  
  1471. VIII.34)  What's about MGR ?
  1472.  
  1473. ANSWER: (General Information grabbed from various sources)
  1474. There is a MGR channel available , contact the request adress with
  1475. help in the body: linux-activists-request@niksula.hut.fi 
  1476. The stuff can be found at tsx-11 in pub/linux/packages/MGR
  1477. In brief:
  1478.  
  1479. MGR provides:
  1480.  - multiple overlapping windows
  1481.  - multiple fonts
  1482.  - text and graphics in each windows
  1483.  - a simple popup menu package
  1484.  - a client/server model 'a la' X
  1485.  - independance from any peculiar networking technology
  1486.  
  1487. MGR consist of a server process and some clients. Each client has his
  1488. own window, and can create subwindows. Clients communicate with the
  1489. server via a bidirectionnal channel. A C library is provided.
  1490.  
  1491. When a new window starts, it is as a terminal emulator running the
  1492. shell; for more information you can grab the mgr-man.out from
  1493. bellcore.com 
  1494.  
  1495. The information hereafter appeared on the MGR channel on 19th Jan. 
  1496. > From: u31b3hs@POOL.informatik.rwth-aachen.de
  1497. > Subject: MGR 0.53
  1498. >
  1499. >
  1500. > MGR, version 0.53 for Linux and SunOS (Coherent unfinished yet).
  1501. >
  1502. > Unpack the src* stuff under in /src/lbin/mgr and the usr* stuff in 
  1503. > /usr/mgr.  I splitted things that way for making it easier to ftp
  1504. > them and carry them home.  If you don't like these paths, then use
  1505. > others, but remember to edit the Configfile after generating it. 
  1506. > YOU NEED TO INSTALL ALL FILES FOR COMPILING.
  1507. >
  1508. > This is a beta release for programmers, there are no binaries.  It
  1509. > makes my work available for people who either also work on MGR and
  1510. > like to get new sources and for adventerous beta testers.  WARNING:
  1511. > I assume using Linux 0.99.2 and GCC 2.3.3.
  1512. >
  1513. > There is some new m4 code to generate menus.  It is more powerful
  1514. > than menu(1), but a little harder to use.
  1515. >
  1516. > MGR is currently being ported to Coherent 4.0, but this version
  1517. > doesn't include everything yet.  There is already a beta version
  1518. > running on Coherent, although not too stable yet.
  1519. >
  1520. > For questions, write to the mailing list, channel MGR.  Please be
  1521. > sure to talk about the latest version of MGR plus having read the
  1522. > README files in the directories containing the problem.
  1523. >
  1524. > You got this stuff from ftp.thp.uni-koeln.de:pub/linux/mgr or from 
  1525. > tsx-11.mit.edu:~ftp/pub/linux/packages/MGR, which is a mirror of the
  1526. > Cologne directory.
  1527.  
  1528. VIII.35)  I have successfully compiled MGR, but when I try to run the
  1529. program I get "can't find mouse" or "already in use", any clue?
  1530.  
  1531. ANSWER: try the following "mgr -m /dev/ttys1" if the mouse is on
  1532. the serial 1. Another possibility is to link /dev/mouse with
  1533. /dev/ttys1 (assuming your mouse is on serial 1). Or if it's a bus
  1534. mouse, "mknod /dev/mouse c 10 0" once.
  1535.  
  1536. VIII.36)  Any tips for MGR?
  1537.  
  1538. ANSWER: Well, I have tried it on my 386Sx Ega/Vga; the screen is Ok
  1539. but the Logitech mouse I have is not well recognized.
  1540.  
  1541. BTW check the major/minor number for pty's; they should be character
  1542. device with 4 as major and 128 and bigger as minor:
  1543. ptyp0 c 4 128
  1544. ptyp1 c 4 129
  1545. ...
  1546. ttyp0 c 4 192
  1547. ttyp1 c 4 193
  1548.  
  1549. VIII.37)  What's about X11 ?
  1550.  
  1551. ANSWER: See the section XII. devoted to X11 in this FAQ.
  1552.  
  1553.  
  1554.     ===================8<==========>8================
  1555.  
  1556.  
  1557. -- 
  1558. Send submissions for comp.os.linux.announce to: linux-announce@tc.cornell.edu
  1559.