Oldlinux Cross Reference

Oldlinux Cross Reference
Linux/

作者:Acharlix

Version: [1.0] [0.99.11] [0.99] [0.98] [0.97] [0.96a] [0.95] [0.12] [0.11] [0.01]
Architecture: [i386]

 

Name

Size

Last modified (GMT)

Description

boot/

 

2004-04-15 11:45:37

 

drivers/

 

2004-04-15 12:49:15

 

fs/

 

2004-04-15 11:54:12

 

ibcs/

 

2004-04-15 12:29:24

 

include/

 

2004-04-15 12:22:25

 

init/

 

2004-04-15 11:55:27

 

ipc/

 

2004-04-15 12:29:19

 

kernel/

 

2004-04-15 11:57:15

 

lib/

 

2004-04-15 11:57:45

 

mm/

 

2004-04-15 11:58:22

 

net/

 

2004-04-15 12:27:44

 

tools/

 

2004-04-15 11:58:35

 

zBoot/

 

2004-04-15 12:28:48

 

CHANGES

6281 bytes

2004-04-15 12:29:32

 

COPYING

18458 bytes

2004-04-15 12:28:09

 

CREDITS

13127 bytes

2004-04-15 12:52:35

 

Configure

5898 bytes

2004-04-15 12:28:54

 

Makefile

6891 bytes

2004-04-15 11:45:23

 

README

8535 bytes

2004-04-15 12:52:30

 

config.in

4764 bytes

2004-04-15 12:28:11

 

makever.sh

166 bytes

2004-04-15 12:23:20

 

  1

  2         Linux kernel release 1.0

  3

  4 These are the release notes for linux version 1.0.  Read them carefully,

  5 as they tell you what this is all about, explain how to install the

  6 kernel, and what to do if something goes wrong.

  7

  8 WHAT IS LINUX?

  9

 10   Linux is a Unix clone for 386/486-based PCs written from scratch by

 11   Linus Torvalds with assistance from a loosely-knit team of hackers

 12   across the Net.  It aims towards POSIX compliance.

 13

 14   It has all the features you would expect in a modern fully-fledged

 15   Unix, including true multitasking, virtual memory, shared libraries,

 16   demand loading, shared copy-on-write executables, proper memory

 17   management and TCP/IP networking.

 18

 19   It is distributed under the GNU General Public License - see the

 20   accompanying COPYING file for more details.

 21

 22 INSTALLING the kernel:

 23

 24  - If you install the full sources, do a

 25

 26                 cd /usr/src

 27                 tar xvf linux-1.0.tar

 28

 29    to get it all put in place.

 30

 31  - if you install by patching, you need a *clean* 0.99.15 source tree,

 32    which presumably exists in /usr/src/linux.  If so, to get the kernel

 33    patched, just do a

 34

 35                 cd /usr/src

 36                 patch -p0 < linux-1.0.patch

 37

 38    and you should be ok.  You may want to remove the backup files (xxx~

 39    or xxx.orig), and make sure that there are no failed patches (xxx# or

 40    xxx.rej).

 41

 42  - make sure your /usr/include/linux and /usr/include/asm directories

 43    are just symlinks to the kernel sources:

 44

 45                 cd /usr/include

 46                 rm -rf linux

 47                 rm -rf asm

 48                 ln -s /usr/src/linux/include/linux .

 49                 ln -s /usr/src/linux/include/asm .

 50

 51  - make sure you have no stale .o files and dependencies lying around:

 52

 53                 cd /usr/src/linux

 54                 make mrproper

 55

 56    You should now have the sources correctly installed.

 57

 58 CONFIGURING the kernel:

 59

 60  - do a "make config" to configure the basic kernel.  "make config"

 61    needs bash to work: it will search for bash in $BASH, /bin/bash and

 62    /bin/sh (in that order), so hopefully one of those is correct.

 63

 64         NOTES on "make config":

 65         - having unnecessary drivers will make the kernel bigger, and can

 66           under some circumstances lead to problems: probing for a

 67           nonexistent controller card may confuse your other controllers

 68         - compiling the kernel with "-m486" for a number of 486-specific

 69           will result in a kernel that still works on a 386: it may be

 70           slightly larger and possibly slower by an insignificant amount,

 71           but it should not hurt performance.

 72         - A kernel with math-emulation compiled in will still use the

 73           coprocessor if one is present: the math emulation will just

 74           never get used in that case.  The kernel will be slighly larger,

 75           but will work on different machines regardless of whether they

 76           have a math coprocessor or not.

 77         - the "kernel hacking" configuration details usually result in a

 78           bigger or slower kernel (or both), and can even make the kernel

 79           less stable by configuring some routines to actively try to

 80           break bad code to find kernel problems (kmalloc()).  Thus you

 81           should probably answer 'n' to the questions for a "production"

 82           kernel.

 83

 84  - edit drivers/net/CONFIG to configure the networking parts of the

 85    kernel.  The comments should hopefully clarify it all.

 86

 87  - Check the top Makefile for further site-dependent configuration

 88    (default SVGA mode etc).

 89

 90  - Finally, do a "make dep" to set up all the dependencies correctly.

 91

 92 COMPILING the kernel:

 93

 94  - make sure you have gcc- 2.4.5 or newer available.  It seems older gcc

 95    versions can have problems compiling newer versions of linux.  If you

 96    upgrade your compiler, remember to get the new binutils package too

 97    (for as/ld/nm and company)

 98

 99  - do a "make zImage" to create a compressed kernel image.  If you want

