Ostereier obwohl es nicht Ostern ist

Die folgenden “Eastereggs” lassen sich im Linux-Alltag finden und falls du auch noch ein paar Eastereggs kennst, würde ich die gerne hören… :-)


YouTube:

Snake auf Youtube spielen ->

1.) Video bei 0:00 anhalten

2.) Pfeiltaste nach Links drücken

3.) danach zusätzlich Pfeiltaste kurz nach Oben drücken

4.) Vorsicht, das Spiel geht sofort los… :-)


Telnet:

… ich verrate mal nichts ;-)

telnet towel.blinkenlights.nl
telnet towel.blinkenlights.nl 666


Google:

In meiner “Feature-Liste” von Google fehlt noch einiges… ;-)

- suche nach ASCII-Art und dann achte auf das Google-Logo -> http://www.google.com/search?q=ascii+art

- auch wenn ich das schon einmal erwähnt habe -> www.google.com/bsdwww.google.com/linuxwww.google.com/microsoft

- einfach einmal auf “Insert Coin” klicken und spielen -> http://www.google.com/pacman/

- folgendes bei Google eingeben :-) -> answer to life, the universe and everything


aptitude:

Ich habe vor einiger Zeit bereits über “aptitude” berichtet, hier noch ein paar Features…

aptitude moo
aptitude -v moo
aptitude -vv moo
aptitude -vvv moo
aptitude -vvvv moo
aptitude -vvvvv moo

Die Ausgabe der Befehle spare ich mir, will dir ja nicht den Spaß verderben… :-)


Zudem ist unter der aptitude-Hilfe noch ein Osterei zu finden:

aptitude -h | tail -n 1


Außerdem ist noch ein Feature in aptitude eingebaut -> Minesweeper

aptitude 
<Strg>+t
linux_aptitude_minesweeper


Vim:

Auch in meiner umfangreichen “vim“-Sammlung fehlt ein entscheidender Befehl:

:help 42 
:Ni!


wget:

wget -S http://wordpress.com -O- 2>&1 | grep hacker 


Gnome:

Unter GNOME-Desktop -> Eingabeaufforderung (Alt + F2) -> und folgendes eingeben ->

“free the fish” -> kleiner schwimmender Fisch auf dem Desktop (klick auf den Fisch und versuche ihn zu verscheuchen…) :D
“gegls from outer space” -> GEGLs from Outer Space


Firefox:

Folgendes bei Firefox in der Adresszeile eingeben. :-)

about:robots
about:mozilla


Debian / Ubuntu etc.:

… um das “Fake-Release” anzuzeigen, muss man in der Konsole den folgenden Befehl eingeben, klappt auch bei Ubuntu! :-)

zgrep "The.*Release" /usr/share/doc/dpkg/changelog.Debian.gz

zcat /usr/share/doc/linux-image-`uname -r`/changelog.Debian.gz | egrep -e "Release"

… und hier noch ein Befehl der generell unter Linux funktionieren sollte. ->

ddate


Arch Linux: (pacman)

In der Datei /etc/pacman.conf im Bereich unter [options] fügen wir ILoveCandy ein… und schon haben wir eine neue Folgschrittsanzeigt bei pacman… :-)

Arch Linux – Installation

Warum sollte man Arch Linux verwenden?

Als erstes sei gesagt, dass diese Distribution nichts für Anfänger ist, ABER wenn man als Linux-User schon einige Erfahrungen mit der Kommandozeile gesammelt hat und z.B. Debian bereits ohne grafische Oberfläche installiert hat, kann man viel von diesem Linux-System lernen. Das “lernen” möchte ich an dieser Stelle noch einmal betonen, denn wer nichts über Linux lernen möchte und das System nur zum arbeiten nutzen möchte, der ist hier falsch. Das fängt bereits bei der Installation an, die ohne grafische Oberfläche daherkommt und das aus gutem Grund, denn wer an dieser Hürde bereits scheitert, sollte das System auch nicht nutzen. Momentan habe ich “Arch Linux” auf meinem normalen PC installiert (+ Windows7), auf meinem Netbook habe ich jedoch “Ubuntu 11.04″ installiert, da es einfach out-of-the-box funktioniert und ich somit bisher noch keine großen Probleme damit hatte.

Die Philosophie von Arch Linux -> https://wiki.archlinux.org/index.php/The_Arch_Way -> Simplicity is the ultimate sophistication. (~ Höchste Verfeinerung mündet im Einfachen.) — Leonardo Da Vinci


Hier noch einige hilfreiche Links zur Installation:
https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger
https://wiki.archlinux.de/title/Offizielle_Arch_Linux_Installations-Anleitung


Einleitung

In diesem HowTo beschreibe ich wie man Archlinux installiert und ggf. wenn dies gewünscht ist optimiert. Am Ende haben wir ein schnelles Linux-System, welches wir ganz nach unseren Wünschen anpassen können, mit der neusten Software ausgestattet ist und eine grafische Oberfläche hat. “Arch Linux” hat ein wunderschönes Wiki, welches sehr umfangreich ist und auch bei Problemen mit anderen Distributinen weiterhilft, jedoch kann man am Anfang ein wenig von den ganzen Infos erschlagen werden, daher schreibe ich auch gerade dieses HowTo. :-) (Ggf. kann man die Installatin auch im Vorfeld mithilfe von VirtualBox – http://www.virtualbox.org/ ausprobieren.)

Zu aller erst muss man sich das aktuelle Image von Arch Linux runterladen. -> http://ftp.hosteurope.de/mirror/ftp.archlinux.org/iso/latest/ <- anschließend die ISO auf eine CD brennen und es kann losgehen!


1.) Boot

Beim start der CD wählen wir folgenden Eintrag im Boot-Menü -> “Boot Arch Linux” …


arch_linux_grub

arch_linux_grub


2.) die Shell

… dann kommen wir zum nächsten Bildschirm und landen direkt in der Shell, hier führen wir folgenden Befehl aus, um das deutsche Tastaturlayout zu laden, nachdem wir uns per root eingeloggt haben. PS: die meisten Befehle funktionieren nicht nur unter Arch Linux ;-)


loadkeys de

Tipp: y = z

arch_linux_install_1

arch_linux_install_1

3.) Start der Installation

Als nächstes möchten wir die Installation starten …

/arch/setup

… und installieren das Grundsystem.

arch_linux_install_2

arch_linux_install_2


4.) Installationsquelle Auswählen

“Select Source”: Nun müssen wir auswähen, on wir die Daten von der CD-ROM oder Dateien aus dem Internet nutzen möchten, falls du die Net-Install-ISO heruntergeladen hast, wählst du “net” aus, ansonsten “cd”.


arch_linux_install_3

arch_linux_install_3

(mit “Cancel” kommt du immer einen Menü-Punkt zurück)


5.) Time

“Set clock”: Danach stellen wir das Datum und die Zeit ein.


6.) Festplatte vorbereiten

“Prepare Hard Drive(s)”: Nun müssen wir Partitione erstellen und festlegen, wo diese genutzt werden sollen (mountpoints) ggf. kann man zum erstellen der Partitionen auch im Vorfeld z.B. http://gparted.sourceforge.net/livecd.php verwenden.


arch_linux_install_4

arch_linux_install_4


6.1) “Auto-Prepare” : Wähle diese Option nur aus, wenn du allein “Arch Linux” auf einer Festplatte instllieren möchtest, da die automatische Partitionierung die vollständige Festplatte benutzt.


arch_linux_install_5

arch_linux_install_5


6.2) “Manually Partition Hard Drives”: Wähle diese Option, wenn du die Partitionen entweder bereits im Vorfeld angelegt bzw. diese nun anlegen möchtest. Es folgt meine akuelle Konfiguration


Windows_and_Linux

Windows_and_Linux


7.) Grundsystem auswählen

“Select Packages”: Hier wählen wir das Grundsystem (base) aus und unter dem Punnkt “base-devel” -> “wireless_tools”, falls du W-Lan nutzen möchtest.


arch_linux_install_11

arch_linux_install_11


8.) Grundsystem installieren

“Install Packages”: Nachdem wir diesen Punkt ausgewählt haben, wird das Grundsystem nun installiert.


9.) Grundsystem konfigurieren

“Configure System”: Kommen wir nun zur Konfiguration…


/etc/rc.conf:

Hier werden die meisten Grundeinstellungen vorgenommen, z.B. die Sprache und der Name des neuen Systems …

[...]
LOCALE="de_DE.UTF-8"
HARDWARECLOCK="localtime"
TIMEZONE="Europe/Berlin"
KEYMAP="de-latin1-nodeadkeys"
loadkeys de
[...]
HOSTNAME="ArchLinux"
[...]

Ggf. muss man noch andere Dinge im Netwerk-Bereich anpassen, z.B. falls “eth0″ nicht das genutzte Netzwerk-Interface ist.

Tipp: [strg] + [alt] + [f2] -> ifconfig


/etc/fstab:

“In der Datei /etc/fstab sind alle Datenträger bzw. Partitionen eingetragen, die beim Systemstart automatisch eingehängt werden sollen [3]. Zusätzlich enthält fstab noch einige vom System/Kernel benötigte Dateisysteme. Außerdem kann man durch entsprechende Einträge in fstab das temporäre Einbinden von Datenträgern vorbereiten (siehe mount) und entfernte Dateisysteme oder Netzwerk-Freigaben statisch ins lokale Dateisystem einbinden (z.B. mit sshfs oder cifs).” – http://wiki.ubuntuusers.de/FSTAB


In dieser Datei musst du wahrscheinlich momentan nichts ändern, da “Arch Linux” die entsprechenden Einträge bereits gesetzt hat.


arch_linux_install_12

arch_linux_install_12


/etc/mkinitcpio.conf:

Diese Datei konfiguriert “initramfs” (http://de.wikipedia.org/wiki/Initramfs) und auch hier musst du nichts ändern.


/etc/resolv.conf:

Falls du statische IP-Adressen in deinem Netzwerk einsetzt und keinen DHCP-Server aktiv hast, musst du hier den zu nutzenden DNS-Server eintragen, falls dies nicht der Fall ist brauchst du auch diese Datei nicht ändern.


/etc/hosts:

Hier sollte “Arch Linux” bereits den Hostnamen, welcher unter “/etc/rc.conf” angegeben wurde automatisch eingetragern haben, falls dies nicht der Fall sein sollte, muss man dies wie folgt anpassen.


arch_linux_install_13

arch_linux_install_13

(ArchLinux durch deinen eigenen Hostnamen ersetzen)


/etc/hosts.deny & /etc/hosts.allow:

Diese Dateien sind nur hilfreich, wenn du einen SSH-Server auf dem PC installieren möchtest, denn hiermit kannst du bestimmte IP-Adressen ausspeere bzw. erlauben.


/etc/locale.gen:

In dieser Datei musst du einen Zeichensatz, am besten den deutschen freischalten, indem du das “#” am Anfang der Zeile entfernst…

[...]
de_DE.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-15
[...]


/etc/pacman.conf:

Pacman ist der Paket-Manager von “Arch Linux”, vergleichbar mit apt-get von Debian/Ubuntu und mithilfe dieser Datei kann man das Programm Konfigurieren, z.B. welche Quellen zur Verfügung stehen: [core], [extra], and [community]. Wenn du gerade ein 64-Bit System installierst, solltest du auch noch [multilib] freischalten, indem du diese einkommentierst. Ggf. kann man auch noch [testing] hinzufügen, aber wie der Name schon sagt, sind diese Quellen zum testen und nicht zum arbeiten gedacht.

[...]
SyncFirst = pacman kernel26-headers
Architecture = auto
[...]
#[testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
#[community-testing]
#Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
[...]

weiter Infos zu “pacman.con” findest du unter: http://www.archlinux.org/pacman/pacman.conf.5.html


/etc/pacman.d/mirrorlist:

In dieser Datei gibt man an, von welchem Spiegel-Server Pacman die Daten nun wirklich laden soll. Da wir aus Deutschland die Server in Deutschland wahrscheinlich schneller erreichen als im Ausland, schalten wir einige der Server unter “Germany” frei, indem wir diese einkommentieren. Später können wir mithilfe des Scripts “rankmirrors” (https://wiki.archlinux.org/index.php/Beginners’_Guide#.2Fetc.2Fpacman.d.2Fmirrorlist) die Server herausfinden, welche wirklich für uns am schnellsten sind oder ggf. auch die Quellen hier generieren lassen: http://www.archlinux.org/mirrorlist/


Sobald du die Konfiguration abgeschlossen hast, musst du unten in diesem Menü das Root-Passwort und deine Änderungen mit “Done” bestätigen.


arch_linux_install_14

arch_linux_install_14


10.) der Bootlaoder (GRUB)

“Install Bootloader”: Es kommt natürlich darauf an, was du zuvor konfiguriert hast, jedoch will man meistens den aktuellen Bootloader ersetzen. Standard: /dev/sda (sda wäre hier die Festplatte auf die Arch installiert ist) ggf. Hilfe der folgede kleie Text um zu verstehen, wohin man den Bootloader installieren muss. -> http://suckup.de/blog/2011/01/25/der-bootvorgang-wie-faehrt-ein-pc-hoch/


11.) Installation beenden

“exit”: Nachdem der Bootloader erfolgreich installiert wurde, beenden wir die Installation und starten das System neu (reboot)


arch_linux_install_15

arch_linux_install_15


12.) Start & Update

Nun starten wir unser Arch Linux und laden in der Kommandozeile, da wir bisher noch nichts weiter installiert haben. :-) Als nächstes führen wir ein Update mithilfe des folgeden Befehls aus.

pacman -Syu


arch_linux_install_16

arch_linux_install_16


13.) User anlegen + sudo-Rechte gewähren

useradd -m -g users -G audio,lp,optical,storage,video,wheel,games,power -s /bin/bash USERNAME

… und “USERNAME” durch deinen eigentlichen User-Namen ersetzten. Hier folgen weiter Infos zu den Gruppen (audio,lp,optical…) : https://wiki.archlinux.org/index.php/Groups


arch_linux_install_17

arch_linux_install_17

Als nächstes vergeben wir ein passwort für den neuen User…

passwd USERNAME

… und installieren nun “sudo”, so dass man als normaler User Programme mit Root-Rechten ausführen kann, wenn dies gefordert ist.

pacman -S sudo
Tipp: pacman -Ss sudo -> sucht nach dem Paket sudo


Nun müssen wir noch z.B. einer der angegebenen Gruppen sudo-Rechte erteilen…

chmod o+w /etc/sudoers
vi /etc/sudoers
chmod o-w /etc/sudoers
su USERNAME
sudo su


sudoers

sudoers


