LINUX.ORG.RU

Иксы на старой встроенной графике Intel

 , ,


2

5

Всем привет! Разгребал барахло, и обнаружил у себя Compaq Deskpro EN, на Pentium 3. Что-то ёкнуло, решил попробовать его завести-оживить, поставил plop на хард, загрузился с флешки в генту, и понеслась. Собрал ядро, поднял сеть, засетапил всю систему - всё ок.

Добрался до иксов - и вот тут какие-то непонятки. Вкратце, в системе стоит:

00:02.0 VGA compatible controller: Intel Corporation 82815 Chipset Graphics Controller (CGC) (rev 04)

встроенное в материнку видео. И как я понял из гугла - это какое-то одно из первых видео, и непонятно, поддерживается ли оно вообще сейчас? Ну и как я понял это нечто называется в драйверах и в ядре i810. Выбрал в конфиге ядра всю встройку от интела, в VIDEO_CARDS добавил «intel» - но заводиться не хочет. Вот что говорят иксы при запуске:

deskpro_en ~ # X

X.Org X Server 1.21.1.3
X Protocol Version 11, Revision 0
Current Operating System: Linux deskpro_en 5.15.32-gentoo-r1 #7 Tue May 17 10:24:56 MSK 2022 i686
Kernel command line: BOOT_IMAGE=Gentoo ro root=803
 
Current version of pixman: 0.40.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Tue May 17 13:13:30 2022
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
xf86EnableIO: failed to enable I/O ports 0000-03ff (Function not implemented)
modprobe: FATAL: Module fbcon not found in directory /lib/modules/5.15.32-gentoo-r1
intel: waited 2020 ms for i915.ko driver to load
(EE) 
(EE) Backtrace:
(EE) 0: X (xorg_backtrace+0x59) [0x568d29]
(EE) 1: X (0x412000+0x15b1ce) [0x56d1ce]
(EE) 2: linux-gate.so.1 (__kernel_rt_sigreturn+0x0) [0xb7f99560]
(EE) 3: /usr/lib/libpciaccess.so.0 (pci_io_read8+0x24) [0xb7e4f1d4]
(EE) 4: /usr/lib/xorg/modules/libint10.so (0xb7101000+0x790d) [0xb710890d]
(EE) 5: /usr/lib/xorg/modules/libint10.so (xf86ExtendedInitInt10+0x23a) [0xb710af6a]
(EE) 6: /usr/lib/xorg/modules/libint10.so (VBEExtendedInit+0x1a1) [0xb71048a1]
(EE) 7: /usr/lib/xorg/modules/libint10.so (VBEInit+0x2c) [0xb7104c0c]
(EE) 8: /usr/lib/xorg/modules/drivers/intel_drv.so (0xb73ad000+0xf7f4) [0xb73bc7f4]
(EE) 9: X (InitOutput+0xa9f) [0x58e4ef]
(EE) 10: X (0x412000+0x7325a) [0x48525a]
(EE) 11: X (0x412000+0x30b6e) [0x442b6e]
(EE) 12: /lib/libc.so.6 (0xb78b5000+0x213be) [0xb78d63be]
(EE) 13: /lib/libc.so.6 (__libc_start_main+0x94) [0xb78d6494]
(EE) 14: X (_start+0x27) [0x442ba7]
(EE) 
(EE) Segmentation fault at address 0xc
(EE) 
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting
(EE) 
(EE) 
Please consult the The X.Org Foundation support 
         at http://wiki.x.org
 for help. 
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE) 
(EE) Server terminated with error (1). Closing log file.
Aborted

(Тут они как-будто ждут загрузки модуля i915.ko, но он у меня вкомпилен в ядро)

Вот make.conf:

# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-O2 -march=pentium3 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C

MAKEOPTS="-j5 -l0"
FEATURES="distcc"

VIDEO_CARDS="intel i810"
CPU_FLAGS_X86="mmx sse"

USE="sqlite -ipv6 -firmware X elogind -systemd"

Ядро версии 5.15.32-gentoo-r1, из стейбла как я понимаю(кстати вся система после загрузки вместе с dhcp кушает всего 8мб оперативной памяти)

Вот конфиг ядра: http://paste.org.ru/?ulosra

Буду рад если кто-то поможет, заранее спасибо.

PS может имеет смысл убрать "-firmware" в make.conf? Хотя хз, поможет ли. Или может нужен fb? Я его вроде не собирал

самый простой вариант - загрузись с liveCD тех времён (knoppix 3.4 или damn small linux например)
там посмотришь правильное название модуля ядра для видеокарты и успешный Xorg.0.log
ну а потом уже попробуешь узнать, когда тот модуль был выброшен из ядра и можно ли его назад вернуть вообще

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

Драйвера для i810 отдельно нет, как я понял. Есть fb-драйвер, который вполне себе подгружается и работает, а вот при загрузке i915 модуля ничего не происходит вообще. Выкинули его просто наверное?

proveryam
() автор топика
Ответ на: комментарий от mittorn

Был когда-то? Посмотри конфиг ядра, там нет никаких упоминаний о i810. Появляется только тогда когда выбираешь framebuffer - вот там есть отдельный драйвер, который называется i810fb и который вполне себе загружается.

proveryam
() автор топика

Недавно перелопачивали модули, и в ядре и в месе, выкидывали старое, объединяли чего-то, поищи в новостях, тут или на опеннете. А в старых дистрах и ядрах копаться нечего, всё равно всё поменялось, ты ведь новые ядра вкорячиваешь.

R_He_Po6oT ★★★★
()

xf86EnableIO: failed to enable I/O ports 0000-03ff (Function not implemented)

В ядре вроде бы понерфили ioperm(), и теперь он может не работать. Вроде бы иксы патчили, чтобы это обойти. Патчи среди прочего всего упоминаются вот тут: https://bugs.gentoo.org/456220.

Возможно, поможет включить в ядре CONFIG_X86_IOPL_IOPERM.

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

Вау! Конкретное такое попадание, прямо в яблочко :) Спасибо.

[   837.796] (II) Loading sub module "int10"
[   837.797] (II) LoadModule: "int10"
[   837.797] (II) Loading /usr/lib/xorg/modules/libint10.so
[   837.797] (II) Module int10: vendor="X.Org Foundation"
[   837.797]    compiled for 1.21.1.3, module version = 1.0.0
[   837.797]    ABI class: X.Org Video Driver, version 25.2
[   837.797] (II) intel(0): initializing int10
[   838.056] (II) intel(0): VESA BIOS detected
[   838.056] (II) intel(0): VESA VBE Version 3.0
[   838.056] (II) intel(0): VESA VBE Total Mem: 512 kB
[   838.056] (II) intel(0): VESA VBE OEM: Intel(R) 815 Chipset Video BIOS
[   838.056] (II) intel(0): VESA VBE OEM Software Rev: 4.1
[   838.056] (II) intel(0): VESA VBE OEM Vendor: Intel Corporation
[   838.056] (II) intel(0): VESA VBE OEM Product: Intel(R) 815 Chipset
[   838.056] (II) intel(0): VESA VBE OEM Product Rev: Hardware Version 0.0
[   838.075] (II) intel(0): VESA VBE DDC supported
[   838.075] (II) intel(0): VESA VBE DDC Level 2
[   838.075] (II) intel(0): VESA VBE DDC transfer in appr. 1 sec.
[   838.532] (II) intel(0): VESA VBE DDC read successfully
[   838.532] (II) intel(0): Manufacturer: ACR  Model: ad95  Serial#: 1903198672
[   838.532] (II) intel(0): Year: 2007  Week: 17
[   838.532] (II) intel(0): EDID Version: 1.3
[   838.532] (II) intel(0): Analog Display Input,  Input Voltage Level: 0.700/0.300 V
[   838.532] (II) intel(0): Sync:  Separate
[   838.532] (II) intel(0): Max Image Size [cm]: horiz.: 38  vert.: 30

Что-то пытается запуститься, монитор моргает, и следует вот это:

