[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ati9200 + tv-out (X4.2.1, Debian)



Купил я себе домой ATI Radeon 9200 (Sapfire), под WinXP завёл без проблем
всё, и TV-Out в том числе (очень понравилась идея Theatre Mode).

Хочу такого же и под Linux ;)

Имеем Debian/древний unstable, соответственно X-ы версии 4.2.1 (хотя я вижу
в testing уже даже есть 4.3.0 - может попробую на днях обновиться.

Я настраивал всё по документу

ATI Linux How-To
Peter Gracar (who.knows@email.si)
v0.3.0, 1 January 2004

Вроде достаточно свежий, сегодня попробую найти и поновее.

Пересобрал ядро и выключил поддержку drm. Запустил fglrxconfig, он мне
создал новый XF86Config-4.

И вот я пытаюсь запустить Х-ы - видно, что пытается переключиться в
графический режим, но так и остаётся с чёрным экраном (на ТВ то же
самое). При этом машина не виснет, хотя ни одна комбинация клавиш не
работает, только по alt-ctrl-del я спокойно перегружаюсь.

Это вначале я попытался включить двухголовый режим (я правильно понимаю?),
после чего я понял, что нужно хотя бы поднять Х-ы.

Конфиг у меня был вот такой:

,----
| Section "dri"
| 	# Access to OpenGL ICD is allowed for all users:
| 	Mode 0666
| 	# Access to OpenGL ICD is restricted to a specific user group:
| 	# Group 100    # users
| 	# Mode 0660
| EndSection
| 
| Section "Module"
| 	Load		"dbe"  	# Double buffer extension
| 	SubSection  "extmod"
| 	  # don't initialise the DGA extension
| 	  Option	"omit xfree86-dga" 
| 	EndSubSection
| 	Load		"type1"
| 	Load		"freetype"
| 	Load		"glx"   # libglx.a
| 	Load		"dri"   # libdri.a
| EndSection
| 
| Section "InputDevice"
| 	Identifier	"Generic Keyboard"
| 	Driver		"keyboard"
| 	Option		"CoreKeyboard"
| 	Option		"XkbRules"	"xfree86"
| 	Option		"XkbModel"	"pc102"
| 	Option		"XkbLayout"	"us"
| EndSection
| 
| Section "InputDevice"
| 	Identifier	"Configured Mouse"
| 	Driver		"mouse"
| 	Option		"CorePointer"
| 	Option		"Device"		"/dev/psaux"
| 	Option		"Protocol"		"ImPS/2"
| 	Option		"ZAxisMapping"		"4 5"
| EndSection
| 
| Section "Monitor"
| 	Identifier	"LG StudioWorks 55i"
| 	HorizSync	28-54
| 	VertRefresh	43-88
| 	Option		"DPMS"
| 	ModeLine "800x600"	56.3	800 832 896 1048 600 601 604 631 -vsync -hsync
| #	ModeLine "800x600"	56.2	800 848 912 1048 600 601 604 631
| EndSection
| 
| Section "Device"
| 	Identifier	"ATI 9200"
| 	Driver		"fglrx"
| #	Option		"NoDDC"
| 	Option		"no_accel"	"no"
| 	Option		"no_dri"	"no"
| # disable DRI mtrr mapper, driver has its own code for mtrr
| 	Option		"mtrr"		"off"
| # Screen Management
| 	Option "DesktopSetup"               "0x00000000" 
| 	Option "MonitorLayout"              "AUTO, AUTO"
| 	Option "IgnoreEDID"                 "off"
| 	Option "HSync2"                     "unspecified" 
| 	Option "VRefresh2"                  "unspecified" 
| 	Option "ScreenOverlap"              "0" 
| # TV-out Management
| 	Option "NoTV"                       "yes"
| 	Option "TVStandard"                 "PAL-B"     
| 	Option "TVHSizeAdj"                 "0"     
| 	Option "TVVSizeAdj"                 "0"     
| 	Option "TVHPosAdj"                  "0"     
| 	Option "TVVPosAdj"                  "0"     
| 	Option "TVHStartAdj"                "0"     
| 	Option "TVColorAdj"                 "0"     
| 	Option "GammaCorrectionI"           "0x00000000"
| 	Option "GammaCorrectionII"          "0x00000000"
| # OpenGL specific profiles/settings
| 	Option "Capabilities"               "0x00000000"
| # Video Overlay for the Xv extension
| 	Option "VideoOverlay"               "on"
| # OpenGL Overlay
| 	Option "OpenGLOverlay"              "off"
| # Center Mode (Laptops only)
| 	Option "CenterMode"                 "off"
| # Pseudo Color Visuals (8-bit visuals)
| 	Option "PseudoColorVisuals"         "off"
| # QBS Management 
| 	Option "Stereo"                     "off"
| 	Option "StereoSyncEnable"           "1"
| # FSAA Management
| 	Option "FSAAEnable"                 "no"
| 	Option "FSAAScale"                  "1"
| 	Option "FSAADisableGamma"           "no"
| 	Option "FSAACustomizeMSPos"         "no"
| 	Option "FSAAMSPosX0"                "0.000000"
| 	Option "FSAAMSPosY0"                "0.000000"
| 	Option "FSAAMSPosX1"                "0.000000"
| 	Option "FSAAMSPosY1"                "0.000000"
| 	Option "FSAAMSPosX2"                "0.000000"
| 	Option "FSAAMSPosY2"                "0.000000"
| 	Option "FSAAMSPosX3"                "0.000000"
| 	Option "FSAAMSPosY3"                "0.000000"
| 	Option "FSAAMSPosX4"                "0.000000"
| 	Option "FSAAMSPosY4"                "0.000000"
| 	Option "FSAAMSPosX5"                "0.000000"
| 	Option "FSAAMSPosY5"                "0.000000"
| # Misc Options
| 	Option "UseFastTLS"                 "0"
| 	Option "BlockSignalsOnLock"         "on"
| 	Option "UseInternalAGPGART"         "yes"
| 	Option "ForceGenericCPU"            "no"
| 	BusID "PCI:1:0:0"    # vendor=1002, device=5961
| 	Screen 0
| EndSection
| 
| Section "Screen"
| 	Identifier	"Screen0"
| 	Device		"ATI 9200"
| 	Monitor		"LG StudioWorks 55i"
| 	DefaultDepth	24
| 	#Option "backingstore"
| 
| 	Subsection "Display"
| 	    Depth       24
| 	    Modes       "800x600"
| 	    ViewPort    0 0  # initial origin if mode is smaller than desktop
| 	EndSubsection
| EndSection
|
| Section "ServerLayout"
| 	Identifier	"Server Layout"
| 	Screen		"Screen0"
| 	InputDevice	"Generic Keyboard"
| 	InputDevice	"Configured Mouse"
| EndSection
`----

После просмотра логов я обнаружил:

(II) fglrx(0): UMM area:     0xd03e8000 (size=0x03c18000)
(II) fglrx(0): driver needs XFree86 version: 4.2.x
(II) fglrx(0): detected XFree86 version: 4.2.1
(II) Loading extension ATIFGLRXDRI
(II) fglrx(0): doing DRIScreenInit
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such device)
drmOpenDevice: Open failed
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such device)
drmOpenDevice: Open failed
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 4, (OK)
drmGetBusid returned ''
(II) fglrx(0): [drm] loaded kernel module for "fglrx" driver
(II) fglrx(0): [drm] created "fglrx" driver at busid "PCI:1:0:0"
(II) fglrx(0): [drm] added 8192 byte SAREA at 0xd08c4000
(II) fglrx(0): [drm] mapped SAREA 0xd08c4000 to 0x40204000
(II) fglrx(0): [drm] framebuffer handle = 0xd0000000
(II) fglrx(0): [drm] added 1 reserved context for kernel
(II) fglrx(0): DRIScreenInit done
(II) fglrx(0): Kernel Module Version Information:
(II) fglrx(0):     Name: fglrx
(II) fglrx(0):     Version: 3.7.6
(II) fglrx(0):     Date: Mar  5 2004
(II) fglrx(0):     Desc: ATI Fire GL DRM kernel module
(II) fglrx(0): Kernel Module version matches driver.
(II) fglrx(0): Kernel Module Build Time Information:
(II) fglrx(0):     Build-Kernel UTS_RELEASE:        2.6.2-mm1
(II) fglrx(0):     Build-Kernel MODVERSIONS:        no
(II) fglrx(0):     Build-Kernel __SMP__:            no
(II) fglrx(0):     Build-Kernel PAGE_SIZE:          0x1000
(II) fglrx(0): [drm] register handle = 0xe1000000

Хотя /dev/dri/card0 есть:

crw-rw-rw-    1 root     root     226,   0 2004-04-07 00:12 card0

Похоже, что на этой стадии у меня дальше работа Х-в останавливалась.

Короче, я начал играться с опциями dri и у меня всё-таки получилось
запустить Х-ы:

#	Option		"no_dri"	"no"
	Option		"no_dri"	"yes"

При этом в логе я наблюдаю:

(WW) fglrx(0): ***********************************
(WW) fglrx(0): * DRI initialization disabled!    *
(WW) fglrx(0): * 2D acceleraton available (MMIO) *
(WW) fglrx(0): * no 3D acceleration available    *
(WW) fglrx(0): ***********************************

(II) fglrx(0): Acceleration enabled
(II) fglrx(0): Direct rendering disabled
(II) Loading extension FGLRXEXTENSION
(II) Loading extension ATITVOUT
Symbol firegl_CheckMagic from module /usr/X11R6/lib/modules/drivers/fglrx_drv.o is unresolved!
Symbol firegl_QueryHwCaps from module /usr/X11R6/lib/modules/drivers/fglrx_drv.o is unresolved!
Symbol firegl_AllocCache from module /usr/X11R6/lib/modules/drivers/fglrx_drv.o is unresolved!
Symbol firegl_AllocCache from module /usr/X11R6/lib/modules/drivers/fglrx_drv.o is unresolved!
Symbol firegl_AGPAcquire from module /usr/X11R6/lib/modules/drivers/fglrx_drv.o is unresolved!
Symbol  from module /usr/X11R6/lib/modules/drivers/fglrx_drv.o is unresolved!
(II) Setting vga for screen 0.

А если я комментирую "Load "dri"", то ошибок ещё больше ;)

Странно, такое впечатление, что не так работает drm?

И в google я случайно обнаружил в архивах эхи вот это письмо:

,----
| От:Maxim Zubkov (Maxim.Zubkov@f889.n5030.z2.fidonet.org)
| Тема:radeon+tv
|  
| View this article only
| Группы новостей:fido7.ru.linux
| Дата:2003-10-12 18:15:02 PST
| 
| ....
| 
|  Character devices  --->
|     <*> /dev/agpgart (AGP Support)
|     [*]   Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860
| support
|     [*] Direct Rendering Manager (XFree86 DRI support)
|          --- DRM 4.1 drivers
|     < >   ATI Radeon
`----

То есть получается, что drm нужно включить, а вот именно модуль для ATI -
не нужно?

Но ведь в ati linux how-to:

,----
|    And enable the following options:
| 
|      * /dev/agpgart under ``character devices''
|      * MTRR (Memory Type Range Register) under ``processor type and
|        features''
| 
|    Then disable:
| 
|      * Direct Rendering Manager (XFree86 DRI support) under ``character
|        devices''
`----

Странно. Ок, сегодня попробую пересобрать ядро и посмотреть результат.

Но меня интересует главнее TV-Out, а не 3D всякие ;)

Поэтому меня интересует, как можно сделать что-то типа Theatre Mode?

Ну то есть работаю я за монитором, а вот изображение от mplayer в
телефизоре?

Как этого добиться? Какой режим нужно использовать? Меня заинтересовал
двух-головый режим - я правильно понимаю идею?

Но тогда fglrxconfig мне создал в конфигурационном файл вот такие секции (с
моей косметической правкой):

Section "Monitor"
	Identifier	"TV"
	HorizSync	31.5 - 37.9
	VertRefresh	50 - 70
	Option		"DPMS"
EndSection

Section "Device"
	Identifier	"ATI 9200x"
	Driver		"fglrx"
	BusID		"PCI:1:0:0"    # vendor=1002, device=5961
	Screen 1
EndSection

И вот мне непонятно назначение второго Device?
Зачем он?

Section "ServerLayout"
	Identifier	"Server Layout"
	Screen		"Screen0"
	Screen		"Screen1" RightOf "Screen0"
	InputDevice	"Generic Keyboard"
	InputDevice	"Configured Mouse"
EndSection

Или это режим типа Extended desktop, когда телевизор будет являться
продолжением рабочего стола?

,----
| От:Serg Oskin (Serg.Oskin@f20.n5020.z2.fidonet.org)
| Тема:Re: Как сделать TV-out независимый от монитора ?
|  
| View this article only
| Группы новостей:fido7.ru.linux
| Дата:2003-05-07 23:50:14 PST 
| 
| Я и в виндах и в линуксе пользую "картинка на TV является продолжением" -
| нужные окна перетаскиваю на TV мышкой и там разворачиваю если надо. Удобно
| еще и тем, что например в mplayer можно смотреть кино на TV, а его кнопки
| держать на мониторе. Т.к. wm в gnome умеет запоминать расположение окон в
| следующий раз они сами там и открываются. Hа мониторе 1280x1024x70Hz (TFT),
| на TV 1024x768x100Hz (мой это поддерживает).
| Правда у меня не GF4, а Radeon 8500.
`----

В принципе меня и такое устроит, только подскажите, кто как это настраивал?

(Является ли это dual-head режим + xinerama или это big desktop - выражаясь
в терминах ATI Linux HOWTO?)

И вот ещё одну интересную фразу я нашёл:

,----
| От:Timothey Sleptsov (tim_sleptsov@fromru.com)
| Тема:Re: TV-out
| View: Complete Thread (40 сообщений)
| Original Format
| Группы новостей:fido7.ru.linux
| Дата:2002-05-30 01:45:08 PST 
| 
| P.S
| Лично я, если хочу посмотреть фильм на телевизоре, то из X набираю
| что-то вроде "X -layout TV :1", после чего на телевизоре появляются
| другой экран X. Я переключаюсь на :0 (ALT+F7) и пишу "mplayer --display
| :1 -vo xv my.avi" (на самом деле у меня alias). 
`----

Можно узнать, как такое настраивается?

Вот нашёл полный документ ATI Linux HOWTO:

http://www.rage3d.com/content/articles/atilinuxhowto/

Буду рад любой информации, спасибо!

-- 
Serge Olkhowik <solo@isd.dp.ua>
ISD Configuration Management Team <cm@isd.dp.ua>



Reply to: