Страница 7 из 35
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-18 23:33:21
paradox
обновил
paradox.lissyara.su/syscons.c.diff
если что попробуй его протолкнуть за xemu86
вдруг примут))
вообще я так подумал
графическую консоль мало кто когда юзал в бсд
и щас тяжело будет протокнуть любой патч
потому как там могут появиться разные глюки ввиде тех что щас с переключением
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-18 23:36:53
paradox
вприпципе можно еще поменять название переменной
SC_VESA800X600
на например
SC_GRBOOTLOG
в .h файле и сдесь
что бы по смыслу подходило
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-18 23:41:26
paradox
кстати
попробуй через svn
сделать откаты по тому что делал ed@ для syscons/ и fb/
и уловить где именно глюк с переключением
тогда можно будет отписать ему что бы принял к сведению
>terminus
он тебе что то ответил?
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-18 23:49:24
Гость
paradox писал(а):если что попробуй его протолкнуть за xemu86
вдруг примут))
патчики причесывал пока в основном только для себя. Ну и плюс комментарии в коммиттах (локальных) добавил на основе твоих. К тому же остался не решенным вопрос что делать с приложениями/библиотеками, использующими /usr/include/machine/pc/vesa.h. Не знаю стоит ли добавлять хак в src/include/Makefile чтобы он инсталил vesa.h в machine/pc или нет.
paradox писал(а):обновил
paradox.lissyara.su/syscons.c.diff
ок, перетащил комментарий на новый патчик
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-18 23:54:09
paradox
Не знаю стоит ли добавлять хак в src/include/Makefile чтобы он инсталил vesa.h в machine/pc или нет.
в src/include
ненадо
vesa.h используеться токо в ядре
и потом
каким то чудесным образом vesa.h помоему и так появляеться в machine/pc/vesa.h
ну так отправляй )) вдруг примут
покрайней мере на xemu86
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-18 23:58:52
Гость
paradox писал(а):и потом
каким то чудесным образом vesa.h помоему и так появляеться в machine/pc/vesa.h
я же уже говорил, что все хедеры из sys/${MACHINE}/include/pc копируются в /usr/include/machine/pc/. Так вот <machine/pc/vesa.h> существует только на i386. Точнее существов
ал, после перетаскивания он более не появляется и на i386.
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 0:00:22
paradox
емм
какого перетаскивания?
ты его в fb/ перетянул?
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 0:07:16
Гость
paradox писал(а):емм
какого перетаскивания?
ты его в fb/ перетянул?
ну да, или ты не смотрел
третий патчик?
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 0:15:14
paradox
уже все посмотрел
кстати там у меня были мысли нужно проверять emumem = pmap_mapbios
на нулевой указатель или нет
и вслучае чего делать return
но учитывая что делал для себя)) то мне было пофиг
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 0:17:44
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;
но опять же не уверен
а что бы проверять нужно думать...
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 0:21:30
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
мне было лениво ее обратно расскоментить
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 0:23:34
paradox
#define B_O16(x) (x)
#define B_O32(x) (x)
токо для LITTLE_ENDIAN
для BIG нужно по другому
так что если есть желание сделать так как надо
возьми с xorg
это в Xserver/hw/ где то определения лежат
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 0:29:42
paradox
0006-add-support-to-enter-graphics-mode-early-at-boot.patch
в этом патче в комментариях можешь добавить
что он фиксит текст(font) в граффике на корректность данных
если не убрать COL ROW на нули
и не пофиксить ниже scp->font_*
то текста на консоли не будет
более того
vidcontorl будет падать с ошибкой деления на нуль
потому что данные неккоретно заполнены в ядре
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 0:41:51
Гость
paradox писал(а):если не убрать COL ROW на нули
и не пофиксить ниже scp->font_*
то текста на консоли не будет
в какой момент не будет? че-то я не очень понял при каких условиях появляется бяка
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 0:46:46
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 эксперементирует с графической консолью
Добавлено: 2009-08-19 0:55:35
Гость
paradox писал(а):кстати имея емулятор в бсд
можно пофиксить многие моменты
например
8.0\src\sys\dev\atkbdc\atkbd.c
это касается только amd64 или есть еще какие-то ахритектуры, где x86emu бы пригодился?
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 0:57:46
Гость
paradox писал(а):Код: Выделить всё
- if (size > VESA_VM86_BUFSIZE)
- return (1);
+ vesa_emu.x86.R_EAX = 0x4f04;
и
уже засунул в
четвертый патчик
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 0:58:33
paradox
да вот незнаю
теоретически может еще на i64 быть
но не уверен
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 1:04:27
paradox
vesa_fix_ptr
эту функцию полностью можешь удалить она больше не испольуеться
сюда добавь комментарий
нужна ли проверка на ноль
Код: Выделить всё
+
+/* 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
на свое усмотрение
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 1:25:44
paradox
кстати кажись глюк сисконса можно повысить режим разрешения
но нельзя потом его понизить
тоесть можно поднять до 1024x768
но уменьшить потом до 800x600
имею такой же глюк как и если с 800x600 понижаю до MODE_24
на 7 такого глюка нет
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 1:28:36
Гость
paradox писал(а):эту функцию полностью можешь удалить она больше не испольуеться
сюда добавь комментарий
нужна ли проверка на ноль
проверка
emumem на ноль?
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 1:30:26
paradox
проверка emumem на ноль?
ага
зы
надо будет сделать дифф на этот teken
и попробовать портировать syscons в дифах с 7 на 8
если все будет работать
то блаблабла
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 1:33:00
paradox
да
точно
глюк с MODE_24 на графическом режиме
это глюк с понижением разрешения от исходного
попробуй у себя
переключи на 1024x768x32
а поом обратно на 800x600x32
у меня фризи сразу системы
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 1:43:47
Гость
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;
}
и никаких негативных эффектов не заметил при переключении режимов.
paradox писал(а):попробуй у себя
переключи на 1024x768x32
а поом обратно на 800x600x32
у меня фризи сразу системы
у мя этот баг удалось воспроизвести всего два раза, пару дней назад, когда я только начинал пробовать твой драйвер. Сейчас не получаяется: переключение с 1600x1200x32 на 800x600x32 проходит нормально. ЕМНИП, с 1024x768x32 тоже не было проблем.
Re: paradox эксперементирует с графической консолью
Добавлено: 2009-08-19 1:49:09
paradox
- vesa_adp->va_window = (emumem+L_ADD(info.vi_window));
+ vesa_adp->va_window = info.vi_window;
оно проявляеться в других режимах которые есть на i386
там plan режими кажись
на amd64 все линерал фрейм буффер
у мя этот баг удалось воспроизвести всего два раза, пару дней назад, когда я только начинал пробовать твой драйвер. Сейчас не получаяется: переключение с 1600x1200x32 на 800x600x32 проходит нормально. ЕМНИП, с 1024x768x32 тоже не было проблем.
если хватит желания
может портирую с 7 syscons без teken
и посмотрю будет глючить или нет