研发干货 | LS1028A 常见问题解决思路

本文硬件平台以凌OK1028A-C开发板为基础进行示例,其他厂商开发平台,因各个厂家设置不同,可供参考使用。内容包含LS1028A开发板设置默认CPU调频策略,LA1028A开发板环境变量配置文件uEnv.txt使用方法,LS1028A开发板开机自启动程序,LS1028A开发板LVDS配置说明,LS1028A开发板旋转屏幕说明,LS1028A开发板Qtcreator安装使用说明

一、LS1028A开发板设置默认CPU调频策略

默认情况下OK1028A-C启动后CPU调频策略为ondemand

root@forlinx:/# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

ondemand

如果想使用其它策略,以高性能模式为例,可以进行如下设置

root@forlinx:/# systemctl disable ondemand.service

root@forlinx:/# apt-get install cpufrequtils

修改

root@forlinx:/# vi /etc/default/cpufrequtils

添加

GOVERNOR="performance"

重启测试

root@forlinx:/# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

performance

注意:这里以操作cpu0为例,实际过程cpu1、cpu2、cpu3会同时改变。


二、LA1028A开发板环境变量配置文件uEnv.txt使用方法

OK1028A-C平台支持启动过程中通过文件导入部分环境变量,例如可以将默认的网卡MAC地址写在uEnv.txt文件中设置固定的网卡MAC地址。

启动时系统会读取eMMC第二个分区boot目录中的内核以及设备树文件,如果存在uEnv.txt则将其中的环境变量导入到系统中。以修改网卡MAC为例进行测试。

创建uEnv.txt文件

root@forlinx:~# vi /boot/uEnv.txt

 

添加如上环境变量,重启系统。

 

启动过程中可以看到log信息Importing environment from uEnv.txt ...

 

可以看出,我们添加的环境变量已经生效。在批量生产时,您可以将uEnv.txt放入烧写U盘的boot目录,烧写时将自动将uEnv.txt烧入eMMC中。


三、LS1028A开发板开机Logo制作方法

OK1028A-C平台支持开机Logo,支持8bit索引bmp图片。下面简单介绍使用photopshop制作开机logo的步骤。

首先使用photoshop打开一张普通的图片

 

点击“图像”-》“模式”,将RGB颜色修改为索引颜色

 

在弹出的“索引颜色”对话框中直接点击确定。

 

完成后在文件菜单中选择存储为,保存为logo.bmp即可。

 

烧写时,将logo.bmp放入烧写TF卡的boot目录即可。


四、LS1028A开发板Qtcreator安装使用说明

OK1028-C平台目前没有qt的交叉编译环境,如果需要进行qt应用程序的开发,建议直接在开发板上安装qtcreator。下面简单介绍qtcreator在OK1028-C平台上的安装及使用。

root@forlinx:/# apt-get install qtcreator

root@forlinx:/# qtcreator

 

点击“New Project”创建新工程:

 

点击“Qt Widgets Application”:

 

输入项目名称,以“hello”为例:

 

点击“Next”:

 

点击“Next”:

 

点击“Finish”:

 

点击左下角的运行按钮:

 

将自动编译并运行。

注意:为了节约磁盘空间,飞凌提供的文件系统中只提供了qtbase qtwayland等部分必要核心模块,如需其他模块,可以使用apt-get进行安装。


五、LS1028A开发板LVDS配置说明

OK1028A-C底板上默认焊接了DP转LVDS芯片,如果您需要适配自己的LVDS屏幕,可以参考如下步骤进行适配。

1. 修改时序参数

时序参数需要修改:drivers/gpu/drm/bridge/cadence/cdns-dp-core.c

 

参数值的含义,可以参考DRM_MODE的宏定义

 

2. 修改DP时钟

LS1028A DP时钟计算方法如下:

 

DP像素时钟=fpll_phi=fpll_VCO/PLLDV[RFDHI]

fpll_VCO需要在设备数中指定,系统启动后无法修改,位于600M-1300M之间。

 

PLLDV[RFDHI]的范围为1-64,只需要保证VCO可以整除lvds的像素时钟,且位于1-64之间即可。

例如飞凌默认的屏幕时钟为71100khz,这里指定的vco-frequency=1066500000,PLLDV[RFDHI]=15

更详细的说明可以参考:LSDKUG_rev20.04.pdf 459页,及内核驱动:drivers/clk/clk-plldig.c

3. 修改启动参数

configs/board/ls1028ardb/manifest

 

修改完成后使用如下命令重新编译:

flex-builder -i mkdistroscr

 


六、LS1028A开发板旋转屏幕说明

weston支持0、90、180、270度屏幕旋转功能,可修改配置文件/etc/xdg/weston/weston.ini进行设置,例如旋转90度,可将transform选项设置为90。

[output]

name=DP-1

mode=1280x800@60

force-on=true

transform=90

七、LS1028A开发板开机自启动程序

在此介绍一种使用systemd方式来配置任意开机自启动程序的方法。

执行如下命令创建一个脚本文件,并修改权限:

root@forlinx:/# echo '#!/bin/sh'  >>  /helloworld.sh

root@forlinx:/# echo 'gst-play-1.0 /forlinx/media/test.mp3'  >>  /helloworld.sh

root@forlinx:/# chmod  777  /helloworld.sh

进入到“/lib/systemd/system/”目录下,并新建一个helloworld.service文件,命令如下:

root@forlinx:/# cd  /lib/systemd/system

root@forlinx:/# vi  helloworld.service

文件的内容如下:

[Unit]

Description=helloworld

After=basic.service X.service thermal-zone-init.service

[Service]

ExecStart=/helloworld.sh

[Install]

WantedBy=multi-user.target

其中Description一行需写入服务名,ExecStart需要写入可执行文件的绝对路径。

保存退出后,在终端上执行如下命令:

root@forlinx:/# systemctl  -f  enable  /lib/systemd/system/helloworld.service

此时即可将新添加的自启动服务生效,重启开发板后,此程序即可自动运行,在默认端的音频即可听到音频输出。