LINUX.ORG.RU
ФорумTalks

[amd64][история успеха]Консольный VESA-режим на FreeBSD

 ,


0

1

1. Добавить:

    options         SC_PIXEL_MODE
    options         VESA
в конфигурацию ядра. Ядро собрать. Проинсталлить.

2. Добавить в /etc/rc.conf.local:

allscreens_flags="MODE_292"
и перезагрузиться.

Работает на FreeBSD 8.1-STABLE amd64.

★★★★★
Ответ на: комментарий от devl547

Заметь, не без изящества: всего три строчки в два конфига дописать и перекомпилировать ядро.

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

>Я про [amd64].

А, ну я не в курсе, не пользуемся. Хотя не вижу причин, почему это не должно было работать на амд64.

BSD
()

>/etc/rc.conf.local

Жуть какая

>Добавить ... в конфигурацию ядра. Ядро собрать. Проинсталлить.

комменарий с датой в тему, кстати. :}

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

>Как всё запущено-то...
Ага, запредельно изящно!

xtron
()

А в чем радость то? Не, компилянье должно быть выведено в дополнительные опции

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

Стандартная процедура, ну. Косыков не может быть в принципе. Если опечатаешься, ядро не соберётся и не установится, останешься со старым рабочим. Графический режим включается только после прогрузки системных демонов и демонов приложений — то есть неправильный MODE_ можно отключить в Single User Mode и, прогрузившись в обычную текстовую консоль, написать правильный MODE_, выбрав из вывода «vidcontrol -i mode» подходящий номер.

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

А, ну я не в курсе, не пользуемся. Хотя не вижу причин, почему это не должно было работать на амд64.

В VESA почти вся работа с видеокартой происходит через специальные прерывания VBE (Video BIOS Extensions). А этот самый VBE - это кусок BIOS'а который мало того, что существует только под x86, так ещё и весь 16-разрядный. На amd64 в защищённом режиме его сложно заставить работать, для этого нужны определённые костыли. В этих наших лялексах написали целую виртуальную машину - v86d, которая крутится в юзерспейсе и обеспечивает эмуляцию VBE для внутриядерного драйвера uvesafb.

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

Графический режим включается только после прогрузки системных демонов и демонов приложений

Ууу... Это просто несерьёзно.

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

На amd64 в защищённом режиме его сложно заставить работать, для этого нужны определённые костыли. В этих наших лялексах написали целую виртуальную машину - v86d, которая крутится в юзерспейсе и обеспечивает эмуляцию VBE для внутриядерного драйвера uvesafb.

OH SHI~ Я ж теперь не усну :(

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

>>В VESA почти вся работа с видеокартой происходит через специальные прерывания VBE (Video BIOS Extensions). А этот самый VBE - это кусок BIOS'а который мало того, что существует только под x86, так ещё и весь 16-разрядный. На amd64 в защищённом режиме его сложно заставить работать, для этого нужны определённые костыли. В этих наших лялексах написали целую виртуальную машину - v86d, которая крутится в юзерспейсе и обеспечивает эмуляцию VBE для внутриядерного драйвера uvesafb.


а я думал просто используется virtual 86 mode

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

Это просто несерьёзно.

Дык, консоль графическая везде на всех экранах F1-F8. Slim/Xfce4 на F9. Что «несерьзно»?

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

uvesafb

Хм.

┌[~] 
└> lsmod | grep vesa 
┌[~] 
└> grep VESA /boot/config-2.6.26-2-amd64  
CONFIG_FB_UVESA=m 
CONFIG_FB_VESA=y 
┌[~] 
└> uname -m 
x86_64 
┌[~] 
└> grep ^vga /etc/lilo.conf  
vga=794 

Точно?

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

Что «несерьзно»?

То что

Графический режим включается только после прогрузки системных демонов и демонов приложений

У меня почему-то сразу, как только загрузчик отдаёт управление ядру.

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

>>У меня почему-то сразу, как только загрузчик отдаёт управление ядру.

это у тебя скорее всего вкомпиленный vesafb. я предпочитаю родной radeonfb который собственно подгружается modprobe как только становится доступен /

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

Не в тему, но всё же.

шел 21 век..

btrfs в grub2 ubuntu — в Linux до сих пор нужен /etc/fstab? На ZFS без этого файла вполне можно обойтись — для ZFS он не нужен. HAL/PolicyKit для автомонтирования носителей без него тоже работают. Файловая система /proc небезопасна, чтобы под неё писать строчку. Остаётся линуксулатор, для которого нужена:

linprocfs   /compat/linux/proc   linprocfs   rw   0  0

Шёл 21 век...

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

Драйвера vesafb u vesafb по разному работают.

Драйвер vesafb работает с VBE только пока ядро не переключило процессор в защищённый режим: он сразу инициализирует VESA и оставляет замапленные участки видеопамяти для дальнейшего использования. В защищённом режиме он просто обеспечивает доступ к этим участкам видеопамяти из ядра и через /dev/fbN. Отсюда его недостатки:

  • После загрузки системы невозможно сменить видеорежим, т.к. это требует вызова VBE, который, как я и сказал выше, невозможен из protected mode.
  • Невозможно собрать и использовать vesafb как модуль ядра, это просто бессмысленно.
  • Смотри Documentation/fb/vesafb.txt и Documentation/fb/uvesafb.txt =).