Tipp: man kann auch z.B. nano anstatt vi verwenden oder vim nachinstallieren (pacman -S vim)


14.) Sound: installiere ALSA

Bevor wir wir jedoch ALSA installieren benötigen wir folgedne Info …

cat /proc/asound/modules

(Ausgabe: z.B. 0 snd_intel8x0)


… und editieren anschließend folgende Datei, um unsere Sound-Karte hinzuzufügen.

vim /etc/modprobe.d/modprobe.conf

(z.B. options snd slots=snd-intel8x0,snd-pcsp)


Nun können wir Alsa installieren …

pacman -S alsa-utils alsa-oss

… danach starten wir “alsamixer” als normaler User (nicht root) …

su USERNAME
alsamixer


arch_linux_install_18

arch_linux_install_18


… mit [ESC] beenden wir alsamixer und werden wieder root [Strg + D] (logout USERNAME -> zurück zu root) und speichern diese Einstellungen mit dem folgendem Befehl ab.

alsactl store


Nun müssen wir den Dienst noch in der Konfig eintragen, so dass Alsa auch gestartet wird.

vim /etc/rc.conf
[...]
DAEMONS=(syslog-ng network netfs crond alsa)
[...]


weitere Infos zu ALSA: https://wiki.archlinux.org/index.php/ALSA


15.) Desktop installieren: Xorg

Hier müssen wir als erstes Xorg per pacman installieren …

pacman -S xorg
Tipp: das Paket “mesa” wird ebenfalls benötig, falls du 3D-Effekte nutzen willst


… und wir müssen die Grafikkarten-Treiber installiern – ich habe dies per “Yaourt” installiert, da dieses Programm auch auf die “Arch User Repository” (https://wiki.archlinux.org/index.php/AUR) zurückgreifen kann. Wir schauen mit “lspci” nach welche Grafikkarte wir haben.

z.B.:

lspci | grep VGA

01:05.0 VGA compatible controller: ATI Technologies Inc RS880 [Radeon HD 4250]

Und installieren demensprechend den gewünschten Treiber, doch zuvor installieren wir noch “Yaourt” (http://archlinux.fr/yaourt-en#get_it) – die bereits erwähnten AUR-Pakete haben keinen Support, installation auf eigene Gefahr!

pacman -S base-devel
vim /etc/pacman.conf
[...]
[archlinuxfr]
Server = http://repo.archlinux.fr/x86_64
#Server = http://repo.archlinux.fr/i686
[...]
pacman -Sy yaourt
sudo yaourt ati amd | grep install

13 aur/catalyst-hook 10.12-1 [installed] (37)
23 aur/catalyst-utils 10.12-1 [installed] (147)

z.B.: suche Pakete für ATI:

yaourt -Ss ati amd
Tipp: yaourt – es wird zudem angezeigt, wie viele Leute das jeweillige Paket nutzen und welche Pakete nicht mehr aktuell sind

z.B.: installere Pakete für ATI:

yaourt -Sa catalyst-hook catalyst-utils
pacman -S kernel26 kernel26-headers
aticonfig --initial --input=/etc/X11/xorg.conf
vim /etc/X11/xorg.conf
[...]
Section "Device"
Identifier "aticonfig-Device[0]-0"
Driver "fglrx"
BusID "PCI:1:5:0"
Option "DRI" "true"
EndSection
[...]

weitere Infos zu Xorg: https://wiki.archlinux.de/title/Xorg

weitere Infos zu Nvidia: https://wiki.archlinux.de/title/Nvidia

weitere Infos zu ATI/AMD:https://wiki.archlinux.de/title/ATI


16.) Desktop installieren: Input

pacman -S xf86-input-keyboard xf86-input-mouse

ggf. muss bei Laptops noch folgendes Paket installiert werden …

pacman -S xf86-input-synaptics


17.) Desktop installieren: Gnome

pacman -S ttf-dejavu
yaourt -Sa ttf-ms-fonts

ggf. kann man auch noch die 3D-Effekte für Gnome installieren … (https://wiki.archlinux.org/index.php/Compiz)

pacman -S gnome gnome-extra gnome-system-tools
pacman -S compiz-fusion-gtk

Und noch ein neuer Dienst wird beim Boot gestartet…

Tipp: mit @ werden die Dienste im hintergrund ausgeführt
vim /etc/rc.conf
DAEMONS=(syslog-ng dbus hal network netfs crond alsa gdm)

Nun einmal neustarten und …

reboot

… zu guter letzt Compiz noch im autostart von Gnome unterbringen.

cd ~/.config/autostart/
vim compiz.real.desktop
[Desktop Entry]
Comment=
Name=compiz - 3D Desktop
Exec=/usr/bin/compiz --ignore-desktop-hints --replace move resize place decorati
Name[de_DE]=compiz - 3D Desktop
Comment[de_DE]=
Hidden=false
Type=Application
X-GNOME-Autostart-enabled=true


Nun sollte dein neues Linux-System “gdm” -> “Gnome” -> “Compiz” -> “Emerald” starten… und die Installation wäre somit geschafft. ;-)


