[ previous ] [ next ] [ threads ]
 
 From:  John <strgout at unixjunkie dot com>
 To:  m0n0wall dash dev at lists dot m0n0 dot ch
 Subject:  Re: [m0n0wall-dev] ld-elf.so.1 not found
 Date:  Tue, 4 Jan 2005 14:48:13 -0600
On Tue, Jan 04, 2005 at 02:34:07PM -0600, John wrote:
> On Mon, Jan 03, 2005 at 11:53:03PM -0700, Dmitry Sorokin wrote:
> > Quoting Chris Buechler <cbuechler at gmail dot com>:
> > 
> > > m0n0wall doesn't include all the libraries a stock FreeBSD system
> > > does.  Any that are required and aren't there will need to be manually
> > > added to your image.  To find out what a specific binary needs, run
> > > ldd on it.  Like:
> > > 
> > > 
> > > -bash-2.05b$ ldd /usr/local/sbin/nmbd
> > > /usr/local/sbin/nmbd:
> > >         libcups.so.2 => /usr/local/lib/libcups.so.2 (0x280d7000)
> > >         libssl.so.3 => /usr/local/lib/libssl.so.3 (0x280f3000)
> > >         libcrypto.so.3 => /usr/local/lib/libcrypto.so.3 (0x281b9000)
> > >         libpam.so.1 => /usr/lib/libpam.so.1 (0x282a8000)
> > >         libpopt.so.0 => /usr/local/lib/libpopt.so.0 (0x282b2000)
> > >         libc.so.4 => /usr/lib/libc.so.4 (0x282b9000)
> > >         libintl.so.6 => /usr/local/lib/libintl.so.6 (0x28352000)
> > >         libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x2835b000)
> > > 
> > > 
> > > If you don't care about image size, you could throw in /usr/lib/* and
> > > /usr/local/lib/* as well as probably some other lib dir's I'm not
> > > thinking of off hand.
> > > 
> > > 
> > Yeh, I already did that with no result.
> > 
> > I was looking more into it today and noticed that the problem is only occurs 
> > with printing, file sharing is OK (I could copy and write files). That means 
> > for me that samba is running fine by itself, and all needed libs are there. 
> > When I hit print at the client computer, samba receives the pring job and 
> > spools it properly (ls /spool/dir shows that).
> > 
> > I increased log level in smb.conf to 3 and that's what I've got:
> > switch message SMBwrite (pid 239)
> > setting sec ctx (65534, 65534) - sec_ctx_stack_ndx = 0
> > 2 user groups:
> > 65534 65534
> > write fnum=4536 num=11 wrote=11
> > Transaction 167 of length 41
> > switch message SMBsplclose (pid 239)
> > printclose fd=20 fnum=4536
> > ELF interpreter /usr/libexec/ld-elf.so.1 not found
> > Running the command `lpr -r -Plp smbprn.000043.245Cu0' gave 6
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > Transaction 168 of length 50
> > switch message SMBsplopen (pid 239)
> > 
> > When I print to regular FreeBSD box running samba (with exactly the same 
> > binaries and configs), the debug shows:
> > Running the command `lpr -r -Plp smbprn.000043.245Cu0' gave 0
> > 
> > So the problem I think is when samba starts running the external command (lpr 
> > this case) But I don't know why.
> > 
> > Is there anything different in m0n0 comparing to fresh FreeBSD install (other 
> > than unneeded libs and other files like man pages, etc.)?
> > Maybe some options in the MONOWALL_GENERIC kernel config?
> > 
> > Thanks again,
> > Dmitry
> 
> once again its /usr/libexec not /usr/lib.

I'll prove it..
This is from my FreeBSD 4.8 box.

# chflags noschg /usr/libexec/ld-elf.so.1
# mv /usr/libexec/ld-elf.so.1 ~
# ls -l /usr/libexec/ld-elf.so.1
ls: /usr/libexec/ld-elf.so.1: No such file or directory
# su -
ELF interpreter /usr/libexec/ld-elf.so.1 not found
Abort trap
# mv ~/ld-elf.so.1 /usr/libexec/
# su -
# echo $?
# 0
# chflags schg /usr/libexec/ld-elf.so.1

echo $? is the exit status of the last proccess. 0 means everything worked.
chflags removes the system immutable flag, which mean no one, not even root
and change the file in any way. Also notice su worked even without this flag
set.