« Programmierung     Software »


Script fur das Arduino RTCpro ModulMittwoch, 08 April, 2015 10:36

Das Folgende betrifft Arduino, eine RTC und die Umgebung ist Linux, deswegen ist es für Windows völlig nutzlos, leider.

Meine batteriegepufferte, temperaturgesteuerte Realtimeclock für den Arduino hat beim Umstecken iwie ihre Pufferung verloren und ich musste sie neu programmieren. Welche Libraries man braucht gibt es bei Adafruit, Instructables und auch anderswo zu finden. Was man auch braucht, ist die Time-Library . Und mit der kann man die Uhr (neu) programmieren. Dazu braucht man den Unixtimestamp der gewünschten Zeit und setzt ein T davor, z. B. T1428486102 für den Mi 8. Apr 09:42:27 2015 und das wird einfach über die serielle Schnittstelle zum Arduino ausgegeben. Das kann man aus der Arduino IDE oder über minicom z. B. machen - oder einfach als echo nach /dev/ttyUSB0 umleiten :)

Aber die Arduino IDE und minicom können beide keine Zeitberechnungen oder gar den Unixtimestamp ausgeben. Und weil der frisch ausgeben von date auch nicht instant verwendet werden kann, habe ich mir mal ein kleines Script gebastelt:

    
#!/bin/sh
NOW=$(date +"%s")
# wintertime
#SOON=$(( $NOW + 3601 ))
# summertime
SOON=$(( $NOW + 7201 ))
echo "Now is $NOW which is:"
date --date="@$NOW"
echo "RTC will be set to T$SOON which is:"
date --date="@$SOON"
echo -e "T$SOON\n">/dev/ttyUSB0

Es ermittelt die gegenwärtige Zeit, passt den Zeitstempel für die Uhr und einen Übertragungszeitraum an, informiert auf der Shell und gibt das gewünschte Ergebnis direkt an der seriellen Schnittstelle aus, ganz so, wie es TimeRTCSet.ino erwartet. Es ist vorbereitet, normale Zeit statt Sommerzeit aufzubereiten und wenn die serielle Schnittstelle woanders ist, muss man das auch im Script anpassen. Ist schnell und schmutzig, ich weiß. Ein schnell mal eben gemachtes Werkzeug, mehr nicht.

Categories: Elektronik, Hardware, Programmierung, Selbstgemacht

[ [0] Kommentare ]

Mein erster Ausflug mit dem Arduino und dem DFRobot LCD Keypad shieldSamstag, 27 Dezember, 2014 17:37

Meine neue Spielwiese sollte der Arduino sein.

Mit Scripting und etwas Programmieren am Computer war ich ja schon vertraut und kam schnell auf die Idee, dass so eine Mikroprozessor-Programmierung ohne Display und Tatatur an der CPU recht uninformiert aufallen könnte. - Mein erster Ausflug sollte also gleich eine Textausgabe und eine Eingabemöglich am Gerät haben, auch wenn ich inzwischen schon bemerkt hatte, dass das Android SDK durchaus eine Wiedergabe der seriellen Konsole vom Arduino hat.

Deswegen hatte ich mir das DFRobot LCD Keypad für den Arduino gekauft, das ein blaues, beleuchtetes Display mit weißer Schrift und 6 Tasten für select, Cursorsteuerung und Reset bietet.

Aprops Arduino, ich hatte mir gekauft den Arduino Pro Mini, den Arduino Funduino, sowie den Arduino Nano gleich doppelt oder auch dreifach, Elektronik raucht schnell mal ab beim Entwickeln, dachte ich mir und die Preise sind ja echt günstig.

Bisher ist alles gut verlaufen :)

Wie man nun anfängt? Nun, ein Vergleich mit Windows und Linux hat mir gezeigt, dass es besser ist, mit Linux zu programmieren, was daran liegt, dass das Hochladen von Software bei Windows nicht geht, wenn der Arduinio am Programmierer oder sofern es geht, am USB-Kabel angeschlossen nicht erkannt wird. Das ist bei Linux kein Problem.

Ein Tip, den ich nach Fehlermeldungen am Windowscomputer beim Hochladen hatte und so nicht als Lösung im Internet gefunden habe:

Programmieren geht am Besten mit nackigen Arduino! Also nicht am Steckbrett, wo er noch mit anderen Modulen verbunden ist!!!

Ein oder mehrere Steckbretter mit kurzen und langen Steckkabeln gibt die Möglichkeit, Module mit dem Arduino zu verbinden, ohne dass man löten muss. Für Arduino geeignete Seriell-zu-USB Module, FTDI basiert, um Arduinos die keinen USB-Anschluss haben verbinden zu können. Geeignete USB-Kabel.

Das Problem auf das ich stieß, als ich das LCD am Arduino anschließen wollte, war, dass ich (natürlich) keine Webseiten fand, die die Verdrahtung ganz genau zeigten. Dokumente, die zeigten, dass man das LCD prima auf den Arduino Uno stecken konnte waren zunächst nicht so die richtige Hilfe... später, als ich mir die PIN-Schematics vom Arduino UNO reingezogen hatte, war alles klar.

Ich habe mal das PIN-Layout des LCD von einer meiner Funde mit XCircuit nachgezeichnet, hier ist es:

-die Anschlüsse, die man braucht, sind alle angehakt. Das ist auf der unteren Seite bei den Buttons Reset, 5V, Ground sowie A0 und auf der Oberseite D4-D9 und D10. Und ja, D11 MOSI ~ ist mir auf dem Bild wohl verloren gegangen und ich hab's zu spät gemerkt. Egal, brauchen wir hier ja nicht :)

Auch nicht unbedingt braucht man Reset und D10 für Backlight Control. Verbunden wird mit dem Arduino 1:1, d.h. LCD D4 geht auf Arduino D4, LCD D5 auf Arduino D5 usw., LCD 5V (Input) geht auf Arduino 5V (Output), GND auf GND und A0 auf A0. Ging bei meinem Funduino ohne weitere Maßnahmen.

