请问一下,在一个Android平台上,我不想用Android平台自带的根文件系统(主要是太复杂),而用一个在其他嵌入式Linux根文件系统,这中间需要对个这个根文件系统作特殊的配置吗?现在这种融合的系统基本上能跑起来,但是网络接口上有点问题,在TCP传输一阵子之后,系统会完全死掉,串口上没有任何输出信息,core dump也没有,很郁闷。麻烦各位高人指教一下!先谢过了!
调试欢乐多
用ulimit打开core dump文件或者抓包,试试看吧
请问这个bionic C库是编译在内核里边的吗?可以修改内核配置(重新编译内核)使其支持glibc吗?如果不能,可以在Android下编译我现在的应用程序吗(NDK能做到?)?非常感谢你的回复,让我收益匪浅。我的根文件系统是普通Linux的,/lib目录下的目前库文件也是普通Linux交叉编译的,目前有如以下文件
ld-2.5.so libc.so.6 libm.so.6 librt.so.1
ld-linux.so.3 libgcc_s.so.1 libpthread.so.0
这种做法是用的Android自带的根文件系统,然后把自己的文件系统mount在某个目录下?我现在是直接把我的文件系统作为Android内核的根文件系统来使用,整个系统基本上跑起来了,只是有个应用程序跑起来有点不正常。谢谢你的回复!
在linux下跑android可以吧android看作是一个应用程序,他需要的库在/system/lib下,应该和你文件系统的/lib不冲突,也不能冲突。
android用了ramdisk机制,如果你不想用,完全可以绕过。kernel参数中root= 你现在的文件系统的根位置,相当与用你现在的文件系统做android的ramdisk
谢谢你,解释的很清楚。
我用的也是ramdisk作为rootfs,但是我自己的ramdisk,压缩包大概有3MB,包含busybox、库、各种配置文件,以及我的应用程序。Android自带的ramdisk很小,只有100多KB,当然它会mount其他文件系统,如system和userdata。
我相当于完全抛弃了Android的文件系统,而使用自己的rootfs和库。我的应用程序也是基于这些库编译,所以不存在和Bionic C库冲突的问题,而且我还试过采用-static编译应用程序,仍然会出现问题。
看来得试试其它办法了。
不限速这种情况下,会不会是其他的进程/线程没有机会被执行而把系统挂死?ps一下,系统有如下进程:
# ps
PID USER TIME COMMAND
1 root 0:02 [swapper]
2 root 0:00 [kthreadd]
3 root 0:00 [ksoftirqd/0]
4 root 0:00 [watchdog/0]
5 root 0:00 [events/0]
6 root 0:00 [khelper]
9 root 0:00 [netns]
13 root 0:00 [async/mgr]
14 root 0:00 [pm]
17 root 0:00 [suspend]
163 root 0:00 [sync_supers]
165 root 0:00 [bdi-default]
167 root 0:00 [kblockd/0]
176 root 0:00 [khubd]
179 root 0:00 [kseriod]
184 root 0:00 [kmmcd]
194 root 0:00 [cfg80211]
286 root 0:00 [khungtaskd]
287 root 0:00 [kswapd0]
334 root 0:00 [aio/0]
343 root 0:00 [crypto/0]
932 root 0:00 [mtdblock0]
937 root 0:00 [mtdblock1]
942 root 0:00 [mtdblock2]
947 root 0:00 [mtdblock3]
952 root 0:00 [mtdblock4]
957 root 0:00 [mtdblock5]
962 root 0:00 [mtdblock6]
967 root 0:00 [mtdblock7]
971 root 0:00 [imapx200_ssim0.]
996 root 0:00 [gadget]
1002 root 0:00 [file-storage]
1027 root 0:00 [binder]
1042 root 0:00 [mmcqd]
1045 root 0:00 {linuxrc} init
1064 root 0:00 [flush-1:0]
1083 root 0:00 /usr/sbin/inetd
1097 root 0:00 -/bin/sh
1112 root 0:00 ps
另外,1号进程是swapper,而init的进程号是1045,这是不是有问题啊?1号进程应该是init才对吧?