View Full Version : i386 drivers on amd64
kienjakenobi
06-25-2008, 02:30 PM
I am afraid this will be a futile inquiry, but I still have to ask.
amd64 contains the 32 bit code with 64 bit extensions. This means that I should be able to run i386 programs, amd64 programs, and ia64 programs, right?
Following this thought process, it seems that I should also be able to run the official NVIDIA video driver on my amd64 system, even though the driver is currently only made for i386. However, I do not actually hold much hope for this being true due to the low-level nature of drivers. It would be all too convenient to be able to run the official NVIDIA driver on amd64.
Of course, when I just try to install the NVIDIA driver from ports I get the message that it was meant for i386. Providing it will not botch up my system too badly, I might just unmask it and see how it works.
Humph! I also just realized the the open source NVIDIA driver (nouveau) is not in ports (Unless they are under some odd name). I suppose I could try building it from source, though I do not hold a whole lot of hope in that working either. :)
adamk
06-25-2008, 03:41 PM
First, IA64 is a completely different architecture: http://en.wikipedia.org/wiki/Ia64
64 bit drivers will not work on a 32 bit kernel. The kernel module is not open source. It's a small open source wrapper that links to a binary blob. This binary blob is 32 bit.
If you really need 64 bit opengl drivers, the open source radeon driver from ports works on r100-r400 cards, and if you compile it from git it works on r500 cards, too.
Adam
BSDfan666
06-25-2008, 04:42 PM
I am afraid this will be a futile inquiry, but I still have to ask.
amd64 contains the 32 bit code with 64 bit extensions. This means that I should be able to run i386 programs, amd64 programs, and ia64 programs, right?
Following this thought process, it seems that I should also be able to run the official NVIDIA video driver on my amd64 system, even though the driver is currently only made for i386. However, I do not actually hold much hope for this being true due to the low-level nature of drivers. It would be all too convenient to be able to run the official NVIDIA driver on amd64.
Of course, when I just try to install the NVIDIA driver from ports I get the message that it was meant for i386. Providing it will not botch up my system too badly, I might just unmask it and see how it works.
Humph! I also just realized the the open source NVIDIA driver (nouveau) is not in ports (Unless they are under some odd name). I suppose I could try building it from source, though I do not hold a whole lot of hope in that working either. :)IA64 is Itanium 64, Intel orignally planned to phase out the x86 family and move forward with that architecture. (Which is very different.. thus, not supported by either AMD64/Intel 64)
AMD64 and Intel 64(or EM64T) are extensions to the x86 architecture, registers and address sizes have been increased.. and among other things the introduction of Long Mode.
Long mode has 2 sub-modes, 64-bit only mode and a "Compatibility" mode, in compatibility mode 64-bit/32-bit and 16-bit code can run together..
OpenBSD is an example of an AMD64 port that does not utilize Compatibility mode, I believe FreeBSD does though.
As for your question about drivers, no, it's much different to have 32-bit applications running under a 64-bit OS, but 32-bit drivers is completely different story. ;)
kienjakenobi
06-25-2008, 04:50 PM
First, IA64 is a completely different architecture: http://en.wikipedia.org/wiki/Ia64
I see. That makes sense. The ia64 has too many differences to be compared to x86 and x86_64 in this manner. However, by listing ia64 I was just trying to say that an amd64 system should be able to run code written strictly for a 64-bit systems, just as it should be able to run code written for a 32-bit system.
The kernel module is not open source. It's a small open source wrapper that links to a binary blob. This binary blob is 32 bit.
That should not necessarily mean that it will not work on an amd64 system. There are plenty of 32-bit binary programs that run in amd64. That is precisely why amd64 was made. It is a middle ground between absolute 32-bit and absolute 64-bit. It was made so that people could run the thousands of programs that are currently made only for 32-bit processors, as well as run the programs that lie in the future, 64 bit programs.
If you really need 64 bit opengl drivers, the open source radeon driver from ports works on r100-r400 cards, and if you compile it from git it works on r500 cards, too.
Yes, but throwing away five hundred dollars and paying five hundred more dollars is not an option for me. :)
kienjakenobi
06-25-2008, 04:52 PM
As for your question about drivers, no, it's much different to have 32-bit applications running under a 64-bit OS, but 32-bit drivers is completely different story.
Thanks. That is what I figured.
phoenix
06-25-2008, 06:37 PM
You can't run 32-bit kernel stuff in a 64-bit kernel. Simple as that.
You can run 32-bit userspace stuff on a 64-bit kernel, though. This is what allows you to run 32-bit apps on a 64-bit OS. (At least in Linux, you can install a 32-bit OS, then install a 64-bit kernel, and everything will still work. We did that with a Debian 3.1 system that needed more than 4 GB of RAM, but was originally installed as 32-bit.)
vBulletin® v3.7.2, Copyright ©2000-2009, Jelsoft Enterprises Ltd.