研发干货 | 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
此时即可将新添加的自启动服务生效,重启开发板后,此程序即可自动运行,在默认端的音频即可听到音频输出。