You are not logged in.

#1 2012-07-23 09:12:48

Registered: 2011-10-13
Posts: 19

[SOLVED] Loading Arch on Intel D2500CC board - i915 complaining about

I have been working for the past few days to load different flavors of Linux onto the following Intel board: D2500CC with latest available public BIOS (034...June 2012) from Intel … rd+d2500cc

My intended use is "firewall" for multiple reasons: (1) the board costs about 100USD; (2) the board has 2 10/100/1000 RJ-45 ports that are both based on Intel chipsets that are supported under Linux by the 'e1000' driver; (3) the board has a mini-PCIe slot that works with a Jetway 1-port board with Intel LAN chip that is also supported by the 'e1000' driver; (4) the board has a standard PCI slot.

My video needs are simple; console output is just fine. No fancy 2D or 3D graphics and definitely NO X is needed. So those requirements should avoid most issues with the GMA 3600 chipset. I mean basic VESA output shouldn't be that hard, should it? A developer using this same board with FreeBSD found a simple code issue in their video drivers that caused video tearing and a patch has been committed to FreeBSD 9.x to fix it.

RAM: 4GB of Kingston KVR series SO-DIMM DDR3-1333 memory

My best loading success has come with Debian 7.0 Alpha 1 (both x86 and x64 versions) and Ubuntu 12.04 LTS (both x86 and x64 versions). Installers and console output work correctly in all versions. This is Linux I believe.

My favorite Linux is Arch for many reasons so I have tried loading both x86 and x64 versions using "Net Install" so the latest code always gets downloaded. So that means Linux 3.4.6-1 in this case.

The Arch installer works fine in x86 mode, even when items have to be scrolled. The Arch installer works in x64 mode, but scrolling only occurs in 4 lines in the window and refresh of window contents does not occur.

In the x86 or x64 installs and only using 1 LAN port at this time, I can get completely through the entire installation process and reboot the computer. The system reboots fine and I can watch (I hate 'quiet' mode) the 'printk' output up to the point the Intel video card is probed during DRM startup and then the screen goes black. I am using the onboard VGA port, but I have also tried the onboard DVI with a DVI to DB-15 converter cable and seen the same effect. I have gone through the video section of the BIOS to ensure the port connected to the monitor is the primary video port in the BIOS. Supposedly this board will support 2 monitors at the same time, but I don't need that feature.

After the system has booted and with the screen black I can blindly log into the system. While watching the LAN LEDs I issued "rc.d restart network" and watched the LEDs blink off then on. I can blindly start 'sshd' and 'ssh' into the board. Once "ssh'd" into the board I could look at files. The output of 'dmesg' said that the 'i915' module needed the 'intel_agp' module during boot. I issued a "modprobe -v intel_agp" and saw the module load so I know it is on the system.

Via SSH I edited "rc.conf" to change the MODULES=() line to MODULES=(intel_agp). I saved the file and rebooted. No changes: the screen was still black and 'dmesg' still complained about "intel_agp" not being loaded.

Via SSH I edited "mkinitcpio.conf" to add the "i915" and "intel_agp" modules to the initramdisk. I ran the correct commands to rebuild the initramdisk, verified the output in the "/boot" folder and rebooted. No changes to anything.

In any case i would prefer to run Arch x64 over Arch x86 because the CPU will run 64-bit code (per Intel's web site) and all RAM can be accessed since Arch x86 does not provide PAE support. The output of 'free' showed all RAM installed and "memtest 86+ version 4.20" also sees all RAM.

What am I missing? Are the various module lines sensitive to the order in which modules are added to them? Perhaps I should wait for Linux 3.5 in Arch?

Other quirks:
- Arch x86 only recognizes and starts 1 of 2 cpu cores. The D2500 Atom is dual-core but lacks hyperthreading.
- Arch x64 recognizes and starts both cpu cores.

Edit: Forgot to add that I have tried "nomodeset" on the kernel command line but the screen still goes black during boot up. I will have to find time to gather more 'dmesg' details from the system after boot in various cases.

- New Arch July 2012 installer disk goes black on x64 install regardless of usage of "nomodeset" command.
- ArchBoot June 2012 installer disk does not go black on x64 install regardless of usage of "nomodeset" command.
- Old Arch August 2011 installer disk does not go black on x64 install regardless of "nomodeset" command.
- Have not tried any further x86 installs as that is not the desired Linux OS architecture for this application.
- Hopefully these notes will help someone bisect/disect this issue.

The output from dmesg | grep -i "drm" follows:
[    1.259451] [drm] Initialized drm 1.1.0 20060810
[    1.269874] [drm:i915_init] *ERROR* drm/i915 can't work without intel_agp module!
[    6.129976] [drm] SGX core id = 0x00000000
[    6.129981] [drm] SGX core rev major = 0x00, minor = 0x00
[    6.129985] [drm] SGX core rev maintenance = 0x00, designer = 0x00
[    6.140599] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[    6.140608] [drm] No driver support for vblank timestamp query.
[    6.364638] [drm:i915_init] *ERROR* drm/i915 can't work without intel_agp module!
[    6.434620] [drm] Initialized gma500 1.0.0 2011-06-06 for 0000:00:02.0 on minor 0

I have confirmed this: MODULES=(i915 intel_agp microcode)

The output from 'lsmod' shows that 'intel_agp' is loaded:
Module                  Size  Used by
microcode              12185  0
psmouse                70792  0
serio_raw               4653  0
coretemp                5654  0
pcspkr                  1899  0
i2c_i801                8180  0
gma500_gfx            152437  0
e1000e                146538  0
processor              26567  0
iTCO_wdt               12813  0
evdev                   9754  0
iTCO_vendor_support     1929  1 iTCO_wdt
usbhid                 36430  0
hid                    85477  1 usbhid
video                  11307  0
button                  4502  0
i2c_algo_bit            5391  1 gma500_gfx
intel_agp              10936  0
intel_gtt              14047  1 intel_agp
drm_kms_helper         33051  1 gma500_gfx
drm                   208958  2 drm_kms_helper,gma500_gfx
i2c_core               20369  5 drm,i2c_i801,drm_kms_helper,i2c_algo_bit,gma500_gfx
reiserfs              240093  5
ext4                  424175  1
crc16                   1359  1 ext4
jbd2                   73919  1 ext4
mbcache                 5977  1 ext4
uhci_hcd               23404  0
ehci_hcd               41026  0
sr_mod                 14823  0
cdrom                  35648  1 sr_mod
usbcore               147565  4 uhci_hcd,ehci_hcd,usbhid
usb_common               954  1 usbcore
sd_mod                 29239  8
ahci                   20549  7
libahci                20023  1 ahci
libata                167611  2 ahci,libahci
scsi_mod              132974  3 libata,sd_mod,sr_mod

The 'syslinux' bootloader looks like this:
LINUX /vmlinuz-linux
append initrd=/initramfs-linux.img root=/dev/disk/by-uuid/e20c4e30-4a2e-4628-9c67-54ed00f529ec rootfstype=reiserfs ro nomodeset noresume cgroup_disable=memory acpi_osi="Linux" clocksource=hpet ipv6.disable=1

I am using 'syslinux' and not 'grub' for 2 reasons: (1) 'grub-legacy' does not seem to want to work on this board; (2) I am not really skilled in 'grub2'.

Additional details from 'dmesg' output...
dmesg | grep -i "agp" reveals this:
[    0.000000] No AGP bridge found
[    0.000000] No AGP bridge found
[    0.511425] Linux agpgart interface v0.103
[    1.274143] [drm:i915_init] *ERROR* drm/i915 can't work without intel_agp module!
[    5.430195] [drm:i915_init] *ERROR* drm/i915 can't work without intel_agp module!

Scanning through 'dmesg' output found this:
[    1.264045] [drm] Initialized drm 1.1.0 20060810
[    1.274143] [drm:i915_init] *ERROR* drm/i915 can't work without intel_agp module!
[    1.278010] gma500 0000:00:02.0: setting latency timer to 64
[    1.278060] gma500 0000:00:02.0: irq 44 for MSI/MSI-X
[    1.278540] Stolen memory information
[    1.278545]        base in RAM: 0xcf800000
[    1.278548]        size: 7932K, calculated by (GTT RAM base) - (Stolen base), seems wrong
[    1.278553]       the correct size should be: 8M(dvmt mode=3)
[    1.281453] Set up 1983 stolen pages starting at 0xcf800000, GTT offset 0K
[    1.281592] [drm] SGX core id = 0x00000000
[    1.281595] [drm] SGX core rev major = 0x00, minor = 0x00
[    1.281599] [drm] SGX core rev maintenance = 0x00, designer = 0x00
[    1.294771] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[    1.294776] [drm] No driver support for vblank timestamp query.
[    1.567352] [drm] Initialized gma500 1.0.0 2011-06-06 for 0000:00:02.0 on minor 0
[    5.430195] [drm:i915_init] *ERROR* drm/i915 can't work without intel_agp module!

I wonder if the 'intel_agp' module isn't loading because the booting kernel cannot find an AGP bridge?

Last edited by NotMine (2012-07-24 08:12:21)


#2 2012-07-24 08:06:48

Registered: 2011-10-13
Posts: 19

Re: [SOLVED] Loading Arch on Intel D2500CC board - i915 complaining about


Add the following kernel command line option: video=LVDS-1:d

After spending hours trying different things and doing Google searches, I found the following URL. Granted the OS is not Arch, but the kernel command line option works for Arch. … evel/13667

I found that the "nomodeset" kernel command line option can be removed. Also I found no need to have any "vga=" kernel command line option.
I guess that probably means "kms" is working correctly for this video chipset on this type of motherboard.

After further testing I can confirm that no video-related modules need to be added to "mkinitcpio.conf" nor "rc.conf".

Here's the output of "hwinfo --gfxcard"

09: PCI 02.0: 0300 VGA compatible controller (VGA)             
  [Created at pci.319]
  Unique ID: _Znp.CwxYvMx7QA5
  SysFS ID: /devices/pci0000:00/0000:00:02.0
  SysFS BusID: 0000:00:02.0
  Hardware Class: graphics card
  Model: "Intel VGA compatible controller"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x0be1
  SubVendor: pci 0x8086 "Intel Corporation"
  SubDevice: pci 0x202c
  Revision: 0x09
  Driver: "gma500"
  Driver Modules: "drm"
  Memory Range: 0xd0300000-0xd03fffff (rw,non-prefetchable)
  I/O Ports: 0x40d0-0x40d7 (rw)
  IRQ: 53 (no events)
  I/O Ports: 0x3c0-0x3df (rw)
  Module Alias: "pci:v00008086d00000BE1sv00008086sd0000202Cbc03sc00i00"
  Driver Info #0:
    Driver Status: gma500_gfx is active
    Driver Activation Cmd: "modprobe gma500_gfx"
  Config Status: cfg=new, avail=yes, need=no, active=unknown

Primary display adapter: #9

And here's the relevant "lspci -s 00:02.0 -vvv" output:

00:02.0 VGA compatible controller: Intel Corporation Atom Processor D2xxx/N2xxx Integrated Graphics Controller (rev 09) (prog-if 00 [VGA controller])
        Subsystem: Intel Corporation Device 202c
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 53
        Region 0: Memory at d0300000 (32-bit, non-prefetchable) [size=1M]
        Region 1: I/O ports at 40d0 [size=8]
        Expansion ROM at <unassigned> [disabled]
        Capabilities: [d0] Power Management version 2
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [b0] Vendor Specific Information: Len=07 <?>
        Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
                Address: fee0300c  Data: 41c9
        Kernel driver in use: gma500

And for the record....
[root@XXX ~]# uname -a
Linux XXX.XXX 3.4.6-1-ARCH #1 SMP PREEMPT Fri Jul 20 08:21:26 CEST 2012 x86_64 GNU/Linux

Last edited by NotMine (2012-07-24 08:22:51)


Board footer

Powered by FluxBB