Installation mkvtoolnix auf DS-211+

Status
Für weitere Antworten geschlossen.

flagg

Benutzer
Mitglied seit
02. Jun 2011
Beiträge
95
Punkte für Reaktionen
2
Punkte
8
Hallo,

ich möchte auf meiner DS-211+ die DTS-Tonspur in eine AC3-Tonspur aus MKV-Dateien umwandeln (ich habe leider keinen DTS-Receiver am Samsung UE46D7090).

Dazu wollte ich mkvtoolnix verwenden und habe es wie folgt installiert:

ipkg install mkvtoolnix

Dann bin ich auf diesen Hinweis gestoßen - Link

Danach habe ich diese Pakete installiert:

ipkg install bzip2
ipkg install boost-filesystem
ipkg install boost-system

Dann bin ich auf diesen Hinweis gestoßen - Link

Beim Start von mkvmerge bekomme ich folgenden Fehler:

mkvmerge: error while loading shared libraries: libboost_regex-mt.so: cannot open shared object file: No such file or directory

Diese Libraries habe ich nicht auf der DS - /opt/lib sieht so aus:

DiskStation> ls libboost*
libboost_filesystem.so libboost_regex.so.1.45.0
libboost_filesystem.so.1.45.0 libboost_system.so
libboost_regex.so libboost_system.so.1.45.0

Danach wollte ich noch einen Link erstellen:

cd /opt/lib
ln -s libboost_regex.so.1.45.0 libboost_regex-mt.so
ln -s libboost_filesystem.so.1.45.0 libboost_filesystem-mt.so
ln -s libboost_system.so.1.45.0 libboost_system-mt.so

Dann bekmme ich beim Ausführen von mkvmerge folgenden Fehler:

DiskStation> mkvmerge
mkvmerge: symbol lookup error: mkvmerge: undefined symbol: _ZN5boost6system19get_system_categoryEv

Hat noch jemand eine Idee, wie ich die "-mt" Libraries auf die DS bekommen kann oder wie ich mkvtoolnixh funktionsfähig bekomme?

Danke und schöne Grüße,
Reinhard
 

flagg

Benutzer
Mitglied seit
02. Jun 2011
Beiträge
95
Punkte für Reaktionen
2
Punkte
8
Hallo,

hat niemand eine Idee oder kennt ggf. ein Form / Internetseite etc. in dem man noch schauen könnte?

Danke,
Reinhard
 

flagg

Benutzer
Mitglied seit
02. Jun 2011
Beiträge
95
Punkte für Reaktionen
2
Punkte
8
Hallo,

hat keiner einen Tip?

Danke,
Reinhard
 

Ap0phis

Benutzer
Mitglied seit
16. Dez 2010
Beiträge
6.731
Punkte für Reaktionen
3
Punkte
158

flagg

Benutzer
Mitglied seit
02. Jun 2011
Beiträge
95
Punkte für Reaktionen
2
Punkte
8
Leider nein, ich habs jetzt immer auf dem PC laufen lassen.
Wäre aber noch an einer Lösung interessiert :)
 

scythe42

Benutzer
Mitglied seit
16. Sep 2011
Beiträge
90
Punkte für Reaktionen
0
Punkte
0
MKVToolnix und MedaInfo CLI selbst bauen

Informationen​



Changelog:
  • 28.10.2011 - 1.01 Anpassung für diverse Dependency Probleme / Boost Libs vergessen
  • 27.10.2011 - 1.00 Frist Draft
TODO:
  • Packages in ipkg manuell als installiert markieren, damit sie nicht als Dependency installiert oder überschrieben werden können. Weiss jemand wie das geht?
Getestete Systeme (Produkt und "uname -a" Output):
  • DS211+: Linux NAS 2.6.32.12 #1944 Mon Oct 24 18:50:26 CST 2011 armv5tel GNU/Linux

