LINUX.ORG.RU

Подключение двух монитов в Debian 64 на встроенной графике Intel HD Graphics 630

 ,


0

1

Здравствуйте!

Имеется два монитора. Один HDMI, второй VGA. Подключил их к материнке GIGABYTE GA-B250-HD3P к соответствующим разъемам. И не могу настроить работу с двумя мониторами. Потому что система видит только один монитор (VGA), а на второй дублирует картинку.

Среда MATE, в ней есть виджет настройки параметров мониторов, но там виден только один монитор.

Вот что говорит xrandr:

# xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1024 x 768, current 1024 x 768, maximum 1024 x 768
default connected 1024x768+0+0 0mm x 0mm
   1024x768      76.00*

То есть, xrandr не видит что есть второй монитор. И пока он не появится, настраивать xrandr не имеет смысла.

Информация о железе/драйверах:
# inxi -F 
CPU:       Quad core Intel Core i7-7700 (-HT-MCP-) cache: 8192 KB                                                             
          clock speeds: max: 4200 MHz 1: 800 MHz 2: 799 MHz 3: 800 MHz 4: 799 MHz 5: 799 MHz 6: 799 MHz                      
          7: 800 MHz 8: 800 MHz                                                                                              
Graphics:  Card: Intel Device 5912                                                                                            
          Display Server: X.org 1.19.2 drivers: fbdev (unloaded: modesetting,vesa)                                           
          tty size: 125x44 Advanced Data: N/A for root

# lspci -k 
00:00.0 Host bridge: Intel Corporation Device 591f (rev 05) 
       Subsystem: Gigabyte Technology Co., Ltd Device 5000 
00:02.0 VGA compatible controller: Intel Corporation Device 5912 (rev 04) 
       Subsystem: Gigabyte Technology Co., Ltd Device d000 
       Kernel modules: i915

$ glxinfo | grep display
name of display: :0
display: :0  screen: 0

$ glxinfo | grep direct
direct rendering: Yes
    GL_ARB_direct_state_access, GL_ARB_draw_buffers, 
    GL_ARB_draw_indirect, GL_ARB_draw_instanced, GL_ARB_enhanced_layouts, 
    GL_ARB_multi_draw_indirect, GL_ARB_occlusion_query2, 

$ glxinfo | grep render
direct rendering: Yes
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
Extended renderer info (GLX_MESA_query_renderer):
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.9, 256 bits)
    GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth, 
    GL_NV_conditional_render, GL_NV_depth_clamp, GL_NV_packed_depth_stencil, 
    GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth, 
    GL_NV_conditional_render, GL_NV_depth_clamp, GL_NV_fog_distance, 
    GL_OES_element_index_uint, GL_OES_fbo_render_mipmap,

$ glxgears 
18471 frames in 5.0 seconds = 3694.190 FPS 
18775 frames in 5.0 seconds = 3754.955 FPS 
18064 frames in 5.0 seconds = 3611.438 FPS 
18966 frames in 5.0 seconds = 3791.963 FPS 
20396 frames in 5.0 seconds = 4079.017 FPS

То есть, драйвера из стандартного репозитария Debian вроде стоят правильно, рендеринг аппаратный. Проблема именно в том, что не видится второй монитор.

Лазил в BIOS, смотрел там, может где-то есть настройка какого-нибудь Multi Display. Ничего похожего не нашел.

Скачал intel-linux-graphics-installer-1.4.0 в сырцах, потому что сборки есть только под Ubuntu и RadHat. Начал читать документацию. Там пишут:
When releasing the installer you should note the following:
The installer should be configured with.
  ./configure  --with-config-uri=htt://…

Проблема в том, что в сырцах нет этого самого ./configure. Так же там внятно не написано, с каким URI надо конфигурять. И этот странный протокол htt... На этом остановился.

В общем, даже не знаю что дальше делать. Драйвера вроде работают, и их разламывать не хочется. Мне бы просто включить два монитора. Как это сделать?

★★★★★

Если в Xorg fbdev, значит ядерная поддержка не завелась, смотри опции i915 модуля, иногда можно подкрутить для новых(относительно) процессоров

Elyas ★★★★★ ()
Последнее исправление: Elyas (всего исправлений: 1)
Ответ на: комментарий от Elyas

Фига себе, простой фреймбуфер 4000 fps дает??

Я таки смог собрать Intel Linux Graphics Installer, оказывается они забыли в README про autoconf написать. После его работы появляется скрипт configure.

