smbfs patches (linux-2.2.19 and 2.0.7)
Giulio Orsero
giulioo at pobox.com
Sun Apr 22 10:42:46 GMT 2001
So far, I've been using
linux 2.2.16 + smbfs-nls-2.2.16-pre2.patch
and
samba-2.0.7 + samba-2.0.7-2.2.16pre2-nls.patch
and this worked perfectly.
Now I've upgraded to linux-2.2.19, and I understand it does not need to be
patched.
CONFIG_SMB_FS=m
CONFIG_SMB_NLS_DEFAULT=y
CONFIG_SMB_NLS_REMOTE="cp850"
CONFIG_NLS_DEFAULT="cp850"
However, localpage=iso8859-1,rmtpage=cp850 would not work:
mount.smbfs: failed to set nls pages.
So I thought to recompile samba 2.0.7 + samba-2.0.7-2.2.16pre2-nls.patch using
the new 2.2.19 kernel headers:
Compiling client/smbmount.c
client/smbmount.c: In function `set_nls_page':
client/smbmount.c:367: storage size of `cp' isn't known
client/smbmount.c:378: `SMB_IOC_SETCODEPAGE' undeclared (first use in this funct
ion)
client/smbmount.c:378: (Each undeclared identifier is reported only once
client/smbmount.c:378: for each function it appears in.)
make: *** [client/smbmount.o] Error 1
Then I reverted the samba-2.0.7-2.2.16pre2-nls.patch patch and applied
smbmount-2.0.7-ascii+fixes.patch; it compiled ok, but now
localpage=iso8859-1,rmtpage=cp850 does not seem to have any effect, I see ? ? in
place of accented chars.
I tried changing smbmount patch to force ascii on 2.2
+ if (major && minor && atoi(major) == 2 && atoi(minor) < 4) {
+ /* < 2.4, assume struct */
+ data1 = opts; <===== like 2.4
+ data2 = (char *) data; <======= like 2.4
+ } else {
+ /* >= 2.4.0-test, assume ascii but fall back on struct */
+ data1 = opts;
+ data2 = (char *) data;
but no luck.
What's the correct procedure?
Thanks.
--
giulioo at pobox.com
More information about the samba
mailing list