Fwd: 请教问题

12 views
Skip to first unread message

Kerr Yuandan

unread,
Nov 22, 2011, 8:23:00 PM11/22/11
to keyu...@googlegroups.com


---------- Forwarded message ----------
From: Kerr Yuandan <yuan...@gmail.com>
Date: 2011/11/22
Subject: Re: 请教问题
To: yi cao <caoy...@gmail.com>


你好,

你所做的修改仅仅是编译出了虚拟驱动,但是没有被包含到zImage文件中,这似乎和Nexus S中的WIFI的bcm4329.ko驱动一样,默认也是没有被打包到zImage文件中,至于如何能把驱动打包到zImage文件请参照Linux内核编译的相关书籍。

在Android中,驱动被放在/system/modules目录下,所以,你可以直接使用adb push把该驱动放到该文件夹下使用。当然, 你也可以直接修改vendor/samsung/crespo/device-vendor-blogs.mk文件,给上面加上复制语句,比如:
path/to/your/hello.so:system/moudles

元旦


2011/11/22 yi cao <caoy...@gmail.com>
柯老师您好!
    我是中科大的一名学生,买了一台android手机Nexus S之后,就一直很热衷于对android的开发,曾经自学过android application编程,成功的写过一个照相机的apk,目前我在学习android的内核方面的知识。最近买了您的《Android内核剖析》,拜读之后,受益匪浅。看过之后原来很多晕晕乎乎的问题都得到了解释,感觉这是一本很好很好的关于android的书。前几天我看到了第四部分“编译篇”,学习了对于android源码的知识之后,就想尝试给我的Nexus添加一个驱动程序,经过尝试后,我遇到了一个令我很困惑的问题,现在请允许我将这个问题详细的告诉老师,期望老师能够给我一些帮助,不甚感谢!

   我想添加一个虚拟驱动程序,取名就叫“hello”吧,在源码目录下的samsung/drivers目录下新建一个名为“hello”的目录,在其中放我的程序hello.c,Makefile,Kconfig三个文件,文件见附件。之后,我修改了如下的几个文件:

  1. 修改samsung/Makefile文件。
       将:

ARCH              ?=$(SUBARCH)

CROSS_COMPILE     ?=arm-eabi-

 

LDFLAGS_BUILD_ID= ………………

   修改如下:

ARCH              ?=arm

CROSS_COMPILE     ?=arm-eabi-

 

LDFLAGS_BUILD_ID=


 2. 修改/drivers/Kconfig文件。

  将source “drivers/hello/Kconfig”menu “Device Drivers” endmenu之中。


 3. obj-$(CONFIG_HELLO)   +=hello/添加到/drivers/Makefile中。


  然后在/samsung文件夹下make menuconfig,选择:

 Device Drivers -> Hello Driver added by Dong(New)

 选择为:“M”。


 此时在.config文件中已经多了一行:CONFIG_HELLO = m


 此时编译:make。


 编译成功之后,在arch/arm/boot/目录下出现zImage文件。

 现在刷机,刷机之后通过adb shell查看手机内的文件,没有出现所编写的hello驱动。


 老师能告诉我哪里出问题了吗?学生在这里先谢谢老师了。



                                 祝好。


                                     2011.11.22
























 



Reply all
Reply to author
Forward
0 new messages