Difference between revisions of "Sheevaplug"

From C4 Wiki
Jump to: navigation, search
m (Reverted edits by Oxudocopaj (talk) to last revision by 91.64.224.165)
 
Line 1: Line 1:
----
 
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;">
 
----
 
=[http://edojalys.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=
 
----
 
=[http://edojalys.co.cc CLICK HERE]=
 
----
 
</div>
 
 
Der [http://en.wikipedia.org/wiki/SheevaPlug SheevaPlug] einer der ersten "Steckdosen-Computer" die auf dem Markt verfügbar sind. Das Herzstück des SheevaPlug ist der 1,2 GHz Marvell Kirkwood 6281 ARM Prozessor.
 
Der [http://en.wikipedia.org/wiki/SheevaPlug SheevaPlug] einer der ersten "Steckdosen-Computer" die auf dem Markt verfügbar sind. Das Herzstück des SheevaPlug ist der 1,2 GHz Marvell Kirkwood 6281 ARM Prozessor.
 
===General===
 
===General===
 
Der Default Benutzer um sich auf dem SheevaPlug einzuloggen lautet:
 
Der Default Benutzer um sich auf dem SheevaPlug einzuloggen lautet:
&lt;pre>
+
<pre>
 
Benutzer: root
 
Benutzer: root
 
Passwort: nosoup4u
 
Passwort: nosoup4u
&lt;/pre>
+
</pre>
 
==Debugging Schnittstellen==
 
==Debugging Schnittstellen==
 
===FTDI unter Linux===
 
===FTDI unter Linux===
 
*Um auf die serielle Konsole des Plugs zuzugreifen, braucht man ein USB Kabel mit B-Mini Stecker.
 
*Um auf die serielle Konsole des Plugs zuzugreifen, braucht man ein USB Kabel mit B-Mini Stecker.
 
*Damit der serielle Zugriff funktioniert werden die noetigen Kernel Treiber entweder einkompiliert oder als Module benoetigt.
 
*Damit der serielle Zugriff funktioniert werden die noetigen Kernel Treiber entweder einkompiliert oder als Module benoetigt.
&lt;pre>
+
<pre>
 
Device Drivers --->
 
Device Drivers --->
   &lt;*> USB support  --->
+
   <*> USB support  --->
     &lt;*> USB Serial Converter support  --->
+
     <*> USB Serial Converter support  --->
       &lt;*> USB FTDI Single Port Serial Driver  
+
       <*> USB FTDI Single Port Serial Driver  
&lt;/pre>
+
</pre>
  
 
====UDEV Regeln====
 
====UDEV Regeln====
Line 31: Line 23:
 
Dann muss man noch einige udev-Regeln hinzufügen.
 
Dann muss man noch einige udev-Regeln hinzufügen.
  
{{File|/etc/udev/rules.d/90-sheevaplug.rules|&lt;pre>
+
{{File|/etc/udev/rules.d/90-sheevaplug.rules|<pre>
 
# load module
 
# load module
 
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_interface", \
 
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_interface", \
Line 45: Line 37:
 
# set permissions so users can access the devices
 
# set permissions so users can access the devices
 
ATTRS{idVendor}=="9e88", ATTRS{idProduct}=="9e8f", MODE="0660", GROUP="plugdev"
 
ATTRS{idVendor}=="9e88", ATTRS{idProduct}=="9e8f", MODE="0660", GROUP="plugdev"
&lt;/pre>}}
+
</pre>}}
  
 
Dann einmal ausstöpseln, wieder einstecken, das Modul sollte geladen werden.
 
Dann einmal ausstöpseln, wieder einstecken, das Modul sollte geladen werden.
Line 54: Line 46:
 
====Modul manuell laden====
 
====Modul manuell laden====
 
Wenn man das Modul manuell laden will, kann man modprobe die VID und PID als Parameter mitgeben:
 
Wenn man das Modul manuell laden will, kann man modprobe die VID und PID als Parameter mitgeben:
&lt;pre>modprobe ftdi_sio vendor=0x9e88 product=0x9e8f&lt;/pre>
+
<pre>modprobe ftdi_sio vendor=0x9e88 product=0x9e8f</pre>
  
 
===FTDI unter Mac OS X===
 
===FTDI unter Mac OS X===
Line 61: Line 53:
 
* Folgt der Anleitung zur Installation des Treibers
 
* Folgt der Anleitung zur Installation des Treibers
 
*Nach dem Reboot editiert folgende Datei mit root-Rechten   
 
*Nach dem Reboot editiert folgende Datei mit root-Rechten   
&lt;pre>
+
<pre>
 
sudo vim /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist
 
sudo vim /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist
&lt;/pre>
+
</pre>
 
Kopiert nun folgenden zusätzlichen Inhalt hinein
 
Kopiert nun folgenden zusätzlichen Inhalt hinein
&lt;pre>
+
<pre>
&lt;key>SheevaPlug JTAGKey FT2232D A&lt;/key>
+
<key>SheevaPlug JTAGKey FT2232D A</key>
&lt;dict>
+
<dict>
&lt;key>CFBundleIdentifier&lt;/key>
+
<key>CFBundleIdentifier</key>
&lt;string>com.FTDI.driver.FTDIUSBSerialDriver&lt;/string>
+
<string>com.FTDI.driver.FTDIUSBSerialDriver</string>
&lt;key>IOClass&lt;/key>
+
<key>IOClass</key>
&lt;string>FTDIUSBSerialDriver&lt;/string>
+
<string>FTDIUSBSerialDriver</string>
&lt;key>IOProviderClass&lt;/key>
+
<key>IOProviderClass</key>
&lt;string>IOUSBInterface&lt;/string>
+
<string>IOUSBInterface</string>
&lt;key>bConfigurationValue&lt;/key>
+
<key>bConfigurationValue</key>
&lt;integer>1&lt;/integer>
+
<integer>1</integer>
        &lt;key>bInterfaceNumber&lt;/key>
+
        <key>bInterfaceNumber</key>
&lt;integer>0&lt;/integer>
+
<integer>0</integer>
&lt;key>idProduct&lt;/key>
+
<key>idProduct</key>
&lt;integer>40591&lt;/integer>
+
<integer>40591</integer>
&lt;key>idVendor&lt;/key>
+
<key>idVendor</key>
&lt;integer>40584&lt;/integer>
+
<integer>40584</integer>
&lt;/dict>
+
</dict>
&lt;key>SheevaPlug JTAGKey FT2232D B&lt;/key>
+
<key>SheevaPlug JTAGKey FT2232D B</key>
&lt;dict>
+
<dict>
&lt;key>CFBundleIdentifier&lt;/key>
+
<key>CFBundleIdentifier</key>
&lt;string>com.FTDI.driver.FTDIUSBSerialDriver&lt;/string>
+
<string>com.FTDI.driver.FTDIUSBSerialDriver</string>
&lt;key>IOClass&lt;/key>
+
<key>IOClass</key>
&lt;string>FTDIUSBSerialDriver&lt;/string>
+
<string>FTDIUSBSerialDriver</string>
&lt;key>IOProviderClass&lt;/key>
+
<key>IOProviderClass</key>
&lt;string>IOUSBInterface&lt;/string>
+
<string>IOUSBInterface</string>
&lt;key>bConfigurationValue&lt;/key>
+
<key>bConfigurationValue</key>
&lt;integer>1&lt;/integer>
+
<integer>1</integer>
&lt;key>bInterfaceNumber&lt;/key>
+
<key>bInterfaceNumber</key>
&lt;integer>1&lt;/integer>
+
<integer>1</integer>
&lt;key>idProduct&lt;/key>
+
<key>idProduct</key>
&lt;integer>40591&lt;/integer>
+
<integer>40591</integer>
&lt;key>idVendor&lt;/key>
+
<key>idVendor</key>
&lt;integer>40584&lt;/integer>
+
<integer>40584</integer>
&lt;/dict>
+
</dict>
&lt;/pre>
+
</pre>
 
[http://openplug.org/plugforum/index.php?topic=34.0 Quelle]
 
[http://openplug.org/plugforum/index.php?topic=34.0 Quelle]
 
* Reinitialisiert die Abhängikeiten mit dem folgendem Befehl
 
* Reinitialisiert die Abhängikeiten mit dem folgendem Befehl
&lt;pre>
+
<pre>
 
sudo touch /System/Library/Extensions
 
sudo touch /System/Library/Extensions
&lt;/pre>
+
</pre>
 
*Sollte dieses nicht funktionieren könnt Ihr auch das Modul neu Laden, dabei geht Ihr wie folgt vor
 
*Sollte dieses nicht funktionieren könnt Ihr auch das Modul neu Laden, dabei geht Ihr wie folgt vor
&lt;pre>
+
<pre>
 
sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext
 
sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext
&lt;/pre>
+
</pre>
 
sollte hier bei ein Fehler gelistet werden, einfach Ignorieren  
 
sollte hier bei ein Fehler gelistet werden, einfach Ignorieren  
&lt;pre>
+
<pre>
 
sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext
 
sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext
&lt;/pre>
+
</pre>
 
*Zum Schluss schließt den SheevaPlug an, nun sollte eigentlich alles funktionieren
 
*Zum Schluss schließt den SheevaPlug an, nun sollte eigentlich alles funktionieren
  
Line 125: Line 117:
  
 
Also ab in den Gerätemanager:
 
Also ab in den Gerätemanager:
&lt;pre>Start -> Systemsteuerung -> Geräte-Manager&lt;/pre>
+
<pre>Start -> Systemsteuerung -> Geräte-Manager</pre>
  
 
Nun sollten unter dem Menüpunkt "Andere" zwei Geräte aufgelistet sein, in deren Bezeichnung irgendetwas mit "sheevaplug" steht.
 
Nun sollten unter dem Menüpunkt "Andere" zwei Geräte aufgelistet sein, in deren Bezeichnung irgendetwas mit "sheevaplug" steht.
Line 134: Line 126:
 
===Verbindung aufbauen===
 
===Verbindung aufbauen===
 
====Minicom====
 
====Minicom====
&lt;pre>
+
<pre>
 
sudo port install minicom
 
sudo port install minicom
&lt;/pre>
+
</pre>
 
oder
 
oder
&lt;pre>
+
<pre>
 
sudo aptitude install minicom
 
sudo aptitude install minicom
&lt;/pre>
+
</pre>
 
oder was auch immer ihr so nutzt
 
oder was auch immer ihr so nutzt
  
 
Startet minicom wie folgt
 
Startet minicom wie folgt
&lt;pre>
+
<pre>
 
sudo minicom -s
 
sudo minicom -s
&lt;/pre>
+
</pre>
 
Der parameter -s wird benötigt um eine Konfigurationsdatei anzulegen.
 
Der parameter -s wird benötigt um eine Konfigurationsdatei anzulegen.
 
Im Anschluß passt noch unter dem Menü Punkt "Serial Port Setup" noch das "Serial Device" an.
 
Im Anschluß passt noch unter dem Menü Punkt "Serial Port Setup" noch das "Serial Device" an.
  
 
Minicom Config
 
Minicom Config
&lt;pre>
+
<pre>
 
     * Serial Device: /dev/ttyUSB1
 
     * Serial Device: /dev/ttyUSB1
 
     * Baudrate: 115200bps
 
     * Baudrate: 115200bps
Line 159: Line 151:
 
     * Hardware Flow Control: No
 
     * Hardware Flow Control: No
 
     * Software Flow Control: No
 
     * Software Flow Control: No
&lt;/pre>
+
</pre>
  
 
Die Konfiguration ist auch bekannt als 115200 8N1.
 
Die Konfiguration ist auch bekannt als 115200 8N1.
Line 167: Line 159:
  
 
Zum Einrichten muss unter "Connection -> Serial" folgendes eingestellt werden:
 
Zum Einrichten muss unter "Connection -> Serial" folgendes eingestellt werden:
&lt;pre>
+
<pre>
 
     * Serial line to connect to: *COM(X)*
 
     * Serial line to connect to: *COM(X)*
 
     * Speed (baud): 115200
 
     * Speed (baud): 115200
Line 174: Line 166:
 
     * Parity: None
 
     * Parity: None
 
     * Flow control: None
 
     * Flow control: None
&lt;/pre>
+
</pre>
  
 
Dannach kann über "Session" der "Connection type" auf Serial gestellt werden und über "Open" die Verbindung hergestellt werden.
 
Dannach kann über "Session" der "Connection type" auf Serial gestellt werden und über "Open" die Verbindung hergestellt werden.
  
 
====Screen====
 
====Screen====
&lt;pre>
+
<pre>
 
screen /dev/ttyUSB1 115200
 
screen /dev/ttyUSB1 115200
&lt;/pre>
+
</pre>
  
 
==Pimp my Sheevaplug==
 
==Pimp my Sheevaplug==
Line 187: Line 179:
 
We proudly present:
 
We proudly present:
  
Sheevaplug 1.3 Schematics: http://plugcomputer.org/index.php/us/resources/downloads?func=startdown&amp;id=56
+
Sheevaplug 1.3 Schematics: http://plugcomputer.org/index.php/us/resources/downloads?func=startdown&id=56
  
 
Eigentlich sollten alle Leute im Club bereits die 1.3er Version haben. Diese hat, wenn man sie öffnet, auf der Platine einen unbestückten eSata-Connector. Die Traces der 4 Datenleitungen sind auf dem PCB sichtbar und führen zu 4 unbestückten Pads. Laut den Schematics da oben sollen da 4 10nF Kondensatoren drauf. Die Biester sind arschklein, sollte aber machbar sein. Ich werde mal ein bischen nach nem passenden Connector und den Kondensatoren suchen und das ganze mal austesten. (Andy - Matschkeks)
 
Eigentlich sollten alle Leute im Club bereits die 1.3er Version haben. Diese hat, wenn man sie öffnet, auf der Platine einen unbestückten eSata-Connector. Die Traces der 4 Datenleitungen sind auf dem PCB sichtbar und führen zu 4 unbestückten Pads. Laut den Schematics da oben sollen da 4 10nF Kondensatoren drauf. Die Biester sind arschklein, sollte aber machbar sein. Ich werde mal ein bischen nach nem passenden Connector und den Kondensatoren suchen und das ganze mal austesten. (Andy - Matschkeks)
Line 195: Line 187:
 
====Teileliste====
 
====Teileliste====
 
Ich hab mal ne Teileliste geschraubt:
 
Ich hab mal ne Teileliste geschraubt:
&lt;pre>Spannungsversorgung SATA-Subsystem im Prozessor:
+
<pre>Spannungsversorgung SATA-Subsystem im Prozessor:
 
Siehe Schaltplan Seite 7 Quadranten H12 bis H14
 
Siehe Schaltplan Seite 7 Quadranten H12 bis H14
  
Line 212: Line 204:
 
1      10nF Kerko          4          SMD 0402      C164, C188-C190
 
1      10nF Kerko          4          SMD 0402      C164, C188-C190
 
2      eSata Buchse        1          Print        ESATA
 
2      eSata Buchse        1          Print        ESATA
         90° gewinkelt&lt;/pre>
+
         90° gewinkelt</pre>
  
 
===Pinheader===
 
===Pinheader===
Line 253: Line 245:
 
# Kernel in ein per TFTP bereitgestelltes Verzeichnis schieben
 
# Kernel in ein per TFTP bereitgestelltes Verzeichnis schieben
 
# Root-Filesystem in ein Verzeichnis entpacken, dass per NFS exportiert werden soll. Unbedingt auf passende Rechte achten
 
# Root-Filesystem in ein Verzeichnis entpacken, dass per NFS exportiert werden soll. Unbedingt auf passende Rechte achten
# /etc/exports anpassen, um Root-FS freizugeben. Beispiel unter Mac OS (Linux hat andere Syntax): {{File|/etc/exports|&lt;pre> /Users/andy/Desktop/sheevadev/fs -network 192.168.0.0 -mask 255.255.255.0 -rw -maproot=root &lt;/pre>}}
+
# /etc/exports anpassen, um Root-FS freizugeben. Beispiel unter Mac OS (Linux hat andere Syntax): {{File|/etc/exports|<pre> /Users/andy/Desktop/sheevadev/fs -network 192.168.0.0 -mask 255.255.255.0 -rw -maproot=root </pre>}}
 
# Am Sheevaplug den U-Boot umkonfigurieren:
 
# Am Sheevaplug den U-Boot umkonfigurieren:
&lt;pre>
+
<pre>
 
setenv ipaddr 192.168.0.2
 
setenv ipaddr 192.168.0.2
 
setenv netmask 255.255.255.0
 
setenv netmask 255.255.255.0
 
setenv serverip 192.168.0.1
 
setenv serverip 192.168.0.1
 
setenv bootargs console=ttyS0,115200 rw root=/dev/nfs nfsroot=192.168.0.1:/Users/andy/Desktop/sheevadev/fs ip=192.168.0.2::192.168.0.123:255.255.255.0:sheevaplug:eth0:none
 
setenv bootargs console=ttyS0,115200 rw root=/dev/nfs nfsroot=192.168.0.1:/Users/andy/Desktop/sheevadev/fs ip=192.168.0.2::192.168.0.123:255.255.255.0:sheevaplug:eth0:none
&lt;/pre>
+
</pre>
  
 
IP-Adressen sind entsprechend anzupassen:
 
IP-Adressen sind entsprechend anzupassen:
&lt;pre>
+
<pre>
 
192.168.0.2 = Plug IP
 
192.168.0.2 = Plug IP
 
192.168.0.1 = Server IP
 
192.168.0.1 = Server IP
Line 269: Line 261:
 
sheevaplug = Hostname
 
sheevaplug = Hostname
 
none = Hier kann man dhcp oder bootp eintragen, falls verfügbar und gewünscht
 
none = Hier kann man dhcp oder bootp eintragen, falls verfügbar und gewünscht
&lt;/pre>
+
</pre>
  
 
Gebootet werden kann das System danach mit folgenden 2 Befehlen:
 
Gebootet werden kann das System danach mit folgenden 2 Befehlen:
&lt;pre>
+
<pre>
 
tftpboot 0x800000 kernelimage.ubi
 
tftpboot 0x800000 kernelimage.ubi
 
bootm 0x800000
 
bootm 0x800000
&lt;/pre>
+
</pre>
  
 
Will man, dass der Sheevaplug das auch per Autoboot macht, setzt man noch die bootcmd-Variable im U-Boot:
 
Will man, dass der Sheevaplug das auch per Autoboot macht, setzt man noch die bootcmd-Variable im U-Boot:
&lt;pre>
+
<pre>
 
setenv bootcmd tftpboot 0x800000 kernelimage.ubi\; bootm 0x800000
 
setenv bootcmd tftpboot 0x800000 kernelimage.ubi\; bootm 0x800000
&lt;/pre>
+
</pre>
  
 
===Gentoo Installation===
 
===Gentoo Installation===
Line 286: Line 278:
  
 
==Original U-Boot Config==
 
==Original U-Boot Config==
&lt;pre>
+
<pre>
 
baudrate=115200
 
baudrate=115200
 
loads_echo=0
 
loads_echo=0
Line 336: Line 328:
 
disaMvPnp=no
 
disaMvPnp=no
 
enaAutoRecovery=yes
 
enaAutoRecovery=yes
&lt;/pre>
+
</pre>
 
==Boot Screen==
 
==Boot Screen==
&lt;pre>
+
<pre>
 
         __  __                      _ _
 
         __  __                      _ _
 
         |  \/  | __ _ _ ____  _____| | |
 
         |  \/  | __ _ _ ____  _____| | |
Line 379: Line 371:
 
Hit any key to stop autoboot:  0  
 
Hit any key to stop autoboot:  0  
 
Marvell>>
 
Marvell>>
&lt;/pre>
+
</pre>
 
== Stromverbrauch ==
 
== Stromverbrauch ==
 
Intern liegen an dem Netzteil 5,2V an. Im Idle Betrieb braucht die Sheevaplug 0,4A. Die NIC weitere 100mA. Bei CPU-Last mit NIC werden ca 700mA benoetigt. Hinzukommt noch der Strom fuer USB-Endgeraete wie eine Festplatte.
 
Intern liegen an dem Netzteil 5,2V an. Im Idle Betrieb braucht die Sheevaplug 0,4A. Die NIC weitere 100mA. Bei CPU-Last mit NIC werden ca 700mA benoetigt. Hinzukommt noch der Strom fuer USB-Endgeraete wie eine Festplatte.

Latest revision as of 17:37, 24 November 2010

Der SheevaPlug einer der ersten "Steckdosen-Computer" die auf dem Markt verfügbar sind. Das Herzstück des SheevaPlug ist der 1,2 GHz Marvell Kirkwood 6281 ARM Prozessor.

General

Der Default Benutzer um sich auf dem SheevaPlug einzuloggen lautet:

Benutzer: root
Passwort: nosoup4u

Debugging Schnittstellen

FTDI unter Linux

  • Um auf die serielle Konsole des Plugs zuzugreifen, braucht man ein USB Kabel mit B-Mini Stecker.
  • Damit der serielle Zugriff funktioniert werden die noetigen Kernel Treiber entweder einkompiliert oder als Module benoetigt.
Device Drivers --->
  <*> USB support  --->
    <*> USB Serial Converter support  --->
      <*> USB FTDI Single Port Serial Driver 

UDEV Regeln

Nach dem einschalten des SheevaPlugs sollte er als Device /dev/ttyUSB* erscheinen. Ist das nicht der Fall, kenn der FTDI Treiber die VID und PID des Sheevaplugs nicht. Dann muss man noch einige udev-Regeln hinzufügen.

File: /etc/udev/rules.d/90-sheevaplug.rules
# load module
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_interface", \
        ATTRS{idVendor}=="9e88", ATTRS{idProduct}=="9e8f", \
        DRIVER=="", \
        RUN+="/sbin/modprobe -b ftdi_sio"

# add vid and pid to driver
ACTION=="add", SUBSYSTEM=="drivers", \
        ENV{DEVPATH}=="/bus/usb-serial/drivers/ftdi_sio", \
        ATTR{new_id}="9e88 9e8f"
        
# set permissions so users can access the devices
ATTRS{idVendor}=="9e88", ATTRS{idProduct}=="9e8f", MODE="0660", GROUP="plugdev"

Dann einmal ausstöpseln, wieder einstecken, das Modul sollte geladen werden. Danach sollten die Devices /dev/ttyUSB{0,1} vorhanden sein. 0 ist das JTAG, 1 ist die serielle Konsole.


Modul manuell laden

Wenn man das Modul manuell laden will, kann man modprobe die VID und PID als Parameter mitgeben:

modprobe ftdi_sio vendor=0x9e88 product=0x9e8f

FTDI unter Mac OS X

  • Ladet euch zuerst den folgenden Treiber Virtuel COM Port Drivers (VCP) für Mac OS X (Intel) 10.4 oder höher.
  • Folgt der Anleitung zur Installation des Treibers
  • Nach dem Reboot editiert folgende Datei mit root-Rechten
sudo vim /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist

Kopiert nun folgenden zusätzlichen Inhalt hinein

		<key>SheevaPlug JTAGKey FT2232D A</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.FTDI.driver.FTDIUSBSerialDriver</string>
			<key>IOClass</key>
			<string>FTDIUSBSerialDriver</string>
			<key>IOProviderClass</key>
			<string>IOUSBInterface</string>
			<key>bConfigurationValue</key>
			<integer>1</integer>
		        <key>bInterfaceNumber</key>
			<integer>0</integer>
			<key>idProduct</key>
			<integer>40591</integer>
			<key>idVendor</key>
			<integer>40584</integer>
		</dict>
		<key>SheevaPlug JTAGKey FT2232D B</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.FTDI.driver.FTDIUSBSerialDriver</string>
			<key>IOClass</key>
			<string>FTDIUSBSerialDriver</string>
			<key>IOProviderClass</key>
			<string>IOUSBInterface</string>
			<key>bConfigurationValue</key>
			<integer>1</integer>
			<key>bInterfaceNumber</key>
			<integer>1</integer>
			<key>idProduct</key>
			<integer>40591</integer>
			<key>idVendor</key>
			<integer>40584</integer>
		</dict>

Quelle

  • Reinitialisiert die Abhängikeiten mit dem folgendem Befehl
sudo touch /System/Library/Extensions
  • Sollte dieses nicht funktionieren könnt Ihr auch das Modul neu Laden, dabei geht Ihr wie folgt vor
sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext

sollte hier bei ein Fehler gelistet werden, einfach Ignorieren

sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext
  • Zum Schluss schließt den SheevaPlug an, nun sollte eigentlich alles funktionieren

FTDI unter Windows

Die Treiberinstallation wurde nur unter Windows 7 getestet, da die Treiber aber ursprünglich für XP geschrieben wurden, sollte dieses Vorgehen auch unter XP und Vista zum Ziel führen.

Update der Treiber

Als erstes müssen die Treiber (WindowsTeraTermUSBDriver.zip) zur Unterstützung von einer miniUSB auf Seriell-Verbindung von der CD oder direkt von Marvell heruntergeladen werden. Diese dann einfach z.B. nach "C:\" entpacken.

Sobald die USB-Verbindung zum Sheevaplug aufgebaut wird, versucht Windows die Treiber über WindowsLive herunterzuladen, was jedoch nicht funktioniert.

Also ab in den Gerätemanager:

Start -> Systemsteuerung -> Geräte-Manager

Nun sollten unter dem Menüpunkt "Andere" zwei Geräte aufgelistet sein, in deren Bezeichnung irgendetwas mit "sheevaplug" steht. Für die beiden die Treiberinstallation manuell anstoßen und auf das Verzeichnis linken, in das die Treiber entpackt wurden. Dannach erscheint im Gerätemanager der Connector für Seriell über USB, für den ebenfalls der Treiber manuell installiert werden muss. Der Treiber befindet sich ebenfalls im heruntergeladenen Verzeichnis.

Verbindung aufbauen

Minicom

sudo port install minicom

oder

sudo aptitude install minicom

oder was auch immer ihr so nutzt

Startet minicom wie folgt

sudo minicom -s

Der parameter -s wird benötigt um eine Konfigurationsdatei anzulegen. Im Anschluß passt noch unter dem Menü Punkt "Serial Port Setup" noch das "Serial Device" an.

Minicom Config

    * Serial Device: /dev/ttyUSB1
    * Baudrate: 115200bps
    * Databits: 8
    * Parity: None
    * Stopbits: 1
    * Hardware Flow Control: No
    * Software Flow Control: No

Die Konfiguration ist auch bekannt als 115200 8N1.

PuTTY

Unter Windows ist PuTTY eine Möglichkeit auf den Plug zu kommen.

Zum Einrichten muss unter "Connection -> Serial" folgendes eingestellt werden:

    * Serial line to connect to: *COM(X)*
    * Speed (baud): 115200
    * Data bits: 8
    * Stop bits: 1
    * Parity: None
    * Flow control: None

Dannach kann über "Session" der "Connection type" auf Serial gestellt werden und über "Open" die Verbindung hergestellt werden.

Screen

screen /dev/ttyUSB1 115200

Pimp my Sheevaplug

SATA

We proudly present:

Sheevaplug 1.3 Schematics: http://plugcomputer.org/index.php/us/resources/downloads?func=startdown&id=56

Eigentlich sollten alle Leute im Club bereits die 1.3er Version haben. Diese hat, wenn man sie öffnet, auf der Platine einen unbestückten eSata-Connector. Die Traces der 4 Datenleitungen sind auf dem PCB sichtbar und führen zu 4 unbestückten Pads. Laut den Schematics da oben sollen da 4 10nF Kondensatoren drauf. Die Biester sind arschklein, sollte aber machbar sein. Ich werde mal ein bischen nach nem passenden Connector und den Kondensatoren suchen und das ganze mal austesten. (Andy - Matschkeks)

Im Forum plugcomputer.org hat mich jemand angeschrieben, der meinte, dass man das SATA-Subsystem im Prozessor noch mit Strom versorgen müsste. Ich hab dann mal im Schaltplan gesucht und nachgeschaut. Das sind nochmal 4 Kondensatoren und ein Ferrit. Nicht die Welt, nur sauklein.

Teileliste

Ich hab mal ne Teileliste geschraubt:

Spannungsversorgung SATA-Subsystem im Prozessor:
Siehe Schaltplan Seite 7 Quadranten H12 bis H14

Pos.    Bezeichnung         Stück       Bauform       Schaltplanbezeichnung
----------------------------------------------------------------
1       100nF Kerko         2           SMD 0402      C78-C79
2       1µF Kerko           2           SMD 0402      C196-C197
3       Ferrit 60 Ohm       1           SMD 0602      BIT7


SATA-Connector und Filterkondensatoren(?)
Siehe Schaltplan Seite 10 Quadranten F9 bis E13

Pos.    Bezeichnung         Stück       Bauform       Schaltplanbezeichnung
----------------------------------------------------------------
1       10nF Kerko          4           SMD 0402      C164, C188-C190
2       eSata Buchse        1           Print         ESATA
        90° gewinkelt

Pinheader

In dem obigen Schaltplan sieht man ebenfalls, dass das UART nochmal an J7 und J6 rausgeführt ist, falls man da was vor dem FTDI abgreifen will. An J6 gibt es zusätzlich noch eine I2C Schnittstelle. J4 führt die JTAG-Schnittstelle, die an den FTDI geht raus. J11 hat nochmal den Host-USB-Port herausgeführt.

Pinheader:

Pin J4 J6 J7 J11
1 GND GND GND GND
2 JT_TDI UART0_RXD UART0_RXD USB_P
3 JT_SRSTn UART0_TXD UART0_TXD USB_N
4 JT_TDO TW_SDA 3V3 USBVCC+
5 JT_CLK TW_SCL AGND (Shield)
6 JT_TMS_CPU 3V3
7 JT_RESET
8 3V3

Grüne LED per GPIO steuern

Geht nur bei Revision 1.3:

Man muss R242 auslöten und an die (unbestückte) Stelle von R70 setzen. Danach soll man den Kernel entsprechend patchen und das Teil dann steuern können.

Quelle: http://plugcomputer.org/plugforum/index.php?topic=797.0


Sheevaplug SATA Hack: http://plugcomputer.org/plugforum/index.php?topic=927.0

Betriebssysteme

Linux Netzwerkboot

  1. Kernel in ein per TFTP bereitgestelltes Verzeichnis schieben
  2. Root-Filesystem in ein Verzeichnis entpacken, dass per NFS exportiert werden soll. Unbedingt auf passende Rechte achten
  3. /etc/exports anpassen, um Root-FS freizugeben. Beispiel unter Mac OS (Linux hat andere Syntax):
    File: /etc/exports
     /Users/andy/Desktop/sheevadev/fs -network 192.168.0.0 -mask 255.255.255.0 -rw -maproot=root 
  4. Am Sheevaplug den U-Boot umkonfigurieren:
setenv ipaddr 192.168.0.2
setenv netmask 255.255.255.0
setenv serverip 192.168.0.1
setenv bootargs console=ttyS0,115200 rw root=/dev/nfs nfsroot=192.168.0.1:/Users/andy/Desktop/sheevadev/fs ip=192.168.0.2::192.168.0.123:255.255.255.0:sheevaplug:eth0:none

IP-Adressen sind entsprechend anzupassen:

192.168.0.2 = Plug IP
192.168.0.1 = Server IP
192.168.0.123 = Gateway
sheevaplug = Hostname
none = Hier kann man dhcp oder bootp eintragen, falls verfügbar und gewünscht

Gebootet werden kann das System danach mit folgenden 2 Befehlen:

tftpboot 0x800000 kernelimage.ubi
bootm 0x800000

Will man, dass der Sheevaplug das auch per Autoboot macht, setzt man noch die bootcmd-Variable im U-Boot:

setenv bootcmd tftpboot 0x800000 kernelimage.ubi\; bootm 0x800000

Gentoo Installation

http://dev.gentoo.org/~armin76/arm/sheevaplug/install.xml

Original U-Boot Config

baudrate=115200
loads_echo=0
rootpath=/mnt/ARM_FS/
netmask=255.255.0.0
console=console=ttyS0,115200
CASset=min
MALLOC_len=1
ethprime=egiga0
bootargs_root=root=/dev/mtdblock2 ro
ethmtu=1500
usb0Mode=host
nandEcc=1bit
ethact=egiga0
cesvcid=ULULULULULULPPULULULULULDA
bootargs_end=:::DB88FXX81:eth0:none
image_name=uImage
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
yuk_ethaddr=00:00:00:EE:51:81
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
ethaddr=00:50:43:01:D5:94
run_diag=no
bootargs=console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none
bootcmd=nand read.e 0x800000 0x100000 0x400000; bootm 0x800000
ipaddr=192.168.100.200
serverip=192.168.100.181
stdin=serial
stdout=serial
stderr=serial
mainlineLinux=no
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=3
disaMvPnp=no
enaAutoRecovery=yes

Boot Screen

         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_ 
| | | |___|  _ \ / _ \ / _ \| __| 
| |_| |___| |_) | (_) | (_) | |_ 
 \___/    |____/ \___/ \___/ \__| 
 ** MARVELL BOARD: SHEEVA PLUG LE 

U-Boot 1.1.4 (Mar 19 2009 - 16:06:59) Marvell version: 3.4.16

U-Boot code: 00600000 -> 0067FFF0  BSS: -> 006CEE80

Soc: 88F6281 A0 (DDR2)
CPU running @ 1200Mhz L2 running @ 400Mhz
SysClock = 400Mhz , TClock = 200Mhz 

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000   size 256MB 
DRAM CS[1] base 0x10000000   size 256MB 
DRAM Total size 512MB  16bit width
Flash:  0 kB
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
NAND:512 MB

CPU : Marvell Feroceon (Rev 1)

Streaming disabled 
Write allocate disabled


USB 0: host mode
PEX 0: interface detected no Link.
Net:   egiga0 [PRIME], egiga1
Hit any key to stop autoboot:  0 
Marvell>>

Stromverbrauch

Intern liegen an dem Netzteil 5,2V an. Im Idle Betrieb braucht die Sheevaplug 0,4A. Die NIC weitere 100mA. Bei CPU-Last mit NIC werden ca 700mA benoetigt. Hinzukommt noch der Strom fuer USB-Endgeraete wie eine Festplatte.

Kernel flashen

beim mir funktionierte die Methode mit 'cat uImage > /dev/mtdblock1' nicht:

flash_eraseall -j /dev/mtd1
nandwrite -a -p /dev/mtd1 /mnt/gentoo/usr/src/linux/arch/arm/boot/uImage