i915/inteldrmfb on Froyo question

363 views
Skip to first unread message

Chris Furlough

unread,
Mar 22, 2011, 5:32:36 PM3/22/11
to Android-x86
I have an Inspiron N5010 with an "Intel Integrated Graphics
Controller":

00:02.0 VGA compatible controller: Intel Corporation Core Processor
Integrated Graphics Controller (rev 18) (prog-if 00 [VGA controller])
Subsystem: Dell Device 0447
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 46
Region 0: Memory at fa400000 (64-bit, non-prefetchable)
[size=4M]
Region 2: Memory at c0000000 (64-bit, prefetchable)
[size=256M]
Region 4: I/O ports at f080 [size=8]
Expansion ROM at <unassigned> [disabled]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0a00c Data: 4191
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: [a4] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: i915
Kernel modules: i915

That obviously uses the i915 driver on Ubuntu. As such, I'm guessing
that I should be able to use the inteldrmfb driver under android.

So, I've experimented with all sorts of combinations of kernel line
options to get something good, and I get 1 of 2 outcomes:

1. Screen that looks like the pitch is off, as the display "wraps
around", and as a result is unreadable.
2. A nice looking screen that cat /proc/fb reveals as using the VESA
driver, not the inteldrmfb. (This comes about as a result of using
"nomodeset" at the end of the kernel line).

Can someone tell me what kernel video options are recommended to get
inteldrmfb as my driver, and maybe clean video as well?

Notes;

If I boot with video=-16, I get the garbled display. I added vga=ask,
and it doesn't make a difference what I choose, it's always garbled.
It seems as if nomodeset is grub-speak for "load the VESA driver" is
that correct?

sknobl

unread,
Mar 22, 2011, 7:45:26 PM3/22/11
to Android-x86
Hi Chris,
I'm not sure what hardware you're using - might be an i915 or i965
graphics chipset (what processor is inside? Atom means i915 & Core???
means i965) - for Ubuntu these chipsets are handled with an identical
driver, and for Android @ boot time, too. But if the OS tries to load
the GUI an 3D Acceleration is loaded(the acceleration system is called
mesa, derived from *stock* Linux, too but not with all drivers/
features). You should try to disable the acceleration by booting
without nomodeset, but HWACCEL=0 as boot parameter which disables the
3D acceleration. If it works fine you need either an prebuilt iso with
I965C driver, or you'll have to compile Android on your own - with the
driver enabled (Search for topic "I965c driver and new target
asus_laptop").
Well, nomodeset doesn't mean VESA, you could also use the UVESA -
driver which is the sucessor (http://www.android-x86.org/documents/
uvesafbhowto) and supports more screen resolutions.


Best regards,
Stefan

Chih-Wei Huang

unread,
Mar 22, 2011, 9:29:59 PM3/22/11
to andro...@googlegroups.com
Which target did you use?
Have you enable the 3D acceleration?
What's your resolution?

It sounds like you didn't enable the
3D acceleration and hit a known bug
of android soft rendering system
to some resolution (i.e., 1366x768)

2011/3/23 Chris Furlough <chrisf...@gmail.com>:


> 1.  Screen that looks like the pitch is off, as the display "wraps
> around", and as a result is unreadable.
> 2. A nice looking screen that cat /proc/fb reveals as using the VESA
> driver, not the inteldrmfb.  (This comes about as a result of using
> "nomodeset" at the end of the kernel line).
>
> Can someone tell me what kernel video options are recommended to get
> inteldrmfb as my driver, and maybe clean video as well?

--
Chih-Wei
Android-x86 project
http://www.android-x86.org

Chris Furlough

unread,
Mar 23, 2011, 12:15:58 AM3/23/11
to andro...@googlegroups.com
Target: generic_x86
3D Accel: I haven't deliberately enabled it. I just want to play videos!
Resolution: 1024 x 768, 800 x 600, and 640 x 480. Tried them all,
they all perform the same.

I'll give anything a try just tell me what to do!

The reason I opted for the Intel driver over the normal VESA driver is
that the frame rate on a 640 x ??? (don't remember) video is kinda
jerky. I figured the specific driver would be faster.

Chris Furlough

unread,
Mar 23, 2011, 12:19:52 AM3/23/11
to andro...@googlegroups.com, sknobl
Intel Corei3 380M (2.53GHz/3MB cache)

How can I determine the difference between i915, and i965?

lspci didn't show it.

FWIW, the color cycling ANDROID loading screen is garbled when it's
not going to work. I'm not sure if you would consider that part of
the GUI or not.

I'l give the HWACCEL=0 a shot tomorrow, and any diagnostics that you
might suggest to determine what graphics chip is really in there as
well.

Thanks!

> --
> You received this message because you are subscribed to the Google Groups "Android-x86" group.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to android-x86...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/android-x86?hl=en.
>
>

Chih-Wei Huang

unread,
Mar 23, 2011, 12:32:20 AM3/23/11
to andro...@googlegroups.com
2011/3/23 Chris Furlough <chrisf...@gmail.com>:

> Target: generic_x86
> 3D Accel: I haven't deliberately enabled it.  I just want to play videos!

The generic_x86 doesn't support hw acceleration.

> Resolution: 1024 x 768, 800 x 600, and 640 x 480.  Tried them all,
> they all perform the same.

I asked the native resolution or your monitor/LCD.
I think you have no idea how to change the resolution
of android-x86 so it may not take effect.

> I'll give anything a try just tell me what to do!

Try the eeepc iso (uses i915c) or
asus_laptop (uses i965c).
Both have hw acceleration enabled.

Arobase40

unread,
Mar 23, 2011, 12:05:24 PM3/23/11
to Android-x86
With my first and second beta for the 1825PT(Z) based on Asus_laptop
target, i have this error messages in dmesg :

<6>[ 5.292817] [drm] Initialized drm 1.1.0 20060810
<6>[ 5.387576] i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -
> IRQ 16
<7>[ 5.387583] i915 0000:00:02.0: setting latency timer to 64
<6>[ 5.391008] [drm] detected 63M stolen memory, trimming to 32M
<7>[ 5.391124] i915 0000:00:02.0: irq 43 for MSI/MSI-X
<6>[ 5.391140] [drm] set up 32M of stolen space
<3>[ 5.391278] [drm:init_ring_common] *ERROR* render ring head not
reset to zero ctl 00000000 head 02001000 tail 00000000 start 02001000
<3>[ 5.391285] [drm:init_ring_common] *ERROR* render ring head
forced to zero ctl 00000000 head 00000000 tail 00000000 start 02001000
<0>[ 6.970618] Console: switching to colour frame buffer device
170x48
<6>[ 6.976786] fb0: inteldrmfb frame buffer device
<6>[ 6.976789] drm: registered panic notifier

I used i965C in the configuration files.
Does that mean hw acceleration is not correctly handled or supported ?
Display might be with 1366x768 resolution... ^^



On 23 mar, 05:32, Chih-Wei Huang <cwhu...@android-x86.org> wrote:
> 2011/3/23 Chris Furlough <chrisfurlo...@gmail.com>:

Arobase40

unread,
Mar 23, 2011, 1:43:35 PM3/23/11
to Android-x86
I also watched at the official Froyo-x86 for the Asus_laptop and have
exactly the same result in dmesg... ^^

Chris Furlough

unread,
Mar 23, 2011, 3:01:29 PM3/23/11
to andro...@googlegroups.com
OK, after much digging, I found that I have an 8086:0046 graphics device.

Which according to this: http://cateee.net/lkddb/web-lkddb/DRM_I915.html

Is an i915 based device.

So, I built up the eeepc target, and installed it.

Hangs at the Android logo (which is garbled BTW).

When I switch to the terminal, and check the kernel messages, it reveals:

mediaserver[xxxx]: segfault at 10 ip 81a3d7e9 sp bfxxxxxx error 4 in
libasound.so[81a00000+8a000]

over and over.

Arobase40

unread,
Mar 23, 2011, 6:49:56 PM3/23/11
to Android-x86
Have you modified anything in the eeepc_info or eeepc_defconfig
files ?

These "bugs" are really touchy, you know ? ;-)

Otherwise, you can try the asus_laptop target which is more
flexible... ^^

If i965C does not work whith your device, you can modify the
laptop_info and the Boardconfig.mk files and use i915 parameter
accordingly.

Chris Furlough

unread,
Mar 23, 2011, 6:52:52 PM3/23/11
to andro...@googlegroups.com
OK, I had modified a few things. That being the case, I'm doing a
fresh checkout, and plan to do a fresh build, with everything "stock",
and see what happens.

Arobase40

unread,
Mar 23, 2011, 8:16:29 PM3/23/11
to Android-x86
If your Inspiron N5010 comes with a core i3, you'd better use
asus_laptop target with i965C instead of eeepc and i915...

Chih-Wei Huang

unread,
Mar 23, 2011, 9:29:05 PM3/23/11
to andro...@googlegroups.com
2011/3/24 Arobase40 <arob...@gmail.com>:

> I used i965C in the configuration files.
> Does that mean hw acceleration is not correctly handled or supported ?

If you can enter GUI, hw acceleration
is run correctly.
Otherwise you won't even see the
android animation logo.

> Display might be with 1366x768 resolution... ^^

The hw acceleration does not have problem
with this resolution. But soft rendering does.

Arobase40

unread,
Mar 23, 2011, 9:38:29 PM3/23/11
to Android-x86
That's what I tought but I didn't understand why dmesg displays this
log ?

<3>[ 5.391278] [drm:init_ring_common] *ERROR* render ring head not
reset to zero ctl 00000000 head 02001000 tail 00000000 start 02001000
<3>[ 5.391285] [drm:init_ring_common] *ERROR* render ring head
forced to zero ctl 00000000 head 00000000 tail 00000000 start 02001000
<0>[ 6.970618] Console: switching to colour frame buffer device
170x48
<6>[ 6.976786] fb0: inteldrmfb frame buffer device
<6>[ 6.976789] drm: registered panic notifier

Does this mean anything ?

Arobase

On 24 mar, 02:29, Chih-Wei Huang <cwhu...@android-x86.org> wrote:
> 2011/3/24 Arobase40 <arobas...@gmail.com>:

Chih-Wei Huang

unread,
Mar 23, 2011, 9:50:17 PM3/23/11
to andro...@googlegroups.com
2011/3/24 Arobase40 <arob...@gmail.com>:

> That's what I tought but I didn't understand why dmesg displays this
> log ?
> <3>[    5.391278] [drm:init_ring_common] *ERROR* render ring head not
> reset to zero ctl 00000000 head 02001000 tail 00000000 start 02001000
> <3>[    5.391285] [drm:init_ring_common] *ERROR* render ring head
> forced to zero ctl 00000000 head 00000000 tail 00000000 start 02001000
> <0>[    6.970618] Console: switching to colour frame buffer device
> 170x48
> <6>[    6.976786] fb0: inteldrmfb frame buffer device
> <6>[    6.976789] drm: registered panic notifier
>
> Does this mean anything ?

I'm not the expert to answer it.

Try to trace the driver, or
ask an graphic driver expert.
(if you know such a guy, let me know...:)

Patrick

unread,
Mar 23, 2011, 9:53:34 PM3/23/11
to andro...@googlegroups.com
https://bugzilla.kernel.org/show_bug.cgi?id=16609

From the comments, that went away in 2.6.37-rc1 so the bug was marked closed with no specific patch to address it.

Patrick

Patrick

unread,
Mar 23, 2011, 9:56:54 PM3/23/11
to andro...@googlegroups.com
Then https://bugzilla.kernel.org/show_bug.cgi?id=19802 show there was a patch. And this bug report gives more info on the isue.

Chris Furlough

unread,
Mar 23, 2011, 10:03:46 PM3/23/11
to andro...@googlegroups.com
Really? Everything that I found said it was the i915 chipset. I
dual-boot Ubuntu 10.10 on it, and it also uses the i915.

Allow me to play devil's advocate. Why should I use the i965C?

Arobase40

unread,
Mar 23, 2011, 10:09:34 PM3/23/11
to Android-x86
Ok, I just thought it was specific to Android-86...

But I just restarted my Acer 1825PTZ with Ubuntu Lucid and Kernel
2.6.36 and found out the same issue... ^^

Subject closed then ! :)


On 24 mar, 02:56, Patrick <padraig...@gmail.com> wrote:
> Thenhttps://bugzilla.kernel.org/show_bug.cgi?id=19802show there was a patch.  And this bug report gives more info on the isue.

Patrick

unread,
Mar 23, 2011, 10:15:20 PM3/23/11
to andro...@googlegroups.com
The kernel driver is called "i915" but changing BOARD_USES_I965 changes the code in libmesa (or the opengl libraries). So, ubuntu dmesg and android will both show i915 as the kernel device regardless of BoardConfig.mk

Patrick

Chih-Wei Huang

unread,
Mar 23, 2011, 10:16:43 PM3/23/11
to andro...@googlegroups.com
2011/3/24 Chris Furlough <chrisf...@gmail.com>:

> Really?  Everything that I found said it was the i915 chipset.  I
> dual-boot Ubuntu 10.10 on it, and it also uses the i915.
> Allow me to play devil's advocate.  Why should I use the i965C?

Actually, in the kernel driver, it's always i915.
But in the userspace driver (mesa dri driver),
we have i915c or i965c, depends your chipset.

Roughly speaking, old Intel chipsets use i915c,
while newer chipsets need i965c.

If you want to make sure, start an X window
from a linux distro, see /var/log/Xorg.0.log,
check the DRI driver it uses.
If you see this line, it's i965.

(II) intel(0): [DRI2] DRI driver: i965

Arobase40

unread,
Mar 23, 2011, 10:48:47 PM3/23/11
to Android-x86


On 24 mar, 03:16, Chih-Wei Huang <cwhu...@android-x86.org> wrote:
> 2011/3/24 Chris Furlough <chrisfurlo...@gmail.com>:
>
> > Really?  Everything that I found said it was the i915 chipset.  I
> > dual-boot Ubuntu 10.10 on it, and it also uses the i915.
> > Allow me to play devil's advocate.  Why should I use the i965C?

Hi hi hi

Chih Wei, this post just came back from the twillight zone, as just I
said. I wouldn't even have seen this answer if you didn't quoted
it ! :D

To Chris : if I suggested you to use use i965C, it is because my Acer
1825PTZ has an Intel 4500HD gfx card and i915 in the eeepc target does
not like it, just as with my Desktop with core i3 R530 and the same
Intel 4500HD gfx card.

I made many tests before you with the eeepc target, with i915 and
always got troubles with it.

:D

My Ubuntu Lucid or Maverick makes also use of the i965C with xorg,
even if the kernel uses i915 module !!! ;-)

Arobase

Chih-Wei Huang

unread,
Mar 23, 2011, 11:04:58 PM3/23/11
to andro...@googlegroups.com
FYI, in the newer mesa code we have
implemented the DRI auto load feature.
That means, it will detect your chipset
and load the correct DRI driver (i915 or i965)
automatically, just like the X window.

If someone wants to try, fetch the
froyo-next branch from olv's repository.


2011/3/24 Arobase40 <arob...@gmail.com>:


> On 24 mar, 03:16, Chih-Wei Huang <cwhu...@android-x86.org> wrote:
>> 2011/3/24 Chris Furlough <chrisfurlo...@gmail.com>:
>>
>> > Really?  Everything that I found said it was the i915 chipset.  I
>> > dual-boot Ubuntu 10.10 on it, and it also uses the i915.
>> > Allow me to play devil's advocate.  Why should I use the i965C?

--

Patrick

unread,
Mar 23, 2011, 11:08:27 PM3/23/11
to andro...@googlegroups.com
I"ll try it - what's the git address again?

Chih-Wei Huang

unread,
Mar 23, 2011, 11:11:10 PM3/23/11
to andro...@googlegroups.com
Didn't I mention it in another post to you?

2011/3/24 Patrick <padra...@gmail.com>:


> I"ll try it - what's the git address again?

--

Arobase40

unread,
Mar 23, 2011, 11:18:51 PM3/23/11
to Android-x86
Could you post it again, please Chih Wei as I really have problems
with some posts during the last hours ?

Please ??? ;)


On 24 mar, 04:11, Chih-Wei Huang <cwhu...@android-x86.org> wrote:
> Didn't I mention it in another post to you?
>
> 2011/3/24 Patrick <padraig...@gmail.com>:

Chih-Wei Huang

unread,
Mar 23, 2011, 11:27:42 PM3/23/11
to andro...@googlegroups.com
OK, here are the steps to get it:
(on the top of android-x86 tree)

$ cd external/mesa
$ git remote add olv git://anongit.freedesktop.org/~olv/mesa
$ git fetch olv android-froyo-next
$ git checkout -b froyo-next FETCH_HEAD

You may also need the gingerbread-x86 branch from
git://git.android-x86.org/platform/external/drm.git

If you want to try on gingerbread-x86,
you may also need the kernel android-2.6.38
branch.

2011/3/24 Arobase40 <arob...@gmail.com>:


> Could you post it again, please Chih Wei as I really have problems
> with some posts during the last hours ?
>
> Please ??? ;)

--

Arobase40

unread,
Mar 23, 2011, 11:41:22 PM3/23/11
to Android-x86
> OK, here are the steps to get it:
> (on the top of android-x86 tree)
>
> $ cd external/mesa
> $ git remote add olv git://anongit.freedesktop.org/~olv/mesa
> $ git fetch olv android-froyo-next
> $ git checkout -b froyo-next FETCH_HEAD
>
> You may also need the gingerbread-x86 branch from
> git://git.android-x86.org/platform/external/drm.git

GREAT ! You're the One !!! :D

How do I use the gingerbread-x86 branch in addition to froyo ?

from top of android-x86 tree ? and mixing it with git init.... and
repo sync ???

> If you want to try on gingerbread-x86,
> you may also need the kernel android-2.6.38
> branch.

Hmmm, Froyo will be enough for me at the moment. I don't want to
overburn my brain... :D

But I'll keep these informations for next time. ;)

>
> 2011/3/24 Arobase40 <arobas...@gmail.com>:

Chih-Wei Huang

unread,
Mar 23, 2011, 11:46:10 PM3/23/11
to andro...@googlegroups.com
2011/3/24 Arobase40 <arob...@gmail.com>:

>
> How do I use the gingerbread-x86 branch in addition to froyo ?
>
> from top of android-x86 tree ? and mixing it with git init.... and
> repo sync ???

Just repo sync, and
$ cd external/drm
$ git checkout x86/gingerbread-x86

Arobase40

unread,
Mar 23, 2011, 11:54:21 PM3/23/11
to Android-x86
Ok got it !!!

But I guess I'll have problems with repo sync as I modified the kernel
directory with new codes for the multitouch drivers...

So I may have to redo a complete download in another new Android-x86
tree, and then apply multitouch drivers codes again... sight...

May be worth the effort, anyway... ^^

On 24 mar, 04:46, Chih-Wei Huang <cwhu...@android-x86.org> wrote:
> 2011/3/24 Arobase40 <arobas...@gmail.com>:

Chih-Wei Huang

unread,
Mar 24, 2011, 12:00:43 AM3/24/11
to andro...@googlegroups.com
2011/3/24 Arobase40 <arob...@gmail.com>:

> But I guess I'll have problems with repo sync as I modified the kernel
> directory with new codes for the multitouch drivers...
> So I may have to redo a complete download in another new Android-x86
> tree, and then apply multitouch drivers codes again... sight...
> May be worth the effort, anyway... ^^

This is a faq and I've answered many times.
You just need to rebase your changes
onto the tip of our repository.
And if you're using a tracking branch,
repo will do it for you automatically.

Besides, if you don't want to disturb other projects
like kernel, just sync the projects you want to update,
like

$ repo sync external/drm

Arobase40

unread,
Mar 24, 2011, 12:12:41 AM3/24/11
to Android-x86
> > But I guess I'll have problems with repo sync as I modified the kernel
> > directory with new codes for the multitouch drivers...
> > So I may have to redo a complete download in another new Android-x86
> > tree, and then apply multitouch drivers codes again... sight...
> > May be worth the effort, anyway... ^^
>
> This is a faq and I've answered many times.
> You just need to rebase your changes
> onto the tip of our repository.
> And if you're using a tracking branch,
> repo will do it for you automatically.

Sorry, but I don't even understand a single word of what you're
talking about : I don't know what rebase your changes means... onto
the the of our repository... using a tracking branch... :(

I have some good knowledge but I don't know everything...

>
> Besides, if you don't want to disturb other projects
> like kernel, just sync the projects you want to update,
> like
>
> $ repo sync external/drm

Yess ! I was thinking about this after I posted my answer, but was not
sure. ^^
But I would have give a try this way...

Suman Saraf

unread,
Mar 24, 2011, 1:28:39 AM3/24/11
to andro...@googlegroups.com
You need to read a git tutorial :-)

Arobase40

unread,
Mar 24, 2011, 2:38:12 AM3/24/11
to Android-x86
Yes I know... :)

But I'm spending so much time just to get Android-x86 build
functionning specially with the multitouch feature and am completly
concentrated on this that I can hardly think about something else...

Android is quite new to me, I have so many new concepts to learn in a
very short time. I worked in so many different domains : programming,
user supports, systems administration, many different OS, security,
hardwares from different sizes (Prime systems : who knows about them
anymore), Victor, Atari, Mac, GEM, Linux (when it worked with 3 3.5"
diskets), Windows , Cobol, Basic, C/C++, assembly language, databases,
etc...
I started using Internet at the Uni, when it was unknown to the
public, and when RTC modems did even not exist...

In addition, I lost my multitask capability, I'm not as fast as when I
was when younger as I'm starting to be.. older... now... :D

And still, I continue, not to proove anything to anybody, but just
because I still like what I do, and as I'm not able to do anything
else !!!

Chris Furlough

unread,
Mar 24, 2011, 12:24:55 PM3/24/11
to Android-x86
OK, status update. Fresh checkout, just built and installed the eeepc
build. And when it goes into graphics mode, it crashes. (As in locks
up the machine, have to hold the power button to reset, can't switch
to the console kinda crash). Have the asus_laptop target building
now.

Chris Furlough

unread,
Mar 24, 2011, 6:37:48 PM3/24/11
to Android-x86
And asus_laptop works like a champ!

mplayer still doesn't play my videos, but that's discussed in another thread.

So, for anyone running a Dell Inspiron N5010, use the asus_laptop build option!

Arobase40

unread,
Mar 25, 2011, 2:10:25 AM3/25/11
to Android-x86
LOL

:-)

The lesson is, if you have a device other than Atom based, don't use
eeepc target !
There are other targets such as viliv, dell, viewpad, ... which are
also based on eeepc target but with specific tweaks and hacks due to
some specific hardwares...
There may be some exceptions, but this is the main rule... ^^ ;-)
Reply all
Reply to author
Forward
0 new messages