Muli Ben-Yehuda
Wed, 19 Feb 2003 05:05:12 -0800
On Wed, Feb 19, 2003 at 11:58:16AM +0200, Eli Billauer wrote: > original configuration, and noone was really sure. I don't think that > there is someone here who can tell me exactly what files are tampered > with during all the makes (could syscalltrack be handy here? ;). All > this makes kernel compilation a mysterious adventure, with no promised > way back home. If there was as little as a list of directories to back > up before starting, it would all look different. Eli, It's not voodoo. It's not a mystery. It's code, plain and simple, there for the reading. Please read the Makefile and write a comprehensive list of files which are changed. I'm sure kernelnewbies.org will be happy to put it on line. > Don't take me wrong: I think that the possibility to compile the kernel > is one of the beauties of Linux, and writing in kernel space is > something I know I'll do sooner or later. The problem is that it's such > an unfriendly field, and for no real reason. Did you read the books? did you read the source? where else did you expect the knowledge to come from? > >c. Run 'make oldconfig; make dep'. This step prepares the intermediary > >kernel configuration and build files that are needed for the build > >process. Amongst other things, it handles module version. > > Thanks. "make oldconfig" was the secret. And a secret it is. Just for > the fun of it, does anyone know exactly what it does? What "old > configuration" are we talking about? And "make dep" afterward fixed > it all. It takes .config, all of the configuration symbols in this kernel, and only asks you about new or changed configuration options. It's used when you already built a kernel, and then a new version is released. You copy the same .config over and run 'make oldconfig', and instead of dealing with hundreds of configuration options, you only deal with the delta. As a side effect, it also creates some files that tell the build system that it has been configured, and (I think) creates the include/asm-$(ARCH) -> include/asm symlink. > And you were right about the /boot directory. There are config-files for > each binary to boot, so it seems like the way to just recompile a > certain prebuilt binary is to copy one of these into > /usr/src/linux-x.x.xx/.config . This might be the answer to my original > question: How do I turn things back to where they were? But I haven't > really tried this, though. I might soon. You save your .config and run 'make mrproper', which is like 'make distclean' in user space. NOTE that 'make mrproper' WILL remove all files which match the pattern "*config*" or a variation on it. That's why you save your .config before beginning. > BTW, I didn't compile the kernel in the end. There was no reason to. Sounds to me like you should do it for the same reason people jump out of airplanes - to see that you can. > >Start with the top level > >Makefile and Rules.make, and follow what happens when you run 'make > >oldconfig; make dep'. > > > Yeah, right. I wanted to install a linmodem driver, not explore the > mysteries of makefile, sed and bash, and virtually every possible system > file. You want knowledge. I told you where it is found. > I have only one explanation for all this: Kernel hackers enjoy the > exclusiveness of their status. It's Open Source, but closed society. You > want to join it, fine, but you'll have to go through some acceptance > tests before you can do anything. No. You'll have to invest effort and show that you know what you are doing. Otherwise, just pay someone to do it for you. -- Muli Ben-Yehuda http://www.mulix.org http://syscalltrack.sf.net -------------------------------------------------------------------------- Haifa Linux Club Mailing List (http://www.haifux.org) To unsub send an empty message to [EMAIL PROTECTED]