Samba: Unterschied zwischen den Versionen

Aus DreamboxWIKI
Wechseln zu: Navigation, Suche
(Bug)
Zeile 1: Zeile 1:
 
[[Category:Register]]
 
[[Category:Register]]
 
[[Category:Software]]
 
[[Category:Software]]
__TOC__
 
  
=Allgemein=
+
Samba dient zum verbinden der Boxen untereinander bzw. mit Windows PC.
  
[[Bild:Netzwerkumgebung.PNG|thumb|275px|Dreambox in der Windowsnetzwerkumgebung]]Mit Hilfe von Samba kannn man aus Windows heraus direkt auf festgelegte Verzeichnisse der Dreambox zugreifen.<br>
+
Je nach was man machen möchte muss man den [[Samba Server]] oder den [[Samba Client]] konfigurieren.
Realisiert wird dies durch die beiden [[Daemons]] smbd und nmbd. Bei der DM7000 sind sie im Image enthalten, bei der DM7020 müssen sie zunächst installiert werden (In neueren Images sind sie ebenfalls enthalten. Ob die Daemons bereits laufen kann über den Telnetzugang geprüft werden. Einloggen und ps eingeben, es erscheint eine Liste mit allen Diensten die auf der Box laufen. Erscheinen dort nmbd -D und smbd -D laufen die Dienste bereits und müssen nicht installiert werden).
 
Das Prinzip entspricht exakt dem der Windows-Freigaben und so kann man die Dreambox sogar als Netzlaufwerk einbinden.<br><br>
 
==DM 7000==
 
Die Konfiguration von Samba auf der Dreambox findet in der Datei "smb.conf" im Verzeichnis "/var/etc" statt.
 
 
 
==DM 7020==
 
<ol>
 
<li>Box muss einen Internetzugang haben
 
</li><li>Per Telnet auf der Box einloggen
 
</li><li>Folgende Befehle eingeben<br>''ipkg update''<br>''ipkg install samba''
 
</li><li>Die Fehlermeldung bzgl. modutils.sh kommt immer und kann ignoriert werden
 
</li><li>Am Ende dieser Seite den Inhalt des Kastens ''smb.conf'' in einen Text Editor (siehe unten bei ACHTUNG) kopieren, die jeweiligen Einträge anpassen und per FTP (z.B. mit dem Total Commander http://www.ghisler.com/) in die DreamBox in den Ordner <b>''/usr/lib''</b> kopieren.
 
</li><li>Den Ordner ''/usr/private'' anlegen.
 
</li><li>Zum automatischen Starten das Script unter diesem Link: http://www.reichholf.net/files/samba mit der rechten Maustaste anklicken und mit "Ziel speichern unter" herunterladen und unter selbem Namen <font color=red><b>unverändert</b></font> per FTP in den Ordner <b>''etc/init.d''</b> kopieren.
 
</li><li>Rechte des Scriptes setzen: ''chmod 755 samba''
 
</li><li>Mit Telnet in den Ordner ''/etc/rc2.d'' gehen und ''ln -s /etc/init.d/samba S90samba'' eingeben
 
</li><li>Manuell starten kann man Samba dann mit "/etc/init.d/samba start". ACHTUNG: Selbst wenn man mit "cd /etc/init.d" in das Verzeichnis des Scriptes gewechselt hat, muß man trotzdem den vollen Pfad eintippen oder "./samba start" eingeben sonst bekommt man den Fehler "-sh: /etc/init.d/samba: not found"
 
</li><li>Um sich vom PC mit der Festplatte der Box zu verbinden muß man dann eingeben:
 
"\\Dreambox alpha\Festplatte" oder man benutzt die Netzwerkumgebung</li>
 
</ol>
 
===Editieren der Dateien===
 
<font color=red><b><u>ACHTUNG</u>:</b></font><br> Die Dateien "smb.conf" und "samba" müssen UNBEDINGT im Unix Format gespeichert werden! Windows verwendet nämlich zwei Steuerzeichen für einen Zeilenumbruch, nämlich Carriage Return und Linefeed, Linux hingegen braucht nur ein Steuerzeichen, nämlich Linefeed. (Auch muß hinter der letzten Zeile ein Cariage Return stehen) Hat man z.B. den Inhalt der Datei "samba" nach Linksklick auf obigen Link aus dem Browser in einen Text Editor wie Wordpad kopiert und in die Dreambox geladen, hat man schon alles falsch gemacht! Man bekommt dann nach Eingabe von "/etc/init.d/samba start" die Fehlermeldung "Can't open".
 
<br>Hat man unter Windows keinen Text Editor (wie z.B. Ultra Edit http://www.ultraedit.com), mit dem man im Unix Format speichern kann, kann man auch per Telnet mit dem Linux Editor "vi" alle "^M" Zeichen am Ende jeder Zeile manuell entfernen. vi ist aber aufgrund der extrem umständlichen Bedienung nur für Experten geeignet. (Beschreibung von vi siehe dieses Wiki)
 
Besser ist der Midnight Commander für Linux "mcedit" falls auf der Dreambox installiert.
 
 
 
Am einfachsten geht es jedoch mit dem [[Plugins:tuxcom|Tuxbox Commander]].
 
Da muss man nur die Datei auswählen, dann den Editor starten (Taste 4) und dann mit blau die Datei Linux-konform machen.
 
 
 
 
 
===Bug===
 
*Der Sambaserver zeigt nicht die richtigen Größen an. Eine 1GB große Datei auf der Festplatte hat laut Sambaserver die Größe 522 PB (588.571.628.207.855.301 Bytes) ! Dieser Fehler tritt in neueren Images nicht mehr auf.
 
 
 
Hierfür gibt es folgenden Workaround: man ersetzt die originalen Samba-Dämonen nmbd und smbd durch ältere Versionen der DM 7000.
 
 
 
Vorgehensweise:
 
<ol>
 
<li>Zunächst die laufenden Dämonen anhalten:
 
<br>/etc/init.d/samba stop
 
<br>(Achtung: immer den vollen Pfad eintippen!)
 
 
 
<li>
 
Eine ältere Samba-Version (2.2.5) hier herunterladen: http://dreambox.gamesquad.nl/removed.html.
 
<br>
 
In diesem Archiv (samba.tar.gz) im Unterordner /bin, befinden sich die "alten" Dämonen "nmbd" und "smbd".
 
 
 
<li>
 
<ul>
 
<li>
 
<u>Möglichkeit 1.)</u>
 
<br>Das samba.tar.gz auf die Dreambox kopieren (nach /var/tmp) und dort mit
 
<br>gzip -dc ./samba.tar.gz | tar xf -
 
<br>entpacken.
 
<br>
 
Die "alten" nmbd und smbd in das Verzeichnis <b>/usr/sbin</b> kopieren; also die der Original-Installation überschreiben.
 
 
 
<li>
 
<u>Möglichkeit 2.)</u>
 
