Dienstag, 25. September 2018

TBS Linux-Treiber für DVB-Karten von TBS installieren

TBS Linux-Treiber installieren unter Debian 9

TBS stellt diverse gute DVB-S,C und T PCIe-Karten und USB-Module her. TBS bietet auch Linux-Treiber für die Karten an, jedoch leider nicht im Kernel, sondern nur als Quellen, die man dann bauen und installieren muss. Eigentlich keine Hexerei... Leider ist die Anleitung von TBS unvollständig und funktioniert nicht richtig.

So funktioniert's auf Anhieb:

  1. Kernel-Header und Build-Essentials installieren
    #apt-get install linux-headers build-essential
  2. Treiber von hier herunterladen. Aktuelle Version ist v170330
  3. Archiv entpacken
    $ unzip tbs-linux-drivers_v170330.zip  
  4. Treiberpaket entpacken
    $ tar -xjvf linux-tbs-drivers.tar.bz2
  5. Originale Media-Treiber löschen

# rm -rf /lib/modules/`uname -r`/kernel/drivers/media/*
6. Source-Tree konfigurieren (siehe Bemerkungen) -
$ cd linux-tbs-drivers
# ./v4l/tbs-x86_64
7. Treiber bauen

# make

8. Treiber installieren
# make install

9. neu starten
# shutdown -r now

10. kontrollieren, ob der dvb-Zweig vorhanden ist - Ausgabe muss adapter0...x sein, je nachdem, wieviele DVB-Geräte vorhanden sind
$ ls /dev/dvb/

11. fertig

Cisco IP-Telefone für zu Hause

Cisco IP-Telefone für zu Hause

Übersicht

Mit der Umstellung von klassischer auf IP-Telefonie stellt sich ja oft die Frage nach der passenden Hardware. Klar gibt es solche Adapter, damit das alte Analog-Telefon weiterverwendet werden kann. Aber schöner wäre es doch, gerade ein "richtiges" IP-Telefon zu haben, also eines mit Netzwerk-Anschluss. In der Zwischenzeit gibt es ja eine ganze Menge native IP-Telefone für Enduser. Vor einigen Jahren war das aber nicht so und so musste man Business-Telefone umbiegen, um auch daheim direkt IP-fähige Telefone zu haben.
In der Zwischenzeit habe ich mit einigen Cisco IP-Telefonen zu tun gehabt. Diese Erfahrungen möchte ich Euch nicht vorenthalten. Oft bekommt man diese Geräte sehr günstig bei Ebay oder Ricardo. Abgesehen davon sind sie auch robust und als Heimtelefon daher gut geeignet.

Grundlagen

Konfiguration

 Bei einigen Geräten kann die Konfiguration über das Display vorgenommen werden. Bei den meisten jedoch erfolgt die Konfiguration über ein Text- oder XML-File, das sich das Telefon von einem TFTP-Server holt.
Ein TFTP-Server ist also zumindest für die Konfiguration und Up-/Downgrade erforderlich. Einmal konfiguriert brauchen die Geräte den TFTP-Server nicht mehr.

Firmware

Ursprünglich verwendete Cisco für seine Telefonie das SCCP-Protokoll (Skinny Call Control Protocol). Skinny ist Cisco-proprietär, kann aber in der Zwischenzeit auch auf Nicht-Cisco Servern (z.B. Asterisk) eingesetzt werden. Vor etwa zehn Jahren begann Cisco auch SIP zu unterstützen. Oft kamen für die Geräte dann zwei verschiedene Firmware-Versionen zum Einsatz: SCCP oder SIP. Da insbesondere für ältere Hardware die Firmware nicht frei heruntergeladen werden kann, kann es mitunter schwierig sein, ein mit SCCP installiertes Telefon auf SIP umzukonfigurieren. Meist findet man jedoch die gewünschte Firmware auf dem Internet. Einfach nach dem Dateinamen der Firmware suchen.
Für neuere Telefone kann die Firmware mit einem kostenlosen Cisco-Account heruntergeladen werden. 

Power-over-Ethernet (PoE)

Ältere Cisco-Telefone verwenden ein proprietäres PoE, das mit Standard PoE-Switches nicht funktioniert. Die Speisespannung der Telefone beträgt 48 Volt - man kann sich jedoch sehr einfach ein Adapterkabel basteln, damit die Telefone trotzdem an einem Standard PoE-Switch betrieben (und gespeist) werden können.
Ansonsten verwendet man einfach ein 48V-Netzteil mit 5mm Koax-Stecker.