Ein Sketch von DFRobot hat mir gut gefallen und modifiziert hatte ich es, weil ich wohl ein LCD V1.0 Board habe und weil ich wissen wollte, wie der Reset arbeitet und wie es ohne Backlight aussieht.

So sieht "der Gerät" aus:

Und so das modifzierte Sketch:

//Sample using LiquidCrystal library
#include <liquidcrystal.h>

/*******************************************************

This program will test the LCD panel and the buttons
Mark Bramwell, July 2010

********************************************************/

// select the pins used on the LCD panel
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
//LiquidCrystal lcd(4, 5, 6, 7, 8, 9);
// define some values used by the panel and buttons
int lcd_key     = 0;
int adc_key_in  = 0;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5
#define backLight 10

// read the buttons
int read_LCD_buttons()
{
 adc_key_in = analogRead(0);      // read the value from the sensor 
 // my buttons when read are centered at these valies: 0, 144, 329, 504, 741
 // we add approx 50 to those values and check to see if we are close
 if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
 // For V1.1 us this threshold
/*
if (adc_key_in  50)   return btnRIGHT;  
 if (adc_key_in  250)  return btnUP; 
 if (adc_key_in  450)  return btnDOWN; 
 if (adc_key_in  650)  return btnLEFT; 
 if (adc_key_in  850)  return btnSELECT;  
*/
 // For V1.0 comment the other threshold and use the one below:

 if (adc_key_in  50)   return btnRIGHT;  
 if (adc_key_in  195)  return btnUP; 
 if (adc_key_in  380)  return btnDOWN; 
 if (adc_key_in  555)  return btnLEFT; 
 if (adc_key_in  790)  return btnSELECT;   



 return btnNONE;  // when all others fail, return this...
}

void setup()
{
 lcd.begin(16, 2);              // start the library
 lcd.setCursor(0,0);
 lcd.print("Push the buttons"); // print a simple message
}
 
void loop()
{
 lcd.setCursor(9,1);            // move cursor to second line "1" and 9 spaces over
 lcd.print(millis()/1000);      // display seconds elapsed since power-up


 lcd.setCursor(0,1);            // move to the begining of the second line
 lcd_key = read_LCD_buttons();  // read the buttons

  switch (lcd_key)               // depending on which button was pushed, we perform an action
 {
   case btnRIGHT:
 {
 lcd.print("RIGHT ");
 break;
 }
   case btnLEFT:
 {
 lcd.print("LEFT   ");
 break;
 }
   case btnUP:
 {
 lcd.print("UP    ");
 pinMode(backLight, OUTPUT);  // Backlight off
 break;
 }
   case btnDOWN:
 {
 lcd.print("DOWN  ");
 pinMode(backLight, INPUT);  // Backlight on
 break;
 }
   case btnSELECT:
 {
 lcd.print("SELECT");
 break;
 }
 case btnNONE:
 {
 lcd.print("NONE  ");
 break;
 }
 }

}  
  

Der Reset am LCD bewirkt ein Reset am Arduino, ist das Backlight aus (Cursor up, wieder an mit Cursor down), braucht man ein gut ausgeleuchtetes Display, um etwas lesen zu können. Aber vielleicht kann man ja die Darstellung invertieren und ich finde das noch irgendwann heraus.

Und jetzt geht es erst richtig los mit der Mikroprozessor-Programmierung XD

Categories: Elektronik, Hardware, Programmierung, Selbstgemacht, Software

[ [0] Kommentare ]

Kokosfett als Deodorant und türkisches Kölnisch Wasser als Eau de ToiletteSamstag, 20 September, 2014 21:36

Die Informationswoche über Aluminium auf Arte hatte ich mit Spannung verfolgt und war schwer beeindruckt. Für mich ist hängen geblieben, dass Antitranspirantien mit Aluminium in Verdacht stehen, dass sie Krebs verursachen, auch bei Männern und dass in Gehirnen toter Alzheimer Patienten große Mengen von Aluminium gefunden wurden. - Wenn ich also kein Aluminium über meine Achselwässerchen aufnehme, kriege ich vermutlich keinen Brustkrebs und kein Alzheimer, d. i. ein schönes Geschenk mit wenig Aufwand, dachte ich mir.

Zuerst suchte ich mir Deodorants im Supermarkt heraus, die kein Aluminium in ihrer Inhaltsangabe aufführen. Das ist sehr müßig, weil die Schrift sehr klein und die Angaben sehr kryptisch sind. Damit war ich also nicht so sehr zufrieden und suchte weiter. Beim googlen mit den beiden Schlagworten Deodorant und DIY (do it yourself) wurde ich fündig. Am Anfang landete ich bei Kosmetik selbst herstellen und erst später stieß ich auf Kokosfett. Ich habe mir das leider nicht gebookmarked und finde das jetzt nicht wieder, aber das Standardrezept ist auch sehr einfach:

-1/4 Tasse Soda (Natron)

-1/4 Tasse Speisestärke

-2 EL Kokosfett

-Teebaumöl

-Lavendelöl oder etwas Zitrusartiges

Das alles wird einfach zusammengerührt, Kokosfett ist flüssig über 24°C und kann ggfs. in der Mikki geschmolzen werden. Stärke und Natron dienen der Konsistenzbildung, die angegebenen (ätherischen) Öle dem Duft. Das kann man so machen, muss man aber nicht. Man kann Kokosfett auch pur verwenden.

Nun muss ich ja auch mal sagen, dass ich nicht so viel schwitze. Ob das Kokosfett schwitzen verhindert, glaube ich nicht. Vom Teebaumöl habe ich das mal gehört - das hat aber nun mal einen prägnanten Geruch. Stark schwitzende Leute sollten auch beachten, dass die Haut unter der Achsel empfindlich ist. Vorsichtig testen mit Teebaumöl und mit niedrig dosieren anfangen!

