Solaris 7 5/99 Handbok för Sun-plattformar

Kapitel 11 Grafikacceleratorn Sun PGX32

Sun(TM) PGX32(TM) är ett PCI-baserat grafikacceleratorkort för Sun Workstation(TM) med stöd för PCI-buss som ger samtidigt stöd för 8 och 24 bitars färgläge.

Översikt

PGX32 har följande funktioner:

8/24-bitars samtidigt visningsläge

Läget 8/24 stödjer visning av 8- och 24-bitars färg samtidigt. Detta är standardinställningen och löser problemet med felaktiga färger i färgkartan vid 24-bitarsinställning och ger samtidigt stöd för 8-bitars visningsläge som behövs för vissa program som t.ex. SoftWindows(TM) och äldre program.

Tillgängliga visningslägen omfattar PseudoColor och TrueColor. Standardläge är PseudoColor.

Upplösningar upp till 1280 ¥ visas i läget 8/24 såvida inte annat angetts med GFXconfig. Alla upplösningar över 1280 ¥ använder 8 bitar. Se "Ändra upplösning på systemfönstret" för en lista över upplösningar som stöds.

Cache-minne för pixmap utanför skärmen

Alla PGX32-kort stödjer cachning av pixmap utanför skärmen. Pixmap i cache-minnet lagras i offscreen-minnet i PGX32. Detta minne tillåter snabbare överföring av data till och från bildskärmens fönster. Tillgängligt minne bestäms av aktuell upplösning och färginställningar.

Stöd för OpenGL

Stöd för OpenGL ges genom tillägget Direct Pixel Access (DPA). Om du vill använda denna funktion måste OpenGL v1.1.1 eller senare redan vara installerat på ditt system.


Obs!

I Sun OpenGL för Solaris v1.1.1 finns ett fel för 24-bitars stöd för DPA PCI som gör att de röda och blå färgerna växlas. En uppdatering från Sun (ID 106011-04) löser detta problem. Du hittar uppdateringen på http://sunsolve.sun.com. Detta problem är åtgärdat i Sun OpenGL för Solaris v1.1.2.


Namn på programvarupaket

Tabell 11-1 PGX32-programvarupaket

Paketnamn 

Beskrivning 

TSIpgx.u 

Drivrutin till grafikacceleratorn PGX32 (Raptor GFX) 

TSIpgxmn 

Man-sidor för grafikacceleratorn PGX32 (Raptor GFX) 

TSIpgxw 

Laddbar X Server-modul för PGX32 (Raptor GFX) 

TSIpgxx.u 

64-bitars drivrutin för PGX32 (Raptor GFX) 


Obs!

Installationen måste upprepas om några ändringar görs i operativsystemet. Vi rekommenderar att programvaran avinstalleras före ändringar i operativsystemet, inklusive uppgraderingar av systemet.


Konfigurera PGX32-skärmen

Efter installationen kan du ställa in skärmupplösning för X Window, färgdjup och svepfrekvens för din bildskärm. (Denna upplösning är oberoende av upplösningen för systemfönstret som beskrivs i "Ändra upplösning på systemfönstret"). Om du vill kan du använda standardinställningarna och fortsätta med instruktionerna i "Starta Desktop-miljön".

Du kan använda det menydrivna verktyget GFXconfig om du vill ändra skärmens upplösning efter att installationen är klar. Se manualsidan för GFXconfig för ytterligare information.

Interaktiv konfigurering

  1. Om du vill använda GFXconfig till att konfigurera ditt PGX32-kort skriver du:


    # GFXconfig -i

Konfigureringsfönstret för PGX32 öppnas (Figur 11-1).

Figur 11-1 PGX32 konfigureringsfönster

Graphic

Tabell 11-2 beskriver konfigureringsfönstret för PGX32.

Tabell 11-2 PGX32 konfigureringsfönster

Funktion 

Beskrivning 

Upp- och nedåt-pilar 

Markerar PGX32-enhet som ska modifieras. 

Vänster- och högerpilar 

Markerar den parameter som ska ändras (till exempel skärmupplösning, färgdjup eller synkronisering). 