18.) Optimierungen

Hier möchte ich kurz einige Dinge zeigen, welche nicht mehr zur Installation gehören! Wer weitere Hilfe benötig, sollte sich einmal das ArchLinux-Wiki genauer anschauen: https://wiki.archlinux.de/


neuer Kernel: (http://liquorix.net/)

sudo yaourt -Sa kernel26-lqx


NTFS-Unterstützung:

sudo yaourt -S ntfs-3g


Schlanke E-Mail Client + gute Plugins: (http://suckup.de/blog/2010/02/13/fast-mail-client-claws-mail/)

sudo yaourt -S claws-mail claws-mail-extra-plugins


Schneller Browser: (portiert von Ubuntu [ppa] zu ArchLinux)

sudo yaourt -Sa chromium-browser-ppa
sudo yaourt -Sa chromium-browser-l10n-ppa chromium-browser-inspector-ppa chromium-codecs-ffmpeg-extra-ppa


Eine neue Shell – alternative zu Bash: (http://suckup.de/blog/2010/09/17/zshrc/)

pacman -S zsh
chsh -s /bin/zsh `whoami`


Recompile Archlinux: (+CFlags)

sudo yaourt -Sa pacbuilder-svn


Nun müssen wir einige Prozessorspezifische Infos suchen, dazu müssen wir jedoch erst einmal wissen, welchen Prozessor wir genau haben…

cat /proc/cpuinfo

oder

sudo yaourt -Sa cpu-g

und hier findest du die Infos. :-)

http://en.gentoo-wiki.com/wiki/Safe_Cflags & http://www.gentoo.org/doc/en/gcc-optimization.xml


Mit dem nächsten Befehl, können wir schaue, welche FLAGS bisher gesetzt sind…

sudo grep -R CFLAGS /etc/

… und tragen die neuen FLAGS in der folgenden Datei ein.

vim /etc/pacbuilder.conf

z.B.:

[...]

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=amdfam10 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed"
#-- Make Flags: change this for DistCC/SMP systems
MAKEFLAGS="-j4"


Der nächste Befehl baut (compiliert) nun alle Pakete angepasst für dein System neu.

sudo pacbuilder -v --world

SpeedUp Ubuntu

1.) Kenne dein System (Hardware)

Am besten ist es den Flaschenhals an seinem System ausfindig zu machen, dafür sollte man wissen wie viel Arbeitsspeicher zur Verfügung steht, CPU Auslastung, Festplattengeschwindigkeit etc. aktuell verbraucht wird. Ggf. kann man auch mit neuer Hardware (z.B. > RAM) das System beschleunigen, dies muss natürlich bei jedem System einzeln geprüft werden.


1.1) Arbeitsspeicher


free -mt


  • total: kompletter physikalischer Speicher ( – ein wenig für den Kernel)
  • use: verwendeter Speicher
  • free: freier Speicher
  • buffers/cache: Speicher der wieder freigegeben werden kann, wenn dieser benötig wird. (Cache)

Somit sollte auch klar sein, dass es GUT ist, wenn der Arbeitsspeicher gut ausgenutzt wird, sollte jedoch “use” – “buffer/cache” zu klein werden oder bereits “Swap” (Auslagerungsspeicher -> meist Festplattenplatz) verbracht wird und somit das System wirklich ausbremst.


1.2) Festplatte


hdparm -t /dev/harddrive


Wenn es ewig dauert bis das System gebootet ist oder Programme starten, sollte man die Lesegeschwindigkeit seiner Festplatte einmal testen und ggf. eine neue Festplatte kaufen. ;-) Dabei sollte die Festplatte nicht unter ~50MB/s sein. Moderne SATA-Festplatten haben im Durchschnitt 100MB/s und bei SSD-Festplatten ist eine Datenraten bis zu ~500 MB/s möglich. (SATA-600).


1.3) CPU


top


Ich hatte das Programm “top” bereits in einem vorherigen Blog-Post beschrieben -> http://suckup.de/blog/2010/11/09/linux-server-analysieren/ <- top zeigt unter anderem die Auslastung der CPU je Programm an.


1.4) Grafikkarte


glxinfo | grep direct


Wenn du Engpässe beim abspielen von Videos oder beim Spielen feststellst, kannst du mit dem vorherigem Befehl feststellen, ob “Direct Rendering” aktiviert ist. Ggf. reicht es aus andere Treiber zu installieren, nach meiner Erfahrung sind die Proprietäten Treiber bei neuen Grafikkarten (ATI & NVIDIA) sehr gut. (http://suckup.de/blog/2010/02/09/lxde-compiz-emerald-awn-ubuntu-howto/) Wer eine alte Grafikkarte hat, kann auch diese 3D-Effekte (Compiz) ausschalten, ggf. andere Treiber installieren und schauen, ob der Desktop dadruch flüssiger läuft.


2.) Lightweight Software

