11.3. Komerční Unix

MPlayer byl portován na mnoho komerčních variant Unixu. Jelikož vývojová prostředí na těchto systémech bývají odlišná od těch na svobodných Unixech, budete muset provést ruční úpravy, aby se kompilace povedla.

11.3.1. Solaris

MPlayer by měl běžet na Solarisu 2.6 nebo novějším. Použijte SUN audio rozhraní pomocí volby -ao sun pro přehrávání zvuku.

Na UltraSPARCích, MPlayer využívá jejich rozšíření VIS (ekvivalentní MMX), zatím jen v libmpeg2, libvo a libavcodec, ale nikoli v mp3lib. Můžete přehrávat VOB soubor na 400MHz CPU. Budete k tomu potřebovat nainstalovanou mLib.

Pro kompilaci balíku budete potřebovat GNU make (gmake, /opt/sfw/gmake), jelikož nativní make Solarisu nebude pracovat. Typickou chybou kompilace s make Solarisu namísto GNU make je:

   % /usr/ccs/bin/make
   make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen

Na Solarisu SPARC, potřebujete GNU C/C++ Compiler; nezáleží na tom, zda je GNU C/C++ compiler konfigurován s nebo bez GNU assembleru.

Na Solarisu x86, potřebujete GNU assembler a GNU C/C++ compiler, konfigurovaný pro použití GNU assembleru! Kód MPlayeru na platformě x86 intenzivně používá MMX, SSE a 3DNOW! instrukce, které nemůže být kompilovány Sun assemblerem /usr/ccs/bin/as.

Skript configure zkouší zjistit, který assembler je použitý vaším příkazem "gcc" (v případě že autodetekce selže, použijte volbu --as=/kdekoli/máte/nainstalován/gnu-as pro nastavení configure skriptu tak, aby našel GNU "as" na vašem systému).

Chybová zpráva z configure na systému Solaris x86 s použitím GCC bez GNU assembleru:

   % configure
   ...
   Checking assembler (/usr/ccs/bin/as) ... , failed
   Please upgrade(downgrade) binutils to 2.10.1...

(Řešení: Nainstalujte a použijte gcc konfigurovaný s --with-as=gas)

Typická chyba, kterou dostanete při kompilaci pomocí GNU C kompilátoru, který nepoužívá GNU as:

   % gmake
   ...
   gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math
        -fomit-frame-pointer  -I/usr/local/include   -o mplayer.o mplayer.c
   Assembler: mplayer.c
   "(stdin)", line 3567 : Illegal mnemonic
   "(stdin)", line 3567 : Syntax error
   ... more "Illegal mnemonic" and "Syntax error" errors ...

Díky chybám v Solarisu 8, nemůžete přehrávat DVD disky větší než 4 GB:

  • Ovladač sd(7D) na Solarisu 8 x86 má chybu v přístupu k diskovému bloku >4GB na zařízeních, které mají logical blocksize != DEV_BSIZE (čili CD-ROM a DVD média). Díky 32Bit int overflow, dostanete přístupovou diskovou adresu modulo 4GB (http://groups.yahoo.com/group/solarisonintel/message/22516). Tento problém neexistuje ve SPARC verzi Solarisu 8.

  • Podobná chyba je i v kódu systému souborů hsfs(7FS) (AKA ISO9660), hsfs nemusí podporovat oddíly/disky větší než 4GB, ke všem datům je přistupováno modulo 4GB (http://groups.yahoo.com/group/solarisonintel/message/22592). Problém hsfs může být odstraněn nainstalováním patche 109764-04 (sparc) / 109765-04 (x86).

11.3.2. IRIX

Můžete buď zkusit nainstalovat program GNU install a (pokud jste si ho nedali do globální cesty) odkázat na jeho umístění pomocí:

./configure --with-install=/cesta/a/název/programu/install

nebo můžete použít výchozí install dodávaný s IRIXem 6.5. V tom případě budete muset ručně upravit Makefile. Změňte následující dva řádky:

  $(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1

  $(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf

na:

  $(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/

  $(INSTALL) -m 644 codecs.conf $(CONFDIR)/

Pak spusťte (z adresáře se zdrojovými kódy MPlayeru):

cp DOCS/mplayer.1 . ; cp etc/codecs.conf .

a pokračujte kompilací a instalací.

11.3.3. HP-UX

Joe Page hostuje podrobné HP-UX MPlayer HOWTO od Martina Ganssera na jeho domácí stránce. Podle těchto instrukcí by kompilace měla proběhnout bez potíží. Následující informace jsou vytaženy ze zmíněného HOWTO.

Potřebujete GCC 3.4.0 nebo pozdější, GNU make 3.80 nebo pozdější a SDL 1.2.7 nebo pozdější. HP cc nevytvoří funkční program, předchozí verze GCC jsou chybové. Pro funkci OpenGL musíte nainstalovat Mesa a video rozhraní gl a gl2 by měly pracovat. Jejich rychlost však může být velmi malá, podle rychlosti CPU. Dobrou náhradou za spíše slabý nativní HP-UX systém je GNU esound.

Vytvořte DVD zařízení průzkumem SCSI pomocí:

# ioscan -fn

Class          I            H/W   Path          Driver    S/W State    H/W Type        Description
...
ext_bus 1    8/16/5      c720  CLAIMED INTERFACE  Built-in SCSI
target  3    8/16/5.2    tgt   CLAIMED DEVICE
disk    4    8/16/5.2.0  sdisk CLAIMED DEVICE     PIONEER DVD-ROM DVD-305
                         /dev/dsk/c1t2d0 /dev/rdsk/c1t2d0
target  4    8/16/5.7    tgt   CLAIMED DEVICE
ctl     1    8/16/5.7.0  sctl  CLAIMED DEVICE     Initiator
                         /dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0
...

Výstup na obrazovce ukazuje Pioneer DVD-ROM na SCSI adrese 2. Instance karty pro hardwarovou cestu 8/16 je 1.

Vytvořte link ze surového zařízení na DVD zařízení.

# ln -s /dev/rdsk/c<SCSI bus instance>t<SCSI target ID>d<LUN> /dev/<device>

Příklad:

# ln -s /dev/rdsk/c1t2d0 /dev/dvd

Níže uvádíme řešení některých běžných problémů:

  • Spadne při startu s hlášením:

    /usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl
    

    To znamená, že funkce .finite(). není dostupná ve standardní HP-UX matematické knihovně. Místo ní je zde .isfinite().. Řešení: Použijte poslední Mesa depot soubor.

  • Spadne při přehrávání s hlášením:

    /usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0
    

    Řešení: Použijte volbu extralibdir v configure --with-extralibdir="/usr/lib -lrt"

  • MPlayer havaruje (segfault) s hlášením:

    Pid 10166 received a SIGSEGV for stack growth failure.
    Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz.
    Segmentation fault
    

    Řešení: HP-UX kernel má výchozí velikost zásobníku 8MB(?) na proces.(11.0 a novější 10.20 patche vám umožní zvýšit maxssiz až na 350MB pro 32-bit programy). Musíte zvětšit maxssiz a rekompilovat kernel (a restartovat). Pro tento účel můžete použít SAM. (Když už to budete dělat, ověřte parametr maxdsiz pro maximální množství paměti, které může program použít. Závisí na vašich aplikacích, jestli je výchozích 64MB dost nebo ne.)

11.3.4. AIX

MPlayer lze úspěšně přeložit na AIX 5.1, 5.2 a 5.3, pomocí GCC 3.3 nebo vyšší. Kompilace MPlayeru na AIX 4.3.3 a nížsích nebyla testována. Velmi doporučujeme kompilovat MPlayer pomocí GCC 3.4 nebo vašší, nebo pokud kompilujete na POWER5, vyžaduje se GCC 4.0.

Ujistěte se, že používáte GNU make (/opt/freeware/bin/gmake) pro sestavení MPlayeru, jelikož při použití /usr/ccs/bin/make budete mít problémy.

Detekce procesoru je stále nedokončena. Testovány byly následující architektury:

  • 604e

  • POWER4

Následující architektury nebyly testovány, ale měly by pracovat:

  • POWER

  • POWER2

  • POWER3

  • POWER5

Zvuk přes Ultimedia Services není podporován, jelikož Ultimedia byla opuštěna v AIX 5.1; tudíš je jedinou možností použití ovladačů AIX Open Sound System (OSS) od 4Front Technologies z http://www.opensound.com/aix.html. 4Front Technologies dodává OSS ovladače zdarma pro osobní a nekomerční využití.