Update lfs-uefi patch
[linux_from_scratch_hints.git] / essential_prereading.txt
blob12667e0914f7e744fc390af5848686c691847639
1 Essential pre-reading for life with LFS.
3 AUTHOR: Richard A Downing FBCS CITP <TheOldFellow at gmail dot com>
4 DATE: 2004-12-28
5 LICENSE: Creative Commons - Attribution-NonCommercial-ShareAlike 2.0
6 SYNOPSIS: Essential pre-reading for life with LFS.
8 DESCRIPTION: This hint is a list of good documents that you can get
9 for free on the Internet, together with some advice from me and my
10 friends. It will help you get 'educated' to a level where you can:
11  1. successfully build [1]Linux from Scratch (LFS)
12  2. ask sensible questions on the LFS mailing lists and understand the
13  replies.
14  3. stay sane while doing all this.
16 PREREQUISITES: Just the ability to switch on the computer and access
17 the Internet, navigate to the LFS website and find the hint. The rest
18 is our topic...
20 HINT:
22 Please Note:
23   * This will always be a 'work in progress' and I'm missing a good
24  reference on some stuff. So, if you know of, or find a good one,
25  please write to me. Also I just like feedback, so it never hurts
26  to send an email.
27   * If you are reading a text version, you will find a better
28  maintained version of this hint on-line at:
29  http://www.109bean.org.uk/lfsdocs/LFS-prereading.html - The URL
30  links are easier to follow too.
31   * I generate the text version of this hint by applying lynx -dump to
32  the web version. This means that the URL's are collected at the
33  end. This isn't so convenient for you, but it is really neat for
34  me.
36 The LFS book says:
38 "This book assumes that its reader has a good deal of knowledge about
39 using and installing Linux software."
41 The book then suggests some further reading, including this document.
42 But this is more than just an LFS reading list, we expect you to do
43 some exercises too.
45 Part 1. Social stuff. (Most important)
47 Many people ask questions badly on the LFS mailing lists. Sometimes
48 they get rude replies. To stay sane, I suggest you read the
49 entertaining [2]How To Ask Questions The Smart Way by Eric Steven
50 Raymond.
52 Please note that all the LFS mailing lists expect:
53  1. plain text email. No HTML.
54  2. bottom posting. Add your bit UNDERNEATH the bit you quoted.
55  3. pruned quotes. Don't quote everything, just the significant bit.
56  4. no cross-posts. Just use the right list.
57  5. thick skins. Don't respond to rudeness, just ignore it.
58  6. [3]zazen. (Just Sitting) If others have a flame-war, just sit and
59  watch.
61 Before asking questions on lfs lists, please search the archives, at
62 least the recent months, and please read [4]The LFS FAQ. Read the
63 latest copy online, not some old thing you downloaded last week.
65 If you ask a question that is in the FAQ, you are being extremely
66 rude, not least to the maintainer who does that job out of the
67 goodness of their heart. So you rightly WILL get flamed.
69 Special note: If someone tells you to RTFM, they are not, repeat NOT,
70 being rude or getting at you. This is the accepted phrase indicating
71 that you need to Read The Friendly Manual. If you have previously been
72 told that a certain Old Low Dutch word is referred to by the 'F',
73 please be assured that this is just a myth :-)
75 Part 2. Technical stuff.
77 Many people attempt to build LFS without sufficient understanding or
78 experience with LINUX. Here is an excerpt from the tar manual:
80 "You should understand something about how Unix-type operating systems
81 work, and you should know how to use some basic utilities. For
82 example, you should know how to create, list, copy, rename, edit, and
83 delete files and directories; how to change between directories; and
84 how to figure out where you are in the filesystem. You should have
85 some basic understanding of directory structure and how files are
86 named according to which directory they are in. You should understand
87 concepts such as standard output and standard input, what various
88 definitions of the term "argument" mean, the differences between
89 relative and absolute path names"
91 In the LFS book, it says:
93 "We are going to build the LFS system by using a previously installed
94 Linux distribution such as Debian, SuSE, Slackware, Mandrake, RedHat,
95 etc. We will use the existing Linux system as the development
96 platform, because we need tools like a compiler, linker, text editor,
97 and other development tools to build our system. Get a modern distro
98 and play with it."
100 The Base Distro
102 Choosing a distro is only hard because of the choice, my advice is to
103 choose a cheap one because once you have learned a bit and then built
104 LFS you will junk it. I got mine free with a magazine. However it may
105 help to read [5]The Linux Distribution HOWTO.
107 Learning to use UNIX
109 Unlike Windows, Unix requires you to understand what you are doing to
110 get anything much out of it. Both Windows and Unix require deep
111 understanding to get the best out of them. If you are coming from a
112 Windows background or are new to computing in general then reading
113 [6]The UNIX and Internet Fundamentals HOWTO is very basic and will
114 help.
116 Also, [7]Linux Installation and Getting Started , yes, is very dated,
117 but is still good and worth a read.
119 The Shell
121 If you have read those, then you are aware that we drive Unix though a
122 shell, which provides the command line interface. The shell we use in
123 LFS, as in most of the Linux world, is bash (The Bourne Again Shell).
124 You need to be fluent in using bash, and [8]The Advanced Bash
125 Scripting Guide is a good tutorial. (Yes, I know it says 'Advanced',
126 but read it anyway, do you want to be a newbie forever?)
128 Becoming an apprentice guru
130 Then there are three books that you ought to have available from or on
131 your box for easy reference, skim read them now so you know how to use
132 them:
134 [9]The Linux User's Guide
136 [10]The Linux Systems Adminstrator's Guide
138 [11]The Linux Network Administrator's Guide, Second Edition
140 I recommend that you put bookmarks to these in your browser, so that
141 you can get to them quickly. It will save lots of time later.
143 On Building from Source
145 Having got yourself a LINUX system, and played a bit, you now will
146 know a little about the subject, but before moving on to the building
147 of Linux from Scratch you should learn how to build packages from
148 source code. This is an area where it's hard to find good references.
149 The LFS book suggests [12]Building and Installing Software Packages
150 for Linux and [13]Autoconf, Automake, and Libtool is good too, if a
151 little advanced.
153 It's very important that you have some experience installing a package
154 from source on your distro before attempting LFS.
156 One good choice would be [14]GNU-Emacs. Here's what to do:
157  1. check out it's homepage
158  2. download a source distribution as a gzipped tar file
159  3. unpack the source with tar and gunzip
160  4. read the README file
161  5. read the INSTALL file
162  6. build it from scratch
164 In doing this you will not only learn how to obtain and build a
165 package from scratch, you'll also prove that you have installed the
166 right tools for your distribution.
168 If you want a real challenge, try [15]MPlayer. This package is a good
169 test of your developing skills, as you will need to track down and
170 install all it's dependencies first. (You could also cheat and look at
171 the [16]Beyond Linux From Scratch book for a hint.)
173 IBM, once Big Bad Blue, is now a great supporter of OpenSource and
174 Linux. They have some free tutorials on their [17]developerWorks
175 website.
177 Like most Large Multi-nationals, IBM change their site around
178 regularly, so any link I give to the tutorials may not be valid any
179 more. Follow links to Technical Library and Tutorials though, and you
180 should find:
181   * Compiling and installing software from sources
182   * Compiling the Linux kernel
183   * Using regular expressions
185 but there are rich pickings here, even for the experienced.
187 Bootstraping
189 One area where even seasoned UNIX veterans seem to have trouble is
190 with setting up the bootstrap for the new LFS system. Often these
191 problems come from not reading the available documents.
193 Most people will be building for an X86 platform. Before LFS-5.0 we
194 used Lilo as our recommended BootLoader, from LFS-5.0 we use GRUB.
195 There is little to choose between the two, and they are not the only
196 choices either. However, it is important to take time to familiarise
197 yourself with the bootloader that you plan to use.
199 Check out the homepages for the bootloader (lilo's is not very
200 impressive):
202 [18]Grub
204 [19]Lilo
206 And the various HOWTO's, not all will be relevant for you:
208 [20]The Lilo mini-HOWTO
210 [21]Boot + Root + Raid + Lilo : Software Raid mini-HOWTO
212 [22]Linux+WindowsNT mini-HOWTO
214 [23]Win95 + WinNT + Linux multiboot using LILO mini-HOWTO
216 [24]Linux+Win9x+Grub HOWTO
218 [25]Multiboot with GRUB Mini-HOWTO
220 If you are building for a non-X86 platform you will have to research
221 your own bootloader, try a google for whatever bootstrap is used by
222 your base distro, but these links may help:
224 [26]PA-RISC/Linux Boot HOWTO
226 [27]SRM Firmware Howto
228 [28]The Sparc Improved boot LOader
230 But the most important thing you can do is to read the man and info
231 pages for the bootloader. A print (on paper) of the error codes can be
232 very helpful (as the online docs will not be available just when you
233 need this info), and it is vital that you have an alternative means of
234 booting your system before testing your new bootloader.
236 Part 3. Other stuff.
238 My starting point for any query or gap in my knowledge is google,
239 yours should be too. Go to the [29]Google page, and hit the advanced
240 search button. Learn the full capabilities of this essential tool,
241 spend at least a whole day on this. Truely, you can't live without it.
243 Note that if US English isn't your native tongue, then google has many
244 national versions. I use [30]Google UK, as I'm English, and find this
245 version more colourful.
247 There is a whole heap of documentation at the [31]Linux Documentation
248 Project, some of which I've quoted above. Learn to go there regularly
249 and just poke about, it's a great storehouse of knowledge. Beware
250 though a lot of it is out of date.
252 You might want to find some other software for your Linux box. The
253 place to search is: [32]Freshmeat
255 LFS has it's own search system on the website. You can use it to find
256 answers to obscure questions that others have asked in the distant
257 past, as well as 'where is' type inquiries. Look on the LFS website
258 homepage.
260 And finally, whatever you read or don't read concerning LFS, before
261 asking questions, start by reading the FAQ. FAQ stands for 'Frequently
262 Asked Questions'. We don't want to answer them again, so don't ask
263 them. Read [33]The LFS FAQ
265 ACKNOWLEDGEMENTS: I have received encouragement and advice from the
266 following, but the words are my fault alone: Dagmar D'Surreal, Tushar
267 Teredesai, Ken Dyke, James Robertson, Eric Miller, and lots of others
268 on lfs-chat. But nothing would have been done at all without the LFS
269 project that Gerard Beekmans started: [34]Linux from Scratch
271 CHANGELOG:
273 [2002-12-31]
274  Initial version in old hints format.
276 [2003-09-29]
277  Revision into new LFS hints format, minor changes and
278  reproofing of links.
280 [2003-12-14]
281  Convertion to XHTML for easy on-line use
283 [2004-12-14]
284  Revalidated many of the hyperlinks
286 [2004-12-28]
287  Revised the online version and it's CSS stylesheet to correctly
288  generate an LFS Hint with lynx -dump. No significant content
289  changes. Changed license to Creative Commons.
291 © Richard A Downing FBCS 2003, 2004
293 [35]Creative Commons License [36]Valid XHTML 1.1! [37]Valid CSS!
295 References
297 1. http://www.linuxfromscratch.org/
298 2. http://www.catb.org/~esr/faqs/smart-questions.html
299 3. http://en.wikipedia.org/wiki/Zazen
300 4. http://www.linuxfromscratch.org/faq/
301 5. http://tldp.org/HOWTO/CD-Distributions-EN-HOWTO/index.html
302 6. http://tldp.org/HOWTO/Unix-and-Internet-Fundamentals-HOWTO/
303 7. http://tldp.org/LDP/gs/
304 8. http://tldp.org/LDP/abs/html/
305 9. http://espc22.murdoch.edu.au/~stewart/guide/guide.html
306   10. http://tldp.org/LDP/sag/index.html
307   11. http://tldp.org/LDP/nag2/index.html
308   12. http://tldp.org/HOWTO/Software-Building-HOWTO.html
309   13. http://sources.redhat.com/autobook/autobook/autobook_toc.html
310   14. http://www.gnu.org/software/emacs/emacs.html
311   15. http://www.mplayerhq.hu/homepage/
312   16. http://www.linuxfromscratch.org/blfs
313   17. http://www-106.ibm.com/developerworks/linux/
314   18. http://www.gnu.org/software/grub
315   19. http://lilo.go.dyndns.org/
316   20. http://www.tldp.org/HOWTO/LILO.html
317   21. http://www.tldp.org/HOWTO/Boot+Root+Raid+LILO.html
318   22. http://www.tldp.org/HOWTO/Linux+WinNT.html
319   23. http://www.tldp.org/HOWTO/Multiboot-with-LILO.html
320   24. http://www.tldp.org/HOWTO/Linux+Win9x+Grub-HOWTO/
321   25. http://www.tldp.org/HOWTO/Multiboot-with-GRUB.html
322   26. http://www.tldp.org/HOWTO/PA-RISC-Linux-Boot-HOWTO/index.html
323   27. http://www.tldp.org/HOWTO/SRM-HOWTO/index.html
324   28. http://www.sparc-boot.org/
325   29. http://www.google.com/
326   30. http://www.google.co.uk/
327   31. http://tldp.org/
328   32. http://freshmeat.net/
329   33. http://www.linuxfromscratch.org/faq/
330   34. http://www.linuxfromscratch.org/
331   35. http://creativecommons.org/licenses/by-nc-sa/2.0/
332   36. http://validator.w3.org/check?uri=referer
333   37. http://jigsaw.w3.org/css-validator