mirror of
git://slackware.nl/current.git
synced 2024-12-25 09:58:55 +01:00
5a12e7c134
Wed Aug 26 10:00:38 CDT 2009 Slackware 13.0 x86_64 is released as stable! Thanks to everyone who helped make this release possible -- see the RELEASE_NOTES for the credits. The ISOs are off to the replicator. This time it will be a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. We're taking pre-orders now at store.slackware.com. Please consider picking up a copy to help support the project. Once again, thanks to the entire Slackware community for all the help testing and fixing things and offering suggestions during this development cycle. As always, have fun and enjoy! -P.
546 lines
20 KiB
Text
546 lines
20 KiB
Text
Sun Oct 1 23:00:46 CDT 2006
|
|
|
|
NOTE: If you are interested in booting your system using PXE, a USB stick,
|
|
or a mini-ISO (which may then be used to start network (NFS) installations)
|
|
see Eric Hameleers' helpful page at this location:
|
|
|
|
http://slackware.com:/~alien
|
|
|
|
Since this is the 'BOOTING' file, pointing out the alternate installers
|
|
would be the on-topic thing to do here, but I'll also note that everything
|
|
else there is also pretty good, except that part where Alien BOB tries to
|
|
get people to gang up on me and get all of this stuff included. Shame,
|
|
shame! ;-) I'm trying to cobble together an operating system here, not
|
|
bundle every application on the planet! We're already at six ISO images,
|
|
and DVD5 is looking small! OK, just kidding. (mostly ;-) Eric's done a
|
|
massive amount of work on Slackware gratis, and we should all thank him
|
|
for the more complete and pleasant Slackware we now enjoy. :-)
|
|
|
|
All that said, most of this file after this is about 10 years old and I'm
|
|
not sure how much (if any) of it still pertains to modern Linux. In most
|
|
cases Slackware on a DVD (or the first disc) should just boot automatically
|
|
from the primary DVD drive. Or, if you're booting from CD the first one
|
|
is the bootable one. Sometimes you need to go into the machine's BIOS and
|
|
make some adjustments to make the system boot from optical media (be
|
|
careful in there!)
|
|
|
|
This file contains some helpful (hopefully! :^) information on what to do if
|
|
your Linux system won't boot properly.
|
|
|
|
Section 1: What to do if after the installation process, the machine will
|
|
not boot.
|
|
|
|
This problem is not uncommon. The reason for it is that the kernel your system
|
|
tries to boot after installation is not the same as the one used to install (the
|
|
bootdisk kernel). Typically the kernel that is installed to your hard drive
|
|
will contain more device drivers, and sometimes one of them won't like some
|
|
piece of hardware in your machine.
|
|
|
|
There are a couple of approaches that can be used to deal with this situation.
|
|
Perhaps the simplest solution is to open up the machine and pull any cards that
|
|
aren't crucial, and then try to reboot the system. If this is successful, then
|
|
follow the instructions in the FAQ.TXT for building and installing a kernel
|
|
that is customized for your hardware.
|
|
|
|
Another approach (that doesn't involve opening the machine) is to try to use the
|
|
bootdisk you installed with to kickstart the system. To do this, boot the disk
|
|
and then use the "mount" option to have the kernel boot the root partition on
|
|
your hard drive rather that a root/install disk. Let's assume your root Linux
|
|
partition is on /dev/hda2. To boot the system, you'd use this command at the
|
|
Syslinux "boot:" prompt on the bootdisk:
|
|
|
|
mount noinitrd ro root=/dev/hda2
|
|
|
|
If you installed using the Slackware CDROM, you should boot from this CDROM
|
|
again and then load the kernel you used while installing, with additional
|
|
parameters to make it mount your hard drive's root partition. Let's assume
|
|
your root Linux partition is on /dev/hda2 and you used the 'sata.i' kernel.
|
|
To boot the system, you'd enter this command at the "boot: " prompt:
|
|
|
|
sata.i root=/dev/hda2 noinitrd ro
|
|
|
|
|
|
Section 2: Trying to get the kernel to detect hardware.
|
|
|
|
The first thing you should do is make sure you're using a kernel that supports
|
|
the hardware you're trying to use. If it doesn't, you've got a few options for
|
|
how to add the support. You can compile a custom kernel of your own, or you
|
|
can look for an appropriate pre-compiled kernel in the /kernels directory.
|
|
Another approach is to try loading a kernel module to add the extra support you
|
|
need. This is usually the fastest and easiest way to get a device working, so
|
|
you might want to try it first. Use 'vi' (or some other editor) to edit the
|
|
file /etc/rc.d/rc.modules. Look for a module that supports the hardware you
|
|
want to get working, remove the '#' from the beginning of the line, and fill in
|
|
any extra parameters that the module might require.
|
|
|
|
If you install a new kernel, be sure to reinstall LILO afterwards (if you use
|
|
it). For more details on installing a kernel, see the FAQ.TXT.
|
|
|
|
There are a number of extra parameters that can be used on the LILO bootdisk
|
|
prompt, with Loadlin, or in your /etc/lilo.conf. These flags help tell the
|
|
kernel which I/O port, IRQ, and so forth, that a particular piece of hardware
|
|
uses, so that if the kernel doesn't see a peripheral while autoscanning you
|
|
should be able to force detection by telling the kernel exactly where to look.
|
|
|
|
To use an extra flag with a bootdisk, put the flags after the standard command
|
|
used to boot the system. So, to boot /dev/hda2 and try to force detection of
|
|
a Mitsumi CD-ROM drive with Mitsumi interface card, you might use something
|
|
like this at the LILO prompt:
|
|
|
|
mount root=/dev/hda2 mcd=0x300,11
|
|
|
|
To use a parameter with Loadlin, just add it to the end of the boot command
|
|
in a similar fashion:
|
|
|
|
loadlin vmlinuz root=/dev/hda2 mcd=0x300,11
|
|
|
|
Or, you can enclose the parameters in an append="" and add the line to your
|
|
/etc/lilo.conf. Don't forget to reinstall lilo after editing the
|
|
/etc/lilo.conf. To do this, just type "lilo" as root.
|
|
|
|
Here's how the line you'd add to your /etc/lilo.conf looks:
|
|
|
|
append="mcd=0x300,11"
|
|
|
|
Here is a list of known kernel parameters from the Loadlin documentation:
|
|
|
|
LOADLIN 1.5 ((C) 1994 lermen@elserv.ffm.fgan.de)
|
|
and
|
|
Linux version: 0.99.14, 0.99.15, 1.0, 1.1.47
|
|
|
|
This is a list of command line parameters recognized and interpreted by:
|
|
========================================================================
|
|
|
|
1. LOADLIN
|
|
ramdisk=size (size in Kbytes)
|
|
or
|
|
ramdisk=size,no (same as above, but disk change prompt disabled)
|
|
e.g.: ramdisk=1440,no
|
|
vga=mode
|
|
|
|
2. The Linux kernel
|
|
mem=number (for > 0.99.15, number = end of physical memory in bytes)
|
|
root=device
|
|
ro
|
|
rw
|
|
no387
|
|
debug sets console_loglevel = 10
|
|
no-hlt disables check of HLT instruction at startup
|
|
|
|
3. init
|
|
single
|
|
auto
|
|
ro,rw,no387 (forwarded from the kernel)
|
|
|
|
4. Some drivers
|
|
reserve=port1,num1,...,port5,num5 #reserves 80x86 ioports
|
|
ether=irq,base_addr,mem_start,mem_end,dev_name
|
|
hd=cyl,head,sect # for 2 drives you need this twice
|
|
# first relates to drive 0
|
|
bmouse=irq
|
|
max_scsi_luns=n # (n should be between 1 and 8)
|
|
st0x=base_address,irq # SEAGATE controller ST01/ST02
|
|
tmc8xx=base_address,irq # Future Domain TMC-885,TMC-950
|
|
t128=address,irq # Trantor T128/T128F/T228
|
|
ncr5380=port,irq,dma # Generic NCR5380 driver
|
|
aha152x=portbase,irq,scsiid,reconnect # Adaptec AHA-152x driver
|
|
cdu31a=portbase,irq,PAS # Sony CDU-31a. Third parameter
|
|
# should be "PAS" if on a Pro-Audio Spectrum, or
|
|
# nothing if on something else.
|
|
xd=type,irq,iobase,dma
|
|
mcd=port,irq
|
|
sound=0x0TTPPPID, ..
|
|
sbpcd=sbport,SoundBlaster
|
|
sbpcd=LMport,LaserMate
|
|
sbpcd=SpeaFXport,SPEA
|
|
|
|
|
|
5. Environment
|
|
All parameters of format name=xxxx which are not recognized by
|
|
the kernel or a driver are put onto the environment.
|
|
|
|
LOADLIN itself always puts BOOT_IMAGE=imagefile onto the environ-
|
|
ment. The user may put additional values onto the environment in
|
|
order to allow /etc/rc to behave differently for a given condition.
|
|
|
|
|
|
==============================================================================
|
|
|
|
Following are detailed descriptions:
|
|
|
|
|
|
Parameters recognized by LOADLIN:
|
|
=================================
|
|
|
|
root=device
|
|
-----------
|
|
device may be a symbolic device name such as "/dev/hda2"
|
|
or the numeric device number (hex)
|
|
(highbyte=major, lowbyte=minor)
|
|
recognized symbolic devices (with their partitions) are:
|
|
"hda", "hdb", "sda", "sdb", "sdc", "sdd", "sde",
|
|
"fd", "xda", "xdb"
|
|
|
|
There is a problem:
|
|
|
|
Linux interprets the number following "/dev/hda" as a HEX number,
|
|
The device names in /dev of the Slackware distribution, however,
|
|
are numbered /dev/hda1 .. hda9 .. hda10 .. hda16,
|
|
instead of /dev/hda1 .. hda9 .. hdaa .. hdaf as Linus would have done.
|
|
|
|
So, starting with version 1.3 of LOADLIN, I interpret the root device
|
|
myself and pass the device numerically in the boot sector.
|
|
My naming convention is a compromise which I hope will result in
|
|
fewer irritations:
|
|
|
|
If the number following "/dev/hda, hdb, sda ..."
|
|
starts with 0, 0x or a..f, it is interpreted as a HEX number.
|
|
If it starts with 1..9 it is interpreted as a decimal number.
|
|
If none is appropriate, the string is passed to the command line.
|
|
(some later kernel versions may have other device names).
|
|
|
|
Examples:
|
|
root=302
|
|
root=0x201
|
|
root=/dev/hda2
|
|
root=/dev/sdaa same as root=/dev/sda10 or /dev/sda0xa
|
|
|
|
Ramdisk size option (used with 1.2.x kernels)
|
|
|
|
ramdisk=size
|
|
------------
|
|
size number of Kbytes for the RAMDISK device.
|
|
The image for the ramdisk is loaded by the
|
|
kernel at startup from a floppy drive, if
|
|
root=/dev/fdx is also given.
|
|
After loading the image, the kernel then makes
|
|
the ramdisk the root device (NOT the floppy).
|
|
In addition to this, LOADLIN prompts for inserting
|
|
the ramdisk image into the floppy drive if it no
|
|
longer needs the drive (i.e. after loading the kernel).
|
|
|
|
Ramdisk options for new (1.3.x and 2.0.x) kernels
|
|
|
|
load_ramdisk=1
|
|
--------------
|
|
This option tells the kernel that you wish to load
|
|
a ramdisk. With new Linux kernels, a size does not
|
|
need to be specified -- the kernel will dynamically
|
|
allocate the needed memory as the kernel is loaded.
|
|
|
|
prompt_ramdisk=1
|
|
----------------
|
|
|
|
This option tells the kernel that you wish to be prompted
|
|
to insert the ramdisk before the kernel tries to load it.
|
|
Useful when loading the ramdisk from floppy disk.
|
|
|
|
vga=mode
|
|
--------
|
|
mode -3 the user is asked to specify the VGA mode
|
|
ask equal to -3
|
|
-2 80x50 extended VGA mode
|
|
extended equal to -2
|
|
-1 80x25 normal mode
|
|
normal equal to -1
|
|
0 as if "0" was entered at the boot prompt
|
|
.
|
|
.
|
|
n as if the number "n" was entered at the boot prompt
|
|
|
|
ro
|
|
--
|
|
"ro" forces the root device to be mounted read-only (Not for UMSDOS!)
|
|
|
|
rw
|
|
--
|
|
"rw" forces the root device to be mounted read/write.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Parameters recognized only by the kernel:
|
|
=========================================
|
|
|
|
mem=number
|
|
----------
|
|
number End of physical RAM, this is recognized by kernels
|
|
of 0.99.15 and higher and is useful if the exact
|
|
installed RAM size cannot be determined automatically.
|
|
|
|
root=device
|
|
-----------
|
|
device May be a symbolic device name such as "/dev/hda2"
|
|
or the numeric device number (highbyte=major, lowbyte=minor)
|
|
Recognized symbolic devices (with their partitions) are:
|
|
"hda", "hdb", "sda", "sdb", "sdc", "sdd", "sde",
|
|
"fd", "xda", "xdb"
|
|
But NOTE: old kernels < 1.1.47 have xda=0xC00, xdb=0xC40
|
|
newer kernels have xda=0xD00, xdb=0xD40
|
|
example:
|
|
root=302
|
|
root=/dev/hda2
|
|
|
|
!! NOTE: Older kernels ( below Linux 1.0.5 ) have a little bug in
|
|
!! (init/main.c), but it is of little concern:
|
|
!! The last part of the symbolic device name ("hda2") is
|
|
!! passed as option parameter to init, so init will
|
|
!! say "illegal option", but continue without errors.
|
|
!!
|
|
!! Of greater concern is the too-small static buffer
|
|
!! "command_line" (80 bytes, in init/main.c). It is
|
|
!! preferable to set it to 512 and recompile the kernel.
|
|
!!
|
|
!! This bug is fixed with Linux 1.0.5, the "command_line"
|
|
!! is now 256 by default and (if needed ) can easily be changed
|
|
!! with #define COMMAND_LINE_SIZE xxxx in init/main.c (to a
|
|
!! maximum size of 2047).
|
|
|
|
|
|
no387
|
|
-----
|
|
"no387" disables use of the hardware math coprocessor.
|
|
|
|
since 1.1.47 (or perhaps earlier) the following options are no more
|
|
passed to init:
|
|
|
|
ro,rw,no387
|
|
-----------
|
|
|
|
|
|
the following are new:
|
|
|
|
|
|
debug sets console_loglevel = 10
|
|
-----
|
|
|
|
no-hlt
|
|
------
|
|
disables check of HLT instruction at startup.
|
|
If you have a clone 486, this option is *very* useful.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Option Parameters recognized by "init":
|
|
=======================================
|
|
|
|
single
|
|
------
|
|
Enter "single user mode" on boot
|
|
|
|
|
|
auto
|
|
----
|
|
|
|
ro,rw,no387 (forwarded from kernels < 1.1.47). (see !!comment!! above)
|
|
-----------
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
Configuration of ethernet cards:
|
|
================================
|
|
|
|
ether=irq,base_addr,mem_start,mem_end,dev_name
|
|
---------------------------------------------
|
|
irq number, IRQ-number (3..15)
|
|
base_addr number, IO-base (0x280,...)
|
|
mem_start number, shared mem start
|
|
mem_end number, shared mem end
|
|
dev_name string,
|
|
eth0..3 all configured ethernetcards
|
|
dl0 D-Link DE600 pocket adaptor
|
|
atp0 AT-LAN-TEC (RealTek) pocket adaptor
|
|
plip0..2 parallel IP (PLIP)
|
|
sl0..3 serial IP (SLIP)
|
|
example:
|
|
ether=10,0x280,0xc8000,0xcbfff,eth0
|
|
|
|
related files: net/inet/eth.c, drivers/net/Space.c
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Reserving I/O port space:
|
|
=========================
|
|
|
|
reserve=port1,num1,...,port5,num5
|
|
---------------------------------
|
|
|
|
portn first IOport-address in range
|
|
numn number of addresses in this range to reserve
|
|
(there will be bits set to "1" in "ioport_register")
|
|
|
|
related files: kernel/ioport.c
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Setting hard disk parameters for the root device:
|
|
=================================================
|
|
|
|
hd=cyl,head,sect
|
|
---------------
|
|
# NOTE: if you have two drives, you must put
|
|
# two hd= params into the commandline
|
|
# the first for drive 1, the second for drive 2
|
|
# eg.
|
|
# loadlin zimage hd=1001,15,17 hd=989,15,56 root=/dev/hdb2 ro
|
|
# (this example from my machine however is not needed,
|
|
# you need it only, if Linux can't get the drive params properly
|
|
# from the BIOS).
|
|
related files: drivers/block/hd.c
|
|
config: CONFIG_BLK_DEV_HD
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Setting the IRQ for the bus-mouse:
|
|
==================================
|
|
|
|
bmouse=irq
|
|
----------
|
|
related files: drivers/char/busmouse.c
|
|
config: CONFIG_BUSMOUSE
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Parameters for SCSI controllers:
|
|
================================
|
|
|
|
max_scsi_luns=n (n should be between 1 and 8)
|
|
|
|
st0x=base_address,irq SEAGATE controller ST01/ST02
|
|
|
|
tmc8xx=base_address,irq Future Domain TMC-885,TMC-950
|
|
|
|
t128=address,irq Trantor T128/T128F/T228
|
|
|
|
ncr5380=port,irq,dma Generic NCR5380 driver
|
|
|
|
aha152x=portbase,irq,scsiid,reconnect Adaptec AHA-152x driver
|
|
|
|
|
|
|
|
related files: drivers/scsi/seagate.c, t128.c, g_NCR5380.c, aha152x.c
|
|
|
|
config: CONFIG_SCSI_SEAGATE, CONFIG_SCSI_T128,
|
|
CONFIG_SCSI_GENERIC_NCR5380, CONFIG_SCSI_AHA152X
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Parameters for SCSI Tapes:
|
|
=========================
|
|
|
|
st=buffer_size,write_threshould,max_buffers
|
|
|
|
buffer_size Size of tape buffer in Kbyte (i.e. ST_BLOCK_SIZE)
|
|
write_threshould Number of Kbytes to buffer before write.
|
|
(must be < buffer_size)
|
|
max_buffers Number of buffers to reserve
|
|
|
|
related files: drivers/scsi/st.c
|
|
config: CONFIG_CHR_DEV_ST
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Parameter for XT hard disk controller (DTC 5150X):
|
|
==================================================
|
|
|
|
xd=type,irq,iobase,dma
|
|
----------------------
|
|
|
|
related files: drivers/block/xd.c
|
|
config: CONFIG_BLK_DEV_XD
|
|
|
|
------------------------------------------------------------------------------
|
|
Parameter for Sony CDU-31/33a CDROM driver:
|
|
===========================================
|
|
|
|
cdu31a=iobase,irq,PAS
|
|
---------------------
|
|
|
|
related files: drivers/block/cdu31a.c
|
|
include/linux/cdu31a.h
|
|
config: CONFIG_CDU31A
|
|
|
|
WARNING - All autoprobes have been removed from the driver.
|
|
You MUST configure the CDU31A via a LILO config
|
|
at boot time or in lilo.conf. I have the
|
|
following in my lilo.conf:
|
|
|
|
append="cdu31a=0x1f88,0,PAS"
|
|
|
|
The first number is the I/O base address of the
|
|
card. The second is the interrupt (0 means none).
|
|
The third should be "PAS" if on a Pro-Audio
|
|
spectrum, or nothing if on something else.
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
Parameter for Mitsumi CDROM driver:
|
|
===================================
|
|
|
|
mcd=port,irq
|
|
------------
|
|
|
|
related files: drivers/block/mcd.c
|
|
config: CONFIG_MCD
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Parameter for sound cards:
|
|
==========================
|
|
|
|
sound=0x0TTPPPID, ..
|
|
----------------
|
|
all values are embedded in one longint, the above format
|
|
shows a hex number, each place is a hex-digit
|
|
|
|
TT Supported card type.
|
|
This is the index into the list of configured cards
|
|
If all cards are configured (which normally is not the case)
|
|
the following order is kept:
|
|
Roland MPU-401
|
|
Gravis Ultrasound
|
|
ProAudio Spectrum
|
|
SoundBlaster
|
|
SoundBlaster 16
|
|
SB16 MPU-401 (SB16-MIDI port)
|
|
AdLib
|
|
|
|
PPP Port Address
|
|
|
|
I IRQ
|
|
|
|
D DMA Channel
|
|
|
|
|
|
related files: drivers/sound/dev_table.h,dev_table.c
|
|
config: CONFIG_SOUND
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Parameter for IDE-style CD-ROM device driver (Kotobuki/Matsushita/Panasonic):
|
|
=============================================================================
|
|
|
|
sbpcd=sbport,SoundBlaster
|
|
------------------------
|
|
sbpcd=LMport,LaserMate
|
|
----------------------
|
|
sbpcd=SpeaFXport,SPEA
|
|
----------------------
|
|
|
|
sbport soundblaster base port +0x10 (i.e 0x230 = 0x220+0x10)
|
|
LMport MPU-type port at 0x300 or equivalent
|
|
SpeaFXport base port on SpeaFX card
|
|
|
|
related files: drivers/block/sbpcd.c
|
|
config: CONFIG_SBPCD
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|