admin 管理员组文章数量: 1086019
2024年3月22日发(作者:php邮件系统)
Mobile移动
可能遇到的问题及解决方法
的观察,Linux内核的众多维护者对文件命名及
 ̄)J'XA270为例,针对新旧版本(新版为linux-
文件的分布位置有很严谨的考量,某些可能说不
2.6.25一android-1.0 rl,旧版为linux-2.6.15.3)之间的
上是规范或是规定,但却都是直观且可以理解
差异而可能遇到的问题,来说明移植原则。
的。所以程序代码的位置在不同的版本可能有很
・尽可能将(硬件)平台相关(包含CPU
大的变化。解决方法是只考虑新旧版问改动的部
及周边硬件等设定)的程序代码从旧版本移植
分,也就是拿我们的linux一2.6.15.3与http://www.
到新版本上。
・针对硬件相关的程序代码,如果旧版相较
于Kerne1.org改动的地方(拿我们的linux.2.6.1 5.3
与http://www.kerne1.org的linux一2.6.15.3作比较)
与新版相同,但修改的内容或方法不同,这时
则以旧版为主,因为旧版是真正可以运作的版
本,说明与硬件相关程序代码是没有问题的。
_非硬件相关的程序代码,尽可能使用新
版的。
・若是遇到不知如何处理的情况,先跳
过,记录文件名,再完成比较容易移植及有把
握的文件,最后再回过头来处理先前跳过的文
件。这部分可能需要参考部分相关原始代码才
能决定要如何移植,列举如下。
参考其他同样使用PXA270的平台,比较新
旧版本的差异,我们是参考Mainstone等平台的
相关程序代码。
参考其他同样使用PXA2 7 0且可以在
linux一2.6 25下运作的平台,观察它们所修改的
程序代码。
部分Linux内核或是设备驱动的原始代码有
较大幅度变动,包含以新文件名取代旧文件、
资料结构改变等,这部分可能要比较多个文件
才能决定要如何修改,我们建议使用ctags,静
态追踪原始代码所修改的部分,并谨慎地判断
真正需要移植的程序代码。
上述四点是我们移植的原则。我们在移植过
程中遇到的问题及解决方法可归类为下列五项。
-资料结构改变:参考其他相同或是类似
的平台,比较新旧版本的差异,我们是参考
Mainstone等平台的相关程序代码。
-Init Section改变:一般发生在设备驱动
上,参考其他在新版编译成功的设备驱动,研
究它们从旧版本到新版本所作的修改,仿照它
们,修改编译发生问题的设备驱动。
・程序代码被分布在多个文件中:根据我们
kerne1.org的linux一2.6.15.3作比较,将修改的部分
套用至新版中,在此要注意redefine、undefine、
function renamed、function prototype modiifed等问
题,这部分要非常细心,可能要参考许多文件才
能知道有哪些地方是需要修改的。
_文件名称改变:这项一般伴随着上一
项。解决方法同上。
_如何得到新的kernel config(.config,
Linux内核的设定档),有两个方法可以得到新
的kenrel konfig[单词写错了应该是config]。
make oldconfig:使用旧的.config产生新的
.
config。
make pxa270 old defconfig:直接指定
defconfig档,这里假设pxa270
old defconfig是
旧版的defconfig,将该文件复制至linux.2.6.25一
android一1.0 r1/arch/arrrdeonfigs/下。
编译及测试Linux内核
我们使用的toolchain为http://www.codesour—
cery.corn/sgpp/lite/ann/portal/package3397/public/ann・
none—-linux--gnueabi/arm・-2008q3--41・・arm--none--linux・-
gnueabi.i686-pc—linux—gnu.mr.bz2。若是编译过程中
发生错误,建议针对错误消息进行相关修改,如
果不知道如何修改或是该错误不影rI ̄Linux内核的
开机流程,可以考虑直接关闭相关功能,目的是
让移植的Linux内核可以开机并看见控制台信息。
若是运行时遇 ̄llkernel panic,尝试从错误
消息中找出原因,搭配使用printk核心函数找出
发生问题的程序代码;再依个人需求,尝试修
改或是直接关闭该功能。 (未完待续)@
量 Az博责钟in任客d文编r 地omi辑昌d址o顾b为:i问()董M专技w世av家s术晓ck,顾)m (现d问aso任。knog深中rsx圳国t@w中c台。 s一d湾n无第.线e一t) 位(w公w开
版权声明:本文标题:Android操作系统移植经验大分享(上) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1711115397a589272.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论