Was bewirkt Kokosfett denn dann im Deo? Kokosfett wirkt gegen die geruchsbildenden Bakterien! Und es riecht auch nicht nach Kokos, es ist geruchsneutral!

Ich habe mir eine Mischung aus Kokosfett, Stärke und Natron gemacht. Das Natron macht die Masse sandig, daher muss man vorsichtig verreiben. Ich nehme immer eine kleine Menge mit der Fingerspitze auf, so ein Volumen wie zwei bis drei Erbsen haben ungefähr und drücke das mit dem Finger auf die Achsel. Dann warte ich einen Moment, damit die Körperwärme das Fett schmilzt und dann verreibe ich es.

Ich habe das Kokosfett nicht mit ätherischen Ölen angesetzt, auch nicht mit Teebaumöl. Die Beduftung habe ich anders. Ich habe nämlich ein Eau de Toilette aus türkischen Kölnisch Wassern gemischt, das benutze ich dafür. Neugierig? Google das mal oder geh doch mal einfach in den türkischen Supermarkt, die Wässerchen sind gar nicht teuer. Mein Duftwasser ist 50% Akcay Tütün Kolonyasi 65° und 50% Duru Mandalina Kolony 80°

Wo bekomme ich nun Kokosfett her? Der chinesische Supermarkt hat es in kleinen und großen Flaschen, da habe ich es her.

Categories: Lifestyle, Selbstgemacht

[ [0] Kommentare ]

Gelöschte Dateien von MS-DOS Datenträgern wieder herstellenDienstag, 08 Juli, 2014 17:25

Das passiert manchmal und schnell ist es getan - die gemountete SD-Card mit einem MS-DOS Dateisystem z. B. vom Ebook-Reader wird versehentlich gelöscht und dann ist es passiert: Die Dateien sind weg und ein undelete für MS-DOS gibt es nicht.

Ist mir so vor ein paar Tagen passiert. Und ich habe gefunden, wie ich in Linux diese Daten wieder herstellen kann! Da ist sleutkit dein Freund, eine Software aus der Abteilung Forensics. Sleuthkit arbeitet mit Disk-Images, was eine gute Idee ist, damit am zu untersuchenden Datenträger keine Änderung womöglich Daten zerstören, die man lieber gerettet hätte.

Mit Linux ist das schnell und einfach gemacht. Mein Datenträger war als /dev/sde2 und /dev/sde3 gemountet und von /dev/sde2 habe ich vesehentlich Dateien gelöscht. Also läuft das so:

dd if=/dev/sde2 of=sd2.image.dd

Das erstellt eine bitgleiche Kopie der MS-DOS Partition.

Mein Script das ich erstellt habe, sieht beim Arbeiten dann so aus:

    
# msdos_recover.sh sony/sde1.image.dd
r/r 6975363:    EXTBIN (Volume Label Entry)
d/d 6975365:    Sony_Reader
d/d * 6975367:  udisk
d/d * 6975370:  rupor-enable-asec
d/d * 6975373:  rupor-disable-all
d/d * 6975375:  Books
r/r * 6975377:  This.is.CARD
d/d * 6975379:  Old.apks
d/d * 6975381:  apks
r/r * 6975384:  .created_by_pmount
continue? (y/n)
y
...reading
...writing
If we are lucky, you will find recovery at EXTBIN.
There is also a log at EXTBIN.log
done.

409M Daten wieder hergestellt :)

Interessiert? Kannst du >>msdos_recover.sh.zip<< herunterladen! Anschließend entpacken und ausführbar machen mit chmod +x msdos_recover.sh und dann iwo im ausführbaren Pfad ablegen.

Categories: Programmierung, Selbstgemacht, Software

[ [0] Kommentare ]

Media Indexer Entwicklung Status 1Donnerstag, 28 Juli, 2011 2:24

Es gibt ja bereits ein, zwei Media Kataloge für KDE und GTK, die mir aber zu aufgebläht sind und und für meinen Zweck "auf welchem USB Stick befindet sich die Datei xyz?" einfach zuviele Abhängigkeiten mitinstallieren, die ich gar nicht haben will.

Ausserdem will ich mehr C Programmieren und nachdem Perl mit Sqlite3 und zip und unzip Funktionalität gar nichts anfangen konnte, habe ich also mein zweites C Projekt angefangen, das mich sehr beansprucht hat und deswegen gab es auch lange nichts Neues hier zu lesen.

Inzwischen bin ich mit meinem persönlichen Media Indexer aber weit fortgeschritten und möchte an dieser Stelle bereits einmal ein paar Schnipsel Screenshots zeigen. Ich habe wirklich viel C Programmierungstechnik dazugelernt, dazu gleich mehr.

Ich stelle hier nur kurz mal dar, was ich gerne hätte:

Ein Programm, dass gemountetet Datenträger in /media liest, die Informationen in eine Datenbank schreibt, die ich einfach mal abfragen kann und die mir dann schnell Ergebnisse auswirft. Ich hätte ja auch einfach ein "ls -lR > USB-Stick.inhalt" pumpen können und anschliessend ein "grep" draufwerfen können. Das ist schnell erzeugt, das mit schnell ausgelesen irgendwann aber nicht mehr.

Ausserdem sollte dieses Programm kein Konsolenprogramm werden, sondern grafisch für den Desktop sein. Erste positve Erfahrungen hatte ich mit Zenity  schon gesammelt und das sollte auch meinen Ansprüchen genügen.

Dazu sollte eine Datenbank gehören, auch meinetwegen gerne verteilt auf verschiedene Dateien wie eine Datei pro Datenträger und starke Abhängigkeiten wie Server/Client Datenbanken wollte ich auch nicht haben dafür, sondern etwas wie eine Berkely Datenbank.

Meine Wahl fiel jedoch auf Sqlite, das auch in aktuellen Produkten wie Firefox und I-Phone Verwendung findet.

