Hallo,
ich möchte gerne direkt auf der dm900 kompilieren, gibt so etwas wie "build-essential" dafür?
Danke,
lg
MCPat
Hallo,
ich möchte gerne direkt auf der dm900 kompilieren, gibt so etwas wie "build-essential" dafür?
Danke,
lg
MCPat
du kannst dir mit Barry Allen ein ganzes Debian Jessie drauf machen....das reich eigentlich fuer alles was man so braucht weil alle noetigen libs am feed sind.
danke dir gutemine, werd ich heute abend ausprobieren.
Hintergrund ist, dass ich automatisch mit cronjob ein Programm compilieren will und dafür fehlt mir der gcc...
lg
MCPat
boardregeln lesen ...
Danke für den Hinweis
Nachdem ich Stunden damit verbracht habe um ein schlankes Paket zu erstellen, möchte ich nun die Erkenntnisse teilen.
Auf der Box sind ein paar Pakete vorab zu installieren:
apt-get install coreutils ncurses grep wget libz-dev make binutils libssl1.0.0 openssl openssl-dev libcrypto1.0.0 libusb-1.0-0 libusb-1.0-dev
apt-get -f install
Danach nehmt meinen neuen Feed (Datei im Anhang), macht ein Update und installiert meine Pakete:
dpkg -i gp-feed-build_1.0-r0.1_armhf.deb
apt-get update
apt-get install subversion libpcsclite1 libccid dialog sshpass upx-ucl enigma2-plugin-systemplugins-mcpat-build-essentials
apt-get -f install
Ich habe GCC 5.3.0 kompiliert, läuft soweit, hab zum Test alle benötigten Programme welche nicht am Feed liegen und auch ein nicht näher genanntes Programm kompiliert.
Bei mir läuft es für meine Zwecke, vielleicht gebt ihr mir Bescheid wie es bei euch läuft und etwaige Fehlermeldungen?! Alle unten genannten Programme habe ich bereits mit GCC 5.3.0 kompiliert und sollten soweit laufen.
Im Feed enthalten:
Es werden keine vorhandenen Dateien überschrieben!Habe die checks durchgeführt (dejagnu) und folgendes Ergebnis (gut oder schlecht????):
LAST_UPDATED: Obtained from SVN: tags/gcc_5_3_0_release revision 231255
Native configuration is arm-unknown-linux-gnueabihf
=== libatomic tests ===
Running target unix
=== libatomic Summary ===
# of expected passes 44
# of unsupported tests 5
=== libgomp tests ===
Running target unix
ERROR: (DejaGnu) proc "unsetenv OMP_PROC_BIND" does not exist.
=== libgomp Summary ===
# of expected passes 1
=== libitm tests ===
Running target unix
=== libitm Summary ===
# of expected passes 26
# of expected failures 3
# of unsupported tests 1
=== libstdc++ tests ===
Running target unix
FAIL: 22_locale/collate_byname/named_equivalence.cc execution test
FAIL: 22_locale/ctype/is/char/2.cc execution test
FAIL: 22_locale/ctype/is/char/wrapped_env.cc execution test
FAIL: 22_locale/messages/13631.cc execution test
FAIL: 22_locale/messages/members/char/1.cc execution test
FAIL: 22_locale/messages/members/char/2.cc execution test
FAIL: 22_locale/messages_byname/named_equivalence.cc execution test
FAIL: 22_locale/money_get/get/char/1.cc execution test
FAIL: 22_locale/money_put/put/char/1.cc execution test
FAIL: 22_locale/money_put/put/char/3.cc execution test
FAIL: experimental/filesystem/iterators/directory_iterator.cc execution test
FAIL: experimental/filesystem/iterators/recursive_directory_iterator.cc execution test
=== libstdc++ Summary ===
# of expected passes 9570
# of unexpected failures 12
# of expected failures 65
# of unsupported tests 584
=== g++ tests ===
Running target unix
FAIL: c-c++-common/asan/heap-overflow-1.c -O1 output pattern test
FAIL: c-c++-common/asan/heap-overflow-1.c -O2 output pattern test
FAIL: c-c++-common/asan/heap-overflow-1.c -O3 -fomit-frame-pointer output pattern test
FAIL: c-c++-common/asan/heap-overflow-1.c -O3 -g output pattern test
FAIL: c-c++-common/asan/heap-overflow-1.c -Os output pattern test
FAIL: c-c++-common/asan/heap-overflow-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none output pattern test
FAIL: c-c++-common/asan/heap-overflow-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects output pattern test
ERROR: (DejaGnu) proc "unsetenv ASAN_OPTIONS" does not exist.
=== g++ Summary ===
# of expected passes 777
# of unexpected failures 7
# of unsupported tests 103
/media/usb/building/gcc/gcc-5.3.0-objdir/gcc/xg++ version 5.3.0 (GCC)
=== gcc tests ===
Running target unix
FAIL: c-c++-common/asan/heap-overflow-1.c -O1 output pattern test
FAIL: c-c++-common/asan/heap-overflow-1.c -O2 output pattern test
FAIL: c-c++-common/asan/heap-overflow-1.c -O3 -fomit-frame-pointer output pattern test
FAIL: c-c++-common/asan/heap-overflow-1.c -O3 -g output pattern test
FAIL: c-c++-common/asan/heap-overflow-1.c -Os output pattern test
FAIL: c-c++-common/asan/heap-overflow-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none output pattern test
FAIL: c-c++-common/asan/heap-overflow-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects output pattern test
ERROR: (DejaGnu) proc "unsetenv ASAN_OPTIONS" does not exist.
=== gcc Summary ===
# of expected passes 41658
# of unexpected failures 7
# of unsupported tests 205
/media/usb/building/gcc/gcc-5.3.0-objdir/gcc/xgcc version 5.3.0 (GCC)
Compiler version: 5.3.0 (GCC)
Platform: arm-unknown-linux-gnueabihf
configure flags: --enable-languages=c,c++ --prefix=/usr --with-float=hard --disable-softfloat --with-system-zlib --program-suffix=-5.3.0-mc --libexecdir=/usr/lib --with-gxx-include-dir=/usr/include/c++/5.3.0-mc --libdir=/usr/lib --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf --disable-multilib
Alles anzeigen
Viel Spaß and happy coding
MCPat
1. PHP und MySQL auf der Dream
Nachdem wir jetzt schon viel gelernt haben, geht es weiter mit PHP/MySQL/Nginx auf der DM900. Ich weiß, die Box stößt da bald an die Grenzen, aber zum Testen einer eigenen Wordpress Seite funktioniert es bei mir ganz gut.
Um die Standardports verwenden zu können (sofern man das will), sollte man das Webinterface der Box auf andere Ports legen (zb 8080 für den http Zugang und 8443 für den https Zugang).
Danach installieren wir uns die notwendigen Pakete (vorausgesetzt ihr habt meinen Feed von oben installiert). Dabei ist zu beachten, dass das php-fpm1 Paket und die MySQL Datenbank sehr groß sind und ich daher einen Teil auf /media/usb schreibe. D.h. ihr benötigt einen USB Stick auf /media/usb gemountet oder (wenn ihr den Speicherplatz der Box belegen wollt) zumindest einen Ordner /media/usb.
"Mein" Nginx nutzt Openssl 1.1.0 und um die vorhandene offizielle Version mit meiner Version nicht zu überschreiben heißt das Paket "nginx1".
Wenn das alles klar und ok ist, dann installiert man wie folgt:
Beachtet, dass mysql nun automatisch auf /media/usb eine Datenbank ohne Passwort anlegt. Nach der Installation legt man das Passwort wie folgt fest (verwendet keine Sonderzeichen wie zB "#", da ging bei mir nichts mehr):
Und passen folgende Configs an:
/etc/nginx/nginx.conf
...
server {
listen 80; #Port einstellen auf gewünschten Port
server_name localhost;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
root /var/www; #der Pfad wo ihr eure Homepage ablegen wollt
location / {
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html; #der Pfad wo ihr eure Error-Page ablegen wollt
internal;
}
location ~ \.php$ {
include /etc/nginx/fastcgi.conf;
# fastcgi_index index.php;
# With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php-fpm.sock;
}
}
...
Alles anzeigen
/etc/php-fpm.d/www.conf
...
user = www-data
group = www-data
...
listen = /var/run/php-fpm.sock
...
listen.owner = www-data
listen.group = www-data
...
/etc/my.cnf
[client]
...
password = EUERPASSWORT
...
[mysqld]
...
datadir = /media/usb/mysql/database #ist der Pfad der Standardinstallation
...
Macht am besten danach einen reboot der Box und schaut ob alle Prozesse laufen:
Da sollten laufen:
Erstellt noch eine index.php Datei in eurem "www" Ordner mit folgenden Inhalt:
Nun der Test, öffnet euren Browser und gebt eure Seite ein:
und es kommt hoffentlich eine NGINX Seite. Prüft ob PHP läuft indem ihr folgende Adresse eingebt:
wo hoffentlich eine lange PHP Seite erscheint.
2. phpmyadmin
Nachdem nun der Server erfolgreich läuft, laden wir uns phpmyadmin herunter und entpacken es in das www Verzeichnis in den Unterordner "phpmyadmin". Ob es klappt seht ihr wenn ihr in eurem Browser folgende Seite öffnet:
Ihr müsst nun eure Daten eingeben ("Neuer Server" und danach "localhost" mit "127.0.0.1" und Port 3306 und Verbindung komprimieren -> "Übernehmen" und im zweiten Fenster "deutsch", "localhost" und "unix/linux" und auf "download" klicken) und ihr erhält die Konfigurationsdatei. Kopiert diese als config.inc.php Datei in den phpmyadmin Ordner. Beispielinhalt:
<?php
/* Servers configuration */
$i = 0;
/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = 3306;
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = true;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'EUERPASSWORT';
/* End of servers configuration */
$cfg['blowfish_secret'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx';
$cfg['DefaultLang'] = 'de';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
?>
Alles anzeigen
Ob es klappt seht ihr wenn ihr in eurem Browser folgende Seite öffnet:
und euch ein Loginbildschirm begrüßt. Nachdem ihr euch mit root und EUERPASSWORT angemeldet habt, solltet ihr die Datenbank sehen können.
3. wordpress
Als erstes legen wir uns die notwendige Datenbank und Benutzer an (ändert yourpassword auf euer Wunschpasswort um). Nach Eingabe der ersten Zeile werdet ihr um das oben festgelegte Passwort gefragt, danach gebt die Zeilen einzeln ein und beendet mit exit:
mysql -u root mysql -p
CREATE DATABASE wordpress;
CREATE USER 'ideuser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON wordpress.* TO 'ideuser'@'localhost';
FLUSH PRIVILEGES;
exit
und laden uns wordpress herunter, erstellen im WWW Verzeichnis einen Ordner "wordpress" und entpacken es dorthin. Anschließend öffnen wir die Startseite mit
Nun müssen wir auch hier alle Datenbankdaten eingeben und erhalten als Resultat einen Vorschlag für die Datei "wp-config.php" mit folgenden Beispielinhalt:
...
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'ideuser');
/** MySQL database password */
define('DB_PASSWORD', 'yourpassword');
/** MySQL hostname */
define('DB_HOST', '127.0.0.1');
...
$table_prefix = 'wp_';
...
Alles anzeigen
Danach sollte uns Wordpress mit dem Standardinhalt unter
begrüssen. Geht dann in den Adminbereich
loggt euch ein und ihr landet im Dashport.
4. SSL Zugriff auf eure Homepage
Dieser Schritt ist sicherlich notwendig wenn ihr vom Internet aus erreichbar seid und kostenlos ein Zertifikat erhalten wollt. Vorausgesetzt ihr habt einen Domainnamen und nicht nur eine IP-Adresse. Domainnamen kosten ca. 10€/Jahr, bei dynamischen IP's kann man zB kostenlose Services wie spdyn nutzen.
Wenn ihr die obigen Voraussetzungen erfüllt, kann es schon fast losgehen...
Damit das ganze funktioniert, muss eure Dreambox von außen via Standardport 80 erreichbar sein. D.h. ihr müsst eine Portweiterleitung am Router einrichten (80 Port) auf den http Port den ihr oben gewählt habt (kann 80 sein, oder jeder beliebige).
Installiert dehydrated:
Für tägliche Prüfungen führt den folgenden Befehl aus und fügt die nachstehende Zeile ein ("a" drücken, danach eingeben, danach "ESC" drücken und ":wq"):
Folgende configs werden angepasst:
/etc/dehydrated/config: - gemäß euren Daten
#CA="https://acme-v01.api.letsencrypt.org/directory" #erst aktivieren wenn alles läuft
CA="https://acme-staging.api.letsencrypt.org/directory" # testing server
...
WELLKNOWN="/var/www/.well-known/acme-challenge" #euer pfad zu www
...
/etc/dehydrated/domains.txt: - gemäß euren Daten
/etc/dehydrated/hook.sh: - wenn man spezielle Dienste nach Update starten will
/etc/nginx/nginx.conf:
Fügt einen zweiten "server" nach dem "ersten" Server ein, damit habt ihr dann zwei Ports, einmal http und einmal https.
...
server {
listen 443 ssl;
server_name www.example.com;
error_page 497 https://$host:$server_port$request_uri;
ssl_certificate /etc/dehydrated/certs/www.example.com/fullchain.pem;
ssl_certificate_key /etc/dehydrated/certs/www.example.com/privkey.pem;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/dhparams.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_session_tickets off;
ssl_protocols TLSv1.2;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 10s;
#add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; #kein HSTS
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
root /var/www;
location / {
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
location ~ \.php$ {
include /etc/nginx/fastcgi.conf;
# fastcgi_index index.php;
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php-fpm.sock;
}
# This handles everything that starts with /phpmyadmin,
# and no regex locations will override it
location ^~ /phpmyadmin {
index index.html index.htm index.php;
allow xxx.xxx.xxx.xxx;
allow 192.168.0.0/24;
deny all;
# This will inherit the allow/deny from the outer location
location ~ \.php$ {
include /etc/nginx/fastcgi.conf;
fastcgi_pass unix:/var/run/php-fpm.sock;
}
}
}
...
Alles anzeigen
Erstellt in eurem www Verzeichnis den Ordner .well-known (mit Punkt!) mit Unterordner acme-challenge
Wir erstellen die Datei dhparams.pem:
Bevor ihr jetzt nginx neustartet (was nicht gelingen wird ohne certs) starten wir mal den Versuch ob wir Zertifikate bekommen:
Wenn er bis "DONE" runterläuft, sollte nginx automatisch starten und eure Seite via https erreichbar sein.... Es wird ein Zertifikatsfehler erscheinen, denn noch war es Trockentraining. Wir müssen neu konfigurieren, /etc/dehydrated/config:
CA="https://acme-v01.api.letsencrypt.org/directory" #erst aktivieren wenn alles läuft
#CA="https://acme-staging.api.letsencrypt.org/directory" # testing server
...
Und startet nochmals
Es müsste nun nochmals bis "DONE" runterlaufen, nginx neustarten und eure Homepage sollte nun ein gültiges Zertifikat haben. Mit dem täglichen Cronjob sollte dies auch so bleiben. Keine Angst, es kommen nicht täglich neue Zertifikate, erst wenn die Gültigkeit <30 Tage ist, wird ein neues Zertifikat angefordert...
Herzlichen Glückwunsch, ihr habt nun eine sichere Seite!
Gruß
MCPat
Hallo,
ich möchte gerne direkt auf der dm900 kompilieren
habe was für mipsel gesucht und bin auf diese Seite gestossen, http://ellcc.org/releases/ gcc vorkompiliert, einfach auf die Hardisk entpacken, nur mips32r2el ist leider kein mips32el, kommt der "(" unexpected Fehler, ist nicht die gleiche Prozessorfamilie, aber auf der DM900 sollte doch der arm32v7-linux laufen, denke ich mal, einfach ausprobieren, nach unten scrollen!
Ich installiere mit Barry Allen eine Debian Jessie auf allen meinen DreamOS boxen (sowohl mipsel als auch armhf) und da sind dann alle compiler, build tools und libs fertig am feed um ganz ohne x-compiling mir alles was ich will zu bauen.
Wie viele Monate brauchst du da, wenn du ein komplettes OE einrichtest? Das geht ja schon auf meinem PC einige Stunden.
ich compilere kein OE, wozu auch, das was ich so mache geht auch ohne.
error while loading shared libraries: libpcsclite.so.1: cannot open shared object file: No such file or directory
1 - Nachsitzen
Deine Frage (resp. das, was du bauen willst) verstösst gegen die Boardregeln, die du vor ein paar Minuten akzeptiert hast.
warum wird geredet von das probleme was habe ich verstössen????
oscam ist hier tabu!
sorry
ok wie kann diese fehlend error while loading shared libraries: libpcsclite.so.1: cannot open shared object file: No such file or directory
das machts nicht besser
also was dann ich sehe das chatt ist hilfe los für was dreambox forum wenn alles ist verstöss
Dafür sind Regeln da ...
Und nur weil dir meine bisherigen Antworten zu deinem Problem nicht gefallen sind sie nicht falsch.