rjbryla
asked on
Ignoring Athlon XP architecture at Linux Boot -- need i686 only
Using RedHat ES 3.0.
I have an insmod'able .o file that will only run on i686, but not Athlon. A mess, but I have no choice. If 'uname -p' returns 'athlon', the .o file will not load, because of undefined symbols. Mostly look like network lib symbols.
'uname -m' returns 'i686', and 'uname -i' returns 'i386'. Those are ok.
Is there some way on grub boot to tell the OS that my architecture is not 'athlon', but 'pentium3' or some kind of pentium.
I don't think re-making the OS will help, I don't see any symbols in the various kernel makefiles that allow me to select the CPU type.
Short of getting a different motherboard and CPU (too expensive -- I need 2 GB RAM), I'm also willing to entertain other solutions.
Thanks.
BB
I have an insmod'able .o file that will only run on i686, but not Athlon. A mess, but I have no choice. If 'uname -p' returns 'athlon', the .o file will not load, because of undefined symbols. Mostly look like network lib symbols.
'uname -m' returns 'i686', and 'uname -i' returns 'i386'. Those are ok.
Is there some way on grub boot to tell the OS that my architecture is not 'athlon', but 'pentium3' or some kind of pentium.
I don't think re-making the OS will help, I don't see any symbols in the various kernel makefiles that allow me to select the CPU type.
Short of getting a different motherboard and CPU (too expensive -- I need 2 GB RAM), I'm also willing to entertain other solutions.
Thanks.
BB
could you please post the exact error messages, and which program produced it
ASKER
'setarch' was something I originally thought of -- but when 'insmod' runs, it goes against the kernel symbols, which don't change when 'setarch' is run, so the problem remains.
Thanks for the suggestion.
Thanks for the suggestion.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Good to know you got the issue resolved. You can close the question by following this guidelines:
https://www.experts-exchange.com/help.jsp#hs5
https://www.experts-exchange.com/help.jsp#hs5
Setarch makes it possible to change the output produced by the uname command. This is useful for a number of reasons, such as running 32-bit applications (those written to expect a particular value from uname -m) in 64-bit environments.
The format for the setarch command is:
setarch <arch> <command>
(Where <arch> represents the desired architecture string (such as i386), and <command> represents the command to be run while the architecture has been modified.) Note that <command> can be omitted, in which case /bin/sh is run.
In addition, some applications (such as older versions of Java) are written to assume a 3GB virtual address space; when run on systems with larger virtual address spaces (such as 64-bit AMD64-based systems, or 32-bit systems running the hugemem kernel) such applications can malfunction. The setarch utility makes it possible to emulate a 3GB virtual address space, allowing such applications to run properly:
setarch -3 java