i915 顯示卡、Fedora 28、解析度和顯示問題

i915 顯示卡、Fedora 28、解析度和顯示問題

我很樂意將 Fedora 28(實際上是 27,然後升級到 28,但這發生在 27 安裝開始時)到我的 Dell Inspiron 1545 上。

問題陳述:我必須使用 NOMODESET 才能收到可用的 GUI。如果命令列中沒有該開關,我會在 F1 控制台上收到一個 GUI,如下所述 - 只是一個滑鼠指標。我實際上可以點擊END(我認為)並收到一個GUI 彈出窗口,要求提供英語/其他語言,但在我單擊某些內容後它會關閉,然後我回到漂亮的桌面圖片、滑鼠指針,什麼也沒有。

背景:

嘗試對我的 Inspiron 1545(4GB RAM、128GB SSD)進行基於 USB 的安裝,繼續進行 GUI 安裝的唯一方法是在安裝過程的 cmdline(e,編輯)上提供 NOMODESET。它顯然是低解析度的(由於必須使用 NOMODESET 來安裝),但我認為安裝後驅動程式排序是有序的,它會給我完整的解析度。沒有喜悅。

抱怨:我現在陷入了 1024x768 的困境。 無論有多少擺弄、故障排除都沒有帶給我快樂。

無模式集在cmdline中被硬編碼(可以理解,因為這是我開始安裝的,所以我相信它保留了它)——這是我可以啟動到GUI並使用LXDE(這是我選擇的預設桌面選項)的唯一方法)。這個 gui 是 1024x768,XRANDR 或其他任何東西都不會改變它。

細節:

(1) 筆記型電腦本身有點像怪物 - 液晶顯示器從筆記型電腦上物理移除 - 整個東西,所以它只是筆記型電腦的底部。它很醜,但仍然有效。

事實上 ^^ 它可以在 Windows 上運行,沒有任何問題,在外部三洋 LCD 顯示器上以全解析度 (1360x768) 顯示也沒有問題。

此外,LXDE 可與 NOMODESET 搭配使用,但僅限於 1024x768。

(2) 當我從命令列中刪除「nomodeset」時,它會正常啟動 - 但我看到的是迎賓背景(光纖藍色圖形)、滑鼠指針,沒有其他任何東西。其他終端機 (ALT-F[2-8]) 提供正常的文字控制台登錄,效果很好。 ALT-F1(主控制台)再次顯示 Fedora 背景問候語、滑鼠指標(移動),除此之外什麼也沒有。

(3) 以下是我在 cmdline(grub 引導行)中使用和不使用 NOMODESET 參數執行的一些(希望)相關診斷:

第一的,lspci確保我們擁有有效支援的圖形晶片組:

**[root@Towel ~]# lspci -nnk | grep -A3 VGA**
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a42] (rev 07)
    Subsystem: Dell Device [1028:02aa]
    Kernel modules: i915
00:02.1 Display controller [0380]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a43] (rev 07)

cmdline 中存在 NOMODESET 時,inxi 會說什麼:

**[root@Towel ~]# inxi -SMCGx** 
System:
  Host: Towel Kernel: 4.19.14-200.fc28.x86_64 x86_64 bits: 64 compiler: gcc 
  v: 8.2.1 Desktop: LXDE 0.9.3 Distro: Fedora release 28 (Twenty Eight) 
Machine:
  Type: Portable System: Dell product: Inspiron 1545 v: N/A serial: 5DQG7H1 
  Mobo: Dell model: 0G848F serial: .5DQG7H1.CN701668CR02E3. BIOS: Dell 
  v: A14 date: 12/07/2009 
CPU:
  Topology: Dual Core model: Intel Pentium Dual T3400 bits: 64 type: MCP 
  arch: Core Merom rev: D L2 cache: 1024 KiB 
  flags: lm nx pae sse sse2 sse3 ssse3 bogomips: 8645 
  Speed: 998 MHz min/max: 1000/2167 MHz Core speeds (MHz): 1: 998 2: 998 
Graphics:
  Device-1: Intel Mobile 4 Series Integrated Graphics vendor: Dell 
  driver: N/A bus ID: 00:02.0 
  Display: server: Fedora Project X.org 1.19.6 driver: vesa 
  unloaded: fbdev,modesetting resolution: 1024x768~N/A 
  OpenGL: renderer: llvmpipe (LLVM 6.0 128 bits) v: 3.3 Mesa 18.0.5 
  direct render: Yes

現在,命令列中沒有 NOMODESET:

**[root@Towel ~]# inxi -SMCGx** 
System:    Host: Towel Kernel: 4.19.13-200.fc28.x86_64 x86_64 bits: 64 compiler: gcc v: 8.2.1 Console: tty 2 
           Distro: Fedora release 28 (Twenty Eight) 
