Linux kernel version 2.0.xx
The following is a release instructions for the Linux 2.0 version. Please read it carefully, you will know how to install the kernel and how to solve all the contents of the error.
Where is Linux come from?
Linux is Linus Torvalds I have accidentally written by the Internet by the Internet in the help of freely combined hacker teams. Its goal is to follow the POSIX (Portable Operating System Interface for Computer Environment - the portable operating system interface) standard.
Linux has all the features you expect on a modern fully integrated UNIX machine. These include: real multitasking (execution), virtual memory, shared library, on-demand (kernel), shared 'copy-write' executability, unique memory management in a TCP / IP protocol.
Linux is distributed to the GNU's ordinary public license. To get more details, please refer to additional copy documents.
What kind of hardware is running?
Linux is first developed based on the 386/486 architecture. In recent days, Linux can also be operated on Dec Alphas, Sun Sparcs, M68000 Machines (similar to ATARI and Amiga), MIPS AND PowerPC.
Documentation:
There is a large amount of electronic form on the Internet and an affiliate document information about UNIX issues, and can be obtained from books. I personally recommend going to query the document directory for the LDP (Linux Documentation Project) book under any Linux FTP site. This ReadMe does not mean that true documentation is true: there is better resources that can be referred to.
The README file / sub-document directory of a wide variety of kernel documents in LDP: these things have representatively containing specific instructions for kernel installations, such as drivers, etc. Refer to ./Documentation/00-index as a list that needs to be made in each file.
Nuclear installation:
If you want to install all source code, follow the steps below:
CD / USR / SRC
Gzip -cd Linux-2.0.xx.tar.gz | TAR XFV -
Unfold all source files to the appropriate position. Replace "XX" with the latest version number of the kernel.
You can also update different 2.0.xx kernel versions using the added mode. Each patch contains only patchs for the 2.0.xx version bug that have been released. There is no new feature to add to the Linux kernel unless the 2.1.xx version starts formal development. Want to install by adding, first get all the latest positives and then do:
CD / USR / SRC
gzip -cd patchxx.gz | patch -p0
(Repeat XX all than you currently have the source tree version value), you should have OK. You may also want to delete the backup file, please determine all successfully installed patches. But if there is a patch that has failed, there is something wrong.
You can also select the kernel patch installation of the script program, and the installation process will be automatically performed. This approach is determined by the current kernel version and any of the supplied patches.
CD / USR / SRC
Linux / scripts / patch-kernel
The default directory of the kernel source code is / usr / src / linux, but can be specified as the first parameter. The patch is supplied from the first directory, but can specify the selected directory as the second specified parameter.
Please confirm your / usr / include / asm, / usr / include / linux and / usr / include / scsi directory already link to the kernel source code:
CD / usr / include
RM-RF ASM Linux Scsiln -S / USR / SRC / Linux / include / ASM-I386 ASM
Ln -s / usr / src / linux / include / linux linux
LN -S / USR / SRC / Linux / include / SCSI SCSI
Confirm that there is no showing .o file and mutual dependencies:
CD / USR / SRC / Linux
Make Mrproper
Now you should have been configured correctly.
Configure the kernel:
The "make config" command is run to form a basic kernel. The "make config" command needs to work under Bash: It will search for Bash in the $ PATH variable, whether there is / bin / bash and / bin / sh, so I hope that some of them is already correct.
Alternatively selectable construction commands are:
"Make MenuConfig" is based on a color menu, selects a text configuration tool for a list and dialog.
Configuration Construction Tools under the "Make Xconfig" X interface.
Notes On "make config":
- Having Unnecessary Drivers Will Make The Kernel Bigger, And Can
Under Some Circumstances Lead to Problems: Probing for a
Nonexistent Controller Card May Confuse Your Other Controllers
- Compiling The Kernel with "Processor Type" set higher Than 386
Will Result in a kenergy this does not work on a 386. The
Kernel Will Detect this on bootup, and give up.
- a kernel with maath-emulation completed in Will Still Use the
Coprocessor if One is present: The Math Emulation Will Just
Never Get Used In That Case. The Kernel Will Be Slightly Larger,
But Will Work On Different Machines Regardless of Whather They
Have a Math Coprocessor or Not.
- The "kernel Hacking" Configuration Details Usually Result in A
Bigger or Slower Kernel (or Both), And Can Even Make the Kernel
Less Stable by Configuring Some Routines TO Actively Try To
Break Bad Code to Find Kernel Problems (kmalloc ()). Thus you
SHOULD PROBABLY ANSWER 'N' TO The Questions for a "Production"
Kernel.
Check the top Makefile for further position.
Finally, run the command "Make DEP" to correctly establish all dependencies.
Nuclear compilation:
Confirm that you have a version of GCC-2.6.3 or higher. Experience shows that the use of lower versions of GCC will generate some problems when compiling updates Linux kernels. If you update the compiler, please remember to make sure you get a new binary utility package.
Use the command "make zimage" to generate a compressed kernel image file. If you want to make a boot disk (without boot file system or lilo), insert the floppy disk, run the command "make ZDisk". If you install the appropriate kernel Makefiles with lilo, you can also run the command "make Zlilo", but it is best to check your dedicated Lilo installer before doing this. If your kernel is too large, you can use the "Make Bzimage" command instead of "make zimage".
If you have configured any part of the kernel with "MODULES", you will do next to run "Make Mode" and "Make Mode" commands in turn. Can read Documentation / Modules.txt
To get more information. For example, there is an explanation of how to use Modules.
Making a backup of the kernel to use when an error occurs. It is quite meaningful for development versions because the code in each new version is not tested.
Want to start your new kernel, you also need to copy a kernel microscope icon file (you can find after compiling) to the normal boot kernel where you can find it in / usr / src / linux / arch / i386 / boot / zimage) . For some cases, this storage is placed on a floppy disk, and in this case, you can use the command "CP / USR / SRC / Linux / Arch / i386 / boot / zimage / dev / fd0" to make a boot floppy disk. Note that for Linux core 2.0.0, the kernel will take up 720K double-sided 3.5-inch floppy disk. For this situation, it is recommended that you install LILO's launch floppy drive or a larger capacity floppy drive in your double-sided storage. If you use a hard drive as a boot Linux, / etc / lilo.conf file records a special kernel image that you use by Lilo. The kernel mirroring file is usually possible / vmlinuz, or / zimage, or / etc / zimage. In order to use a new kernel, copy the new mirror icon overwritten the original (a backup for the original image). Recent LILO is usually starting / sbin / lilo method. You can also edit /etc/lilo.conf to guide your original kernel image (such as, /VMLINUX.OLD), so the new kernel will not work. Please refer to the LILO document for more information.
After re-updating LILO, you should do it. Turn off the system and restart and experience the new kernel.
If you need to change the default boot device, video mode, random disk in the kernel, use the 'RDEV' programming (you can also select the LILO boot option at startup). You don't need to change these parameters and don't need to recompile the kernel. After restarting the machine, experience the new kernel.
If there is an error:
If you go directly to see the bugs of the kernel, there is difficult, please check if the maintainers file confirms if someone has organized, solve the same situation as the bugs you encounter. If there is no relevant aspect in the list, another very good way is to write the letter to tell me the situation (Linus.torvalds@helsinki.fi) and a list of mail or newsgroups that may be associated. Since I can't test those specific individual SCSI and NetWorking, the mailing list is quite safe to solve specific to SCSI and NetWorking issues.
Please inform the kernel version in detail in all bug reports, how to reproduce the error, and how you installed (according to your own experience). If the problem is recently, I must inform me that if it is a long time ago, try telling me the first time. If the bug list display information is shown in the following format:
UNABLE to Handle Kernel Paging Request At Address C0000010Oops: 0002
EIP: 0010: XXXXXXXX
EAX: xxxxxxxx EBX: XXXXXXX ECX: XXXXXXXE
ESI: XXXXXXX EDI: XXXXXXX EBP: XXXXXXXXXX
DS: xxxx es: xxxx fs: xxxx gs: xxxx
PID: XX, Process NR: XX
XX xx xx xx xx xx xx xx xx xx
Alternatively, a similar kernel debugging message is displayed or recorded in the system log, rendering me accurate information. Output content may not understand the content that you may not understand, but it contains information that can help debug errors. The content also shows some important things: it can tell why the kernel will appear in these code (in the example of the above, the kernel generates an error pointer). More content that can explain the meaning of code is documentation / OOPS-TRACING.TXT.
You can use the "ksymoops" program to solve problems. Manually search for C source code to prevent similar prompt code in the scripts / directory: In the debug information prompt given above, you can help you find the meaning of the EIP value. If the value of hexadecimal is as good as it is for me or anyone else: because it relies on your specific kernel installation process. What you should do is to find the specific meaning of the hexadecimal representative from the EIP line (ignore "0010:"), then look for the physical address of the absolute memory represented by the kernel function in the kernel name list.
In order to find the core specific function name, you need to find the signs of the system binary content in conjunction with the kernel. This file is 'Linux / Vmlinux'. Try to make the specific content of the EIP in the name list, follow the ways:
NM VMLINUX | SORT | Less
Provided to you is a list file that is arranged in ascending order, through its contents of the specific physical memory address included in the simple investigation function. Note that the address in the debug information provided by the kernel does not necessarily match the address of the function (in fact, it is only very different), so you can't use the "grep" command to query in the list: Although the list provides you The starting point of a kernel function, but the start address of the query will be lower than the truly want to find, because the corresponding address will be higher. In fact, there is a more good idea, that is, in your question report contains some specific "content", and gives the relevant line of the relevant line of the problem near the problem.
If you can't complete the above content (probably because you get a pre-compiled kernel image file or other similar), please try to tell me about your specific installation, this will have Self-help. Alternatively, you can use GDB at the run level. (Read only; if you can't change the variable value or set breakpoints.) You can do this, first compile the kernel using the -g parameter; correctly edit the Arch / I386 / Makefile, then run the command "make clean". You also need to edit the config_proc_fs file (via "make config").