5528
Kommentar:
|
5662
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 20: | Zeile 20: |
* `EL12-Reaktionszeit`_ * `EL12-PWM`_ * `EL12-Smartphone`_ * `EL12-Beschleunigung`_ * `EW12-Feuchtesensor`_ * `EW12-Max`_ |
Embedded Linux im Sommersemester 2012
Hubert Högl, März 2012
URL: http://elk.informatik.hs-augsburg.de/hhweb/elinux/index.html
Inhalt
- 1 Projekte
- 2 Muster für screen Init-Datei
- 3 Muster für kermit Init-Datei
- 4 Safari Bücher (Yaghmour, Hallinan)
- 5 Dokumente über Gnublin
- 6 Gnublin Foren
- 7 set.sh
- 8 Projektideen
- 9 Kernel kompilieren
- 10 WiFi mit WEP
- 11 WiFi im Eduroam Netz der Hochschule
- 12 Wichtige Kernel Konfigurationsvariable
- 13 Problem beim Laden von Firmware
2 Muster für screen Init-Datei
http://elk.informatik.hs-augsburg.de/pub/eplpc3131/work_eplpc3131/etc/_screenrc
3 Muster für kermit Init-Datei
http://elk.informatik.hs-augsburg.de/pub/eplpc3131/work_eplpc3131/etc/_kermrc
7 set.sh
# ELDK5 environment settings for Gnublin LPC3131 # <Hubert.Hoegl@hs-augsburg.de> 2011-12-12 ELDK5X86=/opt/eldk-5.0/armv5te/sysroots/i686-oesdk-linux P1=$ELDK5X86/usr/bin/armv5te-linux-gnueabi/ P2=$ELDK5X86/bin/armv5te-linux-gnueabi/ export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabi- export PATH=$P1:$P2:$PATH
9 Kernel kompilieren
Es gibt zwei Möglichkeiten:
9.1 Variante 1
Die ELDK 5.0 Toolchain muss installiert sein.
- Hostrechner vorbereiten: Oft fehlen die Pakete: git, libncurses5-dev. Auf Fehlermeldungen achten, ob weitere Pakete fehlen.
Kernelsourcen holen
git clone git://elk.informatik.hs-augsburg.de/srv/git/repositories/gnublin-linux-2.6.33.git
Verzeichnis wechseln:
cd gnublin-linux-2.6.33
Umschalten auf Branch "gnublin"
git checkout gnublin
Einstellungen "sourcen":
. set.sh
- make menuconfig
make zImage, make modules
Das zImage findet man im Verzeichnis arch/arm/boot/.
Module installieren
make modules_install INSTALL_MOD_PATH=<your-module-path>
10 WiFi mit WEP
"Patriot" USB WiFi Adapter mit r8712u Treiber (fest einkompiliert)
root@armv5te:~# ifconfig wlan0 up root@armv5te:~# iwconfig wlan0 mode managed essid "linksys" key 0...116EBB986.....1DF02829 root@armv5te:~# udhcpc -i wlan0
Essid und WEP key muessen angepasst werden.
11 WiFi im Eduroam Netz der Hochschule
Interface starten
root@armv5te:~# ifconfig wlan0 up
Starten des wpa_supplicant im Hintergrund:
root@armv5te:~# cat start-wpa-supp-bg.sh sudo wpa_supplicant -i wlan0 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf -B
Zum Testen ist es nuetzlich, wpa_supplicant im Vordergrund zu starten. Dazu ersetzt man die -B Option durch -d.
/etc/wpa_supplicant/wpa_supplicant.conf
# path to UNIX socket control interface ctrl_interface=/var/run/wpa_supplicant #eapol_version=1 ap_scan=1 network={ ssid="eduroam" key_mgmt=WPA-EAP eap=TTLS proto=WPA RSN identity="hhoegl" anonymous_identity="anonymous@hs-augsburg.de" password="......." # ca_cert="/etc/wpa_supplicant/deutsche-telekom-root-ca-2.crt" phase2="auth=PAP" }
Adressen mit DHCP beziehen:
# udhcpc -i wlan0
12 Wichtige Kernel Konfigurationsvariable
(für Kernel 2.6.33)
- CONFIG_UNIX=y
- Das ist die Voraussetzung, damit der syslog Daemon arbeiten kann.
- CONFIG_LOCALVERSION_AUTO=y
- Damit enthalten die Modulverzeichnisse unter /lib/modules/ noch die aktuelle Git Version des Kernels. Ich neige eher dazu, diese Option nicht einzuschalten.
- CONFIG_FIRMWARE_IN_KERNEL=y
**Normalerweise sollte diese Option nicht noetig sein. Sie wurde gelegentlich verwendet, da es ein Problem mit dem Hotplug Mechanismus gab, das verhinderte, das die Firmware in USB-zu-WLAN Adapter geladen wurde. Mit einem funktionierenden /sbin/hotplug sollte das kein Problem mehr sein.
- CONFIG_GPIO_SYSFS=y, CONFIG_SYSFS=y
- Damit kann man die GPIO Pins mit den Dateien unter /sys/class/gpio/ ansteuern.
CONFIG_DEBUG_GPIO
- CONFIG_HW_RANDOM
- Hardware Zufallszahlengenerator
13 Problem beim Laden von Firmware
(H. Hoegl, 2012-05-18)
Bisher gab es immer ein Problem beim Laden der Firmware in USB Geraete, z.B. dem ASUS WL-167G V3 Adapter. Die unschoene Loesung war bisher, die Firmware direkt in den Kernel einzukompilieren. Bei genauerer Betrachtung zeigte sich, das das Problem mit Hotplug zu tun hatte. Wenn man /sbin/hotplug mit folgendem Inhalt anlegt, dann funktioniert der Ladevorgang. Die Konfigurationsoption CONFIG_FIRMWARE_IN_KERNEL=y sollte deaktiviert werden.
#!/bin/sh HOTPLUG_FW_DIR=/lib/firmware echo 1 > /sys/$DEVPATH/loading cat $HOTPLUG_FW_DIR/$FIRMWARE > /sys/$DEVPATH/data echo 0 > /sys/$DEVPATH/loading