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

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

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Гость
проходил мимо

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение Гость » 2009-09-11 13:27:45

paradox, ты получил на мыло баг репорт о проблеме с цветами? Если использовать 8bit'ный режим, то при переключении с иксов на VT цвета искажаются. Например, красный становится малиновым.

Хостинговая компания 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: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-11 13:29:47

да токо что проверял емеил

но
1) у меня нет иксов поэтому проверить пока не могу
2) меня болше сечас волнует заморочка системы при понижении разрешения

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-11 13:33:26

какпец какойто
на яху письма доходят с каким то запаздыванием
от андрея я получил письмо
а твоего ответа на него еще нет

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение Гость » 2009-09-11 13:35:05

paradox писал(а):2) меня болше сечас волнует заморочка системы при понижении разрешения
у тя есть serial-шнурок? можешь кинуть backtrace из ddb(4) туда и запостить? Может трейс будет более внятный чем через kgdb.

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-11 13:36:48

ты не понял
там заморозка системы полностью
она ни начто не реагирует
там токо printf(debug по всему коду
и перепониманием всего teken можно найти ошибку
никакой дебагер не спасет

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-11 15:02:46

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

теоретически и даже винда на таком просто падает
и дальше можно выловить в отладчике
а бсд тупо виснет

пример
1) грузимся в обычном режиме по умолчанию на нулевой консоли
2) vidcontrol MODE_277
3) vidcontrol MODE_24
все черный екран
4)дальше пробуем Alt+F3 один бип динамика и ничего не происходит
5)пробуем Alt+F[0-9] и все
один длинельный бип и ни на что не реагирует

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

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-11 21:01:25

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

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

странно
очень странно

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-11 23:09:23

переделывай свой dmps
на основе нового vesa
а я пока подумаю как красиво реализовать x86bios
сечас там токо затычки что бы собирался vesa
vesa я уже переделал
остаивил токо один комментарий на свой vi_window уж очень подозрительно оно там вычисляеться
потомему там воообще обычное присваивание
это как раз режим 4битный

ссылку забыл дать)
paradox.lissyara.su/x86bios.tar.bz2

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-11 23:18:53

http://lists.freebsd.org/pipermail/free ... 11496.html
фигня какая то
непонятно каким местом оно там вообще
vga 90
и vesa
пойду чтоли проверю

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение Гость » 2009-09-11 23:22:14

paradox писал(а):переделывай свой dmps
на основе нового vesa
что конкретно? dpms же уже использует x86emu. Да и не могу я дяльше загрузки его протестировать, бо засыпание у мя не пашет (qemu не умеет, а на реальной машине не просыпается).
Мне, вообще, любопытно тестировал ли сей драйвер delphij@ перед коммиттом. :crazy:

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-11 23:29:13

я не имел ввиду тестиру
я имел ввиду посмотри на x86bios
потому как я убрал с vesa.c x86emu
и между ними сделал новый модуль (сущность) x86bios
поэтому переделай свой dmps так что бы он не использовал больше x86emu
а использовал x86bios
офформи там красиво патчи итд))
а я пока буду думать над самим x86bios

вообщем сделай diff новой vesa и той что щас в в курренте

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-11 23:30:25

Мне, вообще, любопытно тестировал ли сей драйвер delphij@ перед коммиттом.
не переживай
если он работает(работал вооще когда то) на i386 то он работает
что его толку то тестировать

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-11 23:45:02

http://lists.freebsd.org/pipermail/free ... 11496.html

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

можешь ему ответить ? что для того что бы он использовал его любимый MODE_48 90x60
ему не нужно грузить vesa
так что это не регресс как он выразился
пусть не тролит

посмотрим, если можно пофиксю
но это не проблема это особенность весы

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-11 23:52:26

щас еще M_TEXT_132x25
проверю
кстати и без весы токо что щас опять повесилась система
когда с 90x60 переключался в MODE_24
что то как то очень странный баг

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение Гость » 2009-09-11 23:55:31

не очень понятен смысл вот этого

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

MODULE_DEPEND(x86bios, x86emu, 1, 1, 1);
Я просто переименовал sys/modules/x86emu -> sys/modules/x86bios и посадил сорцы в sys/dev/x86bios

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-11 23:58:03

Гость писал(а):не очень понятен смысл вот этого

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

MODULE_DEPEND(x86bios, x86emu, 1, 1, 1);
Я просто переименовал sys/modules/x86emu -> sys/modules/x86bios и посадил сорцы в sys/dev/x86bios
нет нет
ничего переименовывать не надо
x86bios это отдельный модуль будет
который будет спользовать x86emu
и давать нужные функции для vesa и dpms

тоесть
vesa -> x86bios ->x86emu
вот такое обращение будет

потому челу

веса перехватывает и перемапывает на себя те режимы которые он хочет использовать

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

/* map a generic video mode to a known mode */
static int
vesa_map_gen_mode_num(int type, int color, int mode)
{
    static struct {
        int from;
        int to;
    } mode_map[] = {
        { M_TEXT_132x25, M_VESA_C132x25 },
        { M_TEXT_132x43, M_VESA_C132x43 },
        { M_TEXT_132x50, M_VESA_C132x50 },
        { M_TEXT_132x60, M_VESA_C132x60 },
    };
    int i;

    for (i = 0; i < sizeof(mode_map)/sizeof(mode_map[0]); ++i) {
        if (mode_map[i].from == mode)
            return mode_map[i].to;
    }
    return mode;
}
так что пусть тот троль не юзает vesa и будут все его режимы рабоать по старому

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение Гость » 2009-09-12 0:53:06

paradox писал(а):вообщем сделай diff новой vesa и той что щас в в курренте
вот кусок диффа (против /head) между старым (vm86) и новым (x86bios) dpms.c

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

diff --git a/sys/dev/dpms/dpms.c b/sys/dev/dpms/dpms.c
index 723a6c0..be225be 100644
--- a/sys/dev/dpms/dpms.c
+++ b/sys/dev/dpms/dpms.c
@@ -67,7 +67,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/libkern.h>
 #include <sys/module.h>
 
