[OE-core] Busybox complaining about missing applets

Martin Jansa martin.jansa at gmail.com
Thu Apr 26 08:05:23 UTC 2012


But they are there and they work when started as busybox argument 
or symlink in same directory as busybox is.

Have anyone seen this?

u-a links are correctly pointing to busybox
SHR root at gjama ~ $ ll /sbin/ifup
lrwxrwxrwx 1 root root 14 Apr 26 09:52 /sbin/ifup -> ../bin/busybox
SHR root at gjama ~ $ ll /usr/bin/less
lrwxrwxrwx 1 root root 17 Apr 26 09:52 /usr/bin/less -> ../../bin/busybox
SHR root at gjama ~ $ grep ifup /etc/busybox.links
/sbin/ifup
SHR root at gjama ~ $ grep less /etc/busybox.links
/usr/bin/less

but starting applet by symlink fails:
SHR root at gjama ~ $ less
less: applet not found
SHR root at gjama ~ $ ifup
ifup: applet not found

and directly it works:
SHR root at gjama ~ $ busybox less
less: missing filename
BusyBox v1.19.4 (2012-04-12 09:31:45 CEST) multi-call binary.

Usage: less [-EMNmh~I?] [FILE]...

SHR root at gjama ~ $ busybox ifup
BusyBox v1.19.4 (2012-04-12 09:31:45 CEST) multi-call binary.

Usage: ifup [-anmvf] [-i FILE] IFACE...

symlinks in /bin (where busybox binary is) seem to work 
(ln -s busybox /bin/less works too)
SHR root at gjama / $ /bin/less
less: missing filename
BusyBox v1.19.4 (2012-04-12 09:31:45 CEST) multi-call binary.

Usage: less [-EMNmh~I?] [FILE]...

SHR root at gjama / $ /usr/bin/less
less: applet not found

strace diff between starting it with symlink and argument shows 
that libm was loaded when starting with link 

--- /home/root/busybox.link
+++ /home/root/busybox.arg
@@ -1,35 +1,43 @@
-execve("./less", ["./less"], [/* 23 vars */]) = 0
-brk(0)                                  = 0x1b89000
+execve("/bin/busybox", ["busybox", "less"], [/* 23 vars */]) = 0
+brk(0)                                  = 0x131e000
 uname({sys="Linux", node="gjama", ...}) = 0
-mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4009b000
+mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40018000
 access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
 fstat64(3, {st_mode=S_IFREG|0644, st_size=23779, ...}) = 0
-mmap2(NULL, 23779, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40101000
+mmap2(NULL, 23779, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40033000
 close(3)                                = 0
-open("/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
-read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0h;\0\0004\0\0\0"..., 512) = 512
-fstat64(3, {st_mode=S_IFREG|0755, st_size=423444, ...}) = 0
-mmap2(NULL, 454784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x40108000
-mprotect(0x4016f000, 28672, PROT_NONE)  = 0
-mmap2(0x40176000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x66) = 0x40176000
-close(3)                                = 0
 open("/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0h|\1\0004\0\0\0"..., 512) = 512
 fstat64(3, {st_mode=S_IFREG|0755, st_size=1189068, ...}) = 0
-mmap2(NULL, 1230176, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x40178000
-mprotect(0x40298000, 28672, PROT_NONE)  = 0
-mmap2(0x4029f000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11f) = 0x4029f000
-mmap2(0x402a2000, 9568, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x402a2000
+mmap2(NULL, 1230176, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x400be000
+mprotect(0x401de000, 28672, PROT_NONE)  = 0
+mmap2(0x401e5000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11f) = 0x401e5000
+mmap2(0x401e8000, 9568, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401e8000
 close(3)                                = 0
-mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40029000
-set_tls(0x400294c0, 0x40029b98, 0x400e5048, 0x400294c0, 0x400e5048) = 0
-mprotect(0x4029f000, 8192, PROT_READ)   = 0
-mprotect(0x40176000, 4096, PROT_READ)   = 0
-mprotect(0x400e4000, 4096, PROT_READ)   = 0
-munmap(0x40101000, 23779)               = 0
+mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40005000
+set_tls(0x400054c0, 0x40005b98, 0x4006d048, 0x400054c0, 0x4006d048) = 0
+mprotect(0x401e5000, 8192, PROT_READ)   = 0
+mprotect(0x4006c000, 4096, PROT_READ)   = 0
+munmap(0x40033000, 23779)               = 0
 getuid32()                              = 0
+brk(0)                                  = 0x131e000
+brk(0x133f000)                          = 0x133f000
+ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
+ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
+write(2, "less: missing filename\n", 23less: missing filename
+) = 23
+mmap2(NULL, 401408, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401eb000
+munmap(0x401eb000, 401408)              = 0
+write(2, "BusyBox v1.19.4 (2012-04-12 09:3"..., 42BusyBox v1.19.4 (2012-04-12 09:31:45 CEST)) = 42
+write(2, " multi-call binary.\n", 20 multi-call binary.
+)   = 20
+write(2, "\nUsage: ", 8
+Usage: )                = 8
 write(2, "less", 4less)                     = 4
-write(2, ": applet not found\n", 19: applet not found
-)    = 19
+write(2, " ", 1 )                        = 1
+write(2, "[-EMNmh~I?] [FILE]...", 21[-EMNmh~I?] [FILE]...)   = 21
+write(2, "\n\n", 2
+
+)                     = 2
 exit_group(1)                           = ?

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20120426/23abd7bd/attachment-0002.sig>


More information about the Openembedded-core mailing list