Однако запуск завершается сообщением:

Distribution not supported

И в логе написано:
Checking if Intel graphics card available...
  • checking for i915 module in /sys/module
  • i915 module found
Checking if Intel graphics card available... OK
Retrieving information from 01.org...
  • fetching https://download.01.org/gfx/ilg-config.cfg
  • saving to /root/.ilg-config
  • fetched 1626 bytes
  • fetched 9818 bytes
  • fetched 12301 bytes
  • looking up [Debian stretch] configuration
Retrieving information from 01.org... OK
Checking distribution... Failed

То есть, этим инсталлером поставить дрова Intel невозможно в Debian. Правда, непонятно, стоят ли они уже или нет. Как это узнать?

По поводу модуля i915 вот какая информация:
# lsmod | grep i915
i915                 1232896  0
drm_kms_helper        155648  1 i915
drm                   360448  2 i915,drm_kms_helper
i2c_algo_bit           16384  1 i915
video                  40960  1 i915
button                 16384  1 i915

# modinfo i915
filename:       /lib/modules/4.9.0-4-amd64/kernel/drivers/gpu/drm/i915/i915.ko
license:        GPL and additional rights
description:    Intel Graphics
author:         Intel Corporation
author:         Tungsten Graphics, Inc.
firmware:       i915/bxt_dmc_ver1_07.bin
firmware:       i915/skl_dmc_ver1_26.bin
firmware:       i915/kbl_dmc_ver1_01.bin
firmware:       i915/kbl_guc_ver9_14.bin
firmware:       i915/bxt_guc_ver8_7.bin
firmware:       i915/skl_guc_ver6_1.bin
alias:          pci:v00008086d0000593Bsv*sd*bc03sc*i* ... 
alias:          pci:v00008086d0000016Asv0000152Dsd00008990bc03sc*i* ...
alias:          pci:v00008086d00003577sv*sd*bc03sc*i*
depends:        drm_kms_helper,drm,video,button,i2c-algo-bit
intree:         Y
vermagic:       4.9.0-4-amd64 SMP mod_unload modversions 
parm:           modeset:Use kernel modesetting [KMS] (0=disable, 1=on, -1=force vga console preference [default]) (int)
parm:           panel_ignore_lid:Override lid status (0=autodetect, 1=autodetect disabled [default], -1=force lid closed, -2=force lid open) (int)
parm:           semaphores:Use semaphores for inter-ring sync (default: -1 (use per-chip defaults)) (int)
parm:           enable_rc6:Enable power-saving render C-state 6. Different stages can be selected via bitmask values (0 = disable; 1 = enable rc6; 2 = enable deep rc6; 4 = enable deepest rc6). For example, 3 would enable rc6 and deep rc6, and 7 would enable everything. default: -1 (use per-chip default) (int)
parm:           enable_dc:Enable power-saving display C-states. (-1=auto [default]; 0=disable; 1=up to DC5; 2=up to DC6) (int)
parm:           enable_fbc:Enable frame buffer compression for power savings (default: -1 (use per-chip default)) (int)
parm:           lvds_channel_mode:Specify LVDS channel mode (0=probe BIOS [default], 1=single-channel, 2=dual-channel) (int)
parm:           lvds_use_ssc:Use Spread Spectrum Clock with panels [LVDS/eDP] (default: auto from VBT) (int)
parm:           vbt_sdvo_panel_type:Override/Ignore selection of SDVO panel mode in the VBT (-2=ignore, -1=auto [default], index in VBT BIOS table) (int)
parm:           reset:Attempt GPU resets (default: true) (bool)
parm:           enable_hangcheck:Periodically check GPU activity for detecting hangs. WARNING: Disabling this can cause system wide hangs. (default: true) (bool)
parm:           enable_ppgtt:Override PPGTT usage. (-1=auto [default], 0=disabled, 1=aliasing, 2=full, 3=full with extended address space) (int)
parm:           enable_execlists:Override execlists usage. (-1=auto [default], 0=disabled, 1=enabled) (int)
parm:           enable_psr:Enable PSR (0=disabled, 1=enabled - link mode chosen per-platform, 2=force link-standby mode, 3=force link-off mode) Default: -1 (use per-chip default) (int)
parm:           preliminary_hw_support:Enable preliminary hardware support. (int)
parm:           disable_power_well:Disable display power wells when possible (-1=auto [default], 0=power wells always on, 1=power wells disabled when possible) (int)
parm:           enable_ips:Enable IPS (default: true) (int)
parm:           fastboot:Try to skip unnecessary mode sets at boot time (default: false) (bool)
parm:           prefault_disable:Disable page prefaulting for pread/pwrite/reloc (default:false). For developers only. (bool)
parm:           load_detect_test:Force-enable the VGA load detect code for testing (default:false). For developers only. (bool)
parm:           force_reset_modeset_test:Force a modeset during gpu reset for testing (default:false). For developers only. (bool)
parm:           invert_brightness:Invert backlight brightness (-1 force normal, 0 machine defaults, 1 force inversion), please report PCI device ID, subsystem vendor and subsystem device ID to dri-devel@lists.freedesktop.org, if your machine needs it. It will then be included in an upcoming module version. (int)
parm:           disable_display:Disable display (default: false) (bool)
parm:           enable_cmd_parser:Enable command parsing (1=enabled [default], 0=disabled) (int)
parm:           use_mmio_flip:use MMIO flips (-1=never, 0=driver discretion [default], 1=always) (int)
parm:           mmio_debug:Enable the MMIO debug code for the first N failures (default: off). This may negatively affect performance. (int)
parm:           verbose_state_checks:Enable verbose logs (ie. WARN_ON()) in case of unexpected hw state conditions. (bool)
parm:           nuclear_pageflip:Force atomic modeset functionality; asynchronous mode is not yet supported. (default: false). (bool)
parm:           edp_vswing:Ignore/Override vswing pre-emph table selection from VBT (0=use value from vbt [default], 1=low power swing(200mV),2=default swing(400mV)) (int)
parm:           enable_guc_loading:Enable GuC firmware loading (-1=auto, 0=never [default], 1=if available, 2=required) (int)
parm:           enable_guc_submission:Enable GuC submission (-1=auto, 0=never [default], 1=if available, 2=required) (int)
parm:           guc_log_level:GuC firmware logging level (-1:disabled (default), 0-3:enabled) (int)
parm:           enable_dp_mst:Enable multi-stream transport (MST) for new DisplayPort sinks. (default: true) (bool)
parm:           inject_load_failure:Force an error after a number of failure check points (0:disabled (default), N:force failure at the Nth failure check point) (uint)
parm:           enable_dpcd_backlight:Enable support for DPCD backlight control (default:false) (bool)
parm:           enable_gvt:Enable support for Intel GVT-g graphics virtualization host support(default:false) (bool)

