20250213在飞凌的OK3588-C_Linux5.10.209+Qt5.15.10_用户资料_R1下使用weston-screenshooter截屏的方法

20250213在飞凌的OK3588-C_Linux5.10.209+Qt5.15.10_用户资料_R1下使用weston-screenshooter截屏的方法
2025/2/13 14:18


缘起:请问在飞凌的OK3588-C_Linux5.10.209+Qt5.15.10_用户资料_R1如果使用 weston-screenshooter 截屏?
在Android12/13下都可以很方便的使用screencap截屏。
现在 在linux/Buildroot千辛万苦中找到了weston-screenshooter,失败/异常了。
请问该如何使用?语法错误?还是该如何配置呢?


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:/#


修改步骤:
将/etc/init.d/S49weston中的:
    /usr/bin/weston&
修改成为:
    /usr/bin/weston --debug &

重启就可以使用weston-screenshooter了!

root@ok3588-buildroot:/# 
root@ok3588-buildroot:/# 
root@ok3588-buildroot:/# 
root@ok3588-buildroot:/# cd /sdcard/
root@ok3588-buildroot:/sdcard# 
root@ok3588-buildroot:/sdcard# ls -l
total 0
root@ok3588-buildroot:/sdcard# 
root@ok3588-buildroot:/sdcard# weston-screenshooter 
root@ok3588-buildroot:/sdcard# 
root@ok3588-buildroot:/sdcard# ls -l
total 116
-rw-r--r-- 1 root root 116979 Jan  1 08:00 wayland-screenshot-1970-01-01_08-00-44.png
root@ok3588-buildroot:/sdcard# 
root@ok3588-buildroot:/sdcard# weston-screenshooter 01.png
root@ok3588-buildroot:/sdcard# 

root@ok3588-buildroot:/sdcard# ls -l
total 232
-rw-r--r-- 1 root root 116979 Jan  1 08:00 wayland-screenshot-1970-01-01_08-00-44.png
-rw-r--r-- 1 root root 116979 Jan  1 08:00 wayland-screenshot-1970-01-01_08-00-54.png
root@ok3588-buildroot:/sdcard# 
root@ok3588-buildroot:/sdcard# 


root@ok3588-buildroot:/etc/init.d# vi S49weston 
root@ok3588-buildroot:/etc/init.d# cat S49weston 
#!/bin/sh -e
### 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/forlinx_env.sh
. /etc/profile

