3

У меня установлена версия Ubuntu 10.10 x86_64 с Nvidia 9800 GT, установленными 270.41.06 драйверами Nvidia, следуя этому руководству. У меня есть ЖК-телевизор LG42LH30FR, подключенный по DVI-каналу -> вход RGB для ПК

Я могу получить разрешение 1024x768 без пересканирования (я могу получить разрешение 1080i = 1366x768, но справа много скрытого экрана, и я не знаю, что с этим делать). Я хочу получить Full HD

Я могу получить Full HD (1080p = 1920x1080) в 64-битной Windows XP с пользовательским разрешением, созданным с помощью панели управления Nvidia, из чтения конфигураций xorg.conf кажется, что мне нужно добавить определенное моделирование в конфигурацию монитора, но я не не знаю, где взять подходящие варианты для этой задачи

какие-либо предложения?

3 ответа3

5

Я смог сделать это с помощью пользовательского EDID на экране, либо добавив его в раздел экрана xorg.conf :

Option "CustomEDID" "DFP-0:/path/to/file/custom_edid.bin"

Или путем создания конфигурации:

sudo nvidia-xconfig --custom-edit="CRT-0:/my/monitor.bin"

Теперь большой вопрос, как произвести приемлемый EDID .bin?

В Windows XP мне пришлось установить два приложения: PowerStrip (на которое ссылается статья в Википедии об EDID)

Другое нужное нам приложение - это Phoenix EDID Designer.

С PowerStrip мы получим подробную информацию о времени из текущего режима отображения; в основном необходимая информация показана в этой статье, и она сводится к следующему:

1) В WinXP время находится где-то во вкладке расширенных настроек. Тебе нужно:

Horiz Front Porch, Vert Front Porch,
Horiz Back Porch, Vert Back Porch, 
Horiz Front Active, Vert Front Active, 
Horiz Scan (or Sync) Width, Vert Scan Width, 
Horiz Sync Polarity, Vert Sync Polarity, 
and Pixel Clock. 

2) В вашем /etc/X11/xorg.conf есть место для моделин, которое выглядит примерно так:

Код:

Modeline "1768x992" 74.48 1768 1336 1472 1664 992 721 724 746 -hsync +vsync

Просто пример. Не используйте этот.

Моделин находится в формате

Код:

Modeline "somenamehere" <dotclock> <H1> <H2> <H3> <H4> <V1> <V2> <V3> <V4> <HP> <VP>

where dotclock = Pixel Clock 
H1=Horiz Front Active 
H2=H1+Horiz Front Porch 
H3=H2+Horiz Sync Width 
H4=H3+Horiz Back Porch 
V1=Vert Front Active
V2=V1+Vert Front Porch 
V3=V2+Vert Sync Width 
V4=V3+Vert Back Porch 
HP=Horiz Sync Polarity [-hsync/+hsync] 
VP=Vert Sync Polarity [-vsync/+vsync] 

Простые формулы, но мне потребовались недели поиска, чтобы выяснить, как преобразовать синхронизацию окон в модельную линию Linux.

Для моего конкретного ЖК-телевизора LG42LH30FR полученная модельная строка:

Modeline "1080p" 172.8 1920 2040 2248 2576 1080 1081 1084 1118 -hsync +vsync

Я добавил это в свой монитор, но это не сработало, поэтому я решил добавить пользовательский EDID.


Теперь, чтобы создать EDID

Откройте Phoenix EDID Designer, в основном я импортировал EDID из реестра Windows, и я использовал его в качестве основы для изменения, потому что я не знал, как заполнить раздел «Цвет / установленные сроки», поэтому предварительное заполнение дало мне надеюсь, разумные значения (ну, это работает для меня, может быть, это была удача), во всяком случае, нажмите кнопку « read-only/modify , которая позволяет редакцию, важные вещи, чтобы изменить

Генеральный:

Добавить все, что вы хотите здесь

Основные параметры отображения:

  Video Input Definition -> Digital
  Display Type -> RBG color
  sRGB -> check
  gamma value: somewhere over 250 would be ok

Стандартные сроки: (я отключил все, кроме идентификатора времени № 1)

  H. Active Pixels (use the value obtained from PowerStrip, for full hd it should be 1920)
  refresh rate (for me its 60Hz)

Подробные сроки:

  set all blocks to "unused" except block #1:
    Pixel Clock: (use from PS obtained info)
    H/V Active Pixel : from PS info
    H/V Blank : from PS info. this is actually **Front Porch**
    H/V Sync Offset: from PS info. this is actually **Back Porch**
    H/V Sync width: from PS info

Готово. Теперь сохраните полученный файл где-нибудь, вы можете открыть его, это текстовый файл.

Вам нужно сделать еще один шаг, чтобы преобразовать его в необходимый EDID-файл размером 128 байт; в основном я укажу на основную статью, описывающую трансформацию, но в итоге вам придется

  1. strip все из файла, кроме шестнадцатеричной матрицы цифр
  2. Скомпилируйте это:

#include <stdio.h>

int main()
{
    while (!feof(stdin))
    {
        unsigned char i;
        scanf("%02X ", &i);
        printf("%c", i);
    }

    return 0;
}

И запустить:

# gcc comp.c -o comp
# ./comp < custom_edid.dat > custom_edid.bin

Готово! Перезапустите Ubuntu (после добавления настраиваемой опции конфигурации edid, описанной в начале публикации), и теперь в настройках сервера Nvidia X вы сможете установить свое собственное разрешение.

0

Вы можете просто использовать приложение драйвера Nvidia, чтобы установить соответствующее разрешение и выводить изображение на HDTV.

Откройте окно терминала и введите

sudo nvidia-settings

После того, как откроются настройки сервера Nvidia X , перейдите на вкладку « Конфигурация дисплея X-сервера » и настройте свой дисплей HDTV оттуда.

0

Вероятно, это проблема контрольной суммы EDID. Если так, то просто добавьте это в ваш /etc/X11/xorg.conf:

Option     "UseEDID" "true"
Option     "IgnoreEDIDChecksum" "CRT,DFP,TV"   

В разделе "Устройство".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .