本文硬件平台以飞凌嵌入式OKMX8MQ-C开发板Linux操作系统为基础进行讲解,其它iMX8产品,由于各个厂家设置不同会有所差异,请参考使用。
本文档主要讲解OKMX8MQ平台系统设置,包括LOGO更换、上电自启动程序设置、Uboot菜单选择显示屏、TF卡烧写添加环境变量等。所需源码镜像等,请自行下载飞凌官方提供的用户资料。
一、 Logo更换
飞凌iMX8MQ开发板 u-boot阶段可以在LCD上显示LOGO图片,如需更换LOGO请替换:
OKMX8MQ-linux-sdk/images/boot/logo.bmp
要求为24位的BMP格式图片,分辨率为1024x600。
二、上电自启动程序设置在此介绍一种使用systemd方式来配置任意开机自启动程序的方法。
为了方便用户测试,我们在系统启动默认加载systemd服务autorun.service,在
/lib/systemd/system/autorun.sevice
可以看到配置文件:
用户可以将自己的开机自启应用程序放到脚本/etc/autorun.sh中,从而实现开机自启。
其中Description参数代表服务的描述(会在开机终端中打印),ExecStart参数代表执行脚本的绝对路径,默认为/etc/autorun.sh文件(用户可以自行修改)。
如果我们启动的服务不能满足需求,也可以自己添加systemd服务,如下例。
将iMX8MQ开发板上电启动,在iMX8MQ开发板终端中进入到/home/root/目录下,执行如下命令创建一个脚本文件,并修改权限:
$ echo '#!/bin/sh' >> /home/root/helloworld.sh
$ echo 'gst-play-1.0 /home/forlinx/audio/test.mp3' >> /home/root/helloworld.sh
$ chmod 777 /home/root/helloworld.sh
进入到“/lib/systemd/system/”目录下,并新建一个helloworld.service文件,命令如下:
$ cd /lib/systemd/system
$ vi helloworld.service
文件的内容如下:
[Unit]
Description=helloworld
After=basic.service X.service thermal-zone-init.service
[Service]
ExecStart=/home/root/helloworld.sh
[Install]
WantedBy=multi-user.target
其中Description一行需写入服务名,ExecStart需要写入可执行文件的绝对路径。
保存退出后,在终端上执行如下命令:
$ systemctl -f enable /lib/systemd/system/helloworld.service
此时即可将新添加的自启动服务生效,重启imx8MQ开发板后,此程序即可自动运行,在默认端的音频即可听到音频输出。
三、显示桌面顶部状态栏默认情况下,weston桌面顶部显示时间信息状态栏被设置为隐藏,如果您需要其显示,可以按照下面的方法进行设置。
如果有全屏应用显示的需求,可以按照如下方法进行修改,隐藏顶部状态栏。开发板上电,在iMX8MQ开发板终端中输入如下命令,打开weston的配置文件:
$ vi /etc/xdg/weston/weston.ini
修改文件的内容如下:
[shell]
locking=false
panel-position=top
四、Uboot菜单选择显示屏iMX8MQ开发板上电后,在串口调试终端输入任意按键,进入uboot菜单选项,可以通过菜单设置系统选项和功能。
Press SPACE to abort autoboot in 1 seconds
## forlinx params set menu ...
--------------------------
0:reboot
1:exit to shell
2:MIPI7-lcdif
3:MIPI7-dcss
4:HDMI
--------------------------
按键0:重新启动开发板;
按键1:进入命令行模式;
按键2:选择显示屏为7寸MIPI屏(1024x600)显示控制器使用LCDIF;
按键3:选择显示屏为7寸MIPI屏(1024x600)显示控制器使用Display Controller;
按键4:选择显示屏为HDMI输出。
注:MIPI7-dcss使用了设备树ok8mq-evk-dcss-mipi7.dtb,MIPI7-lcdif和HDMI使用了设备树ok8mq-evk.dtb。
五、TF卡烧写添加环境变量在用户使用TF卡烧写的时候,可以在TF卡内添加名称为env.ini的文本,在文本内添加环境变量,文本添加的环境变量需要按照“环境变量名=环境变量值”的格式来添加,每行为1条环境变量。在烧写的过程中,烧写程序按行读取环境变量,符合格式的环境变量将会追加到默认的环境变量当中。
烧写完成后,iMX8MQ开发板在第一次启动的时候会将默认的环境变量和追加的环境变量写入到存储介质中,追加的环境变量如果和镜像内置的环境变量名称相同,会覆盖原来的环境变量值。
示例1:追加的环境变量与镜像默认的环境变量没有名称相同的,如追加了环境变量newenv=123456
环境变量内会新加一条环境变量newenv=123456。
示例2:追加的环境变量与镜像默认的环境变量名称相同,追加的环境变量的值会替换原有的值,如镜像中默认bootdelay=1,追加的环境变量中bootdelay=3,则最终的环境变量bootdelay的值是3,替换了镜像中默认的环境变量的值。