CP-7940G

CP-7912G

CP-7911G

CP-7945G

 


Samstag, 2. Dezember 2017

Guudgo GD-SC03 IP-Kamera

Übersicht

Diese IP-Kamera gibt es für etwa CHF 25 in China (z.B. bei Banggood). Es existieren diverse andere "Brandings" (z.B. M.Way).
Beworben wird diese Kamera als IP-Cam was die Vermutung zulässt, sie lasse sich über eine Web-Oberfläche steuern - das ist leider nicht der Fall! Out-of-the-box lässt sich diese Kamera nur über eine App steuern und ansehen. Die App erfordert im übrigen eine Registrierung und funktioniert erst, nachdem man online ist und sich eingeloggt hat.
Es ist also nicht eine IP-Cam im eigentlichen Sinn sondern ein Cloud-Device, dass nur mit einem dazugehörigen Cloud-Dienst funktional ist. Wenn man also auf der Suche nach einer typischen IP-Cam ist, die out-of-the-box funktionieren sollte, dann Hände weg!!! 
Wenn man jedoch hacken mag, lässt sich einiges machen damit.
Achtung: Zieh' Dir etwas an oder stell' die Kamera irgendwo auf, wo es nichts zu sehen gibt, bevor Du sie ans Internet anschliesst. Die Kamera verbindet sich nämlich sofort mit Icloseli/EyeCloud.

Der leichte Hack

Je nach Firmware-Stand (3.0.6.xxx, 3.1.0.xxx 3.1.1.xxx oder ähnlich) sind unterschiedliche Ports offen. Bei mir waren es 23, 80, 554, 7103, 8001. Ein Aufruf der IP im Browser brachte nur eine Fehlermeldung. Das Video der Kamera konnte jedoch mit VLC über RTSP angesehen werden.
Das ist ja schon einmal ein Erfolg. Nur wäre es angesichts der PTZ-Funktion noch hilfreich, wenn man die Kamera auch steuern könnte.
Dazu muss eine ONVIF-fähige Firmware installiert werden:

  1. Firmware von hier herunterladen
  2. entpacken
  3. auf eine vfat/FAT32 formatierte Micro-SD Karte kopieren
  4. SD-Karte in Kamera stecken
  5. Kamera neu starten
  6. nach etwa 2min sagt eine Stimme aus der Kamera "Update successful"
  7. SD-Karte aus der Kamera rausnehmen
  8. Kamera neu starten
  9. fertig
Nun kann die Kamera mit beliebiger ONVIF-Software (z.B. TinyCam App für Android) gesteuert werden. 

Einloggen per telnet geht ebenfalls:
User: root PW: cxlinux
Damit ist die Kamera schon mal mehr Wert, als angekettet an einen nebulösen Cloud-Dienst.

Der harte Hack

Der User ant-thomas hat hier ein Git-Repo, wo er seine Erfahrung mit dieser Kamera dokumentiert. Unter anderem hat er dort auch Fotos vom Innenleben, hat ein JTAG installiert und einiges über die Kamera herausgefunden. Vielen Dank an dieser Stelle für alle seine Inputs (u.a. das Root-PW für den telnet-Zugang). 
Thomas hat auch ein Script geschrieben, mit dem die Cloud-Verbindung der Kamera gekappt wird und ein SSH-Zugang über dropbear ermöglicht wird. 

So geht's:
  1. Script von hier herunterladen
  2. Auf eine vfat/FAT32 formatiere Micro-SD Karte entpacken
  3. Kamera ausschalten
  4. SD-Karte einstecken
  5. Kamera einschalten
  6. /etc/hosts wird modifiziert, die Cloud-Aufrufe auf den localhost umgeleitet
  7. nun kann über SSH eingeloggt werden (User: root PW: root)
  8. die SD-Karte muss in der Kamera verbleiben, Thomas arbeitet daran, den Hack persistent zu machen
Somit kann der Kamera sogar Internet-Zugriff gewährt werden...

Fazit

Die Guudgo GD-SC03 verdient die Bezeichnung "IP-Kamera" nur bedingt. Out-of-the-box lässt sich die Kamera nur mit Internet-Verbindung und der offiziellen App steuern und anschauen. Diese Cloud-Funktion ist offenbar auch zeitlich beschränkt (man liest etwas von 15 Tagen). Die Bildqualität ist ok, die Tonqualität blechern aber für den Einsatz genügend.
Vermutlich wird die Kamera deshalb so günstig verkauft, um damit Kunden für den kostenpflichtigen Cloud-Dienst zu ködern.



 

Freitag, 13. Februar 2015

Windows 3.1 mit Virtualbox 5

Windows 3.1 mit MS-DOS 6.22 auf Virtualbox 5

Übersicht


Kürzlich bin ich auf einer alten Harddisk über ein Windows 3.1 Image für Virtualbox gestolpert. Da ich gerade ein bisschen in Nostalgie-Laune war, startete ich es und begann ein bisschen damit zu spielen. Schnell wurde mit wieder bewusst, was arbeiten unter MS-DOS 6 und Windows 3.1 bedeutete: kein Netzwerk, Sound, CD-ROM (zumindest nicht ohne weitere Anstrengung), kein USB. Also alleine Daten Ein- und Ausgabe wird so zum Experiment.
Ich habe mich dann entschlossen, eine Schritt-für-Schritt Anleitung zu machen, was man benötigt um Windows 3.1 unter Virtualbox zum laufen zu bringen.

Floppy-Images

 Windows 3.1 und MS-DOS 6.22 wurden (zumindest so viel ich weiss) nur über Floppy-Disks ausgeliefert. Will man nun MS-DOS auf Virtualbox installieren braucht man entweder einen Rechner mit Floppy-Laufwerk oder aber Images der Installations-Disketten.
Images von Disketten erstellt man unter Linux mit folgendem Befehl:
# dd if=/dev/fd0 of=floppy.img bs=512
 Wobei im Beispiel die Bezeichnung für das Floppy-Laufwerk fd0 ist - das kann auf anderen Distributionen anders sein. Das ergibt dann eine Image-Datei, die man im Virtualbox einbinden kann.

Virtualbox VM erzeugen und MS-DOS 6.22 installieren

Nun wird in Virtualbox die VM erzeugt. Ist eigentlich selbsterklärend. Als OS Windows und im Untermenü Windows 3.1 auswählen. Sonst habe ich folgende Eckdaten:
  • RAM 64MB (32 würden auch völlig genügen)
  • Harddisk 2GB (siehe Bemerkung über FAT16)
  • Audio "Sound Blaster 16" (ich bin halt ein Nostalgiker)
  • Netzwerk "PCNet-PCI II"
  • Seriell "nicht aktiviert" (habe gerade keine Geräte dafür)
  • USB "nicht aktiviert" (nicht unterstützt)
 Nun die erste MS-DOS Installations-Diskette einbinden, VM starten und MS-DOS installieren. Während der Installation müssen die Floppys gewechselt werden. Einfach in der Menüleiste auf [Geräte] klicken und die weiteren Images auswählen.

Bemerkungen:

  • MS-DOS hat kann nur FAT-16 - demzufolge können maximal ca. 2GB grosse Partitionen verwaltet werden - und selbst das nur zu Clustern mit 32KByte (Cluster = Schnitze, in die der Datenbereich aufgeteilt wird. Somit braucht eine Datei von z.B. 2KB auf der Harddisk aber effektiv 32KByte, weil nur ganze Schnitze zugeordnet werden können)
  • Diesem Problem kann man gegegnen, in dem man mehrere Partitionen macht. Einfach im ersten Screen (siehe unten) die Installation abbrechen mit F3 und dann mit dem Befehl "fdisk" zwei oder mehr Partitionen machen. Dabei gibt es eine primäre Partition mit dem ersten Laufwerksbuchstaben (C:) und eine erweiterte Partition mit allen weiteren (D: E: F:.....). Möchte man also die Harddisk vierteln, müsste man 25% in die primäre und 75% in die erweiterte Partition verteilen. Anschliessen die erweiterte Partition in drei Teile unterteilen.



Anschliessend noch neu starten und nach ein paar Sekunden ist das frisch installierte MS-DOS schon gestartet.

CD-Laufwerk installieren