В общем, надо разобраться: стоят ли драйвера Intel или их надо таки вручную ставить. Если надо, то как их поставить, если Intel Linux Graphics Installer их ставить не хочет.

Xintrea ★★★★★ ()
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от Xintrea

На дешёвой видеокарте 24000 фпс в glxgears.

anonymous ()
Ответ на: комментарий от Xintrea

Да, и еще. Пакет xserver-xorg-video-intel установлен. И его версия 2.99.917 - вроде как новая:

# apt-get install xserver-xorg-video-intel
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Уже установлен пакет xserver-xorg-video-intel самой новой версии (2:2.99.917+git20161206-1)

Говорят, что после его установки glxinfo должно показывать OpenGL вендора Intel Open Source Technology Center. Однако вместо этого показывает VMware, Inc:
# glxinfo | grep "OpenGL vendor string"
OpenGL vendor string: VMware, Inc.

Вот. Где же нужно крутануть, чтоб подключились драйвера xserver-xorg-video-intel ?

Xintrea ★★★★★ ()
Ответ на: комментарий от Elyas

А так же установлены пакеты:

Уже установлен пакет libdrm-intel1 самой новой версии (2.4.74-1).
Уже установлен пакет libgl1-mesa-dri самой новой версии (13.0.6-1+b2).
Уже установлен пакет libgl1-mesa-glx самой новой версии (13.0.6-1+b2).

Но все равно с ними драйвер Intel не видится. И второй монитор не видится.

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

# glxinfo | grep «OpenGL vendor string»
OpenGL vendor string: VMware, Inc.

У тебя Debian на виртуалке стоит?

hippi90 ★★★★ ()
Ответ на: комментарий от Xintrea

Ты же пятизвёздочный, а до сих пор не знаешь, что дрова для интела не надо доустанавливать? И что нужно читать выхлоп дмесга и иксорга тоже не знаешь?

Deleted ()
Ответ на: комментарий от hippi90

Нет конечно. Видимо, VMware, Inc. - это разработчик толи mesa, то ли еще чего-то околодрайверного.

Xintrea ★★★★★ ()

Если загрузиться с лайва какого-нибудь монитор будет нормально определяться?

hippi90 ★★★★ ()
Ответ на: комментарий от Deleted

Никогда с интелёвыми картами дел не имел. dmesg давно прочитал, ничего в нем про vga/vesa/hdmi/video и прочее не нашел.

В лог-файле /var/log/Xorg.0.log вижу только вот такие ошибки:

[     3.057] (II) FBDEV: driver for framebuffer: fbdev
[     3.057] (II) VESA: driver for VESA chipsets: vesa
[     3.062] (EE) open /dev/dri/card0: No such file or directory
[     3.062] (WW) Falling back to old probe method for modesetting
[     3.062] (EE) open /dev/dri/card0: No such file or directory
[     3.062] (II) Loading sub module "fbdevhw"
[     3.062] (II) LoadModule: "fbdevhw"
[     3.062] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
...
[     3.063] (EE) Screen 0 deleted because of no matching config section.
...
[     3.078] (EE) AIGLX: reverting to software rendering

Xintrea ★★★★★ ()
Ответ на: комментарий от greenman

На Debian 8.8 заводится, странно, что у тебя не получается.
Ядро-то какое?

# cat /etc/issue.net
Debian GNU/Linux 9

# uname -a
Linux 4.9.0-4-amd64 #1 SMP Debian 4.9.51-1 (2017-09-28) x86_64 GNU/Linux
Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

ты весь лог выложи, и дмесг тоже. и это, устанавливал давно? Или переносил с другого компа? И нет ли чего подозрительного в /etc/X11 ?

Deleted ()
Ответ на: комментарий от Xintrea

Если не установлены intel-microcode, попробуй поставить.

Если не поможет, подключай backports. Там есть свежие ядра

greenman ★★★★★ ()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от greenman

Если не установлены intel-microcode, попробуй поставить.

Такого пакета нет. А это разве не оно:

# modinfo i915
filename:       /lib/modules/4.9.0-4-amd64/kernel/drivers/gpu/drm/i915/i915.ko
license:        GPL and additional rights
description:    Intel Graphics
author:         Intel Corporation
author:         Tungsten Graphics, Inc.
firmware:       i915/bxt_dmc_ver1_07.bin
firmware:       i915/skl_dmc_ver1_26.bin
firmware:       i915/kbl_dmc_ver1_01.bin
firmware:       i915/kbl_guc_ver9_14.bin
firmware:       i915/bxt_guc_ver8_7.bin
firmware:       i915/skl_guc_ver6_1.bin


Если не поможет, подключай backports. Там есть свежие ядра

4.9.51-1 (2017-09-28) - уж куда свежее то?

Xintrea ★★★★★ ()
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от Xintrea

https://wiki.debian.org/Microcode#Debian_9_.22Stretch.22_.28stable.29

non-free подключены?

А ядра есть (в backports) 4.10, 4.11...

У меня счас

$ uname -a
Linux cehost 4.13.12-1-ARCH #1 SMP PREEMPT Wed Nov 8 11:54:06 CET 2017 x86_64 GNU/Linux

greenman ★★★★★ ()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от Xintrea

Нде, что-то непонятное. Он даже не пытается загружать интелловский драйвер на иксах. Но ты уже ковырялся, устанавливал там что-то, разбираться будет муторно. Действительно это может быть устаревшее ядро. Ведь в интеле часть «драйвера» в ядре, а часть иксовая. Ставя новый иксовый драйвер ты меняешь только часть. А полноценная поддержка твоей карты могла появиться только в более поздних ядрах. Следовательно, или ставить ядра из бэкпортов/анстейблов, или пробовать прописывать драйвер гденить в /etc/X11/Xorg.conf.d

А можешь запустить какойнить лайф посвежее и проверить, как на нём работает? Манджару, там, или Убунту распоследнюю.

Deleted ()
Ответ на: комментарий от greenman

non-free не подключены. Щас подключу.

Пока что нашел вот что:

https://unix.stackexchange.com/questions/356738/installing-debian-on-kaby-lak...

Там говорят, что пакет xserver-xorg-video-intel нужно вообще удалить. Я удалил, перегрузился, и заметил, что в окне логина DE стали шрифты более правильными - надписи стали влезать в экран.

А в описании этого пакета есть следующее:

Пакет предоставляет драйвер для видеокарт с чипсетом Intel семейств i8xx и i9xx, включающих в себя чипы серий i810, i815, i830, i845, i855, i865,i915, i945 и i965.

Также пакет предоставляет драйверы XvMC (XVideo Motion Compensation) для чипсетов i810/i815, i9xx и более новых.

Пакет собран из драйверного модуля X.org xf86-video-intel.

Не рекомендуется использование данного драйвера с видеокартами, выпущенными позднее 2007 года: вместо этого удалите его, и графический сервер будет использовать встроенный драйвер установки режимов.

Xintrea ★★★★★ ()
Ответ на: комментарий от Deleted

Нде, что-то непонятное. Он даже не пытается загружать интелловский драйвер на иксах. Но ты уже ковырялся, устанавливал там что-то, разбираться будет муторно.

Ничего не устанавливал. Все что с системой шло по умолчанию, то и стоит. Только Intel Linux Graphics Installer смог запустить, который сказал что работать не будет.

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

А, так ты не поставил его, извини, запутался. Так что тебе сообщает лог иксорга после того, как ты удалил интелловский пакет?

Deleted ()
Ответ на: комментарий от Xintrea

Xorg должен использовать DDX драйвер modesetting. Этот DDX драйвер использует ядерный KMS модуль i915.

Не знаю как в дебиане, а в рхеле modesetting идет в базовом пакете xorg-server. И для его «включения» достаточно удалить /etc/X11/xorg.conf.

Или ты ядро загрузил с опцией nomodeset?

iliyap ★★★★★ ()
Последнее исправление: iliyap (всего исправлений: 1)
Ответ на: комментарий от Deleted

А, так ты не поставил его, извини, запутался. Так что тебе сообщает лог иксорга после того, как ты удалил интелловский пакет?

Да ничего не изменилось. Те же ошибки что нетути /dev/dri/card0:

https://pastebin.com/scNDEUSy

Это после того как удалил xserver-xorg-video-intel и поставил intel-microcode из non-free.

Кстати, я проверил, микрокод обновился:

Было:

# dmesg | grep microcode  
[    1.011328] microcode: sig=0x906e9, pf=0x2, revision=0x42 
[    1.011575] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba

Стало:
# dmesg | grep microcode 
[    0.000000] microcode: microcode updated early to revision 0x5e, date = 2017-04-06 
[    1.000274] microcode: sig=0x906e9, pf=0x2, revision=0x5e 
[    1.000461] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba

Xintrea ★★★★★ ()
Ответ на: комментарий от iliyap

Или ты ядро загрузил с опцией nomodeset?

Кстати... Когда я ставил Linux, у меня после груба был черный экран. И я прописал опцию nomodeset. Тогда стала видна загрузка и стали иксы стартовать.

Раньше я так тоже делал, но на NVidia. И с этой опцией драйвера NVidia нормально загружались и работали.

Может, действительно дело в nomodeset? Щас посмотрю...

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

Ага, походу в этом было дело. Опция nomodeset все портила.

Я делал инсталляцию на старом VGA мониторе Belinea. И после инсталляции был черный экран пока я nomodeset не прописал.

Потом подключил второй HDMI моник, но даже не догадался проверить, а будет ли он что-то отображать, если nomodeset убрать из параметров загрузки ядра.

В общем, как убрал nomodeset, так оказалось, что HDMI-моник может показать процесс загрузки. И сразу в драйверах OpenGL вендор Intel появился:

# glxinfo | grep "OpenGL vendor string"
OpenGL vendor string: Intel Open Source Technology Center


И оба монитора заработали отдельно и все стало конфигурироваться в виджете MATE.

Xintrea ★★★★★ ()
Ответ на: комментарий от Deleted

Отмечаю тему как решенную. Всем, кто помогал, большой респект! А iliyap вообще красавчик.

Xintrea ★★★★★ ()

Debian пошёл по пути нумерации udev?

Антфоотопик: создай xorg.conf вручную. X -configure в качестве отправной точки. Создастся файл /root/xorg.conf.root (кажется так).

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от Xintrea

Афигеть... Я даже не подумал про номодсет, яобратил внимание, что в обоих случаях у тебя иксы запускались на fbdev, а теперь всё встало на места, да?

Deleted ()
Ответ на: комментарий от Deleted

Да, nomodeset убрал, и, по сути, все само заработало.

Xintrea ★★★★★ ()
Ответ на: комментарий от anonymous

На дешёвой видеокарте 24000 фпс в glxgears.

А на нормальной видеокарте 60фпс. Тем всегда 60, если включена вертикальная синхронизация. А она обычно включена.

kirill_rrr ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.