Bisher habe ich Einlesen fertig, hier sind die Screenshots:

Auswahl des/der Datenträger:

Datenträger Auswahl, auch mehrere  

Einlesen der Dateien, hier ist die Dauer ungewiss und durch einen pulsierenden Fortschrittsbalkens dargestellt:

Dateien einlesen

Schreiben der Datenbank mit den zuvor ermittelten Daten, hier ist der Verlauf eindeutig und es kann ein echter Fortschrittsbalken angezeigt werden:

Datenbank schreiben

Fertig:

Ende Hinweis

Ich bin mächtig stolz auf mich, ich kann jetzt nämlich in C Programmen dynamisch Speicher aloziieren, was auch dringend notwendig ist, denn die Menge an Daten von vorher nicht bestimmten Datenträgern kann man nicht fest einprogrammieren.

Ausserdem habe ich gelernt, wie ich mit C nicht nur Sqlite3 Dateien reinpumpe, sondern auch wie ich Pragmas zur Geschwindigkeitsoptimierung verwende und Unterprogramme zum Un-/Komprimieren anmelde.

Eine wahre Wucht und ich freue mich schon auf das Gestalten der Ausgabe...

[Update 01.08.2011]

Meine Vorstellung, für jedes Medium je eine Datenbank zu schreiben und bei Abfragen die Funktion SQLITE_ATTACH zu verwenden, wodurch ich alle Datenbanken über ein Datenbankhandle ansprechen kann und alle Datenbanken wie eine erscheinen, schien ja das voll geile komfortable feature zu sein.

Jedoch bin ich beim Hinsehen auf die Grenzen gestoßen, z. Z. sind da nicht mehr als 62 Datenbanken  drin. Das erscheint mir doch ein bißchen wenig, sodass ich mich beim Datenbank Design kalt erwischt fühle und das wohl ändern muss. Also ist in etwa doch nur eine Datei für alles oder so angesagt, schließlich kann eine Datenbank 2^64 Reihen haben, eine Grenze die man eigentlich gar nicht haben können soll und dann wäre die Datei 14 TB groß. Das Datenbankdesign muss ich mir also nochmal überdenken.

Categories: Hardware, Linux, Programmierung, Selbstgemacht, Software

[ [0] Kommentare ]

MSI Digi Vox mini Deluxe DVB-T USB Stick Version 3Sonntag, 08 Mai, 2011 22:41

Für 15€ habe ich den "MSI Digi Vox mini Deluxe DVB-T USB Stick" der mit einer Stummelantenne und einer Fernbedienung, sowie viel Werbematerial von MSI, dafür aber ohne USB-Verlängerung ausgeliefert wurde ergattert, der sogar HDTV 1080i ready ist.

Nun, leider gibt es für diese Gerät mit der USB ID 1d19:1101 keine Kernelunterstützung. Ein Tag Internet Recherche hat mich erst hierhin: http://www.linuxtv.org/wiki/index.php/MSI_DigiVox_mini_II_V3.0  und dann zu dieser Seite mit der Lösung geführt: http://www.turnovfree.net/~stybla/linux/v4l-dvb/lv5tdlx/ 

Bei dem z. Z. aktuellsten Paket 20101102_linux_install_package-Dongle.rar handelt sich um ein für den Chipsatz rtl2832u gepatchtes v4l (in gentoo maskiert: media-tv/v4l-dvb-hg von http://www.linuxtv.org ) samt Install Script. Zum Verständnis: Hier werden ausserhalb der Kernelquellen Module gebaut und ins System installiert.

Und hier ist die Anleitung: http://wiki.ubuntuusers.de/MSI_DigiVox_mini_II . Ich habe jedoch nur ein Blick in das Script geworfen selbst ein "make distclean" ausgeführt und anschliessend mit "make menuconfig" alles überflügsige rausgehaun, denn sonst wird alles und jedes gebaut. Hier ist die die .config Datei aus linux_install_package/v4l_rtl2832_install/v4l-dvb-abd3aac6644e/v4l/.config zum Anschauen, wer die verwenden will, muss ein "make oldconfig" oder ein "make menuconfig" ausführen, bevor kompliliert werden kann. Naja, und dann ein "make" und "make install" wie im Script eben. Dann habe ich nur die Module, die ich wirklich brauche.

Und wirklich, Stick eingesteckt, Module geladen und läuft. Damit es läuft, war noch ein bisschen für die Programme, die ich verwenden möchte notwendig. Vlc und mplayer brauchen eine channels.conf, siehe z. B. hier: http://wiki.ubuntuusers.de/dvb-utils#channels-conf . Der Befehl scan übrigens heißt jetzt dvbscan und ist im Paket media-tv/linuxtv-dvb-apps enthalten.

meine de-BRAUNSCHWEIG sieht so aus:

  
# DVB-T DBraunschweig # Mai 2011 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE T 498000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE T 658000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE T 682000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE T 768000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE

und die habe ich mir mit der besagten Vorlage und http://dvb-t.the-media-channel.com/nord/dvb-t-braunschweig.html zusammengebastelt und stimmt dann im Detail mit der Realtität überein und unterscheidet sich damit von der /usr/share/dvb/zap/dvb-t/de-Braunschweig (auch aus dem Paket media-tv/linuxtv-dvb-apps enthalten). Die damit erzeugte channels.conf habe ich ein bisschen umsortiert und kann hier angesehen werden: channels.conf .

Sie gehört in das Verzeichnis ~/.mplayer und dann kann man mplayer mit "dvb://XY" (wobei XY dann der Sendername ist) zum TV-Programm anzeigen anweisen.

Vlc kann z. B. mit der Angabe "~/.mplayer/channsels.conf" sofort im TV-Modus gestartet werden, hier fünktioniert auch Programm auf und ab (n und p). Für mplayer habe ich mir auch soetwas gebastelt: dvb.playlist . "mplayer -playlist .mplayer/dvb.playlist" startet dann im TV-Modus und auch hier kann man im Programm auf und ab (> und <).

So, damit bin ich erstmal vollstens zufrieden, EPG Basteleien kommen später.

Categories: Hardware, Linux, Selbstgemacht, Software

[ [0] Kommentare ]

udev Regel für cryptsetup luks verschlüsselte USB DatenträgerFreitag, 29 April, 2011 1:12

In Linux nehme ich gerne andere Windowmanager als KDE oder Gnome, nämlich solche, die wenig Speicher brauchen und die CPU kaum beanspruchen - wie z. B. jwm oder fluxbox. Die kennen keinen Fortschrittsbalken, sondern poppen einfach auf und sind dann da und es kann losgehen. Sie sind winzig und auch klein im Funktionumfang und bringen nicht alles mit, wofür es schon Spezialisten gibt - in jwm bekomme ich Desktop Icons mit rox desktop. Der Lautstärkeregler? gvolwheel. Und so weiter.

Nun gab es aber schon immer das Problem, daß solchen smarten Windowmanagern wirklich etwas völlig und seit ewig fehlte: Ein grafisches Poppup zum Eingeben des Schlüssels, wenn man einen cryptsetup luks verschlüsselten USB Stick angeschlossen hatte.

Im Gentoo Forum habe ich eine schöne Vorlage gefunden für eine udev Regel die in arch Linux funktionierte, nicht aber in Gentoo. Das habe ich untersucht und mit der ersten selbst erstellten udev Regel für mich experimentiert, was man in der udev Regel machen kann und was ein externes Script braucht. Das Problem hatte ich schnell gefunden und es lag hier verborgen: "Running external programs upon certain events ... udev does not run these programs on any active terminal, and it does not execute them under the context of a shell. Be sure to ensure your program is marked executable, if it is a shell script ensure it starts with an appropriate shebang (e.g. #!/bin/sh), and do not expect any standard output to appear on your terminal. (http://reactivated.net/writing_udev_rules.html#external-run )

Was dabei herausgekommen ist, kann man hier sehen:

Leerer Desktop vor dem Einstecken des USB-Sticks 

USB Stick gesteckt, das Fenster poppt auf 

Eingabe des Schlüssels 

Desktop Notify poppt auf 

Der geöffnete /media Ordner 

Der Inhalt des gemounteten Ordners 

Wieder eine Ebene zurück 

Umounten mittels pumount des Ordners mit der Maus 

Der Ordner nun nicht mehr gemountet 

Der USB-Stick wieder herausgezogen 

Download /etc/udev/rules.d/99-crypt.mount.rules weil es hier sonst den Rahmen sprengt :-)