[   838.535] (II) intel(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
[   838.535] (II) intel(0): Modeline "1280x720"x60.0   74.48  1280 1336 1472 1664  720 721 724 746 -hsync +vsync (44.8 kHz e)
[   838.536] (--) intel(0): Integrated Graphics Chipset: Intel(R) i815
[   838.536] (--) intel(0): Linear framebuffer at 0x44000000
[   838.536] (--) intel(0): IO registers at addr 0x40700000
[   838.536] (EE) GARTInit: Unable to open /dev/agpgart (No such file or directory)
[   838.536] (EE) intel(0): AGP GART support is not available.  Make sure your kernel has
        agpgart support or that the agpgart kernel module is loaded.
[   838.536] (II) UnloadModule: "intel"
[   838.536] (II) UnloadSubModule: "int10"
[   838.536] (II) Unloading int10
[   838.536] (II) UnloadSubModule: "int10"
[   838.536] (II) Unloading int10
[   838.536] (II) UnloadSubModule: "vgahw"
[   838.536] (II) Unloading vgahw
[   838.536] (EE) Screen(s) found, but none have a usable configuration.

Куда-то пропал /dev/agpart, хотя наверное его тоже уже выкинули? Или он как-то отдельно собирается/запускается?

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

В dmesg по грепу agp вот такое:

[    0.374004] Linux agpgart interface v0.103
[    0.374103] agpgart-intel 0000:00:00.0: Intel i815 Chipset
[    0.374248] agpgart-intel 0000:00:00.0: detected gtt size: 65536K total, 65536K mappable
[    0.374786] agpgart-intel 0000:00:00.0: AGP aperture is 64M @ 0x44000000

proveryam
() автор топика

Памяти хотя бы 256 мб есть? Взять современный дистр из тех, которые на новом ядре, но заработают (alt jeos туда поставится, knoppix должен при наличии свопа стартовать) и посмотреть, работает оно или нет. А то опции можно перебирать долго, но если знаешь, что работает, тогда хотя бы знаешь, что не зря перебираешь.

alt-tab-let ★★
()
Ответ на: комментарий от i-rinat
CONFIG_AGP=y
CONFIG_AGP_INTEL=y

Да, конечно. Сам драйвер вроде как тоже подгружается(dmesg выше), но в /dev/ устройства такого нет.

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

350мб стоит

256+64+32=352 мегабайт?

Я бы докупил за копейки две плашки на 128 и добавил ОЗУ до максимальных для чипсета 512 мегабайт.

Может что-то по этим ссылкам натолкнет на ответ:

https://wiki.ubuntu.com/ReinhardTartler/X/RevertingIntelDriverTo2.4

https://forums.linuxmint.com/viewtopic.php?t=33399

Кстати а что за монитор подключен? Может подключить что-то деревнее разрешением не более 1024x768? Или даже еще меньше.

ex-kiev
()
Ответ на: комментарий от ex-kiev

2 планки = 256+128-32(видеопамять)

Монитор какой-то Acer 1440x900. Но я не думаю что в нём дело, там явно сначала ругается на /dev/agpart, а только потом вываливает какую-то общую ошибку. Хотя хз даже, может попробовать разрешение просто выставить другое в xorg.conf. Хуже у меня монитора уже нет :) этот единственный с вга. За ссылки спасибо, почитаю. А память хз, может добью, если заведутся иксы - тогда уже можно будет поиграться. Всё-равно в целом 350мб хватает на все конпеляния.

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

Включил этот параметр и появился новый пункт в конфиге:

CONFIG_DRM_I810:                                                                                                                                                                                                                                                                                                   Choose this option if you have an Intel I810 graphics card. If M is selected, the module will be called i810.  AGP support is required for this driver to work.

Похоже действительно то что нужно. Сейчас буду пробовать.

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

Ура! Собрал ядро, i810 загрузился и иксы заработали! Всем большое спасибо, особенно i-rinat, gremlin_the_red. Что за юзеры на лоре, золото, за день порешали как воскресить труп :)

deskpro_en ~ # modinfo i810
name:           i810
filename:       (builtin)
license:        GPL and additional rights
file:           drivers/gpu/drm/i810/i810
description:    Intel i810
author:         VA Linux Systems Inc.

Правда рендеринг как я понимаю софтовый, ещё поиграюсь, но это уже победа :)

OpenGL version string: 4.5 (Compatibility Profile) Mesa 22.0.3
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
proveryam
() автор топика
Ответ на: комментарий от proveryam

Для будущих поколений которые вдруг захотят покопаться в барахле:

/etc/portage/make.conf

VIDEO_CARDS="intel"

Конфиг ядра:

CONFIG_AGP=y
CONFIG_AGP_INTEL=y
CONFIG_X86_IOPL_IOPERM=y
CONFIG_DRM_LEGACY=y
CONFIG_DRM_I810=y

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

Для будущих поколений…

Если бы вы статью или хотя бы заметку написали как вы оживляли эту видеоподсистему, с описанием что и зачем делалось и приложением конфигов. Я вот был уверен что на дистрибутивах выпущенных после 2009-2011 года эти видеокарты заставить работать не реально, за исключением дистрибутивов где можно штатно запустить старые иксы(то есть еще плюс два или три года). Однако вы меня приятно удивили, очень удивили.

ex-kiev
()
Ответ на: комментарий от ex-kiev

Да мне кажется я в принципе всё описал. Всё решается пятью строчками конфига в ядре и взлетает без проблем. Может быть в галерею, как соберу какой-нибудь DE, отпишу тред как генту конпелять на таком старом железе. Учитывая то что на любой иксовый чих просят раст и sse2 может кому-нибудь будет интересно(хотя мне кажется кто реально задавался таким вопросом, уже и так всё знает :))

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

Правда рендеринг как я понимаю софтовый, ещё поиграюсь, но это уже победа :)

Чуть-чуть опоздали. Из Mesa удалён код классических драйверов, не использующих Gallium3D

Попробуйте версию снизить (libdrm тоже) или форк поискать.

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

Не чуть-чуть. Классический i915 не работал с 810G/815G, только начиная с 830M/845G, а i810, который работал со всеми 8xx, был выкинут 11 лет назад — https://www.opennet.ru/opennews/art.shtml?num=31610

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

https://github.com/archlinux/svntogit-community/tree/packages/mesa-dri1/trunk

Некромансеры из арча собирают месу 7.11.2

Я так понимаю надо данный патч наложить, чтобы всё собралось. Другой вопрос, что с этой самой поддержкой делать сегодня.

steemandlinux ★★★★★
()
Последнее исправление: steemandlinux (всего исправлений: 1)

мне вот кстати интересно, можно ли как-то прикрутить к gallium это. Очень часто фрагментный вывод шейдера состоит из одного-двух умножений сэмплеров, а входы сэмплера линейно зависят от массивов, с чем вполне справится gl1 оборудование. То есть пойти путём i915g, но чуть дальше, отказавшись от исполенения пиксельного шейдера совсем. Это всяко будет быстрее llvmpipe, а в случае более сложного шейдера, откатываться на него по тому же принципу, как это работало в glide с откатом на tnl/swrast путь

mittorn ★★★★★
()

Даже если заведешь, будет куча глюков и неправильного рендера, даже в 2d. Это прямой потомок i740, одного из самых эпичных провалов штеуда

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

Меня терзают смутные подозрения что даже если запустить 3D получится то реально его использовать будет нельзя, по причине крайне низкого FPS. Даже старые игры(на пару лет старее этой видеокарты) будут показывать слайд шоу. Буду рад ошибиться.

ex-kiev
()
Ответ на: комментарий от mittorn

играть в ретро-игры

Её почти полный дискретный аналог i740 показывал сумасшедшие 30FPS в Quake 3 (normal 640x480). В Carmageddon II чуть похуже — 23FPS.

пускать старый compiz

К 2009 он уже требовал 2.0.

многие рендереры всё ещё имеют фоллбэк на gl1

GL1 бывает разный. У опенарены есть, конечно, gl1 фоллбэк, но ему тутошней 1.1 точно не хватит, на глаз 1.3-1.4 требуется. У kwin был (много-много лет назад) GL1 рендерер, но опять же 1.2 минимум (для некоторых эффектов больше).

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

Её почти полный дискретный аналог i740 показывал сумасшедшие 30FPS в Quake 3 (normal 640x480). В Carmageddon II чуть похуже — 23FPS.

Эти данные получены в M$ Windows или это под Linux’ом было?

ex-kiev
()