Installieren der Bourne-again shell (bash) auf WR-TR703N anstatt der Almquist-Shell (ash)

Nach dem Installieren von OpenWrt ist die Almquist-Shell (ash) installiert. Da die ash im Vergleich zu anderen modernen Shells sehr geringe Ansprüche an Speichergröße und Rechnergeschwindigkeit stellt, wird sie in OpenWrt und anderen Embedded-Linux-Systemen verwendet.

Welche Shell aktiv ist kann mit

echo $SHELL

auf der Konsole angezeigt werden. Obwohl der Befehl ja nur den Inhalt der Variable SHELL ausgibt, und die muss ja nicht immer richtig gesetzt sein.
Es reicht auch ein
echo $0

welches dann
-bash
oder je nach Shell einen Wert ausgibt.

So nun wollen wir die bash installieren weil sie komfortabler und gebräuchlicher ist.
opkg update
opkg install bash

in /etc/passwd
in der ersten Zeile, der root Zeile die bash eintragen:
root:x:0:0:root:/root:/bin/bash

dann eine Datei .bash_profile anlegen mit folgenden Inhalt:

echo ". $HOME/.bashrc" > /root/.bash_profile

dann eine eigene .bashrc Datei mit den User-Einstellungen anlegen, oder diese verwenden:

wget -P /root/ http://wenzlaff.de/download/linux/.bashrc

Nach dem ausloggen und einloggen steht die bash zur Verfügung, was leicht mit

$ echo $SHELL
getestet werden kann, es wird dann ausgegeben:
/bin/bash

Wie kopiere ich nun vom Mac OS X Dateien auf den WR703N?

Das geht mit scp – Secure copy to copy files to/from a remote computer.

Zum Beispiel wenn im aktuellen Verzeichnis die Datei TWSerial.jar lieg und die in das Root Verzeichnis des WR703N kopiert werden soll.
Wobei der User: root und die IP des WR703: 192.168.2.122 ist (evl. noch anpassen):

scp TWSerial.jar root@192.168.2.122:/root

Das Ergebnis:
TWSerial.jar 100% 170KB 169.8KB/s 00:00

Weiter Infos zu scp:

usage: scp [-12346BCEpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 ... [[user@]host2:]file2

Oder auf dem Mac Dateien vom WR703N kopieren, z.B. alle my*.gplot Dateien im lokalen Verzeichnis sichern:

scp root@192.168.2.122:/usr/src/fhem/www/gplot/my*.gplot .

Wie kann eine Java VM auf TP WR 703N installiert werden?

Über den Paketmanager jamvm installieren (jamvm_1.6.0-git-2_ar71xx.ipk).
Dazu ja* eingeben und suchen klicken. Anschließend das Paket installieren:

Gui von OpenWrt - Luci - Paketverwaltung
Gui von OpenWrt – Luci – Paketverwaltung

Anschließend testen ob die Version richtig installiert ist mit:
jamvm -version
es wird dann folgendes ausgebeben:

JamVM - Java VM - Ausgabe der Version mit: jamvm -version
JamVM – Java VM – Ausgabe der Version mit: jamvm -version

Wie kann die Java VM verwendet werden:
jamvm
ergibt folgendes:

Verwendung von jamvm - Java VM
Verwendung von jamvm – Java VM

Weiter tests folgen …

Startpunkt zu embeddet Java.

Vergleich zweier Temperatursensoren DS18B20 mit gnuplot

Eine kurze Messung mit zwei an das Arduino-Board angeschlossene Temp.-Sensoren DS18B20 ergibt diese Daten.

Daraus läßt sich mit diesen gnuplot Befehlen

set title "Temperaturverlauf"
set ylabel "Temperatur in Grad/Celsius"
set xlabel "Messzeitpunkt"
set xdata time # x-Achse wird im Datums/Zeitformat skaliert
set timefmt "%Y.%m.%d_%H:%M:%S" # Format Zeitangaben yyyy.mm.dd_hh:mm:ss
set format x "%H:%M" # Format für die Achsenbeschriftung
set yrange [26:28] # die y-Achse geht von:bis
set terminal png
set output "temperaturverlauf.png"
plot "temperatur.log" using 1:2 title "Innen Sensor" with lines, "" using 1:3 title "Aussen Sensor DS18B20" with lines

diese Grafik plotten:

gnuplot zweier Temperatursensoren
gnuplot zweier Temperatursensoren

Die Sensoren sind mit +-0,5 Grad Celsius bei -10 bis +85 Grad angegeben.
Die Differenz beider Werte ergibt mit diesen gnuplot Befehlen:

set title "Temperatur Differenz zweier Sensoren"
set ylabel "Temperatur Differenz in Grad/Celsius"
set xlabel "Messzeitpunkt"
set xdata time # x-Achse wird im Datums/Zeitformat skaliert
set timefmt "%Y.%m.%d_%H:%M:%S" # Format Zeitangaben yyyy.mm.dd_hh:mm:ss
set format x "%H:%M" # Format für die Achsenbeschriftung
set yrange [-1:1] # die y-Achse geht von:bis
set zeroaxis # die 0 Linie
set terminal png # erzeugt eine PNG Datei
set output "differenztemperaturverlauf.png" # Name der PNG Datei
plot "temperatur.log" using 1:($2-$3) title "Temperatur-Differenz" with lines
set terminal aqua # wieder auf Terminal
replot # nochmal in Terminal plotten

folgendes Ergebnis.

Differenz zweier Temperaturmessungen
Differenz zweier Temperaturmessungen

Mit welchem gnuplot Befehl bekomme ich eine horizontale Linie bei 0,5 und -0,5 Grad hin, die mit min und max Beschriftet ist? Ok, hier die Lösung.

Per Java über die Serielle-Schnittstelle auf den Arduino zugreifen mit dem Mac OS X 10.8.4

Wie kann nun über die Serielle-Schnittstelle per Java auf den Arduino mit dem Mac zugegriffen werden?

Wie in dieser Anleitung beschrieben vorgehen.

1. Auf den Arduino den „Hallo Welt“ Sketch laden.

void setup(){
Serial.begin(9600);
}
void loop(){
Serial.println("Hello world");
delay(1000);
}

2. Den RXTX-Treiber in Version >= 2.2pre2 laden. Die 1.7 Version macht mit Mac OS X 10.8.4 Probleme, es kommt die Meldung, das der Port belegt ist.
3. Die zwei Dateien aus dem entpackten Archiv librxtxSerial.jnilib und RXTXcomm.jar in das /Library/Java/Extensions Verzeichnis kopieren
4. Die RXTXcomm.jar dem Classpath des Projektes hinzufügen.
5. Im Testprogramm den PORT_NAMES „/dev/tty.usbserial-A501U7KD“ entsprechend setzen. Im Arduino-IDO Menü Werkzeuge-Serieller-Port schauen, wie er genau heißt.
6. SerialTest starten. „Hello World“ wird auf den Konsole ausgegeben.
„Per Java über die Serielle-Schnittstelle auf den Arduino zugreifen mit dem Mac OS X 10.8.4“ weiterlesen

Arduino Software für Mac OS X installieren

So vorgehen, wie in der Arduino-Anleitung beschrieben.

1. Virtual Com Device Treiber 2.2.18 von FTDICHIP laden und wie in der Anleitung beschrieben installieren.
Für Mac OSX 10.8.3 und 10.8.4 ist es nötig die FTDIUSBSerialDriver_10_4_10_5_10_6_10_7.mpkg zu installieren. Nun muss das Arduino Board an den USB-Port angeschlossen werden. Wird es nicht angeschlossen sind die installierten Treiber nicht im /dev Verzeichnis sichtbar.
Dann im Terminal im Verzeichnis /dev überprüfen ob die *usbserial* Treiber installiert wurden.

2. Entwicklungsumgebung downloaden und installieren. Starten.

3. Seriellen Port unter dem Menü: Tools – Serieller Port – /dev/cu.usbserial-A5001U7KD auswählen.

4. Beispiel auswählen und überprüfen und auf den Arduino uploaden.

Wie kann ein User in die sudo Liste hinzugefügt werden?

Es ist eine lange Tradition, nur die User, die in der Gruppe wheel sind, es zu erlauben, den Benutzerkontext mit su (substitute user identity) zu wechseln. Wie kann unter Mac Os X ab 10.6 ein User hinzugefügt werden?

Das geht mit dscl (Directory Service command line utility).

dscl . -append /Groups/wheel GroupMembership "thomas"

Den Namen Thomas durch den entsprechenden Account ersetzen und den Punkt nicht vergessen.
Ob der Befehl erfolgreich war kann mit:

dscl . -read /Groups/wheel

überprüft werden.

Welche Java Version gibt es für Mac OS X?

Eine gute Liste der Java Versionen gibt es hier. Oder das Orginal von Apple mit Java Code zur ermittlung der Version.

Die Java Version kann man im Terminal wie folgt ermitteln:


java -version

Es wird dann z.B. geliefert:

java version "1.6.0_29" Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-11D50)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)

