I'm trying to get up to speed with Linux kernel development and have a few questions:
1. According to the book I'm reading (_Linux Kernel Development_ by Robert Love) the current kernel's configuration can be found at /proc/config.gz. But on Fedora, that's not the case, and it's in /boot/ as config-{VERSION}. How do I use this in the same way that I would have used /proc/config.gz?
2. On the kernel-janitors mailing list I asked how to get started, and was recommended to use clang to build the kernel and submit patches to fix errors reported. Has anybody successfully built the kernel usin clang packaged for Fedora? If so, how? I tried:
make cc=clang
and the build immediately failed on inline assembler code. I'd appreciate a recommendation on how to approach building that way.
Thanks in advance.
On Wed, Jul 18, 2012 at 11:28:38AM -0400, Darryl L. Pierce wrote:
I'm trying to get up to speed with Linux kernel development and have a few questions:
- According to the book I'm reading (_Linux Kernel Development_ by
Robert Love) the current kernel's configuration can be found at /proc/config.gz. But on Fedora, that's not the case, and it's in /boot/ as config-{VERSION}. How do I use this in the same way that I would have used /proc/config.gz?
It's the same format, but the one in boot isn't gzipped, and doesn't use up kernel memory.
- On the kernel-janitors mailing list I asked how to get started, and
was recommended to use clang to build the kernel and submit patches to fix errors reported. Has anybody successfully built the kernel usin clang packaged for Fedora? If so, how? I tried:
make cc=clang
and the build immediately failed on inline assembler code. I'd appreciate a recommendation on how to approach building that way.
If you're just starting out, I'd advise something simpler until you're comfortable working on the kernel. This isn't a small amount of work and there's plenty of other low-hanging fruit.
If you're determined however, I'd start by reading up at http://llvm.linuxfoundation.org/index.php/Main_Page The stock kernel.org tree lacks some of the work already done. (I've no idea on the state/quality of the patches already done, and whether they're even mergable upstream)
Dave
On Wed, Jul 18, 2012 at 11:46:39AM -0400, Dave Jones wrote:
On Wed, Jul 18, 2012 at 11:28:38AM -0400, Darryl L. Pierce wrote:
I'm trying to get up to speed with Linux kernel development and have a few questions:
- According to the book I'm reading (_Linux Kernel Development_ by
Robert Love) the current kernel's configuration can be found at /proc/config.gz. But on Fedora, that's not the case, and it's in /boot/ as config-{VERSION}. How do I use this in the same way that I would have used /proc/config.gz?
It's the same format, but the one in boot isn't gzipped, and doesn't use up kernel memory.
When I copied it into my development tree as .config and did:
make oldconfig
the environment seemed to want to redo the whole thing. Maybe I'm doing something wrong?
- On the kernel-janitors mailing list I asked how to get started, and
was recommended to use clang to build the kernel and submit patches to fix errors reported. Has anybody successfully built the kernel usin clang packaged for Fedora? If so, how? I tried:
make cc=clang
and the build immediately failed on inline assembler code. I'd appreciate a recommendation on how to approach building that way.
If you're just starting out, I'd advise something simpler until you're comfortable working on the kernel. This isn't a small amount of work and there's plenty of other low-hanging fruit.
I'm more interested in doing this to get some experience with the code and the overall workflow of submitting patches to the kernel developers.
If you're determined however, I'd start by reading up at http://llvm.linuxfoundation.org/index.php/Main_Page The stock kernel.org tree lacks some of the work already done. (I've no idea on the state/quality of the patches already done, and whether they're even mergable upstream)
That's my main concern about this approach, that I'm trying to do something too cutting edge when I'm not quite ready for that.
On Wed, Jul 18, 2012 at 12:01:55PM -0400, Darryl L. Pierce wrote:
On Wed, Jul 18, 2012 at 11:46:39AM -0400, Dave Jones wrote:
On Wed, Jul 18, 2012 at 11:28:38AM -0400, Darryl L. Pierce wrote:
I'm trying to get up to speed with Linux kernel development and have a few questions:
- According to the book I'm reading (_Linux Kernel Development_ by
Robert Love) the current kernel's configuration can be found at /proc/config.gz. But on Fedora, that's not the case, and it's in /boot/ as config-{VERSION}. How do I use this in the same way that I would have used /proc/config.gz?
It's the same format, but the one in boot isn't gzipped, and doesn't use up kernel memory.
When I copied it into my development tree as .config and did:
make oldconfig
the environment seemed to want to redo the whole thing. Maybe I'm doing something wrong?
If the version of the config is older than the tree you're building, it will ask you questions. This is expected.
Dave
kernel@lists.fedoraproject.org