MySQL-Server optimieren

Zurück zur “Webseiten beschleunigen” – Übersicht

7.) MySQL optimieren

cd  /root
wget  http://mysqltuner.com/mysqltuner.pl
wget  http://www.day32.com/MySQL/tuning-primer.sh
chmod +x mysqltuner.pl
chmod +x tuning-primer.sh
./mysqltuner.pl
./tuning-primer.sh

Link:
rackerhacker.com/mysqltuner/ – mysqltuner
www.day32.com/MySQL/ – tuning-primer


Beispiel:

Wenn wir unserem MySQL-Server z.B. 64 MB zur Verfügung stellen möchten ->

key_buffer = 12M + (read_buffer = 4M + sort_buffer = 4 M) x max_connections = 64 MB

12 + (4 + 4) x max_connections = 64


Formel nach max_connections umstellen

max_connections = (RAM – key_buffer) : (read_buffer + sort_buffer)

max connections = (64 – 12) : (4 + 4)

max_connections = 52 : 8

max_connections = 6,5


benötigen wir mehr als 6,5 max_connections, müssen wir mehr RAM zur Verfügung stellen oder read_buffer und sort_buffer kleiner einstellen…


[stextbox id=”info” caption=”Regel”]
Je weniger RAM zur Verfügung steht und je mehr max_connections benötigt werden, desto kleiner müssen read_buffer, sort_buffer u. key_buffer sein.

[/stextbox]


my.cnf – Konfigurationsdatei überprüfen ob der key_buffer so groß ist, dass alle Indizies in den Buffer passen und table_cache in etwa der Anzahl der Tabellen entspricht.


Zudem sollte man darauf achten, dass MySQL-Cache eingeschaltet ist.

-> query_cache_type=1


Als Anwendungsbeispiel werde ich an dieser Stelle die MySQL-Konfiguration meines Servers überprüfen ->

/root/mysqltuner.pl

Ich werde hier jedoch nur die Fehler, welches das Skript in meiner Konfig gefunden hat auflisten…

  • [!!] Total fragmented tables: 2

-> das nachfolgende Kommando schafft hier Abhilfe (könnte man so, oder so ähnlich auch als cronjob (crontab) laufen lassen

crontab -e



30 * * * * /usr/bin/mysqlcheck -u USER -pPASSWORT --auto-repair --check --optimize --all-databases > /dev/null 2>&1

In diesem Beispiel werden alle Datenbanken, jede 30 Minuten defragmentiert bzw. optimiert.



  • [!!] Key buffer size / total MyISAM indexes: 10.0M/13.7M

-> key_buffer = 15M erhöhen


7.1) MariaDB (MySQL-Fork)

In den letzen Wochen habe ich auch mit einem Mysql-Fork herumgespielt (MariaDB), dieser soll einige Vorteile in der Geschwindigkeit bringen. Man kann die Software über die Debian Pakete installieren nachdem man folgendes in seine “sources.list” aufgenommen hat.

deb http://mirror.ourdelta.org/deb lenny mariadb-ourdelta
deb-src http://mirror.ourdelta.org/deb lenny mariadb-ourdelt

… danach noch ein …

apt-get update

… und schon kannst du die Software gegen MySQL austauchen, dies funktioniert z.B. mit “aptitude” (mariadb-server) auch sehr gut, jedoch hatte ich das Problem, dass mein ISPConfig (eine Server Verwaltungsoberfläche) keine neuen Benutzer anlegen konnte, da sich die Syntax des Befehls ein wenig unterscheidet.


Webseiten komprimieren

Zurück zur “Webseiten beschleunigen” – Übersicht

2.) Komprimierung

So langsam möchte ich auf die Fragen, welche bisher aufgetaucht sein könnten eingehen und mit der Beschleunigung der Webseite anfangen, daher starten wir mit der Komprimierung.

Alle neuen Browser (ab IE6) unterstützen komprimierte Dateien, man kann sich dies so ähnlich vorstellen, wie in dem diesem Proxy-Beispiel, wo die Dateien serverseitig komprimiert werden und vom Client, in unserm Fall nun der Browser wieder dekomprimiert werden. Aber dazu kommen wir gleich. Das Problem ist, dass Bilder bereits komprimiert sind und falls diese im Nachhinein noch einmal passiert, diese sogar größer werden können als zuvor, daher versucht man diese bereits bei der Bereitstellung in der optimalen Dateigröße anzubieten, zudem sollte man vermeiden, dass zu viele kleine Dateien vom Server geladen werden müssen, da zu viele Verbindungen bzw. Anfragen sich auch seht negativ auf die Performance einer Webseite auswirken.

2.1) Bilder komprimieren

2.1.1) Bilder Sprites


spritemap
spritemap



Durch viele kleine Icons / Menü-Bildern kommen viele Serveranfragen zustande, welche man durch ein größeres Bild, welches dann wiederum mit css so bearbeitet werden kann, dass man bestimmte Bildabschnitte ansprechen kann, ersetzten könnte.


Nun noch ein kleines Beispiel zur Verdeutlichung:
www.websiteoptimization.com/speed/tweak/css-sprites


Es folgt noch ein Beispiel, um das Prinzip zu verstehen…


alte CSS-Regeln:

#header {background: url(bild1.jpg) top left repeat-x; height:80px;}
ul.menu li {background: url(bild2.jpg) top left repeat-x; height:15px;}

bild1.jpg und bild2.jpg sind jeweils 1px breit. Waf der folgenden Webseite → Sprite-Generator ← kann man diese beiden Dateien nun zu einer Sprite-Datei zusammenfassen und herunterladen bzw. auf Webserver hochladen.