/etc/udev/scripts/crypt.open.sh

 
#!/bin/sh WHAT=$1 WHERE=$2 while [ "$LOOP" != "done" ] do export DISPLAY=":0.0" PASS=`/usr/bin/sudo -u sascha /usr/bin/zenity --entry --hide-text=LUKS \ --text="LUKS open $WHAT at $WHERE" --title "Luks Passphrase" --width 500` if [ $? = 0 ];then # This is the ok button LOOP="run" echo $PASS | /sbin/cryptsetup -t 15 luksOpen $WHAT $WHERE if [ $? = 0 ]; then # Password success LOOP="done" fi else # this catches the cancel button LOOP="done" fi

done

Damit das im Windowmanager mit dem umounten funktioniert, muss der auf pumount eingestellt werden und sys-apps/pmount installiert sein.

Super, was habe ich lange vergeblich nach soetwas gesucht und jetzt konnte ich es sogar selbst fertigstellen.

Categories: Hardware, Linux, Programmierung, Selbstgemacht, Software

[ [0] Kommentare ]

Notfallsystem auf CF-CardSonntag, 03 April, 2011 21:58

Für lau vom Freund die CF-Card, den Adapter vom Arbeitskollegen, dann ist die Hardware komplett für ein Notfallsystem. Ich habe es bestückt mit Puppy Linux und Tiny Core Linux.

Die CF-Card ist 4GB groß und reicht bei diesen beiden Mini Linux Systemen lange Meter aus. Hier ein Foto:

CF-Card mit Adapter  

Nun kann ich bequem ein Backup machen oder den Computer booten, wenn die Festplatte nicht mehr will.

Categories: Hardware, Linux, Selbstgemacht

[ [0] Kommentare ]

Hacking Samsung SPF-87H - Linux demon v0.0.2Sonntag, 27 Februar, 2011 14:57

Der Deamon ist nicht länger auf /proc/bus/usb/devices angewiesen, wenn diese Pseudodatei nicht existiert, wird in /sys/bus/usb/devices hinabgestiegen und dort nach dem Gerät gesucht.

Hiermit kommt also die v0.0.2 an der sich sonst nichts geändert hat.

Download spf87hd_v0.0.2.tar.gz 

Categories: Hardware, Linux, Programmierung, Selbstgemacht, Software

[ [0] Kommentare ]

Hacking Samsung SPF-87H - Linux demonMittwoch, 02 Februar, 2011 13:34

Meinen Wunsch, wie ich den Samsung SPF-87H digitalen Bilderrahmen als Zweit-Monitor verwenden möchte, habe ich fertig programmiert. Da Samsung für dieses Gerät leider nur Windowsen unterstützt, guckt man als Linux User diesbezüglich in die Röhre. Das ist nicht (mehr) modern, aber leider Fakt. Nun ja, wenn du etwas gemacht haben willst, mach' es selbst! Und so habe ich mir einen Demon geschrieben.

Der Demon läuft im Hintergrund, schläft überwiegend und guckt dann immer nach einer Sekunde nach, ob das Gerät angeschlossen und im Monitormodus ist - dann schlägt er zu. Die Systemlast läuft gegen Null. Die einfache Lösung erschien mir am Anfang platt, es hat sich aber herausgestellt, daß sie auch die nervenschonenste und auch die Last schonenste ist, jedenfalls ist es nun so, dass ich die Pseudodatei des Kernels /proc/bus/usb/devices nach "Vendor=04e8 ProdID=2034" greppe. Das ist ja auch nicht wirklich eine echte Dateioperation und findet ohne Plattenzugriff allein im Hauptspeicher statt.

