графическая консоль

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
iZEN
ст. лейтенант
Сообщения: 1095
Зарегистрирован: 2007-09-15 16:45:26
Контактная информация:

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение iZEN » 2009-08-15 16:00:28

paradox писал(а):
iZEN писал(а):А что если сделать драйвер графической консоли, совместимый по вызовам с Xlib?
Тогда можно было бы обойтись БЕЗ xorg-server, а графические программы и DE не требовали бы установки Xorg!! Постепенно приходим к пониманию ненужности Xorg на десктопе... :drinks:
я уже давно этого хочу
но графическая система на vesa будет работать как xorg на vesa
тоесть от большенства вкусностей ввиде композита и ускорее которое любит лисяра придеться отказаться))

хотя может в далеком будущем drm сделают так что бы он вслучае поддержки перехвачивал vesa драйвер
тогда да)) будет ускореение
Да пусть как vesa работает. Главное чтобы работало.

Идея: пусть ядерный модуль (допустим graph.ko) предоставляет математическую модель дисплея (плоское 2D-пространство и цветовую модель RGB, CMYK или LAB), и все программы работают ТОЛЬКО с ним. То есть бэкэнд для Xlib-вызовов из программ. А модуль vesa.ko по прерыванию брал бы математическую модель 2D-пространства и преобразовывал бы его в аппаратное представление стандарта VESA и занимался непосредственно отрисовкой на дисплее. Другие модули (модули видеокарт, для аппаратной акселерации) тоже бы использовали представление математической модели модуля graph для уже аппаратной визуализации 2D-сцены. Таким образом код разделяется на независимую реализацию часть (модуль graph.ko) и аппаратно-зависимую (vesa.ko и модули конкретных видеокарт). :drinks:

Главное, чтобы оно начало работать.
Так что делайте модуль vesa.ko с прицелом на будущее — в будущем vesa.ko после рефакторинга может/должен разделиться на аппаратно-независимую часть graph.ko и аппаратно-зависимую часть vesa.ko для упрощения портирования драйверов видеокарт. ;-)
Последний раз редактировалось iZEN 2009-08-15 16:10:18, всего редактировалось 6 раз.
GNU/Linux — это не Unix и даже никогда им не был, и, что самое смешное, никогда им не станет — GNU's Not Unix

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-15 16:06:18

))) ну ты это сказал тоже самое что и я

кстати если реализовать такой graph.ko
то drm отпадает как таковой
потому как все драйвера перейдут в пространство драйверов fb
там уже все хуки которые нужны существуют

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-15 16:08:17

Так что делайте модуль vesa.ko с прицелом на будущее — в будущем vesa.ko после рефакторинга может/должен разделиться на аппаратно-независимую часть graph.ko и аппаратно-зависимую часть vesa.ko
так он уже разделен изначально
токо дров fb* никто не писал
а шаблон готов давно
просто писать для каждой видеокарты fb драйвер сложновато и емко
пересчитай скоко драйверов под xorg для видео)) вот их все нужно реализовать

Гость
проходил мимо

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение Гость » 2009-08-15 23:48:44

paradox писал(а):то прочухаються с этим драйвером и уже нормально в ядре все сделают сами
учитывая что x86emu будут использовать не только vesa.ko, но и всякие nouveau.ko (с новым консольным драйвером, в коем будет KMS), неплохо бы выделить эмулятор в отдельный модуль x86emu.ko как это сделано с opensolaris.ko.
paradox писал(а):более того я уже думаю что если поколупаться в коде то можно сделать и графическую консоль когда бсд грузиться
как в линуксе сделано
это надо loader(8) колупать. Кое-какой графический режим есть в Graphics support for the boot loader
_Andy писал(а):Все-таки стремно графику в ядро пихать. Если какая нибудь херь завесит Xorg-server, то
его можно убить по ctrl-alt-del.
если зависнет (или паника) ядро, когда запущены иксы, то тя просто перезагрузит. А с KMS тебе просто выкинет в ddb(4).

