Ubuntu 8.10 IOMMU
Since I installed Ubuntu Intrebid Ibex and upgraded my RAM to 4 gigs, i have been getting something like this message at boot:
[ 0.004000] Checking aperture…
[ 0.004000] No AGP bridge found
[ 0.004000] Node 0: aperture @ 20000000 size 32 MB
[ 0.004000] Aperture pointing to e820 RAM. Ignoring.
[ 0.004000] Your BIOS doesn’t leave a aperture memory hole
[ 0.004000] Please enable the IOMMU option in the BIOS setup
[ 0.004000] This costs you 64 MB of RAM
[ 0.004000] Mapping aperture over 65536 KB of RAM @ 20000000
So I searched the ubuntuforums for the solution to this, and it was pretty simple:
add iommu=noaperture to the kernel line in your /boot/grub/menu.list file. When You reboot, you will no longer get the error message.
If the above solution doesn’t work, try iommu=soft instead.
This is on 64bit Ubuntu 8.10 with an AMD Turion x2 processor and ATI chipset / graphics. Acer Aspire 5100 series.


Thanks for posting this. I had been searching on google for a good while and I finally stumbled upon your post. The iommu=noaperture worked for me – ubuntu 64bit, AMD Phenom 9850 BE and Asus Mobo (790FX chipset)
I’m glad you found it useful.
Thanks from me, too. I have an ASUS M2N-SLI Mobo, Ubuntu 8.10 64bit, 4GB, Athlon 64×2 5600+. I found something also on the ASUSTeK support site that sent me here:
ftp://download.nvidia.com/XFree86/Linux-x86/1.0-8174/README/32bit_html/appendix-l.html
Scroll down a bit and there’s an IOMMU section.
Thanks, this was educational.
quote:
On AMD’s AMD64 platform, the size of the IOMMU can be configured in the system BIOS or, if no IOMMU BIOS option is available, using the ‘iommu=memaper’ kernel parameter. This kernel parameter expects an order and instructs the Linux kernel to create an IOMMU of size 32MB^order overlapping physical memory. If the system’s default IOMMU is smaller than 64MB, the Linux kernel automatically replaces it with a 64MB IOMMU.
end quote
So this means that one can try iommu=memaper, if the noaperture and soft fails.
Hi,
I think that by adding “iommu=…” only the message will go away, but you won’t get the 64 MB memory back.
Easy way to check: use “free -m” in both cases (with and without the option iommu=…), and see if there’s any difference.
Please let us know.
PS:
There is some discussion and info on http://ubuntuforums.org/showthread.php?t=1018854
Thank you for this post. I had the same problem last week.
ASUSTek ALiveNF7G-FullHD R3.0 + MSI 9500GT 1Gb / Atlhon 64 X2 6100+ 4Gb RAM
>Easy way to check: use “free -m” in both cases (with and without the option iommu=…), and see if there’s any difference.
I’m running Ubuntu Server 9.04 64bit on an ASRock A780LM with an AMD Athlon 64 X2 BE and 4GB of RAM. I was seeing the lines at the top in my messages file as well. I was also seeing some I/O errors on the console just after the boot process started, but I wasn’t able to capture them or find them in other logs.
I just added the iommu=noaperture option to my boot line in grub and now I don’t see the I/O errors at boot up and /var/log/messages is clean. I did capture the “free -m” output before and after, but the system had been up several days when I captured the before and I’m not sure what else may have been consuming memory. Anyway here is the output before adding the iommu=noaperture option:
$ free -m
total used free shared buffers cached
Mem: 3650 582 3067 0 141 235
-/+ buffers/cache: 205 3444
Swap: 10695 0 10695
And here is the after:
$ free -m
total used free shared buffers cached
Mem: 3650 400 3249 0 8 169
-/+ buffers/cache: 221 3428
Swap: 10695 0 10695
I’ll have to subsribe to that thread, I don’t have Ubuntu on my laptop right now, had to go to “that other OS” for a while. But it won’t be long before I put Ubuntu back on it.
My acer will not POST if I put the onboard graphics mem to less than 256 in my BIOS settings, tried it once and I had to rip out a stick of RAM to get back in to change the setting.