Es wird dann der permanente Monitormodus eingeschaltet und, sofern man es angegeben hat, das Kommando für diesen Fall ausgeführt. Da starte ich das Script, dass mir meine Conkys, die auf dem Hauptmonitor laufen, beendet und mir dann mit Xvfb, scrot und jpeg2spf87h, siehe unten, die Bilder auf den SPF-87H pumpt, die ich da sehen möchte.

Der demon kann noch was, denn wenn ich den SPF-87H dann wieder ausschalte, wird das Kommando für diesen Fall gestartet und dann startet er per Script wieder meine Conkys für den Hauptbildschirm.

Im Syslog sieht das so aus:

    
Feb  2 00:09:52 localhost spf87hd[16354]: SPF87H device in monitor mode found.
Feb  2 00:09:53 localhost spf87hd[16354]: claimed device.
Feb  2 00:09:53 localhost spf87hd[16354]: Permanent monitor mode enabled.
Feb  2 00:09:54 localhost spf87hd[16354]: Monitor cmd started.
...
Feb  2 00:11:27 localhost spf87hd[16354]: SPF-87H monitor device gone.
Feb  2 00:11:27 localhost spf87hd[16354]: No-Monitor cmd started.

Im Top:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                   
16354 root      20   0 18692  784  584 S    0  0.0   0:00.95 spf87hd

Na, damit kann man doch zufrieden sein, oder nicht?

Der Demon läuft auch im Vordergrund und kann auch ohne jede Option ausgeführt werden, dann schaltet er nur den permanenten Monitormodus auf dem Gerät ein.

Als demon muss er als root laufen, damit er in /var/run/ auch seine pid Datei schreiben und wieder löschen kann. Als user Prozess kann er auch betrieben werden, dann jedoch nur als Vordergrund Prozeß.

    
  $ ./spf87hd -h
Initializes the SAMSUNG SPF-87H for Linux Monitor Mode when it is set to it.

spf87hd has these Options:

-f, --foreground          Don't deamonize, stay at console.
-n, --nomonitor 'command' Command (unchecked) to be executed after Mini-
  Monitor function has been stopped.
-m, --monitor 'command'   Command (unchecked) to be executed after Mini-
  Monitor function has been started.
-u, --user [name]         Username (must exist) the commands are run by.
-h, --help                This text.
 

Für das Rüberschieben von JPEG Dateien habe ich auch ein eigenes Programm geschrieben, naja, abgeschrieben, wie im Großen und Ganzen eigentlich alles abgeschrieben, angepaßt und modifiziert ist. Dafür hat es aber auch sehr wenig Systemlast und produziert keine Beschwerden des Kernels mehr, "...process 24676 (jpeg2spf87h) did not claim interface 0 before use". Und ich verwende da libusb_bulk_transfer, genau wie der Windows Treiber auch bulk transfer verwendet.

Fehler passieren, die ich nicht verhindern kann. Bei hoher Systemlast ist es so, dass hier bei mir das Bilder rübersenden nicht immer funktioniert. Das ist aber kein Fehler von jpeg2spf87h, sondern eine Folge der Arbeit des Kernels in so einer Situation, jpeg2spf87h ist eben userland. Ausserdem gerät das Gerät manchmal aus dem Monitormodus hinein in den Datenträgermodus, das ist aber selten und kann durch einen Neustart des SPF-87H behoben werden. Ich merke das an der Bildschirmmeldung die dann kommt, sinngemäß steht dann da, der Datenspeicher sei fast voll und ich solle Dateien löschen wenn ich da Platz brauche. Diese Meldung fehlt vermutlich wenn Platz ist, dann merkt man es wohl nur daran, dass das Bild nicht mehr aktualisiert wird. Vermutlich ist das ein Bug in der Firmware, nur habe ich wenig Lust die neue Firmware einzuspielen die diesen Bug behebt, mir aber meine ganze Arbeit vielleicht wieder zunichte macht. Wer weiß? Never change a running sytem, you know? Aber vielleicht kann mir ja ein Leser mit der neuesten Firmware da mal was berichten...

Für die Realisation dieses kleinen aber anstrengenden Projektes habe ich also vielen Leuten zu danken, sie sind alle in den Quellen aufgeführt. Ja, opensource ist eine tolle Sache, ohne hätte ich meinen Samsung SPF-87H wohl wieder verkauft, oder nein, zum Kauf wäre es gar nicht erst gekommen. So wird mein Dank noch größer und geht auch an Samsung, denn ohne diese Versorgungslücke hätte ich mich gar nicht in diese Arbeit gestürzt. Da aber auch ohne Opensource ohne Hintergrund und Basis dieses Projekt gar nicht möglich gewesen wäre, ist es sogar so, daß ich gar nicht allen danken kann. Was ich aber tun kann, ist, das was ich gemacht habe, wieder zu veröffentlichen.

Wer also Lust hat, den Code einmal zu begutachten oder als Vorlage für sein eigenes Projekt nehmen möchte, oder wenn Du sogar selbst einen Samsung SPF-87H mit dieser bescheuerten, broken by design Firmware hast, dann hättest du ja sogar selbst dafür Verwendung.

Downloads:

spf87hd_v0.0.1.tar.gz 

jpeg2spf87h_v0.0.1.tar.gz 

Categories: Hardware, Linux, Programmierung, Selbstgemacht, Software

[ [1] Kommentar ]

Sauerkraut selbstgemacht - VIIIFreitag, 28 Januar, 2011 13:27

Die kleine Menge Sauerkraut und Sauerkrautlake, die bei mir in der Küche steht und nach und nach aufgebraucht werden soll, macht wieder Geräusche :-) ....es lebt!