Гость
проходил мимо

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение Гость » 2009-08-15 23:52:44

кстати, полагаю на начальном этапе можно сделать KMS на базе vesa.ko и xf86-video-vesa.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-15 23:55:29

лоадер я сдеал там две строчки поправить
и консоль переключаеться в графику
но
все что начиает выводить белым ярким цветом
тоесть когда уже грузиться ядро начиная с надписи фрибсд копирайт итд
там уже выводит на консоль vesa & syscons
его то и колупаю
что то там не так

хотя если кто помнить есть еще сплеш картинка
так вот кому интересно могут ее поставить)) там бмп или пцикс

вотиз кмс?
к томуже не нам решать как делать))мы токо можем для себя сделать

_Andy
проходил мимо

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение _Andy » 2009-08-16 7:14:10

paradox писал(а):лоадер я сдеал там две строчки поправить
и консоль переключаеться в графику
Дай, пожалуйста потестить!
paradox писал(а): но
все что начиает выводить белым ярким цветом
тоесть когда уже грузиться ядро начиная с надписи фрибсд копирайт итд
там уже выводит на консоль vesa & syscons
его то и колупаю
что то там не так
Хотеть увидеть!

Гость
проходил мимо

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение Гость » 2009-08-16 8:02:51

Кстати, у мя переключение с графического режима на текстовый работает, но только на первой виртуальной консоли (/dev/ttyv0).

Код: Выделить всё

vesa.c:374:41: warning: if statement has empty body [-Wempty-body]
        if ((vesa_emu.x86.R_AX & 0xff) != 0x4f);
                                               ^
vesa.c:399:41: warning: if statement has empty body [-Wempty-body]
        if ((vesa_emu.x86.R_AX & 0xff) != 0x4f);
                                               ^
это случаем не опечатка? если нет, то там дальше получается 2 return'а подряд

Код: Выделить всё

--- vesa/vesa.c~
+++ vesa/vesa.c
@@ -371,7 +371,7 @@ vesa_bios_get_dac(void)
 
 	x86emu_exec_intr(&vesa_emu, 0x10);
 
-	if ((vesa_emu.x86.R_AX & 0xff) != 0x4f);
+	if ((vesa_emu.x86.R_AX & 0xff) != 0x4f)
 		return 6;
 
 	return ((vesa_emu.x86.R_EBX >> 8) & 0x00ff);
@@ -396,7 +396,7 @@ vesa_bios_set_dac(int bits)
 
 	x86emu_exec_intr(&vesa_emu, 0x10);
 
-	if ((vesa_emu.x86.R_AX & 0xff) != 0x4f);
+	if ((vesa_emu.x86.R_AX & 0xff) != 0x4f)
 		return 6;
 
 	return ((vesa_emu.x86.R_EBX >> 8) & 0x00ff);

Код: Выделить всё

x86emu_util.c:10:9: warning: 'htole16' macro redefined
#define htole16(x) (x)
        ^
In file included from x86emu_util.c:6:
In file included from ./x86emu.h:10:
@/sys/endian.h:66:9: note: previous definition is here
#define htole16(x)      ((uint16_t)(x))
        ^
x86emu_util.c:11:9: warning: 'htole32' macro redefined
#define htole32(x) (x)
        ^
In file included from x86emu_util.c:6:
In file included from ./x86emu.h:10:
@/sys/endian.h:67:9: note: previous definition is here
#define htole32(x)      ((uint32_t)(x))
        ^
x86emu_util.c:12:9: warning: 'htole64' macro redefined
#define htole64(x) (x)
        ^
In file included from x86emu_util.c:6:
In file included from ./x86emu.h:10:
@/sys/endian.h:68:9: note: previous definition is here
#define htole64(x)      ((uint64_t)(x))
        ^
может все-таки лучше использовать что-то вроде..?

