Posts Tagged ‘upgrade’

Апгрейд видеокарты в Linux.

Линукс | Posted by Sergey
Dec 13 2010

Небольшой пост между экспериментами, про замену видеокарты NVIDIA на ATI и попутной замены монитора со старого ЭЛТ на ЖК.

Предыстория долгая, но если вкратце, то купил я как-то зимним вечером новую видеокарту и решил посмотреть, как происходит апгрейд в Linux. У меня видео до этого было в виде встроенного чипа от NVidia в материнской плате, а тут появилась возможность посмотреть, как линукс заработает с чудом заморской техники в виде Gigabyte HD 5770.

gigabyte-hd-5770

Windows 7, конечно, заметила замену, но тут же поставленный драйвер с CD привел ее обратно в состояние гармонии. После этого решил посмотреть как эту замену переживают линуксы.

А переживают они ее, надо сказать, слабо. Ubuntu, FreeBSD и Debian не смогли дойти до запуска графического интерфейса и радостно вывели мне белыми буквами на черном фоне предложение как-нибудь залогиниться в консоли. Как будто и не было никакого гнома раньше. Fedora повисла, без предложения логина вовсе, и только OpenSUSE и Mandriva смогли запуститься как обычно.

OpenSUSE, заметив, что драйвер nvidia не запустился, стартовала с обычным драйвером по умолчанию, а Mandriva даже опознала новую видеокарту и предложила поставить драйвер ATI. Я, недолго думая, согласился, и вскоре в меню добавился пункт ATI Catalyst.

Правда, он не запускался с сообщением о том, что у меня нет никакой карты ATI, и с настойчивым предложением запустить утилиту aticonfig. Ну, запустил я этот aticonfig без параметров и увидел длиннющий список ключей, с которыми его надо было запускать. Из интереса проверил - эта “помощь” состоит из 641-й строки, так что моя надежда легко и быстро все настроить тут же растаяла. Однако не все так плохо, разработчики вынесли самый главный ключ –initial в самое начало этого текста, его-то я и применил. После этой команды и перезагрузки в Mandriva все заработало отлично.

ati-catalyst-mandriva-screenshot-550

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

Поскольку у меня не было прямой ссылки на файл инсталлятора ATI с их сайта, я решил воспользоваться экзотическим браузером, который работает в текстовом режиме, а именно lynx-ом.

debian-screenshot-lynx-550

Поставить его я смог через aptitude (вот где пригодился его старинный текстовый интерфейс). Однако сайт ati.com оказался совершенно не приспособлен для lynx. Найти драйвер из корня сайта никак не удавалось, и я даже воспользовался гуглом, чтобы найти ссылки куда-нибудь “поближе” к нужной мне странице. Однако даже на самой странице видеокарты HD 5770 мне никак не удалось отыскать нужную ссылку. В общем, lynx был временно отложен в сторону и я “сдался”, отправившись искать решение в Mandriva, где с графикой к этому моменту все было нормально.

Решение оказалось на удивление простым, достаточно было заменить в файле /etc/X11/xorg.conf значение параметра “Driver” с “nvidia” на “vesa”, и я смог увидеть экран логина в гном. В этот момент у меня совершенно вылетело из головы, что можно было просто запустить “Xorg -configure”, который сделал бы то же самое и даже лучше, опознав заодно и монитор.

Но дальше экрана логина дело не пошло. Выбирая своего пользователя и вводя пароль, я убедился, что через несколько секунд моя сессия гнома падает, и экран логина появляется вновь. Тут я стал подозревать, что какие-то настройки у меня в сессии конфликтуют с новым драйвером видеокарты, и чтобы проверить это, я создал нового пользователя командой “adduser sergey2”. Команда задает кучу вопросов, но на все можно было смело отвечать по умолчанию, так что примерно через двадцать нажатий на “enter” я получил нового пользователя и попробовал зайти им в гном. В этот раз все сработало как надо, так что я смог запустить Epiphany (дефолтовый браузер, свободный родственник Firefox), скачать и поставить драйвер с ati.com.