Anleitung​



  1. Vorarbeiten:
  2. Folgende Packages mit ihren Dependencies installieren, dann sollte alles Essentielle vorhanden sein was wir benötigen:
    Rich (BBCode):
    ipkg install optware-devel
    ipkg install grep
    ipkg install unzip
    ipkg install lzo
    ipkg install git
    ipkg install libvorbis
    ipkg install flac
    ipkg install ruby
    ipkg install gettext
  3. Ein Verzeichnis zum Bauen erstellen und im root verlinken:
    Rich (BBCode):
    mkdir /volume1/src
    ln -s /volume1/src /src
  4. Funktionierendes Automake bauen (ipkg Version ist gegen ein nicht vorhandenes multi-threaded PERL gelinkt):
    Rich (BBCode):
    cd /src
    
    # Tarball holen und entpacken
    wget ftp://ftp.gnu.org/gnu/automake/automake-1.11.1.tar.bz2
    tar xvjf automake-1.11.1.tar.bz2 
    
    # automake bauen
    cd automake-1.11.1
    ./configure --prefix=/opt
    make
    ipkg -force-depends remove automake
    make install
  5. Als nächstes korrigieren wir noch ein Problem mit der libpthread (Optware bootstrap bringt eine falsche Library mit sich):
    Rich (BBCode):
    # alte Library sichern
    mkdir /opt/arm-none-linux-gnueabi/lib_disabled
    mv /opt/arm-none-linux-gnueabi/lib/libpthread* /opt/arm-none-linux-gnueabi/lib_disabled
    
    # Library vom System kopieren und Symlinks anlegen
    cp /lib/libpthread.so.0 /opt/arm-none-linux-gnueabi/lib/
    cd /opt/arm-none-linux-gnueabi/lib/
    ln -s libpthread.so.0 libpthread.so
    ln -s libpthread.so.0 libpthread-2.5.so
  6. Den GCC erneuern um das neuste MKVToolNix Package zu übersetzen, da C++11 Features benötigt werden (ab GCC 4.6 verfügbar):
    Rich (BBCode):
    # In unser Build Verzeichnis gehen
    cd /src
    
    # Am besten die Zeile gleich ins .profile übernehmen
    export LD_LIBRARY_PATH="/opt/lib/:/lib/:$LD_LIBRARY_PATH"
    
    # Nicht vorhandenen symlink zur Bash setzen, falls notwendig
    if [ ! -e /bin/bash ]; then ln -s /opt/bin/bash /bin/bash; fi
    
    # Tarballs holen
    wget ftp://ftp.gmplib.org/pub/gmp-5.0.2/gmp-5.0.2.tar.bz2
    wget http://www.mpfr.org/mpfr-current/mpfr-3.1.0.tar.bz2
    wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
    wget http://bugseng.com/products/ppl/download/ftp/releases/0.11.2/ppl-0.11.2.tar.bz2
    wget http://www.bastoul.net/cloog/pages/download/count.php3?url=./cloog-0.16.3.tar.gz
    wget http://www.mr511.de/software/libelf-0.8.13.tar.gz
    wget http://ftp.gnu.org/gnu/gcc/gcc-4.6.2/gcc-4.6.2.tar.gz
    
    # Tarballs entpacken
    tar xvjf gmp-5.0.2.tar.bz2
    tar xvjf mpfr-3.1.0.tar.bz2
    tar xvzf mpc-0.9.tar.gz
    tar xvjf ppl-0.11.2.tar.bz2  
    tar xvzf cloog-0.16.3.tar.gz 
    tar xvzf libelf-0.8.13.tar.gz
    tar xvzf gcc-4.6.2.tar.gz
    
    # gmp mit C++ Unterstützung bauen
    cd /src/gmp-5.0.2
    CPPFLAGS=-fexceptions ./configure --enable-cxx --prefix=/opt
    make
    make install
    
    # mpfr bauen
    cd /src/mpfr-3.1.0
    ./configure --prefix=/opt
    make
    make install
    
    # mpc bauen
    cd /src/mpc-0.9
    ./configure --prefix=/opt
    make
    make install
    
    # ppl bauen (dauert sehr lange)
    cd /src/ppl-0.11.2
    ./configure --prefix=/opt
    make
    make install
    
    # cloog bauen
    cd /src/cloog-0.16.3
    ./configure --prefix=/opt
    make
    make install
    
    # libelf bauen
    cd /src/libelf-0.8.13
    ./configure --disable-nls --prefix=/opt
    make
    make install
    
    # Probleme bzgl. Optware Bootstrap und Dependencies beheben
    ln -s /opt/arm-none-linux-gnueabi/lib/crt1.o /usr/lib/crt1.o
    ln -s /opt/arm-none-linux-gnueabi/lib/crti.o /usr/lib/crti.o
    ln -s /opt/arm-none-linux-gnueabi/lib/crtn.o /usr/lib/crtn.o
    
    # GCC bauen (dauert sehr sehr lange, da ein 3-Stage Bootstrap Prozess verwendet wird)
    mkdir -p /src/gcc-4.6.2/build
    cd /src/gcc-4.6.2/build
    ../configure --disable-nls --disable-multilib --disable-libgomp \
                 --enable-cloog-backend=isl --enable-threads \
                 --prefix=/opt --oldincludedir=/opt --enable-languages=c,c++
    make
    ipkg -force-depends remove gcc
    make install
  7. Wenden wir uns jetzt endlich MKVToolnix zu (um Probleme mit dem neuen GCC zu vermeiden, am besten neu einloggen!):
    Rich (BBCode):
    cd /src
    
    # Am besten die Zeile gleich ins .profile übernehmen
    export LD_LIBRARY_PATH="/opt/lib/:/lib/:$LD_LIBRARY_PATH"
    
    # Boost Tarball holen und entpacken
    wget http://sourceforge.net/projects/boost/files/boost/1.47.0/boost_1_47_0.tar.bz2/download
    tar xvjf boost_1_47_0.tar.bz2
    
    # Bauen, was wir von Boost benötigen
    # Wer mehr der Boost Libraries braucht, kann diese bei --with-libraries hinzufügen oder dieses weglassen um alle zu bauen
    cd boost_1_47_0
    ./bootstrap.sh --prefix=/opt --with-libraries=filesystem,regex,system 
    ./b2
    ipkg -force-depends remove boost*
    ./b2 install
    
    # Fehlende ipkg libcurl Includes nachinstallieren
    wget http://curl.haxx.se/download/curl-7.22.0.tar.bz2
    tar xvjf curl-7.22.0.tar.bz2
    cd curl-7.22.0
    ./configure --prefix=/opt
    cd /src/curl-7.22.0/include/curl
    make install-pkgincludeHEADERS 
    
    # Aktuelle Developer Sources für MKVToolnix holen
    svn co https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml/
    svn co https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libmatroska
    git clone git://github.com/mbunkus/mkvtoolnix.git
    
    # libebml bauen
    cd /src/libebml/make/linux/
    # Im Makefile prefix von /usr/local auf /opt ändern
    make staticlib
    ipkg -force-depends remove libebml
    make install_staticlib install_headers
    
    # libmatroska bauen
    cd /src/libmatroska/make/linux
    # Im Makefile prefix von /usr/local auf /opt ändern
    make staticlib
    ipkg -force-depends remove libmatroska
    make install_staticlib install_headers
    
    # MKVToolnix bauen
    cd /src/mkvtoolnix
    ./autogen.sh
    export ZLIB_LIBS="-L/opt/lib -lz"
    export ZLIB_CFLAGS="-I/opt/include"
    export CURL_LIBS="-L/opt/lib -lcurl"
    export CURL_CFLAGS="-I/opt/include"
    ./configure --prefix=/opt --with-boost-libdir=/opt/lib
    ./drake
    ipkg -force-depends remove mkvtoolnix
    ./drake install
  8. Und weil es so schön war bauen wir auch gleich noch mediainfo für die Shell dazu:
    Rich (BBCode):
    cd /src
    
    # Tarball holen und entpacken
    wget http://downloads.sourceforge.net/mediainfo/MediaInfo_CLI_0.7.50_GNU_FromSource.tar.bz2
    tar xvjf MediaInfo_CLI_0.7.50_GNU_FromSource.tar.bz2 
    
    # mediainfo bauen
    cd MediaInfo_CLI_GNU_FromSource
    ./CLI_Compile.sh --prefix=/opt
    cd MediaInfo/Project/GNU/CLI
    make install

    Hinweis: Die ständigen "/opt/bin/sed: -e expression #1, char 65: unknown option to `s'" Meldungen können ignoriert werden. Es werden wohl Variablen bzgl. GCC nicht gesetzt sein, die vom Makefile eingesetzt werden sollen. Da aber alles läuft ist das reine Kosmetik und ich habe es nicht weiter verfolgt.
  9. Zeit zum Testen. Das Output sollte so aussehen:
    Rich (BBCode):
    NAS> mkvmerge -V
    mkvmerge v5.0.1 ('Es ist Sommer') built on Oct 28 2011 20:48:42
    
    NAS> mkvinfo -V 
    mkvinfo v5.0.1 ('Es ist Sommer') built on Oct 28 2011 20:48:42
    
    NAS> mkvextract -V
    mkvextract v5.0.1 ('Es ist Sommer') built on Oct 28 2011 20:48:42
    
    NAS> mkvpropedit -V
    mkvpropedit v5.0.1 ('Es ist Sommer') built on Oct 28 2011 20:48:42
    
    NAS> mediainfo --Version
    MediaInfo Command line, 
    MediaInfoLib - v0.7.50
  10. Wenn alles läuft dann kann man optional hinter sich aufräumen:
    Rich (BBCode):
    cd /
    rm /src
    rm -rf /volume1/src
    Persönlich behalte ich die Tarballs und die entpackten Verzeichnisse aber lieber, da man nie weiss wann man sie wieder mal braucht.
 
