Difference between revisions of "Template:S5Pxx18Android/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
 
Line 75: Line 75:
 
   build/target/product/security/
 
   build/target/product/security/
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
===Android7只连接HDMI的情况下性能优化===
 +
====背景说明====
 +
默认情况下,驱动会初始化两个framebuffer,分别用于主显示LCD和HDMI,如果项目需求只需要使用HDMI,不需要用LCD,则可以根据本章节的步骤进行修改,修改后会将HDMI设置为主显示,这样驱动只会初始化一个framebuffer,节约资源,对UI性能和开机速度会有相应的提升。<br />
 +
本章节内容仅适用于 S5P6818 Android7, S5P4418修改方法类拟,只是需要调整一下相应的文件。<br />
 +
====修改内核====
 +
需要修改内核dts,禁止dp_drm_lvds节点, 如下所示:
 +
<syntaxhighlight lang="bash">
 +
--- a/arch/arm64/boot/dts/nexell/s5p6818-nanopi3-common.dtsi
 +
+++ b/arch/arm64/boot/dts/nexell/s5p6818-nanopi3-common.dtsi
 +
@@ -810,6 +810,7 @@
 +
                        plane-names = "video", "rgb", "primary";
 +
                };
 +
                port@1 {
 +
+                      status = "disabled";
 +
                        reg = <1>;
 +
                        back_color = < 0x0 >;
 +
                        color_key = < 0x0 >;
 +
@@ -820,7 +821,7 @@
 +
 +
&dp_drm_lvds {
 +
        remote-endpoint = <&lcd_panel>;
 +
-      status = "ok";
 +
+      status = "disabled";
 +
 +
        display-timing {
 +
                clock-frequency = <50000000>;
 +
</syntaxhighlight>
 +
编译后将获得新的 arch/arm64/boot/dts/nexell/s5p6818-nanopi3-rev*.dtb。 <br />
 +
测试阶段可直接通过adb 更新到板子,命令如下:
 +
<syntaxhighlight lang="bash">
 +
adb root; adb wait-for-device; adb shell mkdir /storage/sdcard1/; adb
 +
shell mount -t ext4 /dev/block/mmcblk0p1 /storage/sdcard1/
 +
adb push arch/arm64/boot/dts/nexell/s5p6818-nanopi3-rev*.dtb /storage/sdcard1/
 +
</syntaxhighlight>
 +
完整的固件则需要替换android7源代码目录 device/friendlyelec/nanopi3/boot 下的文件
 +
====修改env.conf====
 +
修改 device/friendlyelec/nanopi3/boot/env.conf 增加一行:
 +
<syntaxhighlight lang="bash">
 +
lcdtype    HDMI1080P60
 +
</syntaxhighlight>
 +
此模式需要与android7启动后探测到的模式相同,否则会导致长时的黑屏状态,甚至无显示输出, 或者进入uboot命令行环境手工设置:
 +
<syntaxhighlight lang="bash">
 +
setenv lcdtype HDMI1080P60; saveenv; reset
 +
</syntaxhighlight>
 +
====修改system.prop====
 +
修改android7中 device/friendlyelec/nanopi3/system.prop
 +
<syntaxhighlight lang="bash">
 +
ro.sf.lcd_density=240
 +
</syntaxhighlight>
 +
或其它自己认为更合适的值, 也可串口或adb环境下,wm density 240 来调整观察效果是否合适。
 +
====编译Android====
 +
根据wiki说明编译android 7并测试,遇到异常则请仔细检查前面的步骤

Latest revision as of 08:21, 8 September 2023

1 Android系统的使用

1.1 Android7 下使用4G模块EC20

1.1.1 连接方法

连接时,需要通过USB to miniPCIe转接板转接EC20,再连接到主板的USB Host端口,以T2为例,如下图所示:
T2-4G-EC20.jpg
连接后无需额外的配置,启动Android后就可以使用4G上网了,跟Android手机类拟。


替换下面路径下的 logo.bmp:

/opt/FriendlyARM/smart4418/android/device/friendlyelec/nanopi3/boot/logo.bmp
/opt/FriendlyARM/smart4418/android/device/friendlyelec/nanopi2/boot/logo.bmp

重新编译 Android 源代码。

1.3 使用fastboot命令烧写android固件

上电时在串口终端敲回车进入uboot命令行模式,然后输入以下命令:

fastboot 0

For S5P4418, PC端可使用以下命令来更新emmc:

fastboot flash partmap partmap.txt
fastboot flash 2ndboot bl1-mmcboot.bin
fastboot flash fip-loader loader-mmc.img
fastboot flash fip-secure bl_mon.img
fastboot flash fip-nonsecure bootloader.img
fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash cache cache.img
fastboot flash userdata userdata.img

For S5P6818, PC端可使用以下命令来更新emmc:

fastboot flash partmap partmap.txt
fastboot flash 2ndboot bl1-mmcboot.bin
fastboot flash fip-loader fip-loader.img 
fastboot flash fip-secure fip-secure.img 
fastboot flash fip-nonsecure fip-nonsecure.img
fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash cache cache.img
fastboot flash userdata userdata.img

1.4 Android证书

Android 5 我们缺省采用的是自己生成的证书,位于:

  vendor/friendly-arm/nanopi3/security/

Android 7 缺省采用的是:

  build/target/product/security/

1.5 Android7只连接HDMI的情况下性能优化

1.5.1 背景说明

默认情况下,驱动会初始化两个framebuffer,分别用于主显示LCD和HDMI,如果项目需求只需要使用HDMI,不需要用LCD,则可以根据本章节的步骤进行修改,修改后会将HDMI设置为主显示,这样驱动只会初始化一个framebuffer,节约资源,对UI性能和开机速度会有相应的提升。
本章节内容仅适用于 S5P6818 Android7, S5P4418修改方法类拟,只是需要调整一下相应的文件。

1.5.2 修改内核

需要修改内核dts,禁止dp_drm_lvds节点, 如下所示:

--- a/arch/arm64/boot/dts/nexell/s5p6818-nanopi3-common.dtsi
+++ b/arch/arm64/boot/dts/nexell/s5p6818-nanopi3-common.dtsi
@@ -810,6 +810,7 @@
                        plane-names = "video", "rgb", "primary";
                };
                port@1 {
+                       status = "disabled";
                        reg = <1>;
                        back_color = < 0x0 >;
                        color_key = < 0x0 >;
@@ -820,7 +821,7 @@
 
 &dp_drm_lvds {
        remote-endpoint = <&lcd_panel>;
-       status = "ok";
+       status = "disabled";
 
        display-timing {
                clock-frequency = <50000000>;

编译后将获得新的 arch/arm64/boot/dts/nexell/s5p6818-nanopi3-rev*.dtb。
测试阶段可直接通过adb 更新到板子,命令如下:

adb root; adb wait-for-device; adb shell mkdir /storage/sdcard1/; adb
shell mount -t ext4 /dev/block/mmcblk0p1 /storage/sdcard1/
adb push arch/arm64/boot/dts/nexell/s5p6818-nanopi3-rev*.dtb /storage/sdcard1/

完整的固件则需要替换android7源代码目录 device/friendlyelec/nanopi3/boot 下的文件

1.5.3 修改env.conf

修改 device/friendlyelec/nanopi3/boot/env.conf 增加一行:

lcdtype     HDMI1080P60

此模式需要与android7启动后探测到的模式相同,否则会导致长时的黑屏状态,甚至无显示输出, 或者进入uboot命令行环境手工设置:

setenv lcdtype HDMI1080P60; saveenv; reset

1.5.4 修改system.prop

修改android7中 device/friendlyelec/nanopi3/system.prop

ro.sf.lcd_density=240

或其它自己认为更合适的值, 也可串口或adb环境下,wm density 240 来调整观察效果是否合适。

1.5.5 编译Android

根据wiki说明编译android 7并测试,遇到异常则请仔细检查前面的步骤