Video address bus issue with Linux install

Discussion in 'Parallels Desktop for Mac' started by peterwor, May 20, 2006.

  1. peterwor

    peterwor Hunter

    Messages:
    140
    This is for the Parallels folks. I'm just tried to install a standard Debian Linux VM install and the installer runs into the following problem when trying to detect the video type.
    During the agp detection, Debian detects the intel i815 chipset but then returns a kernal panic stating that "gatt bus addr too high" I'm taking this to mean that the video controller's bus address is out of range of a "normal" x86 architecture.

    Is this something Parallels can look into?

    Thanks in advance,
    Peter
     
  2. no_fuse

    no_fuse Bit poster

    Messages:
    4
    I had the same problem. It's related to the Linux agpgart module. (or part of the kernel if it's compiled in statically) I fixed the problem by simply renaming that module so it couldn't load on boot. You could also edit /etc/modules.conf or whatever equivalent configuration file your distro has or do a dozen different things as long as you prevent agpgart's getting loaded.
     
  3. peterwor

    peterwor Hunter

    Messages:
    140
    no_fuse,
    Thanks for the reply, could you elaborate a little. Where did you rename the module or the conf file?
    I' using the std SUSE 10.1 DVD install image. I have no idea of where to access the module to stoip it from loading.
    Did you use the CDs to load your image or another media?

    Any help would be great;y appreciated,
    Peter
     
  4. no_fuse

    no_fuse Bit poster

    Messages:
    4
    In my particular problem, I installed Slackware without a hitch but upon first reboot, the kernel would panic and complain about the bus error your mentioned in your first post. If your install doesn't complete in the first place, this isn't gonna help you out.

    On most linux distributions, kernel modules will be installed under
    Code:
     /lib/modules/<kernelVersion>/
    
    On my system the agpgart.o.gz was located at
    Code:
    /lib/modules/2.4.31/kernel/drivers/char/agp/agpgart.o.gz
    
    To stop that module from loading on boot I (in a very sloppy and lazy move) simply renamed it to
    Code:
    /lib/modules/2.4.31/kernel/drivers/char/agp/AGPGART
    
    Of course, to be able to do that, you'll have to get the machine to boot and mount the hard drive. There are a million ways to go about that, but I used a Slackware 10.2 install CD.

    After booting off the CD, Slackware asks you to choose a keyboard setup. The defaults it offers are correct for the Parallels VM.

    Then Slack will tell you that you can login as root. Do so. All you have to do is enter
    Code:
    root
    at the login prompt.

    You'll notice that you've got a pretty basic shell. The following sequence of commands is what I used to complete the task. Keep in mind that your partition scheme may be different than mine. My setup is
    Code:
    /dev/hda1 Linux Swap
    /dev/hda2 /boot
    /dev/hda3 /
    
    Anyway, on with the commands.
    Code:
    mkdir disk
    mount /dev/hda3 disk
    mv disk/lib/modules/2.4.31/kernel/drivers/char/agp/agpgart.o.gz disk/lib/modules/2.4.31/kernel/drivers/char/ago/AGPGART
    umount disk
    reboot
    
    Keep in mind that those exact commands may not work on your system. Your kernel modules could be installed in a different place because, for instance, you could be running a different kernel version, or Suse could install them someplace different.

    After you reboot, you'll probably notice at least one error in the dmesg output saying something about agpgart failing to load. The boot process should proceed.

    I guess if you really wanted to be serious about fixing the problem the "right" way, you'd modify the appropriate config files or compile your own kernel. I've been playing with my VM in the "lazily renamed kernel module" state for a few days now and everything seems to be just peachy. In fact, I'm making this post with my VM now.

    To answer your question about what media I used, I used a Slackware iso file as my media. If you can't get your choosen installer to work, you can always switch to Slack. It's the best distro anyway ;)
     
    Last edited: May 21, 2006
  5. gor

    gor Bit poster

    Messages:
    5
    Yes, I had this exact same issue with my Debian Linux install. The way I got around it is to install Debian using the 2.6 Linux kernel instead of the 2.4 kernel.

    If you type "linux26" and press Return at the boot prompt for the Debian installer CD, then it'll install a 2.6 based Linux system instead of a 2.4 system (default). I'm using the Debian 3.1 (Sarge) R2 Net Install CD, btw.

    Even still, when the 2.6 kernel is booting up, I get an error and a stack dump from the kernel when the agpgart module is loading. However, the system recovers and continues booting normally.

    I'm using kernel 2.6.15 and here's the relevant details from the system log:

    Linux agpgart interface v0.101 (c) Dave Jones
    agpgart: Detected an Intel i815 Chipset.
    agpgart: gatt bus addr too high<3>agpgart: error configuring host chipset.
    ------------[ cut here ]------------
    kernel BUG at arch/i386/mm/pageattr.c:137!
    invalid operand: 0000 [#1]
    Modules linked in: intel_agp agpgart mousedev snd_intel8x0 snd_ac97_codec snd_ac97_bus snd_pcm snd_timer snd soundcore snd_page_alloc ext3 jbd mbcache ide_cd cdrom ide_disk uhci_hcd usbcore piix generic ide_core ne2k_pci 8390 processor
    CPU: 0
    EIP: 0060:[<c0112956>] Not tainted VLI
    EFLAGS: 00010082 (2.6.15-1-686)
    EIP is at __change_page_attr+0xde/0x17b
    eax: 2fc001e3 ebx: c15fe600 ecx: c1006200 edx: c1000000
    esi: c0310efc edi: eff30000 ebp: 00000163 esp: ef4efe68
    ds: 007b es: 007b ss: 0068
    Process modprobe (pid: 3143, threadinfo=ef4ee000 task=ef468ab0)
    Stack: c15fe600 00000010 00000206 00000163 c0112a0d c15fe600 00000163 df9bca20
    f0940000 00000001 00000001 c01126d3 c15fe400 00000011 00000163 efce9f40
    00000004 f092acde f0940000 ffffffea efce9f40 00000001 f0929196 efce9f40
    Call Trace:
    [<c0112a0d>] change_page_attr+0x1a/0x33
    [<c01126d3>] iounmap+0x8b/0xb8
    [<f092acde>] agp_generic_free_gatt_table+0x30/0x9f [agpgart]
    [<f0929196>] agp_backend_initialize+0x112/0x12e [agpgart]
    [<f09292b1>] agp_add_bridge+0x4d/0xfd [agpgart]
    [<c01ac6a6>] __pci_device_probe+0x32/0x41
    [<c01ac6d4>] pci_device_probe+0x1f/0x34
    [<c01fcf63>] driver_probe_device+0x32/0x7c
    [<c01fd004>] __driver_attach+0x0/0x36
    [<c01fd028>] __driver_attach+0x24/0x36
    [<c01fc864>] bus_for_each_dev+0x46/0x6c
    [<c01fd04e>] driver_attach+0x14/0x18
    [<c01fd004>] __driver_attach+0x0/0x36
    [<c01fcbe0>] bus_add_driver+0x54/0x96
    [<c01ac8a6>] __pci_register_driver+0x75/0x88
    [<f082401d>] agp_intel_init+0x1d/0x20 [intel_agp]
    [<c0129f19>] sys_init_module+0xa5/0x164
    [<c0102a75>] syscall_call+0x7/0xb
    Code: 89 d9 83 c4 0c 8b 01 89 ca f6 c4 40 74 03 8b 51 0c ff 42 04 eb 1d 84 c0 78 11 29 d3 c1 fb 05 c1 e3 0c 09 eb 89 1e ff 49 04 eb 08 <0f> 0b 89 00 50 3e 27 c0 8b 01 f6 c4 04 0f 85 83 00 00 00 8b 01
     
  6. gor

    gor Bit poster

    Messages:
    5
    Weird. I just increased the amount of memory for my virtual machine from 768 to 924 (max recommended) and now I don't get the agpgart problem anymore.
     
  7. JamieMcCarthy

    JamieMcCarthy Bit poster

    Messages:
    1
    Confirmed, increasing memory fixes

    This is just a followup to confirm gor's last message. I got exactly this kernel panic error when installing Ubuntu "Dapper Drake" onto a Parallels VM with 768 MB; when I bumped its memory allocation to 900 MB it started booting normally.
     
  8. stephdau

    stephdau Bit poster

    Messages:
    8
    Free Fedora Core 6 VM image

    I have posted a ready-built Fedora Core 6 for people interested in trying out FC6, but not having the time or energy to install it themselves. :)

    You can read about and find it on my blog.

    It's using the default kernel, using the specific memory allocation trick, but that can easily be switched once Fedora is running.

    There's also a previous post on my first install, which actually refers to this very thread.

    Hoping it might help.
     
  9. dkoes

    dkoes Bit poster

    Messages:
    5
    Workaround for memory bug (fedora core 6)

    Using Fedora Core 6 I've managed to workaround the 512MB only bug by passing "agp=off" as a kernel argument. I've successfully booted multiple times with 1024MB and 1500MB of memory.

    For those you don't know how to pass a kernel argument.. right as the virtual machine is starting up there's a countdown screen, press the return key before boot continues. Hit 'a' to append an argument and just add " agp=off" to the commandline. If that works, you can make the change permanent by editting /boot/grub/menu.lst as root.

    Hope this helps (it certainly helped me).

    -Dave
     
  10. stephdau

    stephdau Bit poster

    Messages:
    8
  11. robholland

    robholland Bit poster

    Messages:
    1
    Similar problem for puppylinux

    Hey,

    Just so this hopefully might help others/make it into the search engines:

    I had this exact same problem with puppy linux. In order to get it to boot I had to use 512MB of RAM, no other value I tried (like the others mentioned in this thread) worked for puppy.

    I have to say, this is a wonderfully obscure bug... :)

    Please fix it! I'd love to be using 1024MB for this instance...
     

Share This Page