移植android驱动遇到的一些问题和解决
郑重声明:
(可能有些不是能解决,还请见谅)
1、Q:apt-get: command not found
A:先搞清楚自己用的是啥系统吧,如果是ubuntu或者debian,去相应的版块问问题,否则,改用yum,Fedora里面不到apt-get不是什么太奇怪的事情。
在Fedora里正确的安装procinfo的方法就是(首先确保你是超级用户),yum install procinfo。你使用的su -c 'yum install procinfo'是正确的,如果装不上,
就把错误信息贴出来。
2、Q:nandflash如何正确分区:
A:(1)MISC分区
其中misc分区信息第一篇文章有解释: 保存设备配置信息:CID (Carrier or Region ID),USB和其它硬件设备配置信息,大约20K的样子。
(2)recovery分区
recovery 分区即恢复分区,在正常分区被破坏后,仍可以进入这一分区进行备份和恢复.我的理解是这个分区保存一个简单的OS或底层软件,
在Android的内核被破坏后可以用bootloader从这个分区引导进行操作。
(3)boot 分区
一般的嵌入式Linux的设备中.bootloader,内核,根文件系统被分为三个不同分区。在Android做得比较复杂,从这个 分区和来看,
这里boot分区是把内核和ramdisk file的根文件系统打包在一起了,是编译生成boot.img来烧录的。它有如下格式。
(4)rootfs-combin分区:文件系统分区
(5)cache分区:缓存
(6)一个分区例子
[ 2.329249] 0x0000000c0000-0x000000100000 : "misc"
[ 2.337472] 0x000000100000-0x000000900000 : "recovery"
[ 2.343285] 0x000000900000-0x000000c00000 : "kernel"
[ 2.347297] 0x000000c00000-0x00000cc00000 : "rootfs-combin"
[ 2.384980] 0x00000cc00000-0x000010000000 : "cache"
3、Q:想把自己写的一个flash的驱动程式加载到工程中,而且能够通过menuconfig配置内核时选择该驱动该怎么办呢?
A:第一:将您写的nandflash_tast.c 文档添加到/driver/mtd/maps/ 目录下。
第二:修改/driver/mtd/maps目录下的kconfig文档:
config MTD_nandflash_tast
tristate “my flash"
这样当make menuconfig时 ,将会出现 my flash选项。
第三:修改该目录下makefile文档。
4、Q:修改的地方?
A:\arch\arm\mach-s5pc100,原来没有\mach-s5pc100,修改者把led、按键驱动、nandflash分区放置在这个文件夹中
5、Q:/root/android/common/drivers/mtd/maps/Makefile:10: *** 未终止的变量引用。 停止。make[2]: *** [drivers/mtd/maps] 错误 2
A:obj-$(CONFIG_MTD_flashtest += flashtest.o ,这句少了右边括号
6、Q:drivers/mtd/maps/nandflash_tast.c:66: fatal error: plat/regs-nand.h: No such file or directory
A:取消电源管理选项
7、Q:
drivers/usb/gadget/r8a66597-udc.c: In function 'r8a66597_probe':
drivers/usb/gadget/r8a66597-udc.c:1585: error: implicit declaration of function 'IS_ERR'
drivers/usb/gadget/r8a66597-udc.c:1588: error: implicit declaration of function 'PTR_ERR'
make[2]: *** [drivers/usb/gadget/r8a66597-udc.o] 错误 1
make[1]: *** [drivers/usb/gadget] 错误 2
make: *** [drivers] 错误 2
A:取消USB Gadget Support 下的usb Peripheral Controller
8、Q:
exiteddrivers/video/console/vgacon.c: In function 'vgacon_startup':
drivers/video/console/vgacon.c:508: error: 'PCIMEM_BASE' undeclared (first use in this function)
drivers/video/console/vgacon.c:508: error: (Each undeclared identifier is reported only once
drivers/video/console/vgacon.c:508: error: for each function it appears in.)
drivers/video/console/vgacon.c: In function 'vgacon_do_font_op':
drivers/video/console/vgacon.c:1068: error: 'PCIMEM_BASE' undeclared (first use in this function)
make[3]: *** [drivers/video/console/vgacon.o] 错误 1
make[2]: *** [drivers/video/console] 错误 2
make[1]: *** [drivers/video] 错误 2
A:去除部分:Device Drivers --->
Graphics support --->
Console display driver support --->
[ ] VGA text console<span > </span>
9、Q:cc1:
错误:unrecognized command line option ‘-mlittle-endian’
cc1: 错误:unrecognized command line option ‘-mno-thumb-interwork’
scripts/mod/empty.c:1:0: 错误:ABI (aapcs-linux)未知,-mabi= switch
scripts/mod/empty.c:1:0: 错误:-march= switch所带参数(armv5t)不正确
A: 是没有到编译器的执行文件,export CROSS_COMPILE=arm-none-linux-gnueabi-
11、Q:
arch/arm/common/vic.c:284: error: conflicting types for 'vic_init'
/root/android/common/arch/arm/include/asm/hardware/vic.h:44: note: previous declaration of 'vic_init' was here
make[1]: *** [arch/arm/common/vic.o] 错误 1
12、Q:有的宏定义搜索不出来
A:sourceinsight配置keyconfig和makefile
14、
Q:drivers/input/touchscreen/s3c-ts.c:68: warning: "CONFIG_CPU_FREQ" is not defined
net/ethernet/eth.c:402: warning: 'print_mac' is deprecated (declared at net/ethernet/eth.c:397)
lib/decompress_bunzip2.c:511: warning: the frame size of 1880 bytes is larger than 1024 bytes
15、Q:nandflash分区位置
16、Q:nandflash读写问题1
A:作者的内核是通过U-BOOT写到Nand Flash的, U-BOOT 通过的软件ECC算法产生ECC校验码, 这与内核校验的ECC码不一样, 内核中的ECC码是由S3C2410中
Nand Flash控制器产生的。所以,我在这里选择禁止内核ECC校验。 //此段引用别人的 我只是照此修改了 搜索关键字NAND_ECC_SOFT,在
s3c2410_nand_init_chip函数里,修改NAND_ECC_SOFT为NAND_ECC_NONE
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论