Zuletzt bearbeitet von einem Moderator:

schimi007

Benutzer
Mitglied seit
09. Sep 2011
Beiträge
430
Punkte für Reaktionen
0
Punkte
0
Ja warum einfach wenns umständlich auch geht.
 

flagg

Benutzer
Mitglied seit
02. Jun 2011
Beiträge
95
Punkte für Reaktionen
2
Punkte
8
Hi scynthe42, vielen Dank für deinen ausführlichen Beitrag. Ich werde es auf meiner DS testen und hier eine Rückmeldung geben!
 

scythe42

Benutzer
Mitglied seit
16. Sep 2011
Beiträge
90
Punkte für Reaktionen
0
Punkte
0
Wenn du paar Tage wartest dann kann ich dir für die 211+ auch direkt die Binaries zur Verfügung stellen. Spart dir den ganzen GCC und so zu bauen...
 

flagg

Benutzer
Mitglied seit
02. Jun 2011
Beiträge
95
Punkte für Reaktionen
2
Punkte
8
Hi, das wäre auch ok. Die nächsten beiden Wochen komme ich eh nicht dazu ...
 

scythe42

Benutzer
Mitglied seit
16. Sep 2011
Beiträge
90
Punkte für Reaktionen
0
Punkte
0
@Mods: Bitte erste Anleitung durch diese Ersetzen. Konnte den Post leider nicht mehr editieren.

