Schlagwort-Archiv: kernel

Kernelparameter beim Einsatz als VMGast

Nachdem man ein Linux in eine VM installiert hat und die VMWare Tools im Einsatz sind, sollte man sich noch einen Moment den Kerneloptionen widmen.
Dazu untersucht man das Kernelbootlog, welches mit „dmesg“ eingesehen werden kann.

Die verfügbaren Parameter sind in der Dokumentation des Kernels zu finden. Die Dokumentation kann via

apt-get install linux-doc

installiert werden.

Natürlich kann man die Parameter auch Online einsehen, zB unter http://www.mjmwired.net/kernel/Documentation/kernel-parameters.txt

Für den Einsatz im ESX habe ich folgende Parameter gesetzt:

clocksource=hpet
elevator=noop
erst_disable
hest_disable
enable_mtrr_cleanup

Ich habe im Netz eine Zusammenfassung gefunden und mir dort die „elevator“ Option abgeschaut. Auch sonst finden sich einige brauchbare Infos dort.
http://lonesysadmin.net/linux-virtual-machine-tuning-guide/

IPv6 deaktivieren unter Debian Wheezy

Problem:
Ich möchte den ipv6 Stack deaktivieren

Lösung:
Seit der ipv6 Stack im Kernel mitgeliefert wird, reicht ein Blacklisten des Moduls logischerweise nicht mehr aus.
Ich bediene mich also an „sysctl“

echo "net.ipv6.conf.all.disable_ipv6=1" > /etc/sysctl.d/ipv6.conf
echo "net.ipv6.conf.default.disable_ipv6=1" >> /etc/sysctl.d/ipv6.conf

Nach einem Reboot ist ipv6 erstmal Vergangenheit.
Man kann den Stack auch dediziert für einzelne Karten ausschalten anstatt diesen im ganzen System zu deaktivieren.

Wichtig ist jedoch, im Anschluss auch den Diensten des Systems diese Veränderung mitzuteilen. Ich liste hier ein paar Dienste und die nötige Anpassung damit kein ipv6 genutzt wird.

btw: Apache2 ist einer der wenigen Services, welcher eine eigene Protokolllogik hat und keine Anpassung benötigt!
Top!

ssh
Bearbeiten der Datei /etc/default/ssh

SSHD_OPTS='-4'

postfix
Bearbeiten der Datei /etc/postfix/main.cf

inet_protocols = ipv4

ntp
Bearbeiten der Datei /etc/default/ntp

NTPD_OPTS='-g -4'

proftpd
Bearbeiten der Datei /etc/proftpd/proftpd.conf

UseIPv6 off

rpcbind
Bearbeiten der Datei /etc/init.d/rpcbind

OPTIONS="-w -h IPv4-ADRESSE"

rpc.statd
Bearbeiten der Datei /etc/default/nfs-common

STATDOPTS='-n IPv4-ADRESSE'

Beim NFS-Kernel-Server lässt sich, meines Wissens nach, das IPv6 nicht deaktivieren.

Debian Installation – Compaq Presario CQ60-120EG

Dieser Beitrag soll als Installationsprotokoll gelten. Ich beschreibe Stichpunktartig die nötigen Schritte.

1. Installation

Der Installer tut, was er tun muss. Als Installationsmedium liegt eine volle CD, 64bit vor weil das Laptop nicht am Netzwerk angeschlossen ist. Ich verwende die manuelle Partitionierung und lege swap und root als ext4 an. In root befindet sich somit alles und das ist gut so! vorerst keine spielereien wie LVM oder Crypt. =) Das Grundsystem wird installiert und bei der Auswahl der Dienste begnüge ich mich mich mit der Minimalen Standardinstallation (Systemwerkzeuge) um Overhead zu vermeiden. Grub wird in den MBR der Platte geschrieben, es gibt keine weiteren Systeme auf dieser Platte. Dann wollen wir mal booten.

2. Installationsmedien anpassen & System updaten

Da ohne Netzwerk installiert wurde, muss nun erstmal ein Kabel angeschlossen werden und via

dhclient eth0 eine IP besorgt werden-

Nun wird die Datei /etc/apt/sources.list komplett geleert und mit folgenden Zeilen befüllt.


deb http://ftp.de.debian.org/debian/ wheezy main non-free contrib
deb http://security.debian.org/ wheezy/updates main non-free contrib

Im Anschluss muss das Paketsystem aktualisiert werden und die verfügbaren Updates installiert werden

apt-get update && apt-get -y dist-upgrade

In dieser Zeit kann ein Kaffee geholt werden. Nach der Installation neustarten bevor wir uns die Hardware anschauen.

3. Hardware

Hier gibt es ein paar Dinge zu regeln. Zum einen erscheint beim booten immer die Meldung


ACPI cmd 00/00:00:00:00:00:b0 (NOP) failed (Emask=0x4 Stat=0x00 Err=0x01)

Das kann durch einen zusätzlichen Kernelparameter gelöst werden.


parm: noacpi:Disable the use of ACPI in probe/suspend/resume (0=off [default], 1=on) (int)

Ergo ein libata.noacpi=1 in die Grubconfig und den Grub neu schreiben lassen.
Das ist allerdings umstritten, weil hierdurch das ACPI-System gestört wird. Ich teste das einfach mal.

Desweiteren findet man ein


HEST: Table not found
ERST: Table is not found!

in den Logs.

Kernelparameter „hest_disable“ und „erst_disable“ in die Grubconfig und Grub neu schreiben lassen.

Letztlich schaut die Grubzeile nun so aus:

GRUB_CMDLINE_LINUX="i915.modeset=1 libata.noacpi=1 hest_disable erst_disable enable_mtrr_cleanup nf_conntrack.acct=1 pcie_aspm=off clocksource=hpet mce"

Das Modul i915 für die Grafikkarte wird in die Initramdisk aufgenommmen. Dazu einfach „i915“ ans Ende der /etc/initramfs-tools/modules und mit update-initramfs -u die RAMDisk updaten.

Letztlich wird noch die Soundkarte aufs Energiesparen getrimmt

options snd-hda-intel power_save=1

Grub neu schreiben und rebooten!

Mit diesen Optionen bootet die Maschine fehlerlos und schnell. Standby/Hibernate funktioniert auch.

Bootchart – Kernelboot grafisch aufbereitet

Wunsch:

Ich möchte sehen, wo/wie/bei was der Kernel seine Bootzeit benötigt.

Lösung:

Bootchart löst das für uns!

Steps:

1. Installation von Bootchart


apt-get install bootchart-view bootchart

2. Aktivieren der bootchart Grafikerzeugung

In /etc/bootchartd.conf muss folgendes definiert sein.


AUTO_RENDER="yes"

3. Aktivieren von bootchartd in Grub

Dazu muss in der Datei /etc/default/grub folgender Wert an die GRUB_CMDLINE_LINUX_DEFAULT angehängt werden


init=/sbin/bootchartd

schaut dann also so aus:


GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/sbin/bootchartd"

4. Grub neu schreiben & rebooten

Das Ergebnis findet sich nach dem Neustart in /var/log!

Viel Spass beim Anschauen =)

ath5k – Wireless Probleme mit Channel 13

Wer eine Wireless-LAN Karte von Atheros sein Eigen nennt, kann Probleme beim Verbinden mit verschiedenen Netzen haben.
Genauer gesagt ist es nicht möglich mit Netzen oberhalb des Channels 11 Verbindung aufzunehmen wie im nächsten Quote festgehalten.

iwlist wlan0 freq
wlan0 11 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz
Current Frequency:2.412 GHz (Channel 1)

So jedenfalls sah es bei mir aus – daher werde ich hier in einer kurzen Step-by-Step Manual meine Schritte zum Erfolg festhalten.
Ich fahre derzeit mit einem Debian Squeeze (also testing) System mit einem normalen 2.6.30 Repositorykernel.

Die Karte weist sich wie folgt aus:

lspci -v
02:00.0 Ethernet controller: Atheros Communications Inc. AR5001 Wireless Network Adapter (rev 01)
Subsystem: Hewlett-Packard Company Device 137b
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at 92600000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [40] Power Management version 2
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
Capabilities: [60] Express Legacy Endpoint, MSI 00
Capabilities: [90] MSI-X: Enable- Count=1 Masked-
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Virtual Channel < ?>
Kernel driver in use: ath5k

Wichtig wird im Verlauf der Aktion noch der Speicherbereich – in meinem Fall also 92600000 – dazu später mehr.

Zuerst sollte man sich mittels modinfo über die möglichen Parameter schlau machen – ich liste nun also die möglichen Optionen der entsprechenden Module auf.

modinfo ath5k | grep ^parm
parm: nohwcrypt:Disable hardware encryption. (int)

Hardware Encryption deaktivieren ist bei ath5k also möglich.

modinfo mac80211 | grep ^parm
parm: ieee80211_default_rc_algo:Default rate control algorithm for mac80211 to use (charp)

Control Algorithmus konfigurieren – besser nicht 😉

modinfo cfg80211 | grep ^parm
parm: ieee80211_regdom:IEEE 802.11 regulatory domain code (charp)

Das Modul gibt die Möglichkeit, einen Domain Code zu laden. Das schaut nach einem guten Ansatz aus. Wenn man nun also das Modul deaktiviert und mit der Option ieee80211_regdom=EU lädt, sollte sich doch etwas tun – tjoa, leider Fehlanzeige.
Hintergrund: In der EU sind WLAN Netze zw. Kanal 1 und 13 erlaubt – in USA und UK hingegen bewegt sich das Spektrum zw. 1 und 11. Hier muss man also ansetzen. Leider bringt der Optionsaufruf des genannten Modules nicht den gewünschten Erfolg mit sich.
Nach einer kleinen Recherche zeigt sich: die Firmware der Karte gibt wohl den „Takt“ an – somit muss man sich diese mal genauer anschauen.
Auf einer Unterseite von MadWifi (Danke für dieses Tool an dieser Stelle!!) wird ein Werkzeug namens ath_info vorgestellt – mit diesem sollte man das Problem in den Griff bekommen. Wie auf der Seite schon deutlich zu lesen ist: VERWENDUNG AUF EIGENE GEFAHR!! Wenn man mit den Optionen nicht vertraut ist, sich unsicher fühlt oder einfach nicht weiß was hier geschieht – Bitte lasst es einfach bleiben und stellt euren Accesspoint auf einen Kanal zwischen 1 und 11 ein. Gewährleistung geben ich jedenfalls keine, damit das klar ist!