Blanksteg 

Används för att ändra en parameter för vald PGX32-enhet (öppnar i vissa fall en meny med alternativ). 

Visar ett testmönster på skärmen. Tryck på valfri tangent för att återgå till huvudfönstret. 

Sparar aktuella inställningar och stänger konfigureringsfönstret. 

Hjälp 

Avslutar programmet utan att spara ändringar. 

Icke-interaktiv konfigurering

Ibland är det enklare att konfigurera PGX32-kortet direkt utan interaktivitet. Denna metod är särskilt användbar om du ska konfigurera flera likadana system, eller om du i förväg vet vilka inställningar som ska göras.

GFXconfig använder samma grunder som verktyget m64config. m64config ianvänds för alla ATI-baserade grafikkort vilket inkluderar Sun Ultra 5 och Sun Ultra 10 moderkortsbaserade grafik (både 8-bitars och 24-bitars system) samt PGX 8-bitars PCI bildskärmsminne. Du kan ställa in alla inställningar som du kan göra med den interaktiva metoden genom att ange rätt flagga följd av önskat värde. Tabell 11-3 beskriver dessa parametrar.

Tabell 11-3 Parametrar för icke-interaktiv konfigurering

Parameter 

Beskrivning 

-dev enhet

Visar enhet som ska konfigureras. 

-res upplösning

Visar upplösningens beteckning. 

-res \?

Visar upplösningar. 

-file filnamn

Visar konfigurationsfilen: systemeller machine.

-depth färgdjup

Visar färgdjupet (8 eller 24, standard är 24). 

-defaults

Återställer enheten till förvalda värden. 

-24only (true/false)

Tvingar alla fönster att använda 24-bitars färgdjup. Detta kan hindra vissa 8-bitars program från att fungera. 

-gfile gammafil

Listar gammafilen. 

-gvalue gammavärde

Listar gammavärde.  

-propt

Visar aktuella inställningar. 

-prconf

Visar information om maskinvaran. 

-help

Visar information om användning. 


Obs!

Som standard är färgdjupet satt till 8/24 för upplösningar upp till 1280 ¥ 1024 punkter och 8 för högre upplösningar.


Exempel

  1. Skriv så här om du vill ställa in upplösningen för PGX32 till 1152 x 900 x 66:


    # GFXconfig -res 1152x900x66
    

    Du kan verifiera om upplösningen fungerar innan du ställer in den permanent genom att lägga till ordet "try" efter önskad upplösning. Med detta alternativ visas ett testmönster på skärmen tills du trycker på Retur-tangenten. Välj om du vill behålla inställningarna eller återgå till tidigare inställning. Till exempel:


    # GFXconfig -res 1152x900x66 try -dev /dev/fbs/gfxp0
    

  1. Skriv så här om du vill ställa in upplösningen till 1024 x 768 x 60 med en enkel TrueColor färginställning (ingen 8-bitars PseudoColor):


    # GFXconfig -res 1024x768x60 -24only true
    

  1. Skriv så här om du vill se aktuella inställningar för /dev/fbs/gfxp0:


    # GFXconfig -propt -dev /dev/gfx/gfxp0
    

Ställa in PGX32 som systemfönster (valfritt)

Om du vill använda programvaran för PGX32 som systemfönsterenhet följer du instruktionerna i lämpligt avsnitt nedan.

PGX32-kort som enda bildskärmsminne

Sun Ultra 5 och Sun Ultra 10

Om du vill använda PGX32-kortet som systemfönster på en Sun Ultra 5 eller Sun Ultra 10 som enda bildskärmsminne, måste du först deaktivera det inbyggda 8-bitars eller 24-bitars grafikstödet som är installerat som standard på dessa system.

  1. Om du vill deaktivera 8-bitars eller 24-bitars grafikstöd på moderkortet skriver du:


    ok setenv pcib-probe-list 1,3
    ok reset
    

    När systemet startats om dirigeras alla systemmeddelanden till PGX32-kortet.

  1. Om du vill återställa moderkortets 8-bitars eller 24-bitars grafikstöd av någon anledning lägger du tillbaks det i pcib-probe-list genom att skriva:


    ok setenv pcib-probe-list 1,2,3
    ok reset
    