Informationen​
Changelog:
  • 28.10.2011 - 1.01 Anpassung für diverse Dependency Probleme / Boost Libs vergessen
  • 27.10.2011 - 1.00 Frist Draft
TODO:
  • Packages in ipkg manuell als installiert markieren, damit sie nicht als Dependency installiert oder überschrieben werden können. Weiss jemand wie das geht?
Getestete Systeme (Produkt und "uname -a" Output):
  • DS211+: Linux NAS 2.6.32.12 #1944 Mon Oct 24 18:50:26 CST 2011 armv5tel GNU/Linux

Anleitung​
  1. Vorarbeiten:
  2. Folgende Packages mit ihren Dependencies installieren, dann sollte alles Essentielle vorhanden sein was wir benötigen:
    Rich (BBCode):
    ipkg install optware-devel
    ipkg install grep
    ipkg install unzip
    ipkg install lzo
    ipkg install git
    ipkg install libvorbis
    ipkg install flac
    ipkg install ruby
    ipkg install gettext
  3. Ein Verzeichnis zum Bauen erstellen und im root verlinken:
    Rich (BBCode):
    mkdir /volume1/src
    ln -s /volume1/src /src
  4. Funktionierendes Automake bauen (ipkg Version ist gegen ein nicht vorhandenes multi-threaded PERL gelinkt):
    Rich (BBCode):
    cd /src
    
    # Tarball holen und entpacken
    wget ftp://ftp.gnu.org/gnu/automake/automake-1.11.1.tar.bz2
    tar xvjf automake-1.11.1.tar.bz2 
    
    # automake bauen
    cd automake-1.11.1
    ./configure --prefix=/opt
    make
    ipkg -force-depends remove automake
    make install
  5. Als nächstes korrigieren wir noch ein Problem mit der libpthread (Optware bootstrap bringt eine falsche Library mit sich):
    Rich (BBCode):
    # alte Library sichern
    mkdir /opt/arm-none-linux-gnueabi/lib_disabled
    mv /opt/arm-none-linux-gnueabi/lib/libpthread* /opt/arm-none-linux-gnueabi/lib_disabled
    
    # Library vom System kopieren und Symlinks anlegen
    cp /lib/libpthread.so.0 /opt/arm-none-linux-gnueabi/lib/
    cd /opt/arm-none-linux-gnueabi/lib/
    ln -s libpthread.so.0 libpthread.so
    ln -s libpthread.so.0 libpthread-2.5.so
  6. Den GCC erneuern um das neuste MKVToolNix Package zu übersetzen, da C++11 Features benötigt werden (ab GCC 4.6 verfügbar):
    Rich (BBCode):
    # In unser Build Verzeichnis gehen
    cd /src
    
    # Am besten die Zeile gleich ins .profile übernehmen
    export LD_LIBRARY_PATH="/opt/lib/:/lib/:$LD_LIBRARY_PATH"
    
    # Nicht vorhandenen symlink zur Bash setzen, falls notwendig
    if [ ! -e /bin/bash ]; then ln -s /opt/bin/bash /bin/bash; fi
    
    # Tarballs holen
    wget ftp://ftp.gmplib.org/pub/gmp-5.0.2/gmp-5.0.2.tar.bz2
    wget http://www.mpfr.org/mpfr-current/mpfr-3.1.0.tar.bz2
    wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
    wget http://bugseng.com/products/ppl/download/ftp/releases/0.11.2/ppl-0.11.2.tar.bz2
    wget http://www.bastoul.net/cloog/pages/download/count.php3?url=./cloog-0.16.3.tar.gz
    wget http://www.mr511.de/software/libelf-0.8.13.tar.gz
    wget http://ftp.gnu.org/gnu/gcc/gcc-4.6.2/gcc-4.6.2.tar.gz
    
    # Tarballs entpacken
    tar xvjf gmp-5.0.2.tar.bz2
    tar xvjf mpfr-3.1.0.tar.bz2
    tar xvzf mpc-0.9.tar.gz
    tar xvjf ppl-0.11.2.tar.bz2  
    tar xvzf cloog-0.16.3.tar.gz 
    tar xvzf libelf-0.8.13.tar.gz
    tar xvzf gcc-4.6.2.tar.gz
    
    # gmp mit C++ Unterstützung bauen
    cd /src/gmp-5.0.2
    CPPFLAGS=-fexceptions ./configure --enable-cxx --prefix=/opt
    make
    make install
    
    # mpfr bauen
    cd /src/mpfr-3.1.0
    ./configure --prefix=/opt
    make
    make install
    
    # mpc bauen
    cd /src/mpc-0.9
    ./configure --prefix=/opt
    make
    make install
    
    # ppl bauen (dauert sehr lange)
    cd /src/ppl-0.11.2
    ./configure --prefix=/opt
    make
    make install
    
    # cloog bauen
    cd /src/cloog-0.16.3
    ./configure --prefix=/opt
    make
    make install
    
    # libelf bauen
    cd /src/libelf-0.8.13
    ./configure --disable-nls --prefix=/opt
    make
    make install
    
    # Probleme bzgl. Optware Bootstrap und Dependencies beheben
    ln -s /opt/arm-none-linux-gnueabi/lib/crt1.o /usr/lib/crt1.o
    ln -s /opt/arm-none-linux-gnueabi/lib/crti.o /usr/lib/crti.o
    ln -s /opt/arm-none-linux-gnueabi/lib/crtn.o /usr/lib/crtn.o
    
    # GCC bauen (dauert sehr sehr lange, da ein 3-Stage Bootstrap Prozess verwendet wird)
    mkdir -p /src/gcc-4.6.2/build
    cd /src/gcc-4.6.2/build
    ../configure --disable-nls --disable-multilib --disable-libgomp \
                 --enable-cloog-backend=isl --enable-threads \
                 --prefix=/opt --oldincludedir=/opt --enable-languages=c,c++
    make
    ipkg -force-depends remove gcc
    make install
  7. Wenden wir uns jetzt endlich MKVToolnix zu (um Probleme mit dem neuen GCC zu vermeiden, am besten neu einloggen!):
    Rich (BBCode):
    cd /src
    
    # Am besten die Zeile gleich ins .profile übernehmen
    export LD_LIBRARY_PATH="/opt/lib/:/lib/:$LD_LIBRARY_PATH"
    
    # Boost Tarball holen und entpacken
    wget http://sourceforge.net/projects/boost/files/boost/1.47.0/boost_1_47_0.tar.bz2/download
    tar xvjf boost_1_47_0.tar.bz2
    
    # Bauen, was wir von Boost benötigen
    # Wer mehr der Boost Libraries braucht, kann diese bei --with-libraries hinzufügen oder dieses weglassen um alle zu bauen
    cd boost_1_47_0
    ./bootstrap.sh --prefix=/opt --with-libraries=filesystem,regex,system 
    ./b2
    ipkg -force-depends remove boost*
    ./b2 install
    
    # Fehlende ipkg libcurl Includes nachinstallieren
    wget http://curl.haxx.se/download/curl-7.22.0.tar.bz2
    tar xvjf curl-7.22.0.tar.bz2
    cd curl-7.22.0
    ./configure --prefix=/opt
    cd /src/curl-7.22.0/include/curl
    make install-pkgincludeHEADERS 
    
    # Aktuelle Developer Sources für MKVToolnix holen
    svn co https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml/
    svn co https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libmatroska
    git clone git://github.com/mbunkus/mkvtoolnix.git
    
    # libebml bauen
    cd /src/libebml/make/linux/
    # Im Makefile prefix von /usr/local auf /opt ändern
    make staticlib
    ipkg -force-depends remove libebml
    make install_staticlib install_headers
    
    # libmatroska bauen
    cd /src/libmatroska/make/linux
    # Im Makefile prefix von /usr/local auf /opt ändern
    make staticlib
    ipkg -force-depends remove libmatroska
    make install_staticlib install_headers
    
    # MKVToolnix bauen
    cd /src/mkvtoolnix
    ./autogen.sh
    export ZLIB_LIBS="-L/opt/lib -lz"
    export ZLIB_CFLAGS="-I/opt/include"
    export CURL_LIBS="-L/opt/lib -lcurl"
    export CURL_CFLAGS="-I/opt/include"
    ./configure --prefix=/opt --with-boost-libdir=/opt/lib
    ./drake
    ipkg -force-depends remove mkvtoolnix
    ./drake install
  8. Und weil es so schön war bauen wir auch gleich noch mediainfo für die Shell dazu:
    Rich (BBCode):
    cd /src
    
    # Tarball holen und entpacken
    wget http://downloads.sourceforge.net/mediainfo/MediaInfo_CLI_0.7.50_GNU_FromSource.tar.bz2
    tar xvjf MediaInfo_CLI_0.7.50_GNU_FromSource.tar.bz2 
    
    # mediainfo bauen
    cd MediaInfo_CLI_GNU_FromSource
    ./CLI_Compile.sh --prefix=/opt
    cd MediaInfo/Project/GNU/CLI
    make install

    Hinweis: Die ständigen "/opt/bin/sed: -e expression #1, char 65: unknown option to `s'" Meldungen können ignoriert werden. Es werden wohl Variablen bzgl. GCC nicht gesetzt sein, die vom Makefile eingesetzt werden sollen. Da aber alles läuft ist das reine Kosmetik und ich habe es nicht weiter verfolgt.

  9. Zeit zum Testen. Das Output sollte so aussehen:
    Rich (BBCode):
    NAS> mkvmerge -V
    mkvmerge v5.0.1 ('Es ist Sommer') built on Oct 28 2011 20:48:42
    
    NAS> mkvinfo -V 
    mkvinfo v5.0.1 ('Es ist Sommer') built on Oct 28 2011 20:48:42
    
    NAS> mkvextract -V
    mkvextract v5.0.1 ('Es ist Sommer') built on Oct 28 2011 20:48:42
    
    NAS> mkvpropedit -V
    mkvpropedit v5.0.1 ('Es ist Sommer') built on Oct 28 2011 20:48:42
    
    NAS> mediainfo --Version
    MediaInfo Command line, 
    MediaInfoLib - v0.7.50
  10. Wenn alles läuft dann kann man optional hinter sich aufräumen:
    Rich (BBCode):
    cd /
    rm /src
    rm -rf /volume1/src
    Persönlich behalte ich die Tarballs und die entpackten Verzeichnisse aber lieber, da man nie weiss wann man sie wieder mal braucht.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.153
