本文硬件平台以凌OK1028A-C[color=inherit !important]开发板为基础进行示例,其他厂商开发平台,因各个厂家设置不同,可供参考使用。内容包含[color=inherit !important]LS1028A开发板设置默认CPU调频策略,[color=inherit !important]LA1028A开发板环境变量配置文件uEnv.txt使用方法,[color=inherit !important]LS1028A开发板开机自启动程序,[color=inherit !important]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
f_45653c887fc3aaa685b38e7abe9959c4&t=jpg&o=&s=&v=1607331832.jpg
添加如上环境变量,重启系统。
f_34bb3fda9dd12c589b4a4711a9a7a0ac&t=jpg&o=&s=&v=1607332698.jpg
启动过程中可以看到log信息Importing environment from uEnv.txt ...
f_3183276b6c4e35bd7f4d8cfebb6ff92a&t=jpg&o=&s=&v=1607332705.jpg
可以看出,我们添加的环境变量已经生效。在批量生产时,您可以将uEnv.txt放入烧写U盘的boot目录,烧写时将自动将uEnv.txt烧入eMMC中。

三、LS1028A开发板开机Logo制作方法
OK1028A-C平台支持开机Logo,支持8bit索引bmp图片。下面简单介绍使用photopshop制作开机logo的步骤。
首先使用photoshop打开一张普通的图片
f_12525e6bba394359da51674f54ed1fc7&t=jpg&o=&s=&v=1607332712.jpg
点击“图像”-》“模式”,将RGB颜色修改为索引颜色
f_c776c706d95c8525704a9902516df707&t=jpg&o=&s=&v=1607332718.jpg
在弹出的“索引颜色”对话框中直接点击确定。
f_58365deccebf3e5cd65457bd1f12089a&t=jpg&o=&s=&v=1607332729.jpg
完成后在文件菜单中选择存储为,保存为logo.bmp即可。
f_7cb24b228424945ab98017480ce461ac&t=jpg&o=&s=&v=1607332736.jpg
烧写时,将logo.bmp放入烧写TF卡的boot目录即可。

四、LS1028A开发板Qtcreator安装使用说明
OK1028-C平台目前没有qt的交叉编译环境,如果需要进行qt应用程序的开发,建议直接在开发板上安装qtcreator。下面简单介绍qtcreator在OK1028-C平台上的安装及使用。
root@forlinx:/# apt-get install qtcreator
root@forlinx:/# qtcreator
f_1ed9ae8457d982bd28d22bfbcd6d7da6&t=jpg&o=&s=&v=1607332742.jpg
点击“New Project”创建新工程:
f_aad4f1181133c3496949dd7b032ce215&t=jpg&o=&s=&v=1607332749.jpg
点击“Qt Widgets Application”:
f_c2c1c83aa29284c06acba3d7c7eaaef0&t=jpg&o=&s=&v=1607332764.jpg
输入项目名称,以“hello”为例:
f_d5dcb8e8681b63117a4f651c036af702&t=jpg&o=&s=&v=1607332771.jpg
点击“Next”:
f_9270046b8aa4c6c8b5f4208684fd3971&t=jpg&o=&s=&v=1607332778.jpg
点击“Next”:
f_5a8f6a9879fb7f2092835b72140a05a5&t=jpg&o=&s=&v=1607332787.jpg
点击“Finish”:
f_0abbced8abaa34c93c6c3b034b40619d&t=jpg&o=&s=&v=1607332793.jpg
点击左下角的运行按钮:
f_d110efe32964d9aaff840142f26bf29b&t=jpg&o=&s=&v=1607332799.jpg
将自动编译并运行。
注意:为了节约磁盘空间,[color=inherit !important]飞凌提供的文件系统中只提供了qtbase qtwayland等部分必要核心模块,如需其他模块,可以使用apt-get进行安装。

五、LS1028A开发板LVDS配置说明
OK1028A-C底板上默认焊接了DP转LVDS[color=inherit !important]芯片,如果您需要适配自己的LVDS屏幕,可以参考如下步骤进行适配。
1. 修改时序参数
时序参数需要修改:drivers/gpu/drm/bridge/cadence/cdns-dp-core.c
f_071b11cb0f741c94e094b8627e65a0fc&t=jpg&o=&s=&v=1607332805.jpg
参数值的含义,可以参考DRM_MODE的[color=inherit !important]宏定义
f_0899cee0e9bf457cd54fb3622098a4fe&t=jpg&o=&s=&v=1607332813.jpg
2. 修改DP[color=inherit !important]时钟
LS1028A DP时钟计算方法如下:
f_ed7da64dc957b948362029726c20b607&t=jpg&o=&s=&v=1607332820.jpg
DP像素时钟=fpll_phi=fpll_VCO/PLLDV[RFDHI]
fpll_VCO需要在设备数中指定,系统启动后无法修改,位于600M-1300M之间。
f_887e4444589d608023db570ee41fc4f1&t=jpg&o=&s=&v=1607332827.jpg
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
f_8d5e7cf0d9a3b7940ee601072b52ae7e&t=jpg&o=&s=&v=1607332833.jpg
修改完成后使用如下[color=inherit !important]命令重新编译:
flex-builder -i mkdistroscr
f_df7ba6fc9e420256d3d51490e3e73e56&t=jpg&o=&s=&v=1607332841.jpg

六、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
此时即可将新添加的自启动服务生效,重启开发板后,此程序即可自动运行,在默认端的音频即可听到音频输出。https://www.forlinx.com/