Möchte man nun Windows 3.1 installieren, könnte man entweder wie für MS-DOS Floppy-Images erzeugen (7 Stück, geht noch). Schneller geht es aber, wenn man unter MS-DOS CD-ROM Treiber installiert und anschliessend ein ISO-Image erzeugt, dass alles drin hat, was man möchte.
Um ein CD-Laufwerk unter MS-DOS zu betreiben, braucht man einerseits die MSCDEX.EXE (MS CD Extension) und einen Treiber für das Laufwerk. Grundsätzlich funktionieren alle IDE-CD-Treiber mit allen IDE-CD-Laufwerken. Ich habe dazu ein Image von einem CD-Laufwerk, dass ich mal hatte. Einfach diesen Treiber installieren, neu starten, und schon ist das CD-Laufwerk zugänglich.
Um nun Daten von der lokalen Harddisk in eine Image-Datei zu packen, nimmt man entweder ein CD-Brennprogramm (K3B, Nero...) und erzeugt ein ISO. Unter Linux auf der Kommandozeile genügt folgender Befehl:
$ genisoimage -o dateiname.iso ordner
Wobei der Dateiname der Name des ISO-Files ist, das erstellt wird und der Ordner der Ordner in dem sich die Dateien befinden, die man ins ISO packen möchte. "genisoimage" befindet sich unter Arch Linux im Paket "cdrkit", unter Debian im gleichnamigen Paket "genisoimage".
Ein so erstelltes ISO kann nun unter Virtualbox eingebunden werden und im MS-DOS über den Laufwerksbuchstaben (z.B. D:) abgerufen werden.

Edit: Funktioniert auch mit mkisofs - zumindest unter Arch Linux 

Datenaustausch mit Host über Floppy

Der Datenaustausch mit dem Host kann unter Linux auch über Floppy erfolgen.
  1. Leeres Floppy-Image erstellen
  2. # dd bs=512 count=2880 if=/dev/urandom of=floppy.img
  3. Floppy-Image formatieren
  4. # mkfs.msdos floppy.img
  5. Floppy-Image mounten 
  6. # mount -o loop floppy.img /mnt
  7. nun können Daten auf dem Host nach /mnt oder auf dem Gast nach A:\ kopiert werden
  8. um die Ansicht auf der "anderen Seite" zu aktualisieren, muss das Image neu geladen werden - auf Host-Seite umount/mount auf Gastseite unter [Geräte] [Medium entfernen] und wieder einbinden
Bemerkung:
  • mit 1.44MB Diskgrösse geht's in beide Richtungen, mit 2.88MB (oder vielleicht sogar noch grösser?) nur von Host nach Gast. 

 Soundkarte

Für den Sound Blaster 16 einfach den Treiber von hier herunterladen, die EXE aufs Gast-System bringen und installieren. Die EXE-Datei (sbbasic.exe) ist ein Archiv, das den Installer und Treiber für Sound Blaster 16 beinhaltet. Allenfalls diesen erst nach Windows installieren, da sonst Dateien fehlen und man den Treiber noch einmal installieren muss.

Windows 3.1 installieren

Windows installieren ist eigentlich selbsterklärend. Im Ordner der 1. Disk setup.exe ausführen und sich durchklicken. Am Ende erwartet einem ein altbekannter Windows 3.1 Desktop.
Startet man die VM auf, bleibt man jedoch im MS-DOS hängen. Um Windows zu starten gibt man einfach win ein und schon startet Windows.



Grafik

Es gibt einen universellen Grafiktreiber für Win9x, VBEMP 9x, der unter Virtualbox verwendet werden kann. Bei mir funktioniert er recht gut, ich musste allerdings bei der Installation ein paar Mal neu starten, die VM blieb mit schwarzem Bildschirm hängen, Hard-Reset (-> Tastatur > sende Ctrl-Alt-Del) war nötig. Damit kann man 32Bit Farben und 1024x768 fahren. 32-Bit Farben sei für Virtualbox am Besten (Quelle weiss ich gerade nicht, irgendwo im Support-Forum von Virtualbox gelesen). Laut der Homepage des Projekts sind auch andere und höhere Auflösungen möglich. Den Treiber gibts hier.

 

ToDo

  • Netzwerk
  • MIDI (liegt aber vielleicht an ALSA)


Fazit

Eine sehr nette Möglichkeit, sich ein bisschen Nostalgie auf den Rechner zu holen. Läuft eigentlich ziemlich flott und bis jetzt hatte ich keine Abstürze. Mal schauen, was ich noch so für Software finde... Ein Word 6.0a müsste ja schon noch sein, oder??


Samstag, 27. Dezember 2014

Xymon-Server auf Debian 7 Wheezy installieren

Hoi zämä