In der warmen Küche sind die Milchsäurebakterien wieder ordentlich aktiv. Ich denke, beim nächsten Mal verlängere ich die erste Zeit nach dem Ansatz um eine Woche.

Categories: Kochen, Selbstgemacht

[ [0] Kommentare ]

Sauerkraut selbstgemacht - VIIMontag, 24 Januar, 2011 2:41

Die erste Sauerkraut Ernte gab es am vergangenen Sonntag. Es ist ein sehr mildes Sauerkraut geworden.

Für den Rohkost-Salat sehr gut geeignet und für ein "Gekochtes Eisbein mit Kartoffeln und Sauerkraut" war es lecker, wenn auch ein wenig ungewohnt. Da ist so ein Geschmack, der homogenisierten oder sterilisierten Produkten völlig abgeht, das war eine richtige Überraschung. - Die Eigenproduktion war ja primär für Rohkost-Salat gedacht gewesen und da bin ich besonders mit zufrieden. Das kann man sich vorstellen, wie mit Essig angemachten Kohlraspel. Mein Sauerkraut ist da ganz ähnlich: Weiß, ein wenig säuerlich, mit besonderer Note und nicht so steif wie richtig frischer Kohl. Mein Sauerkraut würde ich jeden Kohlsalat vorziehen :-)

So ist das erste Experiment also gut gegangen, es war auch gar nicht zu viel Salz, wie ich geglaubt hatte. Abschließend kann ich sagen, es ist gelungen und es war wirklich einfach.

Sehr zu empfehlen.

Categories: Kochen, Selbstgemacht

[ [0] Kommentare ]

Hacking Samsung SPF-87HMontag, 17 Januar, 2011 2:52

Der Digitale Bilderrahmen Samsung SPF-87H  kann unter Windows als Zusatzbildschirm verwendet werden. Auf http://vdrportal.de/board/thread.php?postid=947900   zeichnete sich ab, dass es auch mit Linux läuft.

Nun, da es mir keiner programmiert hat, musste ich es selbst tun und ein verschnupftes Wochenende weiter mit viel Internetsuche und viel Code kopieren und zusammenwürfeln und vor allem einem USB Verkehr Mitschnitt durch Wireshark war es schließlich soweit:

spf87h-tool , mein erstes C-Programm, das die ermittelte Codesequenz zum Bildschirm schickt, damit der im Monitormodus bleibt, ist fertig (UPDATE: Ich arbeite gerade an einem Deamon, damit man den Bildschirm nur "anschalten" muss und der rest automagisch funktioniert).

Der Samsung SPF-87H Digitale Bilderrahmen ist nun nicht länger nur ein Windows Werkzeug, sondern mir auch in Gentoo Linux zu Diensten und ich habe jetzt einen Zweitbildschirm, auf den ich meine Conkies auslagere, so habe ich auch in Vollbilddarstellung auf dem Hauptmonitor schnell mal auf den kleinen Samsung erblickt, was mein System so macht und wie das Wetter wird.

Nun kann ich den Monitor einschalten, Mini Monitor Modus auswählen, das Programm spf87h-tool starten, dann geht es los :

SPF-87H.sh

#!/bin/sh
killall conky 2>&1 >/dev/null
killall Xvfb 2>&1 >/dev/null
rm /tmp/.X13-lock 2>&1 >/dev/null
Xvfb :13 -screen 0 480x800x16 &
sleep 5
/home/sascha/SPF-87H/playusb/playusb -j /tmp/ram/xwud.jpg
export DISPLAY=:13.0
conky -p 0 -c /home/sascha/SPF-87H/conky/.conkyWeather &
conky -p 4 -c /home/sascha/SPF-87H/conky/.conkySystem &
conky -p 6 -c /home/sascha/SPF-87H/conky/.conkyCal &
conky -p 8 -c /home/sascha/SPF-87H/conky/nixie_clock.conkyrc &
while `grep -q 'Vendor=04e8 ProdID=2034' /proc/bus/usb/devices`
do
scrot /tmp/ram/xwud.jpg -q 100
jpegtran -rotate 90 -trim -outfile /tmp/ram/xwud.jpg /tmp/ram/xwud.jpg
/home/sascha/SPF-87H/playusb/playusb -j /tmp/ram/xwud.jpg
done
killall conky 2>&1 >/dev/null
killall Xvfb 2>&1 >/dev/null
sudo rm /tmp/.X13-lock 2>&1 >/dev/null
exit 0

Ach ja, /tmp/ram, das mounte ich per

/etc/fstab

  none /tmp/ram tmpfs mode=1777,size=512M 0 0

Durch tmpfs kann ich Dateien im RAM ablegen und verarbeiten, das verschnellert den Prozess enorm. Sogar meine nixie Röhren Digital Uhr mit Sekunden läuft im Zweitbildschirm dann ganz aktzeptabel.

Categories: Hardware, Linux, Programmierung, Selbstgemacht, Software

[ [0] Kommentare ]

Sauerkraut selbstgemacht - VIMontag, 03 Januar, 2011 22:32

Heute habe ich mal wieder nachgesehen, wie sich das Kraut so enwickelt und habe einen Schreck bekommen: Der Wasserstand im Topf hat sich abgesenkt und es ist eingetreten, was nicht passieren sollte, der Kohl hat Luftkontakt. Nun, aber alles scheint im grünen Bereich zu sein, keine Schimmelstellen zu entdecken und es riecht auch sauer und nicht erdig. der Kohl befand sich bisher wohl in dichter Kohlendioxid-Atmosphäre und/oder es gab keine solche Sporen, die dort hätten gedeien können.

Also schnell mal eine Menge Wasser kochen, salzen, abkühlen und nachfüllen...

Categories: Kochen, Selbstgemacht

[ [0] Kommentare ]

Sauerkraut selbstgemacht - VMontag, 27 Dezember, 2010 0:59