C FreeBSD дело обстояло гораздо хуже. Для этой операционной системы компания ATI не предоставляет драйвер вообще, так что моей целью было просто восстановление хоть какой-нибудь графики, не говоря уже обо всяких графических эффектах. Здесь сработал тот же подход, что в Debian, а имено Xorg -configure и еще один пользователь. Старым пользователем я так и не смог зайти в систему. Пробовал удалить все файлы в своем домашнем каталоге, но это не помогло. В общем, если будете ставить себе FreeBSD, имейте в виду, что с картами NVidia тут все явно попроще.

В Fedora приключение заключалось в поисках способа зайти в рутовую консоль, поскольку система просто висла где-то на полпути к гному. Учитывая, что она не выводит логов, было совершенно неясно что происходит, хорошо хоть на ctrl-alt-del система реагировала нужным образом. Переключиться в консоль через Ctrl-Alt-F1..F8 не удавалось. Итак, если вам вдруг тоже понадобилось запустить Fedora без GUI, делается это так:

Сразу после старта компьютера, как только увидите отсчет секунд на голубом фоне (это загрузчик GRUB), нажмите какую-нибудь клавишу. Отсчет прекратится, и вы увидите меню, где нужно подсветить Fedora, нажать на “e”, после чего появится еще одно меню из трех строк. Здесь нужно перевести курсор на пункт, который начинается со слова “kernel”, и еще раз сказать “e”. В результате вы перейдете в режим редактирования этой строки, и все что нужно сделать - это добавить в конце пробел и цифру “3”. Затем последовательно нажать “enter” и “b”. Начнется загрузка, по завершении которой вы, наконец, окажетесь в консоли.

На языке линуксоидов это означает запуститься с runlevel=3, но для меня это просто очередное “ухищрение” и тайное знание, до которого невозможно самостоятельно додуматься, его просто надо запомнить. Далее уже привычным способом (Xorg -configure) я переконфигурил графическую систему, драйвер в /etc/X11/xorg.conf заменился на “radeon”, и после рестарта я смог зайти в привычный гном даже без создания отдельного пользователя.

Теперь о том, чего делать не стоило. Не стоило качать драйвер с сайта ATI и устанавливать его, поскольку он приводит к “болезни” под названием “черный экран”. Поиски в интернете объяснили, что проблема эта известная, и решения для нее пока нет. Дополнительно скажу, что если вы все же не поверили и скачали-поставили драйвер, то восстановить работающий гном можно опять запустив систему в рутовую консоль, выполнив “Xorg -configure” и заменив полученным файлом /etc/X11/xorg.conf.

Можно еще освободить немного места на диске, деинсталлировав драйвер, командой /usr/share/ati/fglrx-uninstall.sh.

После всех этих мытарств “починить” Ubuntu было делом двух минут, пришлось запустить “Xorg -configure” и перезагрузиться. Драйвер с сайта ATI тут поставился и заработал без проблем.

В конце эксперимента я решил также поставить драйвер ati и в OpenSUSE. Этого делать определенно не стоило, поскольку этим я совершенно вывел графику из строя. Теперь у меня есть только консоль, и привычная команда Xorg -configure падает с ошибкой 11 (что бы это ни означало). Таким образом, у меня нет работающего “xorg.conf”, а новый мне не создать. Поиски в интернете уверяют в том, что решение есть, но в этот раз ни одно из них мне не помогло, включая установку заголовочных файлов и исходников ядра и попытку собрать драйвер на этой же машине.

Выводы отсюда получаются неутешительные. Только Mandriva прилично пережила апгрейд видеокарты, остальные же системы сразу “сломались”. Хуже всего то, что для решения подобных проблем вам скорее всего понадобится другая работающая машина (или соседняя работающая операционка на той же машине).

Неприятным сюрпризом оказалось полное отсутствие драйвера ATI для FreeBSD, а также абсолютно нерабочее его состояние в системах OpenSUSE и Fedora. Ubuntu и Debian можно вернуть к жизни, и драйвер тут работает, но в данном конкретном случае Mandriva все же впереди.