Dieses Sprite-Bild wird nun für alle Elemente, die einen im Sprite enthaltenen Hintergrund haben eingefügt:

#header, ul.menu li {background-image:url(bg_sprite.png);}


Mithilfe der im Generator angegebenen Regeln, werden die alten CSS-Regeln ersetzen:

.sprite-bild1 { background-position: 0 -30px; }
.sprite-bild2 { background-position: 0 -110px; }

…wird zu…

#header {background-position: 0 -30px; background-repeat: repeat-x;}
ul.menu li {background-position: 0 -110px; background-repeat: repeat-x;}


Mit zwei Bildern macht dies noch nicht so viel Sinn, aber ich denke das reicht zum Verdeutlichen des Prinzipes.


2.1.2) PNG-Bilder komprimieren

[stextbox id=”warning”]VOR DER ÄNDERUNG/OPTIMIERUNG AN IRGENDWELCHEN BILDERN, BITTE EIN BACKUP ERSTELLEN!!![/stextbox]

Das folgende HowTo zeigt wie man png-Bilder direkt auf dem Server verkleinern kann, ohne dessen Qualität zu verringern.

sudo bash
aptitude install optipng
optipng -o7 bild.png  -out bild_new.png

z.B.:

2673 24. Jun 15:50 free-source_bottom.png
1297 27. Jul 01:55 free-source_bottom_new.png

folgender Befehl komprimiert alle Bilder im Verzeichnis, welche auf .png enden ->

optipng  -o7 *.png

oder man sucht mittels “find” die entsprechenden Bilder rekursive aus der gesamten Verzeichnisstruktur heraus

find . -iname '*.png' -exec optipng -o7 {} \;

Wichtig: um noch ein Backup der original Datei zu behalten kannst du den Parameter “-k” verwenden

Alternativ kann man die Größe von png-Bildern auch mit pngcrush optimieren, welches auf die selbe einfache Weise installiert werden kann.

sudo bash
aptitude install pngcrush
pngcrush -rem alla  -reduce -brute original.png optimized.png

Alternativ kann man dies auch wieder rekursiv im aktuellen Verzeichnis alle png-Bilder mittels “pngcrush” bearbeiten lassen.

for file in `find . -name "*.png"`;do
echo $file;
pngcrush -rem alla -reduce -brute "$file" tmp_img_file.png;
mv -f tmp_img_file.png $file;
done;

z.B.

Original: 8,9K
Optipng: 7.6K
Optipng + PNGcrush: 7.4K

Dies fällt bei größeren Bildern mehr ins Gewicht, jedoch kann auch die Komprimierung von solchen Logos etc. schon einige hundert MB im Monat einsparen, zumal PNG in Gegensatz zu JPEG eine verlustfreie Neukomprimierung unterstützt.


Link:
optipng.sourceforge.net
pmt.sourceforge.net


weitere Optimierungsmöglichkeiten für PNG-Bilder:
www.smashingmagazine.com


2.1.3) JPEG-Bilder komprimieren

[stextbox id=”warning”]VOR DER ÄNDERUNG/OPTIMIERUNG AN IRGENDWELCHEN BILDERN, BITTE EIN BACKUP ERSTELLEN!!![/stextbox]

Wie bereits zuvor beschrieben, können auch jpg-Bilder verkleinert werden.

aptitude install jpegoptim
jpegoptim --force  logo.jpg

z.B.:

24640 24. Jun 14:28 logo.jpg
22448 27. Jul 02:20 logo.jpg

Hier könnte man, wie bereits zuvor beschrieben, mittels “find” die entsprechenden Bilder heraussuchen und diese verkleinern lassen.

find . -iname '*.jpg' -exec jpegoptim --force {} \;


Link:
jpegoptim.sourceforge.net


Eine weitere Möglichkeit jpg-Dateien unter Debian/Ubuntu zu optimieren, welche nach meinen ersten Tests jedoch genauso gut funktioniert wie jpegoptim.

sudo bash
aptitude install libjpeg-progs
jpegtran -copy  none -optimize -perfect logo.jpg > logo_jpegtran.jpg


weitere Optimierungsmöglichkeiten für JPEG-Bilder:
www.smashingmagazine.com


2.1.4) Bilder komprimieren – Online

Auf der folgenden Webseite, kannst du deine Bilder auch online verkleinern lassen…

developer.yahoo.com

… der nachfolgende Link ist nur für PNG-Bilder geeignet …

gracepointafterfive.com/punypng/



example
example



… und hier noch ein Link, wobei hier größtenteils an der Qualität der Bilder geschraubt wird…

tools.dynamicdrive.com


Als alternative zu all dieses serverseitigen Möglichkeiten kannst du deiner Bilder natürlich auch mit einem Bildbearbeitungsprogramm (z.B. Paint.NET) öffnen und z.B. optimiert für Webseiten abspeichern.


2.2) JavaScript/CSS komprimieren

2.2.1) JavaScript/CSS komprimieren – serverseitig

Hier werde ich kurz zeigen wir du deine JS- und CSS-Dateien nicht nur komprimieren kannst, um die Ladegeschwindigkeit deiner Webseite zu verbessern, sondern auch noch optimierst, so dass diese schneller ausgeführt werden. Der CSS-Kompressions-Algorithmus verwendet zudem einen Satz von fein aufeinander abgestimmten reguläre Ausdrücke, um die CSS-Datei zu komprimieren.


