Very interesting reading. As I read this I think it's a bit risky to have 2 filesystems coexisting. (and even after chrooting it wouldn't init). So I tried to boot only on the Android filesystem, but it won't boot, hanging after :
FS: Mounted root (nfs filesystem). VFS: Mounted root (nfs filesystem). <6>Freeing init memory: 124K Freeing init memory: 124K This is why I wanted to mix my davinci fs which I can boot on and the Android filesystem. Any way to see what's going down there as the console doesn't display any error message, debugging looks impossible. Some possibles issues : i used arm-crosstool-linux-gnueabi toolchain to build the Android source code and compile the kernel for my board, gcc version is 4.1.0 (got some warnings during kernel compilation). Francois Minaud On Dec 11, 5:58 pm, Sean McNeil <[EMAIL PROTECTED]> wrote: > Android uses a completely different linker/loader. You cannot run > Android directly from your davinci filesystem. Very important shared > libraries will not be in the correct place on the filesystem. Just > changing env variables is not good enough. In this setup, you are going > to have to use chroot: > > chroot /filesystem /init (or /sbin/init for me) > > Read up on chroot. It essentially will make /filesystem the / directory > for whatever command you invoke. > > FrancoisM wrote: > > Thanks for your reply. I am not sure I got what you mean. > > > I have a basic davinci filesystem in which i pasted the Android > > filesystem ( davinci filesystem is / and Android fs is in / > > filesystem/ ). I did that because if i directly boot the board with > > the Android filesystem, I don't come up with anything but the > > lowmem_shrink() display messages. > > > Is the missing libraries result from a linker problem? I am pretty > > much a beginner and feel lost. Some more clues would be welcome. > > > Thanks a lot, > > Francois Minaud > > > I tried the changes you suggested but pretty akwardly I guess as I > > come up with the same strace result. > > > On Dec 11, 5:08 pm, Sean McNeil <[EMAIL PROTECTED]> wrote: > > >> I don't think it is going to work that way. You have a different > >> linker/loader and all that which has to be in specific directories from > >> root. I think you'll have to do a chroot. That is what I do: > > >> chroot /root /sbin/init > > >> (I've moved init to the more appropriate /sbin directory). > > >> Either that, or you'll have to mount your nfs as /. > > >> FrancoisM wrote: > > >>> Alright, I got some progress. > >>> My previous error comes from my ... "wild" patching. Later I did it > >>> again smoothly using Meld which is a software I recommend to all of > >>> you guys. > > >>> So I got a kernel which boots and is supposed to work with my Android > >>> filesystem, I work with NFS. > > >>> I could boot with a basic filesystem (I don't init Android on boot) > >>> and when I try to launch "init" here is what I get : > > >>> my run.sh is : > >>> #!/bin/sh > >>> chmod 777 /filesys/data > >>> /init > > >>> export PATH=sbin:/filesys/system/sbin:/filesys/system/bin:/filesys/ > >>> system/xbin > >>> export LD_LIBRARY_PATH=/filesys/system/lib > >>> export ANDROID_BOOTLOGO=1 > >>> export ANDROID_ROOT=/filesys/system > >>> export ANDROID_ASSETS=/filesys/system/app > >>> export ANDROID_DATA=/filesys/data > >>> #export EXTERNAL_STORAGE /sdcard > >>> export BOOTCLASSPATH=/filesys/system/framework/core.jar:/filesys/ > >>> system/framework/ext.jar:/filesys/system/framework/framework.jar:/ > >>> filesys/framework/android.policy.jar:/filesys/framework/services.jar > > >>> the strace is : > > >>> [EMAIL PROTECTED]:/filesys# strace -ff -F -s 200 ./run.sh > >>> execve("./run.sh", ["./run.sh"], [/* 14 vars */]) = 0 > >>> uname({sys="Linux", node="davinci-francois", ...}) = 0 > >>> brk(0) = 0xab000 > >>> access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or > >>> directory) > >>> open("/etc/ld.so.cache", O_RDONLY) = -1 ENOENT (No such file or > >>> directory) > >>> open("/lib/tls/v5l/fast-mult/half/libncurses.so.5", O_RDONLY) = -1 > >>> ENOENT (No such file or directory) > >>> stat64("/lib/tls/v5l/fast-mult/half", 0xbeb6d1a8) = -1 ENOENT (No such > >>> file or directory) > >>> open("/lib/tls/v5l/fast-mult/libncurses.so.5", O_RDONLY) = -1 ENOENT > >>> (No such file or directory) > >>> stat64("/lib/tls/v5l/fast-mult", 0xbeb6d1a8) = -1 ENOENT (No such file > >>> or directory) > >>> open("/lib/tls/v5l/half/libncurses.so.5", O_RDONLY) = -1 ENOENT (No > >>> such file or directory) > >>> stat64("/lib/tls/v5l/half", 0xbeb6d1a8) = -1 ENOENT (No such file or > >>> directory) > >>> open("/lib/tls/v5l/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such > >>> file or directory) > >>> stat64("/lib/tls/v5l", 0xbeb6d1a8) = -1 ENOENT (No such file or > >>> directory) > >>> open("/lib/tls/fast-mult/half/libncurses.so.5", O_RDONLY) = -1 ENOENT > >>> (No such file or directory) > >>> stat64("/lib/tls/fast-mult/half", 0xbeb6d1a8) = -1 ENOENT (No such > >>> file or directory) > >>> open("/lib/tls/fast-mult/libncurses.so.5", O_RDONLY) = -1 ENOENT (No > >>> such file or directory) > >>> stat64("/lib/tls/fast-mult", 0xbeb6d1a8) = -1 ENOENT (No such file or > >>> directory) > >>> open("/lib/tls/half/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such > >>> file or directory) > >>> stat64("/lib/tls/half", 0xbeb6d1a8) = -1 ENOENT (No such file or > >>> directory) > >>> open("/lib/tls/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such file > >>> or directory) > >>> stat64("/lib/tls", {st_mode=S_IFDIR|0755, > >>> st_size=17592186044416, ...}) = 0 > >>> open("/lib/v5l/fast-mult/half/libncurses.so.5", O_RDONLY) = -1 ENOENT > >>> (No such file or directory) > >>> stat64("/lib/v5l/fast-mult/half", 0xbeb6d1a8) = -1 ENOENT (No such > >>> file or directory) > >>> open("/lib/v5l/fast-mult/libncurses.so.5", O_RDONLY) = -1 ENOENT (No > >>> such file or directory) > >>> stat64("/lib/v5l/fast-mult", 0xbeb6d1a8) = -1 ENOENT (No such file or > >>> directory) > >>> open("/lib/v5l/half/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such > >>> file or directory) > >>> stat64("/lib/v5l/half", 0xbeb6d1a8) = -1 ENOENT (No such file or > >>> directory) > >>> open("/lib/v5l/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such file > >>> or directory) > >>> stat64("/lib/v5l", 0xbeb6d1a8) = -1 ENOENT (No such file or > >>> directory) > >>> open("/lib/fast-mult/half/libncurses.so.5", O_RDONLY) = -1 ENOENT (No > >>> such file or directory) > >>> stat64("/lib/fast-mult/half", 0xbeb6d1a8) = -1 ENOENT (No such file or > >>> directory) > >>> open("/lib/fast-mult/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such > >>> file or directory) > >>> stat64("/lib/fast-mult", 0xbeb6d1a8) = -1 ENOENT (No such file or > >>> directory) > >>> open("/lib/half/libncurses.so.5", O_RDONLY) = -1 ENOENT (No such file > >>> or directory) > >>> stat64("/lib/half", 0xbeb6d1a8) = -1 ENOENT (No such file or > >>> directory) > >>> open("/lib/libncurses.so.5", O_RDONLY) = 3 > >>> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0 > >>> (\0\1\0\0\0\30\335\0\0004\0\0\0(\22\4\0\2\0\0\0044\0 \0\5\0 > >>> (\0\34\0\33\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\200l\3\0\200l > >>> \3\0\5\0\0\0\0\200\0\0\1\0\0\0\0p\3\02 > >>> fstat64(3, {st_mode=S_IFREG|0744, st_size=17592186044416, ...}) = 0 > >>> lseek(3, 224268, SEEK_SET) = 224268 > >>> read(3, "\24\0\0\0T\0\0\0\25\0\0\0MontaVista Software > >>> \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\06 > >>> mmap2(NULL, 292240, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, > >>> 0) = 0x40020000 > >>> mprotect(0x40057000, 66960, PROT_NONE) = 0 > >>> mmap2(0x40058000, 61440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED| > >>> MAP_DENYWRITE, 3, 0x30) = 0x40058000 > >>> mmap2(0x40067000, 1424, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED| > >>> MAP_ANONYMOUS, -1, 0) = 0x40067000 > >>> close(3) = 0 > >>> open("/lib/tls/libdl.so.2", O_RDONLY) = 3 > >>> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\324\t > >>> \0\0004\0\0\0\374\235\0\0\2\0\0\0044\0 \0\10\0(\0)\0& > >>> \0\6\0\0\0004\0\0\0004\0\0\0004\0\0\0\0\1\0\0\0\1\0\0\5\0\0\0\4\0\0\0\3\0\0\0\4\23\0\2 > >>> fstat64(3, {st_mode=S_IFREG|0644, st_size=17592186044416, ...}) = 0 > >>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, > >>> 0) = 0x40017000 > >>> lseek(3, 4892, SEEK_SET) = 4892 > >>> read(3, "\24\0\0\0T\0\0\0\25\0\0\0MontaVista Software > >>> \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\06 > >>> mmap2(NULL, 41104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, > >>> 0) = 0x40068000 > >>> mprotect(0x4006a000, 32912, PROT_NONE) = 0 > >>> mmap2(0x40070000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED| > >>> MAP_DENYWRITE, 3, 0) = 0x40070000 > >>> 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 > >>> (\0\1\0\0\0\0107\1\0004\0\0\0\364fK\0\2\0\0\0044\0 \0\v\0(\0R\0O > >>> \0\1\0\0p > >>> \274\276\17\0\274\276\17\0\274\276\17\0\20\23\0\0\20\23\0\0\4\0\0\0\4\0\0\0\6\0\0\2 > >>> fstat64(3, {st_mode=S_IFREG|0755, st_size=17592186044416, ...}) = 0 > >>> lseek(3, 1039100, SEEK_SET) = 1039100 > >>> read(3, "\24\0\0\0T\0\0\0\25\0\0\0MontaVista Software > >>> \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\06 > >>> mmap2(NULL, 1091588, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, > >>> 3, 0) = 0x40073000 > >>> mprotect(0x40171000, 51204, PROT_NONE) = 0 > >>> mmap2(0x40173000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED| > >>> MAP_DENYWRITE, 3, 0xf8) = 0x40173000 > >>> mmap2(0x4017c000, 6148, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED| > >>> MAP_ANONYMOUS, -1, 0) = 0x4017c000 > >>> close(3) = 0 > >>> mprotect(0x40178000, 8192, PROT_READ) = 0 > >>> mprotect(0x40071000, 4096, PROT_READ) = 0 > >>> mprotect(0x4001e000, 4096, PROT_READ) = 0 > >>> syscall_983045(0x40017d10, 0x2, 0x1, 0x4001f050, 0, 0x4001f050, > >>> 0x4001f3c8, 0, 0x4001f0a0, 0x4001f050, 0x4001f000, 0xbeb6d95c, 0, > >>> 0xbeb6d840, 0x40002784, 0x400102e4, 0x80000010, 0x40017d10, 0xd0b0, 00 > >>> rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>> open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3 > >>> close(3) = 0 > >>> brk(0) = 0xab000 > >>> brk(0xac000) = 0xac000 > >>> brk(0xad000) = 0xad000 > >>> getuid32() = 0 > >>> getgid32() = 0 > >>> geteuid32() > > ... > > read more » --~--~---------~--~----~------------~-------~--~----~ unsubscribe: [EMAIL PROTECTED] website: http://groups.google.com/group/android-porting -~----------~----~----~----~------~----~------~--~---