[Techtalk] Architecture crossover trouble w RH7.2 (solved)

Conor Daly conor.daly at oceanfree.net
Sat Jul 27 14:18:22 EST 2002


On Wed, Jul 24, 2002 at 10:50:45AM +0100 or so it is rumoured hereabouts, 
Conor Daly thought:
> And it's not that much different architecture...
> 
> I'm building a server for someone but have only got a HD at present (I'll
> be building the box itself later).  I installed RH7.2 onto this disk
> running on an Intel Celeron processor.  Recently I moved the disk over to an
> AMD based box (K6-2 chip) and it won't boot.  I get LILO, it starts
> loading the kernel, starts to uncompress and reboots.  It'll keep doing
> this indefinitely.  I booted from the AMD's own hd, copied its kernel and
> initrd.img across to the server HD, added that to lilo and rebooted.  this
> time the kernel boots, starts doing all its boot time stuff, gets to the 
> "Freeing unused kernel memory" message and freezes (It'll reboot on a
> <CTRL><ALT><DEL>).  The next stage in a normal boot is "Running init" so
> there must be something there.  It's not panicing "init not found" and a
> diff on /sbin/init between each disk returns matching files.  I'm not sure
> where to look next.  Any clue?
> 
> BTW, the kernels in question are the stock RH7.2 2.4.7-10 kernels on each
> of the AMD and Intel disks.  Would it be simply a matter of "rpm -ivh
> <correct_arch_kernel.rpm>" to install both kernels?

Turns out it's pretty much that.  

The AMD K6 series processor is a 586 class while the Intel Celeron is a
686 class processor.  Both kernel and glibc come in i386 and i686
optimised rpms.  The install to the celeron puts on the i686 versions
which break the AMD chip so for a portable HD, you need to use the i386
rpms.

Here's how to do it...

While the disk is still installed in the i686 machine (if that's broken,
beg, borrow or steal...), remove the i686 versions of glibc and kernel and
install the i386 versions.  This will break one or two other packages
since
they have entries in /etc/ld.so.conf which belongs to glibc.  these
packages
will need to be reinstalled.  So:

1. rpm -e --nodeps glibc

        Your /etc/ld.so.conf has been saved as /etc/ld.so.conf.rpmsave

2. rpm -ivh glibc-<v.e.r-no>-i386.rpm
3. rpm -e --nodeps kernel
4. rpm -ivh kernel-<v.e.r-no>-i386.rpm

This installs the i386 versions of kernel and glibc.  You'll be able to
boot
in a non 686 machine now.  However, X is now broken as is kerberos.  At
least those are the two I noticed.  Your /etc/ld.so.conf.rpmsave will
contain clues as to what else might be broken.  To fix X and kerberos you
need to reinstall their libs (copying /etc/ld.so.conf.rpmsave back to
/etc/ld.so.conf doesn't seem to work):

1. rpm -ivh --replacepkgs XFree86-libs-<v.e.r-no>-i386.rpm
2. rpm -ivh --replacepkgs krb5-libs-<v.e.r-no>-i386.rpm

fixes them.  Other libs listed in _my_ /etc/ld.so.conf are qt, mysql and
sane.  If they start behaving in odd fashions, it may be related.
Reinstalling the libs for these packages may fix that.

Conor
-- 
Conor Daly <conor.daly at oceanfree.net>

Domestic Sysadmin :-)
---------------------
Faenor.cod.ie
  2:28pm  up 64 days, 23:46,  0 users,  load average: 0.00, 0.00, 0.00
Hobbiton.cod.ie
  2:15pm  up 7 days, 20:52,  1 user,  load average: 0.05, 0.02, 0.00



More information about the Techtalk mailing list