100    to make a bootdisk (without root filesystem or lilo), insert a floppy

101    in your A: drive, and do a "make zdisk".  It is also possible to do

102    "make zlilo" if you have lilo installed to suit the kernel makefiles,

103    but you may want to check your particular lilo setup first.

104

105  - keep a backup kernel handy in case something goes wrong.

106

107  - In order to boot your new kernel, you'll need to copy the kernel

108    image (found in /usr/src/linux/zImage after compilation) to the place

109    where your regular bootable kernel is found.

110

111    For some, this is on a floppy disk, in which case you can "cp

112    /usr/src/linux/zImage /dev/fd0" to make a bootable floppy.

113

114    If you boot Linux from the hard drive, chances are you use LILO which

115    uses the kernel image as specified in the file /etc/lilo/config.  The

116    kernel image file is usually /vmlinuz, or /zImage, or /etc/zImage.

117    To use the new kernel, copy the new image over the old one (save a

118    backup of the original!).  Then, you MUST RERUN LILO to update the

119    loading map!! If you don't, you won't be able to boot the new kernel

120    image.

121

122    Reinstalling LILO is usually a matter of running /etc/lilo/install.

123    You may wish to edit /etc/lilo/config to specify an entry for your

124    old kernel image (say, /vmlinux.old) in case the new one does not

125    work.  See the LILO docs for more information.

126

127    After reinstalling LILO, you should be all set.  Shutdown the system,

128    reboot, and enjoy!

129

130    If you ever need to change the default root device, video mode,

131    ramdisk size, etc.  in the kernel image, use the 'rdev' program (or

132    alternatively the LILO boot options when appropriate).  No need to

133    recompile the kernel to change these parameters.

134

135  - reboot with the new kernel and enjoy.

136

137 IF SOMETHING GOES WRONG:

138

139  - if you have problems that seem to be due to kernel bugs, please mail

140    them to me ([email protected]), and possibly to any other

141    relevant mailing-list or to the newsgroup.  The mailing-lists are

142    useful especially for SCSI and NETworking problems, as I can't test

143    either of those personally anyway.

144

145  - In all bug-reports, *please* tell what kernel you are talking about,

146    how to duplicate the problem, and what your setup is (use your common

147    sense).  If the problem is new, tell me so, and if the problem is

148    old, please try to tell me when you first noticed it.

149

150  - if the bug results in a message like

151

152         unable to handle kernel paging request at address C0000010

153         Oops: 0002

154         EIP:   0010:xxxxxxxx

155         eax: xxxxxxxx   ebx: xxxxxxxx   ecx: xxxxxxxx   edx: xxxxxxxx

156         esi: xxxxxxxx   edi: xxxxxxxx   ebp: xxxxxxxx

157         ds: xxxx  es: xxxx  fs: xxxx  gs: xxxx

158         Pid: xx, process nr: xx

159         xx xx xx xx xx xx xx xx xx xx

160

161    or similar kernel debugging information on your screen or in your

162    system log, please duplicate it *exactly*.  The dump may look

163    incomprehensible to you, but it does contain information that may

164    help debugging the problem.  The text above the dump is also

165    important: it tells something about why the kernel dumped code (in

166    the above example it's due to a bad kernel pointer)

167

168  - in debugging dumps like the above, it helps enourmously if you can

169    look up what the EIP value means.  The hex value as such doesn't help

170    me or anybody else very much: it will depend on your particular

171    kernel setup.  What you should do is take the hex value from the EIP

172    line (ignore the "0010:"), and look it up in the kernel namelist to

173    see which kernel function contains the offending address.

174

175    To find out the kernel function name, you'll need to find the system

176    binary associated with the kernel that exhibited the symptom.  In the

177    case of compressed kernels, this will be 'linux/tools/zSystem', while

178    uncompressed kernels use the file 'tools/system'.  To extract the

179    namelist and match it against the EIP from the kernel crash, do:

180

181                 nm tools/zSystem | sort | less

182

183    This will give you a list of kernel addresses sorted in ascending

184    order, from which it is simple to find the function that contains the

185    offending address.  Note that the address given by the kernel

186    debugging messages will not necessarily match exactly with the

187    function addresses (in fact, that is very unlikely), so you can't

188    just 'grep' the list: the list will, however, give you the starting

189    point of each kernel function, so by looking for the function that

190    has a starting address lower than the one you are searching for but

191    is followed by a function with a higher address you will find the one

192    you want.  In fact, it may be a good idea to include a bit of

193    "context" in your problem report, giving a few lines around the

194    interesting one.

195

196    If you for some reason cannot do the above (you have a pre-compiled

197    kernel image or similar), telling me as much about your setup as

198    possible will help.

199

 

 

你可能感兴趣的:(image,function,reference,dependencies,networking,debugging)