Da ich mittlerweile fast alle Sheevas auf Wheezy aktualisiert habe, wollte ich sie wieder einmal durchgängig überwachen. Dazu bietet sich unter Linux das Tool "xymon" (auch bekannt unter dem Namen "hobbit") bestens an. Leider habe ich bei der Installation von Grund auf meistens ein bisschen länger, weil die verfügbaren Anleitungen irgendwie meist nicht ganz 100% stimmen. Man schafft es, wäre aber schneller, wenn man eine Geradeaus-Anleitung hätte.
Besten Dank an dieser Stelle an Henrik Storner für die tolle Software.

Ausgangslage ist ein Globalscale Sheevaplug mit Debian 7 Wheezy (armel Zweig). Ziemlich sicher funktioniert es aber auch mit so ziemlich allen anderen Debian-Zweigen (amd64 etc.).

1. Wir installieren die Abhängigkeiten:
# apt-get install apache2 rrdtool librrd-dev libpcre3-dev libssl-dev ldap-utils libldap2-dev fping
2. Wir installieren Xymon-Server, Client und die Erweiterungen
# apt-get install xymon hobbit-tools
3. Wir aktivieren mod_rewrite im Apache
$ cd /etc/apache2/mods-enabled/ # ln -s ../mods-available/rewrite.load .
4. Wir aktivieren Xymon im Apache
$ cd /etc/apache2/sites-enabled
# ln -s ../sites-available/hobbit .

5. Wir gewähren uns Zugriff
$ cd /etc/apache2/sites-enabled
# vi hobbit
Dort ändern wir sämtliche Zeilen mit "Allow from localhost..." in "Allow from all". Bitte beachtet, dass dadurch jeder, der auf den Webserver kommt, auch die Seite betrachten kann. Allenfalls einschränken!!

6. Wir starten Apache neu
# /etc/init.d/apache2 reload

Jetzt sollte Xymon erreichbar sein und den Status des Servers anzeigen.

Die weitere Konfiguration findet im Ordner /etc/hobbit/ statt. Am interessantesten ist die Datei "bb-hosts", darin werden Tests für die einzelnen Hosts und auch das Aussehen der Xymon-Seite konfiguriert.Man kann dabei Gruppen und Sub-Gruppen erstellen.


127.0.0.1       debian-armel1.br-online.ch      # bbd http://debian-armel1.br-online.ch/
Das ist eine Zeile Konfiguration. Zuerst steht die IP des Hosts, dann der Hostname (Wichtig!!), dann der # und dahinter mit einem Leerzeichen die Tests (z.B. bbd apt). Wenn man den Hostnamen nicht oder falsch angibt, funktionieren einzelne Tests nicht. Ebenfalls muss aus dem Client der Xymon-Client installiert sein (apt-get install xymon-client) und im Client die IP der(s) Server(s) eingetragen sein, die ihn abfragen dürfen.
Tests können auch für Geräte ohne installierten Client erfolgen, sind dann halt einfach darauf limitiert, welche Information das Gerät ohne Eingriff preisgibt (z.B. ping).

Erweiterungen (Scripts) gehören in den Ordner /usr/lib/hobbit/server/ext/
Es gibt auf dem Netz eine Reihe Erweiterungen, um alles mögliche zu monitoren. Die Suchmaschine Deines Vertrauens berät Dich gerne! Ansonsten findest Du eine ganze Reihe Erweiterungen hier.

Wer mehr über Xymon als solches wissen will, findet interessante Infos bei Ubuntu-Users, im Wikipedia oder auch auf der offiziellen Seite. Letztere hat insbesondere auch einige Screenshots und Config-Tipps, von denen man sich gut inspirieren lassen kann.

Viel Spass beim Monitoren! Mein Ziel ist meine Heizung zu Überwachen. Ich schreibe Euch dann, wenn es geklappt hat!!

EDIT 05.12.2015

Heute habe ich es unter Debian 8 "Jessie" versucht. Das Tool heisst jetzt ziemlich durchgängig "Xymon" und auch die Config-Feils haben jetzt keine antiken hobbit... oder bb... Namen.
Standardmässig ist jedoch der Zugriff nur localhost gewährt und wenn man nicht gerade ein Apache-Spezi ist, dann sucht man ein bisschen. Die Variante wie oben (Allow from all) funktioniert nicht mehr. Ansonsten muss man unter /etc/apache2/conf-enabled/ die Datei xymon.conf editieren: jeweils unter "hier
.




