[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Buggy Kernel How-To?



Wolfgang Pfeiffer wrote:
Hi all,

Either the Kernel How-To, as it is available from
<http://www.uni-tuebingen.de/zdv/zriinfo/linux/howto/English/Kernel-HOWTO-4.html#ss4.2>
is completely outdated, maybe even dangerously wrong, or ideas I found
in postings from
<http://lists.debian.org/debian-user/2000/debian-user-200008/thrd3.html#01345>
are wrong.

The Kernel How-To above, as I understand it, tells me to unpack the
kernel source as root in /usr/src/. Whereas in the postings from
debian-user to exactly *not* do this:

"another good reason to avoid extracting tarballs as root is one could
send you a tarball with a file /etc/passwd (with the absolute path
embedded), if you extract it as root your /etc/passwd would be
replaced... "

And:

"And Linus has also pointed out several times that people should *not*
compile kernels in /usr/src/linux, and instead do it in their home
directory as a regular user, not root. The only time you should become
root is when you install the kernel."

So, in short, what I found by googling about for some time: The correct
way seems to be to put the kernel-source in my (non-root) home
directory, and then cd /usr/src/
ln -s /home/<someuser>/kernel-sources linux

and then, as non-root, compile the kernel in /usr/src/linux/

(And then forget about some of the stuff I read in the Kernel-HowTo ?)

The background to all this is that I tried to get the kernel sources as
non-root while being in  /usr/src/<some.kernel.directory> with rsync:
Which, IIRC, isn't possible. A non-root doesn't have the permission to
download stuff to this dir, right?
So the only chance I have to get the sources in there is to run rsync as
root: Which is ugly wrong if I learned my lessons well: You never even
try to access the net as root. Right?

Thanks in anticipation.

Best Regards,
Wolfgang

This is why you add yourself to the src group (which in the group that
owns /usr/src.  Then you untar in that directory as regular user and
then do something like this:

make menuconfig
fakeroot make-kpkg clean
fakeroot make-kpkg <options> kernel_image kernel_headers
cd ..
sudo dpkg -i *.deb

That way you only become root for the very last step.

-Roberto

Attachment: pgpqbcl6URv9j.pgp
Description: PGP signature


Reply to: