Opened 10 years ago

Closed 5 years ago

#3846 closed bug (fixed)

Intel_extreme driver problem on i855g

Reported by: walera Owned by: pulkomandy
Priority: normal Milestone: R1
Component: Drivers/Graphics/intel_extreme Version: R1/Development
Keywords: Cc: ajitomatix@…, beos@…
Blocked By: Blocking: #7662
Has a Patch: yes Platform: x86

Description

I check Haiku on two notebooks with i855g chipset and see identical problem on internal LCD display (see photo in attachment). Upper 16 lines fill noise and lower 16 lines hidden.

Attachments (12)

Intel_extreme.JPG (82.8 KB) - added by walera 10 years ago.
640x480_32.JPG (79.1 KB) - added by walera 10 years ago.
800x600_32.JPG (81.6 KB) - added by walera 10 years ago.
1024x768_8.JPG (80.9 KB) - added by walera 10 years ago.
1024x768_16.JPG (83.7 KB) - added by walera 10 years ago.
Haiku-Rev-33964-Partial-screen-at-1024x768.jpg (74.5 KB) - added by ajitomatix 9 years ago.
Haiku-Rev-33964-Partial-screen-at-1024x768
Haiku-Rev-33964-Cannot-change-to-1200x800.jpg (112.2 KB) - added by ajitomatix 9 years ago.
Haiku-Rev-33964-Cannot-change-to-1200x800
haiku r33964 KDL ints output.jpg (183.6 KB) - added by ajitomatix 9 years ago.
haiku hrev33964 KDL ints output
listdev.out (3.0 KB) - added by ajitomatix 9 years ago.
output of the listdev command
listimage_drivers.out (1.5 KB) - added by ajitomatix 9 years ago.
drivers loaded
syslog.out (81.4 KB) - added by ajitomatix 9 years ago.
syslog
0001-Intel_extreme-i855g-support-3846.patch (18.6 KB) - added by pulkomandy 5 years ago.
Patch from github rebased on current sources.

Download all attachments as: .zip

Change History (43)

Changed 10 years ago by walera

Attachment: Intel_extreme.JPG added

comment:1 Changed 10 years ago by axeld

That probably means the video address is not properly set; the noise at the top is the memory at the start of the shared memory that is not used for the image itself.

Unfortunately, I don't have access to a i855g, and the i865g I have seems to work fine.

comment:2 Changed 10 years ago by axeld

Does changing the resolution work at all?

comment:3 in reply to:  2 Changed 10 years ago by walera

On first photo (Intel_extreme.jpg) resolution 1024x768 (native resolution for my notebooks) with 32 bit colors. Only this resolution acceptable for work. I add photos with resolution: 1024x768 8 bit (system hang up after apply this mode) - 1024x768_8.jpg 1024x768 16 bit - 1024x768_16.jpg 800x600 32 bit - 800x600_32.jpg 640x480 32 bit (system hang up after apply this mode) - 640x480_32.jpg

Changed 10 years ago by walera

Attachment: 640x480_32.JPG added

Changed 10 years ago by walera

Attachment: 800x600_32.JPG added

Changed 10 years ago by walera

Attachment: 1024x768_8.JPG added

Changed 10 years ago by walera

Attachment: 1024x768_16.JPG added

comment:4 Changed 10 years ago by modeenf

I think that Ticket #1299 are related. When I try to change resolution on my i855gm I get weird effects. Print screen don't show but perhaps changing resolution are a miner problem right now :)

comment:5 Changed 9 years ago by ajitomatix

Cc: ajitomatix@… added

comment:6 Changed 9 years ago by ajitomatix

Version: R1/pre-alpha1R1/alpha1

Changed 9 years ago by ajitomatix

Haiku-Rev-33964-Partial-screen-at-1024x768

Changed 9 years ago by ajitomatix

Haiku-Rev-33964-Cannot-change-to-1200x800

comment:7 Changed 9 years ago by ajitomatix

Version: R1/alpha1R1/Development

Confirmed that the bug exists in R1/Alpha1 as well as the most recent nightly (33964). Notice that in screenshot http://dev.haiku-os.org/attachment/ticket/3846/Haiku-Rev-33964-Partial-screen-at-1024x768.jpg only left portion of the screen is being recognized/rendered by Haiku. Also, in screenshot http://dev.haiku-os.org/attachment/ticket/3846/Haiku-Rev-33964-Cannot-change-to-1200x800.jpg changing the resolution results in mangled screen.