Umlaute in Java Programmen

Damit die Umlaute nicht nur auf Windows sondern auch auf dem Mac OS X richtig dargestellt werden, müssen sie als Unicode angegeben werden.


Zeichen Unicode
------------------------------
Ä, ä \u00c4, \u00e4
Ö, ö \u00d6, \u00f6
Ü, ü \u00dc, \u00fc
ß \u00df

Wie wird ein Bildschirmfoto mit dem Mac OS X erstellt?

Die folgenden Tastaturbefehle erzeugen auf dem Desktop bzw. in der Zwischenablage eine png Datei:

Shift + CMD + 3 der ganze Bildschrirm
Shift + CMD + CTRL + 3 der ganze Bildschirm aber in die Zwischenablage
Shift + CMD + 4 dann mit Fadenkreuz einen Bereich auswählen
Shift + CMD + 4 + Leertaste + dann klick auf das offene Fenster

Bei dem letzten Befehl wird jeweils ein Schatten mitgespeichert. Dies kann abgeschaltet werden durch einmalige eingabe in der Konsole mit:

Ausschalten geht dann wieder mit:

Wie kann Maven 3 auf Mac OS X 10.7.2 Lion installiert werden?

Erst Macports installieren und dann mit

sudo port install maven3

die Installation starten. Dann wie im Installationsfenster beschrieben, maven 3 als default setzen.

Wichtig ist noch, das im ~/.m2/settings.xml das Lokale Repository angegeben wird. Dabei darf das Lokale Verzeichnist nicht
mit ~ gesetzt werden, sondern es muss der komplette Pfad angegeben werden, sonst laufen die Eclipse Plugins nicht richtig.

In

~/.bash_profile

noch:

export M2_HOME=/opt/local/share/java/maven3
export PATH=${M2_HOME}/bin:${PATH}

setzen.

Wie setzt man die JAVA_HOME Variable in Mac OS X Lion 10.7.2

Die Terminal App starten und mit einem Editor die

~/.bash_profile (evl. kontrollieren .profile, .bashrc, /etc/profile )

Datei um den folgenden Eintrag ergänzen:

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home

Nach dem restart der Terminal App kann es mit:

echo $JAVA_HOME

getestet werden ob der Eintrag richtig gesetzt wurde.

Auch muss jetzt in jedem Verzeichnis mit:

java -version

die Java Version ausgegeben werden.