Dateien kombinieren: (optional)


cat datei1.js > alle_dateien.js
cat datei2.js >> alle_dateien.js
cat datei3.js >> alle_dateien.js


cd /usr/src/
wget  http://yuilibrary.com/downloads/yuicompressor/yuicompressor-2.4.2.zip
unzip yuicompressor-2.4.2.zip
rm yuicompressor-2.4.2.zip
cd yuicompressor-2.4.2build
sudo aptitude install sun-java6-bin
java -jar yuicompressor-2.4.2.jar --type js -o  combined.js alle_dateien.js alle_dateien_klein.js

dies kann man übrigens auch mit CSS-Daten machen…

java -jar yuicompressor-2.4.2.jar --type css -o  combined.css alle_dateien.css alle_dateien_klein.css

[stextbox id=”info”]Bei mir hat das kombinieren von einigen JS- und CSS-Dateien negative Auswirkungen gehabt, so haben einige JS nicht mehr funktioniert, zudem sollte man bedenken, dass einige Dateien nicht auf jeder Webseite benötigt werden und daher auch ruhig später geladen werden können, sobald ein Besucher z.B. auf Kommentare klickt.[/stextbox]


Download:
Download – yuilibrary.com


Link:
How does it work? – developer.yahoo.com


Alternativ kann man CSS-Dateien auch sehr bequem mit “csstidy” komprimieren.

sudo aptitude install csstidy
csstidy mycssfile.css  myoutputfile.css

oder man lässt sich das Ergebnis erstmal auf dem Bildschirm ausgeben

csstidy  mycssfile.css

z.B.:

border-width: 1px;
border-style: solid;
/*Dies ist ein Kommentar*/
border-color: gray;

… wird zu …

border: 1px solid gray;


Link:
csstidy.sourceforge.net


2.2.2) JavaScript/CSS komprimieren – Online

Alternativ kann man, wenn man z.B. keinen V- oder Root-Server hat um zusätzliche Software zu installieren, die Dateien Online komprimieren zu lassen.


z.B.: für Javascript

Online Komprimierung – yui.2clics.net

shrinksafe.dojotoolkit.org

javascriptcompressor.com

ggf. kann man seine JS-Datei auch vorher überprüfen lassen um Fehler auszuschließen

www.jslint.com


z.B.: für CSS

www.cleancss.com

www.cssoptimiser.com

www.cssdrive.com


Eine weitere Methode besteht darin, die Daten selber gar nicht zu verändern, sondern diese direkt und nach einer bestimmten Zeit neu von einem Server komprimieren zu lassen, diese Methode hat daher auch wieder nachteiligen Einfluss auf die Ladegeschwindigkeit, da ein weitere Request, DNS-Lookup usw. hinzukommt. Jedoch kann man an diesen Online-Dienst auch mehrere CSS- bzw. JS-Dateien gleichzeitig übergeben. Ob dies wirklich die Performance steigern kann müsste man im Einzellfall ausprobieren.


z.B.:

http://reducisaurus.appspot.com/css?url1={{erste_URL}}&url2={{zweite_URL}}&url3={{dritte_URL}}&max-age={{cach_in_sekunden}}


Link:

code.google.com/p/reducisaurus/


2.3) Apache gzip-Kompression

Serverseitige Komprimierung und somit eine Reduzierung der zu Übertragungen Datenmengen von 40 – 70 % sind hier zu erreichen, zudem kannst du mithilfe der folgenden Konfigurationen gleich mehrere Webseiten, welche auf dem selben Server laufen optimieren.


ohne gzip-Kompression:


http_request
http_request



mit gzip-Kompression:


http_request_compressed
http_request_compressed



Aktiviere mod_deflate (gzip) – serverseitig

Diese Art der Komprimierung macht natürlich nur bei Dateien Sinn, welche auch komprimiert werden können z.B. HTML, CSS oder Javascript …


a2enmod deflate

… dieser Befehl kann unter anderen Distributionen anders aussehen z.B.: BSD

LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so


Kommen wir zur Konfiguration des Modules, wir können “mod_deflate” in folgender Datei bearbeiten ->


vim /etc/apache2/mods-enabled/deflate.conf


#SetInputFilter DEFLATE
SetOutputFilter DEFLATE

BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|jpg|ico|png|pdf|ipk|ico)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:mpg|mpeg|flv|wmv|wma|ogg|avi|mov|mp3|mp4|swf)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|tar|t?gz|cab|zip|t?bz2|iso|bz2|sit|jar|rar|rm|rpm|deb)$ no-gzip dont-vary


Header append Vary User-Agent env=!dont-vary
Header append Vary User-Agent

Header set Vary *


DeflateCompressionLevel 6


Mithilfe von gzip (DeflateCompressionLevel) kann man verschneide Kompressions-Level einstellen, wobei 1 die schnellsten Komprimierung (weniger Kompression) und 9 die langsamste Komprimierung (beste Kompression) ist. Die Standard-Kompressions-Level ist 6. da eine zu hohe Kompression auf Kosten der der Systemleistung geht, ggf. kann man diesen Wert anpassen, wenn man noch genügend Ressourcen frei hat.

Nun müssen wir unsern Webserver neu-starten, um die Konfiguration zu übernehmen.

/etc/init.d/apache2 restart

und test…

gidnetwork.com/tools/gzip-test


Ausgabe: http://gedichte.voku-online.de/news.php


Web page compressed? → Yes
Compression type? → gzip
Size, Markup (bytes) → 52,039
Size, Compressed (bytes) → 9,934
Compression → % 80.9