Jedenfalls wurde dieses Werkzeug von mir benutzt, mittels

svn co http://madwifi-project.org/svn/ath_info/trunk ath_info
cd ath_info/
make

war es schnell einsatzbereit.

Nun zurück zur Speicheradresse zu Beginn des Beitrags – mit dieser wird das Gerät definiert, es muss nur ein „0x“ davor gestellt werden. In meinem Fall sah das dann so aus: ./ath_info 0x92600000
Eine Meldung wie Warning: Invalid EEPROM Magic number! habe ich erfolgreich ignoriert. Wichtig war der Informationsgehalt des ersten Abschnittes:

/============== EEPROM Information =============
| EEPROM Version: 5.3 | EEPROM Size: 4 kbit |
| EEMAP: 2 | Reg. Domain: 0x67 |
|================= Capabilities ================|
| 802.11a Support: no | Turbo-A disabled: yes |
| 802.11b Support: no | Turbo-G disabled: yes |
| 802.11g Support: yes | 2GHz XR disabled: yes |
| RFKill Support: yes | 5GHz XR disabled: yes |
| 32kHz Crystal: no | |
===============================================/

Reg. Domain: 0x67 – dieser Wert muss angepasst werden wie ich einem Blog entnehmen konnte.

./ath_info -w -g 1:0 0x92600000 regdomain 0

Mit diesem Befehl hebt man den Schreibschutz des ersten (von 4) Steuerregister auf, setzt die Regdomain auf 0 und schreibt dies in den EEPROM nach Bestätigung.

Nachtrag: Seit Kernelversion 2.6.32 habe ich die regdomain auf 68 (=EU1 World) gestellt – mit 0 hat es nicht mehr funktioniert!!
Es gilt nun

./ath_info -w -g 1:0 0x92600000 regdomain 68

ath_regdom_wlan_tips.pdf

new GPIO CR 0000000c DO 00000000 DI 00000009
regdomain (0x00bf) := 0x0000
WARNING: The write function may easy brick your device or
violate state regulation on frequency usage.
Proceed on your own risk!
Shall I write the above value(s)? (y/n)
y
writing *0x00bf := 0x0000
restoring GPIO CR c -> 0

Mit ./ath_info 0x92600000 habe ich das überprüft und tatsächlich steht da jetzt Reg. Domain: 0x00
Um das zu komplettieren, sollte man die Option ieee80211_regdom=EU beim oben genannten Modul laden.

echo options cfg80211 ieee80211_regdom=EU > /etc/modprobe.d/wlan.conf

Dies ist nur eine der verfügbaren Möglichkeiten – hauptsache, es funktioniert 😉
Nachdem ich dann das ath5k Modul wieder geladen habe, konnten tatsächlich die 2 vermissten Kanäle gescannt werden.

iwlist wlan0 freq
wlan0 13 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz
Channel 12 : 2.467 GHz
Channel 13 : 2.472 GHz
Current Frequency=2.412 GHz (Channel 1)

Super! Danke an MadWifi und an den Blogschreiber von Blog Archi www.eee-blog.de
Nochmals: Ich übernehme keine Gewähr für eventuelle Hardwareschäden 😉 Viel Erfolg!

/proc/cpuinfo flags

Wer mehr über seine CPU und deren Fähigkeiten erfahren möchte, bedient sich in der Regel der in /proc/cpuinfo ausgewiesenen Informationen.
Die Flags geben genau Auskunft ob zB der Prozessor mit 64bit arbeitet oder ob Virtualisierungsunterstützungen im Prozessor implementiert sind.

Wer auf die Antwort auf die 64bit Frage suchen sollte, gleich vorab: das Flag „lm“ weist auf diese Fähigkeit hin – gleichbedeutend mit „longmode“.

Was aber sagen die anderen Flags aus? Klar, man kann jeden Flag ergooglen oder in Wikipedia nachschlagen – komfortabel ist das jedoch nicht.

Die Antwort findet sich großteils in einem von Intel bereitgestellten Dokument – dort werden ab Kapitel 3.1.2.3 die Flags etwas ausführlicher in Ihrer Bedeutung genannt.

Auch AMD hat ein solches Dokument bereitgestellt, dort sind die Informationen verteilt zu finden.

Die Dokumente können auch hier bezogen werden. IntelAMD

Ich hoffe diese Infos sind für den einen oder anderen hilfreich. 😉