PDA

Bekijk de volledige versie : Samba und die Umlaute - ich krieg's nicht hin...



fredlcore
25-04-2008, 18:36
Liebe Leute,

ich habe nun schon mehrere Anläufe unternommen, um Samba auf der WL-HDD mit meiner heterogenen Linux/Windows XP-Umgebung zum vernünftigen Umgang mit Umlauten zu bewegen.

Innerhalb der einzelnen Systeme werden die Umlaute korrekt angezeigt. Lege ich eine Datei mit Umlauten auf einer Share unter Windows an, sind die Umlaute auf anderen Windows-Büchsen zu sehen. Bei einem directory listing unter ssh auf der Box z.B. aber nicht. Jedenfalls dann nicht, wenn ich bei Putty als Translation "UTF-8" angegeben habe. Wechsle ich hier aber auf Codepage 437 oder 850, werden die Umlaute auch dort korrekt angezeigt. Das ist aber kein Dauerzustand, die Translation zu wechseln, da ich mit rsync repliziere und dabei diese derart benannten Dateinamen Probleme machen, die mit UTF-8-Kodierung nicht auftreten.

Die Einträge, die ich auf anderen Servern in der smb.conf benutze, um das Problem zu lösen, wie z.B. "unix charset", "display charset" ,"dos charset" oder "unicode", werden als unbekannt ignoriert. Wie die Umsetzung zu den nvram-Parametern ist, wurde mir nicht richtig klar.

Ich habe jetzt die 1.9.2.7-9'er Firmware von Oleg drauf, hier heißt es ja: "Added utf8 as default encoding of the hard/flash drive (enabled by default)." Auch von daher wäre es schön, wenn Samba die Dateien in UTF-8 abspeicher würde und für Windows Clients in CP850 oder wie auch immer anzeigt.

Ich habe bisher viele Leute gefunden, die so ein ähnliches Problem haben, aber keine Lösung hat bei mir funktioniert. Muss ich bestimmte nvram-Parameter nutzen, oder gibt es eine andere Lösung?

Freue mich über jeden Hinweis,

F.

einheinz
25-04-2008, 21:15
Hi fredlcore,

kaum melde ich mich an, um mich bei Wengi für das HowTo zu bedanken, kann ich hoffentlich gleich konstruktiv mithelfen, da ich den Kram mit den Umlauten für mich gerade erfolgreich unter der 1.9.2.7-10 gelöst habe. Wenn Du den von Oleg mitgelieferten Samba nutzen willst, wird bei über das Webinterface aktiviertem Samba bei jedem Start eine smb.conf in /etc erzeugt/kopiert, welche unter [global] unter anderem die Parameter

client code page = 850
coding system = utf8
enthält. Im nvram muss usb_smbcset_x auf utf8 stehen:


nvram set usb_smbcset_x=utf8
nvram commit
reboot

