1 |
On Friday 10 March 2006 09:11, Bo Andresen <bo.andresen@×××××.com> wrote |
2 |
about 'Re: [gentoo-amd64] upgrading from 2005.0 x86, to 2006.0 amd64': |
3 |
> On Friday 10 March 2006 14:51, Mike Williams wrote: |
4 |
> > At the moment it's happily running a 32bit kernel, with 32bit |
5 |
> > userland. From my experimentation last night, I suspect I will need to |
6 |
> > boot an amd64 livecd to compile a proper 64bit kernel, which will |
7 |
> > enable me to compile a 64bit toolchain. |
8 |
> > Could not compile a 64bit kernel, or a multilib gcc, from the 32bit |
9 |
> > kernel. |
10 |
> |
11 |
> You might want to have a look at this recent thread from the gentoo-user |
12 |
> mailing list. Boyd helped me to compile a 64 bit kernel from 32 bit |
13 |
> kernel and user land using a cross compiler. It was actually quite easy. |
14 |
> The 64 bit user land I got from the amd64 stage3 tarball. This was a |
15 |
> fresh install but using a 32 bit live cd. |
16 |
|
17 |
Heh. Bo, you beat me to the punch. That's what I get for working 11 hour |
18 |
days. :P |
19 |
|
20 |
> http://groups.google.com/group/linux.gentoo.user/browse_thread/thread/e4 |
21 |
>629ea8751a9ab4/815dbc64722b7d49%23815dbc64722b7d49?sa=X&oi=groupsr&start= |
22 |
>1&num=3 |
23 |
> |
24 |
> I think the important steps for compiling a 64 bit kernel were: |
25 |
> |
26 |
> To get a working cross compiler: |
27 |
> #emerge crossdev |
28 |
> #crossdev -s1 -t x86_64 |
29 |
> |
30 |
> To configure a 64 bit kernel using that cross compiler: |
31 |
> #cd /usr/src/linux |
32 |
> #make ARCH=x86_64 CROSS_COMPILE=x86_64-pc-linux-gnu- |
33 |
|
34 |
Probably want to stick a menuconfig / config / xconfig on the end of that |
35 |
command line. |
36 |
|
37 |
> In my case the include/asm symlink pointed towards asm-386 |
38 |
> # ls -ld include/asm |
39 |
> lrwxrwxrwx 1 root root 10 Feb 24 14:27 include/asm -> asm-386 |
40 |
|
41 |
As I mentioned in our thread, post-mortem, I think a 'make mrproper' would |
42 |
clear up this symlink, so that the next 'make' would re-create it. |
43 |
|
44 |
> Compile 64 bit kernel: |
45 |
> #make ARCH=x86_64 CROSS_COMPILE=x86_64-pc-linux-gnu- |
46 |
> #make ARCH=x86_64 CROSS_COMPILE=x86_64-pc-linux-gnu- modules_install |
47 |
|
48 |
Also, make sure that while you have a 32-bit userland (or are using |
49 |
multilib) that you select the kernel option for supporting 32-bit code. I |
50 |
believe it's referred to as IA32 executable support. The exact config |
51 |
option should be in that above thread. |
52 |
|
53 |
After you get a 32-bit kernel, you should be able to change your make. |
54 |
{conf,profile} (you'll want to check your CHOST and ACCEPT_KEYWORDS, at a |
55 |
minimum) then emerge -e world for a nice 64-bit userland. You may, |
56 |
however, run into some packages that you have to downgrade or do without |
57 |
-- not everything keyworded x86 is also keywords amd64, for better or |
58 |
worse. |
59 |
|
60 |
-- |
61 |
"If there's one thing we've established over the years, |
62 |
it's that the vast majority of our users don't have the slightest |
63 |
clue what's best for them in terms of package stability." |
64 |
-- Gentoo Developer Ciaran McCreesh |
65 |
-- |
66 |
gentoo-amd64@g.o mailing list |