Link:
httpd.apache.org/docs/2.0/mod/mod_deflate


2.3.2) Aktiviere mod_gzip – serverseitig

Wer noch apache und nicht apache2 verwendet sollte “mod_gzip” anstelle von “deflate” ansehen, jedoch werde ich nicht weiter auf die veraltete Apache-Version eingehen, wenn noch jemand den alten “Apache Web-Server” einsetzt, soll man ggf. ein Update auf apache2 durchführen…


“Nur unter Apache 1.3 ist “mod_gzip” effektiver ab “Apache 2.x” sollte man “mod_deflate” verwenden.”

www.howtoforge.com/linux_apache_mod_gzip


2.3.3) Aktiviere gzip – manuell

Es gibt auch noch die Möglichkeit Dateien serverseitig im Vorhinein zu komprimieren und in einer .htaccess anzugeben, welche Dateien bzw. Dateiendungen vom Browser wieder dekomprimiert werden müssen. Ich selber habe auch eine Mischung aus den verschienden Komprimierungsverfahren gewählt, so habe ich sehr große JS-Dateien im Vorhinein folgendermaßen komprimiert, so dass der Server dies nicht jedes mal machen muss, zudem hat dieses Verfahren den großen Vorteil, dass man die negative Auswirkung des hohen Komprimierungslevel, auf die Systemauslastung umgeht.

gzip -9 test.js
mv test.js.gz test.js.jgz


RewriteEngine on
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}.jgz -f
RewriteRule (.*).js$ $1.js.jgz [L]
AddType "text/javascript" .js.jgz
AddEncoding gzip .jgz


Link:
tutorialajax.com/compress-javascript-with-gzip


Webseiten beschleunigen – Übersicht

Der Artikel beschreibt, wie man seine Webseite bzw. seinen Server analysiert und optimiert um Performance zu gewinnen, Ladezeit zu reduzierten bzw. Traffic einzusparen. Man kann einiges an Performance gewinnen, indem man z.B. Bilder im richtigen Format abspeichert bzw. komprimiert, CSS- / JS-Dateien kombiniert und ebenfalls komprimiert oder auch bestimmt Daten vorkomprimiert zur Verfügung stellt.

1.) Webseiten Analyse
1.1) Webseiten Benchmark

2.) Komprimierung
2.1) Bilder komprimieren
2.1.1) Bilder Sprites
2.1.2) PNG-Bilder komprimieren
2.1.3) JPEG-Bilder komprimieren
2.1.4) Bilder komprimieren – Online
2.2) JavaScript/CSS komprimieren
2.2.1) JavaScript/CSS komprimieren – serverseitig
2.2.2) JavaScript/CSS komprimieren – Online
2.3) Apache gzip-Kompression
2.3.1) Aktiviere mod_deflate (gzip) – serverseitig
2.3.2) Aktiviere mod_gzip – serverseitig
2.3.3) Aktiviere gzip – manuell

3.) JavaScript richtig im HTML-Code platzieren

4.) Browser-Cache nutzen
4.1) Browser-Cache manuell einstellen
4.2) Browser-Cache serverseitig einstellen

5.) Webserver beschleunigen
5.1) Apache-Module deaktivieren
5.2) Reverse Proxy (Nginx)
5.3) Nginx als Webserver
5.4) Nginx mit Varnish (Proxy)

6.) PHP optimieren/caching
6.1) PHP-Daten zwischenspeichern
6.2) SQL-Abfrage mittels PHP zwischenspeichern
6.3) PHP-Module deaktivieren
6.4) php.ini (Konfiguration) optimieren

7.) MySQL optimieren
7.1) MariaDB (MySQL-Fork)


Zusammenfassung

Abschließend möchte ich diesen Thema noch einmal kurz zusammenfassen, so dass man ggf. selber weitere Möglichkeiten erkennt, die Ladegeschwindigkeit seiner Webseite zu verbessern, jedoch nicht auf die Technische Umsetzung eingehen.

Kenne deinen Feind !!!

80 bis 90% der schlechten Performance liegt an der Webseite selber und nicht auf der Serverseite, solange nur wenig Besucher auf deiner Webseite sind, braucht man sich eigentlich um einen Revere-Proxy oder eine alternative zu Apache keine oder zumindest nur wenig Gedanken machen, da die Performance erst mit steigender Besucherzahl einbricht. Jedoch sollte man in jedem Fall die gzip-Komprimierung und den Browser-Cache nutzen.

Externe Dateien (Bilder, JS, CSS, Videos…)

Jeder Aufruf einer Datei kostet Performance und Bandbreite, daher sollte man im allgemeinen weniger Requests produzieren, indem man z.B. JS- bzw. CSS-Dateien kombiniert. Dieser negative Einwirkung steigt dramatisch bei externen Dateien von andern Servern und besonders dann, wenn dieser gerade mal nicht erreichbar ist.

Scripte

Immer wenn eine Browser eine Webseite abruft und im HTML-Code ein Script finde, wird das weitere laden der Webseite eingestellt und erst-einmal die JavaScript Engine damit beansprucht, diesen zu interpretieren. Daher sollte man diese Dateien erst am Ende der Webseite laden lassen, so dass der User die Webseite früher sehen kann, auch wenn z.B. die Animation des Menüs erst nach nachgeladen werden muss. Mit diesem Ansatz, erscheint es nur Sinnvoll CSS-Daten am Anfang laden zu lassen, so dass sich die Webseite dem User direkt im korrektem Layout präsentiert.

Bilder

