rk3026出现问题及其解决办法.docx
- 文档编号:6658189
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:18
- 大小:111.19KB
rk3026出现问题及其解决办法.docx
《rk3026出现问题及其解决办法.docx》由会员分享,可在线阅读,更多相关《rk3026出现问题及其解决办法.docx(18页珍藏版)》请在冰豆网上搜索。
rk3026出现问题及其解决办法
rk3026出现问题及其解决办法
1、Android源码编译错误
出现现象
com.sun.javadoc不存在
问题分析及尝试解决方案
是把jdk下的jre/bin加入环境变量
2、不能进入系统
出现现象
Kernel正常却不能进入系统,不能看到kernel的企鹅图标
问题分析及尝试解决方案
问题分析:
应该是boot.img文件有错,不能引导kernel。
解决方案:
1.需要重新编译Android源码。
make-j8。
2.重新生成boot.img,system.img,misc.img,recovery.img。
./mkimage.sh
3.使用RKAndroidTool.exe刷入kernel.img,boot.img,system.img
3、没有重力感应
出现现象
系统不能自动旋转屏幕
问题分析及尝试解决方案
问题分析:
kernel里面没有加入重力感应传感器驱动程序。
解决方案:
1.makemenuconfig
2.
3.
4.
5.
6.
7.退出保存,makeclean,
8.Makekernel..img-j8
9../mkimage.sh
10.使用RKAndroidTool.exe刷入kernel.img,boot.img
4、待机白屏
出现现象
待机白屏,按开关反应不灵敏
问题分析及尝试解决方案
原因分析:
Bl背光设置电压不对
板级文件(kernel\arch\arm\mach-rk3026\board-rk3026-86v.c)
1.找到rk29_backlight_io_deinit。
2.
3.找到rk29_backlight_pwm_suspend。
发现屏的显示有问题,先查一下外围环境是否正常。
再作软件调节:
解锁屏闪、开机屏闪,可以延时一下背光。
屏闪、屏抖,可以修改一下帧率,时序。
clk=v_tal*h_tal*mhz
延时可以调时序,也可以避免不稳定的信号。
有些屏,每次初始化都会关背光,可能跟屏有关。
有些屏,供电过低,会导致上电时白屏,可以调节一下电压
#defineDCLK_POL0//bypass显示时,画面抖动,可以尝试将这个取反
#defineS_DCLK_POL0//当双屏显示画面抖动时,可以尝试将这个取反
4.
5、照相机打开失败
出现现象
不能进入照相机,异常退出
问题分析及尝试解决方案
问题分析:
没有装入相对应的camera驱动
解决办法:
配置kernel加入GC0308、GC2035驱动程序
1.makemenuconfig
2.
3.
4.
5.
6.
7.Make之后,重新刷入kernel.img
6、后置摄像头方向不对
出现现象
画面没有在正常的角度上,可以旋转了90度或者270度,或者180度
问题分析及尝试解决方案
原因分析:
摄像头角度没有设置好
\kernel\arch\arm\plat-rk\rk_camera.c
1.找到intrk_sensor_register(void)
2.
7、隐藏自动自动背光开关
出现现象
在没有光线感应器的情况下,不应该显示自动背光开关
问题分析及尝试解决方案
1.\frameworks\base\packages\SystemUI\res\layout\status_bar_toggle_slider.xml
2.添加红框的内容
3.
4.
8、音量调节
出现现象
声音过大或过小时调节
问题分析及尝试解决方案
1.kernel\sound\soc\codecs\rk3026_codec.c
2.
3.OUT_VOLUME为输出音量
4.CAP_VOL为录音音量
9、蓝牙共享网络隐藏
出现现象
没有蓝牙但是有蓝牙共享网络选项
问题分析及尝试解决方案
1.\packages\apps\Settings\res\xml\tether_prefs.xml
2.
3.\packages\apps\Settings\src\com\android\settings\TetherSettings.java
4.
10、用adb工具查看adc的值
出现现象
问题分析及尝试解决方案
1.打开debug模式
2.adbshell
3.cdsys/class/input/input0/device
4.catget_adc_value
11、修改关机充电动画
出现现象
问题分析及尝试解决方案
方法一、在源码里面修改
1.cdsystem/core/charger/
2.把里面的图片换掉
3.mm-B
方法二、使用FWFactoryTool
1.选择固件解压。
2.进入Temp\Boot\Boot\res\images\charger\
3.替换掉图片
4.点击确认修改,生成新的固件。
12、flash更新之后,软件上不能反映出来
出现现象
从4G升级为8G之后,软件上看到可用容量还是原来的样子
问题分析及尝试解决方案
1.短接flash
2.清除flash
3.重新刷入loader
13、旋转开机小企鹅
出现现象
可以旋转180
问题分析及尝试解决方案
1./drivers/video/rockchip/rk_fb.c;
2.rk_fb_register();
3.if(fb_prepare_logo(fb_inf->fb[0],FB_ROTATE_UR))
4.改成FB_ROTATE_UD
说明:
FB_ROTATE_UR宏定义在drivers/video/fbmem.h
14、PNG转PPM
出现现象
问题分析及尝试解决方案
1、$pngtopnmlogo.png>logo.pnm
2、$pnmquant224logo.pnm>logo224.pnm
3、$pnmtoplainpnmlogo224.pnm>logo_linux.ppm
15、修改kernel阶段背光亮度
出现现象
修改进入android前的屏幕亮度
问题分析及尝试解决方案
1、drivers\video\backlight\rk29_backlight.c
2、staticintrk29_backlight_probe(structplatform_device*pdev)
3、rk29_bl->props.brightness=200;默认为200最亮值
16、修改默认壁纸
出现现象
问题分析及尝试解决方案
1、android4.2_au/out/target/product/rk3026/system/media/rkfactory
2、替换想换的壁纸
3、然后执行./mkimg.sh即可
4、优先寻找这个目录下的文件。
1、android4.2_au\frameworks\base\core\res\res\drawable-sw720dp-nodpi此目录为开机后默认壁纸目录,使用相同分辨率的壁纸替换即可,drawable-sw720dp-nodpi如没有次分辨率,默认到上层的drawable-nodpi目录下找。
默认壁纸命名为default_wallpaper.jpg。
然后在源码中执行一下命令。
sourcebuild/envsetup.sh
mmmframeworks/base/core/res/
./mkimge.sh
下载即可。
2、修改壁纸路径,存放系统自带的壁纸,存放格式为一大一小,android4.2_au\packages\apps\Launcher2\res\drawable-sw720dp-nodpi。
存放图片后,修改图片存放数组,values-sw720dp/wallpaper.xml,有几张图片就写几个。
17、按键值的更改
出现现象
加减音量键相反或者返回键无效,确定键值。
问题分析及尝试解决方案
1、查看arch/arm/mach-rk3026/board-rk3026-86v.c文件中key_button结构体中adc_value的值。
2、如十所示“用adb工具查看adc的值”,找到相互对应的值并更改
18、新源码编译
出现现象
拿到的是全新的Android源码,需要改成板子能运行的代码
问题分析及尝试解决方案
1、刚拿到Android源码时,对源码进行编译,把编译后的kernel单独拷贝出来与prebuilts文件夹放在同一目录中。
2、改kernel,用beyondcompare工具把新的kernel与以前可运行的kernel比较,主要比较文件是
1 .config,看情况更改
2 arch/arm/mach-rkxxx/board-rkxxx-86v.c,如果需要更改camera,这需要更改board-rk3026-86v-camera-xxxxxx.c。
如果需要更改camera驱动,需要更改drivers/media/video/rk30_camera.c文件。
曾加相应的驱动,并且更改本层的Makefile和Kconfig。
3 需要改屏幕分辨率时,找到kernel/drivers/video/rockchip/screen/相对应的文件分辨率添加上,同时在本层的Makefile和Kcongfig中添加相应的信息。
4 更改电源选项,drivers/power/下的axp-cfg.h和rk30_adc_battery.c以及rk30_factory_adc_battery.c等为主要更改对象。
5 8188/8723camera芯片:
DeviceDrivers--->[*]Networkdevicesupport--->[*]WirelessLAN--->WiFidevicedriversupport(Realtek8188EUUSBWiFiSupport)--->选择对应的芯片(X)Realtek8188EUUSBWiFiSupport||()Realtek8723AUUSBWiFiSupport
6 电源管理文件:
kernel/drivers/power/axp_power/axp_cfg.haxp_mfd.c等文件。
7 摄像头驱动:
DeviceDrivers--->Multimediasupport--->Videocaptureadapters--->ROCKCHIPSUPPORTEDSOCCAMERAS--->
Drivers/media/video/soc_cammera.c||hm5065_rkxxx.c
8 不同的芯片使用不同的loader和修改分区表等。
19、重力感应反转
出现现象
上下或左右重力感应倒置
问题分析及尝试解决方案
1、主要重力感应芯片,mc3230,mma7660,stk831x,3026用的是831的,在板级文件中更改,arch/arm/mach-rk3026/board-rk3026-86v.c找到staticstructsensor_platform_dataMC3230_info等结构体实现,.orientation={1,0,0,0,1,0,0,0,1},分别为x,y,z。
其中x分别代表xyz,y代表xyz。
如反向,横反向,把x值取相反,竖反向,y值取反。
Nw1036用的是stk831的芯片。
20、修改开机logo为BMP图像
出现现象
问题分析及尝试解决方案
1、确定屏幕分辨率,如分辨为1280x800,24位,则需要1280x80024bit的图片,放置drivers/video/logo,下,
2、修改驱动,DeviceDrivers--->Graphicssupport--->[*]Bootuplogo--->Bmplogosupport--->
21、摄像头倒置180度
出现现象
摄像头图像倒置
问题分析及尝试解决方案
1、常用摄像头为gc0308,gc2035,gc0329,hm5065,可在板级文件(以自己在board-rk3026-86v.c中包含的文件为准hm5065为board-rk3026-86v-camera-hm5065.c)找到new_camera_device结构体实现,第五位为配置mirr(左右镜像)flip(垂直镜像)为0或1。
2、如上述无效,更改drivers/media/video/hm5065.c找到0x0083(mirr)0x0084(flip)的值,0或1。
3、如还是无效,更改arch/arm/mach-rk3026/board-rk3026-86v-camera-hm5065文件中CONFIG_SENSOR_1RK29_CAM_SENSOR_GC0308的CONFIG_SENSOR_ORIENTATION_1更改角度。
4、竖屏时,图像上下颠倒,横屏时图像左右颠倒,那么请调整Sensor的Mirror寄存器(或称为Flip_x/Flip_h);―――――左右镜像
5、竖屏时图像左右颠倒,横屏时图像上下颠倒,那么请调整Sensor的Flip寄存器(或称为Flip_y/Flip_v);―――――――垂直镜像
6、调整sensor的镜像时,修改的是kernel的sensor驱动,sensor驱动中相关分辨率序列数组中有关寄存器内容都必须修改:
22、开机Android图像倒置
出现现象
开机是android图像倒置180度
问题分析及尝试解决方案
1、这是Android内置的东西,与kernel无关。
打开android4.2_au/out/target/product/rk3026/system/build.prop文件,找到ro.sf.hwrotation,更改角度,如原来为270,则改为90
23、更改开机动画
出现现象
问题分析及尝试解决方案
1、制作开机动画,参考“固件开发工具_Package_V3.4发布说明.pdf”,将制作好的动画,利用adb工具下载到系统,adbpushxx.zip/system/media下。
24、更换tp驱动ft5306_ts_av
出现现象
需要更换tp驱动时
问题分析及尝试解决方案
1、首先在当前目录Makefile和Kconfig中增加相应的代码。
2、在ft5306_ts_av.c中找到ft5306_probe函数,找到xxx_platform_data结构体指针,根据名字找到在板级文件arch/arm/mach-rk3026/board-rk3026-86v.c找到structft5306_av_platform_dataft5x0x_info结构体定义,如果没有,转到3,根据现有结构体自己增加相应的结构体并且增加的结构实现要和arch/arm/plat-rk/include/plat/board.h文件总定义的一致。
3、如果2中的结构体没有,找到arch/arm/plat-rk/include/plat/board.h文件,根据现有结构体增加structft5306_av_platform_data结构体,然后转2
4、如果只知道ftxxxx_platform_data结构体名字而不知到去哪找,可以使用grepftxxxx_platform_data.-rw查找。
注:
1、一般xx_platform_data结构体定义都在arch/arm/plat-rk/include/plat/board.h中,如wifi_platform_data,sensor等。
25、增加一个LED灯
出现现象
新增一个LED灯时,解决办法
问题分析及尝试解决方案
1、首先明白需求,然后明确LED灯所用的IO口,nw1036增加了一个led灯,io口为GPIO1_B3,确定io口拉高或拉低有效。
2、可以在lcd或背光中增加led的代码。
3、使用内核定时器完成延时操作。
//led
#defineLED_EN_PINRK2928_PIN2_PB2
#defineLED_EN_VALUEGPIO_HIGH
#defineLED_CS_PININVALID_GPIO
#defineLED_CS_VALUEGPIO_LOW
/***********************************************************
*led
************************************************************/
structtimer_listmy_timer;
staticintrk_led_disable(void)
{
gpio_set_value(LED_CS_PIN,!
LED_CS_VALUE);
gpio_set_value(LED_EN_PIN,!
LED_EN_VALUE);
if(my_timer.expires<(jiffies+300*HZ))
del_timer(&my_timer);
return0;
}
staticintrk_led_enable(void)
{
gpio_set_value(LED_CS_PIN,LED_CS_VALUE);
gpio_set_value(LED_EN_PIN,LED_EN_VALUE);
init_timer(&my_timer);/*Alsoseesetup_timer()*/
my_timer.expires=jiffies+300*HZ;/*nisthetimeoutinnumberofseconds*/
my_timer.function=rk_led_disable;/*Functiontoexecuteafternseconds*/
my_timer.data=0;//func_parameter;/*Parametertobepassedtotimer_func*/
add_timer(&my_timer);/*Startthetimer*/
return0;
}
/***********************************************************
*rk30backlight
************************************************************/
staticintrk29_backlight_io_init(void)
rk_led_enable();
/***********************************************************
*fb
************************************************************/
staticintrk_fb_io_disable(void)
rk_led_disable();
staticintrk_fb_io_enable(void)
rk_led_enable();
26、删除自动调节亮度功能
出现现象
没有感光器件,需要去掉自动调节亮度功能
问题分析及尝试解决方案
1.在display->brightness中的自动调整亮度
在android源码目录中找到如下文件<\packages\apps\Settings\res\layout\preference_dialog_brightness.xml>
在
id="@+id/automatic_mode"中加入 android: visibility="invisible" 修改完后在res目录执行mm重新生成system.img 2.在自定义控件中的自动调整亮度 frameworks\base\packages\SystemUI\res\layout找到quick_settings_brightness_dialog.xml,quick_settings_tile_brightness.xml 设置为android: visibility="invisible"控件不可用,或者android: visibility="gone"控件不可见 由于是自定义控件,上述更改可能无效。 找到对应的JAVA代码,frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\policy ToggleSlider.java(具体看上述xml文件控件的路劲文件)。 CompoundButton(混合按钮)TextView(文本显示)对应调节亮度和自动调节亮度. 3、frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/ BluetoothController.java 状态栏上蓝牙图标 27、关于蓝牙 出现现象 问题分析及尝试解决方案 1、蓝牙4.0Android中关于蓝牙的LOG,可通过如下命令打印: logcat-sblue*Blue*Bt*bt*& 如果想要支持BT4.0,需要打开bplus配置: 如果使用AP6476的GPS功能,也必须要打开bplus配置: 使用bplus: 确认device/rockchip/rk30sdk/wifi_bt.mk文件如下选项: BROADCOM_WIFI_SUPPORT: =true BROADCOM_BT_SUPPORT: =true 确认device/rockchip/rk30sdk/BoardConfig.mk文件中如下配置 ifeq($(strip$(BROADCOM_BT_SUPPORT)),true) BOARD_HAVE_BLUETOOTH? =true BOARD_HAVE_BLUETOOTH_BCM? =true BLUETOOTH_USE_BPLUS? =true 注: 如果这几个选项有修改,记得要makeclearn后重新编译 手工指定蓝牙firmwareHCD文件 修改external/bluetooth/bluedroid/conf/bt_vendor.conf文件,在其中指定 FwPatchFileName的文件名: FwPatchFileName=rk903.hcd #RK903,37.4MHz晶振 FwPatchFileName=rk903_26M.hcd #RK903,26MHz晶振,大多数用这个 FwPatchFileName=bcm2076b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- rk3026 出现 问题 及其 解决办法