Machine:   Type: Portable System: Dell product: Inspiron 1545 v: N/A serial: 5DQG7H1 
           Mobo: Dell model: 0G848F serial: .5DQG7H1.CN701668CR02E3. BIOS: Dell v: A14 date: 12/07/2009 
CPU:       Topology: Dual Core model: Intel Pentium Dual T3400 bits: 64 type: MCP arch: Core Merom rev: D L2 cache: 1024 KiB 
           flags: lm nx pae sse sse2 sse3 ssse3 bogomips: 8645 
           Speed: 998 MHz min/max: 1000/2167 MHz Core speeds (MHz): 1: 998 2: 998 
Graphics:  Device-1: Intel Mobile 4 Series Integrated Graphics vendor: Dell driver: i915 v: kernel bus ID: 00:02.0 
           Display: server: X.org 1.19.6 driver: modesetting unloaded: fbdev,vesa tty: 170x48 
           Message: Advanced graphics data unavailable in console for root.

命令列中存在 NOMODESET 的 Xorg.0.log 怎麼樣:

**[root@Towel ~]# cat /var/log/Xorg.0.log | grep driver**
[    18.877]    X.Org XInput driver : 24.1
[    18.945] (==) Matched modesetting as autoconfigured driver 0
[    18.945] (==) Matched fbdev as autoconfigured driver 1
[    18.945] (==) Matched vesa as autoconfigured driver 2
[    18.945] (==) Assigned the driver to the xf86ConfigLayout
[    18.945] (II) Loading /usr/lib64/xorg/modules/drivers/modesetting_drv.so
[    18.951] (II) Loading /usr/lib64/xorg/modules/drivers/fbdev_drv.so
[    18.952] (II) Loading /usr/lib64/xorg/modules/drivers/vesa_drv.so
[    18.954] (II) FBDEV: driver for framebuffer: fbdev
[    18.954] (II) VESA: driver for VESA chipsets: vesa
[    20.419]    ABI class: X.Org XInput driver, version 24.1
[    20.419] (II) Using input driver 'libinput' for 'Power Button'
[    20.427] (II) No input driver specified, ignoring this device.
[    20.429] (II) Using input driver 'libinput' for 'Sleep Button'
[    20.437] (II) No input driver specified, ignoring this device.
[    20.437] (II) No input driver specified, ignoring this device.
[    20.440] (II) Using input driver 'libinput' for 'Logitech USB Receiver'
[    20.447] (II) Using input driver 'libinput' for 'Logitech USB Receiver Mouse'
[    20.460] (II) No input driver specified, ignoring this device.
[    20.464] (II) Using input driver 'libinput' for 'Logitech USB Receiver Consumer Control'
[    20.474] (II) Using input driver 'libinput' for 'Logitech USB Receiver System Control'
[    20.486] (II) Using input driver 'libinput' for 'Dell WMI hotkeys'
[    20.501] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard'
[    20.509] (II) Using input driver 'libinput' for 'AlpsPS/2 ALPS GlidePoint'
[    20.525] (II) No input driver specified, ignoring this device.
[    20.545] (II) Using input driver 'libinput' for 'Logitech USB Receiver Consumer Control'
[    20.545] (**) Option "_source" "_driver/libinput"

Xorg.0.log 中刪除/不存在 NOMODESET:

**[root@Towel ~]# cat /var/log/Xorg.0.log | grep driver** 
[    18.506]    X.Org XInput driver : 24.1
[    18.620] (==) Matched modesetting as autoconfigured driver 0
[    18.620] (==) Matched fbdev as autoconfigured driver 1
[    18.620] (==) Matched vesa as autoconfigured driver 2
[    18.620] (==) Assigned the driver to the xf86ConfigLayout
[    18.621] (II) Loading /usr/lib64/xorg/modules/drivers/modesetting_drv.so
[    18.631] (II) Loading /usr/lib64/xorg/modules/drivers/fbdev_drv.so
[    18.633] (II) Loading /usr/lib64/xorg/modules/drivers/vesa_drv.so
[    18.635] (II) FBDEV: driver for framebuffer: fbdev
[    18.635] (II) VESA: driver for VESA chipsets: vesa
[    18.669] (II) glamor: OpenGL accelerated X.org driver based.
[    19.354] (II) modeset(0): [DRI2]   DRI driver: i965
[    19.354] (II) modeset(0): [DRI2]   VDPAU driver: va_gl
[    19.648]    ABI class: X.Org XInput driver, version 24.1
[    19.648] (II) Using input driver 'libinput' for 'Video Bus'
[    19.673] (II) Using input driver 'libinput' for 'Power Button'
[    19.684] (II) No input driver specified, ignoring this device.
[    19.686] (II) Using input driver 'libinput' for 'Sleep Button'
[    19.702] (II) No input driver specified, ignoring this device.
[    19.703] (II) No input driver specified, ignoring this device.
[    19.705] (II) Using input driver 'libinput' for 'Logitech USB Receiver'
[    19.714] (II) Using input driver 'libinput' for 'Logitech USB Receiver Mouse'
[    19.731] (II) No input driver specified, ignoring this device.
[    19.733] (II) Using input driver 'libinput' for 'Logitech USB Receiver Consumer Control'
[    19.743] (II) Using input driver 'libinput' for 'Logitech USB Receiver System Control'
[    19.756] (II) Using input driver 'libinput' for 'Dell WMI hotkeys'
[    19.771] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard'
[    19.781] (II) Using input driver 'libinput' for 'AlpsPS/2 ALPS GlidePoint'
[    19.793] (II) No input driver specified, ignoring this device.
[    19.843] (II) Using input driver 'libinput' for 'Logitech USB Receiver Consumer Control'
[    19.843] (**) Option "_source" "_driver/libinput"

