Страница 25 из 35
Re: графическая консоль
Добавлено: 2009-09-21 12:24:12
Гость
paradox писал(а):ну думаю можно и добавться
я так смотрю там реальные имена не нужны можно и ник + емеил
меня не надо добавлять. Моего кода там нет. Тупая копипаста.
paradox писал(а):кстати сделай патч для i386/bios/apm.c
что бы под amd64 было
на что заменить?
Код: Выделить всё
if (vm86_intcall(APM_INT, &vmf))
return ENXIO; /* APM not found */
paradox писал(а):и утилиты попутно bin/apm/
там вроде нет архитектурно зависимого кода
Re: графическая консоль
Добавлено: 2009-09-21 12:29:54
paradox
на что заменить?
ну да
там вроде нет архитектурно зависимого кода
вмысле что бы оно инсталлилось на amd64
оно вроде запрешенно для этой архитектуры
Re: графическая консоль
Добавлено: 2009-09-21 12:40:55
paradox
/src/usr.sbin/Makefile
Код: Выделить всё
.if ${MACHINE_ARCH} == "i386"
.if ${MK_APM} != "no"
_apm= apm
_apmd= apmd
.endif
_asf= asf
вмысле это я имел ввиду про инталляцию
Re: графическая консоль
Добавлено: 2009-09-21 12:59:08
Гость
paradox писал(а):ну да
избавился от проверки. Осталось только
Код: Выделить всё
@/dev/apm/apm.h:46:19: error: field has incomplete type 'struct bios_args'
struct bios_args bios;
^
@/dev/apm/apm.h:46:9: note: forward declaration of 'struct bios_args'
struct bios_args bios;
^
/home/holo/dist/git-freebsd/sys/modules/apm/../../dev/apm/apm.c:192:3: error:
implicit declaration of function 'set_bios_selectors' is invalid in C99
[-Wimplicit-function-declaration]
set_bios_selectors(&sc->bios.seg,
^
/home/holo/dist/git-freebsd/sys/modules/apm/../../dev/apm/apm.c:194:11: error:
implicit declaration of function 'bios32' is invalid in C99
[-Wimplicit-function-declaration]
errno = bios32(&sc->bios.r,
^
/home/holo/dist/git-freebsd/sys/modules/apm/../../dev/apm/apm.c:197:11: error:
implicit declaration of function 'bios16' is invalid in C99
[-Wimplicit-function-declaration]
errno = bios16(&sc->bios, NULL);
^
5 diagnostics generated.
похоже, используется
i386/i386/bios.c
i386/i386/bioscall.s
Re: графическая консоль
Добавлено: 2009-09-21 13:13:31
paradox
печально
недосмотрел
там биос вызовы используються и для вычисления адрессов входа в APM функции
Re: графическая консоль
Добавлено: 2009-09-21 13:45:21
paradox
- p = BIOS_PADDRTOVADDR(((u_int32_t)vmf.vmf_es << 4) + vmf.vmf_bx);
+ p = BIOS_PADDRTOVADDR((regs.R_ES << 4) + regs.R_BX);
надо подумать и разобраться
ибо ES это 16битный регистр
а при сдвиге <<4 можно все потерять
все зависит от того как среагирует компилятор
посему uint32_t был там правильный
и почему оно паниковало не понятно...
Re: графическая консоль
Добавлено: 2009-09-21 14:05:11
paradox
да уж
пихнуть графическую гуи в ядро пока что я не придумал как
ибо нельзя сделать
user-level
Код: Выделить всё
void
callFunc(void *)
{
}
RegisterCallback(callFunc);
kernel-level
тоесть другими словами
нельзя функции из юзер левела
зарегистрировать в уровня ядра
и оттуда вызвать
а даже если и можно
то это будет нарушение серьюрности
ибо тогда в функции callFunc в юзер левеле можно будет выполнять код ring0
так что пока что одни размышление как это впихнуть
Re: графическая консоль
Добавлено: 2009-09-21 14:50:15
Гость
paradox писал(а):и почему оно паниковало не понятно...
ну, во первых
Код: Выделить всё
/sys/dev/atkbdc/atkbd.c: In function 'get_typematic':
/sys/dev/atkbdc/atkbd.c:1105: warning: cast to pointer from integer of different size
а каст на (uint32_t), наверное можно было и оставить.
Re: графическая консоль
Добавлено: 2009-09-21 14:56:15
paradox
а каст на (uint32_t), наверное можно было и оставить.
ну я так понял именно из за этого каста у тебя и падало?
или то из за позней загрузки x86bios было?
Re: графическая консоль
Добавлено: 2009-09-21 15:06:00
Гость
paradox писал(а):ну я так понял именно из за этого каста у тебя и падало?
падало из-за implicit каста на uint32_t при присваивании адреса в
p. Отсюда я поменя тип у
p с u_int32_t на vm_offset_t. Не помню почему убрал каст для regs.R_ES. ЕМНИП, после проверки результата через printf'ы.
Re: графическая консоль
Добавлено: 2009-09-21 15:08:40
paradox
докомпиляеться нужно будет проверить
кстати насчет палитры
Андрей говорит что палитра не восстанавлиаеться если переключаться после иксов в другие консоли которые находяться в том же режиме где и побитая палитра
но восстанавливаеться когда при переключении между консолями если другая консоль в MODE_24 например
так?
Re: графическая консоль
Добавлено: 2009-09-21 15:12:55
Гость
вобщем, если считаешь, что каст для R_ES нужен, то скажи Xin Li, чтобы применил
Код: Выделить всё
Index: /sys/dev/atkbdc/atkbd.c
===================================================================
--- /sys/dev/atkbdc/atkbd.c (revision 197389)
+++ /sys/dev/atkbdc/atkbd.c (working copy)
@@ -1101,7 +1101,7 @@
x86biosCall(®s, 0x15);
if ((regs.R_EFLG & PSL_C) || regs.R_AH)
return ENODEV;
- p = BIOS_PADDRTOVADDR((regs.R_ES << 4) + regs.R_BX);
+ p = BIOS_PADDRTOVADDR(((uint32_t)regs.R_ES << 4) + regs.R_BX);
if ((readb(p + 6) & 0x40) == 0) /* int 16, function 0x09 supported? */
return ENODEV;
regs.R_AX = 0x0900;/
paradox писал(а):Андрей говорит что палитра не восстанавлиаеться если переключаться после иксов в другие консоли которые находяться в том же режиме где и побитая палитра
мне любопытно. А этот баг был на старом (vm86) vesa драйвере?
paradox писал(а):но восстанавливаеться когда при переключении между консолями если другая консоль в MODE_24 например
без разницы в каком режиме консоль
Re: графическая консоль
Добавлено: 2009-09-21 15:15:04
Гость
Гость писал(а):без разницы в каком соседняя режиме консоль
fixed
Re: графическая консоль
Добавлено: 2009-09-21 15:15:53
paradox
ну так ты говорил что с кастом падает в паник
а вот кто его знает был такой глюк или небыл) теперь не узнаем
думаю что был
Re: графическая консоль
Добавлено: 2009-09-21 15:23:25
Гость
paradox писал(а):ну так ты говорил что с кастом падает в паник
вот с этим кастом.
Код: Выделить всё
Index: sys/dev/atkbdc/atkbd.c
===================================================================
--- sys/dev/atkbdc/atkbd.c (revision 197389)
+++ sys/dev/atkbdc/atkbd.c (working copy)
@@ -1095,7 +1095,7 @@
* rate previously set via the BIOS...
*/
x86regs_t regs;
- vm_offset_t p;
+ uint32_t p;
regs.R_AX = 0xc000;
x86biosCall(®s, 0x15);
будет паника. А с предыдущем - нет. Впрочем, я не тестировал на реальной машине (только qemu).
ps, мне проще использовать explicit/implicit, поэтому у мя type conversion == implicit cast.
Re: графическая консоль
Добавлено: 2009-09-21 15:25:21
Гость
Гость писал(а):я не тестировал на реальной машине (только qemu)
по-отдельности не тестил, а вместе - несколько дней назад.
Re: графическая консоль
Добавлено: 2009-09-21 15:25:50
paradox
дойдут руки до соборки ядра на amd64
перепроверю
Re: графическая консоль
Добавлено: 2009-09-21 17:41:36
Гость
обновил пока порт (
vesa-kmod.diff). Теперь там 3 модуля (исключая x86bios): dpms, s3, vesa. Код тупо скопирован из /head, за исключением корневого Makefile'а.
ЕМНИП, должно работать и на 6-stable. Никто не пробовал?
Re: графическая консоль
Добавлено: 2009-09-21 17:48:00
paradox
кстати можно спросить у Ли насчет MFC
или они делают токо после какого то продолжительного периода?
Re: графическая консоль
Добавлено: 2009-09-21 17:56:27
Гость
paradox писал(а):кстати можно спросить у Ли насчет MFC
уже спрашивал (ты там есть в CC). В 7-stable MFC
будет. Про 6-stable - пока не спрашивал, есть ли смылс?
Re: графическая консоль
Добавлено: 2009-09-21 18:00:29
paradox
про RELENG_6 Ли у себя на странице написал что будет
правда там по китайски написано
но вроде как собираеться
другой вопрос когда и при каких условиях это делаеться
MFC вмысле
Re: графическая консоль
Добавлено: 2009-09-21 19:24:58
paradox
брр
я перевел криво
он сказал что это должно работать и для других версий RELENG_7 RELENG_6
ps
я Едового настроения не понимаю
точнее то что он делает
а так я бы наверное и uft8 уже бы добавил
но зачем бежать в переди паровоза
Re: графическая консоль
Добавлено: 2009-09-21 22:55:45
paradox
еххх
насчет проблем с kbd.c
прийдеться создавать PR
ибо Ед говорит что он не разбираеться со скан кодами и тем более с моей локалью(причем там локаль? бррр)
либо придеться подумать как так втолковать с одного ответа что бы он понял суть проблемы...
Re: графическая консоль
Добавлено: 2009-09-21 22:58:38
paradox
гость сможешь разьяснить так PR и отправить
что бы было понятно не токо ed@ ?
)))
Re: графическая консоль
Добавлено: 2009-09-22 0:23:00
paradox
вообщем приехали
1) гружу бсд (которая по дефолту не переключает в графику тоесть по умолчанию MODE_24) и переключаю нулевую консоль в MODE_277
2) startx
3) переключаюсь с иксов в консоль Ctrl+Alt+F1
4) переключаюсь в Alt+F2 (где по дефолту MODE_24)
5) пробую переключться в Alt+F1 (где включен уже MODE_277) и зависли)))
ребут
иксы пробовал vesa nv nouveau
nv вообще можно выбросить они не рабочие напрочь
vesa и nouveau одинакого выснет фря по выше изложеным действиям
у тебя так же?)