[BusyBox] BusyBox + Glibc chroot problem
Shuveb Hussain
shuvebh at naturesoft.net
Mon Dec 6 16:29:24 UTC 2004
Hi,
I was trying to make a BusyBox system for an x86 target. Just the see
the size of the system first, I planned with installing and chrooting
into a directory after installing the necessary s/w one by one into it.
The host system is Mandrake 10.0 with Glibc 2.3.3
First I compiled BusyBox, dynamically linked. Then I installed it into
the temp directory:
$ make PREFIX=/home/shuveb/embtest
After that I compiled GLibc 2.3.3 from source and installed it with the
similar procedure, into the temp directory. The problem is that, now
when I chroot into the temp folder, BusyBox can't find libc.so.6.
==========================================================================
[root at shuveb root]# chroot /home/shuveb/embtest/ /bin/sh
/bin/sh: error while loading shared libraries: libc.so.6: cannot open
shared object file: No such file or directory
[root at shuveb root]#
==========================================================================
What could be the issue. I have included a strace log:
==========================================================================
[root at shuveb root]# strace chroot /home/shuveb/embtest/ /bin/sh
execve("/usr/sbin/chroot", ["chroot", "/home/shuveb/embtest/",
"/bin/sh"], [/* 44 vars */]) = 0
uname({sys="Linux", node="shuveb.naturesoft.com", ...}) = 0
access("/proc/sys/kernel/tls", F_OK) = 0
brk(0) = 0x804bfac
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x40017000
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=65019, ...}) = 0
old_mmap(NULL, 65019, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000
close(3) = 0
open("/lib/tls/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 at Z\1\000"...,
512) = 512fstat64(3, {st_mode=S_IFREG|0755, st_size=1334740, ...}) = 0
old_mmap(NULL, 1340908, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0x40028000
old_mmap(0x4016a000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
3, 0x142000) = 0x4016a000
old_mmap(0x4016d000, 9708, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4016d000
close(3) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x40170000
set_thread_area({entry_number:-1 -> 6, base_addr:0x40170300,
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0,
limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0x40018000, 65019) = 0
open("/usr/share/locale/locale-archive", O_RDONLY|O_LARGEFILE) = -1
ENOENT (No such file or directory)
brk(0) = 0x804bfac
brk(0x806cfac) = 0x806cfac
brk(0) = 0x806cfac
brk(0x806d000) = 0x806d000
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2586, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x40018000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2586
read(3, "", 4096) = 0
close(3) = 0
munmap(0x40018000, 4096) = 0
open("/usr/share/locale/en_US/LC_IDENTIFICATION", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=370, ...}) = 0
mmap2(NULL, 370, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000
close(3) = 0
open("/usr/share/locale/en_US/LC_MEASUREMENT", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=28, ...}) = 0
mmap2(NULL, 28, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40019000
close(3) = 0
open("/usr/share/locale/en_US/LC_TELEPHONE", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=64, ...}) = 0
mmap2(NULL, 64, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001a000
close(3) = 0
open("/usr/share/locale/en_US/LC_ADDRESS", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=160, ...}) = 0
mmap2(NULL, 160, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001b000
close(3) = 0
open("/usr/share/locale/en_US/LC_NAME", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=82, ...}) = 0
mmap2(NULL, 82, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001c000
close(3) = 0
open("/usr/share/locale/en_US/LC_PAPER", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=39, ...}) = 0
mmap2(NULL, 39, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001d000
close(3) = 0
open("/usr/share/locale/en_US/LC_MESSAGES", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=112, ...}) = 0
close(3) = 0
open("/usr/share/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) =
3
fstat64(3, {st_mode=S_IFREG|0644, st_size=57, ...}) = 0
mmap2(NULL, 57, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001e000
close(3) = 0
open("/usr/share/locale/en_US/LC_MONETARY", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=291, ...}) = 0
mmap2(NULL, 291, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001f000
close(3) = 0
open("/usr/share/locale/en_US/LC_COLLATE", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=21499, ...}) = 0
mmap2(NULL, 21499, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40020000
close(3) = 0
open("/usr/share/locale/en_US/LC_TIME", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2456, ...}) = 0
mmap2(NULL, 2456, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40026000
close(3) = 0
open("/usr/share/locale/en_US/LC_NUMERIC", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=59, ...}) = 0
mmap2(NULL, 59, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40027000
close(3) = 0
open("/usr/share/locale/en_US/LC_CTYPE", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=178476, ...}) = 0
mmap2(NULL, 178476, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40171000
close(3) = 0
chroot("/home/shuveb/embtest/") = 0
chdir("/") = 0
execve("/bin/sh", ["/bin/sh"], [/* 44 vars */]) = 0
brk(0) = 0x808c8d0
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/home/shuveb/embtest//etc/ld.so.cache", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/home/shuveb/embtest//lib/i686/mmx/libc.so.6", O_RDONLY) = -1
ENOENT (No such file or directory)
stat64("/home/shuveb/embtest//lib/i686/mmx", 0xbfffef30) = -1 ENOENT (No
such file or directory)
open("/home/shuveb/embtest//lib/i686/libc.so.6", O_RDONLY) = -1 ENOENT
(No such file or directory)
stat64("/home/shuveb/embtest//lib/i686", 0xbfffef30) = -1 ENOENT (No
such file or directory)
open("/home/shuveb/embtest//lib/mmx/libc.so.6", O_RDONLY) = -1 ENOENT
(No such file or directory)
stat64("/home/shuveb/embtest//lib/mmx", 0xbfffef30) = -1 ENOENT (No such
file or directory)
open("/home/shuveb/embtest//lib/libc.so.6", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/home/shuveb/embtest//lib", 0xbfffef30) = -1 ENOENT (No such
file or directory)
writev(2, [{"/bin/sh", 7}, {": ", 2}, {"error while loading shared
libra"..., 36}, {": ", 2}, {"libc.so.6", 9}, {": ", 2}, {"cannot open
shared object file", 30}, {": ", 2}, {"No such file or directory", 25},
{"\n", 1}], 10/bin/sh: error while loading shared libraries: libc.so.6:
cannot open shared object file: No such file or directory
) = 116
exit_group(127) = ?
[root at shuveb root]#
==========================================================================
Help would be greatly appreciated!
---
Regards,
Shuveb Hussain
Visit my Blog www.livejournal.com/users/shuveb
---
Freedom is nothing else but a chance to be better. - Albert Camus
More information about the busybox
mailing list