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

2246

被折叠的 条评论
为什么被折叠?