Ein weites großer Bereich sind Bilder, dabei muss man jedoch ein gutes Mittelmaß an Text und Bildern finden, da die User zwar Bilder immer schön finden.. Logo, Hintergrundbild u.s.w. jedoch macht es nur wenig Sinn seine selbst jeder kleine Datei zu optimieren, wenn man oben über der Webseite ein 300 KB großes Bild eingefügt hat. Wie bereit im Artikel beschrieben gibt es jedoch zahlreiche Methoden (PNG- und JPEG-Dateien) diese zu optimieren.

Yahoo hat zudem eine sehr umfassende Liste von weiteren Regeln zusammengestellt, welche man beachten sollte.

SpeedUp – Samsung GALAXY SPICA I5700

In diesem HowTo werde ich zeigen, wie du dein Android (GALAXY SPICA I5700) Handy optimieren kannst. Nach dieser Optimierung hat dein Handy einige neue Funktion läuft mit Android 2.1 und ist um einiges schneller.


[stextbox id=”warning”]Warnung: Indem du diese Updates einspielst, gehen die Einstellungen auf dem Handy verloren und du musst deine Einstellungen wieder neu vornehmen z.B. APN (BASE = E-Plus), außerdem funktionieren einige Applikationen nicht im apps2sd-Modus, aber dazu gleich mehr. Die Kontakte bleiben jedoch erhalten.[/stextbox]


Linpack

Mein Spica hat nun folge Werte:  Linpack for Android

MFLOPS: >9

 

neue Funktionen:

– full root mit adb / root – su+Superuser

– Netfilter/iptables (Walldroid – Firewall)

– Wifi Tether – Internet-Sharing per W-Lan

– Unterstützung für ext2/ext3/ext4/squashfs Dateisysteme

– cifs (smb – Unterstützung für Windows Network Shares)

– Lautstärke von Musik etc. wurde erhöht

– sipdroid Unterstützung


Recovery:

– Updates per *.zip Dateien (Android install/update System)

– Samdroid Backup – erstelle .tar Datei (System + Data), Wiederherstellung via Odin

– wipe (löscht Daten, Cache, dalvik-cache)

– neu-partitionieren deiner SD-Karte->eine zweite Partition (FAT32 + ext2/3/4) um dort Applikationen zu installieren (apps2sd)


Apps2sd: basierend auf CyanogenMod (apps2sd)

– du kannst deine Apps vom internen Speicher auf die SD-Karte speichern, wenn du willst, indem du wie in diesem Blog-Artikel beschrieben eine zweite Partition auf deiner SD-Karte zu erstellen. (FAT32 + ext2/3/4)



Backup to Sd
Apps2sd SamdroidMod-FrozenEclair


1.) Treiber herunterladen/installieren

“Windows XP” -> “SAMSUNG New PC Studio” -> Download-Link

“Windows 7” -> “SAMSUNG Kies” -> Download-Link

Als erstes benötigen wir unter Windows folgendes Programm “SAMSUNG New PC Studio” bzw. “SAMSUNG Kies“, eigentlich benötigen wir nur die Treiber, diese sind jedoch mit in der Software integriert, daher einfach installieren und nach der Installation das Programm wieder schließen und nicht mehr beachten… ;-)


2.) Odin Multi Downloader herunterladen

Download-Link


3.) neue Firmware herunterladen

Download-Link

Da bei den meisten Geräten nicht die neuste Firmware drauf sein dürfte, laden wir uns die folgende Datei herunter. Um diese Datei “I570EUXJG1.rar” jedoch zu öffnen benötigst du z.B. 7-Zip. (hat bei mir schon lange WinZip… WinRAR und so weiter verdrängt ^^)

Zusätzlich benötigen wir noch folge Datei:

Download-Link


Die neusten Firmwares für Samsung I5700 Spica findest du unter folgendem Link, die zuvor erwähnten Firmware war ist bisher (26.08.2010) die aktuellste Version und ich hatte mit dieser keinerlei Probleme.:

Samsung-Firmware


4.) Aktiviere “USB debugging”

Um “USB debugging” auf deinem Handy zu aktivieren, gehst du wie folgt vor |

Settings->Applications->Development->Enable USB debugging


5.) Software starten

Bevor wir unser Handy am PC anschließen, staten wir die Odin-Software und geben den Pfad zu den zuvor heruntergeladenen Dateien an.

odin_test

6.) Handy vorbereiten & Firmware installieren

Du musst dein Handy nun ausschalten und es darf nicht per USB am PC angeschlossen sein, ansonsten kann es nicht im neuen Modus hochfahren, dies geschieht, indem wie im folgendem Bild beschrieben die leiser-, Kamera- und die ein/aus-Taste gedrückt hältst…

firmware_hochladen
leiser + Kamera + aus/ein

…nun sollte folgender Bildschirm erscheinen, …

spica_download_mode
Download-Modus

…wenn dies geschehen ist, kannst du dein Handy mit dem USB-Kabel am PC anschließen. Du wirst sehen, dass die Odin-Software feststellt, dass du dein Handy angeschlossen hast, nun kannst du in der Software auf “Start” klicken und abwarten, falls dein Handy nicht nach dem automatischen Reboot nicht mehr hochfahren sollte, keine Panik.

Sobald du einige Minuten abgewartet hast und die Odin-Software anzeigt, dass alles abgeschlossen ist, dein Handy jedoch nicht mehr hochfährt, nimm einmal den Akku heraus und setzte ihn wieder ein, dann starte dein Handy erneut.


7.) Install Spica v.LK2.08

Forum-Link

Um die am Anfang genannten Funktionen nutzen zu können brauchen wir noch weiter Updates. Als erstes benötigen wir den “Recovery-Modus”, diesen rüsten wir viel folgt nach.

7.1.) Download Kernel: i5700_LK2-08_PDA.7z und entpacken

7.2.) nun musst du dein Handy wieder ausschalten und vom PC entfernen

7.3.) dann wieder die Odin-Software starten und dieses man nur die PDA-Datei auswählen


odin_test2


7.4.) nun musst du dein Handy wieder im Download-Modus starten (leiser+Kamera+an/aus) und danach am PC anschließen und sobald die Software dies mitbekommen hat, kannst du wieder auf “Start” klicken. Danach sollte dein Handy direkt im Recovery-Menü landen (beim ersten Reboot). Um später noch einmal zu diesem Menü zu gelangen, musst du folgende Tasten drücken -> (leiser+anrufen+auflegen)

firmware_hochladen2
(leiser+anrufen+auflegen)

7.5.) Da wir Applikationen auf deiner SD-Karte installieren wollen und als nächstes den SamdroidMod installieren möchten, musst du auch noch mit dem Recovery-Modus die SD-Karte formatieren, dabei gehen jedoch alle Daten, auf der SD-Karte verloren, also vorher auf dem PC sichern!!!!!, indem du in dem Recovery-Menü,  “Partition sdcard” auswählst und ganz nach der Größe deiner SD-Karte “256МB”, “384МB”, “512MB” auswählst. Der Rest der SD-Karte bleibt im FAT32-Format, so dass du auch von Windows auf dein Handy zugreifen kannst (Bilder, Videos…)


8.) Install SamdroidMod

Forum-Link

8.1.) Als erstes musst du dich in dem hier schon öfter erwähnten Forum anmelden -> samdroid.net <- dann kannst du unter der zuvor Verlinkten Forum-Seite dein eigenes System zusammenklicken.


Hinweise:

Base packages -> SamdroidMod Version 1.3.1.deodexed [XXJH1] (Android 2.1)

Kernel -> Kernel [LK2.09.4 (Multitouch from Gabriel-LG v2b + antibyte camera bugfix2 + Superuser 2.3.5)]

Home -> ggf. nur eine Home (~Desktop-Umgebung) installieren

– Phone.apk -> ganz nach belieben (ich nutze “XDA Phone.apk [v.29]”)

Standart -> ganz nach belieben (ich nutze “DeskClock.apk” + “MyFiles.apk”)

Keyboards (IME) -> ganz nach belieben (ich nutze “HTC IME [v25]”)

– Google Services -> ganz nach belieben (ich nutze “Maps [4.4.0]” + “Google Services [Market, Gmail, YouTube, etc…]”)

Themes -> Super Circle Battery [AB] (neue Batterie-Anzeige)

Extended SamdroidMod Components -> ganz nach belieben

Boot animations -> ganz nach belieben (ich nutze “Green Eye Boot Animation”)

– Experimental components -> habe ich nicht ausgewählt


8.2.) die neu erstellte Datei (SamdroidMod-update.zip) musst du im oberen Verzeichnis deiner SD-Karte speichern

8.3.) Reboot zu Recovery (leiser+anrufen+auflegen) und wähle wieder “Apply any zip” -> SamdroidMod-update.zip

[stextbox id=”info”]Info: Der erste Boot-Vorgang kann sehr lange dauern (zwischen dem Logo und der Boot-Animation) wieder mal keine Sorgen machen und abwarten. Wenn jedoch zirka 5 Minuten nichts passiert, dann noch einmal den Recovery-Modus staten und im Menüpunkt “Wipe” -> “Wipe data/cache” auswählen und noch einmal neu-starten.[/stextbox]

8.4.) Nun aktivieren wir “apps2sd”, dafür müssen wir folgendes machen: “Samdroid Tools” -> “Apps2sd settings” -> “Enable Apps2sd” + “Move dalvik-cache to SD”

9.) Samdroid Turbo installieren

Forum-Link

[stextbox id=”warning”]”Frozen Eclair” (FE) sind von Android 2.2 zurück portierte Dateien für 2.1, diese können zu Instabilität deines Handys führen, besonders wenn du die PreBeta bzw. Beta FE verwendest.[/stextbox]


samturbo

9.1.) Die folgende Dateie musst du nun herunterladen und im Recovery-Modus (“Apply any zip”) auswählen und somit installieren. Nachdem ich nun alle Versionen ausprobiert habe, empfehle ich die neuste “FE 8 Beta4” und keine PreBeta Versionen zu verwenden.


– Frozen Eclair 8 -> stabil, gut optimiert (>9 MFLOPS)

– Frozen Eclair 9 Beta1 -> stabil, sehr gut optimiert (>9 MFLOPS)


9.2.) Turbo Kernel + Multi Touch: Die folgende Datei herunterladen Samdroid Turbo Kernel (V10) und mit Odin folgende Datei auswählen “SamTurbo_V9_PDA.tar” -> “PDA”. (>9 MFLOPS). Da ich eine stabile Version momentan bevorzuge, habe ich diesen Kernel momentan nicht installiert, zudem ist die “Multi Touch”-Funktionalität nun bereits im SamdroidMod (>= LK2.09.1 -Multitouch) integriert. :-)


odin_test3

