Toon posts:

[Gentoo] MPlayer error

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb Gentoo succesvol geinstaleerd, alsook Gnome. Maar nu wou ik dus MythTV en Mythvideo en Mythmusic instaleren, maar daarvoor moest je eerst MPlayer instaleren. Ik typ:
code:
1
emerge mplayer

Na een uurtje is alles geinstaleerd, ik start Gnome, open Mplayer, ik krijg het logo te zien en dan een reeks fouten:
code:
1
MPlayer interrupted by signal 4 in module: unknown

Ik klik OK:
code:
1
2
MPlayer crashed by an "illegal instruction". It usually happens when you run it on a CPU different than the one it was compiled/optimized for.
Verify this!

Ik klik OK:
code:
1
2
MPlayer crahsed by bad usage of CPU/FPU/RAM. Recompile MPlayer with --enable-debug and make a 'gdb' backtrace disassembly. Details in
DOCS/HTML/en/bugreports_what.html# bugreports_crash

Ik klik OK:
code:
1
2
MPlayer crashed. his shouldn't happen. It can be a bug in the MPlayer code_or_in your drivers_or_in you gcc version. If you think it's MPlayer's fault, please read
DOCS/HTML/en/bugreports.html and follow the instructions there. We can't  and won't help unless you provide this information when reporting a possible bug

Ik klik OK:

MPlayer sluit af.

Ik gebruik de 2.6.9-gentoo-r13 kernel

Dan heb ik men make.conf beetje aangepast en er dit van gemaakt:
code:
1
2
3
4
5
CFLAGS="-march=pentium2 -03 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="-march=pentium2 -03 -pipe -fomit-frame-pointer"
GENTOO_MIRRORS="http:..........."
USE="x86 mmx sse alsa avi crypt cscope dvd flac gif imlib jpeg lirc mad mpeg mysql oggvorbis opengl png quicktime sdl tiff truetype X xmms xv zlib nvidia -arts transcode xinerama -nls net joystick matroska -ldap apache2 xvid v412 theora"

Dan weer
code:
1
emerge mplayer

Op het einde krijg ik:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
gcc: unrecognized option '-03'
i386/dsputil_mmx.c: In function 'h263_h_loop_filter_mmx':
i386/dsputil_mmx.c:634: error: Can't find a register in class 'GENERAL_REGS' while reloading 'asm'
i386/dsputil_mmx.c: In function 'dsputil_init_mmx':
i386/dsputil_mmx.c:2540: warning: assignment from incompatible pointer type
i386/dsputil_mmx.c:2541: warning: assignment from incompatible pointer type
make[1]: *** [i386/dsputil_mmx.o] Error 1
make[1]: Leaving directory ' /var/tmp/portage/mplayer-1.0_pre5-r5/work/MPlayer-1.0pre5try2/libavcodec'
make: *** [libavcodec/libavcodec.a] Error 2

ERROR: media-video/mplayer-1.0_pre5-r5 failed.
Function src_compile, Line 442, Exitcode 2
Failed to build Mplayer!
If you need support post the topmost build error, NOT this status message.

tux root #

Ik verwijder de '-03' optie in de make.conf --> helpt niets
Ik maak van de i686 i386 --> helpt niets

Ik ben nogal ten einde raad ;(

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 22:57

BoAC

Memento mori

Je gebruikt 0 (null) ipv O (=optimize level) ;)
Gebruik is -O1 :)

Je MPlayer crashed dus op een illegale instructie. Je hebt bijv. gebuild voor een P4 terwijl je een P2 hebt :)
Post je machine config eens.

Verwijderd

De error is in ffmpeg. De betreffende bestanden moeten niet met -O0 en wel met -fomit-frame-pointer worden gecompileerd, anders zal je de GENERAL_REGS error krijgen. Ffmpeg's ASM code gebruikt je registers namelijk nogal efficient (nouja...).

Je crash in mplayer is vrijwel zeker een Gentoo bug, en het zou niet de eerste zijn. Lees de fora + docs. Dit is uitgebreid gedocumenteerd.

Verwijderd

Topicstarter
Intel Pentium2 450mhz
384mb SDRAM

Dus ik moet -O3 ofzo niet toevoegen? Gewoon de -fomit-frame-pointer?

En moet ik i386 of i686 zetten?

