The following sections answer some of the more frequently asked questions regarding hardware and usage with Linux.
To get the kernel to recognize more than 64MB of RAM, either specify it at boot time by adding mem=XXXM after the image name (label) you want to boot with, or set it as parameter, thus making it permanent, by adding
append=``mem=XXXM''
to your /etc/lilo.conf file (do not forget to rerun lilo after this).
Here is a fragment from bootparam(7)
`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 determine 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
horribly 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.''
To make the kernel see additional ethernet cards, you should either pass
the parameter ether=IRQ,i/o addr,device at boot time,
For example:
boot: Linux ether=5,0x320,eth0
or specify it in lilo.conf file
image=/boot/vmlinuz
label=linux
append=``ether=5,0x320,eth0''
root=/dev/hda2
read-only
Note that this will only work for drivers that are compiled into the kernel. If the driver is a module, then you need to specify the parameters in /etc/modules.conf, e.g.
alias eth0 3c509
options eth0 irq=10 io=0x320
alias eth1 3c509
options eth1 itq=11 io=0x300
There is a good resource covering this subject avaliable on the Internet at http://www.bitwizard.nl/sig11/
NOTEYou may also be getting signal 6 which may either be caused by hardware failures, or older gcc compiler which gets crashed while trying to compile certain pieces of code.
All Win* things are brain-dead. However there's some chance to get WinModem or WinPrinter under Linux. Ghostscript now has support for some WinPrinters. But since the actual idea is that Win-devices are just very simplified things, where lots of things are to be done by specific Windows drivers you'd better abstain getting these things, since they will un-doubtfully decrease your box performance, will use a lot of your machine CPU and generally will hog machine.
RemarkSadly, vendors of WinPrinters and WinModems have been pressured by M$ to withhold programming information, so lots of Win-devices still aren't supported in Linux world.
Basically, the general trouble which could appear here,is that machine couldn't boot either Linux nor other OS after lilo screwed up the master boot record of the hard disk.
The suitable solution,which was used by one mailing list members, is:
If you decide to continue to try and use lilo, be sure to not use the MBR of the first disk, as that is where the NT boot loader resides. Use the boot sector of the first partition, i.e., /dev/hda1 instead of /dev/hda.