Hat man mühsam den Quellcode eingerückt, für SQLs oder bestimmte Variablen oder Konstanten und man möchte nicht, das dieser Code wieder durch die automatische Formatierung verloren geht wie in diesem Beispiel:
Dann kann man zwei Tags definieren in:
Dann auf Edit klicken. Auf dem letzten Tab unter Off/On Tags können belibige Tags definiert werden:
und schon bleibt der Quelltext zwischen den Tags, so wie angegeben.
In Projekten müsste man sich dann aber auf Tags für alle einigen und in der Systemweiten XML festschreiben, sonst würde jemand anderes, der die Datei ausscheckt und den Tag nicht definiert hat, alles wieder umstellen.
Wenn der VPN Client Tunnelblick installiert ist, ein Verzeichnis anlegen mit der Extension .tblk
z.B. OpenWRT10.tblk
In diese Verzeichnis die Datei OpenWRT10.ovpn mit folgenden Inhalt kopieren:
remote 192.168.2.223 1194
client
dev tun
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert thomas.crt
key thomas.key
cipher bf-cbc
comp-lzo
# Statische IP Adresse: Server 10.0.0.1 Client 10.0.0.2
ifconfig 10.0.0.2 10.0.0.1
verb 3
mute 20
Die folgenden drei Zertifikate müssen auch in diesem Verzeichnis vorhanden sein:
Inhalte de OpenWRT10 Verzeichnis für Tunnelblick
Dann kann mit einem doppelklick auf das Verzeichnis die VPN Verbindung aufgebaut werden. Wenn die Verbindung geklappt hat, erscheint:
Die Piratebox ist ein in sich selbst abgeschlossenes Gerät zum anonymen speichern und austauschen von Bildern, Videos, Dokumente und andere Dateien über WLAN.
Es wird kein User login benötigt und es wird kein User geloggt. Auch kann im Netz geschattet werden.
Die Piratebox ist nicht ans Internet angebunden, um die Sicherheit zu erhöhen das die Daten private bleiben.
Also ein freies und offenes privates file sharing and chat! device. Jeder der in der Reichweite des WLAN ist, kann einfach und sofort Dateien austauschen.
Es gibt da ein paar Fallgruben bei der Installation und der Router kann leicht gebrickt werden. Mit einem Serial-Adapter kann dies aber wieder rückgängig gemacht werden. Ist aber nicht ohne Löterrei möglich.
Im Prinzip läuft die Installation so wie in der Anleitung
des Entwicklers beschrieben.
Auf dem 703N muss die Version 12.09 geflasht werden. Habe die neuere Version 12.09 von OpenWrt auch versucht, die lief aber nicht, und erzeugte eienen brick!
Es wird noch ein USB Stick benötigt. Ich hatte noch einen 8 GB Stick liegen. Der muss mit FAT32 formatiert werden und darf nur eine Partition haben.
Ich hatte einen mit 3 Partitionen, der lief in eine Endlosschleife. Dann hatte ich den USB Stick mit einer Partition angelegt und vergessen sie zu einer primären Partition zu machen, auch das führte zu einer Endlosschleife.
Also Vorbedingung:
1. Version 12.09-beta2 geflasht
2. USB Stick mit einer FAT32 Partition erstellen
3. Test ob zugriff aufs Internet mit ping wenzlaff.de
4. opkg update
opkg install kmod-usb-uhci
insmod usbcore # Es kann die Meldung kommen: file exists
insmod uhci
opkg install kmod-usb-ohci # Es kann die Meldung kommen:up to date.
insmod usb-ohci
Die Installation dauert nun ca. 15 min denn es werden aus dem Internet neue Versionen geladen und installiert und auf
dem Stick SWAP Partitionen angelegt und das Piratebox System installiert und konfiguriert.
7. Wenn die Installation abgeschlossen ist, kann das LAN Kabel entfernt werden und der Router einmal rebootet werden.
Dann kann auf das WLAN Netzwerk mit dem Namen „PirateBox – Share Freely“ zugegriffen werden. Dazu z.B. im iPadMini das WLAN auswählen:
Optional: Was mir noch fehlt, ist eine externe Stromversorgung von 5 V über den USB Port, so das alles portabel ist.
Die eingestellte IP: 192.168.1.1 (192.168.2.111)
Domain: piratebox.lan
Wenn eine Browser geöffnet wird und irgendeine Seite aufgerufen wird erscheint:
Nun können Dateien ausgetauscht und geschattet werden. Siehe den Hallo Welt Eintrag von mir oben.
iOS 7.0 Download Zeit ca. 13 Stunden für 1,24 Gb 🙁 vorausberechnet.
Nach 12 Stunden ist alles geladen, jetzt noch das update. Mal sehen wann es durch ist!
iOS 7 läuft nun. Mal was Neues!
Fürs iPadMini ging alles unter eine Stunde. Das iPad2 ist noch in Arbeit, soll 6 Stunden dauern für 1,05 Gb. Da kommen die Bytes einzeln durch die Leitung.
Um die digitalen Werten, wie Tür auf oder zu in einem Plot mit dem Batterie Zustand auszugeben, kann wie folgt vorgegangen werden. Der HM-Sec-SC Funk-Tür-/Fensterkontakt gibt die Werte ja zurück. Die rote Linie gibt den Türzustand aus ob die Tür auf oder zu ist bzw. war.
Plot der Schaltzustände der Tür und der Batterie aus Fhem
Diese /fhem/www/gplot/myTerrassenTuer.gplot Datei speichern:
/* myTerrassenTuer.gplot Version 1.0 vom 07.09.2013
Dieses GNU-Plot Script (myTerrassenTuer.gplot) gibt zwei Zustaende des Tuerkontakt als Kurven aus und zwar den Batterie-Zustand, den Status der Tuer.
(C) 2013 Thomas Wenzlaff http://www.wenzlaff.de
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see {http://www.gnu.org/licenses/}. */
set terminal png transparent size <SIZE> crop set output '<OUT>.png' set xdata time set timefmt "%Y-%m-%d_%H:%M:%S" set xlabel " " set title 'Terrassen Tuer'
set ytics ("Zu" 0, "Ok" 0.8, "Auf" 1) set y2tics ("Zu" 0, "Ok" 0.8, "Auf" 1) set yrange [-0.1:1.1] set y2range [-0.1:1.1] set ylabel "" set y2label ""
Zuerst die USB Kernel Module und USBIP Server Package installieren mit:
opkg update
opkg install kmod-usb-ohci usbip-server
Dann die lokalen USB Geräte auflisten mit usbip list -l
Bei mir wir diese Ausgabe geliefert:
[root@OpenWrt ~]# usbip list -l
Local USB devices
=================
- busid 1-1 (0451:1446)
1-1:1.0 -> hub
Wie man sieht, habe ich einen USB Hub, an diesem habe ich den Arduino Nano (ftdi_sio) und einen USB-Stick mit 8GB (usb-storage) angeschlossen.
In der Datei /etc/rc.local vor dem exit 0 diese Zeilen einfügen wenn der Server autom. gestartet werden soll. Evl. noch die BusID anpassen:
# TW Tunnelt den USB-Stick per TCP
usbipd -D &
sleep 1
usbip bind -b 1-1.4 # bindet die BusID vom USB Stick
Diese Methode habe ich aber erstmal nicht mehr verwendet da schon autom. ein Fhem-Server läuft.
Nach einem reboot kann mit netstat geschaut werden ob alles läuft. netstat -alpt.
Siehe auch diese Anleitung
[root@OpenWrt ~]# usbip list -local
Local USB devices
=================
- busid 1-1 (0451:1446)
1-1:1.0 -> hub
[root@OpenWrt ~]# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0451:1446 Texas Instruments, Inc. TUSB2040/2070 Hub
Bus 001 Device 007: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) 64MB QDI U2 DISK
Bus 001 Device 008: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 002 Device 001: I
Hab noch keinen USBIP Client für Mac OS X gefunden. Gibt es da einen der läuft?
Für Windows und Linux gibt es passende.
Um Kontakt zur seriellen Schnittstelle aufzubauen kann unter Mac OS X das Programm: screen
verwendet werden. Einfach auf der Kommandozeile aufrufen
screen [ -optionen] [ Kommando [Argumente]] wie hier gezeigt um die USB Schnittstelle anzusprechen:
screen /dev/cu.usbserial-A9YLHVRN
Es gibt für Arduino eine Kommando Shell mit Namen Bitlash. Auch eine Anleitung ist auf Hompage des Entwicklers zu finden.
Hier die nötigen Schritte, um ein Arduino (Nano) damit zu bestücken.
Zuerst einmal die neueste Version (2.0) von bitlash installieren, dazu in das Libraries Verzeichnis von Arduino wechseln und per git die Neueste Version holen:
cd ~/Documents/Arduino/Libraries
git clone https://github.com/billroy/bitlash.git
Dann die Arduino IDE (1.5.2) starten und über das Menü: Datei-Beispiele-bitlash-Bitlashdemo das Beispiel Sketch laden, compilieren und auf den Arduino hochladen.
Wenn dann der Serielle-Monitor aufgemacht wird, ist es bei mir mit dem Nano abgestürzt.
Deshalb habe ich die Geschwindigkeit auf 9600 geändert. Hier das angepasste Beispiel Sketch: /** twbitlash.pde Thomas Wenzlaff http://www.wenzlaff.de Version 1.0 vom 31.08.2013
Beispiel einen einfachen Kommandointerpreter für den Arduino Nano. Basis Beispielprogramm von:
Bitlash is a tiny language interpreter that provides a serial port shell environment for bit banging and hardware hacking.
This is an example demonstrating how to use the Bitlash2 library for Arduino 0015.
Bitlash lives at: http://bitlash.net The author can be reached at: bill@bitlash.net
Copyright (C) 2008-2012 Bill Roy
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **/
#include "bitlash.h"
voidsetup(void) {
// Initialisierung und setzen der Baud Rate 57000 bricht beim Nano ab // Startet den Kommandozeileninterpreter und führt den startup Makro aus
initBitlash(9600);
}
voidloop(void) {
runBitlash();
}
und dann läuft dieses Beispiel.
Nach öffnen des Seriellen Monitors in der IDE (1.5.2) erscheint: Bitlash Startbildschirm
Alle Kommandos lassen sich mit help anzeigen: Bitlash 2.0 Online Hilfe
Wie dann die erste Funktion erstellt wird, steht hier.
Kurz, um die LED 13 blinken zu lassen folgende Befehle eingeben:
function toggle13 {d13 = !d13;}
function startup {pinmode(13,1); run toggle13,1000;}
startup
boot
Funktionen lassen sich mit ls anzeigen: Erstes Beispiel
Das Java Magazin Ausgabe 9-2013 ist jetzt am Kiosk nicht mehr erhältlich erhältlich. Die Ausgabe kann aber noch Online nachbestellt werden.
Das Magazin erscheint in einer Auflage von ca. 20000 Exemplaren und ist damit das am weitesten verbreitet Magazin zum Thema JAVA.
In der Ausgabe findet Ihr einen Artikel vom mir zum Thema „Ansteuerung von USB-Schnittstellen via javahidapi mit Java“ inkl. einem Eclipse Beispielprojekt.
Hier ein Foto meines Belegexemplares: Java Magazin 9 2013
Wie findet Ihr den Artikel? Würde mich über Feedback freuen.
Der Arduino (NANO) wird per USB an den TP-WR703N (12.09) angeschlossen. Wie kann nun von einem anderen Rechner darauf per TCP (Telnet) zugegriffen werden?
Dazu erst socat auf den WR703 installieren mit
opkg update
opkg install socat
Socate (Version 1.7.2.1) kann bidirektionale Verbindungen aufbauen. Es verbindet den USB Port mit dem TCP Port.
Dann das folgende Script erstellen start-temp.sh, und evl noch die Schnittstelle DEV und den PORT und BAUD anpassen.
#!/bin/bash
DEV=/dev/ttyUSB0
PORT=1234
BAUD=9600
while true; do
if [ -e $DEV ]
then
socat tcp-l:$PORT,reuseaddr,fork file:$DEV,nonblock,raw,echo=0,waitlock=/var/run/tty,b$BAUD
else
sleep 2
fi
done
und ausführbar machen mit
chmod +x start-temp.sh
Dann kann das Script mit ./start-temp.sh & im Hintergrund auf dem WR703N gestartet werden.
Nun kann von einem anderen Rechner mit telnet ip-adresse 1234 die Ausgabe ausgegeben werden.
Will man das das Script autom. beim hochfahren des WR703N startet, muss es noch in der /etc.rc.local eingetragen werden (aber vor exit 0). Das geht auch über Luci: Luci Startskripte
Unter Mac tut es ein
sudo port install googlecl und für andere Betriebssysteme (Win, Linux) hier schauen.
Dann ist für jeden Dienst eine einmalige Autorisierung nötig. Dazu auf der Komandozeile
google calendar list
eingeben. Es wird nach der E-Mail Addresse des Google-Account gefragt. Als Antwort gibt es einen Link, der im Browser nach eingabe des Passwortes bestätigt werden muss.
Ein
google contacts list Thomas
gibt dann alle Kontakte mit Namen Thomas aus. Will man die dann noch in eine Datei schreiben geht das z.B. mit
google contacts list Thomas > kontakte.txt
Ein
google calendar add "Testeintrag" fügt einen Kalendereintrag am heutigen Tag hinzu und ein
google calendar today gibt die Kalendereinträge auf der Konsole von heute aus. Eine Liste aller Kalendereinträge gibt es mit google calendar list.
Weitere Beispiele und Syntax gibt es im Manual oder jeweils mit
help, z.B. google help calendar.
Erst in OpenWrt einloggen und die Luci Themen downloaden mit:
opkg update
opkg install luci-theme-bootstrap
Dann in der Luci-Web-Gui unter der Seite System/System -> Language and Style auf das Design von OpenWrt auf Bootstrap stellen. Dann noch auf Save & Apply.
Nmap – Netzwerk Scanner
Tcpdump – Sniffer
Netcat – Daten kopieren über Netzwerk
aircrack Wireless – Netzwerk Analyse
kismet – WiFi Analyse
perl – Programmier Sprache Perl
openvpn – VPN Client und Server
dsniff – Sniffing und spoofing Tools, mit arpspoof
nbtscan – NetBIOS Netzwerk Scanner
snort – Sniffer, Packet Logger, Intrusion Detection System
samba2 client – Windows File Sharing Client
elinks – Text Based Web Browser
yafc – FTP Client
openssh-sftp-client – Secure File Transfer Client
mc – Dateimanager für Kommandozeilen und Mausunterstüzung
luci-theme-bootstrap – Sprachunterstüzung und Thema für Luci
htop – Prozessmanger zum anzeigen und kill von Prozessen und Resouren
iftop – Netzwerk Interface Anzeige
ettercap – Netzwerk Penetrations Tool
mdk3 – Netzwerk Penetrations Tool
aircrack-ptw – Netzwerk Penetrations Tool
Voraussetzung:
1. Ein formartierter USB-Stick mit drei Partitionen. Ich habe einen 8 GB Stick so formatiert:
sda1 - sys (80 MB oder mehr) ext2 primary
sda2 - swap (64 MB oder mehr) linux-swap primary
sda3 - data (der Rest des Speichers) ext2 primary
2. OpenWrt Version 12.09 (kein trunk) auf OpenWrt geflasht
downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/
Installation
1. Passwort setzen
2. Über WEB-Frontend Luci zu Network->WiFi gehen und das Netzwerk scannen. Auswählen des erkannten Homenetzwerk. Eingabe des Passwort und als Firewall-Zone WAN auswählen. Speichern.
Unter den erweiterten Einstellungen den Country Code auf DE und HT Mode setzen, wenn er nicht schon da ist.
Speichern.
es muss in einen der letzten Zeilen die Partitionen sda, sda1, sda2, sda3 angezeigt werden.
6. Die Datei /etc/config/fstab wie folgt bearbeiten damit der USB-Stick eingebunden wird.
config global automount
option from_fstab 1
option anon_mount 1
config global autoswap
option from_fstab 1
option anon_swap 1
Nach dem mounten ist /overlay die SYS Partition.
Das /home Verzeichnis ist die Daten-Partition die für alles was benötigt wird verwand werden kann.
7. Mounten des USB-Sticks und kopieren der SYS Partition auf den Stick:
mkdir /mnt/sda1 /home
mount /dev/sda1 /mnt/sda1
tar -C /overlay -cvf - . | tar -C /mnt/sda1 -xf -
8. Reboot
9. Per SSL verbinden und Testen ob der Stick eingebunden wurde mit
df
Testen ob der Swap funktioniert mit
swapon /dev/sda2
Wenn „swapon: /dev/sda2: swapon failed: Device or resource busy“ kommt, ist alles ok.
10. Instalation von dsniffer vom derbycon Repo und anderer Tools mit:
opkg update
opkg install http://minipwner.com/20120514/downloads.openwrt.org/snapshots/trunk/ar71xx/packages/dsniff_2.4b1-2_ar71xx.ipk