Hij crashed nog altijd hoor bij het opnieuw mergen ;(

code:
1
2
3
4
5
CFLAGS="-march=pentium2  -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="-march=pentium2  -pipe -fomit-frame-pointer"
GENTOO_MIRRORS="http:..........."
USE="x86 mmx sse alsa avi crypt cscope dvd flac gif imlib jpeg lirc mad mpeg mysql oggvorbis opengl png quicktime sdl tiff truetype X xmms xv zlib nvidia -arts transcode xinerama -nls net joystick matroska -ldap apache2 xvid v412 theora"

[ Voor 52% gewijzigd door Verwijderd op 08-01-2005 11:53 ]


  • FCA
  • Registratie: April 2000
  • Laatst online: 12-02 12:04

FCA

Gebruik:
code:
1
2
3
CFLAGS="-march=pentium2 -pipe -fomit-frame-pointer -O2"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"

En gooi die sse uit je USE flags. Een Pentium2 heeft geen sse...

Verandert z'n sig te weinig.


Verwijderd

Topicstarter
Het is dus -O2 en niet -02 ? en "${CFLAGS}" ?

[ Voor 40% gewijzigd door Verwijderd op 08-01-2005 12:38 ]


  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 08:07
Verder dan -march=i686 -O2 -pipe optimizen heeft voor een i686 bak anders dan een P4 helemaal geen zin (P4 zit iets anders inelkaar en kan baat hebben bij -mtune=pentium4). Al die gekke rommelige CFLAGS van gentoo users leveren eerder problemen op dan dat het snelheidswinst oplevert, ik zie die ebuilds die ze daar in CVS hebben altijd vol staan met dingen als "replace flags, strip flags, etc". Ik denk dat 75% van wat je met emerge installeert niet met de CFLAGS gebakken wordt die jij in make.conf hebt staan.

Mplayer compilen met CFLAGS is al helemaal evil op een source distro: mplayer zoekt zelf helemaal uit welke gare CFLAGS met welke compiler zullen werken en doet dit alleen als er nog geen CFLAGS geset zijn. Voor een binary distro waar het ook op een Pentium II moet kunnen werken als het op een Athlon XP gecompileerd is kan ik het me voorstellen, maar voor gentoo?

Verwijderd

Topicstarter
Dus... Wat moet ik dan doen? :?

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 08:07
ebuild doorkijken en kijken wat er gedaan wordt met CFLAGS? In de mplayer ebuild zou je dat ding gewoon moeten unsetten, verder moet je even lezen wat Beelzebubu zegt over ffmpeg, die schijnt ook irritant te zijn (tnx Beelzebubu, nou weet ik ook wrom gisteren ineens iemand segfaults kreeg met gst-ffmpeg :P, arch compileert em met "-march=i686 -O2 -pipe"

Verwijderd

Topicstarter
Het werkt met SSE te verwijderen in de USE flag en option -O2 toe te voegen :) Mplayer werkt nu perfect! Hop naar MythTV :P

Verwijderd

Als je dat moet vragen, moet je serieus overwegen of Gentoo wel de juiste distro is voor je.

  • Wilke
  • Registratie: December 2000
  • Laatst online: 14-02 19:41
Sowieso zou ik gewoon lekker van die CFLAGS afblijven en op de default laten staan. Als Gentoo niet of gaar werkt, ligt het in 90% van de gevallen aan gepruts met optimalisaties die toch niks opleveren.

Maar het build systeem is voor de rest gewoon erg fijn, IMHO dan uiteraard.

Verwijderd

Topicstarter
Wilke schreef op zaterdag 08 januari 2005 @ 14:14:
Sowieso zou ik gewoon lekker van die CFLAGS afblijven en op de default laten staan. Als Gentoo niet of gaar werkt, ligt het in 90% van de gevallen aan gepruts met optimalisaties die toch niks opleveren.

Maar het build systeem is voor de rest gewoon erg fijn, IMHO dan uiteraard.
Volgens mij lag het gewoon aan de USE flag aangezien daar eerst instond 3Dnow en SSE

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 22:57

BoAC

Memento mori

Verwijderd schreef op zaterdag 08 januari 2005 @ 14:16:
[...]
Volgens mij lag het gewoon aan de USE flag aangezien daar eerst instond 3Dnow en SSE
Waar heb je die dan vandaan gehaald :?
Volgens mij staan die er niet standaard in :)

  • wacko
  • Registratie: Juni 2000
  • Laatst online: 22-01 15:21
Ik denk inderdaad dat het met je CFLAGS te maken heeft. Zet het weer eens op een lekker default waarde, bijvoorbeeld
code:
1
CFLAGS="-O2 -mcpu=i686 -fomit-frame-pointer"


Het enige dat ik hieraan veranderd heb is i686 ipv i386. Alles hoger of gelijk aan Pentium Pro (dus ook Pentium 2) is 686. Nu werkt i386 ook prima, i686 zou alleen iets sneller zijn.

Desnoods comment je de hele CFLAGS optie uit (# ervoor) en laat je gentoo lekker de default waarde voor CFLAGS gebruiken.

Als je echt custom settings nodig hebt bij het compileren van mplayer zou je de ebuild kunnen aanpassen, die staat in bijvoorbeeld deze file:
/usr/portage/media-video/mplayer/mplayer-1.0_pre5-r5

(check even file versies enzo)

Verwijderd

Topicstarter
Nu werkt het hoor, ben al tijdje MythTV aan het mergen :)

Ik had mijn USE flag gehaald uit de guide van MythTV daarmee dat dat daar allemaal instond :)
Pagina: 1