I have Centos 4.4 i386 installed an on i686. I tried making a mini-test live cd based on this install that just starts bash but it only works on i686 machines and not i586.
I only have i386 glibc and all other packages are i386. I copied all of the necessary .so files. I even manually compiled bash using -march=i386 & -mtune=i386 but it will only run on i686.
Can anyone explain why?
Thanks!
junk@realtechtalk.com wrote:
I have Centos 4.4 i386 installed an on i686. I tried making a mini-test live cd based on this install that just starts bash but it only works on i686 machines and not i586.
I only have i386 glibc and all other packages are i386. I copied all of the necessary .so files. I even manually compiled bash using -march=i386 & -mtune=i386 but it will only run on i686.
what kernel do you have installed ?
An i686 kernel on the machine I'm creating the livecd with but the kernel I specially compiled for the livecd is an i386.
Karanbir Singh wrote:
junk@realtechtalk.com wrote:
I have Centos 4.4 i386 installed an on i686. I tried making a mini-test live cd based on this install that just starts bash but it only works on i686 machines and not i586.
I only have i386 glibc and all other packages are i386. I copied all of the necessary .so files. I even manually compiled bash using -march=i386 & -mtune=i386 but it will only run on i686.
what kernel do you have installed ?
junk@realtechtalk.com wrote:
An i686 kernel on the machine I'm creating the livecd with but the kernel I specially compiled for the livecd is an i386.
Karanbir Singh wrote:
junk@realtechtalk.com wrote:
I have Centos 4.4 i386 installed an on i686. I tried making a mini-test live cd based on this install that just starts bash but it only works on i686 machines and not i586.
I only have i386 glibc and all other packages are i386. I copied all of the necessary .so files. I even manually compiled bash using -march=i386 & -mtune=i386 but it will only run on i686.
what kernel do you have installed ?
we dont have a i386 kernel in centos-4, and afaik you cant make the el kernel build for i386 without major changes and dropping a lot of the patches.
also, i am going to ignore your emails if you continue to top post :)
- KB
Karanbir Singh wrote:
junk@realtechtalk.com wrote:
An i686 kernel on the machine I'm creating the livecd with but the kernel I specially compiled for the livecd is an i386.
Karanbir Singh wrote:
junk@realtechtalk.com wrote:
I have Centos 4.4 i386 installed an on i686. I tried making a mini-test live cd based on this install that just starts bash but it only works on i686 machines and not i586.
I only have i386 glibc and all other packages are i386. I copied all of the necessary .so files. I even manually compiled bash using -march=i386 & -mtune=i386 but it will only run on i686.
what kernel do you have installed ?
we dont have a i386 kernel in centos-4, and afaik you cant make the el kernel build for i386 without major changes and dropping a lot of the patches.
also, i am going to ignore your emails if you continue to top post :)
- KB
Hi KB
I promise not to top post anymore :) Do you know why the problem I'm describing could be happening? All other packages I have are i386. I've taken the binary from bash i386 and I did ldd I copied all relevant files to the livecd but it only works on i686.
I even force upgraded to glibc.i386 since some of the bash libraries were from glibc.i686
My only thought is that maybe libc.so.6 is the problem. I did copy the libc.so.6 from the i386 into that i686 directory and overwrote it just to be sure but it still won't work.
Thank you for your help it is much appreciated.
Below is the ldd of the standard bash binary from Centos ====================================== ldd /bin/bash libtermcap.so.2 => /lib/libtermcap.so.2 (0x0083e000) libdl.so.2 => /lib/libdl.so.2 (0x007d4000) libc.so.6 => /lib/tls/i686/libc.so.6 (0x006be000) /lib/ld-linux.so.2 (0x006a7000)
junk@realtechtalk.com wrote:
I promise not to top post anymore :)
Excellent!
Do you know why the problem I'm describing could be happening?
its all assumption at this stage since you've not really said what breaks or how it does not work
All other packages I have are i386. I've taken the binary from bash i386 and I did ldd I copied all relevant files to the livecd but it only works on i686.
What do you really mean by 'it only works with i686' - which part of the livecd is failing ? how did you create this livecd ? what kernel and glibc / init process are you using etc ?
- KB
Karanbir Singh wrote:
junk@realtechtalk.com wrote:
I promise not to top post anymore :)
Excellent!
Do you know why the problem I'm describing could be happening?
its all assumption at this stage since you've not really said what breaks or how it does not work
All other packages I have are i386. I've taken the binary from bash i386 and I did ldd I copied all relevant files to the livecd but it only works on i686.
What do you really mean by 'it only works with i686' - which part of the livecd is failing ? how did you create this livecd ? what kernel and glibc / init process are you using etc ?
- KB
Hi KB
What I've done is taken a generic 2.6.18.3 Kernel and compiled with i386 support. All I have on the livecd now since I started from scratch is a copy of the dev entries in centos.
All the disc does is run init and load bash. The init itself is a bash script which just tells /bin/bash to execute I have all the .so files as mentioned in my previous e-mails copied to the relevant places.
When I run the disc on any i686 machine it works but if I take it to an i586 it halts after the kernel loads. There is no error message, I can type things but bash never actually executed (remember this disc works fine and loads bash like it should on an i686 machine).
I am using Centos 4.4 Server CD, it comes standard with an i686 glibc installed but I downloaded *glibc.i386 2.3.4-2.25 *and run "rpm -Uvh glibc-rpm.name --force" to install it over top of glibc.i686
I hope that explains it. The bottom line is the disc works on any i686 machine but not an i386. I almost wonder if somehow some of the i386 glibc .so's are not i386 as it claims?
Thanks again!
On Mar 24, 2007, at 9:05 PM, junk@realtechtalk.com wrote:
Karanbir Singh wrote:
junk@realtechtalk.com wrote:
I promise not to top post anymore :)
Excellent!
Do you know why the problem I'm describing could be happening?
its all assumption at this stage since you've not really said what breaks or how it does not work
All other packages I have are i386. I've taken the binary from bash i386 and I did ldd I copied all relevant files to the livecd but it only works on i686.
What do you really mean by 'it only works with i686' - which part of the livecd is failing ? how did you create this livecd ? what kernel and glibc / init process are you using etc ?
- KB
Hi KB
What I've done is taken a generic 2.6.18.3 Kernel and compiled with i386 support. All I have on the livecd now since I started from scratch is a copy of the dev entries in centos.
All the disc does is run init and load bash. The init itself is a bash script which just tells /bin/bash to execute I have all the .so files as mentioned in my previous e-mails copied to the relevant places.
When I run the disc on any i686 machine it works but if I take it to an i586 it halts after the kernel loads. There is no error message, I can type things but bash never actually executed (remember this disc works fine and loads bash like it should on an i686 machine).
I am using Centos 4.4 Server CD, it comes standard with an i686 glibc installed but I downloaded glibc.i386 2.3.4-2.25 and run "rpm -Uvh glibc-rpm.name --force" to install it over top of glibc.i686
I hope that explains it. The bottom line is the disc works on any i686 machine but not an i386. I almost wonder if somehow some of the i386 glibc .so's are not i386 as it claims?\
I've had problems in the past when trying to convert a RHEL distribution to one that can run on lesser platforms, such as 486s or Pentiums. Glibcs are not the easiest thing to replace, since you are normally trying to downgrade them on the fly, so you can't just remove the old one to ensure it is gone, then install the new one.
I've seen the /lib/i686 directory being left behind when trying an upgrade like you listed above, so you may want to check that there isn't the i686 version of the libs remaining along with the 386 version. If so, it could be loading that instead, and failing on a Pentium.
Kevin K wrote:
On Mar 24, 2007, at 9:05 PM, junk@realtechtalk.com wrote:
Karanbir Singh wrote:
junk@realtechtalk.com wrote:
I promise not to top post anymore :)
Excellent!
Do you know why the problem I'm describing could be happening?
its all assumption at this stage since you've not really said what breaks or how it does not work
All other packages I have are i386. I've taken the binary from bash i386 and I did ldd I copied all relevant files to the livecd but it only works on i686.
What do you really mean by 'it only works with i686' - which part of the livecd is failing ? how did you create this livecd ? what kernel and glibc / init process are you using etc ?
- KB
Hi KB
What I've done is taken a generic 2.6.18.3 Kernel and compiled with i386 support. All I have on the livecd now since I started from scratch is a copy of the dev entries in centos.
All the disc does is run init and load bash. The init itself is a bash script which just tells /bin/bash to execute I have all the .so files as mentioned in my previous e-mails copied to the relevant places.
When I run the disc on any i686 machine it works but if I take it to an i586 it halts after the kernel loads. There is no error message, I can type things but bash never actually executed (remember this disc works fine and loads bash like it should on an i686 machine).
I am using Centos 4.4 Server CD, it comes standard with an i686 glibc installed but I downloaded glibc.i386 2.3.4-2.25 and run "rpm -Uvh glibc-rpm.name --force" to install it over top of glibc.i686
I hope that explains it. The bottom line is the disc works on any i686 machine but not an i386. I almost wonder if somehow some of the i386 glibc .so's are not i386 as it claims?\
I've had problems in the past when trying to convert a RHEL distribution to one that can run on lesser platforms, such as 486s or Pentiums. Glibcs are not the easiest thing to replace, since you are normally trying to downgrade them on the fly, so you can't just remove the old one to ensure it is gone, then install the new one.
I've seen the /lib/i686 directory being left behind when trying an upgrade like you listed above, so you may want to check that there isn't the i686 version of the libs remaining along with the 386 version. If so, it could be loading that instead, and failing on a Pentium. _______________________________________________ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
Thanks Kevin. I actually extracted the i386 glibc and did a diff (comparing the i386 files I extracted from the RPM to the ones that were actually installed) on all the glibc files I needed to use for bash and they all came back the same. Just to be sure I copied the libc.so.6 i386 file into the tls/i686 directory.
I feel strongly that the i386 glibc is not truly i386 unless I'm making a stupid mistake but I've been at this for a few days. I even manually compiled bash using march & mtune i386 flags and it still wouldn't run. It had different dependencies but I copied those too and again it runs on i686.
Does anyone know a simple way to build an i386 compatible cd? I suspect my issue is that the i386 glibc is not really i386
Thanks again everyone!