Код: Выделить всё

#include <sys/endian.h>
#ifdef __FreeBSD__
#define letoh16 le16toh
#define letoh32 le32toh
#define letoh64 le64toh
#define betoh16 be16toh
#define betoh32 be32toh
#define betoh64 be64toh
#endif
Ну а об этих я думаю ты в курсе

Код: Выделить всё

vesa.c:903:15: warning: incompatible pointer types passing
      'struct vesa_info *', expected 'u_char *'
                dump_buffer(&buf, sizeof(buf));
                            ^~~~
vesa.c:1356:23: warning: incompatible pointer to integer conversion assigning
      'unsigned char *', expected 'vm_offset_t' (aka 'unsigned long')
                vesa_adp->va_window = (emumem+L_ADD(info.vi_window));
                                    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vesa.c:1976:17: warning: incompatible pointer to integer conversion passing
      'unsigned char *', expected 'vm_offset_t' (aka 'unsigned long')
                pmap_unmapdev(emumem, 0xc00000);
                              ^~~~~~

_Andy
проходил мимо

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение _Andy » 2009-08-16 9:16:29

Объясните пожалуйста, что значит в С следующая конструкция:

Код: Выделить всё

что-то->что-то


paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-16 9:53:19

ну да с ретурнами в я протупил
точки с запятыми нужно поубирать
а во всем остальном там компилер токо ругаеться
фиг с ним
собирает то он все равно один и тот же код в асме
тоесть при дизасме оно одно и тоже
Дай, пожалуйста потестить!
та ну брось
что там тестить
графический бут лоадер?
там токо одна строка которая переводит и делает тот бут лоадер что ты видишь в разрешение 800x600

Код: Выделить всё

Хотеть увидеть!
не понять что именно))))

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-16 10:06:30

но
все что начинает выводить белым ярким цветом
тоесть когда уже грузиться ядро начиная с надписи фрибсд копирайт итд
там уже выводит на консоль vesa & syscons
его то и колупаю
что то там не так
имелось ввиду надо понять как это заставить выводить в графике
потому и колупаю
но думаю брошу
буду броадком писать

а ретурны в дакпалитрах особой роли не играют
хотя поправлю щас

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-16 10:17:38

может все-таки лучше использовать что-то вроде..?

#include <sys/endian.h>
#ifdef __FreeBSD__
#define letoh16 le16toh
#define letoh32 le32toh
#define letoh64 le64toh
#define betoh16 be16toh
#define betoh32 be32toh
#define betoh64 be64toh
#endif
та там оно потом в другом месте требуеться
или что то типа того
все равно код тестовый пусть валяеться)))
не для продакшина ж

там по умному вообще нужно многое не так сделать
мапинг биоса нужно скопировать в выделеную память ,перемапить в страницы и установить в ней атрибуты
ну итд

а насчет того почему оно глючит ине переключаеться обратно с иксов
это глюки страниц где то в vm
они там скорее всего где то пересекаються они или что то типа того
на оригинальной весе в i386 оно точно так же глючит
хотя возможно на родных nvidia дровах под иксами нормально работает
проверить как нибудь надо будет...

Гость
проходил мимо

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение Гость » 2009-08-16 10:21:29

paradox писал(а):та ну брось
что там тестить
графический бут лоадер?
там токо одна строка которая переводит и делает тот бут лоадер что ты видишь в разрешение 800x600
Хочется поглядеть на графический бутлоадер. Как это реализовать в семерке?

_Andy
проходил мимо

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение _Andy » 2009-08-16 10:29:08

paradox писал(а): собирает то он все равно один и тот же код в асме
тоесть при дизасме оно одно и тоже
Ты IDA дизасмишь?

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-16 10:35:36

нуда ida

обновил vesa.tar.bz2
в нём ретурны пофиксил
и дебаг отключил что бы не плевалось в консоль

позже наверное почищу код от старых вызовов vm86