(Siehe den von Babelfish ins englische übersetzten Thread von Oleg hier (http://babelfish.altavista.digital.com/babelfish/trurl_pagecontent?lp=ru_en&url=http://wl500g.info/showthread.php?t=12200)). Seitdem klappts bei mir, endlich ändern sich die Umlaute nicht mehr, wenn ich meine externe Platte lokal am PC anschließe.

Unter Samba 3, den ich zunächst versucht hatte, hatte ich in smb.conf

display charset = utf-8
dos charset = cp1252
unix charset = utf-8
gesetzt, das hat auch funktioniert, aber zuviele Ressourcen gefressen. Unter Samba 2 über IPKG habe ich UTF8 nicht ans Laufen bekommen und es nach den ersten paar erfolglosen Kombinationen nicht weiter versucht, da Olegs ja läuft.

In meiner jetzt laufenden Konfig habe ich Samba im Webinterface deaktiviert. Ich starte statt dessen über ein Skript in /opt/etc/init.d, in dem ich mit -s auf eine eigene smb.conf in einem anderen Verzeichnis als /etc verweise. So bin ich flexibel und sie wird mir nicht überschrieben, falls ich doch so schusselig bin, Samba mal im Webinterface zu aktivieren. Meine bestehenden Dateien auf der externen Platte habe ich mit convmv (http://www.linux.com/feature/58689) erfolgreich umbenannt.

Viel Erfolg
ein Heinz

wengi
26-04-2008, 06:31
Hallo,

sehr interessant.
Wenn ich die Übersetzung richtig verstehe sollte das nur für Leute der Fall sein, die ihre usb_smbcset_x= vorher manuell angepasst haben.

Bei mir sieht das so aus, und ich habe nie was am system geändert:

[admin@blechbuechse root]$ nvram show | grep -i usb_smbcpage_x
usb_smbcpage_x=850
size: 9444 bytes (23324 left)Die 850 kommt wohl auch eher aus der Webinterfaceeinstellung.

Ich werde das bei Gelegenheit moch mal testen.

wengi

fredlcore
26-04-2008, 13:17
Hallo Heinz,

super, das war DIE Lösung! Nun klappt es in beiden Richtungen :)!
Ich hatte auch immer nur den internen Samba benutzt und mir über den Start via inet.d eine eigene conf benutzt, da ich die in /etc auch mittels Hinzufügen in .files und flashfs save nicht vor einem automatischen (?) Überschreiben schützen konnte.

Seltsamerweise habe ich auch bei usb_smbcpage_x die 850 wie bei Wengi stehen. Naja, mir soll's recht sein, Hauptsache, es funktioniert.

Das einzige Problem ist jetzt noch, dass Dateien, die nun schon "falsch" (CP437/850) Umlaute haben, unter UTF-8 mit grafischen "Müllzeichen" dargestellt werden, die Windows wiederum im Explorer nicht anzeigt.
Eine Konversion mittels convmv wäre also nötig, aber gibt es das denn für die Box? Da ich eine WL-HDD habe, kann ich die nicht ohne Aufschrauben etc. an einem anderen Rechner anschließen.

Ansonsten müsste ich alles nochmal auf CP437/850 zurücksetzen, auf den PC kopieren, auf die "richtigen" Einstellungen umstellen und dann zurück auf die WL-HDD kopieren, aber das wäre ja ähnlich viel Umstand wie das Ausbauen ;).

Falls also hier noch jemand einen Tipp hat, wäre ich sehr dankbar!

Viele Grüße,

F.

einheinz
26-04-2008, 22:37
Hallo,

habe heute mal etwas mit den Codepages gespielt. Auch ich habe usb_smbcpage_x auf 850, hatte früher (Oleg 1.9.2.7-7e seit 9/06) allerdings usb_smbcset_x auf 1252. Hier mein aktueller Stand, der funktioniert:

[admin@sambapati root]$ nvram show | grep -i smbc
usb_smbcpage_x=850
usb_smbcset_x=utf8
866/utf8 ist factory default. Wenn man im Webinterface die DOS-Codepage ändert, werden in smb.conf 'client code page' und im Nvram usb_smbcpage_x entsprechend gesetzt (bzw. bei unspecified leergelassen). Je nach Codepage werden unter Samba Dateien z.T. nicht angezeigt, die unter einer anderen Codepage auf den Asus kopiert wurden. (Musterdatei ÄäÖöÜüßÀáâàçÉéêèíîïûóýðæñùòëøåÿžš.txt, dank an Sigur Ròs, Ismaël Lo, Queensrÿche, Kaizers Orchestra, Gotan Project, Etta Scollo, Tschaikowsky und die Nouvelle vague des französischen Chansons für zusätzliche Sonderzeichen.) Die letzten zwei (žš) lassen sich nicht erfolgreich zusammen mit den anderen übertragen, sondern werden als z und s gespeichert, Pech für russische Messen.

Edit: Ich hätte vor dem Posten erst fertigspielen sollen: Die beiden Nvram-Variablen spielen bei eigener smb.conf keine Rolle. Ist der Samba im Webinterface eingeschaltet, bestimmen sie client code page (usb_smbcpage_x) und coding system (usb_smbcset_x) in der automatisch erstellten /etc/smb.conf.

@fredlcore: Sorry, zu convmv habe ich keine Lösung, ich habe das am PC gemacht.

Grüßle
ein Heinz

mcbyk
07-12-2009, 21:24
hallo,

ich habe samba 2 drauf (installiert nach anleitung). ich habe das problem, dass ich keine ordner mit sonderzeichen auf der festplatte erstellen kann. dann kommt immer die fehlermeldung "bad file descriptor".

meine smb.conf sieht so aus (also nur global):



# Global parameters
[global]
netbios name = XXX
server string = server
security = SHARE
log file = /opt/var/log/samba/log.%m
max log size = 50
load printers = No
character set = ISO8859-1
dns proxy = No
guest account = admin
hosts allow = 192.168.1.

kann ich das problem mit samba 2 gar nicht lösen? brauch ich also samba 3?

danke für die hilfe!!

mcbyk
08-12-2009, 20:34
hallo heinz,


In meiner jetzt laufenden Konfig habe ich Samba im Webinterface deaktiviert. Ich starte statt dessen über ein Skript in /opt/etc/init.d, in dem ich mit -s auf eine eigene smb.conf in einem anderen Verzeichnis als /etc verweise. So bin ich flexibel und sie wird mir nicht überschrieben, falls ich doch so schusselig bin, Samba mal im Webinterface zu aktivieren. Meine bestehenden Dateien auf der externen Platte habe ich mit convmv erfolgreich umbenannt.


wie müsste denn so ein skript aussehen?

danke!

akbor
09-12-2009, 20:26
@mcbyk

welche Firmware benutzt du? Die eingebaute Samba ist doch schon Samba2 (zum Beispiel Version 2.0.10 in der aktuellen "Google Code FW"), du brauchst sie nicht extra mit IPKG installieren. Da die Firmware von den russischsprachigen Kollegen erstellt wird, ist die Voreinstellung für die Code-Page 866, die deutschsprachigen Benutzer brauchen Code-Page 850. Das kann man alles im Webinterface einstellen und fertig. Die Umlaute sollten pefekt funktionieren, es ist kein "Übermounten" der smb.conf notwendig.

Gruß

Robert

mcbyk
09-12-2009, 21:15
hi robert,

ich habe die google code fw und dann samba2 über ipkg nachinstalliert, da ich gerne mehrere benutzer anlegen würde. das geht mit der fw so ja nicht. allerdings hatte ich mit samba2 nun die probleme mit den sonderzeichen und dachte, dass das vielleicht mit dem original samba nicht auftritt. die smb.conf würde ich also schon gerne ändern und zwar so, dass sie nicht immer überschrieben wird.. wie kann ich das denn am besten realisieren?

danke

akbor
09-12-2009, 21:39
Du kannst die integrierte Samba im Webinterface deaktiviert lassen und von woanders starten, z.B. so wie bei Wengi beschrieben ist und die Config auch woanders ablegen (unter /opt) so dass sie nicht überschrieben wird. Da du jetzt schon die Arbeit gemacht hast, die Samba2 aus IPKG zu installieren, dann kannst du dabei bleiben. Die Config von der integrierten Samba, kannst du entsprechend erweitern, so dass du deine Benutzer hast. Ich denke, wenn folgendes konfiguriert ist:

client code page = 850
coding system = utf8
dann solltest du keine Probleme mit den Umlauten haben.

Gruß

Robert

mcbyk
14-12-2009, 21:00
hallo robert,

habe die einstellungen so übernommen wie du gesagt hast (coding system und client code page), trotzdem habe ich folgendes problem mit umlauten:

ich kann ordner mit umlauten erstellen, aber wenn ich dann darauf zugreifen will verschwinden sie unter linux bzw. unter windows haben sie keinen namen mehr und man kann sie nicht öffnen. wenn ich mich über die shell einlogge und mir den ordner ansehe, habe ich dort dann ordnernamen wie /237/315 oder so ähnlich, also anscheinend irgendwelche kürzel für die sonderzeichen.

woran kann das jetzt liegen?

danke!!

akbor
14-12-2009, 23:06
das kann jetzt an der eingestellten Codepage unter Linux und Windows liegen. Wenn unter Windows CP 1252 eingestellt ist (default für Deutschland), sollte es kein problem geben. Ist es ein "deutsches" Windows? Mit Linux ist es auch so eine Sache, da lohnt es sich, vielleicht auf Samba ganz zu verzichten und den Router über NFS einzubinden... Mehr Ideen habe ich leider nicht.

Gruß

Robert