Роберт Киммель wrote:
Hi LFS-support list,

I have had 32-bit LFS systems for years, and finally decided to give
64-bit a shot.  (Hardware all around is a Dell PC, Intel chip, pretty
common consumer desktop stuff.)  The way I did it turned out to be far
more painful than I anticipated - I started to build a CLFS system
(using my 32-bit LFS as a base), sysvinit version, and followed the "If
you are going to boot" branch.  However, I didn't complete it - once I
had the minimal CLFS system booted, I instead ran some shell scripts I
have to build an LFS 7.5 system automatically (or nearly so).  During
this whole process, the 7.6 LFS book came out, and, unless I'm looking
in the wrong place, the 7.5 book disappeared (the "museum" only seems to
go to 7.0), which added a whole additional element of complexity to the
process.  Some additional packages (perl, m4, and bison) had to be added
to the base CLFS system to get my scripts to run, and some hard-coded
links had to be changed (mostly things that are normally in /usr/bin on
the host system, were actually in /tools, but also one hard-coded
reference to /tools, which I changed to /toolx for the LFS system, since
my partially-built CLFS already had a /tools directory).

But, I got through it, and now have a completely built LFS system,
created under my crippled, half-built, 64-bit CLFS.  But, it doesn't
boot.  The message which shows up on the console screen before the
kernel panic is, it can find /sbin/init, but can't execute it.  I think
what is going on is, my scripts followed the LFS book as written, which
copies a kernel image from the arch/x86/boot directory of the kernel
build directory.  Since I'm trying to build a 64-bit system, I suppose
it should have been arch/x86_64/boot, but I didn't catch this.  So I
think I have a kernel built for a 32-bit system, trying to run a 64-bit
"init" program.  Does that seem consistent with the symptoms?

No. There is no arch/x86_64 directory, even on a 64-bit system in the standard LFS build. Also, if it were the problem, you wouldn't have gotten far enough to to get it to search for /sbin/init (unless it is a 32-bit kernel). I'm not sure about CLFS though.

Now the fun part.  I don't have enough partitions.  The working 32-bit
LFS is on one partition, and the half-built 64-bit CLFS is on the
other.  I don't have any others.  So I booted in the 32-bit LFS, tarred
up the CLFS, and put my new 64-bit LFS where the CLFS used to be.  I
meant to keep the tarred-up CLFS, but due to a combination of fast
typing and carelessness, I don't have it anymore.  (I do have the
scripts I used to build the partial CLFS, but a fair amount of manual
intervention was required.)

So my problem is, can I build a 64-bit kernel under a 32-bit LFS,
following the standard LFS instructions?

No. You have to start with the architecture you are running with. You probably want to divide up the partition so you have extra space, but you didn't list your partitioning so we can't give a good recommendation.

Can I just compile the kernel
in my 32-bit system, take the image from the arch/x86_64/boot directory,
and stick it into my non-functioning 64-bit LFS?  Or do I need to do a
cross-compile, as in the CLFS book?

Probably cross-compile.

  -- Bruce

--
http://lists.linuxfromscratch.org/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Do not top post on this list.

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?

http://en.wikipedia.org/wiki/Posting_style

Reply via email to