社区
Android
帖子详情
Android内核和普通Linux根文件系统的配合
roamer888
2012-05-01 12:35:50
请问一下,在一个Android平台上,我不想用Android平台自带的根文件系统(主要是太复杂),而用一个在其他嵌入式Linux根文件系统,这中间需要对个这个根文件系统作特殊的配置吗?
现在这种融合的系统基本上能跑起来,但是网络接口上有点问题,在TCP传输一阵子之后,系统会完全死掉,串口上没有任何输出信息,core dump也没有,很郁闷。
麻烦各位高人指教一下!先谢过了!
...全文
559
11
打赏
收藏
Android内核和普通Linux根文件系统的配合
请问一下,在一个Android平台上,我不想用Android平台自带的根文件系统(主要是太复杂),而用一个在其他嵌入式Linux根文件系统,这中间需要对个这个根文件系统作特殊的配置吗? 现在这种融合的系统基本上能跑起来,但是网络接口上有点问题,在TCP传输一阵子之后,系统会完全死掉,串口上没有任何输出信息,core dump也没有,很郁闷。 麻烦各位高人指教一下!先谢过了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yangf_2008
2013-04-09
打赏
举报
回复
arm linux 平台下是否可以调用android下动态库
roamer888
2012-05-04
打赏
举报
回复
最近发现,如果限制了网络传输速率,则不会死机。之前没有限速时,CPU占用率很高,95%以上;限速之后, CPU占用率低了一些。
不限速这种情况下,会不会是其他的进程/线程没有机会被执行而把系统挂死?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
roamer888
2012-05-04
打赏
举报
回复
另外,1号进程是swapper,而init的进程号是1045,这是不是有问题啊?1号进程应该是init才对吧?
CyberLogix
2012-05-03
打赏
举报
回复
但是网络接口上有点问题,在TCP传输一阵子之后,系统会完全死掉,串口上没有任何输出信息,core dump也没有,
这个是否是ROOTFS有关联,应该是网络库的问题或者其他方面的问题
roamer888
2012-05-02
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
bionic C库,是android默认使用的C库,跟内核没有关系。如果没有修改,NDK中交叉编译使用的C库也是bionic。
在linux下跑android可以吧android看作是一个应用程序,他需要的库在/system/lib下,应该和你文件系统的/lib不冲突,也不能冲突。
android用了ramdisk机制,如果你不想用,完全可以绕过。kernel参数中root= 你现在的文件系统……
[/Quote]
谢谢你,解释的很清楚。
我用的也是ramdisk作为rootfs,但是我自己的ramdisk,压缩包大概有3MB,包含busybox、库、各种配置文件,以及我的应用程序。Android自带的ramdisk很小,只有100多KB,当然它会mount其他文件系统,如system和userdata。
我相当于完全抛弃了Android的文件系统,而使用自己的rootfs和库。我的应用程序也是基于这些库编译,所以不存在和Bionic C库冲突的问题,而且我还试过采用-static编译应用程序,仍然会出现问题。
看来得试试其它办法了。
念茜
2012-05-02
打赏
举报
回复
bionic C库,是android默认使用的C库,跟内核没有关系。如果没有修改,NDK中交叉编译使用的C库也是bionic。
在linux下跑android可以吧android看作是一个应用程序,他需要的库在/system/lib下,应该和你文件系统的/lib不冲突,也不能冲突。
android用了ramdisk机制,如果你不想用,完全可以绕过。kernel参数中root= 你现在的文件系统的根位置,相当与用你现在的文件系统做android的ramdisk
CyberLogix
2012-05-01
打赏
举报
回复
在initrc中配置根文件系统构建自己的rootfs
念茜
2012-05-01
打赏
举报
回复
android用的不是glibc而是bionic C库,android的网络操作依赖libnetutils。不同的C库有可能产生不同影响。
用ulimit打开core dump文件或者抓包,试试看吧
roamer888
2012-05-01
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
在initrc中配置根文件系统构建自己的rootfs
[/Quote]
这种做法是用的Android自带的根文件系统,然后把自己的文件系统mount在某个目录下?
我现在是直接把我的文件系统作为Android内核的根文件系统来使用,整个系统基本上跑起来了,只是有个应用程序跑起来有点不正常。
谢谢你的回复!
roamer888
2012-05-01
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
android用的不是glibc而是bionic C库,android的网络操作依赖libnetutils。不同的C库有可能产生不同影响。
用ulimit打开core dump文件或者抓包,试试看吧
[/Quote]
请问这个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
Linux
内核
编程:设备树overlay和ConfigFS
文件系统
设备树的overlay功能,目前还没有加入到
内核
mainline(
linux
-5.10.x),但目前有些开发板和配套的BSP已经支持了,支持在系统运行期间动态修改设备树文件。如果你手头的开发板或
内核
平台还没有支持device tree ...
Windows
内核
和
Linux
内核
比较
Windows
内核
和
Linux
内核
比较
Linux
内核
源码分析(强烈推荐收藏!)
Linux
内核
是一个操作系统(OS)
内核
,本质上定义为类Unix。它用于不同的操作系统,主要是以不同的
Linux
发行版的形式。
Linux
内核
是第一个真正完整且突出的免费和开源软件示例。
Linux
内核
是第一个真正完整且突出的免费和开源软件示例,促使其广泛采用并得到了数千名开发人员的贡献。
Linux
内核
由芬兰赫尔辛基大学的学生 Linus Torvalds 于 1991 年创建。随着程序员调整其他自由软件项目的源代码以扩展
内核
的功能,它迅速取得了进展。
Linux
文件系统
的工作原理深度透析
磁盘为系统提供了最基本的持久化存储。
文件系统
则在磁盘的基础上,提供了一个用来管理文件的树状结构。 那么,磁盘和
文件系统
是怎么工作的呢?又有哪些指标可以衡量它们的性能呢? 索引节点和目录项
文件系统
,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的
文件系统
。 你要记住最重要的一点,在
Linux
中一切皆文件。不仅
普通
的文件和目录,就连块设备、套接字、管道等,也都要通过统一的
文件系统
来管理。 为了方便管理,
Linux
文件系统
为每个文件都分配两个数据结构,索引节点(in
linux
内核
安全机制
Android
是一个基于
Linux
内核
的移动操作系统。
Linux
是一个支持多用户的系统,系统中的文件的访问权限是通过用户ID(UID)和用户组ID(GID)来控制的。换句话说,就是
Linux
的安全机制是基于UID和GID来实现的。
Android
在
Linux
内核
提供的基于UID和GID的安全机制的基础上,又实现了一套称为Permission的安全机制,如图1所示: 图1
Linux
的UID/...
Android
80,352
社区成员
91,288
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章