十年網(wǎng)站開發(fā)經驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這期內容當中小編將會給大家?guī)碛嘘PRK3288如何增加雙屏異顯 eDP+LVDS,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
CPU:RK3288
系統(tǒng):Android 5.1
下面是官方文檔中的信息。
1、rk3288 支持的顯示接口可以任意組合。
2、雙屏異顯時,一個顯示接口當主屏,另一個當副屏;主副屏由板級 dts 文件確定,啟動后無法動態(tài)更改。
3、當兩路顯示接口顯示不同分辨率時,rk3288 只能為一路顯示接口提供精確時鐘,另一路顯示接口時鐘會有微小頻偏。
瑞芯微雖然提供了 Android 5.1 的補丁,但是本人在移植過程中出現(xiàn)一些問題(打補丁最好一行行核對,不要圖方便直接使用指令)。
設備 eDP 為主屏,lvds 為副屏。
(1)首先修改兩個屏參文件 lcd-xxx.dtsi。
eDP 屏參文件補丁
diff --git a/kernel/arch/arm/boot/dts/lcd-NV116FH1.dtsi b/kernel/arch/arm/boot/dts/lcd-NV116FH1.dtsi
index 3862b05..7bf992f 100755
--- a/kernel/arch/arm/boot/dts/lcd-NV116FH1.dtsi
+++ b/kernel/arch/arm/boot/dts/lcd-NV116FH1.dtsi
@@ -3,11 +3,9 @@
*
*/
-/ {
-
- disp_timings: display-timings {
- native-mode = <&timing0>;
- timing0: timing0 {
+ display-timings {
+ native-mode = <&nv116fhm>;
+ nv116fhm: timing0 {
screen-type =
out-face =
clock-frequency = <205000000>;
@@ -30,4 +30,3 @@
swap-gb = <0>;
};
};
-};
lvds 屏參文件補丁
diff --git a/kernel/arch/arm/boot/dts/lcd-ZJ080NA-08A.dtsi b/kernel/arch/arm/boot/dts/lcd-ZJ080NA-08A.dtsi
old mode 100644
new mode 100755
index fc6385c..58f999be
--- a/kernel/arch/arm/boot/dts/lcd-ZJ080NA-08A.dtsi
+++ b/kernel/arch/arm/boot/dts/lcd-ZJ080NA-08A.dtsi
@@ -3,11 +3,10 @@
*
*/
-/ {
- disp_timings: display-timings {
- native-mode = <&timing0>;
- timing0: timing0 {
+ display-timings {
+ native-mode = <&zj080na>;
+ zj080na: timing0 {
screen-type =
lvds-format =
out-face =
@@ -30,4 +30,3 @@
swap-gb = <0>;
};
};
-};
(2)根據(jù)官方提供,打上 kernel 補丁
kernel 補丁
(3)根據(jù)官方提供,打上 hardware 補丁
hardware 補丁
(4)根據(jù)官方提供,打上 framework 補丁
framework 補丁
(5)官方提供的補丁打完了,但是此時編譯可能會報錯,如下:
cts/tests/tests/view/src/android/view/cts/WindowTest.java:846: error: WindowTest.MockWindow is not abstract and does not override abstract method moveExtendDisplay() in Window
public class MockWindow extends Window {
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
make: *** [out/target/common/obj/APPS/CtsViewTestCases_intermediates/classes-full-debug.jar] Error 41
make: *** Waiting for unfinished jobs....
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Warning: AndroidManifest.xml already defines minSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.
Warning: AndroidManifest.xml already defines targetSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.
#### make failed to build some targets (03:55 (mm:ss)) ####
根據(jù)編譯錯誤提示,需要修改 cts/tests/tests/view/src/android/view/cts/WindowTest.java 文件。
diff --git a/cts/tests/tests/view/src/android/view/cts/WindowTest.java b/cts/tests/tests/view/src/android/view/cts/WindowTest.java
index 3c5386d..8732ae7 100755
--- a/cts/tests/tests/view/src/android/view/cts/WindowTest.java
+++ b/cts/tests/tests/view/src/android/view/cts/WindowTest.java
@@ -998,6 +998,19 @@ public class WindowTest extends ActivityInstrumentationTestCase2 } @Override + public void moveAppToDisplay(int id) { + } + + @Override + public void syncDualDisplay() { + } + + @Override + public void moveExtendDisplay() { + } + + + @Override public void setDefaultWindowFormat(int format) { super.setDefaultWindowFormat(format); } (6)此時可以編譯成功,在屏參正確的前提下,主屏顯示正常,副屏出現(xiàn)花屏,需要在 system.prop 里添加屬性 ro.htg.force=1。 diff --git a/device/rockchip/rk3288/system.prop b/device/rockchip/rk3288/system.prop index 26a2b09..c4f2c3d 100755 --- a/device/rockchip/rk3288/system.prop +++ b/device/rockchip/rk3288/system.prop @@ -12,6 +12,7 @@ rild.libpath=/system/lib/libril-rk29-dataonly.so rild.libargs=-d /dev/ttyACM0 persist.tegra.nvmmlite = 1 ro.audio.monitorOrientation=true +ro.htg.force=1 #NFC debug.nfc.fw_download=false 此時大功告成,雙屏可以正常顯示,也可以實現(xiàn)雙屏異顯。 如果 lcd 出現(xiàn)重復性黑屏亮屏,找到對應的屏參文件,在正常范圍內調節(jié)頻率 clk 值即可。 display-timings { native-mode = <&ee101ia>; ee101ia: timing0 { screen-type = lvds-format = out-face = color-mode = // 調節(jié) lcd 頻率 clock-frequency = <148500000>; hactive = <1920>; vactive = <1080>; 如果單屏調試都正常點亮,打補丁后,點不亮或者有花屏現(xiàn)象,嘗試增大對應屏的電源使能延時 lcd_en { rockchip,power_type = gpios = <&gpio7 GPIO_A5 GPIO_ACTIVE_HIGH>; - rockchip,delay = <10>; + rockchip,delay = <100>; }; 上述就是小編為大家分享的RK3288如何增加雙屏異顯 eDP+LVDS了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道。
當前題目:RK3288如何增加雙屏異顯eDP+LVDS-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://m.jiaotiyi.com/article/geihj.html