home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / KERNELS / LODLIN15.ZIP / LOADLIN / MANUAL.TXT < prev    next >
Encoding:
Text File  |  1994-09-05  |  47.8 KB  |  1,273 lines

  1.  
  2. LOADLIN and LOADLINX User Guide                                   94-08-27
  3.  
  4. ============================================================================
  5.  
  6.    LOADLIN v1.5 (C) 1994 Hans Lermen (lermen@elserv.ffm.fgan.de)
  7.  
  8.    This program is free software; you can redistribute it and/or modify
  9.    it under the terms of the GNU General Public License as published by
  10.    the Free Software Foundation, either version 2 of the License or
  11.    (at your option) any later version.
  12.  
  13.    This program is distributed in the hope that it will be useful,
  14.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.    GNU General Public License for more details.
  17.  
  18.    You may have received a copy of the GNU General Public License
  19.    along with this program; if not, write to the Free Software
  20.    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  
  22.  
  23. ============================================================================
  24.  
  25.  
  26.  
  27.       CONTENTS
  28.       ========
  29.  
  30.  
  31. 1.    Why use LOADLIN or BOOTLIN (and not LILO) ?
  32.  
  33. 2.    Why LOADLIN if you already have BOOTLIN ?
  34.  
  35. 3.    How to use LOADLIN
  36. 3.1.  What you need
  37. 3.2.  Booting from the DOS prompt
  38. 3.2.1 Quick start
  39. 3.2.2 Quick help
  40. 3.2.3 Starting Linux from a batch file (LINUX.BAT)
  41. 3.2.4 Floppys and Ramdisks
  42. 3.2.5 System constraints
  43. 3.2.6 Patches for the kernel ?
  44. 3.3   Booting from CONFIG.SYS
  45. 3.3.1 Example of a CONFIG.SYS file
  46. 3.3.2 Constraints in CONFIG.SYS syntax
  47.  
  48. 4.    The LOADLIN command line parameters
  49. 4.1   Maximum length of the command line
  50.  
  51. 5.    If you have problems
  52. 5.1.  Example problem 1
  53. 5.2.  Example problem 2
  54. 5.3.  Confusion regarding device-file MINOR numbers
  55. 5.3.1 Changed device-file MAJOR number for /dev/xd
  56. 5.4.  Problems with some DOS memory managers and device drivers
  57. 5.4.1 Creating REALBIOS.INT
  58. 5.4.2 Using REALBIOS.INT
  59. 5.4.3 High loaded Drivers and high located data
  60. 5.4.4 Problems detecting V86
  61. 5.5.  Description of debug output (-v,-t,-d)
  62.  
  63. 6.    The LOADLINX pre-processor for booting UMSDOS systems
  64. 6.1.  The LOADLINX command line
  65.  
  66. 7.    Where to send comments and bug reports
  67.  
  68. 8.    Contributions and Credits
  69.  
  70.  
  71.                          --------- +++  --------
  72.  
  73.  
  74.  
  75. 1.    Why use LOADLIN or BOOTLIN (and not LILO) ?
  76.       ===========================================
  77.  
  78.       LOADLIN or BOOTLIN is the safest way to boot Linux (>0.99.14) from
  79.       your hard disk.  Most Linux-newbees are too impatient to read the
  80.       very good  but too long *)  documentation of LILO, and start using it
  81.       incorrectly ... bang !!!   Goodbye DOS.
  82.  
  83.       (FDISK /MBR is not the Superman of disk repair.)
  84.  
  85.  
  86.                               *) I must admit:
  87.                                  the LOADLIN doc also is too long !
  88.  
  89.                          --------- +++  --------
  90.  
  91.  
  92. 2.    Why LOADLIN if you already have BOOTLIN ?
  93.       =========================================
  94.  
  95.       BOOTLIN is clear and simple and very efficient.  The information found
  96.       in the source code of BOOTLIN was the base for LOADLIN.
  97.  
  98.       LOADLIN, however, can pass a "command line" to the kernel to configure
  99.       the behaviour of Linux (root device, video mode, drivers, etc.).
  100.       It also accepts a parameter file (a file containing the command line
  101.       parameters) so the 128-byte limit of the DOS command line ceases to be
  102.       a problem.
  103.  
  104.       It may be that there is a newer version of BOOTLIN (from F.Coutant)
  105.       somewhere on the internet, but I couldn't find it, so I wrote LOADLIN
  106.       from scratch and added more testing for unusual situations.  LOADLIN
  107.       is also capable of booting a UMSDOS-based system from a DOS drive (by
  108.       using the LOADLINX pre-processor utility).
  109.  
  110.       Some options (-v, -t, -d) produce debug information, so if you have
  111.       problems, you can follow what is really being done by LOADLIN.
  112.  
  113.       LOADLIN also can load out of Virtual-86 mode (which is normal when
  114.       using EMS drivers) if a VCPI server is present.
  115.  
  116.  
  117.  
  118.                          --------- +++  --------
  119.  
  120.  
  121.  
  122. 3.    How to use LOADLIN
  123.       ==================
  124.  
  125.       NOTE:
  126.  
  127.       LOADLIN is a utility which starts a "logical reload" of your machine,
  128.       causing DOS to be completely overlaid with Linux.  When you wish to
  129.       return to DOS you must use the Linux "reboot" command.
  130.  
  131.  
  132. 3.1.  What you need
  133.       -------------
  134.  
  135.       1. A 386 or higher CPU (of course!)
  136.       2. Any compressed linux kernel image  ( >0.99.14).
  137.       3. The  LODLIN15  package, which includes among other things:
  138.  
  139.           LOADLIN.EXE
  140.           MANUAL.TXT (this file)
  141.           Example parameters file, TEST.PAR
  142.           PARAMS.DOC
  143.  
  144.          The following you may need or not:
  145.           LOADLINX.EXE
  146.           BIOSINTV.SYS
  147.           REALBIOS.EXE
  148.           BOOTSECT.BIN
  149.  
  150.  
  151.  
  152. 3.2.  Booting from the DOS prompt
  153.       ---------------------------
  154.  
  155. 3.2.1 Quick start
  156.       -----------
  157.  
  158.       For the rest of this documentation I will assume that you have
  159.       unpacked  LODLIN15.TGZ  into the directory  C:\LOADLIN.
  160.  
  161.       Starting with version 1.5 all configuration steps, that where
  162.       necessary for 1.4 and below are now superfluous on allmost all machines.
  163.       A very clever guy in Spain, Javier Achirica, invented a method
  164.       to intercept the Linux setup code just before protected mode
  165.       transition. I call it the "Javier method" and it is enabled
  166.       if no configuration is done.
  167.  
  168.       At the DOS prompt you can type, for example:
  169.  
  170.          C:> CD \LOADLIN
  171.          C:\LOADLIN> LOADLIN zimage /dev/hdb1 ro vga=extended
  172.  
  173.          NOTE: Veteran LOADLIN users should use the -ja switch to disable
  174.                their BIOSINTV/REALBIOS or remove them:
  175.  
  176.                C:\LOADLIN> LOADLIN zimage -ja /dev/hdb1 ro vga=extended
  177.  
  178.       or, if you have more parameters than will fit into the 128-byte
  179.       DOS command line:
  180.  
  181.          C:\LOADLIN> LOADLIN @params
  182.  
  183.       An example params file is "test.par".    Please read it.
  184.       Currently the parameters file is not supported by LOADLINX.
  185.  
  186.       A detailed collection (extracted from kernel sources) of all current
  187.       command line parameters can be found in the file  PARAMS.DOC
  188.  
  189.  
  190.  
  191. 3.2.2 Quick help
  192.       ----------
  193.  
  194.       You can get online help and configuration analysis by typing:
  195.  
  196.          C:\LOADLIN> loadlin <enter>
  197.  
  198.       or, perhaps a bit more helpful:
  199.  
  200.          C:\LOADLIN> loadlin | more <enter>
  201.  
  202.  
  203.       You then get an output like this (from my machine) ....
  204.  
  205.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  206.       LOADLIN v1.5 (C) 1994 Hans Lermen (lermen@elserv.ffm.fgan.de)
  207.  
  208.       USAGE:
  209.         LOADLIN @params
  210.         LOADLIN [zimage_file] [options] [boot_params]
  211.           without any params, LOADLIN displays this help message.
  212.           @params:
  213.              params is a DOS file containing all other options
  214.           zimage_file:
  215.              DOS file name of compressed Linux kernel image
  216.           options:
  217.              -v        verbose, show information on params and configuration
  218.              -t        test mode, do all but starting Linux, also sets -v
  219.              -d file   debug mode, same as -t, but duplicates output to "file"
  220.                        (for -v, -t, -d please see 5.5)
  221.              -rb       search for REALBIOS before BIOSINTV
  222.              -rx       don't check REALBIOS' ROM-date
  223.                        (for -rb, -rx please see 5.4.2)
  224.              -ja       use Javier's method, disable BIOSINTV and REALBIOS.
  225.                        (please see 5.4)
  226.              -clone    use alternate CPU-check, assume we have a 486 clone
  227.                        (please see 5.4.4)
  228.              -oldxd    use old /dev/xda,xdb numbering 0xC00,0xC40,
  229.                        newer kernels ( >= 1.1.0 ) have 0xD00,0xD40.
  230.                        (please see 5.3.1)
  231.              -n        no translation for root=...  (goes into command_line)
  232.                        (please see 5.3)
  233.           boot_params:
  234.              root=xxx  filesystem to be mounted by Linux as "/"
  235.                   xxx = hex number (e.g. root=201 for /dev/fd1)
  236.                       = /dev/mmmn (e.g. root=/dev/hda2)
  237.                              mmm = fd,hda,hdb,sda,sdb...
  238.                              n   = 1..10.. decimal
  239.                              n   = 01..0a.. or 0x1..0xa.. or a..f hexnumber
  240.                        (please see 5.3)
  241.              ro        mount "/" readonly
  242.              rw        mount "/" read/write
  243.              ramdisk=x install ramdisk of size x Kbytes.  If also root=/dev/fdx,
  244.                        then LOADLIN prompts for a floppy (copied into ramdisk)
  245.                        (please see 3.2.4)
  246.              vga=xxx   vga mode (e.g. -3..0.., ask, normal, extended)
  247.              (for more boot params see file PARAMS.DOC)
  248.  
  249.       Your current DOS/CPU configuration is:
  250.         load buffer size:   0x775F0   setup buffer size:   0x1000
  251.         total memory:     0x0FE0000
  252.         CPU is in V86 mode
  253.         BIOSINTV.SYS:   NO
  254.         SetupIntercept: YES, patching setup code
  255.         stat4: VCPI_present, physmap=logmap, all OK for switch to realmode
  256.         input params size 0x0000
  257.         input params:
  258.  
  259.         LOADLIN started from DOS-prompt
  260.  
  261.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  262.  
  263.       NOTE: All LOADLIN options (such as -t,... ) MUST come before
  264.             the Linux command_line params
  265.  
  266.  
  267. 3.2.3 Starting linux from a batch file (LINUX.BAT)
  268.       --------------------------------------------
  269.  
  270.       Most DOS users have disk caching (e.g. SMARTDRV) activated.
  271.       If "write-behind" caching is supported by the cache program,
  272.       then any unwritten cache buffers MUST be flushed before
  273.       LOADLIN is called.
  274.  
  275.       Example:
  276.  
  277.        C\LOADLIN> smartdrv /C    do this to "sync" your disk (usually not
  278.                                   needed for DOS 6.2, but it doesn't hurt)
  279.        C\LOADLIN> loadlin ....
  280.  
  281.  
  282.       It would be much smarter to use a batch file something like this:
  283.  
  284.       +-------------------- start of LINUX.BAT
  285.       |
  286.       |  SMARTDRV /C
  287.       |  C:\LOADLIN\LOADLIN C:\LOADLIN\ZIMAGE root=/dev/hdb2 ro vga=3
  288.       |
  289.       +-------------------- end of LINUX.BAT
  290.  
  291.  
  292.       So you could simply type:
  293.  
  294.        C> linux
  295.  
  296.       ... and you are on the road!
  297.  
  298.       A sample LINUX.BAT file is provided with the LOADLIN package.
  299.  
  300.  
  301.  
  302. 3.2.4 Floppys and Ramdisks
  303.       --------------------
  304.  
  305.       If LOADLIN encounters  ramdisk=xxxx  together with  root=/dev/fdx
  306.       it loads the kernel image into memory, but before starting up
  307.       Linux it prompts for insertion of the root floppy.
  308.  
  309.       This enables you to boot DOS (and start LOADLIN) from the same
  310.       floppy drive as the root disk.
  311.  
  312.       Of course, this is a two-floppy boot, but with Linux becoming
  313.       bigger and bigger there will be no room on the root floppy to
  314.       hold both the kernel image and the root filesystem.  With
  315.       LOADLIN there is no need for any fancy tricks to install a
  316.       distribution when your drive configuration doesn't match that
  317.       of the distribution.
  318.  
  319.       Examples:
  320.  
  321.         LST 1.07 distribution comes only with a 3.5 inch floppy
  322.         but your drive A: is 5.25 inch.
  323.  
  324.         Slackware 2.0.0 has a big directory tree with lots of possible
  325.         drive constellations.  With LOADLIN you need only the image disk
  326.         and an appropriate root disk.
  327.         Bwt.: LOADLIN is distributed together with Slackware and will be
  328.         automatically added if installing UMSDOS.
  329.  
  330.  
  331. 3.2.5 System constraints
  332.       ------------------
  333.  
  334.       1. There must be enough memory to load the compressed kernel image
  335.          (between the start of LOADLIN and 090000h).
  336.  
  337.          The field "load buffer size" of the LOADLIN verbose output
  338.          tells you what you really have.
  339.  
  340.          The setup program and LOADLIN itself go into 090000h ... 09A000h,
  341.          therefor you MUST have 640 K byte of base memory.
  342.          Starting with Linux 1.1.43 the setup program does no longer
  343.          fit into 2 K, so it is made of variable size and will grow
  344.          over the time. Currently (1.1.47) setup is 5 * 512 bytes
  345.          long and the setup buffer of LOADLIN has 31 * 512 bytes,
  346.          so this will work for a long time.
  347.  
  348.          The field "setup buffer size" of the LOADLIN verbose output
  349.          tells you what you really have.
  350.  
  351.          The 20 K byte remaining memory on top of the 640 K are
  352.          hopefully enough for BIOS- and highloaded driver-data.
  353.  
  354.  
  355.  
  356.       2. DOS programs can be executed only in the so-called real mode
  357.          (or on >386 in virtual-86 mode (V86)).
  358.  
  359.          Linux, however, runs in protected mode, and the kernel must be
  360.          able to enter privilege level 0 (P0, supervisor mode).  However,
  361.          from V86 it is impossible to switch to protected mode P0 if the
  362.          V86 server does not allow this (as is the case with DPMI).
  363.  
  364.          Therefore:
  365.          - You must be in 86 real mode (no EMS driver, no WINDOWS, ...).
  366.              or
  367.          - You must have the VCPI server enabled in your EMS driver (still
  368.            not running WINDOWS, however).
  369.            Using EMM386 please avoid the NOVCI-option, but NOEMS doesn't hurt.
  370.  
  371.          VCPI allows P0 and is supported by most EMS drivers (if EMS is
  372.          enabled), but never under MS-WINDOWS (MICROSOFT doesn't like P0
  373.          for users).
  374.  
  375.          Physical-to-Virtual memory mapping must be identical for the first
  376.          640K of RAM, which is a given under normal conditions but which
  377.          also can be forced, typically by an EMS driver option like:
  378.  
  379.            EXCLUDE=1000-A000     (for 386MAX)
  380.              or
  381.            B=A000                (for EMM386.EXE, but normally not needed).
  382.  
  383.  
  384.          Check the manual for your EMS driver for details.
  385.          Don't worry, if something is missing LOADLIN will tell you.
  386.  
  387.          NOTE:
  388.  
  389.          May be that your VCPI server does garbage collection before
  390.          entering protected mode, so please BE PATIENT, especially
  391.          on systems with many mega bytes !
  392.  
  393.       3. Of course you must not execute LOADLIN out of Linux DOSEMU !
  394.          If you do it, fortunately DOSEMU terminates due to the
  395.          V86 check instructions (changing IOPL) with general protection fault.
  396.          So your file systems remain intact.
  397.          However, in case of starting LOADLIN out of a DOS prompt in
  398.          WINDOWS 3.0 running under Linux DOSEMU ( .. grrrr..),
  399.          ... I don't know what happens to your DOS-FAT.
  400.  
  401.  
  402.  
  403. 3.2.6 Patches for the kernel ?
  404.       ------------------------
  405.  
  406.       At this time (Linux-1.1.47) there are no special patches needed
  407.       to use LOADLIN. Starting with LOADLIN-1.5 we normally
  408.       don't need all that configuration stuff, that was needed prior
  409.       to 1.5. (see 3.2.1 and also 5.4.).
  410.  
  411.       We work around the problems we had with resident drivers and V86 mode.
  412.       But we need to intercept the Linux setup program just before
  413.       transition to protected mode. For the current kernels we can
  414.       scan the setup code at runtime and will find the exact location.
  415.       It works, but it's a dirty hack! A clean and proper solution would
  416.       be to put the interception mechanism into the setup program itself,
  417.       i.e. let the setup program support LOADLIN.
  418.  
  419.       In the directory LOADLIN\KERNEL there are some patches for setup.S
  420.       fitting in the last used kernels. I will send the patches to Linus,
  421.       and hopefully he puts them into the official kernel.
  422.       Until this happens you can apply the patches yourself, but you
  423.       need not until you use a kernel > 1.1.47, which doesn't boot
  424.       with LOADLIN.
  425.  
  426.       For you convenience you would like to apply the initmain.dif patch,
  427.       which lets Linux print the actually recieved commandline params.
  428.  
  429.  
  430.  
  431. 3.3   Booting from CONFIG.SYS
  432.       -----------------------
  433.  
  434.       Starting with DOS version 6.0 it is possible to boot different
  435.       configurations during the startup of MSDOS. This is handled at the
  436.       time of CONFIG.SYS interpretation.  Therefore this is often a good
  437.       place to put the LOADLIN/LOADLINX/Linux stuff.
  438.  
  439.       Even if you have decided to boot DOS, you can boot Linux later,
  440.       either from the DOS command line or from a batch file.
  441.  
  442.  
  443.  
  444. 3.3.1 Example of a CONFIG.SYS file
  445.       ----------------------------
  446.  
  447.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  448.  
  449.       rem If you use BIOSINTV.SYS, put it at the TOP !!! (before [MENU])
  450.       rem    DEVICE=C:\LOADLIN\BIOSINTV.SYS
  451.       rem but in most cases you won't need it
  452.  
  453.       SWITCHES=/F
  454.  
  455.  
  456.       [MENU]
  457.       menuitem=DOS, DOS boot
  458.       menuitem=LINUX_1, LINUX boot (SLS 1.03)
  459.       menuitem=LINUX_2, LINUX boot (Slackware, LST)
  460.       menuitem=LINUX_3, LINUX boot (UMSDOS, with C: as DBLSPACE'd drive)
  461.       menuitem=LINUX_4, LINUX boot from 3.5 inch floppy B:
  462.       menuitem=LINUX_5, LINUX boot (Slackware, high partition number)
  463.       menuitem=LINUX_6, Create a dump file for bug report
  464.  
  465.  
  466.       [DOS]
  467.       device=c:\dos\himem.sys
  468.       device=c:\dos\emm386.exe 2048 ram
  469.       DOS=HIGH,UMB
  470.       SHELL=C:\COMMAND.COM C:\ /e:1024 /p
  471.       ...   etc.,  etc.,  etc.
  472.  
  473.  
  474.       [LINUX_1]
  475.       shell=c:\loadlin\loadlin.exe c:\loadlin\zimage vga=ask root=/dev/hdb3
  476.  
  477.  
  478.       [LINUX_2]
  479.       shell=c:\loadlin\loadlin.exe c:\loadlin\zimage vga=-3 root=/dev/hdb2 ro
  480.  
  481.  
  482.       [LINUX_3]
  483.       rem  The UMSDOS filesystem is on NON-compressed drive D: (/dev/hdb1)
  484.       device=c:\dos\dblspace.sys
  485.       rem                     v----- we are using LOADLINX preprocessor
  486.       shell=c:\loadlin\loadlinX.exe d:\linux\zimage.{15 root=D: vga=ask
  487.       rem  This is a UMSDOS filename ---------------^^^      |
  488.       rem  This will be translated to root=/dev/... ---------+
  489.  
  490.       [LINUX_4]
  491.       shell=c:\loadlin\loadlin.exe c:\loadlin\zimage root=/dev/fd1 ramdisk=1440
  492.  
  493.  
  494.       [LINUX_5]
  495.       shell=c:\loadlin\loadlin.exe c:\loadlin\zimage root=/dev/hdb10
  496.       rem  NOTE: the partition number is decimal 10 (not 16, as the kernel would
  497.       rem        decode).  LOADLIN translates this to avoid conflicts with
  498.       rem        existing device names and MINOR numbers in /dev of Slackware
  499.       rem        distribution.
  500.  
  501.  
  502.       [LINUX_6]
  503.       shell=c:\loadlin\loadlin.exe c:\loadlin\zimage -d c:\dump.txt root=/dev/fd1 ramdisk=1440
  504.       rem                                            ^^^^^^^^^^^^^^
  505.       rem  This writes debug information to a file ---------^
  506.       rem  All is set up as usual, but Linux is not loaded and LOADLIN idles.
  507.       rem  CAUTION: Don't do this if you haven't a [MENU] in CONFIG.SYS,
  508.       rem           because you then need a DOS System floppy to boot normally.
  509.  
  510.  
  511.       [COMMON]
  512.       rem   Here we put any other "common" configuration stuff ....
  513.  
  514.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  515.  
  516.  
  517.  
  518. 3.3.2 Constraints in CONFIG.SYS syntax
  519.       --------------------------------
  520.  
  521.       1. All parameters on the "shell=" lines are converted to uppercase
  522.          by DOS, but Linux parameters are case sensitive. LOADLIN converts
  523.          the following parameters back to lowercase:
  524.  
  525.            mem=...
  526.            no387
  527.            single
  528.            auto
  529.            debug
  530.            no-hlt
  531.            reserve=...
  532.            hd=...
  533.            xd=...
  534.            bmouse=...
  535.            max_scsi_luns=
  536.  
  537.  
  538.          The following parameters are not put onto the commandline, but
  539.          converted to numeric values for the boot sector:
  540.  
  541.            vga=...
  542.            ramdisk=
  543.            ro
  544.            rw
  545.  
  546.          If the -n switch is NOT set, this applies also for:
  547.            root=...
  548.  
  549.  
  550.       2. You can bypass the uppercase/lowercase problem by using a parameter
  551.          file.   An example  CONFIG.SYS  line would be:
  552.  
  553.          [LINUX]
  554.          shell=c:\loadlin\loadlin.exe @c:\loadlin\params
  555.  
  556.  
  557.          An example parameter file is "test.par".  Please read it.
  558.          Currently the parameter file is not supported by LOADLINX
  559.          for UMSDOS systems.
  560.  
  561.  
  562.                          --------- +++  --------
  563.  
  564.  
  565.  
  566.  
  567. 4.    The LOADLIN command line parameters
  568.       ===================================
  569.  
  570.       Note that if you use a parameters file (for example  @TEST.PAR),
  571.       this must be the FIRST parameter you use on the LOADLIN command
  572.       line.  Other parameters, including the name of the zImage file,
  573.       are contained within the parameters file.
  574.  
  575.       When Linux boots it gets a runstring passed from setup
  576.       (the program that checks the basic hardware configuration
  577.       and puts the machine into protected mode ). This string, the
  578.       command line, is then checked for some well known compiled-in
  579.       keywords.  Some are used to change kernel variables (such as
  580.       mem=, root=, ro, rw, no387), some are passed to the device
  581.       drivers (such as ether=, hd=, sound=) and some (such as single
  582.       and auto) are passed as options to /etc/init (or /bin/init or
  583.       /sbin/init, whatever is found first).
  584.  
  585.       See the file "PARAMS.DOC" for details.
  586.  
  587.       Any unknown keywords of format "keyword=value" are placed in
  588.       "envp_init", which is also passed to /etc/init.  This environment
  589.       string can be checked in /etc/rc* (/etc/rc.d/rc.*).
  590.  
  591.       For example, the command "set >/etc/boot_env_string" in  rc.local
  592.       will place the contents of  envp_init  into a file which can then
  593.       be accessed by other processes.  Don't put this command in any  rc
  594.       file which gets executed before the filesystem is mounted r/w !
  595.  
  596.  
  597.  
  598. 4.1   Maximum length of the command line
  599.       ----------------------------------
  600.  
  601.       The length of a DOS command line can be 127 bytes (including
  602.       the program name).  With a params file (@param, see 3.2.2)
  603.       the length of the string passed to the kernel can in theory be
  604.       2047 bytes, but the string is held in a temporary place and must
  605.       be copied by the kernel to a save static buffer in init/main.
  606.       This forces the maximum length to a compiled-in constant.
  607.  
  608.       In kernel versions below Linux 1.0.5 there is a small problem
  609.       (in init/main.c).  The static buffer in  main.c  is only 80 bytes.
  610.       LOADLIN compacts the parameters, but too many parameters may cause
  611.       the kernel to hang at boot time, because the length is not checked.
  612.  
  613.       Starting with Linux 1.0.5, "command_line[]" is set according to the
  614.       def COMMAND_LINE_SIZE 256.  The incoming command line is also checked
  615.       for size. If you need a greater size, you can simply change
  616.       COMMAND_LINE_SIZE in init/main.c.
  617.  
  618.  
  619.  
  620.  
  621.                          --------- +++  --------
  622.  
  623.  
  624.  
  625. 5.    If you have problems
  626.       ====================
  627.  
  628.       I received some feedback re version 1.2 which lead to version 1.3
  629.       and more extensive error checking.  Some bugs were also found and
  630.       fixed.  However, with the thousands of possible hardware/software
  631.       configurations of a PC, a program can never be totally bug-free.
  632.       So please, I need your feedback regarding problems you encounter.
  633.  
  634.       If you recognize a bug, please don't work around it, mail it to me !
  635.  
  636.       But, if you report a problem, I need information!  Something like
  637.       "My screen always displays in blue, what is wrong?"  is not enough.
  638.  
  639.       LOADLIN can produce information for me (and for you) if you use
  640.       the -d or -t switch.
  641.  
  642.  
  643.  
  644. 5.1.  Example problem 1
  645.       -----------------
  646.  
  647.         C:\LOADLIN>loadlin zimage /dev/sda1 ro
  648.  
  649.       The kernel loads (LOADING.......), but Linux "panics" with the message
  650.       "unable to read superblock".    You have to hard-reset your machine.
  651.  
  652.       To check what was wrong you can type:
  653.  
  654.         C:\LOADLIN>loadlin zimage -t /dev/sda1 ro
  655.                                   --
  656.  
  657.       LOADLIN now does all the same things, but doesn't actually start Linux.
  658.       It displays:
  659.  
  660.         Your current LINUX kernel boot configuration is:
  661.           image file:       zimage
  662.           kernel size:     0x4D010
  663.           ram disk size:    0x0000
  664.           root device:      0x0342  read only
  665.           VGA mode:         0xFFFF
  666.           command line size 0x001B
  667.           command line:
  668.             /dev/sda1 BOOT_IMAGE=zimage
  669.           ..
  670.           ..
  671.           ..
  672.  
  673.       Looking at the field "root device", you can see that it is NOT the
  674.       MAJOR+MINOR of /dev/sda1, but you did use "/dev/sda1" as the root disk
  675.       parameter in the boot command line.  The error is clear, you forgot
  676.       the "root=" in front of "/dev/sda1".  (Alternatively, you could use
  677.       rdev to alter the root device flag in the zimage file.)
  678.  
  679.  
  680.  
  681. 5.2.  Example problem 2
  682.       -----------------
  683.  
  684.         C:\LOADLIN>loadlin zimage root=/dev/sda1 ro mem=0xFF0000
  685.  
  686.       The kernel loads (LOADING.......), but Linux "panics" with the message
  687.       "<2M Ram   system halted".    You have to hard-reset your machine.
  688.  
  689.       To check what was wrong you can type:
  690.  
  691.         C:\LOADLIN>loadlin zimage -d report.dmp root=/dev/sda1 ro mem=0xFF0000
  692.                                   -------------
  693.  
  694.        and get the output on-screen (and in the file report.dmp):
  695.  
  696.         Your current LINUX kernel boot configuration is:
  697.           ..
  698.           ..
  699.           command line:
  700.             BOOT_IMAGE=zimage
  701.  
  702.         Your current DOS/CPU configuration is:
  703.           ..
  704.           ..
  705.           total memory:     0x01E0000
  706.           ..
  707.           ..
  708.  
  709.  
  710.       This could be a bug in LOADLIN, because "mem=0xFF0000" should have
  711.       appeared in "command line" in front of "BOOT_IMAGE=zimage".
  712.  
  713.       You should mail me a description of what has happened, including the
  714.       file "report.dmp" and the contents of your CONFIG.SYS so I can check
  715.       what is wrong.
  716.  
  717.       NOTE:
  718.  
  719.       Under certain conditions (but not with Javiers's method) INT15 is used
  720.       to report the memory size, but it can be intercepted by some TSRs
  721.       or drivers (e.g. HIMEM.SYS).
  722.       With the "mem=0xFF0000" option however, you can solve the problem.
  723.       When Linux has been loaded and uncompressed successfully,
  724.       nothing in DOS (or the BIOS) is used from that point forward.
  725.  
  726.  
  727.  
  728. 5.3.  Confusion regarding device-file MINOR numbers
  729.       ---------------------------------------------
  730.  
  731.       The following illustrates the problem with numbering conventions
  732.       for device-file MINOR numbers:
  733.  
  734.       With version 1.2 of LOADLIN, I got the following bug report:
  735.  
  736.        "SHELL=c:\loadlin\loadlin.exe c:\loadlin\zimage root=/dev/hda10
  737.         does load, but panics with 'unable to read superblock'"
  738.  
  739.       The problem is:
  740.  
  741.       Linus interprets the number following "/dev/hda" as a HEX number,
  742.       the device names in /dev of the Slackware distribution 1.2.x however
  743.       (not Slackware 2.0.0), are numbered /dev/hda1 .. hda9 .. hda10 .. hda16,
  744.       instead of  /dev/hda1 .. hda9 .. hdaa .. hdaf, as Linus would have done.
  745.  
  746.       So, starting with version 1.3 of LOADLIN, I interpret the root device
  747.       myself and pass the device numerically in the boot-sector.  My
  748.       naming convention is a compromise, which I hope will result in less
  749.       confusion:
  750.  
  751.       If the digit appended to "/dev/hda, hdb, sda ..."  starts with  0, 0x
  752.       or  a..f, it is interpreted as a HEX number.  (Examples:  /dev/hdaa
  753.       /dev/sda0xE, /dev/hdb0c)
  754.  
  755.       If it starts with 1..9 it is interpreted as a decimal number.
  756.  
  757.       If none is appropriate the string is passed to the command line
  758.       (some later kernel versions may have other device names).
  759.  
  760.       NOTE: you can switch off the above translation with the -n switch
  761.             the root=/dev .... is then put unchanged into the command_line.
  762.             Actually it does both, translates and put into command_line, but
  763.             Linux will overwrite the LOADLIN-translation, and LOADLIN has
  764.             a chance to check for know numbers.
  765.             This option is intended for future Linux devellopement,
  766.             if Linus expands the root device list, you can use these
  767.             new device with your then not uptodate LOADLIN.
  768.  
  769. 5.3.1 Changed device-file MAJOR number for /dev/xd
  770.       ---------------------------------------------
  771.  
  772.       Newer kernel have changed the MAJOR number of /dev/xd to 13.
  773.       Because the root device is translated within LOADLIN, you get
  774.       in trouble when loading older kernels. In this case
  775.       set the -oldxd switch to use old numbering (12).
  776.       If you have applied the setup.S patches, LOADLIN will do this
  777.       automatically for you.
  778.  
  779.  
  780. 5.4.  Problems with some DOS memory managers and device drivers
  781.       ----------------------------------------------------------
  782.  
  783.  
  784.       When LOADLIN has loaded the kernel image, and before it jumps to
  785.       Linux, it must either
  786.  
  787.         a) have the possibility (using Javier's method) to
  788.            intercept the setup-code of Linux just before Linux wants to move
  789.            down the image and switch to protected mode,
  790.         b) or restore the interrupt vector (and eventually some BIOS data)
  791.            to simulate a "boot time" state.
  792.  
  793.       For a) you need a kernel version greater 0.99.14, better have the
  794.       setup.dif patches applied (I will send the patches to Linus, and
  795.       hopefully he puts them into the official kernel).
  796.       You should always try Javier's method first, I'm sure, it will work
  797.       on almost all machines and configurations. Using it you need not to do
  798.       any prior configuration for DOS, I'm repeating this here specially for
  799.       users of older LOADLIN versions:
  800.  
  801.          For Javier's method you must remove BIOSINTV/REALBIOS from your
  802.          configuration or use the -ja switch of LOADLIN !
  803.  
  804.  
  805.       If you don't succeed with Javier's method, then you can try b).
  806.       For b) I recommend that you put the following line AT THE TOP of
  807.          your CONFIG.SYS:
  808.  
  809.             DEVICE=C:\LOADLIN\BIOSINTV.SYS
  810.  
  811.          This driver saves default BIOS values for the interrupt vector.
  812.          It is approx.700 bytes, so it won't use too much low memory.
  813.          BIOSINTV.SYS must NOT be loaded high by any memory manager!
  814.  
  815.          If any TSRs or drivers intercept INT15, Linux can get the
  816.          wrong total available memory reported.
  817.          Some DOS memory managers (like QEMM) will cause this problem
  818.          when using what is commonly called "Stealth" techniques.
  819.  
  820.          If this happens, you can then put  mem=xxxx  in the LOADLIN
  821.          command line, where xxxx is the total size of memory in bytes.
  822.          (NOTE: the motherboard BIOS may have mapped some 128Kb for
  823.                 Shadow RAM).
  824.  
  825.  
  826.          The field "total memory" of the LOADLIN verbose output will
  827.          tell you what Linux would see as total RAM available.
  828.  
  829.  
  830.       My simple method (using BIOSINTV.SYS) gets an interrupt table that is
  831.       slightly modified by DOS (i.e. it is NOT the *real* original), but it
  832.       works for almost all configurations. It doesn't require changing the
  833.       BIOS data/scratch areas, because they are mostly consistent with the
  834.       interrupt vector.  You should try the BIOSINTV method prior to the
  835.       REALBIOS method.
  836.  
  837.       I have had problems reported with the use of DOS memory managers (QEMM,
  838.       for example) which apparently hook some vectors or access data which is
  839.       no longer available when LOADLIN re-enters real mode.
  840.  
  841.       As an alternative to the BIOSINTV method, I introduced with version 1.4
  842.       the REALBIOS method, which consists of:
  843.  
  844.          The REALBIOS.EXE utility
  845.          BOOTSECT.BIN
  846.          The file REALBIOS.INT, which REALBIOS creates on your machine.
  847.  
  848.       Alessandro Rubini (rubini@ipvvis.unipv.it) wrote BOOTSECT.BIN (which
  849.       contains code from bootsect.S by Linus Torvalds).
  850.  
  851.       His way (used in his package linuxEXE ) of getting the *real* original
  852.       BIOS interrupt vector is the safest way.  All other solutions are too
  853.       tricky.  I added saving of BIOS data/scratch, PIC-IMR and TOP-ROM, but
  854.       it remains essentially Alessandro's technique.
  855.  
  856.       If, and only if, you don't succeed with Javier's method or the BIOSINTV
  857.       method, try the REALBIOS method instead as a last resort.
  858.  
  859.       But NOTE:
  860.       --------
  861.       !  The  C:\REALBIOS.INT  file created by the REALBIOS method is unique
  862.       !  to the machine on which it is generated!  It must be in C:\ .
  863.       !
  864.       !  Do NOT DISTRIBUTE it to your friends (distribute only "lodlin14.tgz").
  865.       !  Do NOT COPY it from your friend's machine.
  866.       !  Do NOT SHARE it (e.g. via NFS).
  867.       !  Rebuild the file if you make ANY hardware changes to your machine
  868.       !   (such as adding/removing an adapter card, adding/removing RAM or
  869.       !    changing an IRQ or I/O address).
  870.       !  Use it only on the machine it is generated on!
  871.          ----------------------------------------------
  872.  
  873.  
  874.  
  875.       BTW:
  876.       I guess that on a PS2 you may have problems with the extended BIOS data.
  877.  
  878.       Sorry, but I have no way of testing it.
  879.  
  880.  
  881.  
  882. 5.4.1 Creating REALBIOS.INT
  883.       ---------------------
  884.  
  885.       - At the DOS prompt type:
  886.  
  887.           C:> CD \LOADLIN
  888.           C:\LOADLIN> REALBIOS
  889.  
  890.  
  891.       - You then get the following output:
  892.  
  893.           Generation of the file C:\REALBIOS.INT (for the REALBIOS method)
  894.           consists of TWO steps:
  895.  
  896.             1. Generating the special boot floppy and booting with it.
  897.  
  898.             2. Reading the saved interrupt table and BIOS data from the floppy
  899.                and writing it to C:\REALBIOS.INT
  900.  
  901.           Type 1 or 2, (depending on which step you are in) or any other key
  902.           to cancel:
  903.  
  904.  
  905.       - Because you are doing the first step you must type a "1", which gets
  906.         you the following output:
  907.  
  908.           OK, we first generate the floppy !
  909.           Insert an empty but DOS-formatted disk into drive A:
  910.           (no matter what DOS format it is)
  911.  
  912.           Type C to continue or any other key to cancel
  913.  
  914.  
  915.       - You insert the floppy, type "C" and get the following output:
  916.  
  917.           OK, The special boot floppy has been generated.
  918.           Leave it inserted in drive A: and reboot your machine
  919.             But NOTE:
  920.             If you have a disk cache program (like SMARTDRV)
  921.             you may need to flush the write-behind cache first!
  922.  
  923.  
  924.       - You press the reset button, or do the "3-finger salute", and your
  925.         machine then boots from the floppy.  The boot loader then saves
  926.         all needed BIOS intvectors and data onto the floppy.  Finally the
  927.         machine will display the following:
  928.  
  929.           Interrupt table and BIOS-data saved on floppy.
  930.           Open the floppy door and reboot from your hard drive,
  931.           then run REALBIOS again (step 2).
  932.  
  933.  
  934.       - Now you open the floppy door (to avoid booting from the floppy),
  935.         reboot, and re-enter the LOADLIN directory.  Then you type:
  936.  
  937.           C:\LOADLIN> REALBIOS
  938.  
  939.       - You now answer with a "2", (because you are running step 2) and
  940.         get the following output:
  941.  
  942.           OK, we now read the saved interrupt vector from the floppy
  943.           and save it to the file C:\REALBIOS.INT (no way to change the name!)
  944.           Is the floppy (used in step 1) inserted in drive A: ?
  945.  
  946.           Type Y to continue or any other key to cancel
  947.  
  948.       - Re-insert the floppy into drive A.  If you then type Y the file
  949.         C:\REALBIOS.INT  will be created from the data on the floppy.
  950.         If anything goes wrong, REALBIOS will let you know.
  951.  
  952.  
  953.  
  954. 5.4.2 Using REALBIOS.INT
  955.       ------------------
  956.  
  957.       The file  C:\REALBIOS.INT  will be a "HIDDEN+SYSTEM" file to avoid
  958.       distribution to other machines. (you can't see it with DIR)
  959.  
  960.       LOADLIN first searches for BIOSINTV.SYS and then for REALBIOS.INT.
  961.       You can reverse this order by using the "-rb" switch.
  962.  
  963.       LOADLIN checks the ROM-BIOS-DATE saved in REALBIOS.INT and, if there
  964.       is a mismatch, it switches to "-t" verbose mode.  Some DOS memory
  965.       managers, however, remap the top page of the ROM-BIOS to intercept
  966.       a warm-boot, and do not supply the correct ROM-BIOS-DATE.  LOADLIN
  967.       then fails because it checks this date before going into real mode.
  968.  
  969.       In this case you can use the "-rx" switch to skip the check.
  970.  
  971.  
  972.       NOTE:
  973.       ----
  974.  
  975.        - C:\REALBIOS.INT is marked HIDDEN+SYSTEM to avoid distribution.
  976.          It must reside in C:\  even if the C: drive is compressed.
  977.  
  978.        - The floppy used above is rendered unusable for DOS, so you must
  979.          fully format it again (not just a "quick" format).
  980.  
  981.        - Whenever you add, remove or reconfigure any hardware you MUST
  982.                       ---  ------    ----------- ---
  983.          rerun REALBIOS !  (This is the reason I prefer Javier's method.)
  984.          ----- --------
  985.  
  986. 5.4.3 High loaded Drivers and high located data
  987.       -----------------------------------------
  988.  
  989.       With version 1.5 the problem of high loaded DOS drivers comes
  990.       to a minimum (I guess there isn't any at all). But keep in
  991.       mind that, when using BIOSINTV/REALBIOS, LOADLIN will behave as
  992.       if in version 1.4. And then you *will* come into the problem:
  993.  
  994.       After back switch to real mode all mapped memory above 0A0000h
  995.       will dissapear, so, with BIOSINTV/REALBIOS do NOT load high
  996.       any device driver ( DEVICEHIGH=..., LOADHI..., LH...).
  997.  
  998.       NOTE: Many installation programs for DOS drivers (such as
  999.       the Drive Rocket Data Accelerator by Ontrack) are loading high
  1000.       by default !
  1001.  
  1002.       Also there mustn't be any relevant data from 090000h to 09BFFFFh
  1003.       because this is the place where setup and LOADLIN must go.
  1004.       This is true also for version 1.5, you will be warned, however,
  1005.       if this happens, and  normally the remaining space of 20 K byte
  1006.       at the top of the 640 K base memory is only occupied by 1 K byte
  1007.       BIOS scratch.
  1008.  
  1009.  
  1010. 5.4.4 Problems detecting V86
  1011.       ----------------------
  1012.  
  1013.       On some 486 clones we have problems with CR0 while probing for V86 mode.
  1014.       (as reported by Jacek Zapala zapala@if.pw.edu.pl ).
  1015.       It can happen that the CPU is in realmode, but PAGING is enabled !
  1016.       This is possible, but neither documented nor supported by INTEL.
  1017.       May be the motherboard's BIOS is mapping shadow ram this way,
  1018.       or one of those old and strange EMM managers is used,
  1019.       but probably this is an indication of a not exactly compatible
  1020.       486 clone. The -clone switch byepasses the CR0 check and assumes
  1021.       V86 if an EMM manger is found.
  1022.       But of course this EMM manager must not use real paging !
  1023.  
  1024.  
  1025.  
  1026. 5.5.  Description of debug output (-v,-t,-d)
  1027.       --------------------------------------
  1028.  
  1029.       The ouput produced by the -v, -t or -d options occurs at the point at
  1030.       which the boot sector and setup are loaded and updated by LOADLIN.
  1031.       The information is that seen by Linux, but in the case of -t and -d,
  1032.       the zimage file is not loaded and linux is not started.
  1033.  
  1034.       Description:
  1035.  
  1036.       Your current LINUX kernel boot configuration is:
  1037.         image file:       d:\tmp\1-1-47.0     <- filename of kernel image
  1038.         kernel size:     0x5BFF0              setup size:  0x0A00
  1039.                          ^                    ^- size of setup in bytes
  1040.                          |---------------------- size of kernel in bytes
  1041.         kernel version:   1.1.47 (root@el15) #4 Mon Aug 00:57:07 MET DST 1994
  1042.                           ^---- this only if setup.S has the LOADLIN patches
  1043.         ram disk size:    0x0000              <- 0 = none, else size in Kbytes
  1044.         root device:      0x0342  read/write  <- MAJOR+MINOR of root device
  1045.         VGA mode:         0xFFFF              <- video mode at startup
  1046.         command line size 0x0011              <- size of compacted command line
  1047.         command line:                         <- contents of command_line as
  1048.           BOOT_IMAGE=zimage                       seen by Linux
  1049.  
  1050.       Your current DOS/CPU configuration is:
  1051.         load buffer size:   0x775F0   setup buffer size:   0x1000
  1052.                          ^                    ^- size of buffer in bytes which
  1053.                          |                       holds the setup code.
  1054.                          |                       must be >= "setup size"
  1055.                          |---------------------- size of buffer in bytes which
  1056.                                                  holds the uncompressed image
  1057.                                                  Must be > "kernel size"
  1058.         total memory:     0x0FE0000           <- highest RAM address as seen
  1059.                                                   by Linux, calculated from the
  1060.                                                   INT15 information
  1061.         CPU is in V86 mode                    <- if in Virtual-86 mode
  1062.       or
  1063.         CPU is in REAL mode
  1064.       or
  1065.         CPU is in undocumented REAL PAGING mode, trying any way
  1066.  
  1067.  
  1068.         BIOSINTV.SYS:  YES                    <- YES, if $BIOSINT was
  1069.       or                                          read successfully.
  1070.         REALBIOS:      YES
  1071.       or
  1072.         REALBIOS:      YES, but ROM-BIOS-DATE differs, must rerun REALBIOS.EXE
  1073.  
  1074.         SetupIntercept: NO                    <- using LOADLIN-1.4 mode
  1075.       or
  1076.         SetupIntercept: YES, patching setup code  <- using Javier's method
  1077.       or
  1078.         SetupIntercept: YES, legal intercept      <- dito, but legal Setup
  1079.                                                      (compiled in patches)
  1080.  
  1081.  
  1082.       One of four possible status messages may appear here:
  1083.  
  1084.         stat1: cpu in real 386 mode
  1085.         stat2: cpu_V86, but no VCPI available (check aborted)
  1086.         stat3: VCPI_present, but physmap != logmap (check aborted)
  1087.         stat4: VCPI_present, physmap=logmap, all OK for switch to realmode
  1088.  
  1089.  
  1090.       The following may come from the DOS command line or from the params file:
  1091.  
  1092.         input params size 0x000D              <- size of DOS command line
  1093.                                                   (or compacted params file)
  1094.         input params:                         <- contents of DOS command line
  1095.           ..\zimage -t
  1096.  
  1097.  
  1098.       Some additional information and/or warnings can follow:
  1099.  
  1100.         LOADLIN started from DOS-prompt       <- one of these two Lines
  1101.            "       "     "   CONFIG.SYS       <- (LOADLIN assumes the environ.
  1102.                                                   has a  COMSPEC=  for DOS)
  1103.  
  1104.         You are running under MS-WINDOWS      <- this warning, if in WINDOWS.
  1105.                                                  (LOADLIN assumes the environ.
  1106.                                                   has a  WINDIR=  for WINDOWS)
  1107.  
  1108.  
  1109.  
  1110.                          --------- +++  --------
  1111.  
  1112.  
  1113.  
  1114.  
  1115. 6.    The LOADLINX pre-processor for booting UMSDOS systems
  1116.       =====================================================
  1117.  
  1118.  
  1119.       This program is used as a "pre-processor" for the LOADLIN utility.
  1120.       It does translation of DOS-ish drive numbering (C:, D:, etc.) to
  1121.       the equivalent Linux device names (/dev/....).
  1122.  
  1123.       In addition to "root=X:" LOADLINX accepts the same parameters as
  1124.       LOADLIN and passes them to it.
  1125.       It even can (opposite to LOADLIN) preset params from a @params-file
  1126.       and then overwrite some of them during actual call.
  1127.       (e.g. "loadlinX zImage @default vga=3" works for loadlinX, but
  1128.       not for loadlin).
  1129.       With this feature it confortable to use loalinX, even if not using
  1130.       UMSDOS.
  1131.  
  1132.       LOADLINX can even be executed via a  shell=  in your CONFIG.SYS,
  1133.       but it MUST reside in the same directory where LOADLIN is located.
  1134.  
  1135.       Jacques Gelinas (jacques@solucorp.qc.ca) is the author of the trans-
  1136.       lation algorithm (I just implemented and enhanced it for LOADLIN,
  1137.       and adapted it to the exact behavior of DOS).
  1138.  
  1139.       It is intended for UMSDOS users only, since others do not use a
  1140.       DOS partition for "root".
  1141.  
  1142.       It is restricted to systems with either all AT-type (IDE) drives
  1143.       or a maximum of two SCSI drives using the SCSI adapter card's
  1144.       own BIOS under DOS (e.g. must be accessable via INT13).
  1145.       Mixed use of IDE and SCSI is not (yet) supported.
  1146.       Nevertheless, you can bypass LOADLINX for other configurations and
  1147.       determine the  root=/dev/xxxx  yourself.
  1148.  
  1149.  
  1150. 6.1.  The LOADLINX command line
  1151.       -------------------------
  1152.  
  1153.       Usage:
  1154.  
  1155.         LOADLINX [--dv]  LOADLIN_command_line
  1156.  
  1157.            --dv               debug verbose; doesn't exec LOADLIN
  1158.            --version          print the version string from the zimage
  1159.                               (needs the setup.S patch).
  1160.            --version=-1.0.9   Checks for correct kernel version <= 1.0.9
  1161.            --version=1.1.47   Checks for correct kernel version >= 1.1.47
  1162.            --version=1.1.47#2 Checks for correct kernel version >= 1.1.47 () #2
  1163.  
  1164.  
  1165.       Examples:
  1166.  
  1167.         LOADLINX zimage.ums root=D: vga=ask
  1168.  
  1169.         (NOTE: You must never use the "ro" option because UMSDOS needs
  1170.                to mount its root filesystem r/w at boot time.)
  1171.  
  1172.  
  1173.         LOADLINX zimage_1.147 @test.par root=/dev/hdb2 --version=1.1.47#2
  1174.  
  1175.         (NOTE: This will take all params from the file test.par, then
  1176.                replace the image name, the root device and check for version.
  1177.  
  1178.       It would be much smarter to use a batch file something like this:
  1179.  
  1180.       +-------------------- start of LINUX.BAT
  1181.       |
  1182.       |  SMARTDRV /C
  1183.       |  C:\LOADLIN\LOADLINX C:\LOADLIN\ZIMAGE root=C: vga=3
  1184.       |
  1185.       +-------------------- end of LINUX.BAT
  1186.  
  1187.  
  1188.       So you could simply type:
  1189.  
  1190.        C> linux
  1191.  
  1192.        .... and be on your way.
  1193.  
  1194.  
  1195.  
  1196.  
  1197.                          --------- +++  --------
  1198.  
  1199.  
  1200.  
  1201. 7.    Where to send comments and bug reports
  1202.       ======================================
  1203.  
  1204.       Comments and bug reports are welcome and may be sent to:
  1205.  
  1206.       E-Mail:    lermen@elserv.ffm.fgan.de
  1207.  
  1208.       SnailMail: Hans Lermen
  1209.                  Am Muehlenweg 38
  1210.                  D53424 REMAGEN-Unkelbach
  1211.                  GERMANY
  1212.  
  1213.  
  1214.       ... and PLEASE, PLEASE, PLEASE:
  1215.           Check your "Reply to" path for a valid E-Mail address,
  1216.           I get many "bounced" mails back ! It's not a fun having
  1217.           answered your mail for the trash.
  1218.  
  1219.                          --------- +++  --------
  1220.  
  1221.  
  1222.  
  1223. 8.    Contributions and Credits
  1224.       =========================
  1225.  
  1226.       This program could not have been written as quickly without the
  1227.       information found in the source code of F.Coutant's BOOTLIN.
  1228.  
  1229.       This program would be absolutely superfluous without Linus Torvalds.
  1230.  
  1231.       Jacques Gelinas encouraged me in realizing the VCPI-support.
  1232.       The LOADLINX pre-processor is an implementation of his ideas.
  1233.  
  1234.       Alessandro Rubini contributed some code from his linuxEXE package
  1235.       (BOOTSECT.BIN) and gave some important hints.
  1236.  
  1237.       Chuck Munro gave hints concerning problems with QEMM and ALPHA-
  1238.       tested version 1.4.
  1239.       He also did much work for better documentation.
  1240.  
  1241.       Javier Achirica invented the switch-out-of-setup method (LOADLIN-1.5),
  1242.       which makes the BIOSINTV and REALBIOS method superfluous on nearly
  1243.       all machines. The trick is: let setup run in V86 and intercept
  1244.       just before going to protected mode.
  1245.  
  1246.  
  1247.       Important problem and bug reports came from:
  1248.  
  1249.       Mitchum Dsouza, UK
  1250.       Claus Tondering, Denmark
  1251.       Johann Friedrich Heinrichmeyer, Germany
  1252.       Jacek Zapala, Poland
  1253.       Jon Peatfield, UK
  1254.  
  1255.       Thanks also to all the ALPHA testers, who responded on my
  1256.       "call for testers". The list is too long to put it here,
  1257.       but some of them did heavy testings:
  1258.  
  1259.       Michael Goddard, US
  1260.       Shih-Hua Chao, US
  1261.       Rene Baart, Netherlands
  1262.       Asad Khan,
  1263.       Jan Lien, Sweden
  1264.  
  1265.  
  1266.       Many thanks also to those people, who did not have any
  1267.       problems with LOADLIN, but nevertheless mailed me "it works"
  1268.       ( positive feedback is the best one ).
  1269.  
  1270.  
  1271.                          --------- END --------
  1272.  
  1273.