Gå til innhold

Linux : TV-out med nVidia kort


Anbefalte innlegg

Har jobbet med det ei stund nå. Det er til tider vanskelig å få ting akkurat slik du vil ha dem, men jeg tror jeg har funnet løsningen nå. Det jeg nemlig har savnet stort i Linux er et TV-tool lignende verktøy. Nå har jeg funnet det. Det heter nvtv (står for nVidia TV tipper jeg), og du finner kildekode osv på nettet. Gentoo har det til og med som en portage pakke, for de som bruker Gentoo.

 

Så til en liten rekke med tips. Problemet er nemlig det, at når man kjører mplayer, som jeg forstår at de fleste gjør, så vil det å velge å kjøre fullscreen kjøre videoen på hele desktopen. Når man bruker nvtv, så kan man velge 720x576 (som er den beste oppløsningen man kan velge å bruke på et PAL TV. Dersom man velger en annen oppløsning vil bildet bli interpolert til den oppløsningen uansett, fordi TVen ikke har noen annen oppløsning egentlig, og man mister skarphet i bildet). Problemet er at det er litt vanskelig å få desktopen til å ha akkurat den oppløsningen, slik at man kan kjøre fullscreen i mplayer.

 

Løsningen er ganske komplisert enkel. Du må definere en modline i /etc/X11/XF86config-4 fila di. Hos meg så ser den linja slik ut (alt på en linje):

 


ModeLine "720x576" 35.81 720 768 784 1008 576 576 579 592

 

Denne defineres under 'Section "Monitor"'. Når man har gjordt det, så er det greit å legge til en ekstra konfigurasjon i XF86config fila. Jeg har laget en mulighet for å kjøre to Xservere samtidig, der den ene er med vanlig desktop, og den andre er for å se film.

 

Øverst i XF86config fila di (som regel øverst i alle fall) så har du Section "serverlayout". Du kan ha flere slike sections, og den øverste kjøres automatisk hvis du ikke spesifiserer noe. Vanlig startx eller dersom du har X i boot, så velges den øverste. Det du må derfor gjøre er å kopiere hele den sectionen, og paste den inn nedenfor. Her ser du mine to første sections i config fila:

 


Section "ServerLayout"

Identifier     "XFree86 Configured"

Screen      0  "Screen0" 0 0

InputDevice    "Mouse0" "CorePointer"

InputDevice    "Keyboard0" "CoreKeyboard"

EndSection



Section "ServerLayout"

       Identifier      "720"

Screen      0  "Screen720" 0 0

InputDevice    "Mouse0" "CorePointer"

InputDevice    "Keyboard0" "CoreKeyboard"

EndSection

 

Som dere kan se er det ikke mye som skal forandres. Identifier er navnet du må skrive i kommandolinjen når du skal starte den andre Xserveren. Screen720 er valget av oppløsning og lignende. Som regel nederst i fila så finner du sections som ligner litt på dette:

 


Section "Screen"

Identifier "Screen0"

Device     "Card0"

Monitor    "Monitor0"

DefaultDepth 24

SubSection "Display"

 Depth     24

 Modes     "1152x864"

EndSubSection

EndSection

 

Denne forteller meg at jeg vanligvis kun kjører den ene oppløsningen. Dersom du er slitt lenger oppe på serverlayout koden jeg postet, ser du at den øverste sectionen peker på denne configen fordi identifieren er Screen0. Vi må altså lage en tilsvarende en for 720 configen vår. Den ser slik ut:

 


Section "Screen"

Identifier "Screen720"

Device     "Card0"

Monitor    "Monitor0"

DefaultDepth 24

SubSection "Display"

 Depth     24

 Modes     "720x576"

EndSubSection

EndSection

 

Ser man det. Når modline, og de to ekstra Sections for den andre configen er lagt til i XF86config fila di, så skal du kunne kjøre en Xserver med riktig oppløsning.

 

Hva må du gjøre for å kjøre en ekstra Xserver da? Som de fleste sikkert vet, så har man som regel 6 terminaler i tillegg til en Xserver. Dersom man er i X, kan man trykke CTRL+ALT+[F1-F6] og komme ut til et kommandolinje "vindu". Du har 6 stykker av dem. Når man er i slik tekstmodus, kan man komme tilbake til X gjennom å trykke ALT+F7. Dersom man trykker F8 så skjer det ikkeno. Det er der vi nå skal legge vår andre instans av X. Altså for å bytte fra/til den nye Xconfigen bruker man F8 istedenfor F7... håper de fleste er med fremdeles.

Nå til det litt tricky. For å starte den andre Xserveren så går man til et konsol (CTRL+ALT+F1 for eksempel) og logger seg inn som root. (man må være root for å kunne bruke nvtv, for den snakker direkte med kjernemodulen til nVidia) Deretter starter man den andre X serveren slik:

 


startx -- :1 -layout 720

 

startx starter X, -- forteller at det kommer parametre, :1 sier at den skal bruke display 1 (den vanlige X bruker display 0), og -layout 720 sier at den skal bruke serverlayout section som har identifier 720. Altså vår nye config.

 

Nå har vi en desktop på 720x576. Vi starter nvtv, og velger oppløsningen 720x576 (DVD) og ser på film =) Jeg har ikke testet nvtv på noen annen TV-out brikke en connexant, så jeg vet ikke hvordan det funker, men jeg tror det meste skal fungere. for å skifte til din vanlige desktop så trykker du CTRL+ALT+F7, og for å komme tilbake til den nye trykker du CTRL+ALT+F8.

 

PS. Det kan hende at nvtv må skiftes frem og tilbake mellom TV og skjerm noen ganger før det funker skikkelig. Jeg må som regel gjøre CRT->TV->CRT->TV før det funker. F1 og F2 er din venn der. De toggler mellom skjermene dersom nvtv er det aktive vinduet. nvtv har også kommandolinje parametre dersom du heller vil bruke dem. Jeg har også laget noen configer for når jeg vil spille lucasart spillene mine på tv ved hjelp at scummvm og nvtv. Hele config fila mi kan jeg sende som private message til de som spør.

Lenke til kommentar
Videoannonse
Annonse
Takk for en fin guide :D

 

Rettelse: På noen systemner heter config fila /etc/X11/XFConfig (uten -4)

 

MarcelSB

 

For eksempel på mitt system =)

 

Joda, jeg er klar over det, men jeg tror de fleste "store" distroer bruker -4. De mindre pleier det å være mer drevene folk som bruker, og de takler overgangen fint tror jeg =) Hvis jeg tar feil, så rettet jo du opp feilen for meg. Takker...

 

Har du testet? Funker det? Jeg er litt spent på om folk får det til. /me så nettopp X-men slik, og kvaliteten var bedre enn det jeg har fått til å win. Ikke helt sikker på hvorfor men.

 

-Ko_deZ-

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...