[stextbox id=”info”]Info: Der erste Boot-Vorgang kann sehr lange dauern, wenn dies nicht funktioniert, solltest du noch einmal im Recovery-Modus staten und im Menüpunkt “Wipe” -> “Wipe data/cache” auswählen und noch einmal neu-starten.[/stextbox]


10.) Tuning-Apps nachinstallieren

Es gibt einige Apps welche dein Android-Handy verbessern können, ich zeige hier kurz welche ich momentan verwende.

10.1.) SetCPU

Download

Nachdem du das App installiert und zum ersten mal gestartet hast, wirst du gefragt, um welches Handy es sich handelt, hier wählst du “Samsung Moment (ARM)” aus. Als nächstes wählst im Reiter “Main” -> “Set on Boot” aus. Fertig.

10.2.) Advanced Task Killer (Free)

Lässt sich direkt über den “Market” installieren. Nachdem du es installiert und zum ersten mal gestartet hast, musst du eine Ausnahmeliste erstellen, indem du die ein App im “Advanced Task Killer” länge gedrückt hältst und dann auf “Ignore” tippst. Fertig.

10.3.) Autorun Killer

Lässt sich ebenfalls direkt über den “Market” installieren. Indem du ein App länger gedrückt hältst, kannst du auf “Enable/Disable” tippen, so dass dieses nicht mehr am Anfang gestartet wird und somit keine Ressourcen mehr verbraucht.

10.4.) AddFree

Lässt sich ebenfalls direkt über den “Market” installieren. “Adblocker” mittels Modifizierung der hosts-Datei, somit wird die Werbung erst gar nicht heruntergeladen und funktioniert in anderen Apps, Browser u.s.w.!


Wer will kann nun noch einige Kleinigkeiten Verbessern, dazu hier noch ein paar von meinen Blog-Einträgen :-)

– Dark Theme – Samsung-Galaxy-Spica-i5700

SpeedUp – Android GPS

Free Android App-Sammlung

Android 2.2 Frovo – Samsung galaxy spica i5700


Shell-Befehle anschauen und ausführen

In diesen Artikel beschreibe ich kurz wie man die Bash-History nutzt, dafür stellen wir als erstes einige Dinge in der “.bashrc“-Datei in unserm Home-Verzeichnis ein.

vim ~/.bashrc

 

#keine doppelten Eintraege hintereinander in die History schreiben

 

export HISTCONTROL=ignoreboth

 

#History Datei niemals ueberschreiben, sondern neue Eintraege unten anfuegen

 

shopt -s histappend

 

#Datum zum Historylog hinzufuegen

 

export HISTTIMEFORMAT="%F %T"

 

# History auf 3000 Eintraege erweitern export

 

HISTSIZE=3000

 

Befehl Beschreibung
fc -l zeigt die letzten Befehle in einer Liste an
Strg + L führt den clear-Befehl aus und säubert sozusagen die Konsole ;-) Die Befehle “reset”, “TERM=linux” und “loadkeys de” (amerikanischen Tastaturlayout – Bild) können einem auch weiterhelfen…
Strg + r sucht einen Befehl in der Bash-History (mehrmaliges drücken von Strg+r geht weiter in der History zurück)
Alt + . schreibt den letzten Parameter des letzen Befehls auf die Konsole
!$ schreibt den letzten Parameter des letzen Befehls auf die Konsole (Alt + .)
!! führt den letzten Befehl noch einmal aus
!string startet den letzten Befehl, der mit sting anfängt
!?string startet den letzten Befehl, der string enthält
^sting1^string2 wiederholt den letzten Befehl, wobei sting1 doch string2 ersetzt wird

Ports via ssh weiterleiten

OpenSSH kann mehr als verschlüsselte Verbindungen zwischen Client und Server aufzubauen, z.B. kann man beliebige TCP-Ports an das andere Ende Ihrer Verbindung weiterleiten, so dass man z.B. auf unverschlüsselte Dienste / Programmen per ssh von Extern zugreifen kann.

ssh führt eine lokale Weiterleitung so durch, dass es einen lokalen Port belegt, die Verschlüsselung durchführt, dann die verschlüsselten Daten an das andere Ende der ssh-Verbindung sendet, sie entschlüsselt und an jenen entfernen Rechner (Port) sendet.

Beispiele:

pop3 verschlüsselte Verbindung über localhost:110 ->

ssh -f -N -L110:mailhost:110 -l user mailhost

Außerdem kann man solange man die Verbindung nicht mit “-f -N” in den Hintergrund schiebt, kann man auf dem remote Server auch noch weitere ssh-Verbindungen zum Port von der Arbeitsstation aufbauen.

pop3 & smtp verschlüsselte Verbindung über localhost:110 & localhost:25

ssh -f -N -L11:mailhost:110 -L25:mailhost:25 -l user mailhost

alle Verbindungen auf Port 8000 z.B. auf einen Gateway werden auf einen intern Rechner (192.168.1.100:80) weitergeleitet

ssh -f -g -N -L8000:localhost:80 192.168.1.100

Dateien in der Shell bearbeiten

Es kommt öfter vor, dass man schnell in mehreren Dateien etwas ändern möchte, Linux sieht für diesen Fall “sed” vor.

z.B.:

sed -i 's/Ubuntu/Windows/g' test.txt

Alternativ kann man dies auch mittels Perl realisieren.

find . -name '.cfg' | xargs perl -pi -e 's/alt/neu/g'

Mit dem zuvor genannten Befehl kann man in allen Dateien, ab den aktuellen Verzeichnis, welche auf “.cfg” enden, “neu” gegen “alt” ändern. Ggf. kann man den Befehl auch noch in der .bashrc aufnehmen, um diesen noch einfacher und schneller einsetzten zu können. Somit muss man nur noch “replace Pfad alt neu” z.B.:

