Difference between revisions of "Template:S5Pxx18Android/zh"
(updated by API) |
(updated by API) |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
==Android系统的使用== | ==Android系统的使用== | ||
− | === | + | ===Android7 下使用4G模块EC20=== |
− | + | ||
====连接方法==== | ====连接方法==== | ||
{{#switch: {{{1}}} | {{#switch: {{{1}}} | ||
Line 34: | Line 33: | ||
替换下面路径下的 logo.bmp: | 替换下面路径下的 logo.bmp: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | /opt/FriendlyARM/smart4418/android/device/ | + | /opt/FriendlyARM/smart4418/android/device/friendlyelec/nanopi3/boot/logo.bmp |
− | /opt/FriendlyARM/smart4418/android/device/ | + | /opt/FriendlyARM/smart4418/android/device/friendlyelec/nanopi2/boot/logo.bmp |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 重新编译 Android 源代码。 | |
+ | ===使用fastboot命令烧写android固件=== | ||
+ | 上电时在串口终端敲回车进入uboot命令行模式,然后输入以下命令: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | fastboot 0 | |
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | For S5P4418, PC端可使用以下命令来更新emmc: | |
+ | <syntaxhighlight lang="bash"> | ||
+ | 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 | ||
+ | </syntaxhighlight> | ||
+ | For S5P6818, PC端可使用以下命令来更新emmc: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | 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 | ||
+ | </syntaxhighlight> | ||
+ | ===Android证书=== | ||
+ | Android 5 我们缺省采用的是自己生成的证书,位于: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | vendor/friendly-arm/nanopi3/security/ | ||
+ | </syntaxhighlight> | ||
+ | Android 7 缺省采用的是: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | build/target/product/security/ | ||
+ | </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
Contents
1 Android系统的使用
1.1 Android7 下使用4G模块EC20
1.1.1 连接方法
连接时,需要通过USB to miniPCIe转接板转接EC20,再连接到主板的USB Host端口,以T2为例,如下图所示:
连接后无需额外的配置,启动Android后就可以使用4G上网了,跟Android手机类拟。
1.2 更换Android开机Logo
替换下面路径下的 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并测试,遇到异常则请仔细检查前面的步骤