Bevor man in neue Hardware investiert (oder sich diese zu Weihnachten schenken lässt) sollte man einmal “Lightweight Software” ausprobieren, diese bieten zwar ggf. weniger Funktionen, sind dafür aber schneller.


z.B.:
Desktop: Gnome -> LXDE oder Xfce
Browser: Firefox -> Chromium


https://wiki.archlinux.org/index.php/Lightweight_Applications


3.) Speicherplatz

3.1) Filesystem
Achtung
Achtung: Backup nicht vergessen!!!


Als erstes sollte man sich ein wenig mit dem Filesystem beschäfitigen, da ganz nach verwenddung ggf. ein anderes Filesystem verwendet werden sollte.


Zusammenfassung:
XFS: ausgezeichnete Leistung bei großen Dateien, dafür langsamere Geschwindigkeit bei kleinen Dateien (z.B. für ISO’s oder großen Downloads unter /home)


Reiserfs: ausgezeichnete Leistung bei kleinen Dateien (z.B. für viele kleine Dateien unter /var)


Ext3: durchschnittliche Leistung


Ext4: super Gesamtleistung (Leistungsprobleme bei sqlite und anderen Datenbanken)


JFS: gute Gesamtleistung (sehr geringe CPU-Last)


Btrfs: super Gesamtleistung (besser als ext4 ABER ggf. unstable)


3.2) Mount Optionen

/dev/partition /mnt/partition partitiontype option1,option2 0 0


Ein weitere Möglichkeit das Dateisystem zu optimieren, sind die “Mount Optionen”, diese trägst du in der Datei “/etc/fstab” ein. So kann man z.B. durch “relatime” oder “noatime” verhindern, dass die Zugriffszeiten in der Inodetabelle gespeichert werden und so die Festplattenaktivität reduziert werden.



sudo tune2fs -O dir_index /dev/partition


Mit dem vorigem Befehl wird die automatische Indizierung von Ordnerinhalten aktiviert, so dass man schneller aus die Daten zugreifen kann.
(wer ggf. von Ext3 auf Ext4 wechseln möchte kann dies tun: http://suckup.de/blog/2010/02/14/konvertiere-ext3-zu-ext4/)
Sowohl bei Ext3 als auch bei Ext4 wird ein Journal geschrieben, dieses kann man mit der Option “data=writeback” einschränken und somit die Preformance steigern, kann jedoch zu Problemen führen, da die metadata nun “träge” gespeichert werden.


Journal‘ – Langsamster und sicherster Modus. Nicht nur die Metadaten sondern auch die Nutzdaten werden zunächst in das Journal, und dann erst auf die Festplatte geschrieben.
Ordered‘ – Guter Kompromiss aus Sicherheit und Geschwindigkeit (Standard). Die Nutzdaten werden auf die Festplatte geschrieben sobald die Metadaten im Journal abgelegt wurden.
Writeback‘ – Schnell, dafür relativ unsicher. Die Nutzdaten werden sofort auf die Festplatte geschrieben ohne das gewartet wird bis die Metadaten im Journal abgelegt wurden.


tune2fs -o journal_data_writeback /dev/partition


mit dem vorherigem Befehl schreibt man das vorhandene Journal um…


/dev/partition / ext4 errors=remount-ro,noatime,nodiratime,data=writeback,barrier=0,nobh,commit=100,nouser_xattr 0 1


noatime” sagt aus, dass nicht gespeichert wird, wann die Datei angesehen wurde. (man liest eine Datei und gleichzeitig wird auf die Dateien geschrieben) Auch “barrier=0” trägt dazu bei, dass deine Daten unsicherer sind, die Option steigert jedoch die Performance. (so soll die Option einen sehr positiven Einfluss auf die Schreib-Performance von MySQL haben) Die Option “nobh” versucht “associating buffer heads” zu vermeiden und bringt eine kleine Performace verbesserung. Als nächstes kommt die Option “commit=100“, diese Option sagt aus, dass die Daten nur alle 100 Sekunden auf die Festplatte geschrieben werden, dafür verliet man ggf. auch 100 Sekunden bei einem Ausfall (default 5). “nouser_xattr” schaltet einige weitere Optionen vom Dateisystem aus und bringt noch einmal einen kleinen Performanceschub.



XFS -> zur optimierung kann man das Dateisystem mit dem folgedem Kommando anlegen …


mkfs.xfs -l internal,lazy-count=1,size=128m -d agcount=2 /dev/partition


… und die “Mount Option” -> “logbufs=8” in der fstab einfügen. Zudem kann man das gemountete XFS-Filesysteme per “filesystem reorganizer for XFS” Optimieren.


xfs_db -c frag -r /dev/partition


-> stellt den Fragmentationsgrad fest


xfs_fsr /dev/partition


-> defragmentiert die Partition (apt-get install xfsdump)


Die Option “data=writeback” beschleunigt das Dateisystem, kann jedoch zu Datenverlust beim Stromausfall führen. Auch “notail” beschleunigt Reiserfs bewirkt jedoch, dass zirka 5% mehr an Festplattenplatz benötigt wird. Zudem kann man mit dem nächsten Befehl bereits beim erstellen das Dateisystems dieses beschleunigen, indem man das Journal auf eine zweite Partition auslagert.


mkreiserfs –j /dev/hda1 /dev/hdb1



Dieses neue Dateisystem bietet “online Defragmentation”, “Optimierungen für SSDs”, “Snapshots” und viele weitere Sinnvolle Funktionen, wird jedoch momentan noch aktiv entwickelt.


Informationen zum optimieren von SSDs findest du hier -> https://wiki.archlinux.org/index.php/SSD#Tips_for_Maximizing_SSD_Performance


(Im Arch-Linux Wiki habe ich auch noch von der Möglichkeit gelesen “/usr” komplett zu komprimieren (aufs2 + squashfs-tools) da moderne CPUs schneller die Dateien entpacken können als das größere Daten von der Festplatte geladen werden können, leider habe ich diesbezüglich keine Infos zu Ubuntu gefunden.)


4.) CPU