start_weston()
{
    /usr/bin/weston --debug &


完整的LOG:
root@ok3588-buildroot:/# weston-screenshooter 
Output capture error: unauthorized
Error: screenshot or protocol failure
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:/# cd /etc/init.d/
root@ok3588-buildroot:/etc/init.d# 
root@ok3588-buildroot:/etc/init.d# ls -l
total 136
-rwxr-xr-x 1 root root  427 Nov  5  2024 S00mountall.sh
-rwxr-xr-x 1 root root  392 Nov  5  2024 S01log-guardian.sh
-rwxr-xr-x 1 root root 1012 Nov  5  2024 S01syslogd
-rwxr-xr-x 1 root root 1004 Nov  5  2024 S02klogd
-rwxr-xr-x 1 root root 2804 Nov  5  2024 S02sysctl
-rwxr-xr-x 1 root root  368 Nov  5  2024 S05async-commit.sh
-rwxr-xr-x 1 root root 1594 Nov  5  2024 S10udev
-rwxr-xr-x 1 root root  620 Nov  5  2024 S13irqbalance
-rwxr-xr-x 1 root root 1684 Nov  5  2024 S20urandom
-rwxr-xr-x 1 root root 1619 Nov  5  2024 S30dbus
-rwxr-xr-x 1 root root  820 Nov  5  2024 S35iptables
-rwxr-xr-x 1 root root  358 Nov  5  2024 S36wifibt-init.sh
-rwxr-xr-x 1 root root 1001 Nov  5  2024 S40bluetoothd
-rwxr-xr-x 1 root root  438 Nov  5  2024 S40network
-rwxr-xr-x 1 root root  457 Sep 21  2024 S40rkaiq_3A
-rwxr-xr-x 1 root root  390 Nov  5  2024 S49chrony
-rwxr-xr-x 1 root root  901 Sep 21  2024 S49weston
-rwxr-xr-x 1 root root 1354 Nov  5  2024 S50dropbear
-rwxr-xr-x 1 root root  576 Nov  5  2024 S50lighttpd
-rwxr-xr-x 1 root root  751 Sep 21  2024 S50matrix-browser
-rwxr-xr-x 1 root root  789 Nov  5  2024 S50pulseaudio
-rwxr-xr-x 1 root root  532 Nov  5  2024 S50sshd
-rwxr-xr-x 1 root root  386 Nov  5  2024 S50usbdevice.sh
-rwxr-xr-x 1 root root  431 Nov  5  2024 S70vsftpd
-rwxr-xr-x 1 root root  427 Nov  5  2024 S80dnsmasq
-rwxr-xr-x 1 root root  937 Sep 21  2024 S98Bluez_init
-rwxr-xr-x 1 root root  546 Nov  5  2024 S99-auto-reboot
-rwxr-xr-x 1 root root  293 Nov  5  2024 S99chromium-wayland.sh
-rwxr-xr-x 1 root root  933 Nov  5  2024 S99fstrim
-rwxr-xr-x 1 root root  447 Nov  5  2024 S99input-event-daemon
-rwxr-xr-x 1 root root 1950 Nov  5  2024 fuse3
-rw-r--r-- 1 root root  471 Nov  5  2024 ninfod.sh
-rwxr-xr-x 1 root root  423 Nov  5  2024 rcK
-rwxr-xr-x 1 root root  408 Nov  5  2024 rcS
root@ok3588-buildroot:/etc/init.d# 
root@ok3588-buildroot:/etc/init.d# 
root@ok3588-buildroot:/etc/init.d# 
root@ok3588-buildroot:/etc/init.d#   
root@ok3588-buildroot:/etc/init.d# 
root@ok3588-buildroot:/etc/init.d# 
root@ok3588-buildroot:/etc/init.d# 
root@ok3588-buildroot:/etc/init.d# 
root@ok3588-buildroot:/etc/init.d# 
root@ok3588-buildroot:/etc/init.d# vi S49weston 
root@ok3588-buildroot:/etc/init.d# ls -l
total 136
-rwxr-xr-x 1 root root  427 Nov  5  2024 S00mountall.sh
-rwxr-xr-x 1 root root  392 Nov  5  2024 S01log-guardian.sh
-rwxr-xr-x 1 root root 1012 Nov  5  2024 S01syslogd
-rwxr-xr-x 1 root root 1004 Nov  5  2024 S02klogd
-rwxr-xr-x 1 root root 2804 Nov  5  2024 S02sysctl
-rwxr-xr-x 1 root root  368 Nov  5  2024 S05async-commit.sh
-rwxr-xr-x 1 root root 1594 Nov  5  2024 S10udev
-rwxr-xr-x 1 root root  620 Nov  5  2024 S13irqbalance
-rwxr-xr-x 1 root root 1684 Nov  5  2024 S20urandom
-rwxr-xr-x 1 root root 1619 Nov  5  2024 S30dbus
-rwxr-xr-x 1 root root  820 Nov  5  2024 S35iptables
-rwxr-xr-x 1 root root  358 Nov  5  2024 S36wifibt-init.sh
-rwxr-xr-x 1 root root 1001 Nov  5  2024 S40bluetoothd
-rwxr-xr-x 1 root root  438 Nov  5  2024 S40network
-rwxr-xr-x 1 root root  457 Sep 21  2024 S40rkaiq_3A
-rwxr-xr-x 1 root root  390 Nov  5  2024 S49chrony
-rwxr-xr-x 1 root root  910 Jan  1 08:27 S49weston
-rwxr-xr-x 1 root root 1354 Nov  5  2024 S50dropbear
-rwxr-xr-x 1 root root  576 Nov  5  2024 S50lighttpd
-rwxr-xr-x 1 root root  751 Sep 21  2024 S50matrix-browser
-rwxr-xr-x 1 root root  789 Nov  5  2024 S50pulseaudio
-rwxr-xr-x 1 root root  532 Nov  5  2024 S50sshd
-rwxr-xr-x 1 root root  386 Nov  5  2024 S50usbdevice.sh
-rwxr-xr-x 1 root root  431 Nov  5  2024 S70vsftpd
-rwxr-xr-x 1 root root  427 Nov  5  2024 S80dnsmasq
-rwxr-xr-x 1 root root  937 Sep 21  2024 S98Bluez_init
-rwxr-xr-x 1 root root  546 Nov  5  2024 S99-auto-reboot
-rwxr-xr-x 1 root root  293 Nov  5  2024 S99chromium-wayland.sh
-rwxr-xr-x 1 root root  933 Nov  5  2024 S99fstrim
-rwxr-xr-x 1 root root  447 Nov  5  2024 S99input-event-daemon
-rwxr-xr-x 1 root root 1950 Nov  5  2024 fuse3
-rw-r--r-- 1 root root  471 Nov  5  2024 ninfod.sh
-rwxr-xr-x 1 root root  423 Nov  5  2024 rcK
-rwxr-xr-x 1 root root  408 Nov  5  2024 rcS
root@ok3588-buildroot:/etc/init.d# 
root@ok3588-buildroot:/etc/init.d# cat S49weston 
#!/bin/sh -e
### 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/forlinx_env.sh
. /etc/profile

start_weston()
{
    /usr/bin/weston --debug &
}

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 && sleep .3
        echo "done."

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

exit 0
root@ok3588-buildroot:/etc/init.d#


这里全部无效:
root@ok3588-buildroot:/# 
root@ok3588-buildroot:/# find . -name weston*
./etc/xdg/weston
./etc/xdg/weston/weston.ini
./etc/profile.d/weston.sh
./usr/share/weston
./usr/share/libweston-13/protocols/weston-output-capture.xml
./usr/share/libweston-13/protocols/weston-content-protection.xml
./usr/share/libweston-13/protocols/weston-debug.xml
./usr/share/libweston-13/protocols/weston-direct-display.xml
./usr/share/wayland-sessions/weston.desktop
./usr/lib/weston
./usr/libexec/weston-ivi-shell-user-interface
./usr/libexec/weston-keyboard
./usr/libexec/weston-simple-im
./usr/libexec/weston-desktop-shell
./usr/bin/weston-dnd
./usr/bin/weston-calibrator
./usr/bin/weston-scaler
./usr/bin/weston-calibration-helper.sh
./usr/bin/weston-content_protection
./usr/bin/weston-simple-egl
./usr/bin/weston-cliptest
./usr/bin/weston-transformed
./usr/bin/weston-presentation-shm
./usr/bin/weston-touch-calibrator
./usr/bin/weston-clickdot
./usr/bin/weston-smoke
./usr/bin/weston-image
./usr/bin/weston
./usr/bin/weston-stacking
./usr/bin/weston-tablet
./usr/bin/weston-simple-shm
./usr/bin/weston-eventdemo
./usr/bin/weston-simple-dmabuf-egl
./usr/bin/weston-flower
./usr/bin/weston-simple-dmabuf-v4l
./usr/bin/weston-simple-damage
./usr/bin/weston-resizor
./usr/bin/weston-simple-touch
./usr/bin/weston-fullscreen
./usr/bin/weston-editor
./usr/bin/weston-debug
./usr/bin/weston-subsurfaces
./usr/bin/weston-constraints
./usr/bin/weston-multi-resource
./usr/bin/weston-screenshooter
./usr/bin/weston-terminal
root@ok3588-buildroot:/# 


参考资料:
百度: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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值