From: Dave Jones <dave@xxxxxxxxxxxxxxxxxxx> To: kernelnewbies@xxxxxxxxxxxx Subject: FAQ. Date: Fri, 19 May 2000 23:01:23 +0100 (BST) (Sat, 03:31 IST) Here's a work in progress FAQ.. If someone want to add to / butcher / burn this, feel free.. -- Dave. /* * The #kernelnewbies FAQ v1 * */ 1. How do I compile a kernel 2. Where do I begin 3. Where can I find... 4. Does ... ever come here? 5. How do I apply patches ? 6. How do I make patches ? --------------------------------------------------------------------- ## ### How do I compile a kernel ?? #### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ## ## ## ###### ###### (These instructions assume we are installing version 2.4.0 of the kernel, replace all instances with the version you are trying to build). 1. Download your tarball from ftp.XX.kernel.org where XX is your country code. If there isn't a mirror for your country, just pick a near one. 2. Unpack the tarball in your /usr/src directory bzip2 -d linux-2.4.0.tar.bz2 tar xvf linux-2.4.0.tar (Replace bzip2 with gzip if you downloaded the .gz) 3. cd into the Linux directory. You'll now need to configure the kernel to select the features you want/need. There are several ways to do this.. a. make config Command line questions. b. make oldconfig (Useful only if you kept a .config from a previous kernel build) c. make menuconfig (Ncurses based) d. make xconfig (TCL/TK based X-Windows configuration) 4. Now we can build the kernel, but first we have to build the dependancies also. make dep make bzImage 5. Wait. When its finished, make any parts you may have selected to be modular. make modules make modules_install 6. Install the new kernel.. (Assuming your using an x86 computer) mv arch/i386/kernel/bzImage /boot/vmlinuz-2.4.0 mv System.map /boot/System.map-2.4.0 7. Edit /etc/lilo.conf, and add these lines... image = /boot/vmlinuz-2.4.0 label = 2.4.0 Also copy your root=/dev/??? line here too. 8. Run /sbin/lilo, reboot, and enjoy. --------------------------------------------------------------------- ## ## ## Where do I begin ? ## ## ## ## ##### A common question asked by a newbie is "I've just unpacked this huge tarball, and I want to help out, but I don't know where to start!" It may seem daunting to be confronted with such a large amount of source code, but bear in mind, that very few kernel hackers understand every area of the kernel tree. People specialise. If you're interested in TCP/IP, you'll not be needing to read the filesystem code. Figure out what it is you want to be working on, and focus on that. --------------------------------------------------------------------- ##### ## Where can I find... ### ## #### To be filled in with pointers to links on the kernelnewbies.org site. --------------------------------------------------------------------- ### #### Does ... ever come here?? ## ## ## ## ######### ## ## Linus : Please, be serious. Alan Cox: Alan stayed around for an afternoon a few months back, but hasn't been around since. So who does come here regularly ?? Name Nick Kernel responsibities. ------------------------------------------------------ Rik van Riel: riel Memory management. Jens Axboe: axboe CDROM/DVD layer. Dave Jones davej Powertweak, random hacks. Ben Lahaisse bcrl Memory management. Arjan van de ven arjan kHTTPd, Powertweak. --------------------------------------------------------------------- ########## ## ## What if I want to write a device driver ? ########## ## ## ########## Here are the links to follow 1. The Kernel module guide (http://www.faqs.org/docs/kernel/) : The basics. It will get you started. Once you are done with it, you will be quite comfortable in making small modules. 2. The Module basics Module-HOWTO(http://tldp.org/HOWTO/Module-HOWTO/) 3. The Linux Device Drivers 3rd Edition. (http://lwn.net/Kernel/LDD3/) //taha -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/