Sun Ultra 30 och Sun Ultra 60

Om det inte finns några andra bildskärmsminnen tillgängliga i en Sun Ultra 30 eller Sun Ultra 60, används PGX32-kortet automatiskt för systemfönster, förutsatt att det sitter i en aktiverad PCI-plats.

PGX32-kort med flera bildskärmsminnen

Ditt PGX32-kort kan användas för systemfönstret även om det finns flera bildskärmsminnen i maskinen.

Grafikstöd på moderkortet (endast Ultra 5 och Ultra 10 Only)

Grafikstödet på moderkortet på Sun Ultra 5 och Sun Ultra 10 och PGX32-kortet(n) kan bara vara aktiverade samtidigt om systemfönstret använder det inbyggda grafikstödet. Om du vill använda PGX32-kortet måste det inbyggda grafikstödet deaktiveras enligt beskrivningen ovan i ""PGX32-kort som enda bildskärmsminne"".

System med UPA-bildskärmsminne

Om du vill ställa in PGX32-kortet för systemfönstret när det även finns installerat UPA bildskärmsminne, måste variablen för utenhet i NVRAM ändras till den aktuella sökvägen för önskat PGX32-kort. Du hittar lättast denna sökväg genom att leta efter strängen TSI i /-trädet vid ok-prompten.

Om du t. ex. vill hitta alla pci-enheter skriver du:


ok cd /pci@1f,4000
ok ls