Der Sauerkrauttopf steht jetzt im kühlen Keller, in vier Wochen ist es fertig. Ich habe noch einmal eine Nase vom Inhalt genommen - riecht ziemlich sauer, wie schön, und noch immer ist alles in Ordnung. Ich werde darauf aufpassen müssen, daß das so bleibt, indem ich darauf achte, daß der Ring immer mit Wasser befüllt bleibt. Dazu habe ich mir eine Flasche mit Wasser im Keller bereitgestellt.

Die Werkzeuge habe ich ein weiteres Mal mit Leinöl bestrichen, damit die Holzoberfläche schön versiegelt ist, jetzt nach dem ersten Gebrauch. Die Reibe ist echt beste Qualität, das will man doch pflegen :-)

Categories: Kochen, Selbstgemacht

[ [0] Kommentare ]

Sauerkraut selbstgemacht - IVSonntag, 19 Dezember, 2010 21:54

Nun steht das Kraut eine Woche im Topf. Die Milchsäuregärung ist sehr sparsam geworden und ich konnte den Wasserring daher säubern und auch die Schüssel spülen.

Ich poste heute mal die Kosten der Arbeitsmittel, die Einkäufe der Utensilien habe ich alle bei Ohlendorf hier in Braunschweig getätigt und bin äußerst zufrieden damit. In der frühen Phase meiner Informationssuche war ich auf Angebote von Gemüsehobeln gestoßen, da konnte man schon dem Produktfoto entnehmen, dass es sich um schrottige Nachbauten handelte und entsprechende Erfahrungspostings die ich gefunden hatte, bestätigten das auch. Ich bin sehr froh, die paar Kröten mehr für echte Werkzeuge ausgegeben zu haben.

36,95 € 5 Liter Gärtopf mit Deckel in Wasserrinne aus brauner Keramik mit Beschwerungsstein

29,95 € Gemüsehobel vermutlich aus Buche, mit 2 Solingen Klingen und 45 cm Länge

2,95 € Kartoffelstampfer vermutlich aus Buche und 33 cm Länge

sowie

4,99 € Leinöl aus Denn's Bioladen zum Imprägnieren der Hölzer

74,84 € Investitionskosten, das amortisiert sich nicht so schnell. Ob es sich lohnt? Auf jeden Fall. Ich freue mich schon sehr auf Sauerkraut Rohkost Salat.

Categories: Kochen, Selbstgemacht

[ [0] Kommentare ]

Sauerkrauft selbstgemacht - IIIDonnerstag, 16 Dezember, 2010 12:52

Der Gärprozess ist in eine ruhigere Phase getreten, ein Blubb kommt jetzt also wirklich seltener, alle paar Minuten. Damit tritt vermutlich auch Ruhe in der Berichterstattung ein. Der Sauerkrauttopf wird 2 Wochen in der warmen Küche bleiben und danach in den Keller zur Lagerung kommen. Die Haltbarkeit des Krauts bei diesem Verfahren soll 1 Jahr betragen.

Categories: Kochen, Selbstgemacht

[ [0] Kommentare ]

Sauerkraut selbstgemacht - IIDienstag, 14 Dezember, 2010 22:32

Heute morgen, au weia, ist der Krauttopf ein bisschen übergelaufen. Darauf war ich aber vorbereitet, der steht in einer großen Schüssel und es ist nichts passiert. Ich hatte damit gerechnet, dass vielleicht viel Gase entstehen, die könnten schäumen und so könnte ein Überlaufen entstehen. Womit ich nicht gerechnet hatte und was ich auch nirgends beschrieben fand, war die Tatsache dass das Volumen zunimmt.

Das hatte ich nun aber gar nicht einkalkuliert, der Topf ist picke packe voll bis oben hin, ich hatte echte Mühe, die Steine noch reinzukriegen. Ich war ja davon ausgegangen, dass das Volumen abnimmt und das ist ja auch klar, die Konsistenz von geriebenen Kohl ist, naja, sperrig und ziemlich fest. Sauerkraut ist weich und anschmiegsam. Dass der Kohl quellen könnte, das ist mir ja gar nicht in den Sinn gekommen.

Ich mache mir jetzt Sorgen um meinen Topf, ja um das Gelingen des ganzen Projektes. Wenn der Kohl jetzt den Topf sprengt, kann ich das Ganze vergessen. Nun ist das ja noch nicht eingetreten, toi, toi, toi.

Inzwischen ist das alle paar Minuten ein Blübberchen zu einem alle 20 Sekunden weiter gekommen. Der anfängliche etwas kraut-fahlige Geruch, den der Topf verströmt (in der warmen Küche) hat sich auch schon etwas geändert und ist etwas fruchtiger geworden. Am Topf direkt riecht es schon sauerkrautig!

Categories: Kochen, Selbstgemacht

[ [0] Kommentare ]

Sauerkraut selbstgemachtMontag, 13 Dezember, 2010 23:21

Gestern abend habe ich meinen Sauerkrauttopf angesetzt. 2 1/2 Weisskohlköpfe, wahrscheinlich zuviel Salz, na, mal sehen. Heute, einen Tag später erste kleine Bläschen auf der Wasseroberfäche, vermutlich ein gutes Zeichen. Selbstverständlich hatte ich mich ein wenig verletzt, aber nicht am Gemüsehobel, sondern beim Nachschneiden vom groben Zeug, dass sich nicht gefahrlos hobeln ließ - wie ironisch von mir :-)

Die Impfung beim Kohl mit meinem bißchen Blut ist sicher gut, schadet aber wohl auch nicht - die Milchsäure, die jetzt langsam entsteht, wird's schon zerpflücken. Der Topf bleibt jetzt 2 Wochen in der warmen Küche und kommt danach in den Keller.

Neue Gerüche in meiner Hütte :-D

Categories: Kochen, Selbstgemacht

[ [0] Kommentare ]

« Programmierung     Software »