Hier kann man in erster Lienie Overclocking betreiben und somit einiges an Geschwindigkeit herausholen, so habe ich z.B. aus einem “AMD Athlon II X3″ einen “AMD Athlon II X4″ gemacht. (PS: wer Fragen zur Hardware hat, sollte sich einmal das Computerbase-Forum anschauen, habe dort auch meinen neuen PC gemeinsam mit anderen Mitgliedern zusammengestellt -> “http://www.computerbase.de/forum/showthread.php?p=8532713” + Vorlagen für verschiedene Preisklassen http://www.computerbase.de/forum/showthread.php?p=3395405)


Wenn man auf der Software-Seite seine CPU besser nutzen möchte kann man einen optimierten Kernel bauen oder zumindest bei Arch-Linux sein System mit neuen “CFLAGS & CXXFLAGS” neu-kompilieren lassen. (https://wiki.archlinux.org/index.php/Pacbuilder) Falls jemand ein ähliches Programm für Ubuntu kennt, würde ich dies gerne erfahren. :-)


4.1) optimierten Kernel bauen

Download: KernelCheck – .deb


Download: Patch


Install: KernelCheck
dpkg -i *.deb


Starte KernelCheck
-> “custom complication”
-> “normal performance patch”
-> “Configure kernel options manually, auto-configure ALSA options for sound, Optimize the kernel, Install kernel package after complication”
-> “Apply custom path to kernel”


Nachdem die Dateien heruntergeladen und entpackt wurden, bekommst du eine Shell in der du den Patch einspielen musst.


cd linux
cp /home/USER/Desktop/patch-2.6.36-ck2 .
patch < patch-2.6.36-ck2 -p1


Nachdem du das Fenster wieder verlässt kannst du noch einige Optimierungen auswählen:


-> “Processor type and features”



4.2) optimierten Kernel (+ Brain Fuck Scheduler)


… man kann hier natürlich auch auf ppa zurückgreifen (jedoch noch nicht getestet)!


sudo add-apt-repository ppa:chogydan/ppa && sudo apt-get update
sudo apt-get install linux-ck-generic linux-ck-headers-generic


5.) RAM & swap


5.1) Auslagerung von Speicher
swappiness” ist eine Einstellung, welche dem Kernel mitteilt ob der RAM oder der SWAP bevorzugt werden soll. Der Wert der Variablen kann zwischen 0 und 100 liegen. Der Wert 0 bedeutet, dass der Kernel den Auslagerungsspeicher auf der Festplatte (swap) nur dann nutzt, wenn es nicht anders geht. Der Wert 100 bedeutet das genaue Gegenteil. Es wird so früh wie möglich ein unbenutzter Speicherbereich in den Swapspeicher geschoben.


vim /etc/sysctl.conf
vm.swappiness=20
vm.vfs_cache_pressure=50


5.2) Compcache
Compcache, auch als “ramzswap kernel module” bezeichnet erstellt Swap im Arbeitsspeicher und komprimiert diesen. So dass zwar die CPU wieder mehr zu tun hat, wir jedoch mehr Auslagern können, ausserdem hat dies den Vorteil, dass die Lese-/Schreizugriffe auf der Festplatte weiter reduziert werden.



5.3) tmpfs
Einen ählichen Ansatz, wie “Compcache” verfolgt auch “tmpfs” hier werden die Daten jedoch einfach in den Arbeitsspeicher geschrieben, ohne diese zu komprmieren. Wenn man jedoch genügent Speicher übrig hat, kann man so z.B. die “/tmp”-Daten in den Speicher auslagern.
vim /etc/fstab
tmpfs /tmp tmpfs defaults,noatime,nodev,nosuid,mode=1777 0 0
(nach diesem Prinzip kann man auch z.B. den Cache vom ff oder vom Chrome auslagern)


6.) Netzwerk & Internet


6.1) DNS
Ggf. sollte man schauen, ob man nicht einen schnelleren DNS-Server in seiner nähe findet ;-) -> http://suckup.de/blog/2010/02/13/find-a-fast-dns-server/
zumdem sollte man seinen eigenen Hostnamen in die der Datei “/etc/hosts” eintragen.
127.0.0.1 localhost
127.0.1.1 Rechnername
wird zu …
127.0.0.1 localhost Rechnername
127.0.1.1 Rechnername


Wer Spaß hat kann sich auch einen kleinen lokalen DNS-Cache installieren.
sudo apt-get install dnsmasq
vim /etc/dnsmasq.conf
listen-address=127.0.0.1
vim /etc/dhcp3/dhclient.conf
prepend domain-name-servers 127.0.0.1;
z.B.:
#supersede domain-name "suckup.de voku-online.de";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name,
netbios-name-servers, netbios-scope;
vim /etc/resolv.conf
z.B.:
search suckup.de
nameserver 127.0.0.1
nameserver 8.8.4.4
vim /etc/resolv.dnsmasq.conf
resolv-file=/etc/resolv.dnsmasq.conf
listen-address=127.0.0.1
vim /etc/resolv.dnsmasq.conf
nameserver 8.8.4.4
vim /etc/resolv.conf
z.B.:
search suckup.de
nameserver 127.0.0.1
sudo /etc/init.d/dnsmasq restart


6.2) SYSCTL

In der Datei “sysctl.conf” kannst du Paramether für dein System einstellen.


wget -c http://www.rubyringtechnologies.com/files/sysctl.conf.txt -O ~/sysctl.conf
sed -i 's/\(net\.core\.hot_list_length\ =\ 256\)/\#\1/' ~/sysctl.conf
cat < ~/sysctl.conf >> /etc/sysctl.conf
sysctl -p


6.3) MTU


Typische MTU-Größen:
Medium MTU in Bytes
Hyperchannel 65535
Token Ring(4)(802.5) 4464
Token Ring(16) 17914
FDDI 4352
Ethernet 1500
Gigabit Ethernet
mit Jumboframes
9000
PPPoE (z. B. DSL) ≤ 1492
SLIP/PPP (low delay) 296
X.25 576
FibreChannel theoretisch unbegrenzt
ISDN 576
DQDB
HIPPI
ATM 4500, s. u.
ARCNET
802.11 2312 (WiFi)

Quelle: http://de.wikipedia.org/wiki/Maximum_Transmission_Unit


ping -Mdo -s 1500 8.8.8.8


-> mit dem vorherigem Befehl kannst du testen welche MTU funktioniert (z.B. 1500)


Konfig-Beispiel:

vim /etc/network/interfaces

iface eth0 inet static
address 192.168.0.1
network 192.168.0.0
gateway 192.168.0.254
netmask 255.255.255.0
mtu 1492


7.) preload, ureadahead etc.

ureadahead ist standardmäßig bereis bei Ubuntu installiert und lädt Programme bereits beim Bootvorgang in den RAM, falls man z.B. preload (apt-get install preload) einsetzten will, sollte man ureadahead deaktivieren, da es die selbe Aufgabe übernimmt. “preload” hat den Vorteil, dass es im Betrieb protokolliert welche Programme wirklich verwendet werden und nur diese bereits beim Boot in den RAM lädt, daher startet das System schneller, die Programm werden jedoch nicht schneller gestartet als mit ureadahead. (persönliche Meinung – nicht auf die Millisekunde gemessen) außerdem verursacht das Programm “preload” immer CPU-Last und verbraucht somit mehr Strom als wie ohne. ;-) Um den Boot-Vorgang näher zu analysieren soll man sich einmal “bootchart” (http://wiki.ubuntuusers.de/bootchart) anschauen.


8.) prelink

Wenn man den Start von Programmen beschleunigen will, kann man “prelink” (apt-get install prelink) ausprobieren, besonders bei KDE bringt dies einiges, da somit bei “dynamic linking” Programmen (Programm die nicht gelinkt sind, um z.B. Speicherplatz zu sparen) die Libraries nicht jedesmal bei geladen werden müssen. Prelink nutzt dies insofern aus, als dass es das Linken im Voraus ausführt und in der Programmdatei abspeichert. Somit kann man (fast) jedes Programm beschleunigen.


vim /etc/default/prelink

PRELINKING=unknown 

wird zu …

PRELINKING=yes 


http://wiki.ubuntuusers.de/Prelink


9.) localepurge

Nicht verwendete Sprachdateien zu entfernen erscheint zwar auf den ersten Blick nicht wirklich als Optimierung, jedoch hat sich in der Praxis gezeigt, dass einige Programm diese Sprachdateien z.B. beim Start in den Speicher laden, daher kann man so nicht nur Festplattenplatz, sondern ggf. auch Arbeitsspeicher einsparen und Programme schneller starten.



Quellen:

https://wiki.archlinux.org/index.php/Maximizing_Performance

http://sidux.com/index.php?module=Wikula&tag=SiduxTweaks

http://wiki.ubuntuusers.de/tuning