1 |
On Tuesday 03 Jan 2012 01:13:17 Gregory Shearman wrote: |
2 |
> In linux.gentoo.user, you wrote: |
3 |
> > On Mon, 2 Jan 2012 20:58:18 -0200 |
4 |
> > |
5 |
> > Claudio Roberto França Pereira <spideybr@×××××.com> wrote: |
6 |
> >> I'm not currently at my Gentoo box, sorry for this, but if I don't |
7 |
> >> post this now I'll probably forget to post it at all. |
8 |
> >> Anyways, last time I tried upgrading my kernel, I copied my .config |
9 |
> >> and ran make menuconfig as my main user, but it whined about missing |
10 |
> >> ncurses libraries or something. After su'ing, everything went better |
11 |
> >> than expected. |
12 |
> >> Was that normal behavior? I remember configuring my kernel as user |
13 |
> >> before. Even compiling it as user. |
14 |
> > |
15 |
> > How did you install the kernel sources? |
16 |
> > |
17 |
> > If you downloaded them as a normal user you should be able to make |
18 |
> > menuconfig; make; sudo make install just fine. |
19 |
> > |
20 |
> > If portage installed the sources, then you should |
21 |
> > configure/compile/install as root. The sources are owned by portage |
22 |
> > (IIRC) and you can't su to that user, leaving only root. Or, try adding |
23 |
> > yourself to the portage group. Personally I think that's too much |
24 |
> > effort for zero gain so I always do it as root. |
25 |
> |
26 |
> I use a separate output directory that is under control of the user. |
27 |
> What I do as an ordinary user: |
28 |
> |
29 |
> mkdir <kerneloutputdir> |
30 |
> |
31 |
> zcat /proc/config.gz > <kerneloutputdir>/.config |
32 |
> |
33 |
> # assuming you have this option set in your kernel ie the current kernel |
34 |
> # config saved in /proc/config.gz |
35 |
> |
36 |
> cd /usr/src/linux |
37 |
> |
38 |
> # assuming that /usr/src/linux is a soft link to your new kernel |
39 |
> # directory. |
40 |
> |
41 |
> make O=<kerneloutputdir> oldconfig |
42 |
> |
43 |
> # The "O=" makes sure that any kernel output goes to the directory under |
44 |
> # the permissions and control of the kernel builder user rather than in |
45 |
> # the kernel directory under root permissions. |
46 |
> |
47 |
> # If you want to make changes to the new kernel then: |
48 |
> |
49 |
> make O=<kerneleoutputdir> menuconfig |
50 |
> |
51 |
> You can then proceed with building kernel and modules. Yes, I know that |
52 |
> "make" without a command will automatically build both kernel image and |
53 |
> modules but I prefer to do things explicitly. |
54 |
> |
55 |
> make O=<kerneleoutputdir> bzImage |
56 |
> make O=<kerneleoutputdir> modules |
57 |
> |
58 |
> You can then install the new kernel and modules as root: |
59 |
> |
60 |
> make O=<kerneleoutputdir> modules_install |
61 |
> make O=<kerneleoutputdir> install |
62 |
> |
63 |
> You need to set the following environment variable: |
64 |
> |
65 |
> KBUILD_OUTPUT=<kerneloutputdir> |
66 |
> |
67 |
> This variable ensures that any emerged app can find the kernel output if |
68 |
> necessary. I've created a script in /etc/profile.d that automatically |
69 |
> keeps this environment variable up to date. Oh, remember to unset this |
70 |
> variable if you do *anything* requiring a busybox build (eg genkernel). |
71 |
> |
72 |
> An enjoyable side-effect of this system is that when you remove an |
73 |
> obselete kernel from your system using "emerge -C <oldkernelversion>", |
74 |
> everything will be removed because there are no changes, no files added |
75 |
> to those portage added kernel directory. |
76 |
> |
77 |
> The kernel builder user does nothing but build new kernels. This user's |
78 |
> home directory is a hierarchy containing current kernel builds. |
79 |
> |
80 |
> I've been using this system for years now, on all my gentoo systems. It |
81 |
> is second nature. Of course, the .bash_history of the kernel builder |
82 |
> user is *very* useful for quickly doing all this from the command line. |
83 |
> |
84 |
> I used to have a script to automate all this, but it is just as easy to |
85 |
> do from the command line. |
86 |
|
87 |
What is the benefit of this approach vis a vis su to root first as the gentoo |
88 |
handbook suggests? |
89 |
-- |
90 |
Regards, |
91 |
Mick |