Punkte für Reaktionen
400
Punkte
393
Hi,
Originaltext ersetzt.

Gruß Götz
 

scythe42

Benutzer
Mitglied seit
16. Sep 2011
Beiträge
90
Punkte für Reaktionen
0
Punkte
0
Changelog​
  • 30.10.2011 - 1.02 curl-dev hinzugefügt
  • 28.10.2011 - 1.01 Anpassung für diverse Dependency Probleme / Boost Libs vergessen
  • 27.10.2011 - 1.00 Frist Draft

Anleitung​
  1. Vorarbeiten:
  2. Folgende Packages mit ihren Dependencies installieren, dann sollte alles Essentielle vorhanden sein was wir benötigen:
    Rich (BBCode):
    ipkg install optware-devel
    ipkg install grep
    ipkg install unzip
    ipkg install lzo
    ipkg install git
    ipkg install libvorbis
    ipkg install flac
    ipkg install ruby
    ipkg install gettext
    ipkg install curl-dev
  3. Ein Verzeichnis zum Bauen erstellen und im root verlinken:
    Rich (BBCode):
    mkdir /volume1/src
    ln -s /volume1/src /src
  4. Funktionierendes Automake bauen (ipkg Version ist gegen ein nicht vorhandenes multi-threaded PERL gelinkt):
    Rich (BBCode):
    cd /src
    
    # Tarball holen und entpacken
    wget ftp://ftp.gnu.org/gnu/automake/automake-1.11.1.tar.bz2
    tar xvjf automake-1.11.1.tar.bz2 
    
    # automake bauen
    cd automake-1.11.1
    ./configure --prefix=/opt
    make
    ipkg -force-depends remove automake
    make install
  5. Als nächstes korrigieren wir noch ein Problem mit der libpthread (Optware bootstrap bringt eine falsche Library mit sich):
    Rich (BBCode):
    # alte Library sichern
    mkdir /opt/arm-none-linux-gnueabi/lib_disabled
    mv /opt/arm-none-linux-gnueabi/lib/libpthread* /opt/arm-none-linux-gnueabi/lib_disabled
    
    # Library vom System kopieren und Symlinks anlegen
    cp /lib/libpthread.so.0 /opt/arm-none-linux-gnueabi/lib/
    cd /opt/arm-none-linux-gnueabi/lib/
    ln -s libpthread.so.0 libpthread.so
    ln -s libpthread.so.0 libpthread-2.5.so
  6. Den GCC erneuern um das neuste MKVToolNix Package zu übersetzen, da C++11 Features benötigt werden (ab GCC 4.6 verfügbar):
    Rich (BBCode):
    # In unser Build Verzeichnis gehen
    cd /src
    
    # Am besten die Zeile gleich ins .profile übernehmen
    export LD_LIBRARY_PATH="/opt/lib/:/lib/:$LD_LIBRARY_PATH"
    
    # Nicht vorhandenen symlink zur Bash setzen, falls notwendig
    if [ ! -e /bin/bash ]; then ln -s /opt/bin/bash /bin/bash; fi
    
    # Tarballs holen
    wget ftp://ftp.gmplib.org/pub/gmp-5.0.2/gmp-5.0.2.tar.bz2
    wget http://www.mpfr.org/mpfr-current/mpfr-3.1.0.tar.bz2
    wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
    wget http://bugseng.com/products/ppl/download/ftp/releases/0.11.2/ppl-0.11.2.tar.bz2
    wget http://www.bastoul.net/cloog/pages/download/count.php3?url=./cloog-0.16.3.tar.gz
    wget http://www.mr511.de/software/libelf-0.8.13.tar.gz
    wget http://ftp.gnu.org/gnu/gcc/gcc-4.6.2/gcc-4.6.2.tar.gz
    
    # Tarballs entpacken
    tar xvjf gmp-5.0.2.tar.bz2
    tar xvjf mpfr-3.1.0.tar.bz2
    tar xvzf mpc-0.9.tar.gz
    tar xvjf ppl-0.11.2.tar.bz2  
    tar xvzf cloog-0.16.3.tar.gz 
    tar xvzf libelf-0.8.13.tar.gz
    tar xvzf gcc-4.6.2.tar.gz
    
    # gmp mit C++ Unterstützung bauen
    cd /src/gmp-5.0.2
    CPPFLAGS=-fexceptions ./configure --enable-cxx --prefix=/opt
    make
    make install
    
    # mpfr bauen
    cd /src/mpfr-3.1.0
    ./configure --prefix=/opt
    make
    make install
    
    # mpc bauen
    cd /src/mpc-0.9
    ./configure --prefix=/opt
    make
    make install
    
    # ppl bauen (dauert sehr lange)
    cd /src/ppl-0.11.2
    ./configure --prefix=/opt
    make
    make install
    
    # cloog bauen
    cd /src/cloog-0.16.3
    ./configure --prefix=/opt
    make
    make install
    
    # libelf bauen
    cd /src/libelf-0.8.13
    ./configure --disable-nls --prefix=/opt
    make
    make install
    
    # Probleme bzgl. Optware Bootstrap und Dependencies beheben
    ln -s /opt/arm-none-linux-gnueabi/lib/crt1.o /usr/lib/crt1.o
    ln -s /opt/arm-none-linux-gnueabi/lib/crti.o /usr/lib/crti.o
    ln -s /opt/arm-none-linux-gnueabi/lib/crtn.o /usr/lib/crtn.o
    
    # GCC bauen (dauert sehr sehr lange, da ein 3-Stage Bootstrap Prozess verwendet wird)
    mkdir -p /src/gcc-4.6.2/build
    cd /src/gcc-4.6.2/build
    ../configure --disable-nls --disable-multilib --disable-libgomp \
                 --enable-cloog-backend=isl --enable-threads \
                 --prefix=/opt --oldincludedir=/opt --enable-languages=c,c++
    make
    ipkg -force-depends remove gcc
    make install
  7. Wenden wir uns jetzt endlich MKVToolnix zu (um Probleme mit dem neuen GCC zu vermeiden, am besten neu einloggen!):
    Rich (BBCode):
    cd /src
    
    # Am besten die Zeile gleich ins .profile übernehmen
    export LD_LIBRARY_PATH="/opt/lib/:/lib/:$LD_LIBRARY_PATH"
    
    # Boost Tarball holen und entpacken
    wget http://sourceforge.net/projects/boost/files/boost/1.47.0/boost_1_47_0.tar.bz2/download
    tar xvjf boost_1_47_0.tar.bz2
    
    # Bauen, was wir von Boost benötigen
    # Wer mehr der Boost Libraries braucht, kann diese bei --with-libraries hinzufügen oder dieses weglassen um alle zu bauen
    cd boost_1_47_0
    ./bootstrap.sh --prefix=/opt --with-libraries=filesystem,regex,system 
    ./b2
    ipkg -force-depends remove boost*
    ./b2 install
    
    # Aktuelle Sources für MKVToolnix holen
    svn co https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libebml/
    svn co https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libmatroska
    git clone git://github.com/mbunkus/mkvtoolnix.git
    
    # libebml bauen
    cd /src/libebml/make/linux/
    # Im Makefile prefix von /usr/local auf /opt ändern
    make staticlib
    ipkg -force-depends remove libebml
    make install_staticlib install_headers
    
    # libmatroska bauen
    cd /src/libmatroska/make/linux
    # Im Makefile prefix von /usr/local auf /opt ändern
    make staticlib
    ipkg -force-depends remove libmatroska
    make install_staticlib install_headers
    
    # MKVToolnix bauen
    cd /src/mkvtoolnix
    ./autogen.sh
    export ZLIB_LIBS="-L/opt/lib -lz"
    export ZLIB_CFLAGS="-I/opt/include"
    export CURL_LIBS="-L/opt/lib -lcurl"
    export CURL_CFLAGS="-I/opt/include"
    ./configure --prefix=/opt --with-boost-libdir=/opt/lib
    ./drake
    ipkg -force-depends remove mkvtoolnix
    ./drake install
  8. Und weil es so schön war bauen wir auch gleich noch mediainfo für die Shell dazu:
    Rich (BBCode):
    cd /src
    
    # Tarball holen und entpacken
    wget http://downloads.sourceforge.net/mediainfo/MediaInfo_CLI_0.7.50_GNU_FromSource.tar.bz2
    tar xvjf MediaInfo_CLI_0.7.50_GNU_FromSource.tar.bz2 
    
    # mediainfo bauen
    cd MediaInfo_CLI_GNU_FromSource
    ./CLI_Compile.sh --prefix=/opt
    cd MediaInfo/Project/GNU/CLI
    make install

    Hinweis: Die ständigen "/opt/bin/sed: -e expression #1, char 65: unknown option to `s'" Meldungen können ignoriert werden. Es werden wohl Variablen bzgl. GCC nicht gesetzt sein, die vom Makefile eingesetzt werden sollen. Da aber alles läuft ist das reine Kosmetik und ich habe es nicht weiter verfolgt.

  9. Zeit zum Testen. Das Output sollte so aussehen:
    Rich (BBCode):
    NAS> mkvmerge -V
    mkvmerge v5.0.1 ('Es ist Sommer') built on Oct 28 2011 20:48:42
    
    NAS> mkvinfo -V 
    mkvinfo v5.0.1 ('Es ist Sommer') built on Oct 28 2011 20:48:42
    
    NAS> mkvextract -V
    mkvextract v5.0.1 ('Es ist Sommer') built on Oct 28 2011 20:48:42
    
    NAS> mkvpropedit -V
    mkvpropedit v5.0.1 ('Es ist Sommer') built on Oct 28 2011 20:48:42
    
    NAS> mediainfo --Version
    MediaInfo Command line, 
    MediaInfoLib - v0.7.50
  10. Wenn alles läuft dann kann man optional hinter sich aufräumen:
    Rich (BBCode):
    cd /
    rm /src
    rm -rf /volume1/src
    Persönlich behalte ich die Tarballs und die entpackten Verzeichnisse aber lieber, da man nie weiss wann man sie wieder mal braucht.
 

flagg

Benutzer
Mitglied seit
02. Jun 2011
Beiträge
95
Punkte für Reaktionen
2
Punkte
8
Hi scythe42, wie siehts aus mit den Binaries für die 211+? Hast du da was fertiges oder muss ich selbst bauen? Danke.
 

flagg

Benutzer
Mitglied seit
02. Jun 2011
Beiträge
95
Punkte für Reaktionen
2
Punkte
8
Hallo,

ich bekomme beim beim make vom gcc auf meiner DS 211+ folgende Fehlermeldung:

The directory that should contain system headers does not exist:
/usr/include
make[3]: *** [stmp-fixinc] Error 1
make[3]: Leaving directory `/volume1/src/gcc-4.6.2/build/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/volume1/src/gcc-4.6.2/build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/volume1/src/gcc-4.6.2/build'
make: *** [all] Error 2

Hat jemand eine Idee was hier genau fehlt?

Danke,
Reinhard
 

flagg

Benutzer
Mitglied seit
02. Jun 2011
Beiträge
95
Punkte für Reaktionen
2
Punkte
8
Hallo,

ich bin einen Schritt weiter, der make läuft wieder nachdem ich den configure wie folgt angepasst habe:

../configure --disable-nls --disable-multilib --disable-libgomp --enable-cloog-backend=isl --enable-threads --

prefix=/opt --oldincludedir=/opt --enable-languages=c,c++ --with-native-system-header-dir=/opt/include

Edit: Ich glaub das war es nicht :-( Ich lasse jetzt noch einmal nen "make clean" und teste noch einmal ...
 

flagg

Benutzer
Mitglied seit
02. Jun 2011
Beiträge
95
Punkte für Reaktionen
2
Punkte
8
Hallo,

der vorherige Post ist obsolet, die Lösung war folgendes:

ln -s /opt/include /usr/include
 

flagg

Benutzer
Mitglied seit
02. Jun 2011
Beiträge
95
Punkte für Reaktionen
2
Punkte
8
Hallo,

jetzt komme ich leider nicht mehr weiter (so kurz vor dem Ende :):

/volume1/@optware/bin/../lib/gcc/../../include/boost/filesystem/v3/operations.hpp:849:56: error: 'BOOST_ASSERT_MSG' was not declared in this scope

Erscheint beim ./drake von mkvtoolnix.

Hat jemand eine Idee wie ich die Asserts deaktivieren kann bzw. was hier noch zu tun ist?

Danke,
Reinhard
 

flagg

Benutzer
Mitglied seit
02. Jun 2011
Beiträge
95
Punkte für Reaktionen
2
Punkte
8
Hallo,

hat noch jemand eine Idee? Ich komme hier leider nicht weiter.

Danke,
Reinhard
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat