Joe Page umieścił na swojej stronie domowej dokument HOWTO stworzony przez Martina Gansser'a dotyczący MPlayera na HP-UX. Korzystając z zawartych tam intrukcji program powinien się skompilować bez najmniejszych problemów. Poniższe informacje są zaczerpnięte z tego opracowania.
Do budowy będziesz potrzebował GCC 3.4.0, GNU make 3.80, i SDL 1.2.7 lub ich nowszych wersji. Kompilator HP cc nie wyprodukuje działającego programu, a wcześniejsze wersje GCC są pełne błędów. Aby moć skorzystać z OpenGL, musisz zainstalować biblioteki Mesa, wtedy sterowniki wyjścia video gl i gl2 powinny działać. Ich wydajność może być tragiczna, jednak zależne jest to od mocy obliczeniowej procesora. Dobrym zamiennikiem, raczej kiepskiego, systemu dźwiękowego HP-UX jest GNU esound.
Stwórz urządzenie DVD, przeskanuj magistralę SCSI komendą:
# 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 ...
Z rezultatów działania komendy możemy odczytać, że na adresie 2 SCSI znajduje się Pioneer DVD-ROM. Instancja karty dla ścieżki sprzętowej 8/16 to 1.
Stwórz dowiązanie surowego urządzenia do urządzenia DVD.
# ln -s /dev/rdsk/c<instancja magistrali SCSI>
t<ID docelowego SCSI>
d<LUN>
/dev/<urządzenie>
Przykład:
# ln -s /dev/rdsk/c1t2d0 /dev/dvd
Poniżej znajdują się rozwiązania kilku najczęstszych problemów:
Wysypanie się programu przy uruchamianiu z komunikatem błędu:
/usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl
Oznacza to, że funkcja .finite().
jest niedostępna
w standardowej bibliotece math HP-UX.
Zamiast niej dostępna jest .isfinite().
.
Rozwiązanie: Skorzystaj z najnowszego pliku składowego Mesa.
Wysypanie się programu przy odtwarzaniu z komunikatem:
/usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0
Rozwiązanie: Skorzystaj z opcji extralibdir skryptu configure --with-extralibdir="/usr/lib -lrt"
MPlayer powoduje błąd naruszenia ochrony pamięci (segfault) z komunikatem:
Pid 10166 received a SIGSEGV for stack growth failure. Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz. Segmentation fault
Rozwiazanie:
Jądro HP-UX ma domyślnie zdefiniowany rozmiar stosu przeznaczonego na każdy
proces i jest to 8MB(?).(11.0 i nowsze łatki 10.20 pozwalają Ci zwiększyć
parametr maxssiz
do 350MB dla 32-bitowych programów).
Musisz rozszerzyć maxssiz
i przekompilować jądro
(i uruchomić ponownie komputer). Możesz wykorzystać do tego celu SAM. (Kiedy
w nim będziesz, sprawdź wartość maxdsiz
. Określa ona
maksymalny rozmiar danych, jaką program może użyć. To czy domyślne 64MB wystarczy
czy nie, zależy wyłącznie od wymagań Twoich aplikacji.)