man bootparam 内核启动参数文档

BOOTPARAM(7)   Linux Programmer’s Manual  BOOTPARAM(7)






NAME
       bootparam - Introduction to boot time parameters of the Linux kernel


DESCRIPTION
       The  Linux  kernel accepts certain ’command-line options’ or ’boot time
       parameters’ at the moment it is started. In general this  is  used  to
       supply  the  kernel with information about hardware parameters that the
       kernel would not be able to determine on its own, or to avoid/override
       the values that the kernel would otherwise detect.


       When  the  kernel  is booted directly by the BIOS (say from a floppy to
       which you copied a kernel using ’cp  zImage  /dev/fd0’), you  have  no
       opportunity  to specify any parameters. So, in order to take advantage
       of this possibility you have to use  software  that  is able  to  pass
       parameters,  like  LILO or loadlin.  For a few parameters one can also
       modify the kernel image itself, using rdev,  see rdev(8)  for  further
       details.


       The  LILO  program  (LInux LOader) written by Werner Almesberger is the
       most commonly used.  It has the ability to boot various kernels,  and
       stores  the  configuration  information in  a  plain  text file.  (See
       lilo(8) and lilo.conf(5).)  LILO can boot DOS,  OS/2,  Linux,  FreeBSD,
       UnixWare, etc., and is quite flexible.


       The  other  commonly used Linux loader is ’LoadLin’ which is a DOS pro-
       gram that has the capability to launch a Linux kernel from  the  DOS
       prompt  (with boot-args) assuming that certain resources are available.
       This is good for people that want to launch Linux from DOS.


       It is also very useful if you have certain hardware which relies on the
       supplied DOS  driver to put the hardware into a known state.  A common
       example is ’SoundBlaster Compatible’ sound cards that require  the  DOS
       driver  to  twiddle  a few mystical registers to put the card into a SB
       compatible mode. Booting DOS with the supplied driver, and then load-
       ing Linux from the DOS prompt with loadlin avoids the reset of the card
       that happens if one rebooted instead.


   The Argument List
       The kernel command line is parsed into a list of strings  (boot argu-
       ments) separated by spaces.  Most of the boot args take the form of:


     name[=value_1][,value_2]...[,value_10]


       where  ’name’ is a unique keyword that is used to identify what part of
       the kernel the associated values (if any) are to be given to.  Note the
       limit  of  10  is real, as the present code only handles 10 comma sepa-
       rated parameters per keyword.  (However, you can re-use the  same  key-
       word  with  up  to an additional 10 parameters in unusually complicated
       situations, assuming the setup function supports it.)


       Most of the sorting goes on in linux/init/main.c.   First,  the kernel
       checks  to see if the argument is any of the special arguments ’root=’,
       ’nfsroot=’, ’nfsaddrs=’, ’ro’, ’rw’, ’debug’ or ’init’. The meaning of
       these special arguments is described below.


       Then  it walks a list of setup functions (contained in the bootsetups
       array) to see if the specified argument string (such as ’foo’) has been
       associated  with a  setup  function  (’foo_setup()’)  for a particular
       device or part of the kernel.   If  you passed the  kernel  the  line
       foo=3,4,5,6 then the kernel would search the bootsetups array to see if
       ’foo’ was registered.  If it was, then it would call the setup function
       associated  with ’foo’ (foo_setup()) and hand it the arguments 3, 4, 5
       and 6 as given on the kernel command line.


       Anything of the form ’foo=bar’ that is not accepted as a setup function
       as described above is then interpreted as an environment variable to be
       set.  A (useless?) example would be to use ’TERM=vt100’ as a boot argu-
       ment.


       Any  remaining arguments that were not picked up by the kernel and were
       not interpreted as environment variables are then passed onto  process
       one,  which is usually the init program. The most common argument that
       is passed to the init process is the word ’single’ which instructs init
       to  boot the computer in single user mode, and not launch all the usual
       daemons. Check the manual page for the version of  init installed  on
       your system to see what arguments it accepts.


   General Non-device Specific Boot Arguments
       ’init=...’
     This  sets the initial command to be executed by the kernel.  If
     this is not set, or  cannot  be found, the  kernel  will  try
     /sbin/init,  then /etc/init,  then  /bin/init, then /bin/sh and
     panic if all of this fails.


       ’nfsaddrs=...’
     This sets the nfs boot address to the given string.   This  boot
     address is used in case of a net boot.


       ’nfsroot=...’
     This sets the nfs root name to the given string. If this string
     does not begin with ’/’ or ’,’ or a digit, then it  is  prefixed
     by  ’/tftpboot/’. This root name is used in case of a net boot.


       ’no387’
     (Only when CONFIG_BUGi386 is defined.)   Some  i387  coprocessor
     chips have bugs that show up when used in 32 bit protected mode.
     For example, some of the early ULSI-387 chips would cause solid
     lockups while performing floating-point calculations.  Using the
     ’no387’ boot arg causes Linux to ignore  the  maths  coprocessor
     even  if you have one.  Of course you must then have your kernel
     compiled with math emulation support!


       ’no-hlt’
     (Only when  CONFIG_BUGi386  is  defined.)  Some of  the early
     i486DX-100  chips have a problem with the ’hlt’ instruction, in
     that they can’t reliably return to  operating  mode  after  this
     instruction is used.  Using the ’no-hlt’ instruction tells Linux
     to just run an infinite loop when there is nothing else  to  do,
     and  to  not halt the CPU.  This allows people with these broken
     chips to use Linux.


       ’root=...’
     This argument tells the kernel what device is to be used as  the
     root  file system while booting. The default of this setting is
     determined at compile time, and usually is the value of the root
     device  of the system that the kernel was built on.  To override
     this value, and select the  second  floppy  drive as  the  root
     device,  one  would  use ’root=/dev/fd1’.  (The root device can
     also be set using rdev(8).)


     The root device can be specified symbolically or numerically.  A
     symbolic specification  has the form /dev/XXYN, where XX desig-
     nates the device type (’hd’ for  ST-506  compatible  hard disk,
     with  Y  in  ’a’-’d’;  ’sd’  for SCSI compatible disk, with Y in
     ’a’-’e’; ’ad’ for Atari ACSI disk, with Y in ’a’-’e’, ’ez’ for a
     Syquest  EZ135  parallel port removable drive, with Y=’a’, ’xd’
     for XT compatible disk, with Y  either  ’a’  or  ’b’;  ’fd’  for
     floppy  disk,  with Y the floppy drive number — fd0 would be the
     DOS ’A:’ drive, and fd1 would be ’B:’), Y the driver  letter  or
     number,  and  N the number (in decimal) of the partition on this
     device (absent in the case of floppies). Recent kernels allow
     many  other  types,  mostly  for CD-ROMs:  nfs, ram, scd, mcd,
     cdu535, aztcd, cm206cd, gscd, sbpcd, sonycd,  bpcd.   (The  type
     nfs specifies a net boot; ram refers to a ram disk.)


     Note  that  this has nothing to do with the designation of these
     devices on your file system.  The ’/dev/’ part is purely conven-
     tional.


     The  more awkward and less portable numeric specification of the
     above possible  root  devices  in major/minor  format  is  also
     accepted.  (E.g.,  /dev/sda3  is major 8, minor 3, so you could
     use ’root=0x803’ as an alternative.)


       ’ro’ and ’rw’
     The ’ro’ option tells the kernel to mount the root  file system
     as  ’read-only’  so  that file system consistency check programs
     (fsck) can do their work on a quiescent file  system.   No  pro-
     cesses  can  write to files on the file system in question until
     it is ’remounted’ as read/write capable, for example, by ’mount
     -w -n -o remount /’.  (See also mount(8).)


     The  ’rw’ option tells the kernel to mount the root file system
     read/write.  This is the default.


     The choice between read-only and read/write  can also  be  set
     using rdev(8).


       ’reserve=...’
     This  is used to protect I/O port regions from probes.  The form
     of the command is:


     reserve=iobase,extent[,iobase,extent]...


     In some machines it may be necessary to prevent  device  drivers
     from  checking  for devices (auto-probing) in a specific region.
     This may be because of hardware that reacts badly to  the prob-
     ing,  or hardware that would be mistakenly identified, or merely
     hardware you don’t want the kernel to initialize.


     The reserve boot-time argument specifies an I/O port region that
     shouldn’t be probed.  A device driver will not probe a reserved
     region, unless another boot argument explicitly  specifies  that
     it do so.


     For example, the boot line


     reserve=0x300,32 blah=0x300


     keeps all device drivers except the driver for ’blah’ from prob-
     ing 0x300-0x31f.


       ’mem=...’
     The BIOS call defined in the PC specification that  returns  the
     amount  of  installed  memory  was  only designed to be able to
     report up to 64MB.  Linux uses this BIOS call at boot to deter-
     mine  how much memory is installed.  If you have more than 64MB
     of RAM installed, you can use this boot arg to  tell  Linux  how
     much  memory  you have. The value is in decimal or hexadecimal
     (prefix 0x), and the suffixes ’k’ (times 1024)  or  ’M’ (times
     1048576) can  be used. Here is a quote from Linus on usage of
     the ’mem=’ parameter.


  The kernel will accept any ’mem=xx’ parameter you give  it,
  and if it turns out that you lied to it, it will crash hor-
  ribly sooner or later.  The parameter indicates the highest
  addressable RAM address, so ’mem=0x1000000’ means you have
  16MB of memory, for example. For a 96MB machine this would
  be ’mem=0x6000000’.


  NOTE NOTE  NOTE: some machines might use the top of memory
  for BIOS caching or whatever, so  you  might not  actually
  have up to the full 96MB addressable.  The reverse is also
  true: some chipsets will map the physical  memory  that  is
  covered by the BIOS area into the area just past the top of
  memory, so the top-of-mem might actually be 96MB  + 384kB
  for example.   If  you  tell linux that it has more memory
  than it actually does have, bad things will happen: maybe
  not at once, but surely eventually.


     You can also use the boot argument ’mem=nopentium’ to turn off 4
     MB page tables on kernels configured for IA32  systems  with  a
     pentium or newer CPU.


       ’panic=N’
     By  default  the kernel will not reboot after a panic, but this
     option will cause a kernel reboot after N  seconds  (if N  is
     greater than zero).  This panic timeout can also be set by "echo
     N > /proc/sys/kernel/panic".


       ’reboot=[warm|cold][,[bios|hard]]’
     (Only when CONFIG_BUGi386 is defined.)  Since 2.0.22 a reboot is
     by  default  a  cold  reboot.  One asks for the old default with
     ’reboot=warm’.  (A cold reboot may be required to reset  certain
     hardware, but  might  destroy  not  yet written data in a disk
     cache.  A warm reboot may be faster.)  By default a  reboot  is
     hard,  by asking the keyboard controller to pulse the reset line
     low, but there is at least one type of  motherboard  where  that
     doesn’t  work.   The  option  ’reboot=bios’  will instead  jump
     through the BIOS.


       ’nosmp’ and ’maxcpus=N’
     (Only when  __SMP__  is  defined.)   A  command-line  option  of
     ’nosmp’  or ’maxcpus=0’ will disable SMP activation entirely; an
     option ’maxcpus=N’ limits the maximum number of  CPUs  activated
     in SMP mode to N.


   Boot Arguments for Use by Kernel Developers
       ’debug’
     Kernel messages are handed off to the kernel log daemon klogd so
     that they may be logged to disk. Messages with a priority above
     console_loglevel are  also  printed on the console.  (For these
     levels, see <linux/kernel.h>.)  By default this variable is  set
     to  log  anything more important than debug messages.  This boot
     argument will cause the kernel to also  print  the  messages  of
     DEBUG  priority. The  console  loglevel can also be set at run
     time via an option to klogd.  See klogd(8).


       ’profile=N’
     It is possible to enable a kernel profiling  function,  if  one
     wishes  to find out where the kernel is spending its CPU cycles.
     Profiling is enabled by setting the  variable  prof_shift to  a
     non-zero value. This is done either by specifying CONFIG_PRO-
     FILE at compile time, or by giving the ’profile=’ option.   Now
     the  value  that prof_shift gets will be N, when given, or CON-
     FIG_PROFILE_SHIFT, when that is given, or 2, the default.   The
     significance  of this variable is that it gives the granularity
     of the profiling: each clock tick, if the system was  executing
     kernel code, a counter is incremented:


     profile[address >> prof_shift]++;


     The  raw profiling  information can be read from /proc/profile.
     Probably you’ll want to use a  tool  such as  readprofile.c  to
     digest it.  Writing to /proc/profile will clear the counters.


       ’swap=N1,N2,N3,N4,N5,N6,N7,N8’
     Set    the    eight   parameters max_page_age, page_advance,
     page_decline,  page_initial_age, age_cluster_fract,   age_clus-
     ter_min, pageout_weight, bufferout_weight that control the ker-
     nel swap algorithm.  For kernel tuners only.


       ’buff=N1,N2,N3,N4,N5,N6’
     Set the six parameters max_buff_age, buff_advance, buff_decline,
     buff_initial_age, bufferout_weight, buffermem_grace that control
     kernel buffer memory management. For kernel tuners only.


   Boot Arguments for Ramdisk Use
       (Only if the kernel was compiled with CONFIG_BLK_DEV_RAM.)  In  general
       it  is  a  bad  idea to use a ramdisk under Linux — the system will use
       available memory more efficiently itself.  But while booting (or while
       constructing  boot floppies) it is often useful to load the floppy con-
       tents into a ramdisk.  One might also have a system in which first some
       modules (for  file  system or hardware) must be loaded before the main
       disk can be accessed.


       In Linux 1.3.48, ramdisk handling was  changed  drastically.   Earlier,
       the memory was allocated statically, and there was a ’ramdisk=N’ param-
       eter to tell its size.  (This could also be set in the kernel image  at
       compile time,  or  by  use  of rdev(8).)  These days ram disks use the
       buffer cache, and grow dynamically.  For a lot  of  information (e.g.,
       how  to use  rdev(8)  in  conjunction with the new ramdisk setup), see
       /usr/src/linux/Documentation/ramdisk.txt.


       There are four parameters, two boolean and two integral.


       ’load_ramdisk=N’
     If N=1, do load a ramdisk.  If  N=0,  do not  load  a  ramdisk.
     (This is the default.)


       ’prompt_ramdisk=N’
     If  N=1, do  prompt  for insertion of the floppy.  (This is the
     default.) If N=0, do not prompt.   (Thus,  this parameter  is
     never needed.)


       ’ramdisk_size=N’ or (obsolete) ’ramdisk=N’
     Set  the maximal size of the ramdisk(s) to N kB. The default is
     4096 (4 MB).


       ’ramdisk_start=N’
     Sets the starting block number (the offset on the floppy where
     the  ramdisk  starts)  to N.  This is needed in case the ramdisk
     follows a kernel image.


       ’noinitrd’
     (Only if the kernel was  compiled with  CONFIG_BLK_DEV_RAM  and
     CONFIG_BLK_DEV_INITRD.) These  days  it is possible to compile
     the kernel to use initrd. When this  feature  is enabled,  the
     boot  process  will load the kernel and an initial ramdisk; then
     the kernel converts initrd into a "normal"  ramdisk,  which  is
     mounted  read-write  as  root device; then /linuxrc is executed;
     afterwards the "real" root file system is mounted, and the  ini-
     trd file system is moved over to /initrd; finally the usual boot
     sequence (e.g., invocation of /sbin/init) is performed.


     For  a  detailed description  of the   initrd feature,   see
     /usr/src/linux/Documentation/initrd.txt.


     The ’noinitrd’ option tells the kernel that although it was com-
     piled for operation with initrd, it should not  go  through  the
     above steps, but leave the initrd data under /dev/initrd. (This
     device can be used only once: the data is freed as soon  as  the
     last process that used it has closed /dev/initrd.)


   Boot Arguments for SCSI Devices
       General notation for this section:


       iobase  --  the first I/O port that the SCSI host occupies.  These are
       specified in hexadecimal notation, and usually lie in  the  range  from
       0x200 to 0x3ff.


       irq  -- the  hardware  interrupt  that the card is configured to use.
       Valid values will be dependent on the card in question, but  will  usu-
       ally be 5, 7, 9, 10, 11, 12, and 15.  The other values are usually used
       for common peripherals like IDE hard  disks,  floppies, serial ports,
       etc.


       scsi-id -- the ID that the host adapter uses to identify itself on the
       SCSI bus.  Only some host adapters allow you to change this  value,  as
       most have it permanently specified internally.  The usual default value
       is 7, but the Seagate and Future Domain TMC-950 boards use 6.


       parity -- whether the SCSI host adapter expects the attached devices to
       supply a parity value with all information exchanges.  Specifying a one
       indicates parity checking is enabled, and a zero disables parity check-
       ing.  Again, not all adapters will support selection of parity behavior
       as a boot argument.


       ’max_scsi_luns=...’
     A SCSI device can have  a  number  of  ’sub-devices’  contained
     within  itself. The most common example is one of the new SCSI
     CD-ROMs that handle more than one disk at a time.  Each CD  is
     addressed as  a ’Logical Unit Number’ (LUN) of that particular
     device.  But most devices, such as hard disks, tape  drives  and
     such are only one device, and will be assigned to LUN zero.


     Some poorly designed SCSI devices cannot handle being probed for
     LUNs not equal to zero.  Therefore,  if  the  compile-time  flag
     CONFIG_SCSI_MULTI_LUN  is not set, newer kernels will by default
     only probe LUN zero.


     To specify the  number  of  probed  LUNs at  boot,  one enters
     ’max_scsi_luns=n’ as a boot arg, where n is a number between one
     and eight.  To avoid problems as described above, one would  use
     n=1 to avoid upsetting such broken devices.


       SCSI tape configuration
     Some  boot  time configuration  of  the SCSI tape driver can be
     achieved by using the following:


     st=buf_size[,write_threshold[,max_bufs]]


     The first two numbers are specified in units of kB.  The default
     buf_size is 32kB, and the maximum size that can be specified is
     a ridiculous 16384kB.  The write_threshold is the value at which
     the  buffer  is committed to tape, with a default value of 30kB.
     The maximum number of buffers varies with the number  of drives
     detected, and has a default of two.  An example usage would be:


     st=32,30,2


     Full  details can be found in the file Documentation/scsi/st.txt
     (or drivers/scsi/README.st for  older  kernels)  in  the kernel
     source.


       Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI configuration
     The  aha numbers refer to cards and the aic numbers refer to the
     actual SCSI chip on these type of cards, including  the Sound-
     blaster-16 SCSI.


     The probe code for these SCSI hosts looks for an installed BIOS,
     and if none is present, the probe will not find your card.  Then
     you will have to use a boot arg of the form:


     aha152x=iobase[,irq[,scsi-id[,reconnect[,parity]]]]


     If the driver was compiled with debugging enabled, a sixth value
     can be specified to set the debug level.


     All the parameters are as described at the top of this  section,
     and  the reconnect value will allow device disconnect/reconnect
     if a non-zero value is used.  An example usage is as follows:


     aha152x=0x340,11,7,1


     Note that the parameters must be specified  in  order,  meaning
     that if you want to specify a parity setting, then you will have
     to specify an iobase, irq, scsi-id and reconnect value as well.


       Adaptec aha154x configuration
     The  aha1542  series  cards  have an  i82077  floppy controller
     onboard, while the aha1540 series cards do not.  These are  bus-
     mastering cards, and have parameters to set the "fairness" that
     is used to share the bus with other devices.  The boot arg looks
     like the following.


     aha1542=iobase[,buson,busoff[,dmaspeed]]


     Valid  iobase  values  are  usually one of: 0x130, 0x134, 0x230,
     0x234, 0x330, 0x334.  Clone cards may permit other values.


     The buson, busoff values refer to the  number  of  microseconds
     that  the card dominates the ISA bus.  The defaults are 11us on,
     and 4us off, so that other cards (such as an ISA LANCE  Ethernet
     card) have a chance to get access to the ISA bus.


     The dmaspeed value refers to the rate (in MB/s) at which the DMA
     (Direct Memory Access) transfers proceed. The default is 5MB/s.
     Newer  revision  cards allow you to select this value as part of
     the soft-configuration, older cards use jumpers. You  can  use
     values up to 10MB/s assuming that your motherboard is capable of
     handling it.  Experiment with  caution  if  using  values  over
     5MB/s.


       Adaptec aha274x, aha284x, aic7xxx configuration
     These boards can accept an argument of the form:


     aic7xxx=extended,no_reset


     The  extended value, if non-zero, indicates that extended trans-
     lation for large disks is enabled.  The no_reset value, if  non-
     zero, tells the driver not to reset the SCSI bus when setting up
     the host adapter at boot.


       AdvanSys SCSI Hosts configuration (’advansys=’)
     The AdvanSys driver can accept up to  four  i/o  addresses  that
     will  be probed for an AdvanSys SCSI card.  Note that these val-
     ues (if used) do not effect EISA or  PCI probing in  any  way.
     They  are only used for probing ISA and VLB cards.  In addition,
     if the driver has been  compiled with  debugging enabled,  the
     level  of debugging  output  can be set by adding an 0xdeb[0-f]
     parameter.  The 0-f allows setting the level  of the  debugging
     messages to any of 16 levels of verbosity.


       AM53C974


     AM53C974=host-scsi-id,target-scsi-id,max-rate,max-offset


       BusLogic SCSI Hosts configuration (’BusLogic=’)


     BusLogic=N1,N2,N3,N4,N5,S1,S2,...


     For an extensive discussion of the BusLogic command line parame-
     ters,    see    /usr/src/linux/drivers/scsi/BusLogic.c (lines
     3149-3270 in  the  kernel  version  I am looking at).  The text
     below is a very much abbreviated extract.


     The parameters N1-N5 are integers.  The  parameters  S1,...  are
     strings. N1  is the  I/O Address at which the Host Adapter is
     located. N2 is the Tagged Queue Depth to use for Target Devices
     that  support Tagged Queuing.  N3 is the Bus Settle Time in sec-
     onds.  This is the amount of time to wait between a Host Adapter
     Hard Reset which initiates a SCSI Bus Reset and issuing any SCSI
     Commands. N4 is the Local Options (for one Host Adapter).   N5
     is the Global Options (for all Host Adapters).


     The string options are used to provide control over Tagged Queu-
     ing (TQ:Default, TQ:Enable,  TQ:Disable, TQ:<Per-Target-Spec>),
     over  Error  Recovery (ER:Default, ER:HardReset, ER:BusDeviceRe-
     set, ER:None, ER:<Per-Target-Spec>), and over Host Adapter Prob-
     ing (NoProbe, NoProbeISA, NoSortPCI).


       EATA/DMA configuration
     The default list of i/o ports to be probed can be changed by


     eata=iobase,iobase,....


       Future Domain TMC-16x0 configuration


     fdomain=iobase,irq[,adapter_id]


       Great Valley Products (GVP) SCSI controller configuration


     gvp11=dma_transfer_bitmask


       Future Domain TMC-8xx, TMC-950 configuration


     tmc8xx=mem_base,irq


     The  mem_base value is the value of the memory mapped I/O region
     that the card uses.  This will usually be one of the  following
     values: 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000.


       IN2000 configuration


     in2000=S


     where  S is  a comma-separated string of items keyword[:value].
     Recognized keywords  (possibly  with  value)  are:  ioport:addr,
     noreset, nosync:x,  period:ns,  disconnect:x,  debug:x, proc:x.
     For    the     function  of these   parameters,   see
     /usr/src/linux/drivers/scsi/in2000.c.


       NCR5380 and NCR53C400 configuration
     The boot arg is of the form


     ncr5380=iobase,irq,dma


     or


     ncr53c400=iobase,irq


     If  the  card  doesn’t  use interrupts, then an IRQ value of 255
     (0xff) will disable interrupts.  An IRQ value of 254  means  to
     autoprobe.   More details  can  be found in the file Documenta-
     tion/scsi/g_NCR5380.txt  (or  drivers/scsi/README.g_NCR5380  for
     older kernels) in the kernel source.


       NCR53C8xx configuration


     ncr53c8xx=S


     where  S is  a  comma-separated string of items keyword:value.
     Recognized keywords are: mpar (master_parity),  spar  (scsi_par-
     ity),  disc  (disconnection),  specf  (special_features), ultra
     (ultra_scsi), fsn (force_sync_nego), tags (default_tags),  sync
     (default_sync), verb (verbose),   debug   (debug), burst
     (burst_max).  For the  function  of  the assigned  values,  see
     /usr/src/linux/drivers/scsi/ncr53c8xx.c.


       NCR53c406a configuration


     ncr53c406a=iobase[,irq[,fastpio]]


     Specify  irq = 0 for non-interrupt driven mode.  Set fastpio = 1
     for fast pio mode, 0 for slow mode.


       Pro Audio Spectrum configuration
     The PAS16 uses a NC5380 SCSI  chip,  and newer  models  support
     jumperless configuration. The boot arg is of the form:


     pas16=iobase,irq


     The only difference is that you can specify an IRQ value of 255,
     which will tell the driver to  work  without  using  interrupts,
     albeit at a performance loss.  The iobase is usually 0x388.


       Seagate ST-0x configuration
     If your card is not detected at boot time, you will then have to
     use a boot arg of the form:


     st0x=mem_base,irq


     The mem_base value is the value of the memory mapped I/O region
     that  the card uses.  This will usually be one of the following
     values: 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000.


       Trantor T128 configuration
     These cards are also based on the NCR5380 chip, and  accept  the
     following options:


     t128=mem_base,irq


     The  valid values for mem_base are as follows: 0xcc000, 0xc8000,
     0xdc000, 0xd8000.


       UltraStor 14F/34F configuration
     The default list of i/o ports to be probed can be changed by


     eata=iobase,iobase,....


       WD7000 configuration


     wd7000=irq,dma,iobase


       Commodore Amiga A2091/590 SCSI controller configuration


     wd33c93=S


     where S is a  comma-separated  string  of options.   Recognized
     options  are  nosync:bitmask,  nodma:x, period:ns, disconnect:x,
     debug:x,   clock:x, next.    For     details,   see
     /usr/src/linux/drivers/scsi/wd33c93.c.


   Hard Disks
       IDE Disk/CD-ROM Driver Parameters
     The  IDE driver accepts a number of parameters, which range from
     disk geometry specifications, to support for  broken  controller
     chips.   Drive-specific  options are  specified by using ’hdX=’
     with X in ’a’-’h’.


     Non-drive-specific options are specified with the prefix ’hd=’.
     Note that using a drive-specific prefix for a non-drive-specific
     option will still work, and the option will just be  applied  as
     expected.


     Also  note  that ’hd=’ can be used to refer to the next unspeci-
     fied drive in the (a, ..., h) sequence.  For the following  dis-
     cussions, the  ’hd=’ option will be cited for brevity.  See the
     file  Documentation/ide.txt  (or drivers/block/README.ide   for
     older kernels) in the kernel source for more details.


       The ’hd=cyls,heads,sects[,wpcom[,irq]]’ options
     These  options  are used to specify the physical geometry of the
     disk.  Only the first three values  are  required.   The cylin-
     der/head/sectors values will be those used by fdisk.  The write
     precompensation value is ignored for IDE disks.  The  IRQ value
     specified will be the IRQ used for the interface that the drive
     resides on, and is not really a drive-specific parameter.


       The ’hd=serialize’ option
     The dual IDE interface CMD-640 chip is broken as designed  such
     that when drives on the secondary interface are used at the same
     time as drives on the primary interface, it  will corrupt  your
     data.  Using this option tells the driver to make sure that both
     interfaces are never used at the same time.


       The ’hd=dtc2278’ option
     This option tells the driver  that  you  have  a DTC-2278D  IDE
     interface.   The driver then tries to do DTC-specific operations
     to enable the second interface and  to  enable  faster  transfer
     modes.


       The ’hd=noprobe’ option
     Do not probe for this drive.  For example,


     hdb=noprobe hdb=1166,7,17


     would disable the probe, but still specify the drive geometry so
     that it would be registered as a valid block device,  and hence
     usable.


       The ’hd=nowerr’ option
     Some  drives  apparently have the WRERR_STAT bit stuck on perma-
     nently.  This enables a work-around for these broken devices.


       The ’hd=cdrom’ option
     This tells the IDE driver that there is an ATAPI compatible  CD-
     ROM  attached in place of a normal IDE hard disk. In most cases
     the CD-ROM is identified automatically, but  if  it  isn’t  then
     this may help.


       Standard ST-506 Disk Driver Options (’hd=’)
     The  standard  disk driver can accept geometry arguments for the
     disks similar to the IDE driver. Note  however that  it  only
     expects  three  values (C/H/S); any more or any less and it will
     silently ignore you.  Also, it only accepts ’hd=’ as  an argu-
     ment,  that is, ’hda=’ and so on are not valid here.  The format
     is as follows:


     hd=cyls,heads,sects


     If there are two disks installed, the above is repeated with the
     geometry parameters of the second disk.


       XT Disk Driver Options (’xd=’)
     If you are unfortunate enough to be using one of these old 8 bit
     cards that move data at a whopping  125kB/s  then here  is  the
     scoop.   If  the card is not recognized, you will have to use a
     boot arg of the form:


     xd=type,irq,iobase,dma_chan


     The type value specifies the  particular manufacturer  of  the
     card,  overriding autodetection. For the types to use, consult
     the drivers/block/xd.c source file of the kernel you are using.
     The  type is  an index in the list xd_sigs and in the course of
     time types have been added to or deleted from the middle of  the
     list,  changing all type numbers. Today (Linux 2.5.0) the types
     are 0=generic; 1=DTC 5150cx; 2,3=DTC 5150x; 4,5=Western Digital;
     6,7,8=Seagate;  9=Omti;  10=XEBEC,  and where here several types
     are given with the same designation, they are equivalent.


     The xd_setup() function does no  checking on  the  values,  and
     assumes  that you entered all four values.  Don’t disappoint it.
     Here is an example usage for a WD1002 controller with  the  BIOS
     disabled/removed, using the ’default’ XT controller parameters:


     xd=2,5,0x320,3


       Syquest’s EZ* removable disks


     ez=iobase[,irq[,rep[,nybble]]]


   IBM MCA Bus Devices
       See also /usr/src/linux/Documentation/mca.txt.


       PS/2 ESDI hard disks
     It is possible to specify the desired geometry at boot time:


     ed=cyls,heads,sectors.


     For a ThinkPad-720, add the option


     tp720=1.


       IBM Microchannel SCSI Subsystem configuration


     ibmmcascsi=N


     where N is the pun (SCSI ID) of the subsystem.


       The Aztech Interface
     The syntax for this type of card is:


     aztcd=iobase[,magic_number]


     If you set the magic_number to 0x79 then the driver will try and
     run anyway in the event of an  unknown  firmware version.   All
     other values are ignored.


       Parallel port CD-ROM drives
     Syntax:


     pcd.driveN=prt,pro,uni,mod,slv,dly
     pcd.nice=nice


     where  ’port’ is the base address, ’pro’ is the protocol number,
     ’uni’ is the unit selector (for chained devices), ’mod’  is  the
     mode  (or -1 to choose the best automatically), ’slv’ is 1 if it
     should be a slave, and ’dly’ is a small integer for slowing down
     port  accesses. The ’nice’ parameter controls the driver’s use
     of idle CPU time, at the expense of some speed.


       The CDU-31A and CDU-33A Sony Interface
     This CD-ROM interface is found on some of the Pro Audio Spectrum
     sound  cards, and other Sony supplied interface cards.  The syn-
     tax is as follows:


     cdu31a=iobase,[irq[,is_pas_card]]


     Specifying an IRQ value of zero tells the driver that  hardware
     interrupts  aren’t  supported  (as  on some PAS cards).  If your
     card supports interrupts, you should use them as it cuts down on
     the CPU usage of the driver.


     The  is_pas_card should be entered as ’PAS’ if using a Pro Audio
     Spectrum card, and otherwise it should not be specified at  all.


       The CDU-535 Sony Interface
     The syntax for this CD-ROM interface is:


     sonycd535=iobase[,irq]


     A zero  can  be used for the I/O base as a ’placeholder’ if one
     wishes to specify an IRQ value.


       The GoldStar Interface
     The syntax for this CD-ROM interface is:


     gscd=iobase


       The ISP16 CD-ROM Interface
     Syntax:


     isp16=[iobase[,irq[,dma[,type]]]]


     (three integers  and  a  string).  If  the  type is  given  as
     ’noisp16’,  the  interface will not be configured.  Other recog-
     nized types are: ’Sanyo", ’Sony’, ’Panasonic’ and ’Mitsumi’.


       The Mitsumi Standard Interface
     The syntax for this CD-ROM interface is:


     mcd=iobase,[irq[,wait_value]]


     The wait_value is used as an internal timeout value  for people
     who  are having problems with their drive, and may or may not be
     implemented depending on a compile-time  #define.  The  Mitsumi
     FX400  is an  IDE/ATAPI CD-ROM player and does not use the mcd
     driver.


       The Mitsumi XA/MultiSession Interface
     This is for the same hardware  as above, but  the  driver  has
     extended features.  Syntax:


     mcdx=iobase[,irq]


       The Optics Storage Interface
     The syntax for this type of card is:


     optcd=iobase


       The Phillips CM206 Interface
     The syntax for this type of card is:


     cm206=[iobase][,irq]


     The  driver assumes numbers between 3 and 11 are IRQ values, and
     numbers between 0x300 and 0x370 are I/O ports, so you can spec-
     ify  one, or  both  numbers,  in any  order.   It also accepts
     ’cm206=auto’ to enable autoprobing.


       The Sanyo Interface
     The syntax for this type of card is:


     sjcd=iobase[,irq[,dma_channel]]


       The SoundBlaster Pro Interface
     The syntax for this type of card is:


     sbpcd=iobase,type


     where type is one of the following  (case  sensitive)  strings:
     ’SoundBlaster’, ’LaserMate’, or ’SPEA’.  The I/O base is that of
     the CD-ROM interface, and not that of the sound portion  of  the
     card.


   Ethernet Devices
       Different  drivers  make use  of different parameters, but they all at
       least share having an IRQ, an I/O port base value, and a name.  In  its
       most generic form, it looks something like this:


     ether=irq,iobase[,param_1[,...param_8]],name


     The  first  non-numeric  argument is  taken  as the name.  The
     param_n values (if applicable) usually have  different  meanings
     for each different card/driver.  Typical param_n values are used
     to specify things like shared memory address,  interface selec-
     tion, DMA channel and the like.


     The  most common use of this parameter is to force probing for a
     second ethercard, as the default is to only probe for one.  This
     can be accomplished with a simple:


     ether=0,0,eth1


     Note  that  the  values  of zero for the IRQ and I/O base in the
     above example tell the driver(s) to autoprobe.


     The Ethernet-HowTo has extensive documentation on using multiple
     cards  and  on  the  card/driver-specific implementation of the
     param_n values where used.  Interested readers should  refer  to
     the section in that document on their particular card.


   The Floppy Disk Driver
       There  are many floppy driver options, and they are all listed in Docu-
       mentation/floppy.txt (or drivers/block/README.fd for older kernels)  in
       the  kernel source.  This information is taken directly from that file.


       floppy=mask,allowed_drive_mask
     Sets the bit mask of allowed drives to mask.  By default,  only
     units  0 and  1 of each floppy controller are allowed.  This is
     done because certain non-standard hardware  (ASUS  PCI  mother-
     boards)  mess up the keyboard when accessing units 2 or 3.  This
     option is somewhat obsoleted by the cmos option.


       floppy=all_drives
     Sets the bit mask of allowed drives to all drives.  Use this  if
     you  have more than two drives connected to a floppy controller.


       floppy=asus_pci
     Sets the bit mask to allow only units 0 and 1.  (The default)


       floppy=daring
     Tells the floppy driver that you have a well behaved floppy con-
     troller. This allows more efficient and smoother operation, but
     may fail on certain controllers. This  may  speed  up  certain
     operations.


       floppy=0,daring
     Tells  the  floppy  driver that your floppy controller should be
     used with caution.


       floppy=one_fdc
     Tells the floppy driver that you have  only  floppy  controller
     (default)


       floppy=two_fdc or floppy=address,two_fdc
     Tells  the  floppy  driver that you have two floppy controllers.
     The second floppy controller is assumed to be  at address.   If
     address is not given, 0x370 is assumed.


       floppy=thinkpad
     Tells the floppy driver that you have a Thinkpad. Thinkpads use
     an inverted convention for the disk change line.


       floppy=0,thinkpad
     Tells the floppy driver that you don’t have a Thinkpad.


       floppy=drive,type,cmos
     Sets the cmos type of drive to type.  Additionally,  this drive
     is  allowed  in  the  bit mask.  This is useful if you have more
     than two floppy drives (only two can be described in the physi-
     cal  cmos),  or if your BIOS uses non-standard CMOS types.  Set-
     ting the CMOS to 0 for the first two drives (default) makes  the
     floppy driver read the physical cmos for those drives.


       floppy=unexpected_interrupts
     Print a warning message when an unexpected interrupt is received
     (default behavior)


       floppy=no_unexpected_interrupts or floppy=L40SX
     Don’t print a message when an unexpected interrupt is  received.
     This  is needed on  IBM L40SX laptops in certain video modes.
     (There seems to be an interaction between video and floppy.  The
     unexpected interrupts only affect performance, and can safely be
     ignored.)


   The Sound Driver
       The sound driver can also accept boot args to override the compiled  in
       values. This  is  not recommended,  as  it is rather complex. It is
       described in the kernel source file  Documentation/sound/oss/README.OSS
       (drivers/sound/Readme.linux  in older  kernel versions).  It accepts a
       boot arg of the form:


     sound=device1[,device2[,device3...[,device10]]]


     where each deviceN value is of the following format 0xTaaaId and
     the bytes are used as follows:


     T -  device  type:  1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16,
     7=SB16-MPU401


     aaa - I/O address in hex.


     I - interrupt line in hex (i.e 10=a, 11=b, ...)


     d - DMA channel.


     As you can see it gets pretty messy, and you are better  off  to
     compile  in  your own  personal values as recommended.  Using a
     boot arg of ’sound=0’ will disable the sound driver entirely.


   ISDN Drivers
       The ICN ISDN driver
     Syntax:


     icn=iobase,membase,icn_id1,icn_id2


     where icn_id1,icn_id2 are two strings used to identify the  card
     in kernel messages.


       The PCBIT ISDN driver
     Syntax:


     pcbit=membase1,irq1[,membase2,irq2]


     where  membaseN  is the shared memory base of the N’th card, and
     irqN is the interrupt setting of the N’th card.  The default  is
     IRQ 5 and membase 0xD0000.


       The Teles ISDN driver
     Syntax:


     teles=iobase,irq,membase,protocol,teles_id


     where iobase is the i/o port address of the card, membase is the
     shared memory base address of the card,  irq  is the  interrupt
     channel  the  card uses, and teles_id is the unique ASCII string
     identifier.


   Serial Port Drivers
       The RISCom/8 Multiport Serial Driver (’riscom8=’)
     Syntax:


     riscom=iobase1[,iobase2[,iobase3[,iobase4]]]


     More  details  can   be found in   /usr/src/linux/Documenta-
     tion/riscom8.txt.


       The DigiBoard Driver (’digi=’)
     If this option is used, it should have precisely six parameters.
     Syntax:


     digi=status,type,altpin,numports,iobase,membase


     The parameters maybe given  as  integers, or  as strings.   If
     strings  are  used,  then iobase and membase should be given in
     hexadecimal.  The integer arguments (fewer may be given) are  in
     order:   status (Enable(1)  or Disable(0)  this  card),  type
     (PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)),  altpin  (Enable(1)
     or  Disable(0)  alternate pin arrangement), numports (number of
     ports on this card), iobase (I/O Port where card is  configured
     (in  HEX)), membase (base of memory window (in HEX)).  Thus, the
     following two boot prompt arguments are equivalent:


     digi=E,PC/Xi,D,16,200,D0000
     digi=1,0,0,16,0x200,851968


     More details can be found in  /usr/src/linux/Documentation/digi-
     board.txt.


       The Baycom Serial/Parallel Radio Modem
     Syntax:


     baycom=iobase,irq,modem


     There  are  precisely 3 parameters; for several cards, give sev-
     eral ’baycom=’ commands. The modem parameter is a  string  that
     can  take one of the values ser12, ser12*, par96, par96*.  Here
     the * denotes that software DCD is to be used,  and  ser12/par96
     chooses  between the  supported modem types.  For more details,
     see    the    file    Documentation/networking/baycom.txt   (or
     drivers/net/README.baycom for  older  kernels)  in  the kernel
     source.


       Soundcard radio modem driver
     Syntax:


     soundmodem=iobase,irq,dma[,dma2[,serio[,pario]]],0,mode


     All parameters except the last are  integers;  the  dummy 0  is
     required because of a bug in the setup code.  The mode parameter
     is a string with syntax hw:modem, where hw is one of  sbc,  wss,
     wssfdx and modem is one of afsk1200, fsk9600.


   The Line Printer Driver
       ’lp=’  Syntax:


     lp=0
     lp=auto
     lp=reset
     lp=port[,port...]


     You can tell the printer driver what ports to use and what ports
     not to use.  The latter comes in handy if you  don’t  want  the
     printer  driver  to  claim all available parallel ports, so that
     other drivers (e.g., PLIP, PPA) can use them instead.


     The format of the argument is multiple port names.  For example,
     lp=none,parport0 would use the first parallel port for lp1, and
     disable lp0.  To disable the printer driver  entirely,  one  can
     use lp=0.


       WDT500/501 driver
     Syntax:


     wdt=io,irq


   Mouse Drivers
       ’bmouse=irq’
     The  busmouse  driver only accepts one parameter, that being the
     hardware IRQ value to be used.


       ’msmouse=irq’
     And precisely the same is true for the msmouse driver.


       ATARI mouse setup


     atamouse=threshold[,y-threshold]


     If only one argument is given, it is used for  both  x-threshold
     and y-threshold. Otherwise, the first argument is the x-thresh-
     old, and the second the  y-threshold.   These  values  must  lie
     between 1 and 20 (inclusive); the default is 2.


   Video Hardware
       ’no-scroll’
     This  option tells the console driver not to use hardware scroll
     (where a scroll is effected by moving the screen origin in video
     memory,  instead of moving the data).  It is required by certain
     Braille machines.


SEE ALSO
       lilo.conf(5), klogd(8), lilo(8), mount(8), rdev(8)


       Large parts of this man page have been derived from the Boot  Parameter
       HOWTO  (version 1.0.1) written by Paul Gortmaker.  More information may
       be found in this (or a more recent) HOWTO.   An up-to-date  source  of
       information is /usr/src/linux/Documentation/kernel-parameters.txt.


COLOPHON
       This  page  is  part of release 3.22 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at http://www.kernel.org/doc/man-pages/.






Linux  2007-12-16  BOOTPARAM(7)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值