唐山市网站建设_网站建设公司_安全防护_seo优化
2025/12/23 20:28:34 网站建设 项目流程

20251223给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时使用weston-screenshooter截屏【修改直接编译进IMG固件】
2025/12/23 19:23


缘起:给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】后,需要使用weston-screenshooter截屏。
不想每次刷机之后再去修改S49weston文件。

/usr/bin/weston 2>&1 | tee /var/log/weston.log &
修改为:
/usr/bin/weston 2>&1 | tee /var/log/weston.log &


4线USB2.0通过adb直接拿到电脑上的速度是:31.3 MB/s
写入TF卡的速度略微低于31.3 MB/s【大概为25.56MB/s】


需要实测开发板丝印ETH1芯片RTL8211F-CG的网速。
通过ifconfig确认为eth0。

需要使用ov5645的驱动框架来适配LVDS接口的105机芯。
按照以前的经验,首先关闭I2C的读写!
结果,肯定会出现某些地方遗漏的,只能通过编译器来检查问题了!


当你把荣品RD-RK3588开发板重新适配一把,就相当于从头做了一个项目:【荣品RD-RK3588开发板】。
当然,开发板的功能都是好的,你免除了调试的过程,也就没有解决相关硬件出错的经验/机会了!


1、出错了!
root@ok3588-buildroot:/#
root@ok3588-buildroot:/# weston-screenshooter
Output capture error: unauthorized
Error: screenshot or protocol failure

root@ok3588-buildroot:/#
root@ok3588-buildroot:/# weston-screenshooter 01.png
Output capture error: unauthorized
Error: screenshot or protocol failure
root@ok3588-buildroot:/#
root@ok3588-buildroot:/# uname -a
Linux ok3588-buildroot 5.10.209 #1 SMP Thu Feb 13 10:19:48 CST 2025 aarch64 GNU/Linux
root@ok3588-buildroot:/#
root@ok3588-buildroot:/#


2、查找:S49weston
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/A8/rk3588_linux6.1_release_v1.2.0_20241220$
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/A8/rk3588_linux6.1_release_v1.2.0_20241220$ find . -name S49weston
./buildroot/package/weston/S49weston
./buildroot/output/rockchip_rk3588/target/etc/init.d/S49weston
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/A8/rk3588_linux6.1_release_v1.2.0_20241220$


jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/A8/rk3588_linux6.1_release_v1.2.0_20241220$ find . -name S49weston
【如果没有编译,就修改这里】
./buildroot/package/weston/S49weston
【如果已经编译了,就修改这里】
./buildroot/output/rockchip_rk3588/target/etc/init.d/S49weston


3、修改:
Z:\14TB\A8\rk3588_linux6.1_release_v1.2.0_20241220\buildroot\package\weston\S49weston
#!/bin/sh
### BEGIN INIT INFO
# Provides: weston
# Required-Start: mountvirtfs
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Linux weston daemon
### 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/weston.sh)
. /etc/profile

start_weston()
{
/usr/bin/weston 2>&1 | tee /var/log/weston.log &
}

stop_weston()
{
killall weston
}

case "$1" in
start)
echo -n "starting weston... "
start_weston
echo "done."
;;
stop)
echo -n "stoping weston... "
stop_weston || true
echo "done."
;;
restart|reload)
echo -n "stoping weston... "
stop_weston

while pgrep -x weston; do
sleep .1
done
echo "done."

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

exit 0


修改为:


Y:\new_disk_4t\wyb\A8\rk3588_linux6.1_release_v1.2.0_20241220\buildroot\package\weston\S49weston

#!/bin/sh
### BEGIN INIT INFO
# Provides: weston
# Required-Start: mountvirtfs
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Linux weston daemon
### 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/weston.sh)
. /etc/profile

start_weston()
{
/usr/bin/weston--debug2>&1 | tee /var/log/weston.log &
}

stop_weston()
{
killall weston
}

case "$1" in
start)
echo -n "starting weston... "
start_weston
echo "done."
;;
stop)
echo -n "stoping weston... "
stop_weston || true
echo "done."
;;
restart|reload)
echo -n "stoping weston... "
stop_weston

while pgrep -x weston; do
sleep .1
done
echo "done."

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

exit 0


参考资料:
百度:weston-screenshooter 01.png Output capture error: unauthorized
BING:weston-screenshooter 01.png Error: screenshot or protocol failure

https://kira-96.github.io/notes/weston-screenshot/
weston桌面系统截屏方法
二月 3, 2023

使用weston-screenshooter

但必须启用weston桌面--debug选项,否则会出现以下错误:

[root@RK356X:/]# weston-screenshooter
[02:41:05.145] libwayland: error in client communication (pid 776)
weston_screenshooter@5: error 0: screenshooter failed: permission denied. Debug protocol must be enabled
以RK3568开发板,buildroot系统为例,修改/etc/init.d/S50launcher,找到weston所在行,添加--debug选项。

......
# Uncomment to disable mirror mode
# unset WESTON_DRM_MIRROR

export XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/var/run}
export QT_QPA_PLATFORM=${QT_QPA_PLATFORM:-wayland}

weston --tty=2 --debug --idle-time=0&
{
# Wait for weston ready
while [ ! -e ${XDG_RUNTIME_DIR}/wayland-0 ]; do
sleep .1
done
/usr/bin/QLauncher &
}&
......
forlinx开发板使用的yocto系统也类似,修改/lib/systemd/system/weston.service,在weston后添加--debug选项。

$ vi /lib/systemd/system/weston.service
# 修改如下
# ExecStart=/usr/bin/weston --debug --log=${XDG_RUNTIME_DIR}/weston.log $OPTARGS
然后重启系统,之后就可以使用weston-screenshooter截取屏幕了。


https://blog.csdn.net/qq_40177571/article/details/124989542?ops_request_misc=%257B%2522request%255Fid%2522%253A%252238e8168a9636ee7d6f3f6129ebc177b9%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=38e8168a9636ee7d6f3f6129ebc177b9&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-124989542-null-null.142^v101^pc_search_result_base6&utm_term=weston-screenshooter&spm=1018.2226.3001.4187
LS1028 weston桌面weston-screenshooter截图方法
https://blog.csdn.net/qq_40177571/article/details/124989542

vim /lib/systemd/system/weston.service
//修改如下所示:
ExecStart=/usr/bin/weston --debug --log=${XDG_RUNTIME_DIR}/weston.log $OPTARGS


CSDN:weston-screenshooter

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询