Yan Seiner wrote:> I've built samba for an embedded mips platform. Since this is an
> embedded platform, it's possible that some critical file that samba
> needs is missing but stracing the daemons doesn't reveal anything
> strange.
>
> It's running 2.4.34 kernel.
>
> Samba is failing to find any interfaces.
>
> [2000/01/02 10:55:01, 3] nmbd/nmbd.c:main(759)
> Opening sockets 137
> [2000/01/02 10:55:01, 10] lib/util_sock.c:open_socket_in(839)
> bind succeeded on port 137
> [2000/01/02 10:55:01, 10] lib/util_sock.c:open_socket_in(839)
> bind succeeded on port 138
> [2000/01/02 10:55:01, 5] lib/util_sock.c:print_socket_options(206)
> socket option SO_KEEPALIVE = 0
>
> .... (bunch of print stuff).....
>
> [2000/01/02 10:55:01, 3] nmbd/nmbd.c:open_sockets(615)
> open_sockets: Broadcast sockets opened.
> [2000/01/02 10:55:01, 2] lib/interface.c:interpret_interface(130)
> can't determine netmask for 192.168.128.199
> [2000/01/02 10:55:01, 0] lib/interface.c:load_interfaces(229)
> WARNING: no network interfaces found
> [2000/01/02 10:55:01, 0] nmbd/nmbd_subnetdb.c:create_subnets(190)
> create_subnets: No local interfaces !
> [2000/01/02 10:55:01, 0] nmbd/nmbd_subnetdb.c:create_subnets(191)
> create_subnets: Waiting for an interface to appear ...
> [2000/01/02 10:55:06, 2] lib/interface.c:interpret_interface(130)
> can't determine netmask for 192.168.128.199
> [2000/01/02 10:55:06, 0] lib/interface.c:load_interfaces(229)
> WARNING: no network interfaces found
> [2000/01/02 10:55:11, 2] lib/interface.c:interpret_interface(130)
> can't determine netmask for 192.168.128.199
> [2000/01/02 10:55:11, 0] lib/interface.c:load_interfaces(229)
> WARNING: no network interfaces found
> [2000/01/02 10:55:16, 2] lib/interface.c:interpret_interface(130)
> can't determine netmask for 192.168.128.199
>
> and this repeats forever.
>
> My smb.conf:
>
> #======================= Global Settings
> ====================================> [global]
> syslog = 0
> syslog only = yes
> workgroup = seiner.lan
> server string = OpenWrt Samba Server
> max log size = 50
> security = share
> encrypt passwords = yes
> smb passwd file = /etc/samba/smbpasswd
> guest account = nobody
> local master = yes
> name resolve order = lmhosts hosts bcast
> log file = /var/log/samba/log.smbd
> # hosts allow = 127.
> interfaces = 192.168.128.199 <=== I've tried eth0.1
> 192.168.0.0./255.255.0.0 eth* and probably some others
> # bind interfaces only = false
> # 192.168.1.1/255.255.255.0
> socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
>
I added some debug lines to the interface.c routines.
It turns out that get_interfaces returns -1 - eventhough there is an
interfaces = line in smb.conf. From looking at the code, this is not
handled at all in interface.c.
[2008/01/05 15:11:46, 0] lib/interface.c:interpret_interface(108)
checking interface eth*
[2008/01/05 15:11:46, 0] lib/interface.c:interpret_interface(110)
checking for interface name
checking for DNS name
WARNING: no network interfaces found
found -1 interfaces
Any idea why the kernel wouldn't return any interfaces?
--Yan