`
ptz235je
  • 浏览: 16893 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

利用HaRET移植android - 老知识收藏

 
阅读更多

利用HaRET移植android - 老知识收藏
2011年02月20日
  http://www.handhelds.org/moin/moin.cgi/HaRET
  1. 首先我们大家都知道Android是基于Linux之上的一个软件平台,Android移植的大部分工作其实是Linux到P535的移植。所以,我们首先需要完成Linux的移植。
  2. P535原本是Windows Mobile系统(以下简称WM),因此需要解决如何从WM引导进入Linux的问题。烧boot是不可能了,我只有一台P535,可不想把3000多大洋换成砖头。幸好有HaRET这个好工具,它运行在WM下,可以直接读取linux的zImage文件实现内核加载。所以,欲练神功,必先...
  学习HaRET,主页地址: http://www.handhelds.org/moin/moin.cgi/HaRET
  3. 接下来要编译一个能在P535上跑起来的linux内核文件zImage。从www.kernel.org下载下来的linux源代码编译生成的zImage是无法直接跑起来的,因为缺了对P535硬件设备的驱动支持。最好有一套能直接支持P535设备的Linux源代码,有吗?没有。如果有的话这移植工作就太没劲了。不过,我们可以找到一个好的起点。请访问链接:
  http://www.handhelds.org/moin/moin.cgi/GettingHandheldKernels
  handhelds是一个组织,他们的工作就是移植linux到各种PDA上面,包括HP、HTC、DELL等等,还有Asus,不过都是一些老的型号,不包括P535。这个组织似乎有一两年没什么动静了,他们的Familiar项目最后版本v0.84发布日期是06年8月20日。所以指望他们去更新支持P535是不可能了,我还尝试过发邮件想加入他们的队伍,结果没人理我:( 。
  看来只能自力更生了。他们虽然不更新了,但是他们的网站依然屹立。从上面的链接,我们可以下载到他们维护的最近的linux源代码版本2.6.21。这个版本就是我们的出发点。
  4. 载下来的这套源代码我们称为handheld linux2.6.21,它与官方linux2.6.21的区别在于增加了对很多PDA设备的驱动支持。虽然不包括P535,但我们可以参考其他类似设备完成对我们设备的驱动支持。我当时参考的其它设备主要有:Asus A730, Asus 696, HTC magician等。因为P535的很多硬件部件的芯片型号与这几款设备相同。
  那如何知道P535使用的都是什么芯片呢?这得下点狠功夫了,拆机!而且是很彻底的那种。不狠一点怎么能体会到干底层工作的乐趣?!心肠不够狠的弟兄可以参考我拆机后拍的照片。
  http://sites.google.com/site/siteofhx/Home/android/p535-hardware
  我这台已经被我肢解过好几十次了,之前换触摸屏、升级内存都是大手术,能幸存下来真是顽强。
  5. 知道了硬件芯片型号,可又不知道管脚连接,又不可能向Asus要电路图,怎么办?认真学习并操练过前面几个步骤的弟兄可能已经有答案了。HaRET这个工具再次出马,所以要不我怎么说欲练神功,必先....
  通过HaRET这个工具,我们可以知道P535中各个部件对应的GPIO,最重要的是搞清楚键盘、LCD、触摸屏,这三个硬件驱动的成功移植是我们的首要目标,这样才能体验到Android Touch操作的快感!
  6. OK,这几项准备工作完成后,您就可以开始埋头苦干了,写代码、编译、调试、拷贝、粘贴,快的话几天,慢的话几周,最后炮制出一个能在自己的机器上跑起来的zImage文件。
  对了,得用这个交叉编译器:
  http://www.codesourcery.com/gnu_ ... c-linux-gnu.tar.bz2
  7. 光有zImage最多只能进入黑漆漆的命令行界面,无法验证键盘、液晶和触摸屏是否工作正常,解决这个问题,您可以到这里:
  http://familiar.handhelds.org/re ... /files/ipaq-pxa270/
  下载一个rootfs系统,准备一张空闲的SD卡,将下载的文件解到卡中,然后通过HaRET引导您炮制好的linux kernel,启来后执行rootfs中的初始化脚本,进入GPE或者OPIE的图形界面,这时您就可以验证您的键盘、LCD和触摸屏驱动是否正常工作了。
  如果还不正常,那再埋头苦干吧,这关必须过了才能继续往下走。
  8. 过了上一关,Linux的移植已经被你踩在了脚下,您一定有一点兴奋感和成就感了。别急,让我们继续往上爬。
  Android SDK 1.0使用的linux版本是2.6.25,而我们刚刚完成移植的版本是2.6.21,要知道他们之间有什么不同吗?在此推荐一个非常棒的工具,Meld Diff Viewer,有了它,后面的工作将变得易如反掌。
  从Kernel.org下载一份官方的2.6.25,同您刚完成的handheld 2.6.21比较一下,不比不知道,一比吓一跳!改动的地方是不是很多?不要怕,让我们一步一步搞定。
  我们之前的移植是基于handheld的版本完成的,多少有点让我们感觉是踩在了别人的肩膀上爬上来的。没关系,至少我们学会了爬。现在让我们回到地上,自己爬上来。
  从Kernel.org再下载一份官方的2.6.21,用Meld同前面的handheld 2.6.21比较一下,将官方版本缺少的驱动合并过来,不要一股脑全部合并过来,看看您的P535缺少什么才合并什么,这样子您就非常清楚从官方下载的linux需要增加哪些驱动才能在您的机器上跑起来。
  合并完成后,编译和调试您的官方2.6.21版本,让它也能顺利的跑起来,进入GPE和OPIE图形界面。
  9. 把移植成功的官方2.6.21,同前面下载的官方2.6.25进行比较,官方比官方,差别是不是没那么恐怖了?同样,将2.6.25缺少的驱动文件从2.6.21合并过来,编译调试,让2.6.25也跑起来。
  10. OK,下面我们要真正开始同Android打交道了。
  先下载 Android 使用的linux版本,地址在此:http://code.google.com/p/android/downloads/list
  再下载Android SDK 1.0:http://code.google.com/android/download.html
  照此教程从SDK中提取Android的rootfs:http://discuz-android.blogspot.c ... id-file-system.html
  现在就差Android的linux zImage了。
  11. 将Android linux2.6.25同前面移植完成的官方linux2.6.25比较,找出其中的异同,将官方2.6.25缺少的东东从Android linux2.6.25合并过来,注意不要搞错方向了。其中,凡是涉及QEMU、Goldfish及yaffs2的内容没有用处,不要合并过来。您会发现其实Android对linux的改动很小。
  这一步的详细操作请参考这个链接:http://elinux.org/Android_on_OMAP
  然后编译,又得到一个zImage. 调试它,让它能顺利引导进入Android rootfs中的初始化脚本。
  12. 引导进入Android的图形界面不像进入GPE和OPIE那么顺利,因为Android对LCD驱动有特殊的要求,需要Frame Buffer驱动支持double buffering 和 pan function。您需要参考这个帖子:http://androidzaurus.seesaa.net/article/105551643.html 或者 http://www.androidrd.com/thread-9-1-1.html 完成对2.6.25自带的Frame Buffer驱动的修改。
  LCD驱动完成后就可以看到闪闪发光的 Android 机器人,并进入令人激动的 Android 界面了。
  13. 但等等,触摸屏还不能正常工作!再漂亮的界面,不能 Touch哪来的快感?所以,一定要挺住,完成这最后一步。
  Touchscreen驱动移植的关键在于2.6.25自带的WM97XX触摸驱动在pen点击屏幕时,没有发送 BTN_TOUCH 事件给上层,这在GPE下可以正常工作,但 Android可不理你,一点反应没有,因此,修改您的驱动,让它向Android发出求爱信息吧!
  此外,触摸驱动发出的X坐标是对的,Y坐标是倒过来的,您需要修改驱动纠正一下姿势。参考:http://androidzaurus.seesaa.net/article/90045743.html
分享到:
评论

相关推荐

    Haret 程序源程序代码

    此代码用于WM手机系统的调式用。相当于uboot的功能,对移植linux到wm系统上非常有用。

    haret:一个高度一致的分布式协调系统,使用成熟的协议构建并在Rust中实现

    haret:一个高度一致的分布式协调系统,使用成熟的协议构建并在Rust中实现

    SKTools_(W)QVGA

    就在手机点击haret.exe这个文件。然后有一个进度条弹出。很快的。然后手机会震动两下。如无意外的话,就会进入小企鹅界面。在屏幕会变成黑底,在左上方会有个小企鹅,然后屏幕会有一大堆E文在跳。等到E文跳完了,...

    06_QLibrary.zip

    06_QLibrary.zip

    毕业设计: 基于Densenet + CTC技术的文字检测识别的技术研究

    本毕设课题是属于计算机视觉下的目标检测与识别,对象为自然场景下的各种文本信息,通俗的说就是检测识别图片中的文本信息。由于文本的特殊性,本毕设将整个提取信息的过程可以分为检测、识别两个部分。 论文对用到的相关技术概念有一定的介绍分析,如机器学习,深度学习,以及各种的网络模型及其工作原理过程。 检测部分采用水平检测文本线方式进行文本检测,主要参考了乔宇老师团队的 CTPN 方法,并在正文部分从模型的制作到神经网络的设计实现对系统进行了较为详细的分析介绍。 识别部分则采用的是 Densenet + CTC,对于印刷体的文字有较好的识别。

    毕业设计 基于javaweb的在线答题平台

    毕业设计 基于javaweb的在线答题平台

    numpy安装 python get-pip.py

    numpy安装 numpy安装 python get-pip.py

    基于用户、物品的协同过滤算法.zip

    协同过滤算法(Collaborative Filtering)是一种经典的推荐算法,其基本原理是“协同大家的反馈、评价和意见,一起对海量的信息进行过滤,从中筛选出用户可能感兴趣的信息”。它主要依赖于用户和物品之间的行为关系进行推荐。 协同过滤算法主要分为两类: 基于物品的协同过滤算法:给用户推荐与他之前喜欢的物品相似的物品。 基于用户的协同过滤算法:给用户推荐与他兴趣相似的用户喜欢的物品。 协同过滤算法的优点包括: 无需事先对商品或用户进行分类或标注,适用于各种类型的数据。 算法简单易懂,容易实现和部署。 推荐结果准确性较高,能够为用户提供个性化的推荐服务。 然而,协同过滤算法也存在一些缺点: 对数据量和数据质量要求较高,需要大量的历史数据和较高的数据质量。 容易受到“冷启动”问题的影响,即对新用户或新商品的推荐效果较差。 存在“同质化”问题,即推荐结果容易出现重复或相似的情况。 协同过滤算法在多个场景中有广泛的应用,如电商推荐系统、社交网络推荐和视频推荐系统等。在这些场景中,协同过滤算法可以根据用户的历史行为数据,推荐与用户兴趣相似的商品、用户或内容,从而提高用户的购买转化率、活跃度和社交体验。 未来,协同过滤算法的发展方向可能是结合其他推荐算法形成混合推荐系统,以充分发挥各算法的优势。

    strcmp函数应用.zip

    strcmp函数应用.zip

    2.py

    2.py

    解读MIT-BIH数据的MATLAB代码.zip

    解读MIT-BIH数据的MATLAB代码.zip

    医保基本药品耗材目录查询2.0.exe

    可以查询各种医保内的药物,包括规格厂家和详细的相关资料,种类很齐全,方便大家查询,和了解药物价格等方面。

    使用Numpy将类保存到npz文件并读取文件,然后绘制图形的Python代码示例

    npz文件 代码中,我们首先定义了一个数据类Data,其中包含x和y两个成员变量。 然后,我们创建了数据对象,并将其保存到文件中。我们使用np.savez函数将数据字典保存到文件中,其中字典的键为变量名,值为对应的数据数组。 接下来,我们使用load_from_file方法从文件中加载数据,并创建一个新的数据对象。 最后,我们使用Matplotlib库绘制出新数据对象的图形。通过plot函数,我们将x和y作为横纵轴数据进行绘制。然后,我们添加坐标轴标签、标题,并显示网格线。 运行代码后,将显示一个绘制出的数据图形。 数据保存: def save_to_file(self, filename): data_dict = { 'x': self.x, 'y': self.y } np.savez(filename, **data_dict) # 将数据保存到文件 filename = 'data.npz' data.save_to_file(filename)

    matlab矩阵的生成.zip

    matlab矩阵的生成.zip

    模拟器非常好用,赶紧来下载

    模拟器非常好用,赶紧来下载

    常用进制转换器16进制10进制2进制转换计算器..exe

    大家好呀!今天来介绍一款常用进制转换器,也就是 16 进制、10 进制、2 进制转换计算器。有了它,你可以轻松实现不同进制之间的快速转换。无论是将 16 进制转换为 10 进制或 2 进制,还是从其他进制转换过来,它都能准确而高效地完成。无论是在计算机编程、数字电路等领域,还是日常对进制转换有需求的时候,它都能成为你的得力小助手,让进制转换不再麻烦,快来试试吧!

    GIMP完整指南GIMP完整指南

    GIMP完整指南

    IMG_20240519_155556.jpg

    IMG_20240519_155556.jpg

    java spring boot集成minio文件上传下载

    资源内容为java操作minio文件上传下载,也涉及到加密操作,主要是minio的SSE-C模式,具体内容在Sprintboot01ApplicationTests.MinioTest()中。 包含以下内容: //1.测试数据上传 testUploadString(); //2.测试数据下载 testDownLoadString(); //3..测试数据加密上传 testUploadStringEncryt(); //4.测试加密数据下载 testDownLoadStringEncryt(); //5.测试文件上传 testUploadFile(); //6.测试文件加密上传 testUploadFileEnctry(); //7.测试文件加密下载 testDownLoadFileEncryt();

    web期末大作业基于HTML+CSS实现的品优购购物网站静态网页源码(仿京东-期末大作业).rar

    品优购购物网站静态网页源码是基于HTML+CSS实现的一款仿京东风格的购物网站项目。该项目旨在帮助计算机相关专业的在校学生、老师以及企业员工更好地学习和掌握HTML+CSS技术,提升网页设计与制作的实践能力。 该源码经过精心设计和编码,实现了良好的页面布局和视觉效果,同时保证了代码的易读性和可维护性。通过下载和使用该源码,用户可以快速搭建起一个具有完整功能的购物网站静态页面,为后续动态交互功能的实现打下坚实基础。 此外,该源码还提供了详细的注释说明,方便初学者快速上手,理解并掌握网页制作的关键技术。对于有一定基础的学员来说,更可以在源码的基础上进行二次开发,实现更多个性化功能,满足实际项目需求。 经过运行测试,该源码表现稳定,无兼容性问题。无论是作为课程设计的参考资源,还是毕业设计的实践项目,品优购购物网站静态网页源码都将为您提供一个高质量的起点,助您在学习和实践中取得优异成绩。放心下载使用,开启您的网页制作之旅吧!

Global site tag (gtag.js) - Google Analytics