-#include <machine/vm86.h>
+#include <contrib/x86emu/x86bios.h>
 
 /*
  * VESA DPMS States 
@@ -119,6 +119,7 @@ static driver_t dpms_driver = {
 static devclass_t dpms_devclass;
 
 DRIVER_MODULE(dpms, vgapci, dpms_driver, dpms_devclass, NULL, NULL);
+MODULE_DEPEND(dpms, x86bios, 1, 1, 1);
 
 static void
 dpms_identify(driver_t *driver, device_t parent)
@@ -189,21 +190,21 @@ dpms_resume(device_t dev)
 static int
 dpms_call_bios(int subfunction, int *bh)
 {
-	struct vm86frame vmf;
-	int error;
+	x86regs_t regs;
 
-	bzero(&vmf, sizeof(vmf));
-	vmf.vmf_ax = VBE_DPMS_FUNCTION;
-	vmf.vmf_bl = subfunction;
-	vmf.vmf_bh = *bh;
-	vmf.vmf_es = 0;
-	vmf.vmf_di = 0;
-	error = vm86_intcall(0x10, &vmf);
-	if (error == 0 && (vmf.vmf_eax & 0xffff) != 0x004f)
-		error = ENXIO;
-	if (error == 0)
-		*bh = vmf.vmf_bh;
-	return (error);
+	regs.R_AX = VBE_DPMS_FUNCTION;
+	regs.R_BL = subfunction;
+	regs.R_BH = *bh;
+	regs.R_ES = 0;
+	regs.R_DI = 0;
+	x86biosCall(&regs, 0x10);
+
+	if ((regs.R_EAX & 0xffff) != 0x004f)
+		return (ENXIO);
+
+	*bh = regs.R_BH;
+
+	return (0);
 }
 
 static int
оно работать должно с пустыми затычками в x86bios?

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-12 0:56:13

не работать не должно
зато собираться должно)

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-12 1:05:46

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

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

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

#define M_TEXT_132x25 205
#define M_TEXT_132x30 206
#define M_TEXT_132x43 207
#define M_TEXT_132x50 208
#define M_TEXT_132x60 209

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-12 1:58:42

удивительно
но один планарный режим работает на i386
это MODE_258 800x600x4
значит как минимум должен работать и на amd64

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-12 3:13:15

такс
пропробуй у себя вот этот режим

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

258 (0x102) 0x0000000b G 800x600x4 4     8x16  0xa0000 64k 64k 0x00000000 32768k
если будет виснуть на текущем курренте
то пробуй патч

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

    } else {
                vesa_adp->va_buffer = 0;
                vesa_adp->va_buffer_size = info.vi_buffer_size;
-               vesa_adp->va_window = (vm_offset_t)(emumem+L_ADD(info.vi_window));
+               vesa_adp->va_window = (vm_offset_t)(KERNBASE+info.vi_window);
                vesa_adp->va_window_size = info.vi_window_size;
                vesa_adp->va_window_gran = info.vi_window_gran;
        }

        vesa_adp->va_window_orig = 0;
        len = vesa_bios_get_line_length();
        if (len > 0) {
должно все заработать
если все гуд
отправляй к Xin LI
но режимы 4битные которые выше 800x600
1024x768 итд
оно не должно виснуть
а должно выбрасывать мол не могу установить
потому что на те режимы нужно уже по другому фиксить
это уже банковый режим и им мало буффера окна в 65536 байт и нужно смешать окно
вообщем долгая история

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-12 3:34:05

а еще лучше если вернуть как было в оригинальной версии

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

--- vesa.c.orig 2009-09-12 04:46:29.000000000 +0400
+++ vesa.c      2009-09-12 06:12:01.000000000 +0400
@@ -45,6 +45,7 @@
 #include <vm/vm_param.h>
 #include <vm/pmap.h>

+#include <machine/pc/bios.h>
 #include <dev/fb/vesa.h>

 #include <dev/fb/fbreg.h>
@@ -1126,7 +1127,7 @@
        } else {
                vesa_adp->va_buffer = 0;
                vesa_adp->va_buffer_size = info.vi_buffer_size;
-               vesa_adp->va_window = (vm_offset_t)(emumem+L_ADD(info.vi_window));
+               vesa_adp->va_window = BIOS_PADDRTOVADDR(info.vi_window);
                vesa_adp->va_window_size = info.vi_window_size;
                vesa_adp->va_window_gran = info.vi_window_gran;
        }
вот так будет правильно
Последний раз редактировалось paradox 2009-09-12 5:13:00, всего редактировалось 2 раза.
Причина: даже (vm_offset_t) ненужен - убрал

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-12 5:19:25

260 (0x104) 0x0000000b G 1024x768x4 4 8x16 0xa0000 64k 64k 0x00000000 32768k
262 (0x106) 0x0000000b G 1280x1024x4 4 8x16 0xa0000 64k 64k 0x00000000 32768k
эти режимы я тоже думаю что пофишку
я могу щас кое что уже расскоментировать
но будет прорисовываться токо половина екрана
тоесть верхняя часть
на нижную нужно будет добавить функцию переключения банка окна вывода

останеться разобраться с тем чертом
и его хитрыми режимами

terminus
у тебя щас 9куррент?
загрузи весу и покажи сюда

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

vidcontrol -i mode
может это в новых ноутах добавили режимы текстовые в весу
на моей памяти эти режимы были токо в емуляторе под дос
vesavbe.exe который емулировал vbe для доса
а он говорит что у него в HP ноуте эти режимы :cz2:

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение paradox » 2009-09-12 15:27:54

такс
вроде написал
щас пока мир обновляеться проверить не могу
paradox.lissyara.su/x86bios.tar.bz2

но поидеи ошибок нет
делай правильные патчи)
и надо подумать как и куда пихать

я например незнаю что делать с
xbios86.h
обьявлением регистров
которое я позаимствовал с x86emu
чей теперь копирайт там ставить хз
и можно ли в dev/ добавлять такое
потому что хочеться что бы сорусы модуля лежали в бсд а не в контрибах

и незнаю как быть с алгоритмом функций xbiosAlloc/Free
алгоритм взять с xfree86/int10/generic.c
хз

спроси может у delphij
что он скажет

и не понятно
оставлять ли модуль x86emu.ko или просто заменить его модулем xbios86.ko
а в contrib/x86emu/убрать определения модуля где ты добавил MODULE_DECLARED

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

Re: paradox эксперементирует с графической консолью

Непрочитанное сообщение Гость » 2009-09-12 16:59:42

paradox писал(а):вот так будет правильно
с этим патчиком у мя MODE_258 (800x600x4 4) пашет, без него были белые полоски на черном экране.

Кстати, этот режим дружит с drm (nouveau).