艰辛的android2.3移植日记

本文记录了作者在使用嵌入式开发板过程中遇到的乱码问题及解决方案,包括内核编译配置调整、串口初始化修改等方面。

其实前一阵就开始了,但是没记下来,好多奇怪的问题也忘了怎么弄的了,所以还是写一些记录下来。

 

拿到开发板,首先做的就是下载源码了,

我是从用git弄的kernel源码,common分支的,好像是2.6.32的

拿过来源码当然就开始编译喽

一编译就出了问题

 

我这个是在 ubuntu9.10下面编译的,好像下的内核只支持64位的机器,所以要对内核进行一些修改

 

首先要修改内核的编译工具,不然会报

version `GLIBC_2.11' not found

额。。在源码里面找找,把

prebuilt/linux-x86/toolchain下面的arm-eabi-4.4.0的文件夹名字改成arm-eabi-4.4.3

原来的arm-eabi-4.4.3文件夹备份一下

然后修改一些代码,不然会报

Only 64-bit build environments are supported beyond froyo/2.2

先修改 android2.3/build/core/main.mk

#ifneq (64,$(findstring 64,$(build_arch))) 

   ifneq (i686,$(findstring i686,$(build_arch)))

 

然后修改 cgi cs java-jni util 目录下的Android.mk文件

# LOCAL_CFLAGS += -m64 

   #LOCAL_LDFLAGS += -m64 

   LOCAL_CFLAGS += -m32 
   LOCAL_LDFLAGS += -m32

 

之后继续编译,报了

out/target/product/generic/obj/lib/libOpenSLES.so: undefined reference to `typeinfo for android::SortedVectorImpl

 

修改方法为

1.将system/media/opensles/libopensles下的IAndroidEffect.c文件重命名为IAndroidEffect.cpp

2.将同文件夹下的Android.mk中的IAndroidEffect.c改为IAndroidEffect.cpp

 

这样编译是正常通过了

 

下一步就是烧写了

结果一烧伤就出问题了。。。system type 选错了

新下的内核中config里本身就带了对s3c6410的支持,我的扳子这里要选支持SMDK6410

之后内核是跑起来了

 

可是奇怪的问题又出现了。。。

Console: colour dummy device 80x30之后就全是乱码

但是如果开了boot logo 的话能显示小企鹅,就是说除了乱码其他没问题。。

去网上找了好久也没有一点有用的。。。

 

我觉得是串口出了问题 就打开了serial debug 发现问题是出现在初始化串口之后

唉。。。没办法,我就在源码里找啊。。。

后来在 driver/serial/samsung.c 里找到了报错的地方,console_init 函数里出了问题

由于是刚接触linux 内核,也不知道怎么改好

就一点点的printk

发现问题出在最后 return 调用的那个函数,是将串口的一些参数修改掉

我想啊,这串口本来不好好的么,要是不修改会不会好呢?

于是我进那个函数看了看,发现它正常返回 0

我就直接在console_init 中return 0了。。。。不要鄙视我,我什么也不懂。。。

接着再跑,乱码没了~

 

可是后面一些的地方又出了乱码了。。。唉

我就一层一层往里看,总算找到出问题的地方了

在 driver/serial/samsung.c里的s3c24xxx_serial_set_termios函数中出了问题

然后一点点printk 发现把wr_regl(port, S3C2410_UBRDIV, quot);注释掉就好了

说白了就是让它在重新设置串口的时候无效就行了

前面的那个问题也出在这个函数,不过需要注释掉的不是同一行,所以前面我还是让他return 0吧

 

这么改也只能解决一会的问题,以后这么做肯定不行的,等以后有时间研究研究代码在找好的解决办法吧

 

之后就能正常的跑到找文件系统了。。。不过提示找不到。。。。

还没解决。。唉,慢慢来。。。

 

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值