Changed 9 years ago by ajitomatix

haiku hrev33964 KDL ints output

Changed 9 years ago by ajitomatix

Attachment: listdev.out added

output of the listdev command

Changed 9 years ago by ajitomatix

Attachment: listimage_drivers.out added

drivers loaded

Changed 9 years ago by ajitomatix

Attachment: syslog.out added

syslog

comment:8 Changed 9 years ago by ajitomatix

I have found a workaround thanks to this BeOS R5 tip.

Since intel extreme driver is not working, the workaround is to use a VESA driver. To do that I did the following:

$> cd /boot/system/add-ons/kernel/drivers/dev/graphics/
$> sudo mv intel_extreme ~/

Then restart Haiku.

What this does is removes the symbolic link to the buggy intel_extreme driver. Haiku then has to fall back to VESA driver when it reboots.

This workaround is tested on R33964.

comment:9 in reply to:  8 ; Changed 9 years ago by ajitomatix

Correction. sudo is not needed neither implemented on R1/Alpha or R33964. So just run it without sudo:

$> mv intel_extreme ~/

Replying to ajitomatix:

$> sudo mv intel_extreme ~/

comment:10 Changed 9 years ago by ajitomatix

Note that with VESA driver in use I can only get 1024x768 resolution on my Dell Inspiron 700m LCD panel. Nevertheless, it is still better than having a buggy intel 855GM driver; gives a usable screen till the intel 855GM driver gets fixed.

comment:11 in reply to:  9 Changed 9 years ago by umccullough

Replying to ajitomatix:

Correction. sudo is not needed neither implemented on R1/Alpha or R33964. So just run it without sudo:

$> mv intel_extreme ~/

Note, you don't have to move the symlink to your home, you can also just rename the binary in place:

cd cd /boot/system/add-ons/kernel/drivers/bin
mv intel_extreme intel_extreme.disabled

which satisfies breaking the symlink in a way that prevents it from being loaded

comment:12 Changed 8 years ago by scottmc

Blocking: 7662 added

comment:13 in reply to:  5 ; Changed 7 years ago by dukzcry

Replying to ajitomatix: Hi, ajitomatix. This patchset fixes your problem: https://github.com/druga/haiku-stuff/tree/master/intel_extreme . Enjoy.

Last edited 7 years ago by dukzcry (previous) (diff)

comment:14 Changed 7 years ago by Caylon

Is the patch included in the latest nightly build? I tested hrev44270 on a Acer 662 which has a 82852/82855 Graphics Controller, but after the boot logo I get a distorted image.

If I connect an external display (22" widescreen Display) it works perfectly (1680x1050), so the problem only regards the internal display. (maybe there is a problem with the resolution 1400 x 1050? which is the max. resolution of the internal display)

Last edited 7 years ago by Caylon (previous) (diff)

comment:15 Changed 7 years ago by Caylon

Cc: beos@… added

comment:16 in reply to:  14 Changed 7 years ago by dukzcry

Replying to Caylon:

Is the patch included in the latest nightly build?

Still not included. You can apply it manually over Haiku's source tree, or i can send final driver and accelerant binaries to you (if you'll say which type of build you're using, gcc2 or gcc4 -based).

Last edited 7 years ago by dukzcry (previous) (diff)

comment:17 Changed 7 years ago by Caylon

ok thanks, I will try it on my own, I think it's not so difficult :)

comment:18 in reply to:  13 ; Changed 5 years ago by walera

Replying to dukzcry:

This patchset fixes your problem: https://github.com/druga/haiku-stuff/tree/master/intel_extreme . Enjoy.

Hi, dukzcry. Can you explain me commands for apply those patches to sources of intel_extreme driver? As I understand those patches not apply in last nightly buld because my problem (see 1st message in this trac) is not fixed. Right? Also I need of instruction for change current driver to new because I can't change any system file in last build of Haiku. Thank you in advance!

Last edited 5 years ago by walera (previous) (diff)

comment:19 Changed 5 years ago by modeenf

Think you have to do it manually. File to file. These don't look like it's made the correct way.

Adding/removing drivers after the PM introduction are not that easy I believe. You probably need to ask in IRC or mail the list.

comment:20 in reply to:  18 ; Changed 5 years ago by dukzcry

Hi, walera

Replying to walera:

Can you explain me commands for apply those patches to sources of intel_extreme driver?

Replying to modeenf:

Think you have to do it manually. File to file.

Yes, i've not prepared one-pass diff, so you should apply them manually, but since there are just few files around, it's not a big deal. Patches (named as patch-*) should be applied using 'patch -u < patch-* orig-file', other files just be put at appropriate locations. Dunno how they'll fit against current Haiku's build though. Replying to walera:

As I understand those patches not apply in last nightly buld because my problem (see 1st message in this trac) is not fixed. Right?

Right, they hadn't went into mainline. Or at least i've not notified about.

Also I need of instruction for change current driver to new because I can't change any system file in last build of Haiku.

Sorry, can't help here, i've been out of Haiku for at least 1.5 years. You'd better to follow modeenf's advice, or stick to an old Haiku's build.

comment:21 in reply to:  20 ; Changed 5 years ago by walera

Replying to dukzcry:

You'd better to follow modeenf's advice, or stick to an old Haiku's build.

Very thanks! I apply this patch https://github.com/druga/haiku-stuff/tree/master/intel_extreme to old haiku sources hrev44144, build and replace intel_extreme driver. This problem was fixed! How I must make for adding this patch to nearest nightly image and to Alpha5 in future?

Last edited 5 years ago by walera (previous) (diff)

comment:22 in reply to:  21 Changed 5 years ago by dukzcry

Replying to walera:

This problem was fixed!

Nice :)

How I must make for adding this patch to nearest nightly image and to Alpha5 in future?

You may contact bug's owner (axeld [at] pine-software.de), kallisti5 [at] unixzen.com (he's done a lot of graphics cards support) or some other developer, involved into device driver writing.

Last edited 5 years ago by dukzcry (previous) (diff)

comment:23 Changed 5 years ago by modeenf

How do you want to do with licens? Adding your name to the top of each change file?

I have today not an developming envirment but I have thought to get one :)

Last edited 5 years ago by modeenf (previous) (diff)

comment:24 Changed 5 years ago by korli

dukzcry, please state in https://github.com/druga/haiku-stuff/tree/master/intel_extreme/README.mkd that these changes are MIT licensed. Thanks !

comment:25 Changed 5 years ago by pulkomandy

Owner: changed from axeld to pulkomandy
Status: newassigned

Taking over this. Manually applying changes on my tree. Waiting for license confirmation before I commit it.

Changed 5 years ago by pulkomandy

Patch from github rebased on current sources.

comment:26 Changed 5 years ago by pulkomandy

Has a Patch: set

comment:27 Changed 5 years ago by pulkomandy

I attached a patch in proper format against the current sources. Since I don't have the hardware, if someone could test this and confirm the issue is fixed, that would be nice.

I'll check that it doesn't break something on my machine.

My version of the patch includes some style fixes (this will need more work), and I made one functional change. You had disabled the head A setup, but I actually use this "clone" mode with the VGA output in some occasions. I prefer to keep it.

comment:28 in reply to:  24 Changed 5 years ago by dukzcry

Replying to korli:

dukzcry, please state in https://github.com/druga/haiku-stuff/tree/master/intel_extreme/README.mkd that these changes are MIT licensed. Thanks !

Done.

Patch from github rebased on current sources.

Thanks much for taking this!

comment:29 Changed 5 years ago by pulkomandy

Patch partially applied in hrev46694.

I removed the part about not switching the mode when the resolution isn't the same, because this prevented changing only the refresh rate. I'm also not sure the hack to get the native resolution set on boot is the right way to go, and as a result of removing that thing above, it will only work for the first workspace. We should find a better and cleaner way to handle that.

Also removed, as mentionned earlier, is disabling the initialisation for head A wen head B is detected. The "clone" mode where the internal panel and VGA output show the same thing can be useful, and it needs both initialized.

I made some style fixes in bios.cpp, but there is more work to do to get it into Haiku quality standards. I added several FIXMEs and TODOs and tried to clarify the comments.

Leaving ticket open until this is confirmed working by someone who had the problem before.

comment:30 in reply to:  29 Changed 5 years ago by walera

Replying to pulkomandy:

Leaving ticket open until this is confirmed working by someone who had the problem before.

I confirm - problem was fixed on my notebook with i855gm. I think this ticked can be close. Very thanks for fix this problem!

comment:31 Changed 5 years ago by pulkomandy

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.