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

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

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

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

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

allscreens_flags="MODE_277": переключение с MODE_277 на MODE_24 на ttyv1 - экран покрывается белыми вертикальными полосами, переключение на ttyv0 не работает; через несколько секунд watchdog (или что-то другое) перезагружает систему
странно вроде у меня работает
надо будет перепроверить

тоесть с hints убираем флаг графики
и ставим в rc.conf
и патч syscons.c.diff ламает это
так?

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

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

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

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

у меня все переключения работают
ты flags не очищай
0x100 там должен быть по умолчанию

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

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

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

paradox писал(а):тоесть с hints убираем флаг графики
и ставим в rc.conf
и патч syscons.c.diff ламает это
так?
нет, патч не ломает. Оно было уже поломоно при использовании только твоего vesa.tar.bz2. Просто при использовании режима в hint.sc.0.flags теперь переключение с MODE_277 на MODE_24 на ttyv1 у мя, наконец, работает.
paradox писал(а):у меня все переключения работают
ты flags не очищай
0x100 там должен быть по умолчанию
у мя там стоит 0x180 около года. Только после твоего патчика расскоментировал.

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

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

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

не
ты мне расскажи что и как мне сделать что бы белые полосы были
я про это говорил что мой syscons ломает
или я не понял?

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

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

Непрочитанное сообщение Гость » 2009-08-18 14:28:03

ок, после нескольких тестов, hint.sc.0.flags и первая консоль ttyv0 тут не причем. Пока не удалось определить причину когда 100% виснет и когда нет.
Попробуй сразу после загрузки с hint.sc.0.flags=0x180 переключить графический режим в текстовый (MODE_24) на каждой ttyvX.

надо попробовать в qemu воспроизвести.

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

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

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

я уже словил глюк
в любом из графических режимов он обратно не переключаеться в текстовый))

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

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

Непрочитанное сообщение Гость » 2009-08-18 14:36:23

но иногда ведь переключается? Я вот хочу понять из чего состоит это "иногда". ;)

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

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

Непрочитанное сообщение paradox » 2009-08-18 14:39:21

ну значит тебе повезло))
у миня не разу не переключился в текстовый
щас буду копать где глюк
еще на I386 7 проверю

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

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

Непрочитанное сообщение paradox » 2009-08-18 15:11:33

под 7 i386 все работает на ура
более того
такое чувство что даже между граф - текстовый
режимами как то мягче переключаеться
щас попробую с патчиками

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

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

Непрочитанное сообщение paradox » 2009-08-18 15:40:38

с патчиками тоже все хорошо переключаеться
нада диффать сисконс

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

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

Непрочитанное сообщение paradox » 2009-08-18 20:48:40

нихрена не пофиксил
немогу понять где глюк

что имеем
с моим vesa драйвером
1)amd64 8 - vesa.ko переключаем в MODE_277 графика все гуд - переключаем в MODE_24 все заморозилось
2)i386 7 vesa.ko переключаем в MODE_277 графика все гуд - переключаем в MODE_24 все работает

тоесть это не проблема моего vesa драйвера
делал diff dev/fb/ и dev/syscons/
в принципе разници особой нет
кроме того что ed@ добавил....

что нужно что бы локализовать проблему:
нужна 8 на i386 с моим vesa драйвером
и теже самые действия
тогда уже можно будет что то сказать

- если виснуть не будет значит глюк amd64 архитектуры где то, хз где
- если будет виснуть, значит это где то баг dev/fb/ и dev/syscons/

точнее тяжело сказать

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

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

Непрочитанное сообщение Гость » 2009-08-18 21:47:50

вот этих warning'ов можно избежать

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

/sys/modules/vesa/../../contrib/x86emu/x86emu.c: In function 'get_data_segment':
/sys/modules/vesa/../../contrib/x86emu/x86emu.c:432: warning: control reaches end of non-void function
/sys/modules/vesa/../../contrib/x86emu/x86emu.c: In function 'decode_rm_byte_register':
/sys/modules/vesa/../../contrib/x86emu/x86emu.c:663: warning: control reaches end of non-void function
/sys/modules/vesa/../../contrib/x86emu/x86emu.c: In function 'decode_rm_long_register':
/sys/modules/vesa/../../contrib/x86emu/x86emu.c:759: warning: control reaches end of non-void function
/sys/modules/vesa/../../contrib/x86emu/x86emu.c: In function 'decode_rm_word_register':
/sys/modules/vesa/../../contrib/x86emu/x86emu.c:711: warning: control reaches end of non-void function
/sys/modules/vesa/../../contrib/x86emu/x86emu.c: In function 'decode_rh_seg_register':
/sys/modules/vesa/../../contrib/x86emu/x86emu.c:805: warning: control reaches end of non-void function
/sys/modules/vesa/../../contrib/x86emu/x86emu.c: In function 'decode_rl_address':
/sys/modules/vesa/../../contrib/x86emu/x86emu.c:893: warning: 'offset' may be used uninitialized in this function
/sys/modules/vesa/../../contrib/x86emu/x86emu.c:935: warning: 'offset' may be used uninitialized in this function
если ты заменишь __dead на __dead2 в x86emu.c.

Я тут причесал слегка твои патчики: /users/Guest/vesa
и немножко измененный наложил на x86emu.

ps, не то чтобы я в C разбираюсь, просто сравнил пару header'ов из openbsd и freebsd

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

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

Непрочитанное сообщение paradox » 2009-08-18 21:58:19