När du har hittat rätt ställe ska du se minst en rad med texten TSI (d.v.s, TSI,gfxp@# där # är en siffra som är PGX32-kortets kortplats).

Ändra denna rad så att systemfönstret dirigeras till önskat PGX32-kort. Till exempel, om sökvägen är /pcid@1f,4000 (enligt exemplet ovan) till enhet TSI,gfxp@# skriver du:


ok setenv output-device /pci@1f,4000/TSI,gfxp@#
ok reset


Obs!

Ersätt # med numret på ditt PGX32-kort.


När systemet har startats om dirigeras alla systemmeddelanden till PGX32-kortet.

Om du av någon anledning vill återställa systemfönstret till dess förvalda inställning skriver du:


ok setenv output-device screen
ok reset

Andra PCI-bildskärmsminnen

Om du vill använda PGX32-kortet för systemfönstret när det finns andra PCI-bildskärmsminnen installerade kan du vara tvungen att ändra pcia-probe-list till att känna av PGX32-platsen före platsen för det andra bildskärmsminnet (förutom de ändringar som beskrivs i ""PGX32-kort som enda bildskärmsminne"").

  1. Bestäm platsnummer för dessa bildskärmsminnen och kontrollera att kortplatsen för PGX32 känns av före andra minnen i pcia-probe-list.

Om t ex PGX32-kortet sitter på plats 3, och det andra bildskärmsminnet sitter i plats 1, uppdaterar du pcia-probe-list så att plats 3 känns av före plats 1. En möjlig konfiguration är:


ok setenv pcia-probe-list 3,2,1,4
ok reset

När systemet har startats om dirigeras alla systemmeddelanden till PGX32-kortet.

Starta Desktop-miljön

I detta kapitel beskriv hur du startar miljön OpenWindows, Common Desktop Environment (CDE eller X Display Manager) på ett PGX32-kort.

OpenWindows

I detta avsnitt beskrivs hur du startar OpenWindows som ett systemfönster eller med flera PGX32-kort. PGX32-kortets enhetsnamn är gfxp#.

Använda PGX32-kort som systemfönster

  1. Om PGX32-kortet är inställt som systemfönster skriver du:


    # openwin
    

Använda flera PGX32-kort

  1. Om du vill starta OpenWindows på två PGX32-enheter, gfxp0 och gfxp1 skriver du:


    # openwin -dev /dev/fbs/gfxp0 -dev /dev/fbs/gfxp1
    


    Obs!

    I exemplet ovan är enhetsnumren för gfxp 0 och 1. Detta kan vara annorlunda på ditt system. Kontrollera i /dev/fbs/ eller dmesg för korrekta enhetsnummer.


Common Desktop Environment (CDE)

Om du har installerat CDE och vill att CDE ska visas på din PGX32-skärm, måste du modifiera filen /etc/dt/config/Xservers. Om PGX32-kortet redan används för systemfönstret behöver du inte ändra filen Xservers.

Följande exempel på filen Xservers.gfx förutsätter att PGX32-kortet är det enda bildskärmsminne som CDE skall startas på:


:0 Local Local_uid@console root /usr/openwin/bin/Xsun \
:0 -dev /dev/fbs/gfxp0 -nobanner


Obs!

Om ditt PGX32-kort har en annan beteckning än gfxp0, måste du använda denna andra beteckning i filen.


Du kan lägga till ytterligare argument till kommandot sist på raden. Du kan t ex starta CDE på flera skärmar.

  1. Om du vill göra detta listar du varje bildskärmsenhet du vill använda enligt beskrivningen ovan.

Följande exempel öppnar CDE på skärmen /dev/fbs/gfxp0 och använder enheten /dev/fbs/m640 (det inbyggda grafikstödet på Sun Ultra 5 och Sun Ultra 10) som ett andra bildskärmsminne:


:0 Local Local_uid@console root /usr/openwin/bin/Xsun \
:0 -dev /dev/fbs/gfxp0 -dev /dev/fbs/m640

X Display Manager

PGX32-kortet stöder även X display manager (xdm). Du hittar ett exempel på konfiguration i filen /usr/openwin/lib/X11/xdm/Xservers.

Om du redan har filen Xservers sparar installationen av programvaran för PGX32 filen som /usr/openwin/lib/X11/xdm/Xservers.nogfx.

Som standard lägger installationsprogrammet till följande rad vilket förutsätter att PGX32-kortet är det enda bildskärmsminne som xdm skall användas på:


:0 Local Local /usr/openwin/lib/xdm/StartOW \
:0 -dev /dev/fbs/gfxp0

Du kan lägga till ytterligare argument till kommandot sist på raden. Du kan t. ex. starta xdm på flera skärmar.

  1. Om du vill göra detta listar du varje bildskärmsenhet du vill använda enligt beskrivningen ovan.

Följande exempel öppnar xdm on the display named /dev/fbs/gfxp0 och använder enheten /dev/fbs/m640 (det inbyggda grafikstödet på Sun Ultra 5 och Sun Ultra 10) som ett andra bildskärmsminne:


:0 Local Local_uid@console root /usr/openwin/bin/Xsun \
:0 -dev /dev/fbs/gfxp0 -dev /dev/fbs/m640

Ändra upplösning på systemfönstret

Det här avsnittet beskriver hur du ändrar PGX32:s standardupplösning på systemfönstret. Det finns också ett felsökningsavsnitt som beskriver lösningar på diverse möjliga problem relaterade till att ändra upplösning på systemfönstret.

Anledningar till att ändra upplösning på systemfönstret

För de flesta användare går det normalt bra att använda standardupplösningen. Men det finns tillfällen då du kan behöva ändra standardupplösningen, t.ex. om...

Rekommendationer vid byte av systemfönsterupplösning

De allmänna rekommendationerna vid byte av standardupplösning på systemfönster är:

Sätt att ändra systemfönsterupplösningen

De olika sätt att ändra systemfönsterupplösning som tas upp här är:

EDID-autoavkänningsfunktionen för PGX32

Om du använder en bildskärm som följer DDC2B/EDID kommer standardupplösningen att avgöras genom autoavkänningsfunktionen.

Med detta protokoll kontrollerar kortet först "Standard Timing Identifiers" (och väljer den första som stöds) och försöker sedan matcha Established Timings.

Om metoden ovan misslyckas använder kortet som standard 1152x900x66.


Obs!

Bildskärmen måste vara slagen innan systemet startas för att PGX32 skall kunna kommunicera med den.


Den upplösning som ställs in genom instruktionerna här används i stället för den information som tas emot via EDID.

output-device-metoden

Det går att ange ett PGX32-korts systemfönsterupplösning med värdet på miljövariabeln output-device i formatet screen:rAxBxC, där:

A är önskat antal bildpunkter horisontellt, B är antalet linjer och C är den önskade uppdateringsfrekvensen.

Systemet kontrollerar värdena mot en intern lista med upplösningar (se Tabell 11-4) och använder den post som motsvarar dina val som systemfönsterupplösning.

Om du t.ex. vill använda VESA1024x768x75 som systemfönsterupplösning skriver du följande vid ok-prompten:


ok setenv output-device screen:r1024x768x75
ok reset


Obs!

Den nya systemfönsterupplösningen börjar användas vid nästa omstart och förblir densamma till dess output-device-variabeln ändras manuellt.


Videolägesmetoden

Vid ok-prompten i Boot PROM-läge kan PGX32-kortens systemfönsterupplösning lätt ställas in med hjälp av något av de 34 förinställda upplösningslägena. Dessa upplösningsinställningar är videolägena 0-33 (Tabell 11-4).


Obs!

Använd lägena 0-25 för att ange 24-bitars systemfönsterfärgdjup, eller 26-33 för att välja 8-bitarsdjup.


Tabell 11-4 PGX32-systemfönsterupplösningar

Läge 

Upplösning (X x Y / Hz) 

640 ¥ 480 / 60

640 ¥ 480 / 72

640 ¥ 480 / 75

640 ¥ 480 / 85

800 ¥ 600 / 60

800 ¥ 600 / 72

800 ¥ 600 / 75

800 ¥ 600 / 85

1024 ¥ 768 @ 60

1024 ¥ 768 / 70

10 

1024 ¥ 768 / 75

11 

1024 ¥ 768 / 77 *

12 

1024 ¥ 768 / 85

13 

1024 ¥ 800 / 85 *

14 

1152 ¥ 900 / 60

15 

1152 ¥ 900 / 66 *

16 

1152 ¥ 900 / 70

17 

1152 ¥ 900 / 75

18 

1152 ¥ 900 / 76 *

19 

1152 ¥ 900 / 85

20 

1280 ¥ 800 / 76 *

21 

1280 ¥ 1024 / 60

22 

1280 ¥ 1024 / 67 *

23 

1280 ¥ 1024 / 75

24 

1280 ¥ 1024 / 76 *

25 

1280 ¥ 1024 / 85

26 

1600 ¥ 1200 / 66 *

27 

1600 ¥ 1200 / 76 *

28 

1600 ¥ 1200 / 60

29 

1600 ¥ 1200 / 65

30 

1600 ¥ 1200 / 70

31 

1600 ¥ 1200 / 75

32 

1600 ¥ 1200 / 76

33 

1600 ¥ 1200 / 80 *

* Denna upplösning använder sammansatt synkronisering.


Obs!

I "Använda nvedit för att redigera NVRAM" finns en beskrivning av nvedit-kommandona.


Om du t.ex. vill ställa in upplösningen till 1024x768/60Hz, videoläge 8, skriver du:


ok   nvedit  0: 8 value video-mode  1: <ctrl-c>ok   nvstoreok   setenv use-nvramrc? trueok   reset


Obs!

De sista tre kommandona aktiverar NVRAM. Om du inte skriver in dem kommer de ändringar du gör med nvedit inte att få någon effekt.


Videotidsmetoden

Om alla metoderna ovan misslyckas kan du ange de exakta tidsvärdena för en viss upplösning. Detta är den sista utvägen, och även den använder nvedit. Detta är också den mest komplicerade metoden och kräver att du har viss kunskap om alla de olika tidsparametrarna för den upplösning du vill ha. Därför bör du inte använda denna metod om din skärm stöder de färdiga videolägena, som beskrivs i stycket ovan. Se "Använda nvedit för att redigera NVRAM" för en beskrivning av nvedit-kommandona.


Obs!

Du skall bara använda den här metoden om alla metoderna ovan har misslyckats.


Om du t.ex. vill ställa in systemfönsterupplösningen till 1280x1024/76Hz skriver du så här:


ok nvedit 0: : video-timing " 1280, 384, 32, 64, \		1024, 43, 3, 8, 135000000, 0" ; 1:	<ctrl-c>ok nvstoreok setenv use-nvramrc? trueok reset


Obs!

Syntaxen är ytterst viktig. Mellanslagen måste stå precis som de står i exemplet.



Obs!

De sista tre kommandona aktiverar NVRAM. Om du inte skriver in dem kommer de ändringar du gör med nvedit inte att få någon effekt.


Här är en kort beskrivning av de tio parametrar som används i denna metod.

1 separat synk

1 synk på grönt

512 positivt vertikal synkroniseringspuls

1024 positivt horisontell synkroniseringspuls

2048 sammansatt synkroniseringspuls

(Lägg ihop värdena för att få en kombination)


Obs!

För att få information om vilka värden du skall använda i den här metoden kontaktar du SunService på 1-800-USA-4SUN och berättar om dina skärmkrav.


Felsökning

Tabell 11-5 Felsökning

Problem 

Lösning 

Följde instruktionerna för att konfigurera systemfönsterupplösning, men kortet använder fortfarande en annan upplösning än den angivna. 

Det finns ett schema över hur olika värden skall prioriteras som används när PGX32 skall avgöra vilken upplösning som skall användas på systemfönstret vid start. Den inbyggda programvaran i PGX32 kontrollerar de olika metoderna i den ordning som anges nedan. Om det hittar någon upplösning från den aktuella metoden används denna, annars fortsätter kortet ner genom prioritetslistan och letar efter upplösningsinformation. Om ingen information hittas används standardupplösningen. Metoderna prioriteras med följande ordning, med den som undersöks först på första plats i listan: 

1. output-device-metoden

2. video-timing-metoden

3. video-mode-metoden

4. DDC2B/EDID 

5. Kortets standardupplösning 

Jag vet att den upplösning jag har valt för PGX32 är kompatibel med skärmen, men jag får ändå ingen bild. 

Tidigare versioner av PGX32-kortet behöver en adapter för att sammansatt synkronisering skall fungera. 

Program som använder PHIGS, XGL eller PEX kan krascha fönstersystemet på ett PGX32-bildskärmsminne. 

Detta beror på ett fel i PEX-biblioteket och är inte speciellt för PGX32. Lösningen är att ställa in variabeln XGLNOPEX innan du kör program som använder PHIGS, PEX eller XGL. För att ställa in variabeln skriver du:

    % setenv XGLNOPEX TRUE

XIL-korrigeringsfilerna 105361-06, 107013-01 och 105570-03 måste installeras för att ShowMeTV skall fungera. 

Använda nvedit för att redigera NVRAM

  1. För att redigera NVRAM startar du editorn nvedit vid ok-prompt:


    ok nvedit
    

I "Videotidsmetoden" finns information om hur du använder nvedit. Det finns ett antal tangentbordssekvenser som du måste använda för att redigera variablerna i NVRAM:

Tabell 11-6 NVRAM-editorn

Tangentsekvens 

Beskrivning 

Backsteg 

Tar bort tecknet före kursorn 

ctrl-1 

Listar de nuvarande NVRAM-värdena 

ctrl-p 

Går upp en rad 

ctrl-n 

Går ned en rad 

ctrl-b 

Går tillbaka ett tecken 

ctrl-l 

Tar bort till början av raden 

ctrl-k 

Slår ihop den aktuella raden och nästa 

ctrl-u 

Tar bort den aktuella raden 

ctrl-c 

Avslutar nvram-editorn (går tillbaka till ok-prompten)

Ändringarna börjar bara gälla om de lagras med kommandot nvstore, som skrivs in vid ok-prompten. När ändringarna har lagrats måste NVRAM aktiveras innan systemet kan köra det. Detta görs genom att ställa in use-nvramrc? till true.