Montag, 31. Dezember 2012

Ladycomp Akku wechseln

Nachdem ich auf dem Netz keine Anleitung gefunden habe, um beim Ladycomp (Verhütungscomputer von Valley Electronics aus Deutschland) den Akku zu wechseln, schreibe ich hier eine.

Zuerst muss man das Gehäuse aufbringen. Valley hat es einem da so schwer wie möglich gemacht: die erste Schraube ist noch leicht zu finden- befindet sich unter dem Siegel. Um an die zwei weiteren zu kommen, müssen die zwei oberen Gummifüsse entfernt werden (am besten mit einem Cutter). Dann kann der Deckel abgeschraubt werden.
Wegen der Klinken-Buchsen auf der Rückseite, muss die Platine nach unten ausgefädelt werden.



Dann den Akku demontieren (auslöten oder abknipsen) und den neuen einlöten. Der Akku ist ein Varta 3/V 150 H L S PCBD und hat die Varta-Bestellnummer 55615403059. Am besten sucht Ihr nach dieser. Ich habe in der Bucht einen gefunden für knapp 15 englische Pfund inkl. Versand, also etwa €18 oder CHF 22. 
Die Knopfzelle für den Speicher ist eine relativ verbreitete CR2032. Diese tauscht man natürlich sinnvollerweise auch gerade aus - ich würde jedoch vorher das Netzteil anschliessen, sonst könnte es eine unangenehme Überraschung absetzen...

Anschliessend den neuen Akku einlöten, Platine einhängen, Flachbandkabel vom Decken anschliessen nicht vergessen, Deckel schliessen, zuschrauben. Die Gummifüsse am besten mit Araldit oder ähnlichem wieder ankleben.

Sonntag, 28. August 2011

Sheevaplug: Debian im internen Flash installieren

Hoi zäme

Hier habe ich eine kleine Anleitung zusammengestellt, wie man Debian Squeeze mit Debian-Kernel auf den Sheevaplug in den internen Flash installieren kann. Der Vorteil vom Debian-Kernel: Sicherheits-Updates kommen automatisch über den Paket-Manager und müssen nicht von Hand gemacht werden.

Ich habe dabei hauptsächlich zwei Anleitungen zusammengetragen:

Anleitung Martin Michlmayr
Anleitung Plugcomputer.org-Wiki

Herzlichen Dank an Martin Michlmayr, Matthias Blaicher und die Jungs vom Plugcomputer-Wiki.

Die Anleitung geht von folgendender Umgebung aus:

- Sheevaplug per USB an einen PC angeschlossen
- Terminal-Verbindung auf den Sheeva (z.B. mit PuTTY)
- TFTP-Server zum Flashen (geht auch mit einem USB-Stick)
- eine SD-Speicherkarte zur Installation (darauf wird das System installiert und anschliessen auf den internen Flash gespielt)

Auf geht's...

1. U-Boot aktualisieren

a) Das U-Boot-Binary von hier auf den TFTP-Server legen.
b) Auf dem Sheeva (per Terminal):
$ setenv serverip 172.25.1.1 # TFTP server-IP
$ setenv ipaddr 172.25.1.200
$ tftpboot 0x0800000 u-boot.kwb
$ nand erase 0x0 0x80000
$ nand write 0x0800000 0x0 0x80000
$ reset # der Sheeva startet neu, Konsole bleibt aber bestehen
$ setenv ethaddr 00:11:22:AA:BB:CC # MAC-Adresse eingeben (steht auf der Unterseite vom Sheeva)
$ saveenv
$ reset
/Edit 06.01.2018: U-Boot wird grösser.  Beim Befehl "nand erase" und "nand write" unbedingt bis 0x80000 löschen/beschreiben. Sonst *bricked*...


2. Kernel installieren

a) Kernel Images (uImage und uInitrd) für den Sheeva von hier herunterladen und auf den TFTP-Server legen
b) Auf dem Sheeva (per Terminal):
$ setenv serverip 172.25.1.1 # TFTP server-IP
$ setenv ipaddr 172.25.1.200
$ tftpboot 0x2000000 uImage
$ iminfo
$ nand erase 0x100000 0x400000
$ nand write 0x2000000 0x100000 0x400000
$ reset
$ setenv mainlineLinux yes
$ setenv arcNumber 2097
$ saveenv
$ reset


3. Debian Installer

