графическая консоль
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
обновил
paradox.lissyara.su/syscons.c.diff
если что попробуй его протолкнуть за xemu86
вдруг примут))
вообще я так подумал
графическую консоль мало кто когда юзал в бсд
и щас тяжело будет протокнуть любой патч
потому как там могут появиться разные глюки ввиде тех что щас с переключением
paradox.lissyara.su/syscons.c.diff
если что попробуй его протолкнуть за xemu86
вдруг примут))
вообще я так подумал
графическую консоль мало кто когда юзал в бсд
и щас тяжело будет протокнуть любой патч
потому как там могут появиться разные глюки ввиде тех что щас с переключением
Услуги хостинговой компании 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 эксперементирует с графической консолью
вприпципе можно еще поменять название переменной
SC_VESA800X600
на например
SC_GRBOOTLOG
в .h файле и сдесь
что бы по смыслу подходило
SC_VESA800X600
на например
SC_GRBOOTLOG
в .h файле и сдесь
что бы по смыслу подходило
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
кстати
попробуй через svn
сделать откаты по тому что делал ed@ для syscons/ и fb/
и уловить где именно глюк с переключением
тогда можно будет отписать ему что бы принял к сведению
>terminus
он тебе что то ответил?
попробуй через svn
сделать откаты по тому что делал ed@ для syscons/ и fb/
и уловить где именно глюк с переключением
тогда можно будет отписать ему что бы принял к сведению
>terminus
он тебе что то ответил?
-
- проходил мимо
Re: paradox эксперементирует с графической консолью
патчики причесывал пока в основном только для себя. Ну и плюс комментарии в коммиттах (локальных) добавил на основе твоих. К тому же остался не решенным вопрос что делать с приложениями/библиотеками, использующими /usr/include/machine/pc/vesa.h. Не знаю стоит ли добавлять хак в src/include/Makefile чтобы он инсталил vesa.h в machine/pc или нет.paradox писал(а):если что попробуй его протолкнуть за xemu86
вдруг примут))
ок, перетащил комментарий на новый патчикparadox писал(а):обновил
paradox.lissyara.su/syscons.c.diff
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
в src/includeНе знаю стоит ли добавлять хак в src/include/Makefile чтобы он инсталил vesa.h в machine/pc или нет.
ненадо
vesa.h используеться токо в ядре
и потом
каким то чудесным образом vesa.h помоему и так появляеться в machine/pc/vesa.h
ну так отправляй )) вдруг примут
покрайней мере на xemu86
-
- проходил мимо
Re: paradox эксперементирует с графической консолью
я же уже говорил, что все хедеры из sys/${MACHINE}/include/pc копируются в /usr/include/machine/pc/. Так вот <machine/pc/vesa.h> существует только на i386. Точнее существовал, после перетаскивания он более не появляется и на i386.paradox писал(а):и потом
каким то чудесным образом vesa.h помоему и так появляеться в machine/pc/vesa.h
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
емм
какого перетаскивания?
ты его в fb/ перетянул?
какого перетаскивания?
ты его в fb/ перетянул?
-
- проходил мимо
Re: paradox эксперементирует с графической консолью
ну да, или ты не смотрел третий патчик?paradox писал(а):емм
какого перетаскивания?
ты его в fb/ перетянул?
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
уже все посмотрел
кстати там у меня были мысли нужно проверять emumem = pmap_mapbios
на нулевой указатель или нет
и вслучае чего делать return
но учитывая что делал для себя)) то мне было пофиг
кстати там у меня были мысли нужно проверять emumem = pmap_mapbios
на нулевой указатель или нет
и вслучае чего делать return
но учитывая что делал для себя)) то мне было пофиг
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
еще вот это сомнительное место
скорее всего там
vesa_adp->va_window = info.vi_window;
но опять же не уверен
а что бы проверять нужно думать...
Код: Выделить всё
@@ -1088,7 +1153,7 @@ vesa_set_mode(video_adapter_t *adp, int mode)
} else {
vesa_adp->va_buffer = 0;
vesa_adp->va_buffer_size = info.vi_buffer_size;
- vesa_adp->va_window = BIOS_PADDRTOVADDR(info.vi_window);
+ vesa_adp->va_window = (emumem+L_ADD(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 = info.vi_window;
но опять же не уверен
а что бы проверять нужно думать...
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
Код: Выделить всё
#define VESA_VM86_BUFSIZE (3 * PAGE_SIZE)
...
...
static int
vesa_bios_save_restore(int code, void *p, size_t size)
{
- struct vm86frame vmf;
u_char *buf;
int err;
- if (size > VESA_VM86_BUFSIZE)
- return (1);
+ vesa_emu.x86.R_EAX = 0x4f04;
токо переименуй на VESA_X86EMU_BUFSIZE
мне было лениво ее обратно расскоментить
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
токо для LITTLE_ENDIAN#define B_O16(x) (x)
#define B_O32(x) (x)
для BIG нужно по другому
так что если есть желание сделать так как надо
возьми с xorg
это в Xserver/hw/ где то определения лежат
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
в этом патче в комментариях можешь добавить0006-add-support-to-enter-graphics-mode-early-at-boot.patch
что он фиксит текст(font) в граффике на корректность данных
если не убрать COL ROW на нули
и не пофиксить ниже scp->font_*
то текста на консоли не будет
более того
vidcontorl будет падать с ошибкой деления на нуль
потому что данные неккоретно заполнены в ядре
-
- проходил мимо
Re: paradox эксперементирует с графической консолью
в какой момент не будет? че-то я не очень понял при каких условиях появляется бякаparadox писал(а):если не убрать COL ROW на нули
и не пофиксить ниже scp->font_*
то текста на консоли не будет
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
бяка уже естьГость писал(а):в какой момент не будет? че-то я не очень понял при каких условиях появляется бякаparadox писал(а):если не убрать COL ROW на нули
и не пофиксить ниже scp->font_*
то текста на консоли не будет
перавый фикс токо расширяет что бы можно было задавать граф мод с flags
а сам глюк через который у тебя закомментирован давно 0x180 флаг
как раз и фикситься всем остальным
кстати имея емулятор в бсд
можно пофиксить многие моменты
например
Код: Выделить всё
8.0\src\sys\dev\atkbdc\atkbd.c
/* local functions */
static int
get_typematic(keyboard_t *kbd)
{
#ifdef __i386__
/*
* Only some systems allow us to retrieve the keyboard repeat
* rate previously set via the BIOS...
*/
struct vm86frame vmf;
u_int32_t p;
bzero(&vmf, sizeof(vmf));
vmf.vmf_ax = 0xc000;
vm86_intcall(0x15, &vmf);
-
- проходил мимо
Re: paradox эксперементирует с графической консолью
это касается только amd64 или есть еще какие-то ахритектуры, где x86emu бы пригодился?paradox писал(а):кстати имея емулятор в бсд
можно пофиксить многие моменты
например
8.0\src\sys\dev\atkbdc\atkbd.c
-
- проходил мимо
Re: paradox эксперементирует с графической консолью
иparadox писал(а):Код: Выделить всё
- if (size > VESA_VM86_BUFSIZE) - return (1); + vesa_emu.x86.R_EAX = 0x4f04;
уже засунул в четвертый патчикparadox писал(а):Код: Выделить всё
#define B_O16(x) (x) #define B_O32(x) (x)
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
да вот незнаю
теоретически может еще на i64 быть
но не уверен
теоретически может еще на i64 быть
но не уверен
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
vesa_fix_ptr
эту функцию полностью можешь удалить она больше не испольуеться
сюда добавь комментарий
эти два регистра убери
и добавь инклуде выше
X:\work\cvsup\freebsd\8.0\src\sys\amd64\isa\isa.h
X:\work\cvsup\freebsd\8.0\src\sys\i386\isa\isa.h
как machine/isa/
или как isareg
X:\work\cvsup\freebsd\8.0\src\sys\isa\isareg.h
на свое усмотрение
эту функцию полностью можешь удалить она больше не испольуеться
Код: Выделить всё
+ emumem = pmap_mapbios(0x0, 0xc00000);
нужна ли проверка на ноль
Код: Выделить всё
+
+/* hack taken from ISA */
+#define IO_CGA 0x3D0 /* CGA Ports */
+#define IO_MDA 0x3B0 /* Monochome Adapter */
и добавь инклуде выше
X:\work\cvsup\freebsd\8.0\src\sys\amd64\isa\isa.h
X:\work\cvsup\freebsd\8.0\src\sys\i386\isa\isa.h
как machine/isa/
или как isareg
X:\work\cvsup\freebsd\8.0\src\sys\isa\isareg.h
на свое усмотрение
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
кстати кажись глюк сисконса можно повысить режим разрешения
но нельзя потом его понизить
тоесть можно поднять до 1024x768
но уменьшить потом до 800x600
имею такой же глюк как и если с 800x600 понижаю до MODE_24
на 7 такого глюка нет
но нельзя потом его понизить
тоесть можно поднять до 1024x768
но уменьшить потом до 800x600
имею такой же глюк как и если с 800x600 понижаю до MODE_24
на 7 такого глюка нет
-
- проходил мимо
Re: paradox эксперементирует с графической консолью
проверка emumem на ноль?paradox писал(а):эту функцию полностью можешь удалить она больше не испольуеться
сюда добавь комментарийКод: Выделить всё
+ emumem = pmap_mapbios(0x0, 0xc00000);
нужна ли проверка на ноль
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
агапроверка emumem на ноль?
зы
надо будет сделать дифф на этот teken
и попробовать портировать syscons в дифах с 7 на 8
если все будет работать
то блаблабла
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
да
точно
глюк с MODE_24 на графическом режиме
это глюк с понижением разрешения от исходного
попробуй у себя
переключи на 1024x768x32
а поом обратно на 800x600x32
у меня фризи сразу системы
точно
глюк с MODE_24 на графическом режиме
это глюк с понижением разрешения от исходного
попробуй у себя
переключи на 1024x768x32
а поом обратно на 800x600x32
у меня фризи сразу системы
-
- проходил мимо
Re: paradox эксперементирует с графической консолью
только что попробовалparadox писал(а):еще вот это сомнительное место
скорее всего тамКод: Выделить всё
@@ -1088,7 +1153,7 @@ vesa_set_mode(video_adapter_t *adp, int mode) } else { vesa_adp->va_buffer = 0; vesa_adp->va_buffer_size = info.vi_buffer_size; - vesa_adp->va_window = BIOS_PADDRTOVADDR(info.vi_window); + vesa_adp->va_window = (emumem+L_ADD(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 = info.vi_window;
но опять же не уверен
а что бы проверять нужно думать...
Код: Выделить всё
@@ -1163,7 +1160,7 @@ vesa_set_mode(video_adapter_t *adp, int mode)
} else {
vesa_adp->va_buffer = 0;
vesa_adp->va_buffer_size = info.vi_buffer_size;
- vesa_adp->va_window = (emumem+L_ADD(info.vi_window));
+ vesa_adp->va_window = info.vi_window;
vesa_adp->va_window_size = info.vi_window_size;
vesa_adp->va_window_gran = info.vi_window_gran;
}
у мя этот баг удалось воспроизвести всего два раза, пару дней назад, когда я только начинал пробовать твой драйвер. Сейчас не получаяется: переключение с 1600x1200x32 на 800x600x32 проходит нормально. ЕМНИП, с 1024x768x32 тоже не было проблем.paradox писал(а):попробуй у себя
переключи на 1024x768x32
а поом обратно на 800x600x32
у меня фризи сразу системы
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: paradox эксперементирует с графической консолью
оно проявляеться в других режимах которые есть на i386- vesa_adp->va_window = (emumem+L_ADD(info.vi_window));
+ vesa_adp->va_window = info.vi_window;
там plan режими кажись
на amd64 все линерал фрейм буффер
если хватит желанияу мя этот баг удалось воспроизвести всего два раза, пару дней назад, когда я только начинал пробовать твой драйвер. Сейчас не получаяется: переключение с 1600x1200x32 на 800x600x32 проходит нормально. ЕМНИП, с 1024x768x32 тоже не было проблем.
может портирую с 7 syscons без teken
и посмотрю будет глючить или нет