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

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

Модератор: terminus

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

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

Непрочитанное сообщение Гость » 2009-08-22 11:28:46

_Andy писал(а):
Гость писал(а):там в дистфайле уже есть свой scvesactl.c. Он должен и использоваться.
Для семерки разве он должен использоваться? Я патчил семерочный родной файл.
если у тя 7-ка, то там на этот scvesactl.c применяется misc/vesa-kmod/files/extra-patch-scvesactl.c, согласно

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

.if ${OSVERSION} < 800000
EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-scvesactl.c
.endif

Хостинговая компания 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/

_Andy
проходил мимо

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

Непрочитанное сообщение _Andy » 2009-08-22 13:20:27

Запатчил, перезагрузился.
Во время загрузки, графического режима не увидел,
только после запуска настроек из rc.conf.

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

powercharge% uname -a
FreeBSD powercharge.moskb.local 7.2-RELEASE-p3 FreeBSD 7.2-RELEASE-p3 #0: Sat Aug 22 13:21:51 MSD 2009     andy@powercharge.moskb.local:/usr/obj/usr/src/sys/MYKERN  i386
powercharge%
powercharge% cat /boot/device.hints | grep hint.sc
hint.sc.0.at="isa"
hint.sc.0.flags="0x118"
powercharge% 

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

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

Непрочитанное сообщение paradox » 2009-08-22 13:23:18

ну так ты не то выставил в флагах

_Andy
проходил мимо

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

Непрочитанное сообщение _Andy » 2009-08-22 13:24:49

paradox писал(а):ну так ты не то выставил в флагах
Что я забыл?

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

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

Непрочитанное сообщение paradox » 2009-08-22 13:48:14

ты вообще какие то не те флаги выставил
да еще и не так

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

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

Непрочитанное сообщение Гость » 2009-08-22 13:57:36

_Andy писал(а):Что я забыл?
сдвиг влево на 4 позиции и 0x180.
Graphics mode is enabled by specifying 0x80 as syscons(4) driver flag
using device.hints(5). If it's not supported by your configuration
then booting continues in text mode. Otherwise desired mode can be
specified by left-shifting 4 positions its number in driver flags
,
e.g. mode 0x118 becomes flag 0x1180000. The default mode is 0x115
(800x600x32). Maximum/minimum are 0x1ff/0x100, otherwise default mode
is used.

For example, to choose mode 280 add following to loader.conf(5):

hint.sc.0.flags=0x1180180

where 0x180 at the right end preserves default 0x100 flag for keyboard
autodetection.

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

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

Непрочитанное сообщение Гость » 2009-08-22 14:04:06

Гость писал(а):[сдвиг влево на 4 позиции и 0x180
Спасибо. Сейчас переделаю. Я думал что в эту переменную режимы из

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

vidcontrol -i mode
надо подставлять.

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

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

Непрочитанное сообщение paradox » 2009-08-22 14:06:56

надо
токо сдвинув влево на 16 бит

_Andy
проходил мимо

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

Непрочитанное сообщение _Andy » 2009-08-22 14:16:27

paradox писал(а):надо
токо сдвинув влево на 16 бит

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

mov ax, 280
shl ax,4
Так что ли? :smile:

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

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

Непрочитанное сообщение paradox » 2009-08-22 14:20:35

flags = (0x115 << 16 | 0x180)
так

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

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

Непрочитанное сообщение paradox » 2009-08-22 14:24:58

у тебя для 7 неполный пачт
не заработает
пропатч правильно

_Andy
проходил мимо

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

Непрочитанное сообщение _Andy » 2009-08-22 14:25:10

у меня как раз 280 используется, следовательно
пример из мана пригоден в моем случае:

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

hint.sc.0.flags=0x1180180
Только бут все равно в текстмоде идет.

_Andy
проходил мимо

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

Непрочитанное сообщение _Andy » 2009-08-22 14:26:03

paradox писал(а):у тебя для 7 неполный пачт
не заработает
пропатч правильно
все то, что было в порте я наложил.
syscons.c патчить?

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

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

Непрочитанное сообщение paradox » 2009-08-22 14:31:52

_Andy писал(а):
paradox писал(а):пофиксь ручками) и сделай патчи для 7
Пофиксил руками, для семерки патч следующий!

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

powercharge# cat patch-ab.patch 
--- /usr/src/sys/dev/syscons/syscons.c.orig	2009-04-15 07:14:26.000000000 +0400
+++ /usr/src/sys/dev/syscons/syscons.c	2009-08-22 10:59:58.000000000 +0400
@@ -367,17 +367,21 @@
     scp = sc_get_stat(sc->dev[0]);
     if (sc_console == NULL)	/* sc_console_unit < 0 */
 	sc_console = scp;
+	vmode = (flags >> 16) & 0x1fff;
+	 if (vmode < M_VESA_BASE || vmode > M_VESA_MODE_MAX)
+          vmode = M_VESA_FULL_800;
 
 #ifdef SC_PIXEL_MODE
     if ((sc->config & SC_VESA800X600)
-	&& ((*vidsw[sc->adapter]->get_info)(sc->adp, M_VESA_800x600, &info) == 0)) {
+     && (vidd_get_info(sc->adp, vmode, &info) == 0)) {
+
 #ifdef DEV_SPLASH
 	if (sc->flags & SC_SPLASH_SCRN)
-	    splash_term(sc->adp);
+         splash_term(sc->adp);	 
 #endif
-	sc_set_graphics_mode(scp, NULL, M_VESA_800x600);
-	sc_set_pixel_mode(scp, NULL, COL, ROW, 16, 8);
-	sc->initial_mode = M_VESA_800x600;
+          sc_set_graphics_mode(scp, NULL, vmode);
+	  sc_set_pixel_mode(scp, NULL, 0, 0, 16, 8);
+	  sc->initial_mode = vmode;
 #ifdef DEV_SPLASH
 	/* put up the splash again! */
 	if (sc->flags & SC_SPLASH_SCRN)
этот патч не полный
незнаю откуда ты его взял)

_Andy
проходил мимо

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

Непрочитанное сообщение _Andy » 2009-08-22 14:36:42

paradox писал(а):этот патч не полный
незнаю откуда ты его взял)
Тот который от 006 был - не наложившаяся часть, которую ты мне советовал
переделать руками.

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

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

Непрочитанное сообщение paradox » 2009-08-22 14:43:36

paradox.lissyara.su/syscons.c.diff
и сравни со своим)
чего там не хватает

ты ж полный патч показывал? или

_Andy
проходил мимо

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

Непрочитанное сообщение _Andy » 2009-08-22 14:50:38

Я уже запутался в этом многообразии патчей.

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

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

Непрочитанное сообщение paradox » 2009-08-22 14:55:47

тебе для 7 нужно переделать токо патч syscons.c.diff и по твоему желанию/усмотрению патч для поддержки 8битного рендеринга

в порту у тебя токо vesa и все

_Andy
проходил мимо

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

Непрочитанное сообщение _Andy » 2009-08-22 15:02:03

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

0006-fix-setting-graphics-mode-during-bootlog-and-extend-.patch
Этот не накладывать что ли?

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

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

Непрочитанное сообщение paradox » 2009-08-22 15:03:53

ну это и есть syscons.c.diff

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

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

Непрочитанное сообщение Гость » 2009-08-23 3:54:40

paradox, не против если я избавлюсь от warning'ов? просто если вкомпиливать vesa в ядро, то приходится все ядро собирать без -Werror, что не есть хорошо.

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