Драйвер uvesafb лишён этих недостатков и поддерживает дополнительные фичи, которые возможно получить только взаимодействием с VBE во время работы системы.

Deleted
()
Ответ на: Только в путь. от iZEN

Ну, ee выкидывать не стоит, хоть что-то немного похожее на нечто человеческое из коробки. А по поводу десктопа - это уж толстовато. Уж не знаю готов ли хоть один дистрибутив BSD, но уж free-то точно нет. :}

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

Невозможно собрать и использовать vesafb как модуль ядра, это просто бессмысленно.

Небольшая поправочка: его оказываетмя всё-таки можно собрать модулем, но основной код (работа с VBE) всё-равно будет статически вкомпилен в ядро.

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

После загрузки системы невозможно сменить видеорежим

Смотри Documentation/fb/vesafb.txt и Documentation/fb/uvesafb.txt =).

Да-да, это я как-то читал... Решил, что для меня это не такой уж и недостаток, и не стоит себе морочить голову с uvesafb. Спасибо за разъяснение.

GotF ★★★★★
()
Ответ на: Не в тему, но всё же. от iZEN

> в Linux до сих пор нужен /etc/fstab? На ZFS без этого файла вполне можно обойтись — для ZFS он не нужен.

Откула ZFS в FreeBSD? %)

HAL/PolicyKit для автомонтирования носителей без него тоже работают.

А HAL/PolicyKit а FreeBSD откуда? :D

Вот и получается, что «родной» в FreeBSD только VESA, а как он работает - см. выше %)

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

>Заметь, не без изящества: всего три строчки в два конфига дописать и перекомпилировать ядро.

Сам себя троллишь?

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

Вылез один косяк. Что думаешь, All?

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

Логин в Xfce4 из slim происходит успешно. Работа в GUI тоже без нареканий, а вот дальше происходит удивительное: при попытке переключиться на консольный экран (Alt+Ctrl+F2, например) происходит переключение на чисто текстовую консоль с неправильными атрибутами текстовых символов: сквозь пелену промигивающих службных надписей удаётся залогиниться root'ом, использовать консольные команды, но весь вывод вместе с промптом сдвигается куда-то вниз за край экрана и потом уже невозможно с этим работать. Обратное переключение в графический экран (Alt+F9) представляет Рабочий стол Xfce4 с артефактами, хотя значки работают, приложения запускаются без проблем.

В общем, чувствуется, что vesa-драйвер не может инициализироваться правильно из-за запуска slim, который, в свою очередь, прогружает модуль ядра radeon.ko для полноценной поддержки Xorg-драйвера xf86-video-ati. В итоге мне нужно либо отказаться от графической консоли, либо от менеджера графического входа в систему (slim).

Интересно, есть ли возможноть вместо VESA использовать radeon.ko? Кажется последний перекрывает возможности VESA, но будет ли он работать в специфичном режиме?

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

Ну всё винде теперь точно капец!1111111

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

>>А если я не хочу компелять, а использовать бинарные апдейты?

Тада ты не наш.


Т.е. freebsd-update использовать рассово-неверно?

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

>а я думал просто используется virtual 86 mode

он не доступен из длинного режима

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

Т.е. freebsd-update использовать рассово-неверно?

В GENERIC ядре опция options SC_PIXEL_MODE не включена. А без неё vesa-режим невозможен.

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

>иногда он конфликтует с иксовым

Открытые дрова - один и тот же драйвер для fb и X.

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

Хорошо, что у нас нет винды

А вот это плохо — вы не сумеете отловить все баги своего загрузчика и не перетянете критическую массу пользователей (нужно хотя бы 15%), чтобы началась массовая давка миграция на Гнулинукс. Будете и дальше прозябать со снобическими 4-5%, не лучше.

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