命令列中沒有 NOMODESET 的 dmesg 怎麼樣?

<snip>
[    9.632354] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
<snip>

最後,為了總結我最近學到的一組新指令,我還使用了 xrandr,並要求它告訴我 IT 認為顯示器等是什麼:

[root@Towel ~]# xrandr --verbose
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 480, current 1024 x 768, maximum 1024 x 768
default connected 1024x768+0+0 (0x2ae) normal (normal) 0mm x 0mm
    Identifier: 0x2ad
    Timestamp:  19525
    Subpixel:   no subpixels
    Clones:    
    CRTC:       0
    CRTCs:      0
    Transform:  1.000000 0.000000 0.000000
                0.000000 1.000000 0.000000
                0.000000 0.000000 1.000000
               filter: 
  1024x768 (0x2ae)  0.000MHz *current
        h: width  1024 start    0 end    0 total 1024 skew    0 clock   0.00KHz
        v: height  768 start    0 end    0 total  768           clock   0.00Hz
  800x600 (0x2af)  0.000MHz
        h: width   800 start    0 end    0 total  800 skew    0 clock   0.00KHz
        v: height  600 start    0 end    0 total  600           clock   0.00Hz
  640x480 (0x2b0)  0.000MHz
        h: width   640 start    0 end    0 total  640 skew    0 clock   0.00KHz
        v: height  480 start    0 end    0 total  480           clock   0.00Hz

注意到「預設」作為唯一顯示的名稱了嗎?這可能是由於系統看到連接的 LCD - 已斷開/消失 - 以及 VGA 連接到外部顯示器(例如,「預設」)。

還有一些 hwinfo 的優點:

[root@Towel ~]# hwinfo --monitor
28: None 00.0: 10000 Monitor                                    
  [Created at monitor.97]
  Unique ID: rdCR.dwn9oRFeFS2
  Hardware Class: monitor
  Model: "LCD TV"
  Vendor: SAN 
  Device: eisa 0x0000 "LCD TV"
  Resolution: 640x480@60Hz
  Resolution: 800x600@60Hz
  Resolution: 1024x768@60Hz
  Resolution: 1280x720@60Hz
  Resolution: 1360x768@60Hz
  Year of Manufacture: 2015
  Week of Manufacture: 0
  Detailed Timings #0:
     Resolution: 1360x768
     Horizontal: 1360 1424 1536 1792 (+64 +176 +432) +hsync
       Vertical:  768  771  777  795 (+3 +9 +27) +vsync
    Frequencies: 85.50 MHz, 47.71 kHz, 60.02 Hz
  Driver Info #0:
    Max. Resolution: 1360x768
    Vert. Sync Range: 23-63 Hz
    Hor. Sync Range: 15-69 kHz
    Bandwidth: 85 MHz
  Config Status: cfg=new, avail=yes, need=no, active=unknown

所以,總而言之:

(1) 使用NOMODESET 安裝Centos 27(因為沒有其他選項起作用) (2) 在命令列中卡住了NOMODESET(但我已將其刪除以進行測試) (3) 傳遞了NOMODESET 參數的可行gui,但卡在1024x768 (4) i915 驅動程式似乎在 NOMODESET 缺失/刪除的情況下加載,但沒有可用的 GUI(可能是由於筆記型電腦螢幕實際上不存在)

PS我也嘗試將 video.allow_duplicates=1 放入命令列中,但這絕對不會產生我意識到的任何差異。

PPS 我聽說,由於我的帶有 LCD 的筆記型電腦蓋子實際上觸發了設備底座中的簧片開關,因此筆記型電腦可能期望電路閉合(通過關閉蓋子的操作激活簧片開關)在筆記型電腦變得在清晰並為i915 配置提供任何形式的可用性之前。如果我能弄清楚如何做到這一點,我願意在這個週末嘗試。

-- 使用帶有和不帶模式集的 Xorg.0.log 進行更新 --

-> 使用模式集:https://pastebin.com/muYey8SJ

-> 沒有模式集:https://pastebin.com/JrSbSs7N

相關內容