diff --git a/sys/dev/fb/vesa.c b/sys/dev/fb/vesa.c
index 88e8c67..c73b323 100644
--- a/sys/dev/fb/vesa.c
+++ b/sys/dev/fb/vesa.c
@@ -304,7 +304,6 @@ static int
 vesa_bios_get_mode(int mode, struct vesa_mode *vmode)
 {
 	u_char *buf;
-	int err;
 
 	vesa_emu.x86.R_EAX = 0x4f01;
 	vesa_emu.x86.R_ECX = mode;
@@ -326,8 +325,6 @@ vesa_bios_get_mode(int mode, struct vesa_mode *vmode)
 static int
 vesa_bios_set_mode(int mode)
 {
-	int err;
-
 	vesa_emu.x86.R_EAX = 0x4f02;
 	vesa_emu.x86.R_EBX = mode;
 
@@ -339,8 +336,6 @@ vesa_bios_set_mode(int mode)
 static int
 vesa_bios_get_dac(void)
 {
-	int err;
-
 	vesa_emu.x86.R_EAX = 0x4f08;
 	vesa_emu.x86.R_EBX = 1;
 
@@ -355,8 +350,6 @@ vesa_bios_get_dac(void)
 static int
 vesa_bios_set_dac(int bits)
 {
-	int err;
-
 	vesa_emu.x86.R_EAX = 0x4f08;
 	vesa_emu.x86.R_EBX = (bits << 8);
 
@@ -372,7 +365,6 @@ static int
 vesa_bios_save_palette(int start, int colors, u_char *palette, int bits)
 {
 	u_char *p;
-	int err;
 	int i;
 
 	vesa_emu.x86.R_EAX = 0x4f09;
@@ -404,7 +396,6 @@ vesa_bios_save_palette2(int start, int colors, u_char *r, u_char *g, u_char *b,
 			int bits)
 {
 	u_char *p;
-	int err;
 	int i;
 
 	vesa_emu.x86.R_EAX = 0x4f09;
@@ -435,7 +426,6 @@ static int
 vesa_bios_load_palette(int start, int colors, u_char *palette, int bits)
 {
 	u_char *p;
-	int err;
 	int i;
 
 	p = (emumem + REALOFF(2));
@@ -467,7 +457,6 @@ vesa_bios_load_palette2(int start, int colors, u_char *r, u_char *g, u_char *b,
 			int bits)
 {
 	u_char *p;
-	int err;
 	int i;
 
 	p = (emumem + REALOFF(2));
@@ -497,8 +486,6 @@ vesa_bios_load_palette2(int start, int colors, u_char *r, u_char *g, u_char *b,
 static int
 vesa_bios_state_buf_size(void)
 {
-	int err;
-
 	vesa_emu.x86.R_EAX = 0x4f04;
 	vesa_emu.x86.R_ECX = STATE_ALL;
 	vesa_emu.x86.R_EDX = STATE_SIZE;
@@ -515,7 +502,6 @@ static int
 vesa_bios_save_restore(int code, void *p, size_t size)
 {
 	u_char *buf;
-	int err;
 
 	if (size > VESA_X86EMU_BUFSIZE)
 		return (1);
@@ -541,8 +527,6 @@ vesa_bios_save_restore(int code, void *p, size_t size)
 static int
 vesa_bios_get_line_length(void)
 {
-	int err;
-
 	vesa_emu.x86.R_EAX = 0x4f06;
 	vesa_emu.x86.R_EBX = 1;
 
@@ -556,8 +540,6 @@ vesa_bios_get_line_length(void)
 static int
 vesa_bios_set_line_length(int pixel, int *bytes, int *lines)
 {
-	int err;
-
 	vesa_emu.x86.R_EAX = 0x4f06;
 	vesa_emu.x86.R_EBX = 0;
 	vesa_emu.x86.R_ECX = pixel;
@@ -582,8 +564,6 @@ vesa_bios_set_line_length(int pixel, int *bytes, int *lines)
 static int
 vesa_bios_get_start(int *x, int *y)
 {
-	int err;
-
 	vesa_emu.x86.R_EAX = 0x4f07;
 	vesa_emu.x86.R_EBX = 1;
 
@@ -602,8 +582,6 @@ vesa_bios_get_start(int *x, int *y)
 static int
 vesa_bios_set_start(int x, int y)
 {
-	int err;
-
 	vesa_emu.x86.R_EAX = 0x4f07;
 	vesa_emu.x86.R_EBX = 0x80;
 	vesa_emu.x86.R_EDX = y;
@@ -690,7 +668,6 @@ vesa_bios_init(void)
 	u_char *vmbuf;
 	int is_via_cle266;
 	int modes;
-	int err;
 	int i;
 
 	if (vesa_init_done)
@@ -715,10 +692,10 @@ vesa_bios_init(void)
 
 	bcopy(vmbuf, &buf, sizeof(buf));
 
-	vesa_adp_info = (struct vesa_info *)&buf;
+	vesa_adp_info = &buf;
 	if (bootverbose) {
 		printf("VESA: information block\n");
-		dump_buffer(&buf, sizeof(buf));
+		dump_buffer((u_char *)&buf, sizeof(buf));
 	}
 	if (vesa_adp_info->v_version < 0x0102) {
 		printf("VESA: VBE version %d.%d is not supported; "
@@ -1149,7 +1126,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 = (vm_offset_t)(emumem+L_ADD(info.vi_window));
 		vesa_adp->va_window_size = info.vi_window_size;
 		vesa_adp->va_window_gran = info.vi_window_gran;
 	}
@@ -1298,8 +1275,6 @@ vesa_load_state(video_adapter_t *adp, void *p)
 static int
 vesa_get_origin(video_adapter_t *adp, off_t *offset)
 {
-	int err;
-
 	vesa_emu.x86.R_EAX = 0x4f05;
 	vesa_emu.x86.R_EBX = 0x10;
 
@@ -1316,8 +1291,6 @@ vesa_get_origin(video_adapter_t *adp, off_t *offset)
 static int
 vesa_set_origin(video_adapter_t *adp, off_t offset)
 {
-	int err;
-
 	/*
 	 * This function should return as quickly as possible to 
 	 * maintain good performance of the system. For this reason,
@@ -1744,7 +1717,7 @@ vesa_unload(void)
 	splx(s);
 
 	if (emumem)
-		pmap_unmapdev(emumem, 0xc00000);
+		pmap_unmapdev((vm_offset_t)emumem, 0xc00000);
 
 	return error;
 }
diff --git a/sys/modules/vesa/Makefile b/sys/modules/vesa/Makefile
index 8d16e09..1dfc47c 100644
--- a/sys/modules/vesa/Makefile
+++ b/sys/modules/vesa/Makefile
@@ -6,7 +6,6 @@
 KMOD=	vesa
 SRCS=	vesa.c scvesactl.c x86emu.c x86emu_util.c opt_vga.h opt_vesa.h
 
-WERROR=
 #CFLAGS+=	-DVESA_DEBUG=2
 
 .include <bsd.kmod.mk>

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

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

Непрочитанное сообщение paradox » 2009-08-23 8:59:38

на ваше усмотрение))
мне вообще хватает того веса какой у меня есть

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

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

Непрочитанное сообщение paradox » 2009-08-23 17:07:19

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

шли от себя (меня там упоминать не обязательно)


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

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

Непрочитанное сообщение paradox » 2009-08-24 16:36:04

насчет того что бы xemu86 модулем делать - не уверен
ну ладно посмотрим реакциию вообще