a) Auf dem Sheeva (per Terminal):
$ setenv serverip 172.25.1.1 # TFTP server-IP
$ setenv ipaddr 172.25.1.200
$ mmc init # bin nicht sicher, ob's das wirklich braucht
$ tftpboot 0x0400000 uImage
$ tftpboot 0x0800000 uInitrd
$ setenv bootargs console=ttyS0,115200 base-installer/initramfs-tools/driver-policy=most
$ bootm 0x0400000 0x0800000

b) Der Installer startet - Debian wie gewohnt installieren

4. Nach der Installation

a) Am Ende der Installation startet der Sheeva neu. Im U-Boot automatischen Bootvorgang unterbrechen (Taste drücken, wenn er von 3 herunterzählt) und folgendes eingeben:
$ mmc init
$ ext2load mmc 0:1 0x400000 /uImage
$ ext2load mmc 0:1 0x800000 /uInitrd
$ bootm 0x400000 0x800000


b) Das Debian bootet ab SD-Karte, als Root einloggen und folgende Befehle ausführen:
# apt-get update
# apt-get install mtd-utils
# ln -fs /proc/mounts /etc/mtab


5. interner Flash vorbereiten

a)
# ubiformat /dev/mtd2 -s 512
# ubiattach /dev/ubi_ctrl -m 2
# ubimkvol /dev/ubi0 -N rootfs -m
# mount -t ubifs ubi0:rootfs /mnt


6. SD-Karte auf Flash kopieren und anpassen

a)
# mkdir /tmp/rootfs
# mount -o bind / /tmp/rootfs/
# cd /tmp/rootfs
# sync
# cp -ar . /mnt/ #dauert ein Weilchen...

b) Flash fstab anpassen:
# vi /mnt/etc/fstab

Sämtliche Einträge die mit "UID" beginnen auskommentieren (# vor die Zeile setzen). Dann zwei zusätzliche Zeilen einfügen:
/dev/root / ubifs defaults,noatime,rw 0 0
tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0

c) neu starten
# shutdown -r now


7. U-Boot aktualisieren

a) Im U-Boot automatischen Bootvorgang unterbrechen (Taste drücken, wenn er von 3 herunterzählt) und folgendes eingeben:
$ setenv bootargs 'console=ttyS0,115200 ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs'
$ saveenv
$ reset

b) Der Sheeva sollte nun vom internen Flash booten (je nach SD-Karte deutlicher Geschwindigkeitszuwachs bemerkbar.

8. Kernel-Update Script erstellen

a) Nach einem Kernel-Update (erkennbar daran, dass ein apt-get upgrade/dist-upgrade ein neues "linux-image-..." installiert) wird der Kernel leider (noch) nicht automatisch ans richtige Ort in den Flash-Speicher geschrieben. Wir können uns aber abhelfen, in dem wir ein kleiner Scriptli schreiben und das nach einem Kernel-Update ausführen.
b) Einloggen.
# cd /boot

c) Eine Datei mit folgendem Inhalt erstellen und z.B. kernel_update.sh benennen:
EDIT: "mkimage...." hinzugefügt um uImage zu erstellen
#!/bin/bash
#
#Script zum automatischen Kernel-Update im NAND-Speicher
#
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Debian_Kernel -d vmlinuz uImage
flash_eraseall /dev/mtd1
nandwrite -p /dev/mtd1 /boot/uImage

d) Datei ausführbar machen
# chmod +x kernel_update.sh

e) Wird nun ein neuer Kernel installiert einfach das Scriptli ausführen:
# ./boot/kernel_update.sh
und schon wird der aktualisierte Kernel in den Flash geschrieben und beim nächsten Bootvorgang verwendet.
f) feddisch...

EDIT 12.11.2013
9. Update auf Wheezy

Da der NAND-Speicher im Sheeva nur 500MB gross ist, hatte ich das Problem, dass ich das Update von Squeeze auf Wheezy nicht per dist-upgrade durchführen konnte. Ich musste den Sheeva quasi mit Wheezy neu installieren. Es funkionierte aber nicht, einfach die Anleitung von oben abzuarbeiten - vermutlich wäre es gegangen aber ich hatte mir irgendwo die Env-Parameter im Uboot überschrieben. Und da ich keinen anderen Sheeva zur Hand hatte, musste ich bisschen üben. Resultat: ich kann jetzt direkt vom NAND (ubifs) booten. Aber schön der Reihe nach:

