LINUX.ORG.RU

Загрузка nvdiafb и nouveau после их runtime выгрузки.


0

2

Имею видеокарту geforce 8200m. Добавил nvidia драйвер в blacklist. В menu.lst используется пункт:

kernel /boot/kernel2.6-38 video=nvidiafb:mtrr:3,ywrap root=/dev/sda3 quiet

Загружается система в текстовом режиме, udev подгружает драйвер nouveau, видеокарта переключается в разрешение побольше, включается фрейбуффер(nvidiafb). Всё работает хорошо.

Чтобы включить иксы использую следующий скрипт:

#!/bin/bash

#vbetool vbestate restore echo 0 > /sys/class/vtconsole/vtcon1/bind

rmmod nouveau

/etc/init.d/consolefont restart

rmmod ttm

rmmod drm_kms_helper

rmmod drm

modprobe nvidia

Nouveau радостно выгружается, видим черный экран. Пишем startx ^m получаем работающие иксы.

Вопрос — как теперь отрубить официальный драйвер и включить nouveau для обратного перехода в красивую и хорошую фреймбуфферную консоль?

P.S. Linux Zen 2.6.38-gentoo #1 Tue Mar 29 01:26:58 MSD 2011 x86_64 AMD Sempron(tm) SI-42 AuthenticAMD GNU/Linux если это важно.

★★★★★

Последнее исправление: e7z0x1 (всего исправлений: 2)

>modprobe nvidia

А иксы при старте сами его не загрузят?

Вопрос — как теперь отрубить официальный драйвер и включить nouveau для обратного перехода в красивую и хорошую фреймбуфферную консоль?


Выгрузить nvidia и загрузить nouveau?

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

Разумеется нет! Раз я добавил его в blacklist. Ты не понял по-моему. Я добавляю nvidia в blacklist. Делать нечего — приходится udev грузить nouveau. Получаю правильную быструю консоль. Делаю вышенаписанные манипуляции, получаю иксы.
Короче мне надо чтобы в иксах было nvidia, а в консоли nouveau. Из фрейбуффера в X переход получился(я отрубил nouveau, врубил nvidia). Теперь нужен обратный переход. Nvidia -> Nouveau

Выгрузить nvidia и загрузить nouveau?

Именно. При переходе обратно в консоль(Mod1+Control+F2), например.

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

А, не понял вопроса, конечно не загрузят. Nouveau у меня в xorg.config нет. У меня там Nvidia. Да он мне в иксах и не нужен. Эти два драйвера конфликтуют между собой, потому что обслуживают одно и то же устройство. Нужна операция, обратная той, что я проделал.

e7z0x1 ★★★★★
() автор топика

А чем не устраивает вариант с nvidia в X'ах и vesafb в консоли?

video=vesafb:ywrap,mtrr:3 vga=0x37B rdblacklist=nouveau
Вместо vga=0x37B можно прописать разрешение Вашего монитора или близкое к нему. У меня, например, при таком раскладе на дисплее 1366x768 пкс. разрешение 1280x720.

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

А, так не устраивает тем. что оно во много раз медленнее, чем то что я написал. Через nouveau. Кстати зачем ты мне записал добавление в blacklist nouveau, да ещё и через initramfs, я, честно говоря не понял. (оно вроде бы у меня udev'ом подхватывается) Я торможу?

Кстати оно разве работает через hex-константы? Я думал, что только dec. В последний раз когда я так делал у меня ничего не загружалось.

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

Так-с... По порядку:
1. «Оно медленнее» - что оно?
2. nouveau блэклистится, чтобы оставался всего один драйвер для X'ов - nvidia (да, требуется пересборка initramfs, чтобы не париться с конфигами).
3. про hex/dec не скажу, ибо не кодер (напишу вновь: я и по образованию, и по работе - энергетик, РЗА-шник).
4. Чтобы «всё загружалось», нужно сначала установить драйвер nvidia, затем заблэклистить nouveau в /boot/grub/grub.conf, или где оно там в Вашем дистре (вместе с прописыванием остальных параметров), потом обновить initramfs.
Как говорится, УМВР.
P.S.: Fedora (RFR14).

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

Блин)) У меня всё тоже работает. И переход обратный есть. Только нету в нём фреймбуффера. Потому что я не придумал как убрать nvidia и поставить nouveau обратно после того как исполняется скрипт что я написал, иксы были загружены. Короче хочу иметь возможность вернуться в фреймбуффер nouveau, отрубить nvidia при необходимости вернуться в голую консоль.

1) vesafb медленнее, чем то, что предлагает nouveau. Кстати я если честно сам не понял пока что там оно включает.

Как я только что обнаружил, дело в том, что игнорируются всё что написано в параметрах ядра для графики. То есть хоть вообще без параметров сначала грузится vga режим(текстовый), потом после инициализации udev происходит переключение в родное разрешение моего ноута(1366x768), которое недостижимо прочими способами типа uvesafb и другими, по крайнейм мере у меня не вышло.

2) Ты не понял!)) У МЕНЯ ВРУЧНУЮ ЗАБЭКЛИСТЕН NVIDIA. То есть если blacklist nvidia убрать, то nouveau не загрузится. Проблемы-то нет. Загрузка иксов есть через тот скрипт что я дал. Он придуман __специально__, не потому что я не в состоянии пересобрать initram, а потому что мне так надо. Надо потому что в nouveau очень хорошая консоль, в то время как родной фреймбуффер — лажа.

3) Я имел в виду десятичную и шестнадцатеричную систему счисления. Нас этому учили уже в школе.

В народе считается, как я понял, что эти два драйвера принципиально не могут существовать вместе. Это так. Но мне удалось выгрузить nouveau _специально_именно_для_включения_иксов_.

То есть мне надо nouveau в консоли и nvidia в Xorg.

А, ну да, мне бессмысленно оставлять один драйвер для иксов. Потому что в конфиге и так только nvidia))

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

Идея, конечно, прикольная. Вот только я не представляю, как можно при простом переключении по Ctrl+Alt+F{2;7} выгружать из памяти один драйвер (читай, модуль ядра) и переключаться на другой: это ж автоматический крах X-сессии (если вообще это возможно реализовать). Ведь nvidia и nouveau работают в разных режимах (читай, в разных уровнях памяти). И не зря блэклистят nouveau при использовании nvidia, либо выставляют nouveau.modeset=0, тем самым отрубая KMS для последнего. Они [nvidia и nouveau] малость по-разному работают и требуют для своей корректной работы различные режимы.
Как-то так.
P.S.: Что значит «vesafb медленнее, чем то, что предлагает nouveau»? Что в консоли нужно ускорять? 3D или декодирование видео? Зачем?

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

>(читай, в разных уровнях памяти)

Што.

P.S.: Что значит «vesafb медленнее, чем то, что предлагает nouveau»?

На некоторых картах vesa-режим тормозный. Очень. Настолько, что неудобно пользоваться mc или less.

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

На некоторых картах vesa-режим тормозный. Очень. Настолько, что неудобно пользоваться mc или less.

ЕМНИП на всех nvidia начиная с восьмой серии.

Deleted
()
Ответ на: комментарий от anonymous

anonymous

>(читай, в разных уровнях памяти)
Што.

Какбэ вот

anonymous

На некоторых картах vesa-режим тормозный. Очень. Настолько, что неудобно пользоваться mc или less.

mironov_ivan

ЕМНИП на всех nvidia начиная с восьмой серии.

Спорить не буду, но у меня ION (9400M) и GTS 250 - не чувствую разницы по скорости в консолях на vesafb и nouveau (да и vesafb - не совсем-таки vesa, ЕМНИП).

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

Конечно, я могу ошибаться, но ЕМНИП, как раз организация видеорежимов у nvidia и nouveau работает в разных областях (в отличие от модулей ядра, которые, в любом случае, работают в одинаковых кольцах).
Хотя... Всё равно, к теме этого трэда это никак не относится, да.
Собственно, мысль была такова: не надо пытаться использовать и nvidia, и nouveau одновременно.

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

Тьфу. Я ступил. Не одновременно, а по отрубанию X-сессии тогда. Просто я сам думал что иначе вряд ли получится.

На некоторых картах vesa-режим тормозный. Очень. Настолько, что неудобно пользоваться mc или less.


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

Что в консоли нужно ускорять?

Всё) Кроме того я бы не отказался от bootsplash и обоев. Говорить про то как это работает на моей карте в vesa лучше не буду, а то забанят за мат, чего доброго.

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

Больше сказать ничего не могу, за сим откланяюсь.
P.S.: Plymouth отлично работает и с vesafb.

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

А, ум, то есть ты хочешь сказать что они в разных кольцах? Не знал, честно говоря. Хотя я вообще с nouveau ранее не работал, если честно. Что такое разные области я не очень понимаю. Для 32битных систем адресное пространство обычно делится надвое. Для 64битных обычно на много частей. По крайней мере так в винде. Как в лине, честно говоря не знаю(пока не ковырял его ядро), но видимо похожим образом.

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

>>Plymouth отлично работает и с vesafb.
Да, только машина Беббиджа 1906 года и то быстрее работает :D

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

Повторюсь, я не кодер, но стараюсь быть в курсе. Я не говорю, что это абсолютная «истина во языцах» =] Но просто как иначе трактовать понятия Kernel-space_ModeSettings (KMS) и User-space_ModeSettings(UMS)?
В nouveau используется KMS, в nvidia - UMS.

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

На твоей карте, видимо, да. На моей radeon 9700 которая на большом компе тоже всё хорошо.

А, ну да. Я почитал, вроде бы kms относится к заданию режима. Драйвера, ясен барабан в ring 0, как я понимаю. Ну, я думаю, что так в лине. Вообще есть такая вещь как user-space драйвера, но это тут не при чем по-моему.

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

Вот и мне думается примерно так же =)
Ладно, пойду-ка я Crysis2 под wine'ом погоняю. Пятница, всё-таки.

carasin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.