графическая консоль
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
Re: paradox эксперементирует с графической консолью
paradox, ты получил на мыло баг репорт о проблеме с цветами? Если использовать 8bit'ный режим, то при переключении с иксов на VT цвета искажаются. Например, красный становится малиновым.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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/
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
да токо что проверял емеил
но
1) у меня нет иксов поэтому проверить пока не могу
2) меня болше сечас волнует заморочка системы при понижении разрешения
но
1) у меня нет иксов поэтому проверить пока не могу
2) меня болше сечас волнует заморочка системы при понижении разрешения
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
какпец какойто
на яху письма доходят с каким то запаздыванием
от андрея я получил письмо
а твоего ответа на него еще нет
на яху письма доходят с каким то запаздыванием
от андрея я получил письмо
а твоего ответа на него еще нет
-
- проходил мимо
Re: paradox эксперементирует с графической консолью
у тя есть serial-шнурок? можешь кинуть backtrace из ddb(4) туда и запостить? Может трейс будет более внятный чем через kgdb.paradox писал(а):2) меня болше сечас волнует заморочка системы при понижении разрешения
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
ты не понял
там заморозка системы полностью
она ни начто не реагирует
там токо printf(debug по всему коду
и перепониманием всего teken можно найти ошибку
никакой дебагер не спасет
там заморозка системы полностью
она ни начто не реагирует
там токо printf(debug по всему коду
и перепониманием всего teken можно найти ошибку
никакой дебагер не спасет
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
я уже ловил такую заморозку когда броадком фиксили в ворнером
там что то типа аксесс виолайшен
когда пишуться даные по указателю который указывает в никуда
теоретически и даже винда на таком просто падает
и дальше можно выловить в отладчике
а бсд тупо виснет
пример
1) грузимся в обычном режиме по умолчанию на нулевой консоли
2) vidcontrol MODE_277
3) vidcontrol MODE_24
все черный екран
4)дальше пробуем Alt+F3 один бип динамика и ничего не происходит
5)пробуем Alt+F[0-9] и все
один длинельный бип и ни на что не реагирует
жаль
думаю не совершенство многозадачности в бсд
что бы корретно падала хотя бы
там что то типа аксесс виолайшен
когда пишуться даные по указателю который указывает в никуда
теоретически и даже винда на таком просто падает
и дальше можно выловить в отладчике
а бсд тупо виснет
пример
1) грузимся в обычном режиме по умолчанию на нулевой консоли
2) vidcontrol MODE_277
3) vidcontrol MODE_24
все черный екран
4)дальше пробуем Alt+F3 один бип динамика и ничего не происходит
5)пробуем Alt+F[0-9] и все
один длинельный бип и ни на что не реагирует
жаль
думаю не совершенство многозадачности в бсд
что бы корретно падала хотя бы
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
вроде немного локализовалось
виснет токо если делать на нулевой консоли O_o сам удевлен
если делать на других консолях то глюка нет
нормально переключаеться в текстовый режим
на нулевой консоли
между графическими режимами переключаеться нормально
но на тектосвый режим зависон
странно
очень странно
виснет токо если делать на нулевой консоли O_o сам удевлен
если делать на других консолях то глюка нет
нормально переключаеться в текстовый режим
на нулевой консоли
между графическими режимами переключаеться нормально
но на тектосвый режим зависон
странно
очень странно
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
переделывай свой dmps
на основе нового vesa
а я пока подумаю как красиво реализовать x86bios
сечас там токо затычки что бы собирался vesa
vesa я уже переделал
остаивил токо один комментарий на свой vi_window уж очень подозрительно оно там вычисляеться
потомему там воообще обычное присваивание
это как раз режим 4битный
ссылку забыл дать)
paradox.lissyara.su/x86bios.tar.bz2
на основе нового vesa
а я пока подумаю как красиво реализовать x86bios
сечас там токо затычки что бы собирался vesa
vesa я уже переделал
остаивил токо один комментарий на свой vi_window уж очень подозрительно оно там вычисляеться
потомему там воообще обычное присваивание
это как раз режим 4битный
ссылку забыл дать)
paradox.lissyara.su/x86bios.tar.bz2
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
http://lists.freebsd.org/pipermail/free ... 11496.html
фигня какая то
непонятно каким местом оно там вообще
vga 90
и vesa
пойду чтоли проверю
фигня какая то
непонятно каким местом оно там вообще
vga 90
и vesa
пойду чтоли проверю
-
- проходил мимо
Re: paradox эксперементирует с графической консолью
что конкретно? dpms же уже использует x86emu. Да и не могу я дяльше загрузки его протестировать, бо засыпание у мя не пашет (qemu не умеет, а на реальной машине не просыпается).paradox писал(а):переделывай свой dmps
на основе нового vesa
Мне, вообще, любопытно тестировал ли сей драйвер delphij@ перед коммиттом.
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
я не имел ввиду тестиру
я имел ввиду посмотри на x86bios
потому как я убрал с vesa.c x86emu
и между ними сделал новый модуль (сущность) x86bios
поэтому переделай свой dmps так что бы он не использовал больше x86emu
а использовал x86bios
офформи там красиво патчи итд))
а я пока буду думать над самим x86bios
вообщем сделай diff новой vesa и той что щас в в курренте
я имел ввиду посмотри на x86bios
потому как я убрал с vesa.c x86emu
и между ними сделал новый модуль (сущность) x86bios
поэтому переделай свой dmps так что бы он не использовал больше x86emu
а использовал x86bios
офформи там красиво патчи итд))
а я пока буду думать над самим x86bios
вообщем сделай diff новой vesa и той что щас в в курренте
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
не переживайМне, вообще, любопытно тестировал ли сей драйвер delphij@ перед коммиттом.
если он работает(работал вооще когда то) на i386 то он работает
что его толку то тестировать
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
http://lists.freebsd.org/pipermail/free ... 11496.html
да дествительно
если загружена веса
то она перехватывает этот режим
и выводит чистый екран
зачем он(тот чел) грузит весу я незнаю
можешь ему ответить ? что для того что бы он использовал его любимый MODE_48 90x60
ему не нужно грузить vesa
так что это не регресс как он выразился
пусть не тролит
посмотрим, если можно пофиксю
но это не проблема это особенность весы
да дествительно
если загружена веса
то она перехватывает этот режим
и выводит чистый екран
зачем он(тот чел) грузит весу я незнаю
можешь ему ответить ? что для того что бы он использовал его любимый MODE_48 90x60
ему не нужно грузить vesa
так что это не регресс как он выразился
пусть не тролит
посмотрим, если можно пофиксю
но это не проблема это особенность весы
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
щас еще M_TEXT_132x25
проверю
кстати и без весы токо что щас опять повесилась система
когда с 90x60 переключался в MODE_24
что то как то очень странный баг
проверю
кстати и без весы токо что щас опять повесилась система
когда с 90x60 переключался в MODE_24
что то как то очень странный баг
-
- проходил мимо
Re: paradox эксперементирует с графической консолью
не очень понятен смысл вот этогоЯ просто переименовал sys/modules/x86emu -> sys/modules/x86bios и посадил сорцы в sys/dev/x86bios
Код: Выделить всё
MODULE_DEPEND(x86bios, x86emu, 1, 1, 1);
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
нет нетГость писал(а):не очень понятен смысл вот этогоЯ просто переименовал sys/modules/x86emu -> sys/modules/x86bios и посадил сорцы в sys/dev/x86biosКод: Выделить всё
MODULE_DEPEND(x86bios, x86emu, 1, 1, 1);
ничего переименовывать не надо
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;
}
-
- проходил мимо
Re: paradox эксперементирует с графической консолью
вот кусок диффа (против /head) между старым (vm86) и новым (x86bios) dpms.cparadox писал(а):вообщем сделай diff новой vesa и той что щас в в курренте
Код: Выделить всё
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(®s, 0x10);
+
+ if ((regs.R_EAX & 0xffff) != 0x004f)
+ return (ENXIO);
+
+ *bh = regs.R_BH;
+
+ return (0);
}
static int
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
не работать не должно
зато собираться должно)
зато собираться должно)
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
что то мне сдаеться все эти баги с переключением режимов и зависаниями
это токо платформо зависемые
тоесть токо на 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
это токо платформо зависемые
тоесть токо на 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
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
удивительно
но один планарный режим работает на i386
это MODE_258 800x600x4
значит как минимум должен работать и на amd64
но один планарный режим работает на i386
это MODE_258 800x600x4
значит как минимум должен работать и на amd64
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
такс
пропробуй у себя вот этот режим
если будет виснуть на текущем курренте
то пробуй патч
должно все заработать
если все гуд
отправляй к Xin LI
но режимы 4битные которые выше 800x600
1024x768 итд
оно не должно виснуть
а должно выбрасывать мол не могу установить
потому что на те режимы нужно уже по другому фиксить
это уже банковый режим и им мало буффера окна в 65536 байт и нужно смешать окно
вообщем долгая история
пропробуй у себя вот этот режим
Код: Выделить всё
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 байт и нужно смешать окно
вообщем долгая история
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
а еще лучше если вернуть как было в оригинальной версии
вот так будет правильно
Код: Выделить всё
--- 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) ненужен - убрал
Причина: даже (vm_offset_t) ненужен - убрал
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
эти режимы я тоже думаю что пофишку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 ноуте эти режимы
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
такс
вроде написал
щас пока мир обновляеться проверить не могу
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
вроде написал
щас пока мир обновляеться проверить не могу
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 эксперементирует с графической консолью
с этим патчиком у мя MODE_258 (800x600x4 4) пашет, без него были белые полоски на черном экране.paradox писал(а):вот так будет правильно
Кстати, этот режим дружит с drm (nouveau).