Saturday, October 6, 2007

Встановлення драйвера NVIDIA на систему Fedora 7

Нарешті в мене руки дійшли встановити на свою Fedora драйвери для відео картки. А починалося все з того що я вирішив змінити Fedora Core 6 на Fedora 7.
Спочатку я спробував встановити драйвер з репозитарію rpm.livna.org. Мої спроби встановити драйвер виглядали так:
спочатку я підключив беспосередньо сам репозитарій Livna:
rpm -Uhv http://rpm.livna.org/livna-release-6.rpm

тепер перевіряєм чи є в цьому репозитарії те що нам треба:

yum info kmod-nvidia


оскільки відповідь послідувала що такий пакет існує в репозитарії то я виріши його встановіти.

yum install kmod-nvidia

Попутно пакет kmod-nvidia ще якийсь пакет точно вже не пам'ятаю. Після того як ці два пакета встановились я перезавантажую Хwindow шляхом натискання Ctrl+Alt+Backspace. Пылся перезавантаження я перевіряю запряцював драйвер чи ні

glxinfo | grep direct
і результат повинен був бути такий
direct rendering: Yes
але я отримав:
direct rendering: No

що означає що драйвера не стали.

Щоб впевнитись що спарвді все так погано я вирішив перезвантажити робощу станцію.
Під час перезавантаження я побачив чому rendering не включився. Виявилось, що ці дрова взагалі не стали вилітали помилки якраз на цей драйвер.
Пілся деяких митарств по інету в чому мені допоміг Google (без нього взагалі ніяк) я зрозумів що драйвер який мені встановив rpm.livna.org занадто новий, оскільки в мене відео карта GeForce2 MX400 яка вже напевно раритет:). Діватись небуло куди я поліз на сайт Nvidia і почав там шукати необхідний драйвер. В dmaseg я знайшов на що відругалась система вона конкретно говорила що шановний пане ваша відео карта підтримує тількі драйваре з серії 96.хх, а в мене rpm.livna.org встановила 100.хх. Тому я прийняв рішення про деінсталяцію занадто нового драйвера і встановленню більш старшого. Але тут виявилась невеличка проблема, kmod-nvidia нехотів видалятись він залежив від того пакета який kmod-nvidia поятгнув за собою, а відповідно той пакет не хотів видалятись тому що залежив від kmod-nvidia, я есь мучався хвилин 20-30. Рішення просто було просте і в одночас геніальне за допомогою команди:

rpm -e xorg-x11-drv-nvidia-100.14.19-2.lvn7 kmod-nvidia-100.14.19-1.2.6.22.9_91.fc7

Система сама якось з ними домовляется івидаляє ці пакети.

Але щастя ще не настало коли я спробував встановити драйвера скачені з офіційного сайту Nvidia знову почала ругатись. Логи драйверів я знайшов ось тут:

/var/log/nvidia-installer.log

в логах драйвер мені говорив що потрібно встановити кампілятор!!! Я був у шоці, але я згада таку особливість проекту Fedora. Під час інсталяції операційної системи інсталятор запитує як ви будете користуваться компьютером і дається три варіанти:

1. Сервер
2. Компьютер для розробки програмного забезпечення
3. Робоча станція
так ось я вибрав "Робочу станцію". А це означає що не ставиться копилятор, жодного серверно програмного забезпеченя, дивна особливість, хоча це експерементальна платформа для комерційної Red Het interprize, тому можливо це і є нормальна ситуація:)
За допомогою команди:

yum install gcc
Я встановив компілятор і виріши що я зараз отримаю бажаний результат. Але була ще одна перешкода.
Справа в тому що драйвера nvidia щось там копилюють здається модуль до ядра. Так ось у мене небуло ісходного коду ядра системи навіщо на звичайній робочій станії компілятор, так напевно думали проєктанти Fedora, тому потрібно теж встановити код ядра, а робиться це так:

yum install kernel-devel
так було встановлено що необхідно для поного щастя драйверів. І я нарешті зміг запустити цей триклятий драйвер, для його встановлення треба було перейти на третій рівень режимузагрузки де X server не працює, це робиться командою

init 3

а повернутись до 5 рівня де Х сервер процює робиться відповідно за допомогою

init 5


sh *.run --x-module-path=/usr/lib/xorg/modules
Для того щоб ці драйвера запустились необхідно було змінити один параметр в файлі:

/etc/x11/xorg.conf
Саме в цій секції треба було "nv" замінити на "nvidia"

Section "Device"
Identifier "Videocard0"
Driver "nvidia"
EndSection

Але драйвер це сам зробив, він навіть в мене запитав чи він може сам змінити чи можливо я цьго сам захочу копирсатись я далі не хотів тому я йому дозволив.