<br>Die Datei samba.tar.gz unter Windows entpacken (z.B. mit dem Total Commander (http://www.ghisler.com/)) und daraus die Dateien smbd und nmbd per FTP nach <b>/usr/sbin</b> kopieren.
 
<br>Dann:
 
<br>chmod 755 /usr/sbin/smbd
 
<br>chmod 755 /usr/sbin/nmbd
 
</ul>
 
 
 
<li>
 
Auf der DM 7020 noch einen Symbolischen-Link anlegen, da die Samba-Versionen der DM 7000 die Konfigurationsdateien unter /etc/smb.conf erwarten:
 
<br> ln -s /usr/lib/smb.conf /etc/smb.conf
 
 
 
<li>
 
Danach /etc/init.d/samba start
 
 
 
<li>
 
Mit "ps" nachprüfen ob Samba läuft, es müssen smbd und nmbd aufgelistet werden!
 
<br>Falls Samba nicht gestartet hat, im Log nachschauen was das Problem ist:
 
Die Logs liegen unter <b>/var/tmp</b>
 
 
 
<li>
 
Ggf. muß in der /etc/hosts eine Zeile angefügt werden mit "<ip-der-dreambox> <name-der-dreambox>" also z.B.
 
<br>192.168.0.21 &nbsp; &nbsp; &nbsp;  dreambox
 
<br>Hier NICHT den Netbios Namen aus der smb.conf eintragen, sondern den Computer Namen. Dieser wird angezeigt wenn man sich über Telnet einloggt: Wenn da steht "root@dreambox:~#" ist der Computername "dreambox".
 
<br>ACHTUNG: In diesem Fall kann man kein DHCP mehr verwenden sondern muß die IP der Box festlegen.
 
</ol>
 
<br>
 
Jetzt zeigt auch der Windows-Explorer die Dateigrößen richtig an und man kann Filme von der Dreambox-Platte direkt mit dem VLC auf dem PC ansehen.
 
 
 
=Beispielhafte smb.conf=
 
<div align="left" style="margin-right:5px; border: 1px solid #888888; background-color:#EEEEEE; padding: 2em 1em 1em 1em;width:60%">
 
[global] <br>
 
load printers = no<br>
 
guest account = root <br> 
 
log file = /var/tmp/smb.log<br>
 
security = share<br>
 
encrypt passwords = yes<br>
 
server string = DM7000S<br>
 
workgroup = ''Workgroup Hier eigene Workgroup eintragen''<br>
 
netbios name = DreamBOX_alpha<br>
 
os level = 0<br>
 
preferred master = no<br>
 
local master = no<br>
 
domain master = no<br>
 
interfaces = 127.0.0.1 ''xxx.xxx.xxx.xxx IP der Box''<br>
 
hosts deny = all<br>
 
hosts allow = 127. ''xxx.xxx.xxx. Hier die ersten drei Zahlen der Dreambox IP eintragen oder die volle IP deines PCs falls nur diesem Computer der Zugriff erlaubt sein soll''<br>
 
name resolve order = lmhosts host bcast<br>
 
character set = iso8859-1<br>
 
<br>
 
[Konfiguration] <br>
 
comment = Konfiguration <br>
 
path = /var <br>
 
read only = no <br>
 
public = yes <br>
 
guest ok = yes <br>
 
browseable = yes <br>
 
<br>
 
[Festplatte] <br>
 
comment = Festplatte <br>
 
path = /hdd <br>
 
read only = no <br>
 
public = yes <br>
 
guest ok = yes <br>
 
<br>
 
[USB] <br>
 
comment = USB <br>
 
path = /var/mnt/usb<br> 
 
read only = no <br>
 
public = yes <br>
 
guest ok = yes <br>
 
<br>
 
[Filme] <br>
 
comment = Filme <br>
 
path = /hdd/movie <br>
 
read only = no <br>
 
public = yes <br>
 
guest ok = yes<br>
 
<br>
 
[Musik] <br>
 
comment = Musik <br>
 
path = /hdd/mp3 <br>
 
read only = no <br>
 
public = yes <br>
 
guest ok = yes<br>
 
<br>
 
</div>
 
 
 
=Time Server=
 
Die Dreambox kann auch als Timeserver für Unix und Windows Rechner dienen.
 
In der smb.conf hierzu folgenden Eintrag unter [global] hinzufügen
 
 
 
<div align="left" style="margin-right:5px; border: 1px solid #888888; background-color:#EEEEEE; padding: 2em 1em 1em 1em;width:60%">
 
time server = True
 
</div>
 
 
 
*Bei Windows im Autostart-Order folgender Batch:
 
**NET TIME \\<dreambox-ip> /SET /YES
 
 
 
*Bei Linux/Unix hab ich in der /etc/init.d/smbd eingefuegt
 
**net time set -S <dreambox-ip> (net ist Teil der Samba(7)-Suite)
 

Version vom 10. Oktober 2005, 05:24 Uhr


Samba dient zum verbinden der Boxen untereinander bzw. mit Windows PC.

Je nach was man machen möchte muss man den Samba Server oder den Samba Client konfigurieren.