a) Daten vom Sheeva sicher (falls vorhanden)
b) Debian Installer uImage und uInitrd von hier herunterladen
c) Installer booten und Debian installieren (siehe oben, Punkt 2 - 7 ausführen)
d) Am Ende kontrollieren, ob im Ordner /boot die Dateien uImage und uInitrd (evtl. neben anderen oder als Symlink auf eine andere Datei) existieren -- falls nicht von der SD-Karte explizit kopieren
e) Im U-Boot folgende Umgebungs-Variablen definieren:

#setenv mtdids nand0=orion_nand
#setenv mtdparts mtdparts=orion_nand:0xa0000@0x0(u-boot),0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs)

#setenv bootargs_ubi 'console=ttyS0,115200 ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs'
#setenv bootcmd_ubi 'ubi part nand0,2; ubifsmount rootfs; ubifsload 0x1100000 /boot/uInitrd; ubifsload 0x800000 /boot/uImage'
#setenv bootcmd 'setenv bootargs $(bootargs_ubi); run bootcmd_ubi; bootm 0x00800000 0x01100000'

#saveenv
Besten Dank für diesen Input an Matthias Blaicher!

Danach braucht man im Prinzip dann auch das Kernel-Update Script aus Punkt 8 nicht mehr, weil der Kernel aus dem Dateisystem und nicht aus dem Speicher gelesen wird. 

/EDIT
Edit 10.05.2015
Debian hat eine Version herausgebracht - 8.0 Jessie. Dass es Euch nicht geht wie mir, habe ich den obigen Link auf "oldstable" aktualisiert. Sobald ich einen Sheeva mit Jessie am Laufen habe, werde ich wieder ein Anleitung posten. 

ACHTUNG: ich habe den aktuellen Jessie-Installer für den Sheeva-Plug nicht zum Laufen gebracht - er hängt mit einer mir seltsam anmutenden Fehlermeldung. Da ich gerade im Ausland bin, nur Remote-Zugriff habe und nicht immer eine Fee damit bemühen möchte, meine Sheevas zu Power-Resetten, werde ich mich dem im Juni genauer annehmen, wenn ich wieder zu Hause bin.
/EDIT  

Edit 30.08.2014
10. Probleme nach Stromausfall

Leider passiert es bei mir trotz USV, dass ich nach Stromausfall mit einem korrupten UBIFS dastehe. Man merkt das ganz einfach daran, dass der Sheeva im U-Boot hängenbleibt mit einem Dutzend UBIFS-Fehlermeldungen, unter anderem:
UBIFS: recovery needed 
Auf den ersten Blick ist da guter Rat teuer, dabei ist die "Reparatur" ganz einfach:
  1. Debian Installer booten (von USB oder TFTP oder... siehe oben)
  2. Installer verlassen und in eine Shell wechseln
  3. UBI-Partition mounten und wieder unmounten:
  4. #mount -t ubifs ubi0:rootfs /tmp
    #umount /tmp
  5.  Anschliessend Sheeva neu starten
Besten Dank für diesen Input an EWTUC im Forum hier

11. Speicher "erweitern"

Die 500MB NAND-Flash werden schnell knapp, wenn man etwas mehr, als das Debian-Grundsystem installieren möchte (z.B. Asterisk....). Um etwas Platz zu schaffen habe ich /usr auf eine SD-Karte ausgelagert. Es muss nicht einmal eine Schnelle sein... So habe ich es gemacht:
  1. Karte im Sheeva eingesteckt und formartiert mit ext2
  2. Karte gemountet nach /mnt
  3. /usr nach /mnt kopiert (#cp -ar /usr/* /mnt/)
  4. /usr geleert (#cd /usr #rm -r *)
  5. /etc/fstab erweitert mit:  /dev/mmcblk0p1  /usr            ext2    defaults        1       1
  6. neu gestartet
ACHTUNG!!! Den Befehl im Punkt 4 UNBEDINGT nur im Ordner /usr ausführen. Sonst sind u.U. alle Daten weg!! Besser zweimal schauen!! 
/EDIT

Bemerkung: Diese Anleitung stellt eine Zusammenfassung der oben genannten ausführlichen Anleitungen dar. Besten Dank an die Autoren dieser Anleitungen. Ich bin mir bewusst, dass die Lösung mit dem Update-Script eine Quick-and-Dirty Lösung ist. Da ich aber die Updates immer von Hand mache, ist diese Lösung für mich so okay.

Herzliche Grüsse

dä Beni