Sophie

Sophie

distrib > Mandriva > 8.1 > i586 > by-pkgid > 1d876fa8c1caf5809b8232d098efff65 > files > 75

howto-text-pl-8.1-1mdk.noarch.rpm

  XFree-to-Xinside
  Autor: Marco Melgazzi, marco@techie.com
  v1.2, Maj 1997
  WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii
  BB..MMaarruusszzeewwsskkii@@zzssmmeeiiee..ttoorruunn..ppll
  v1.0, 13 Wrze¶nia 1997


  Jak zamieniæ format opisu trybów video XFree86 na XInside/XiGraphics.
  Dokument ten zosta³ napisany w standardzie ISO-8859-2. Jego oryginalna
  wersja znajduje siê pod adresem ftp.icm.edu.pl
  <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/docs/HOWTO/mini/>.

  11..  WWpprroowwaaddzzeenniiee..


  Wiosn± 1996 widzia³em wiele listów w grupie comp.os.linux.x z
  pytaniami o to jak przenie¶æ tryby video z XFree86 do jednego z jego
  komercyjnych odpowiedników: XInside (teraz nazwanym XiGraphics, jednak
  w tym dokumencie u¿ywam starszej nazwy poniewa¿ bêdê siê odwo³ywa³
  g³ównie do tamtej wersji).

  Zanim powsta³a nowa wersja tego programu grzeba³em trochê w tej
  starszej i ci±gle mam tê przerobion± wersjê gdzie¶ na moim dysku:
  poniewa¿ lubiê rozwi±zywaæ problemy postanowi³em spróbowaæ i po kilku
  godzinach grzebania i obliczania powsta³ w miarê sensowny artyku³,
  który natychmiast wys³a³em.

  Dyskusje na temat zamiany nagle zniknê³y a ja otrzyma³em 1 (jeden)
  list z podziêkowaniami za artyku³, wiêc poniewa¿ mo¿e kto¶
  potrzebowa³by tych informacji w przysz³o¶ci postanowi³em przekszta³ciæ
  ten artyku³ w mini-HOWTO.

  Pozwól mi jednak najpierw co¶ powiedzieæ: NIE pracujê dla XInside i
  mia³em dostêp tylko do wersji 1.2 dla Linux-a. Wiem, ¿e w dzisiejszych
  czasach (Maj 97) AccelX osi±gn±³ ju¿ wersjê 3.1, ale my¶lê, ¿e zawarte
  tutaj informacje, je¶li nie dos³ownie, to i tak siê przydadz±.

  Poniewa¿ to HOWTO zosta³o napisane z pomoc± do¶æ starej wersji
  XInside, mo¿e siê tak staæ, ¿e czê¶æ zawartych tutaj informacji bêdzie
  niepe³na: jak pó¼niej przeczytasz, dziêki narodzinom XFree 3.2, nie
  kupi³em tego komercyjnego serwera. Tak wiêc je¶li zauwa¿ysz jakie¶
  niepoprawne informacje w tym dokumencie proszê wy¶lij mi list.

  Jednak zauwa¿, ¿e manipulowanie czêstotliwo¶ciami monitora mo¿e byæ
  cokolwiek niebezpieczne i dlatego nie dajê absolutnie ¿adnych
  gwarancji. Je¶li bêdzie u ciebie dzia³aæ, to dobrze, je¶li wysadzisz
  swój komputer, to nie wiñ mnie za to.

  Jak mo¿e zauwa¿y³e¶ po moim nazwisku moim narodowym jêzykiem nie jest
  angielski, wiêc przypuszczalnie zanjdziesz jakie¶ b³êdy tu i tam.
  Przepraszam za nie z góry i proszê nie zawalajcie mojej skrzynki
  listowej wiadomo¶ciami zwi±zanymi z tymi b³êdami. Dziêki!


  22..  CCzzyy ppoottrrzzeebbuujjêê tteeggoo??


  S±dze, ¿e taktyka Xinside polegaj±ca na nie do³±czaniu narzêdzia (jak
  xvidtune) do obróbki trybów video czy do przeniesienia tych z XFree do
  wersji rozwojowej (i o ile wiem komercyjnej) jest niezrozuma³e.
  Spêdzi³em nad tym jakie¶ 3 godziny (wskazówka: porówna³em pozycjê
  dotycz±c± VESy 1024x768@70Hz w tych dwóch formatach (i jestem ju¿
  prawie elektronikiem ;-)) podczas gdy programista Xinside móg³by
  napisaæ artyku³ porównawczy...

  Nie ¶ci±ga³em ¿adnej wersji rozwojowej od 1.3 i naprawdê mam nadziejê,
  ¿e to naprawili. Je¶li tak, to ten dokument jest ju¿ bezu¿yeczny, ale
  je¶li go przeczytasz, to dowiesz siê trochê wiêcej o tym jak to
  dzia³a.


  33..  NNoo ttoo ssttaarrtt..


  Za³ó¿my, ¿e masz jaki¶ tryb w XFree86 i chcesz z niego zrobiæ wersjê
  dla Xinside z tymi samymi warunkami: postêpuj zgodnie z opisanymi
  poni¿ej krokami, a powinno ci siê udaæ. U¿yjemy moich domy¶lnych
  trybów video jako przyk³adów z ¿ycia wziêtych i wyja¶niê co musisz
  zrobiæ, ¿eby je zamieniæ.

  Pozycja w XFree86 wygl±da tak:


  Modeline "blahblah" DOTCLK  A B C D  a b c d



  Ka¿dy z numerów A-D i 1-4 ma swoje znaczenie: je¶li chcesz, mo¿esz ich
  poszukaæ w "The Hitchhiker's Guide to X386/XFree86 Video Timing"
  (/usr/lib/X11/doc/VideoModes.doc), ale nie musisz znaæ teorii, ¿eby je
  zamieniæ...

  Moje tryby w /usr/lib/X11/XF86Config to:


  Modeline "1168x876" 105  1168 1256 1544 1640  876 877 891 900
                       |     |    |    |    |    |   |   |   |
                    DOT_CLK  A    B    C    D    a   b   c   d



  W Xinside, musisz dodaæ pozycjê w pliku Xtimings, który powinien siê
  znajdowaæ w etc/ (od teraz zak³adam, ¿e jeste¶ w g³ównym katalogu
  Xaccel, którym powinien byæ /usr/X11/lib/X11/AcceleratedX).



























  !    Gdzie¶ w tym pliku, umie¶æ nazwy które chcesz

  [PREADJUSTED_TIMING]
      PreadjustedTimingName = "1168x876 @ 72Hz";

  !
  !    Te cztery s± oczywiste
  !
      HorPixel          = 1168;         // pixels
      VerPixel          = 876;          // lines
      PixelWidthRatio   = 4;
      PixelHeightRatio  = 3;

  !
  !   hsync: DOT_CLK / D * 1000 [KHz]
  !
  !   hsync = 105 / 1640 * 1000 = 64.024 KHz
  !
  !   vsync: ( 1 / (( D / DOT_CLK ) * d) ) * 1,000,000 [Hz]
  !
  !   vsync: ( 1 / (( 1640 / 105 ) * 900) ) * 1,000,000
  !           ( 1 / 14057.1428571 ) * 1,000,000 = 71.138 Hz
  !

      HorFrequency      = 64.180;        // kHz
      VerFrequency      = 71.138;        // Hz

  !   Oczywiste

      ScanType          = NONINTERLACED;

  !
  !   Umie¶æ tutaj opcje +/-hsync +/-vsync z XFree86
  !
      HorSyncPolarity   = POSITIVE;
      VerSyncPolarity   = POSITIVE;

  !   Nie powinno siê zmieniaæ

      CharacterWidth    = 8;             // pixels

  !   Tutaj jest DOT_CLK

      PixelClock        = 105.000;       // MHz
  !
  !
  !   Sekcja czêstotliwo¶ci poziomych: [usec]
  !
      HorTotalTime  = D / DOT_CLK                  = 15.619;
      HorAddrTime   = A / DOT_CLK                  = 11.124;
      HorBlankStart = A / DOT_CLK                  = 11.124;
      HorBlankTime  = HorTotalTime - HorBlankStart =  4.495;
      HorSyncStart  = B / DOT_CLK                  = 11.962;
      HorSyncTime   = C / DOT_CLK - HorSyncStart   =  2.743;

   !
   !  Sekcja czêstotliwo¶ci pionowych: [msec]
   !

      VerTotalTime  = ( HorTotalTime * d ) / 1000  = 14.057;
      VerAddrTime   = ( HorTotalTime * a ) / 1000  = 13.682;
      VerBlankStart = ( HorTotalTime * a ) / 1000  = 13.682;
      VerBlankTime  = VerTotalTime - VerBlankStart =  0.375;
      VerSyncStart  = ( HorTotalTime * b ) / 1000  = 13.698;
      VerSyncTime   = ( HorTotalTime * ( c - b ) ) / 1000
                                                   = 0.219
   ! Koniec!



  Teraz tak nowo stworzone tryby musisz umie¶ciæ w plikach pokazanych
  poni¿ej w odpowiednich miejscach.


  44..  UUssttaawwiiaanniiee..


  W wyj±tkach pokazanych poni¿ej znak -> pokazuje co by³o zmieniane: nie
  wpisuj go do pliku!

  Pozycja Monitor (moja to monitors/mfreq/mfreq64.vda)


      [ESTABLISHED_TIMINGS]
          "640x480 @ 60Hz",
          "640x480 @ 72Hz",
          "640x480 @ 75Hz",
          "800x600 @ 56Hz",
          "800x600 @ 60Hz",
          "800x600 @ 72Hz",
          "800x600 @ 75Hz",
          "1024x768 Interlaced",
          "1024x768 @ 60Hz",
          "1024x768 @ 70Hz",
          "1024x768 @ 75Hz",
      "1152x900 Interlaced",
          "1152x900 @ 60Hz",
          "1152x900 @ 67Hz",
  ->      "1168x876 @ 72Hz",
          "1280x1024 Interlaced",
          "1280x1024 @ 60Hz",
      "1600x1200 Interlaced";



  Plik informacyjny na temat karty (mój to boards/s3/764-2.xqa,
  Zastanawiam siê czemu maj± prawie wszystkie karty Hercules, a mojej
  nie: Terminator 64/Dram)
























  [VISUAL]
      BitsPerPixel   = 8;
      MemoryModel    = Packed;
      ColorModel     = Indexed;
      BitsRGB        = 6;
      NumberOfColors = 256;

      [RESOLUTIONS]
      640x480,
      800x600,
      1024x768,
  ->  1168x876,
      1152x900,
      1280x1024

      [DESKTOPS]
      640x480,
      800x600,
      1024x768,
      1152x900,
  ->  1168x876,
      1280x1024,
      1600x1200



  Je¶li czêstotliwo¶ci zegara (dot clock) jest odpowiednio niski (NIE w
  tym przypadku dla mojej karty) mo¿esz nawet tê pozycjê umie¶ciæ w
  sekcji 16bpp i 32bpp.

  Plik /etc/Xaccel.ini bêdzie wygl±da³ tak:


  --------------------------------------------------------------
      Board   = "s3/764-2.xqa";
      Monitor = "mfreq/mfreq64.vda";
      Depth   = 8;
  ->  Desktop = 1168x876;

      [RESOLUTIONS]
  ->      1168x876,
          1024x768;



  W³a¶ciwa pozycja odno¶nie trybów w etc/Xtimings




















  --------------------------------------------------------------
  [PREADJUSTED_TIMING]
      PreadjustedTimingName = "1168x876 @ 72Hz";

      HorPixel          = 1168;          // pixels
      VerPixel          = 876;           // lines
      PixelWidthRatio   = 4;
      PixelHeightRatio  = 3;
      HorFrequency      = 64.024;        // kHz
      VerFrequency      = 71.138;        // Hz
      ScanType          = NONINTERLACED;
      HorSyncPolarity   = POSITIVE;
      VerSyncPolarity   = POSITIVE;
      CharacterWidth    = 8;             // pixels
      PixelClock        = 105.000;       // MHz
      HorTotalTime      = 15.619;        // (usec) =  205 chars
      HorAddrTime       = 11.124;        // (usec) =  146 chars
      HorBlankStart     = 11.124;        // (usec) =  146 chars
      HorBlankTime      =  4.495;        // (usec) =   59 chars
      HorSyncStart      = 11.962;        // (usec) =  157 chars
      HorSyncTime       =  2.743;        // (usec) =   36 chars
      VerTotalTime      = 14.057;        // (msec) =  900 lines
      VerAddrTime       = 13.682;        // (msec) =  876 lines
      VerBlankStart     = 13.682;        // (msec) =  876 lines
      VerBlankTime      =  0.375;        // (msec) =   24 lines
      VerSyncStart      = 13.698;        // (msec) =  877 lines
      VerSyncTime       =  0.219;        // (msec) =   14 lines



  Mo¿esz sprawdziæ czy wszystko sie uda³o uruchamiaj±c program vgaset
  bez parametrów podczas gdy uruchomiony jest serwer Xinside: na ekranie
  bêdzie pokazana linia na podobieñstwo XFree86 i, je¶li wszytko jest
  dobrze, linia ta bêdzie taka sama jak ta, od której zacz±³e¶ (za
  wyjatkiem je¶li b i c s± takie same, nie by³em w stanie powtórzyæ tej
  sytuacji w Xinside: najlepszym przypadkiem by³o c=b+1).


  55..  KKoonniieecc......


  To wszystko! Mam nadziejê, ¿e przyda ci siê to. Nie s±dzê, ¿ebym kupi³
  serwer XiGraphics w bli¿szej przysz³o¶ci z jednego prostego powodu:
  wersja 3.2 XFree86 rozwi±za³a wszystkie problemy zwi±zane z prêdko¶ci±
  tekstu, jakie mia³em na swojej skromnej karcie Trio 64 ;)

  Jednak wygl±da na to, ¿e serwer XiGraphics obs³uguje o wiele szerszy
  zestaw chip-ów i kart graficznych ni¿ XFree, wiêc mo¿e siê zdarzyæ, ¿e
  komercyjna alternatywa bêdzie jedyn± dla ciebie. Je¶li tak jest i
  kupi³e¶ serwer XiGrpahics, z chêcia us³ysza³bym czy zaprezentowane tu
  informacje przyda³y ci siê czy by³y zbyt skomplikowane, czy cokolwiek.


  66..  AAuuttoommaattyyzzaaccjjaa pprroocceessuu..


  Ten ma³y skrypt automatyzuje ca³a pracê. B±d¼ bardzo ostro¿ny z
  ScanType i z dwoma liniami Polarity: skrypt ich nie ustawia i je¶li
  jeste¶ zbyt leniwy, ¿eby je poprawiæ, to szansa na spalenie twojego
  monitora wzrasta znacznie.

  Zauwa¿, ¿e nie wiem czy parametr "Doublescan" ma jakie¶ znaczenie w
  XInside: je¶li spróbujesz zamieniæ jaki¶ tryb o ma³ej rozdzielczo¶ci
  B¡D¬ OSTRO¯NY, ³atwo mo¿esz za³atwiæ swój monitor poniewa¿
  czêstotliwo¶æ od¶wie¿ania, jak± uzyskasz jest podwojona (a naprawdê
  moje 400x300@72Hz sta³o siê 400x300@144Hz !).
  #!/bin/sh
  ##########################################################################
  # XF2XInside
  #
  # Skrypt ten zamienia opisy trybów z formatu XF86Config na format XInside
  # tak jak tego wymaga plik etc/Xtimings.
  #
  # To jest tylko taki hacker-ski skrypt wiêc nie spodziewaj siê zbyt
  # zaawansowanego sprawdzania b³êdów (nie mówi±c ju¿ o przyjazno¶ci dla
  # u¿ytkownika).
  #
  # Je¶li wywo³asz go bez argumentów powinien ci on powiedzieæ co zrobiæ.
  #
  #                               ( Lipec 1996, hcz@tazlwurm.bb.bawue.de)
  #
  # Przy okazji: Nowe tryby stworzone tak jak to opisuje to HOWTO dzia³aj±,
  # ale nie pokazuj± siê w menu Xsetup-u. Kto¶ wie dlaczego?
  #
  ##########################################################################
  #----------------------------------------------- No to lecimy:
  # Zmieñ to je¶li twój plik konfiguracyjny jest gdzie¶ indziej
  XF=/usr/X11/lib/X11/XF86Config
  if [ $# -ne 1 ] ; then
    echo "usage: ${0##*/} <mode>"
    echo " example: ${0##*/} 1024x764"
    echo -e " function: converts $XF modeline entry into\n Xinside Format (stdout)"
    exit 1
  fi
  egrep -i "^[\t ]*modeline.+\"$1\""  /usr/X11/lib/X11/XF86Config |
  gawk '
  NF < 11  { print "! invalid Modeline:\n! " $0 "\n!"; next }
  {
    print "//", $0  ":"
    name = $2
    DOT_CLK = $3;
    A = $4;
    B = $5;
    C = $6;
    D = $7;
    a = $8;
    b = $9;
    c = $10;
    d = $11;
    VerFrequency =  1000000 / ((D / DOT_CLK) * d)
    print "[PREADJUSTED_TIMING]"
    printf "  PreadjustedTimingName = \"%dx%d @ %.0dHz\";\n", A, a, VerFrequency
    print "  HorPixel\t\t= " A ";"
    print "  VerPixel\t\t= " a ";"
    print "  PixelWidthRatio\t= 4;\n  PixelHeightRatio\t= 3;"
    print "  HorFrequency\t\t= " DOT_CLK / D * 1000 ";\t// kHz"
    print "  VerFrequency\t\t= " VerFrequency  ";\t// Hz"
    print "  ScanType\t\t= NONINTERLACED;\t\t// *CHECK*"
    print "  HorSyncPolarity\t= NEGATIVE;\t\t\t// *CHECK*"
    print "  VerSyncPolarity\t= NEGATIVE;\t\t\t// *CHECK*"
    print "  CharacterWidth\t= 8;"
    print "  PixelClock\t\t= " DOT_CLK ";"
    HorTotalTime = D / DOT_CLK
    print "  HorTotalTime\t\t= " HorTotalTime ";"
    print "  HorAddrTime \t\t= " A / DOT_CLK ";"
    print "  HorBlankStart\t\t= " A / DOT_CLK ";"
    print "  HorBlankTime\t\t= " D / DOT_CLK - A / DOT_CLK ";"
    print "  HorSyncStart\t\t= " B / DOT_CLK ";"
    print "  HorSyncTime\t\t= " C / DOT_CLK - B / DOT_CLK ";"
    VerTotalTime  = ( HorTotalTime * d ) / 1000
    print "  VerTotalTime\t\t= " VerTotalTime ";"
    print "  VerAddrTime\t\t= " ( HorTotalTime * a ) / 1000 ";"
    VerBlankStart = ( HorTotalTime * a ) / 1000
    print "  VerBlankStart\t\t= " VerBlankStart ";"
    print "  VerBlankTime\t\t= " VerTotalTime - VerBlankStart ";"
    print "  VerSyncStart\t\t= " ( HorTotalTime * b ) / 1000 ";"
    print "  VerSyncTime\t\t= " ( HorTotalTime * ( c - b ) ) / 1000
    print ""
  }'




  77..  PPooddzziiêêkkoowwaanniiaa..



  ·  Heike Claudia Zimmerer hcz@tazlwurm.bb.bawue.de za pokazanie pewnej
     nie¶cis³o¶ci i za przys³anie mi skryptu do automatyzacji.


  88..  PPrraawwaa aauuttoorrsskkiiee//lleeggaallnnoo¶¶ææ..


  Prawa autorskie nale¿± do © Marco Melgazzi (marco@techie.com) -
  dokument ten jest rozpowszechniany na podstawie GPL (Gnu Public
  License). Aby otrzymaæ kopiê GPL, napisz do Free Software Foundation,
  Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

  Znaki towarowe nale¿± do ich w³a¶cicieli. Nie ma ¿adnych gwarancji co
  do dok³adno¶ci czy przydatno¶ci informacji zawartych w tym dokumencie.


  88..11..  OOdd tt³³uummaacczzaa..


  T³umaczenie to jest chronione prawami autorskimi © Bartosza
  Maruszewskiego.  Dozwolone jest rozprowadzanie i dystrybucja na
  prawach takich samych jak dokument oryginalny.

  Je¶li znalaz³e¶ jakie¶ ra¿±ce b³êdy ortograficzne, gramatyczne,
  sk³adniowe, techniczne (tych mo¿e trochê byæ, bo co do nazewnictwa w
  sprawach monitorów i kart graficznych jestem ignorantem) to pisz do
  mnie:

  B.Maruszewski@zsmeie.torun.pl

  Oficjaln± stron± t³umaczeñ HOWTO jest http://www.jtz.org.pl/

  Aktualne wersje przet³umaczonych dokumentów znajduj± siê na tej¿e
  stronie. Dostêpne s± tak¿e poprzez anonimowe ftp pod adresem
  ftp.ippt.gov.pl w katalogu /pub/Linux/JTZ/.

  Przet³umaczone przeze mnie dokumenty znajduj± siê tak¿e na mojej
  stronie WWW. <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html> S±
  tam te¿ odwo³ania do Polskiej Strony T³umaczeniowej.

  Kontakt z nasz± grup±, grup± t³umaczy mo¿esz uzyskaæ poprzez listê
  dyskusyjn± jtz@ippt.gov.pl. Je¶li chcesz sie na ni± zapisaæ, to wy¶lij
  list o tre¶ci subscribe jtz Imiê Nazwisko na adres
  listproc@ippt.gov.pl