sudo replace /etc/ host_alt host_neu
# mehrere Dateien gleichzeitig aendern
replace()
{
if [ $3 ]; then
    find $1 -type f | xargs perl -pi -e 's/$2/$3/g'
else
    echo "Missing argument"
    echo "example: replace /wo alt neu"
fi

offene Ports analysieren

Als erstes müssen wir erst-einmal herausfinden, welche Port eigentlich offen sind.

nmap localhost

bzw.

nmap deine_IP

bzw. um nur zu schauen, welche PC im Netzwerk sind


nmap -sP 192.168.50.0/24


bzw. wenn man mehr Infos zu einer IP-Adresse haben möchte


sudo nmap -O -T4 -sS 192.168.1.100


oder man möchte nur Infos zu einem bestimmten Port haben


nmap -sV -P0 -p 80 suckup.de


mit dem folgenden Kommando kann man dann den Port, daraufhin analysieren welche PID-Nummer (Programm) diesen nutzt.

z.B.

nmap localhost -p 80

Ausgabe:

Starting Nmap 5.00 ( http://nmap.org ) at 2010-02-08 00:47 CET
Interesting ports on local (127.0.0.1):
PORT STATE SERVICE
80/tcp filtered http

fuser -n tcp 80

Ausgabe:

80/tcp: 32182 32183 32184

ps aux | grep 32182

Ausgabe:

nginx: master process /usr/sbin/nginx

Ggf. kann man auch mit netstat + ss + lsof die Ports analysieren!

lsof – list open files

lsof kann ein sehr mächtiges Tool zur Überwachung und Analyse des Systems sein.

lsof /Pfad/Datei

Informationen über die Verwendung der angegebenen Datei

lsof /dev/cdrom

Informationen über die Verwendung von z.B. dem CD-ROM-Laufwerk

lsof +D /home/benutzername

Informationen über die Verwendung von Dateien z.B. des Home-Verzeichnisses des Anwenders

lsof +p

Liefert die Informationen welche PID welche Datei benutzt

lsof +c

Liefert die Informationen welcher Prozess welche Datei benutzt

lsof +u

Liefert die Informationen welcher Anwender welche Datei benutzt

lsof +i

Liefert die Informationen welcher Netzwerkdienst von welchem Anwender, PID usw. benutzt wird

lsof +L1

Liefert die Informationen über bereits gelöschte Dateien

lsof -a

logische UND-Verknüpfung von Optionen; dies macht immer dann Sinn, wenn lsof mit zwei Optionen aufgerufen wird und beide angewendet werden sollen, da per Voreinstellung immer eine ODER-Verknüpfung angewendet wird.

z.B.:

sudo lsof -a -i -u www-data

Es werden alle Netzwerkports (=Netzwerkdateien) angezeigt, die vom Nutzer “www-data” offen gehalten werden.

[weitere Beispiel]

alternativ kann man sich auch folgenden Befehl anschauen

fuser -v /verzeichnis

mit diesem kannst du dir anzeigen lassen, welcher Benutzer, welche Datei momentan, in einen bestimmten Verzeichnis geöffnet hat…

Alternativ kann man das Programm auch per GUI bedienen -> Glsof-Filemonitor

Link:
sourceforge.net/projects/glsof/files/

Install Acrobat Reader 9



Acrobat Reader - Linux
Acrobat Reader - Linux



Manuelle Installation:

Die nachfolgende Kommandos müssen entweder direkt als “root” oder mittels “sudo” ausgeführt werden.

64-Bit:

aptitude install ia32-libs
wget  ftp://ftp.adobe.com/pub/adobe/reader/unix/9.x/9.4.0/deu/AdbeRdr9.4-1_i386linux_deu.deb
dpkg --force-architecture -i AdbeRdr*.deb
rm AdbeRdr*.deb

optional Firefox-Plugin:

aptitude install nspluginwrapper
nspluginwrapper  -i /opt/Adobe/Reader9/Browser/intellinux/nppdf.so

32-Bit:

wget ftp://ftp.adobe.com/pub/adobe/reader/unix/9.x/9.4.0/deu/AdbeRdr9.4-1_i386linux_deu.deb
dpkg -i AdbeRdr*.deb

Automatische Installation:

Wer den “Acrobat Reader” lieber aus den Paketquellen installieren möchte, kann sich auch mal die “Medibuntu Repository” anschauen, in denen Programme wie Adobe Acrobat Reader, Gizmo5, GoogleEarth, Skype, MPlayer enthalten sind. In den Paketquellen ist jedoch momentan (14.01.10) nur Version 9.1.0-7 Verfügbar.

z.B.:

Für Ubuntu Karmic Koala 9.10:

wget http://www.medibuntu.org/sources.list.d/karmic.list  --output-document=/etc/apt/sources.list.d/medibuntu.list

Für Ubuntu Jaunty Jackalope 9.04:

wget  http://www.medibuntu.org/sources.list.d/jaunty.list  --output-document=/etc/apt/sources.list.d/medibuntu.list

Für Ubuntu Intrepid Ibex 8.10:

wget  http://www.medibuntu.org/sources.list.d/intrepid.list  --output-document=/etc/apt/sources.list.d/medibuntu.list
gpg --keyserver subkeys.pgp.net --recv-key 0C5A2783
gpg --armor --export 0C5A2783 | sudo apt-key add -
aptitude update
aptitude install acroread