Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do you have display problem in Linux? #1

Open
nandttl opened this issue Feb 13, 2019 · 11 comments
Open

Do you have display problem in Linux? #1

nandttl opened this issue Feb 13, 2019 · 11 comments

Comments

@nandttl
Copy link

nandttl commented Feb 13, 2019

Excuse me, I installed the agan's x230 fhd mod too, but my screen is often black after grub, and I have to use nomodeset kernel command line to get the screen work. But Ubuntu gets really slow after using nomodset. And I have tried a lot of method, all doesn't work. By the way, the screen works fine in Windows. I've tried on Ubuntu 18.04, debian stretch and debian buster, all the same problem. Thank you

@boutch55555
Copy link
Owner

I used to have a similar problem on Debian Stretch. Can't recall if it was on the same motherboard I'm currently using. I also had this issue with nitrocaster's board. Really odd, I would only get the panel to work 1 in about 10 boots, regardless what was set as default display in the bios. Test waiting until there is low HDD activity, indicating you're at the login screen. Press power 2 sec to put it to sleep. The display should show up when you wake it back. My current build doesn't have this bug, no idea why.

@nandttl
Copy link
Author

nandttl commented Feb 16, 2019

Yes! The same method works for me too! After entering the login screen, sleep it and wake up again, the screen works. But if I leave the computer for a while and the screen is off, the screen won't work and need another sleep to make it work again. And I found in ubuntu, xrandr will report "the display is not connected but have no modes". I'm sure the EDID information can be read by the read-edid tools. I will keep working on it. Thank you for your share!

@nandttl
Copy link
Author

nandttl commented Feb 16, 2019

And by the way, what's your current build? I'd like to try it. Thank you!

@ghost
Copy link

ghost commented Jun 8, 2019

Hi, I'm having the same issue. Are y'all running coreboot or stock bios?

@nandttl
Copy link
Author

nandttl commented Jun 10, 2019

Hi, I'm having the same issue. Are y'all running coreboot or stock bios?

I'm using stock bios but modified the white list.

@ghost
Copy link

ghost commented Jun 10, 2019

I was running the original bios when I saw this issue, but now I'm running coreboot and seeing the same issue as soon as Linux boots.

I guess what's going on is the display mode can not be set correctly sometimes, and it switches to use the LVDS output only. With the following patch it retries setting the display mode until it works:

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
--- a/drivers/gpu/drm/i915/intel_dp.c	2019-06-04 07:59:45.000000000 +0200
+++ b/drivers/gpu/drm/i915/intel_dp.c	2019-06-08 23:39:14.560262180 +0200
@@ -124,7 +124,7 @@
 {
 	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);

-	return intel_dig_port->base.type == INTEL_OUTPUT_EDP;
+	return intel_dig_port->base.type == INTEL_OUTPUT_EDP || strncmp(intel_dp->attached_connector->base.name, "DP-3",4) == 0;
 }

 static struct intel_dp *intel_attached_dp(struct drm_connector *connector)
@@ -5977,7 +5977,7 @@
 	if (INTEL_GEN(dev_priv) < 5)
 		return false;

-	if (INTEL_GEN(dev_priv) < 9 && port == PORT_A)
+	if (INTEL_GEN(dev_priv) < 9 && port == PORT_D)
 		return true;

 	return intel_bios_is_port_edp(dev_priv, port);
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
--- a/drivers/gpu/drm/i915/intel_lvds.c	2019-06-04 07:59:45.000000000 +0200
+++ b/drivers/gpu/drm/i915/intel_lvds.c	2019-06-08 23:40:36.153071061 +0200
@@ -502,6 +502,13 @@
 /* These systems claim to have LVDS, but really don't */
 static const struct dmi_system_id intel_no_lvds[] = {
 	{
+		.ident = "Modded ThinkPad X230",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "2330A17"),
+		},
+	},
+	{
 		.callback = intel_no_lvds_dmi_callback,
 		.ident = "Apple Mac Mini (Core series)",
 		.matches = {

@ghost
Copy link

ghost commented Aug 9, 2019

I talked to @lynxis about this issue, who suggested using coreboot with this patch: https://review.coreboot.org/c/coreboot/+/28950
After testing it I can say it has the same effect as the kernel patch above. Display init fails a random number of times (the backlight flashes on and off) until it succeeds. Since LVDS is disabled with this patch it does not give up and switch to LVDS output.

@nandttl
Copy link
Author

nandttl commented Aug 9, 2019 via email

@drewth1
Copy link

drewth1 commented Aug 15, 2019

Sorry what’s the best way to fix Linux during this boot issue we’ve been having?

@nandttl
Copy link
Author

nandttl commented Aug 15, 2019

Sorry what’s the best way to fix Linux during this boot issue we’ve been having?

disable kms with nomodeset in kernel command line. that's what i know. maybe you will suffer some very odd display experience, like extreme low refresh rate.

@drewth1
Copy link

drewth1 commented Aug 18, 2019

Yep am experiencing very low refresh rate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants