rk3288 android 5.1 EC20 4G module调试

本文提供了一套详细的步骤来诊断和修复RIL Daemon服务在Android设备上可能遇到的问题,包括检查电压供电、daemon状态、so库配置、权限设置、库版本及usb设备识别等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先检查电压供电正常

  • 检查daemon是否运行

shell@test:/ # getprop init.svc.ril-daemon                                  
    running

If non-value, Stopped or Restarting is returned, rather than Running, it indicates that RIL daemon is not running.

  • 查看so库是否正确配置加载

 shell@test:/ # cat /init.rc | grep ril-daemon                               
    service ril-daemon /system/bin/rild -l /system/lib/libreference-ril.so

 please pay attention to the arguments,world spelling,blank space,etc. to make sure the RIL library is loaded correctly.

  • 检查permision

shell@test:/ # ll /dev/ttyUSB*                                              
    crw-rw---- radio    radio    188,   0 2011-01-01 12:00 ttyUSB0
    crw-rw---- radio    radio    188,   1 2011-01-01 12:00 ttyUSB1
    crw-rw---- radio    radio    188,   2 2011-01-01 12:00 ttyUSB2
    crw-rw---- radio    radio    188,   3 2011-01-01 12:00 ttyUSB3
    crw-rw---- radio    radio    188,   4 2011-01-01 12:00 ttyUSB4

  • 查看库版本来源

shell@test:/ #  getprop gsm.version.ril-impl
Quectel_Android_RIL_Driver_V1.42.17

 

Tips:

如果服务没起来,或者so库配置错误,检查init.rc

diff --git a/device/rockchip/rk3288/init.rc b/device/rockchip/rk3288/init.rc
index 6446f56..fd829e5 100644
--- a/device/rockchip/rk3288/init.rc
+++ b/device/rockchip/rk3288/init.rc
@@ -544,7 +544,9 @@
-service ril-daemon /system/bin/rild

+#modified to support EC20 4G module
+#service ril-daemon /system/bin/rild
+service ril-daemon /system/bin/rild -l /system/lib/libreference-ril.so
     class main
     socket rild stream 660 root radio
     socket rild-debug stream 660 radio system

如果usb没有正确识别,需要添加EC20 usb设备的vip,pid

diff --git a/kernel/drivers/usb/serial/option.c b/kernel/drivers/usb/serial/option.c
index b631a44..9d35278 100644
--- a/kernel/drivers/usb/serial/option.c
+++ b/kernel/drivers/usb/serial/option.c
@@ -601,6 +601,9 @@ static const struct option_blacklist_info telit_le920_blacklist = {
 };
 
 static const struct usb_device_id option_ids[] = {
+       // add EC20 4G module
+       { USB_DEVICE(0x2c7c, 0x0125) }, /* Quectel EC20 */
+       //add end

 

确保ip-up,chat,ip-down,libreference-ril.so正确拷贝并放到正确的位置

diff --git a/vendor/rockchip/common/phone/phone.mk b/vendor/rockchip/common/phone/phone.mk
index d22fba8..bb00162 100644
--- a/vendor/rockchip/common/phone/phone.mk
+++ b/vendor/rockchip/common/phone/phone.mk
@@ -6,8 +6,10 @@ CUR_PATH := vendor/rockchip/common
 PRODUCT_COPY_FILES += \
     $(CUR_PATH)/phone/etc/ppp/ip-down:system/etc/ppp/ip-down \
     $(CUR_PATH)/phone/etc/ppp/ip-up:system/etc/ppp/ip-up \
+    $(CUR_PATH)/phone/bin/chat:system/bin/chat \
     $(CUR_PATH)/phone/etc/ppp/call-pppd:system/etc/ppp/call-pppd \
-    $(CUR_PATH)/phone/etc/operator_table:system/etc/operator_table
+    $(CUR_PATH)/phone/etc/operator_table:system/etc/operator_table \
+    $(CUR_PATH)/phone/lib/libreference-ril.so:system/lib/libreference-ril.so

抓取log

logcat –b radio & //ril log
logcat –s pppd & //ppp 拨号 log
logcat –c –b radio & //清除以前 raido log


 

 

 

 

 

<think>首先,用户的问题是关于在RK3288平台上基于Android 5.1修改LCD横屏和竖屏的代码方法。用户指定了平台是RK3288,系统是Android 5.1。 我需要参考用户提供的引用内容,这些引用似乎是关于RK3288 Android系统的屏幕设置: - 引用[1]:讨论了RK3288支持双屏异显,提到如果两个LCD默认方向不一致,需要修改参数。例子中主屏是MIPI接口。 - 引用[2]:描述了使用LG EDP屏的配置,在dts文件中定义了屏幕参数,包括分辨率(2048*1536),并提到将横竖屏对调后显示正常。具体文件是rk3288-rk808.dts和lcd-LP097Qx1.dtsi。 - 引用[3]:Android 5.1中显示方向旋转,讨论了旋转角度(0,90,180,270度),扫描方式(SS和GS),以及开机动画分辨率的调整。 - 引用[4]:关于RK3288 Android 5.1的LVDS配置,包括screen-type, lvds-format等参数。 - 引用[5]:RK3288 Android 5.1的HDMI分辨率设置,提到如何查看当前分辨率。 用户的核心需求是修改LCD的横屏和竖屏设置代码。在Android系统中,屏幕方向通常通过设备树(dts文件)和系统属性来控制。 从引用中,我可以提取关键点: - 屏幕方向通常在设备树(dts)文件中定义,如引用[2]中的rk3288-rk808.dts和lcd-LP097Qx1.dtsi。 - 在dts文件中,有参数如screen-type, out-face, clock-frequency, hactive, vactive等。 - 引用[2]提到,将横竖屏对调后显示正常,暗示通过交换hactive和vactive可以改变方向。 - 引用[3]讨论了Android系统阶段的旋转,包括设置旋转角度。 所以,修改LCD横屏竖屏设置的方法可能涉及: 1. **修改设备树(dts)文件**:调整屏幕参数,如分辨率的方向。 2. **设置系统属性或旋转角度**:在Android框架中设置屏幕方向。 在Android系统中,屏幕方向由几个层面控制: - **内核层**:通过设备树定义屏幕参数。 - **框架层**:Android的display服务处理旋转。 对于RK3288 Android 5.1,具体步骤可能包括: - 编辑dts文件来定义屏幕的分辨率方向。例如,在dts中,hactive和vactive定义了水平和垂直像素数;如果交换它们,可能会改变方向。 - 在Android系统中,设置ro.sf.hwrotation属性来旋转屏幕。 从引用[3]:"进入android系统阶段,可旋转0、90、180、270度",这可以通过设置ro.sf.hwrotation来实现。 在Android源代码中,ro.sf.hwrotation属性用于硬件旋转。 所以,回答的结构应该清晰: 1. **介绍修改方法**:基于引用,总结步骤。 2. **详细步骤**:分步解释如何修改代码。 3. **代码示例**:提供dts文件修改的例子。 4. **注意事项**:提到可能的陷阱,如开机动画分辨率。 最后,生成相关问题。 回答需要使用中文,因为用户指定了"使用中文回答"。 系统级指令要求: - 行内数学表达式用$...$,但这里可能不涉及数学,所以注意如果有变量等。 - 独立公式用$$...$$,但这里可能不需要。 - LaTeX语法正确。 - 添加引用标识,如[^1]。 用户可见层:回答结构清晰,帮助用户逐步解决问题。 步骤: 1. **理解需求**:用户要修改LCD横屏竖屏设置。 2. **参考引用**:结合引用内容,提供具体方法。 3. **步骤分解**: - 修改设备树文件(dts)来定义屏幕方向。 - 设置Android系统属性(如ro.sf.hwrotation)来控制旋转。 - 调整开机动画分辨率(如果需要)。 4. **代码示例**:从引用[2]中提取dts修改例子。 5. **生成相关问题**:在最后添加相关问题。 相关问题示例: - 如何修改Android系统的默认屏幕方向? - RK3288双屏异显如何设置? - 开机动画分辨率不匹配怎么办? 确保回答真实可靠:基于提供的引用和一般知识。</think>### RK3288 Android 5.1 修改LCD横屏竖屏设置代码方法 在RK3288平台上基于Android 5.1修改LCD横屏竖屏设置,主要通过调整设备树(Device Tree Source, DTS)文件和Android系统属性来实现。以下是清晰的步骤指南,基于您提供的引用内容和RK3288 Android 5.1开发经验。修改的核心包括**内核层设备树配置**和**Android框架层旋转设置**,确保屏幕方向正确适配。 --- ### 步骤1: 修改设备树(DTS)文件 设备树文件(`.dts`或`.dtsi`)定义了屏幕的硬件参数,如分辨率、扫描方向和接口类型。这是修改屏幕方向的基础。 1. **定位和编辑DTS文件**: - RK3288的DTS文件通常位于Linux内核源码的`arch/arm/boot/dts/`目录下,例如`rk3288-rk808.dts`或自定义屏的DTS文件(如`lcd-LP097Qx1.dtsi`)。 - 关键参数: - `screen-type`: 指定屏幕类型(如`SCREEN_LVDS`、`SCREEN_EDP`)。 - `hactive`和`vactive`: 定义水平(横屏)和垂直(竖屏)像素数。**交换这两个值可改变默认方向**。 - `out-face`: 输出格式(如`OUT_P888`)。 - `clock-frequency`: 屏幕时钟频率。 - **修改示例**(基于引用[2]和[4]): - 假设原始DTS文件定义竖屏(例如`hactive = <1536>; vactive = <2048>;`)。 - 修改为横屏:交换`hactive`和`vactive`值。 ```dts // 文件:lcd-LP097Qx1.dtsi(示例) / { disp_timings: display-timings { native-mode = <&timing0>; timing0: timing0 { screen-type = <SCREEN_EDP>; // 屏幕类型 out-face = <OUT_P666>; // 输出格式 clock-frequency = <205000000>; // 时钟频率 hactive = <2048>; // 修改后:水平像素(横屏) vactive = <1536>; // 修改后:垂直像素(竖屏) // 其他参数(如hfront-porch, hback-porch等)需保持一致 }; }; }; ``` - **注意**:如果屏幕是LVDS接口(如引用[4]),还需检查`lvds-format`和`color-mode`参数是否匹配硬件。 2. **编译和烧录DTS**: - 修改后,重新编译内核并烧录到设备: ```bash make rk3288-rk808.dtb # 生成dtb文件 fastboot flash boot new_kernel.img # 烧录内核 ``` - 验证修改:启动后检查`/sys/class/graphics/fb0/modes`文件,确认分辨率是否更新。 --- ### 步骤2: 设置Android系统旋转属性 在Android框架层,通过系统属性控制屏幕旋转角度。这适用于系统启动后的软件旋转。 1. **修改`ro.sf.hwrotation`属性**: - 该属性定义硬件旋转角度(0, 90, 180, 270度)。在RK3288 Android 5.1中,需编辑`system.prop`文件。 - 文件路径:`/device/rockchip/rk3288/system.prop`(或类似路径)。 - **添加或修改行**: ```properties ro.sf.hwrotation=90 # 设置旋转90度(竖屏转横屏或反之) ``` - **角度选择**: - 0度:默认横屏。 - 90度:竖屏(逆时针旋转)。 - 180度:倒置。 - 270度:竖屏(顺时针旋转)。 - 引用[3]提到,扫描方式(SS和GS)影响旋转效果。常见设置: - SS=1&GS=0时,需旋转270度。 - SS=0&GS=1时,旋转90度即可正常显示[^3]。 2. **调整开机动画分辨率**: - 如果旋转后开机动画显示异常(如只显示部分内容),需修改开机动画分辨率: - 编辑`bootanimation.zip`中的`desc.txt`文件,匹配旋转后的屏幕分辨率。 - **示例**(引用[3]): - 原始竖屏分辨率:720x1280。 - 旋转为横屏后:改为1280x720。 ```plaintext # desc.txt 内容 1280 720 30 # 宽度 高度 帧率 p 1 0 part0 ``` - 将修改后的`bootanimation.zip`推送到`/system/media/`目录。 --- ### 步骤3: 验证和调试 - **检查当前方向**: - 在终端运行: ```bash adb shell cat /sys/class/graphics/fb0/modes # 查看分辨率方向 adb shell getprop ro.sf.hwrotation # 查看旋转角度 ``` - 对于HDMI,可参考引用[5]:`cat /sys/class/display/HDMI/mode`[^5]。 - **常见问题**: - **双屏异显方向不一致**:如引用[1]所述,修改每个屏的DTS参数(`hactive`/`vactive`)来对齐方向[^1]。 - **显示异常**:确保DTS的`screen-type`(如`SCREEN_EDP`或`SCREEN_LVDS`)与实际硬件匹配(引用[2][^2]和[4][^4])。 - **性能问题**:旋转可能增加GPU负载,测试帧率是否稳定。 --- ### 注意事项 - **备份文件**:修改DTS或系统属性前,备份原文件。 - **硬件兼容性**:不同屏幕接口(LVDS, EDP, MIPI)参数不同,参考屏厂数据手册。 - **系统升级**:Android 5.1的代码结构可能因厂商定制而异,建议基于RK3288 SDK操作。 - **引用说明**:本方法基于RK3288 Android 5.1的典型实现,具体细节请参考设备树文档和Rockchip官方指南[^1][^2][^3][^4][^5]。 通过以上步骤,您可以灵活配置横屏或竖屏显示。如果遇到问题,提供更多硬件细节(如屏幕型号和接口)可进一步优化。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值