кстати по большому счету он уже в i386 архитектуре и не нужен(можно смело вырезать но уже не нам решать) когда есть емулятор

_Andy
проходил мимо

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение _Andy » 2009-08-16 10:43:49

paradox писал(а):нуда ida
Версия какая?
paradox писал(а): обновил vesa.tar.bz2
в нём ретурны пофиксил
и дебаг отключил что бы не плевалось в консоль
позже наверное почищу код от старых вызовов vm86
кстати по большому счету он уже в i386 архитектуре и не нужен(можно смело вырезать но уже не нам решать) когда есть емулятор
То есть можно качать и смело собирать? :)
Как бутлоадер в графическом режиме сделать?

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-16 10:47:03

вообщем из того что я надумал
это реально можно сделать мини GUI в ядре
переместив туда все базовые примитивы и обработку окон

написать мини фиксы для qt и gtk
и все программы их использующие будут работать

все программы что используют напрямую XLib библиотеку и их вызовы работать не будут
как то так...
тогда в принципе из портов можно мысленно вырезать x11-drivers x11-servers x11-wm

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-16 10:49:23

такая же как и на паблике 52
То есть можно качать и смело собирать?
ну для 7 у тебя там свой патч
Как бутлоадер в графическом режиме сделать?
он без перевода самого ядра в графический режим для вывода бутлога будет глючить тоесть небудет видно самого бутлога
поэтому пока не разберусь как сам бутлог вывести в графике спешить не будем

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-16 10:59:47

Гость писал(а):кстати, полагаю на начальном этапе можно сделать KMS на базе vesa.ko и xf86-video-vesa.
теоретически можно сделать драйвер котрый будет цеплять /dev/fb
и иксы буду работать уже на этом vesa

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-16 13:14:32

вот что rnoland@ пишет о текущем драйвере[1]

As far as KMS goes, I anticipate much of the code for
Intel/Radeon/Nouveau to be fairly portable. The tricky part is figuring
out how to hook it into our console rendering code, which I still don't
fully understand. We will also need to figure out how to handle
hardware that we don't have KMS support for.

[1] http://docs.freebsd.org/cgi/mid.cgi?124 ... 0.28.camel

Ключевая фраза - "don't fully understand". Syscons славится своейg запутанностью, как когда-то славился старый слой TTY.

ed@ упоминает KMS на второй страничке своего гранта
http://docs.google.com/gview?q=cache:rd ... yscons.pdf
вово
запутан немного
чуть чуть раскурил
но кто и как выводит на консоль бутлог
пока что непонятно

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-16 13:29:38

смотря на это у меня очень большие сомнение в том что именно ed@ сможет реализовать новый syscons драйвер

The tricky part is figuring
out how to hook it into our console rendering code, which I still don't
fully understand. We will also need to figure out how to handle
hardware that we don't have KMS support for
они гонят
никогда бы не подумал что роланд так может сказать

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение terminus » 2009-08-16 14:06:02

paradox, тебя в коммитеры надо двигать :smile: тогда во фришке все наконец работать будет! :good:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-16 14:08:48

drm с syscons вообще никак не связываються и их ненадо всязывать
это разные сущности

приблизительный расклад как сделано в винде

[картинка]

VideoDriver это dll файл
VideoDriver Cmd это sys файл

если сравнивать с drm
то drm это фактически реализация sys файла тоесть базовых комманд
и частично dll драйвер это базовые примитивы
Вложения
guisys.JPG

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: RELENG_8, или /stable/8 ответвился

Непрочитанное сообщение paradox » 2009-08-16 14:23:19

terminus писал(а):paradox, тебя в коммитеры надо двигать :smile: тогда во фришке все наконец работать будет! :good:
ненадо меня никуда двигать))
я инглыш плохо знаю
и код пишу другой не style(9) или как оно там))
к томуже я C++ люблю
а в ядре его досих пор не разрешили
ну итд куча других отмазок)