давай если ты уже хочешь впихнуть xemu86 в sys/contrib/
то уберем нафиг поддержку ее для приложений верхнего уровня
тогда

#ifdef _KERNEL_
нужно убрать везде

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

struct _jmp_buf	exec_state;
лучше заменить на

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

jmp_buf		exec_state;
ну итд
пересмотри насчет jmp что там и как
там longjmp тоже не такой

насчет остального сойдет..

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

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

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

ed@ что то накрутил со своим teken мляяя

если режимы переключать косвенно
тоесть
vidcontrol MODE_24 < /dev/ttyv3
находясь в ttyv0 например
тогда все гуд
если переключать в тектовый находясь в графической консоли и в той же самой консоли
vidcontrol MODE_24
тогда нахрен все виснет так что токо ресет помогает
Последний раз редактировалось paradox 2009-08-18 22:08:17, всего редактировалось 1 раз.
Причина: token -> teken

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

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

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

возьми оригинальный xemu86 с опен бсд
что бы была какая то основа

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

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

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

paradox писал(а):давай если ты уже хочешь впихнуть xemu86 в sys/contrib/
то уберем нафиг поддержку ее для приложений верхнего уровня
тогда

#ifdef _KERNEL_
нужно убрать везде
только потому что единственный consumer в ядре? не вижу смысла, если учесть размер ifdef'ов.
paradox писал(а):

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

struct _jmp_buf	exec_state;
лучше заменить на

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

jmp_buf		exec_state;
ну итд
пересмотри насчет jmp что там и как
там longjmp тоже не такой
я идею взял из <sys/systm.h>, где в качестве типа используется struct _jmp_buf

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

struct _jmp_buf;

int     setjmp(struct _jmp_buf *);
void    longjmp(struct _jmp_buf *, int) __dead2;
ведь эти прототипы использует ядро, а не те что в <setjmp.h>.

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

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

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

paradox писал(а):возьми оригинальный xemu86 с опен бсд
что бы была какая то основа
ну так первый патчик и привносит нетронутый x86emu из опенка

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

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

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

забыл сказать, с `struct _jmp_buf' у мя твой vesa прекрасно работает. Был там баг из-за коего ядро не грузилось, но я быстро поправил. ;)

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

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

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

только потому что единственный consumer в ядре? не вижу смысла, если учесть размер ifdef'ов.
не
1) потому что мне лениво лезть в юзер спейс и смотреть какой там в юсд jmp протитипы итд
2) потому что оно будет в ядре и юзер спецс ему нафиг ненадо
идею взял из <sys/systm.h>, где в качестве типа используется struct _jmp_buf
использует ядро, а не те что в <setjmp.h>.
то прототип
но само обявление находиться в

\cvsup\freebsd\8.0\src\sys\amd64\include\setjmp.h
\cvsup\freebsd\8.0\src\sys\i386\include\setjmp.h

посмотри в них
там
jmp_buf прототип
и нужно сделать так что этот прототип был виден с #include <machine/setjmp.h>

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

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

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

вот смотри пример кривости

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

+#ifdef _KERNEL
+	if (setjmp(&emu->exec_state))
+		return;
+#else
+	if (setjmp(emu->exec_state))
+		return;
+#endif
это в OpenBSD
а в FreeBSD в ядре будет

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

	if (setjmp(emu->exec_state))
		return;
если я не ошибаюсь

тоесть с точностью наоборот иподругому
потому ипредлагаю убратьнафиг _KERNEL_
и сделать как будто xemu86 будет работать токо в ядре
и никогда не для юзер спейса

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

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

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

а лонгджам для бсд будет такой
longjmp(emu->exec_state, 1);

сравни какой он для ядра в опенке
вот поэтому и предлагаю убрать нафиг if else
принять правило что все для ядра
и сделать патч

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

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

Непрочитанное сообщение Гость » 2009-08-18 23:01:51

посмотрел как другие используют jmp_buf в ядре. Видимо никто со `struct' не использует, поэтому удалил. Единственное место оставил

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

#ifdef _KERNEL
#include <sys/systm.h>
#include <machine/setjmp.h>
#else
#include <setjmp.h>
#endif
в userspace'е использование jmp_buf должно быть приблизительно одинаковое не только на openbsd и freebsd.

ps, ща патчик обновлю

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

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

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

в фрибсд
что для ядра что для юзер спейса
jmp одинаковые
и параметры такие же)))
поэтому токо в одном месте if def

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

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

Непрочитанное сообщение Гость » 2009-08-18 23:14:11

paradox писал(а):если режимы переключать косвенно
тоесть
vidcontrol MODE_24 < /dev/ttyv3
находясь в ttyv0 например
тогда все гуд
у мя нет. Переключение режима срабатывает прекрасно, но как только я переключаюсь на ttyv3 после выставления режима - виснет.

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

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

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

у мя нет. Переключение режима срабатывает прекрасно, но как только я переключаюсь на ttyv3 после выставления режима - виснет.
скорее всего из за того что у нас разные 8
у меня 8-beta2 которую я еще брал с =.
если у тебя RELENG_8
то скорее всего ed@ уже там что то накрутил

вообщем предлагаю этот глюк пофиксить самому ed@
потому что его teken/
отровенное *********
потому что там на каждом шагу assert
и на одном из них у меня постоянно падает когда я пытаюсь найти глюк этого переключания туда сюда с графики в текстовый режим

на 7 у меня работает все прекрасно без глюков
но там еще небыло этого teken/