HowTo
HowTos / Tutorials aus verschiedenen Bereichen der IT-Welt
Cross-Compiling Android Kernel – Samsung GalaxyS2
2Das GalaxyS2 läuft ziemlich gut mit dem neuen nightly-builds von CM9 (Android 4.0.4) & den neusten Google-Apps & dem SiyahKernel.
Ich möchte hier kurz erklären, wie du einen Kernel für das Samsung S2 (CM9) auf Basis vom SiyahKernel kompilierst.
1.) Installiere Linux + Cross-Compiler
Als erstes solltest du Linux bereits installiert haben (z.B. Ubuntu, Debian ...) ggf. einfach auf einen virtuellen PC z.B. via VirtualBox. Für Ubuntu gibt es bereits ab Werk GCC für ARM, bei Debian habe ich bisher folgende Paket-Quellen ( /etc/apt/sources.list ) mit aufgenommen und anschließend gcc-4.6-arm installiert, jedoch bisher nur mit Debian *sid* getestet.
deb http://www.emdebian.org/debian/ unstable main
Install:
sudo apt-get install build-essential git gcc-4.5-arm-linux-gnueabi wget More >
C-Programm & Cflags
2Ich habe vor einiger Zeit das Prinzip von Makefiles anhand eines kleines Beispiels gezeigt -> http://suckup.de/howto/c/c-programm-primzahlen-makefiles/ <- den selben Quelltext kompilieren wir heute mit verschiedenen C-Flags und 1000000 Schleifendurchläufen ...
1.) ohne C-Flags
gcc -lm primzahlen.c -o primzahlen_slow
Output: time ./primzahlen_slow
[...] 999961 999979 999983 real 0m1.760s user 0m1.420s sys 0m0.164s
2.) ohne C-Flags & ohne "math.h" (sqrt)
gcc primzahlen.c -o primzahlen_slow
Output: time ./primzahlen_slow
[...] 999961 999979 999983 real 0m1.407s user 0m0.988s sys 0m0.192s
3.) -O2 & ohne "math.h" (sqrt)
gcc -O2 primzahlen.c -o primzahlen_2
Output: time ./primzahlen_slow
[...] 999961 999979 999983 real 0m1.405s user More >
PHP-Sicherheit erhöhen
9Jeder Server welcher PHP-Skripte verarbeitet, sollte zumindest zwei Sicherheitsschlösser eingebaut haben, so dass man nicht jedem Tür & Tor öffnet.
1.) suPHP oder suexec + fcgid
Wir sollten PHP-Skript nicht alle mit dem selben User-Berechtigungen (z.B. apache) laufen lassen, daher empfiehlt es sich auf kleinen Webservern suPHP und auf Webseiten mit mehr Traffic "Fast CGI" zu installieren. Alternativ kann man PHP mit "PHP-FPM" (FastCGI Process Manager) auch jeweils als eigenständigen Prozess laufen lassen.
2.) Suhosin
Da einige PHP-Projekte nicht wirklich für Ihre Sicherheit bekannt sind, empfiehlt es sich zudem die "Suhosin" Erweiterung für PHP zu installieren. "Es wurde entworfen, um den Server und die Benutzer vor bekannten und unbekannten Fehlern in PHP-Anwendungen und im More >
Monatsnamen / Wochentagsnamen in deutsch via PHP
2"Gibt einen String zurück, der den angegebenen Formatierungs-Merkmalen entspricht. Dabei wird der gegebene Timestamp/ Zeitstempel oder - falls dieser fehlt - die momentane lokale Zeit benutzt. Der Monats- und Wochentagsname wird entsprechend des per setlocale() eingestellten Wertes gesetzt." - php.net/manual/de/function.strftime.php
setlocale(LC_TIME, "de_DE"); echo strftime("%A"); // Wochentagsname echo strftime("%B"); // Monatsname
perror – Explain Error Codes für MySQL in der Shell
1Info: http://dev.mysql.com/doc/refman/5.0/en/perror.html
Ausgabe:
OS error code 1: Operation not permitted OS error code 2: No such file or directory OS error code 3: No such process OS error code 4: Interrupted system call OS error code 5: Input/output error OS error code 6: No such device or address OS error code 7: Argument list too long OS error code 8: Exec format error OS error code 9: Bad file descriptor OS error code 10: No child processes OS error code 11: Resource temporarily unavailable OS error code 12: Cannot allocate memory OS error code 13: Permission denied OS error code 14: Bad address OS error code 15: Block device required OS error code 16: Device or resource More >
C-Programm – einfacher Taschenrechner
3Hier mal wieder ein einfaches Beispiel in C mit "Struktogramm" & "Programmablaufplan" & "Pseudocode" ...
#gallery-1 { margin: auto; } #gallery-1 .gallery-item { float: left; margin-top: 10px; text-align: center; width: 25%; } #gallery-1 img { border: 2px solid #cfcfcf; } #gallery-1 .gallery-caption { margin-left: 0; }- Struktogramm via Structorizer
- Programmablaufplan via Dia (Gnome)
Pseudocode:
<strong>begin</strong> Eine 'einfache' Rechenaufgabe (z.B. 5+5) eingeben. Aufteilung der Eingabe in (drei) Variablen [ein1, ein2, ein3] <strong>case</strong> ein2 <strong>is</strong> <strong>+:</strong> Addition: "ein1" & "ein3" More >
Crashkurs: jQuery-Selektoren
4Es ist eine Vereinfachung von JavaScript durch ein sogenanntes Framework, welches uns lästige Routinearbeit beim Programmieren abnimmt und einen einfachen Zugang zu schwer nutzbaren JavaScript-Methoden bietet.
JavaScript mit & ohne jQuery!
Für den Einstieg in das Thema möchte ich ein Beispiel mit JavaScript und den selben Effekt via jQuery zeigen.
JavaScript: (JavaScript_test1.html)
<html> <head> <title>JavaScript</title> <style type="text/css"> .green { color: #009933; } </style> <script tyle="text/javascript"> window.onload = function() { var elements = document.getElementById("box").getElementsByTagName("p"); for (var i = 0; i < elements.length; i++) { if (elements[i].firstChild.data == "Zweiter Absatz") { elements[i].className = More >Optimierungen von Android unter Linux nutzen
6Vor einiger Zeit habe ich ein kleines Shell-Script (SSSwitch - auto-switch settings) geschrieben, welches mein Android Handy beim Start optimiert und die Kernel-Einstellungen anpasst, wenn der Bildschirm an bzw. aus ist. Einige der Einstellungen kann man auch unter Linux verwenden. Als Beispiel beschreibe ich hier kurz, wie man die I/O Leistung verbessern kann und wer allgemein etwas zum optimieren von Linux / Ubuntu lesen möchte, dem hilft ggf. folgender Blog-Post weiter -> SpeedUp-Ubuntu
Ein Ausschnitt aus dem besagtem Skript ...
# ========= # One-time tweaks to apply on every boot; # ========= STL=`ls -d /sys/block/stl*`; BML=`ls -d /sys/block/bml*`; MMC=`ls -d /sys/block/mmc*`;... hier wurde der externe / interne Speicher von Android angegeben unter meinem Linux-System More >
Screenshots von Android via shell
4Wenn man auf seinem Android beispielsweise einen Kernel mit 24bpp Unterstützung installiert, kann man auch wenn man root-Rechte hat, keine Screenshot via App machen. Um dies zu umgehen kann man die "Android Debug Bridge (adb)" verwenden.
sudo apt-get install ffmpeg /opt/android-sdk-linux_x86/platform-tools/adb pull /dev/graphics/fb0 fb0 ffmpeg -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s 320x480 -i fb0 -f image2 -vcodec png image.png
Das gleich Verfahren kann man auch unter Windows anwenden und wer lieber mit einer GUI arbeitet, sollte sich einmal QtADB anschauen.

LETZTE KOMMENTARE