Как заставить работать интегрированные видеокарты на чипах Intel 845/855/865 на машинах DELL

Виктор Вислобоков
По материалам статей http://www.chzsoft.com.ar/855patch.html и http://www.flmnh.ufl.edu/linux/fc1_intel_video_fix.htm

Как заставить работать интегрированные видеокарты на чипах Intel 845/855/865  на машинах DELL

Маленькие замечания перед началом

Всё, что говорится о XFree86 также в подавляющем большинстве случаев справедливо и для других клонов X Window System, например X.org.
Работа, описанного в этой статье была успешно проверена автором на Linux Fedora Core 1 и 2.

Описание проблемы

В то время как XFree86 в Linux прекрасно работают с интегрированными видеокартами на чипах Intel 810/815, с более новой линейкой чипов 845/855/865 возникает проблема: хотя XFree86 правильно определяют тип видеокарты, но тем не менее, не позволяют работать с разрешением больше чем 640x480. Это касается, например, таких машин DELL как Optiplex GX270, Inspiron 500m, Latitude D400, Inspiron 1100 и т. д. Вы можете посмотреть список таких компьютеров здесь.

Причины

Причины заключаются в том, что при запуске XFree86 для видеокарты не выделяется необходимое количество видеопамяти, наличие которой необходимо для поддержки более высоких разрешений. XFree86 могут выделять больше памяти, но они не могут сказать об этом BIOS и таким образом, именно BIOS не позволяет работать с более высокими разрешениями. Некоторые новые модели компьютеров с чипом 855GM (такие как DELL Inspiron 510m и Latitude D505) имеют обновлённый BIOS, который может сам устанавливать объём видеопамяти, что делает использование заплаты 855patch для таких компьютеров не нужным. Однако, к сожалению, эти BIOS имеют новый баг, который приводит при использовании драйвера i810 к зависанию XFree86 (с зелёным экраном). Для устранения этой проблемы создана ещё одна запрлатка 855wrap. Функциональность, которую обеспечивают заплатки 855patch и 855wrap были добавлены в XFree86 версий 4.4.x и бета версии, так что возможно, что при выпуске новой версии XFree86 необходимость в заплатах отпадёт.

Решение

Для устранения описанных выше проблем, разработан набор заплат 845patch, 855patch, 855wrap и 865patch. Для того, чтобы эти заплаты сработали необходимо:
  • Наличие XFree86 4.2.x или выше (Проверено, что работает и с Xorg в дистрибутивах Fedora Core 1 и 2).
  • Ядро 2.4.x (или выше) (См известные баги если у вас происходит segmentation fault с ядром 2.6.x.)
  • drm-модули ядра и драйверы XFree86 поддерживающие ваш чип. Если у вас их нет, вам может помочь установка драйверов, поставляемых Intel.
  • XFree86 необходимо настроить на использование драйвера i810 и включить поддержку dri. В простивном случае XFree86 не сможет выделить память.
  • Значение количества видеопамяти в параметре VideoRam в настройках XFree86 должно совпадать с количеством, которое вы указываете при запуске заплаты.
Если у вас XFree86, то в вашем XF86Config:
  • добавьте строку Load "dri" в Section "Module"
  • используйте Driver "i810" в Section "Device"
  • установите VideoRam в необходимое значение в Section "Device"
Далее скачайте необходимую заплату (855patch, 855wrap, 845patch или 865patch).
Драйверы для видеокарт, поставляемые Intel
Для чипа i855GM (855patch):  Исходные тексты,  RPM пакетыDEB пакеты
Для чипа i855GM (855wrap):  Исходные тексты
Для чипа i845 (845patch): Исходные тексты, RPM пакеты, DEB пакеты
Для чипа i865 (865patch): Исходные тексты, RPM пакеты, DEB пакеты, [RPM и SRPMS с init.d сценарием]

Распакуйте архив и выполните указанные в нём инструкции по компиляции и установке, если вы работаете с архивом исходных текстов или установите пакет, если вы скачали заплату в форме пакета. (После установки пакета для чистоты эксперимерта неплохо бы перезагрузиться).

В общем случае установка из исходных текстов может выглядеть так (пример для Fedora Core 1, предположим, что все действия выполняются в каталоге /usr/src):
gunzip 865patch.tar.gz
tar -xvf 865patch.tar
cd 865patch
make
Для компиляции вам понадобятся C-компилятор gcc и инструмент make. После окончания компиляции вы должны получить исполняемый файл 865patch. Для тестирования выйдите из всех программ и переключитесь в текстовую консоль.
# init 3
После окончания выполнения этой команды запустите заплату
# /usr/src/865patch/865patch 8192
Измените настройки в вашем /etc/X11/XF86Config (или /etc/X11/Xorg.conf) файле:
Section "Device"
Identifier "Videocard0"
Driver "i810"
VendorName "Videocard vendor"
BoardName "Intel 865"
VideoRam 8192

Выполните команду
# init 5
чтобы снова активизировать загрузку XFree86. Если всё нормально, то XFree86 запустится в разрешении 800x600 или даже 1024x768. Далее можно сделать так (заметим, что с точки зрения System V init это неправильно, но так работает):
# cp /usr/src/865patch/865patch /sbin
И исправить сценарий /etc/rc.sysinit добавив туда строки
# Run the use-at-your-own-risk hack from www.chzsoft.com.ar/855patch.html
# for Intel integrated chipsets. This requires the addition of VideoRam setting
# in XF86Config.
echo "Running Intel integrated chipset video patch..."
/sbin/865patch 8192
sleep 1

Известные баги

  • Некоторые пользователи отмечали появление мусора на экране или нескольких мигающих линий, при обратном переключении из текстового режима в графический. Это было замечено только при глубине цвета в 24 бит. Рекомендуется в таком случае, с помощью настроек снизить глубину цвета. 16 бит хватает абсолютному большинству приложений.
  • 855patch, 855wrap, 845patch и 865patch не поддерживают разрешние в 1400x1050. Это можно устранить с помощью  ещё одной заплаты.
  • Пользователи на некоторых ядрах 2.6.3 от Fedora в предыдущей версии заплат получали segmentation fault. Добавьте "nocheck" (без кавычек) в командную строку запуска заплаты чтобы пропустить функцию, которая вызывает эту ошибку.

1400x1050

Алэйн Пурье (Alain Poirier) написал программу 855resolution, чтобы получить разрешение 1400x1050 на чипах i855GM. Она была успешно протестирована на большом количестве компьютеров. Подробности смотрите o здесь.

Контакты

Пожалуйста, если вы найдёте ошибку в документе, сообщите о ней мне на данный вверху E-mail адрес. Если вы нашли ошибку в заплатах - обращайтесь к автору на странице http://www.chzsoft.com.ar/855patch.html вы найдёте его контактный адрес.