Страница 1 из 35
графическая консоль
Добавлено: 2009-08-13 23:42:44
paradox
набросал кода по емуляции функций биоса
взял x86emu с openbsd
прикрутил на скорую руку
запихнул в модуль ядреный аля test.ko
все работает
переводит в графический режим
и обратно
тоесть это для теста
надо до реализовать что бы можно было передавать блоки данных аля es:di итд
что бы можно было прочитать VESA даные
и дальше схрестить его с драйверов vesa.ko из i386 архитектуры
и вуаля))) то что я хотел будет работать
тоесть графическая консоль для amd64
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-14 7:26:57
Alex Keda
в рассылку посылал? или хотя бы на форум фряшный?
шоп код не пропал...
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-14 11:10:12
paradox
там того кода))))
к томуже пока еще кое что не работает(((
зы
я разобрался почему у меня мои архивы пропадают под юниксой
я оказыватеться вместо tar cjvf набираю для архивации tar xjvf ))))))
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-14 14:14:36
paradox
круть)
все пофиксил
прикручиваю к vesa.c
и сделаю архитектурно независимый vesa драйвер
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-14 14:57:19
paradox
paradox.lissyara.su/test.tar.bz2
Код: Выделить всё
VESA BIOS detected
v_version is 768, v_oemstr is 0x00002100,
v_venderstr is 0x00002107, v_prodstr is 0x0000211a,
v_revstr is 0x00002133, v_modetable is 0x00002022
VESA VBE Version 3.0
VESA VBE Total Mem: 32768 kB
VESA VBE OEM: NVIDIA
VESA VBE OEM Software Rev: 5.81
VESA VBE OEM Vendor: NVIDIA Corporation
VESA VBE OEM Product: Crush50 Board - c51pv0
VESA VBE OEM Product Rev: Chip Rev
VESA modes:
0x0100 graphics mode: 640 x 400 x 8 bpp
0x0101 graphics mode: 640 x 480 x 8 bpp
0x0102 graphics mode: 800 x 600 x 4 bpp
0x0103 graphics mode: 800 x 600 x 8 bpp
0x0104 graphics mode: 1024 x 768 x 4 bpp
0x0105 graphics mode: 1024 x 768 x 8 bpp
0x0106 graphics mode: 1280 x 1024 x 4 bpp
0x0107 graphics mode: 1280 x 1024 x 8 bpp
0x010e graphics mode: 320 x 200 x 16 bpp
0x010f graphics mode: 320 x 200 x 32 bpp
0x0111 graphics mode: 640 x 480 x 16 bpp
0x0112 graphics mode: 640 x 480 x 32 bpp
0x0114 graphics mode: 800 x 600 x 16 bpp
0x0115 graphics mode: 800 x 600 x 32 bpp
0x0117 graphics mode: 1024 x 768 x 16 bpp
0x0118 graphics mode: 1024 x 768 x 32 bpp
0x011a graphics mode: 1280 x 1024 x 16 bpp
0x011b graphics mode: 1280 x 1024 x 32 bpp
0x0130 graphics mode: 320 x 200 x 8 bpp
0x0131 graphics mode: 320 x 400 x 8 bpp
0x0132 graphics mode: 320 x 400 x 16 bpp
0x0133 graphics mode: 320 x 400 x 32 bpp
0x0134 graphics mode: 320 x 240 x 8 bpp
0x0135 graphics mode: 320 x 240 x 16 bpp
0x0136 graphics mode: 320 x 240 x 32 bpp
0x013d graphics mode: 640 x 400 x 16 bpp
0x013e graphics mode: 640 x 400 x 32 bpp
мае))) жду ваших
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-14 17:22:34
paradox
тестировалось на amd64 8-current
paradox.lissyara.su/vesa.tar.bz2
пересобираем ядро с опцией
далее заходим в папочку vesa
собираем драйвер
далее
список всех режимов
8 битные не поддерживаються фреймбуфером
нужно отдельно патчить
но 32 бита на ура
16bit тоже поидеи должны работать(попозже буду тестить все режимы и пофиксю 8bit)
я люблю 800x600x32
у меня это номер 277
переключаем консоль
и радуемся жизни в консоли)))
для того что бы после загрузки все консоли перевести в такой режим
можно подредактировать rc.conf
ну и незабываем проинсталлить vesa.ko
из папочки vesa
и в

Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-14 17:54:55
paradox
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 8:26:04
Гость
FreeBSD 8.0-CURRENT r196235M amd64
карточка
Код: Выделить всё
vgapci0@pci0:1:0:0: class=0x030000 card=0x34811458 chip=0x062210de rev=0xa1 hdr=0x00
vendor = 'Nvidia Corp'
device = 'nVidia (nVidia GeForce 9600GT)'
class = display
subclass = VGA
bar [10] = type Memory, range 32, base 0xf6000000, size 16777216, enabled
bar [14] = type Prefetchable Memory, range 64, base 0xe0000000, size 268435456, enabled
bar [1c] = type Memory, range 64, base 0xf4000000, size 33554432, enabled
bar [24] = type I/O Port, range 32, base 0xb000, size 128, enabled
cap 01[60] = powerspec 3 supports D0 D3 current D0
cap 05[68] = MSI supports 1 message, 64 bit enabled with 1 message
cap 10[78] = PCI-Express 1 endpoint max data 128(128) link x16(x16)
cap 09[b4] = vendor (length 20)
- режимы определяются, переключение между ними работает за исключением текстовых; высокое разрешение как всегда тормозное
- jfbterm + w3m с картинками работают; можно смотреть/обсуждать скриншоты на ЛОРе ;)
- SDL_VIDEODRIVER=vgl тоже работает. mplayer показывает видео, с тормозами.
Но по завершению показа оставляет пустой черный экран без возможности переключится на сосоедний терминал, ибо портится раскладка клавиатуры, т.е. нажатие привычных кнопок выводит совершенно неожидаемые символы.
- переключение между Xserver + DRM (nouveau) и консолью в vesa режиме не работает - виден только пустой черный экран. В логе
Код: Выделить всё
VESA: set_mode(): 24(18) -> 277(115)
VESA: about to set a VESA mode...
VESA: mode set!
VESA: setting up LFB
vesa_map_buffer: paddr:f5000000 vaddr:f5000000 size:e00000 off:0
vesa_set_mode(): vi_width:800, len:3200, line_width:3200
info: [drm] Unhandled PFIFO_INTR - 0x00000010
info: [drm] Unhandled PFIFO_INTR - 0x00000010
info: [drm] Unhandled PFIFO_INTR - 0x00000010
info: [drm] Unhandled PFIFO_INTR - 0x00000010
info: [drm] Unhandled PFIFO_INTR - 0x00000010
info: [drm] Unhandled PFIFO_INTR - 0x00000010
info: [drm] Unhandled PFIFO_INTR - 0x00000010
info: [drm] Unhandled PFIFO_INTR - 0x00000010
Код: Выделить всё
mode# flags type size font window linear buffer
------------------------------------------------------------------------------
24 (0x018) 0x00000001 T 80x25 8x16 0xb8000 32k 32k 0x00000000 32k
277 (0x115) 0x0000000f G 800x600x32 1 8x16 0xa0000 64k 64k 0xf5000000 14336k
Но работает:- Xserver + DRM <-> консоль в текстовом режиме
- Xserver + NoDRM <-> консоль в текстовом и vesa режиме
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 11:03:00
paradox
у меня и оригинальный веса на i386 глючил с переключениями в xorg
токо не помню в какой комбинации
так что можно списать на глючный sys/vm в бсд гдето там страницы мешаються
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 11:17:31
_Andy
paradox писал(а):у меня и оригинальный веса на i386 глючил с переключениями в xorg
токо не помню в какой комбинации
так что можно списать на глючный sys/vm в бсд гдето там страницы мешаються
В 7.2 RELEASE пойдет (теоретически)? Или можно не пытаться и время не терять?
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 11:20:55
paradox
теоретически пойдет на всех
>гость
а есть какойто мульти терминал? мне именно это и нужно в бсд
например запускаешь какойнибудь multiterm
и утебя много term которыми ты управляешь
все такие же кнопочки закрыть свернуть итд
под линухом нашел что то наподобии FBUI
под бсд что то нет((
а то чувствую буду писать свое((
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 11:24:26
_Andy
paradox писал(а):теоретически пойдет на всех
>гость
а есть какойто мульти терминал? мне именно это и нужно в бсд
например запускаешь какойнибудь multiterm
и утебя много term которыми ты управляешь
все такие же кнопочки закрыть свернуть итд
под линухом нашел что то наподобии FBUI
под бсд что то нет((
а то чувствую буду писать свое((
screen?
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 11:32:20
paradox
в нем есть окошечки, прокрутка как в примеру rxvt под xorg ?
и кнопочки закрыть свернуть и что бы окошечки можно было тягать?
посмотри FBUI это линуксовая разаработка которую уже давно кажись прикрылась
вот что то на подобии такого хочу
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 11:36:29
_Andy
paradox писал(а):в нем есть окошечки, прокрутка как в примеру rxvt под xorg ?
и кнопочки закрыть свернуть и что бы окошечки можно было тягать?
посмотри FBUI это линуксовая разаработка которую уже давно кажись прикрылась
вот что то на подобии такого хочу
http://home.comcast.net/~fbui/
оно?
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 11:39:22
paradox
оно
Copyright © 2004-2009 by Zack Smith.
когда ночью качал соурсы не заметил
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 11:41:28
_Andy
paradox писал(а):оно
Copyright © 2004-2009 by Zack Smith.
когда ночью качал соурсы не заметил
2.6.9 ядро. У меня такого нету. Сходу припомнается CentOS 4.6, в котором именно
2.6.9, но со своим патчсэтом, такие серверы стоят в продакшене, насколько я знаю.
У меня есть возможность на 2.6.18 попробовать.
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 11:45:02
paradox
смотри ниже там livecd есть
метров на 11
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 11:56:37
_Andy
paradox писал(а):смотри ниже там livecd есть
метров на 11
Так его записать еще надо, а у меня под рукой ничего нету.
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 13:01:03
_Andy
На семерке даже собираться не хочет:
Код: Выделить всё
vesa.c:903: warning: passing argument 1 of 'dump_buffer' from incompatible pointer type
vesa.c:854: warning: unused variable 'err'
vesa.c: In function 'vesa_set_mode':
vesa.c:1356: warning: assignment makes integer from pointer without a cast
vesa.c: In function 'vesa_set_origin':
vesa.c:1532: warning: unused variable 'err'
vesa.c: In function 'vesa_unload':
vesa.c:1976: warning: passing argument 1 of 'pmap_unmapdev' makes integer from pointer without a cast
vesa.c: At top level:
vesa.c:832: warning: 'vesa_fix_ptr' defined but not used
cc -O2 -fno-strict-aliasing -pipe -D_KERNEL -DKLD_MODULE -std=c99 -nostdinc -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c scvesactl.c
scvesactl.c:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
scvesactl.c: In function 'vesa_ioctl':
scvesactl.c:30: error: 'struct tty' has no member named 'si_drv1'
scvesactl.c:92: error: 'prev_user_ioctl' undeclared (first use in this function)
scvesactl.c:92: error: (Each undeclared identifier is reported only once
scvesactl.c:92: error: for each function it appears in.)
scvesactl.c: In function 'vesa_load_ioctl':
scvesactl.c:101: error: 'prev_user_ioctl' undeclared (first use in this function)
scvesactl.c:104: warning: assignment from incompatible pointer type
scvesactl.c: In function 'vesa_unload_ioctl':
scvesactl.c:111: warning: comparison of distinct pointer types lacks a cast
scvesactl.c:113: error: 'prev_user_ioctl' undeclared (first use in this function)
*** Error code 1
Код: Выделить всё
powercharge# uname -a
FreeBSD powercharge.moskb.local 7.2-RELEASE-p3 FreeBSD 7.2-RELEASE-p3 #0: Sat Aug 15 13:24:15 MSD 2009 andy@powercharge.moskb.local:/usr/obj/usr/src/sys/MYKERN i386
powercharge#
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 13:04:47
paradox
возьми с 7 scvesactl.c
в каталоге /usr/src/sys/dev/syscons/
и замени его
должно собраться
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 13:13:08
paradox
и поправь в нем строчку
на
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 13:37:21
_Andy
Спасибо, модуль собрался.
Вопрос - для чего нужен .kld файл?
Я на выходе такое получил:
Код: Выделить всё
7348639 -rw-r--r-- 1 root wheel 71K 15 ??? 14:33 newvesa.kld
7348641 -rwxr-xr-x 1 root wheel 73K 15 ??? 14:33 newvesa.ko
p.S: на название не обращай внимание, это я порт сделал

Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 13:41:13
paradox
а хз
после
оно поставить токо нужные остальные можно будет
end
если verbose поднять до 9 sysctl то после загрузки модуля можно кое какие логи увидеть по найденым режимам
Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 13:43:31
Andy
Сейчас попробую в хомяка заинсталлить, дабы поглядеть какие файлы инсталлируются,
что бы порт поправить. Кстати, тебе порт нужен?

Re: RELENG_8, или /stable/8 ответвился
Добавлено: 2009-08-15 13:47:17
paradox
у лиса посмотри в драйвер скайстара
там не все так просто с установочными файлами драйверов
та ну бросте зачем порт))
я думаю когда девелоперы зарелизят 8
то прочухаються с этим драйвером и уже нормально в ядре все сделают сами