正点原子RK3568 buildroot系统旋转屏幕+更换自启程序

一、旋转屏幕横屏显示

1.旋转uboot和内核

修改如下文件:
rk3568_linux_sdk/kernel/arch/arm64/boot/dts/rockchip/rk3568-atk-atompi-ca1-720p.dts
rk3568_linux_sdk/kernel/arch/arm64/boot/dts/rockchip/rk3568-atk-atompi-ca1-1080p.dts
在这里插入图片描述

logo,rotate = <3>;

logo,rotate = <1>;代表逆时针旋转 90 度
logo,rotate = <2>;代表逆时针旋转 180 度
logo,rotate = <3>;代表逆时针旋转 270 度
logo,rotate = <0>;代表逆时针旋转 360 度
上面为什么要写成3呢,因为正点原子1080p屏幕是倒向显示的,所以要旋转270°,如果屏幕接口类型为lvds则修改route_lvds。

2.旋转buildroot桌面

可参考瑞芯微官方文档:Rockchip buildrootWeston开发指南
修改如下文件:
rk3568_linux_sdk/buildroot/board/rockchip/common/base/etc/xdg/weston/weston.ini

在这里插入图片描述

[output]
name=DSI-1
transform=rotate-90
# normal|90|180|270|flipped|flipped-90|flipped-180|flipped-270

buildroot系统启动完之后也可以修改weston.ini文件的,只不过没那么方便而已。
启动系统后weston.ini文件路径:/etc/xdg/weston/weston.ini

3.旋转触摸

一般是不用改的,如果触摸不正常才需要改动设备树。(我使用的正点原子1080屏就不用改)
修改如下文件:
rk3568_linux_sdk/kernel/arch/arm64/boot/dts/rockchip/rk3568-atk-evb1-ddr4-v10.dtsi在这里插入图片描述

touchscreen-inverted-x;
touchscreen-swapped-x-y;

gt911:代表触摸芯片是gt911的屏幕。

4.更换开机logo

准备好自己的两张图片,尺寸要与sdk里面的一样:
uboot图片:logo.bmp
kernel图片:logo_kernel.bmp
把两张图片覆盖掉rk3568_linux_sdk/kernel/中的图片。

二、更换自启动程序

1.修改分区文件

瑞芯微官方分区文件分了好几个区的,而且根目录所在分区很小,不是很合理;现在要把所有可用空间都划分给根目录所在的分区。
修改文件如下:
rk3568_linux_sdk/device/rockchip/rk356x/parameter-buildroot-fit.txt

FIRMWARE_VER: 1.0
MACHINE_MODEL: RK3568
MACHINE_ID: 007
MANUFACTURER: RK3568
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 0xffffffff
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00080000@0x00006000(boot),-@0x00086000(rootfs:grow)
uuid:rootfs=614e0000-0000-4b53-8000-1d28000054a9

主要改动的是CMDLINE那一行的配置。
改动后效果如下:
在这里插入图片描述

2.修改Qt Demo编译脚本

这里要修改两个文件,对应的是正点原子720p和1080p的自启动程序,主要目的是为了不创建S50QDesktop脚本文件。(如果觉得麻烦可以直接把mk文件删掉)
rk3568_linux_sdk/buildroot/package/alientek/qt_demo/720p_demo/720p_demo.mk
rk3568_linux_sdk/buildroot/package/alientek/qt_demo/1080p_demo/1080p_demo.mk
720p_demo.mk屏蔽内容如下:
在这里插入图片描述
1080p_demo.mk屏蔽内容如下:在这里插入图片描述
上面图片中最底下那几行基本都是影音相关的工具。

3.更换自启动程序

①.修改安装脚本
rk3568_linux_sdk/buildroot/package/alientek/atk_installs/atk_installs.mk
在这里插入图片描述去掉上图中的/appData,然后新增两行:

cp -r $(@D)/MainBasic $(TARGET_DIR)/opt/apps
cp -r $(@D)/S50QDesktop $(TARGET_DIR)/etc/init.d

MainBasic:开机自动的程序
S50QDesktop:自启动脚本(脚本内容见文章最底下)
②.最终修改如下图所示
在这里插入图片描述
③.拷贝自启动脚本和程序到sdk中,拷贝目标路径如下。(记得给拷贝的两个文件0777权限)
rk3568_linux_sdk/buildroot/package/alientek/atk_installs/src/
在这里插入图片描述
④.更改主机名
rk3568_linux_sdk/buildroot/configs/rockchip/alientek.config
文件修改如下:
在这里插入图片描述
效果如下:
在这里插入图片描述
至此,直观上的地方都已经改完了,基本可以做到工厂生产化了。

三、最终效果图

1.uboot启动界面

在这里插入图片描述

2.kernel启动界面

在这里插入图片描述

3.buildroot系统运行App界面

在这里插入图片描述

PS.附上自启动脚本内容(跟正点原子的S50QDesktop一样,只是改了路径和程序名而已):

# Provides:          qdesktop
# Required-Start:    mountvirtfs
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Qt desktop
### END INIT INFO

PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"

# Load default env variables from profiles(e.g. /etc/profile.d/qdesktop.sh)
. /etc/profile

start_qdesktop()
{
        # Wait for weston ready
        [ "${QT_QPA_PLATFORM}" == wayland ] && \
                while [ ! -e ${XDG_RUNTIME_DIR}/wayland-0 ]; do
                        sleep .1
                done

    wayland-info | grep "logical_width: 1080" > /dev/null
    if [ $? -eq 0 ]; then
        /opt/apps/MainBasic > /dev/null 2>&1 &
    else
        /opt/apps/MainBasic > /dev/null 2>&1 &
    fi
}

stop_qdesktop()
{
        killall MainBasic
}

case "$1" in
        start)
                echo -n "starting qdesktop... "
                start_qdesktop
                echo "done."
                ;;
        stop)
                echo -n "stoping qdesktop... "
                stop_qdesktop
                echo "done."
                ;;
        restart|reload)
                echo -n "stoping qdesktop... "
                stop_qdesktop && sleep .3
                echo "done."

                echo -n "starting qdesktop... "
                start_qdesktop
                echo "done."
                ;;
        *)
                echo "Usage: $0 {start|stop|restart}"
                exit 1
esac

exit 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

taoshiwu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值