'프로그램 사용 > valgrind' 카테고리의 다른 글
| valgrind callgrind (0) | 2023.07.07 |
|---|---|
| valgrind 누수 종류 (0) | 2022.01.18 |
| valgrind 지원 플랫폼 (0) | 2014.10.15 |
| valgrind GUI frontend- kcachegrind / valkyrie (0) | 2014.10.15 |
| valgrind callgrind (0) | 2023.07.07 |
|---|---|
| valgrind 누수 종류 (0) | 2022.01.18 |
| valgrind 지원 플랫폼 (0) | 2014.10.15 |
| valgrind GUI frontend- kcachegrind / valkyrie (0) | 2014.10.15 |
wayland screenshooter에서 shared memory를 이용하여
캡쳐한 이미지를 공유하는데 해당 내용에 대한 정리가 잘되어 있어서 링크!
[링크 : https://nemoux00.wordpress.com/2014/02/13/wayland-버퍼-관리/]
| wayvnc (0) | 2022.01.24 |
|---|---|
| weston client 메모리 누수 (0) | 2022.01.17 |
| wayland client example (0) | 2022.01.06 |
| weston window transform (0) | 2022.01.06 |
| weston-screenshooter 실행에러 (0) | 2022.01.05 |
두개 방송국이 같이 보이는데 동시에 땡~! 해주니까 파형도 이쁘게 종모양으로 나온다.
어떻게 보면.. AND 게이트 3개가 보이는 느낌이네 ㅋㅋ

| rtl sdr 다중 채널 디코딩 (0) | 2022.08.30 |
|---|---|
| ubuntu 18.04에 사운드 카드가 갑자기 사라졌다? (0) | 2022.07.20 |
| gqrx 오디오 스트리밍 (0) | 2022.01.07 |
| rpi gqrx (0) | 2022.01.07 |
| rtl sdr am (0) | 2022.01.07 |
gqrx에 네트워크로 스트리밍 하는 옵션을 본 것 같은데
찾아보니 오디오를 스트리밍 하고 해당 기능은 아래 명령을 이용하여 aplay로 재생이 가능 하다고..
| $ nc -l -u 7355 | aplay -r 48k -f S16_LE -t raw -c 1 |
| ubuntu 18.04에 사운드 카드가 갑자기 사라졌다? (0) | 2022.07.20 |
|---|---|
| RTL-SDR 11시 땡! (0) | 2022.01.07 |
| rpi gqrx (0) | 2022.01.07 |
| rtl sdr am (0) | 2022.01.07 |
| /dev/dsp snd pcm (0) | 2021.12.27 |
호오.. 소스로 받아서 하면 된다는데
라즈베리 파이 3 정도면 FFT 사이즈를 줄이면(PC에서는 64K 정도지만..) 가능은 한 듯?
| Tudor has also reduced the FFT size to 8192 points and the FFT rate to 15 Hz, which helps keep the CPU load low. Download Gqrx for the Raspberry Pi 3 |
[링크 : https://gqrx.dk/blog/airspy-hf-and-gqrx-running-on-raspberry-pi]
[링크 : https://gqrx.dk/download/gqrx-sdr-for-the-raspberry-pi]
| RTL-SDR 11시 땡! (0) | 2022.01.07 |
|---|---|
| gqrx 오디오 스트리밍 (0) | 2022.01.07 |
| rtl sdr am (0) | 2022.01.07 |
| /dev/dsp snd pcm (0) | 2021.12.27 |
| rtl-sdr noaa 안테나 만들어서 재시도 (0) | 2021.12.27 |
생각해보니.. direct_samp 주고 리눅스에서 해보고
윈도우에서는 i branch, q branch 둘다 해봤는지 기억이 안나네
[링크 : https://www.youtube.com/watch?v=I6Kh9A1Nd_s]
+
rtl_tcp 에서 옵션을 보는데 direct sampling에 대한 건 없는 듯..
| $ rtl_tcp --help rtl_tcp: invalid option -- '-' rtl_tcp, an I/Q spectrum server for RTL2832 based DVB-T receivers Usage: [-a listen address] [-p listen port (default: 1234)] [-f frequency to tune to [Hz]] [-g gain (default: 0 for auto)] [-s samplerate in Hz (default: 2048000 Hz)] [-b number of buffers (default: 15, set by library)] [-n max number of linked list buffers to keep (default: 500)] [-d device index (default: 0)] [-P ppm_error (default: 0)] [-T enable bias-T on GPIO PIN 0 (works for rtl-sdr.com v3 dongles) |
| gqrx 오디오 스트리밍 (0) | 2022.01.07 |
|---|---|
| rpi gqrx (0) | 2022.01.07 |
| /dev/dsp snd pcm (0) | 2021.12.27 |
| rtl-sdr noaa 안테나 만들어서 재시도 (0) | 2021.12.27 |
| 부품 도착! + 공짜 도착! (2) | 2021.12.27 |
surface (그려질 영역)
shell surface (창 최소화,최대,닫기 창이름 등 셸 디자인 영역)
근데 git에 있는 cilent 예제에서는 window.c로 랩핑해놔서 아래 소스랑 비교해서 분석하는게 쉽지 않다.
| weston client 메모리 누수 (0) | 2022.01.17 |
|---|---|
| wayland buffer (0) | 2022.01.13 |
| weston window transform (0) | 2022.01.06 |
| weston-screenshooter 실행에러 (0) | 2022.01.05 |
| weston 단축키 (0) | 2022.01.04 |
wayland 에서 output 버퍼를 뒤집는거라
정상적으로 작동하는 느낌이 아니라
데스크 탑 셀 부분까지 강제로 뒤집어서 오작동 하는 느낌?
fullscreen 예제에서는 정상작동하지만 데스크 탑 셀이 없다보니
데스크탑 셀이 있으면 정상적으로 작동 안하는 걸지도?
| int window_get_buffer_transform(struct window *window); void window_set_buffer_transform(struct window *window, enum wl_output_transform transform); |
| normal 0 - no transform 90 1 - 90 degrees counter-clockwise 180 2 - 180 degrees counter-clockwise 270 3 - 270 degrees counter-clockwise flipped 4 - 180 degree flip around a vertical axis flipped_90 5 - flip and rotate 90 degrees counter-clockwise flipped_180 6 - flip and rotate 180 degrees counter-clockwise flipped_270 7 - flip and rotate 270 degrees counter-clockwise |
[링크 : https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_output-enum-transform]
| wayland buffer (0) | 2022.01.13 |
|---|---|
| wayland client example (0) | 2022.01.06 |
| weston-screenshooter 실행에러 (0) | 2022.01.05 |
| weston 단축키 (0) | 2022.01.04 |
| weston.ini same-as on output section (0) | 2022.01.03 |
weston-screenshooter를 이용하여 직접 명령어 라인에서 캡쳐를 해보려하면 아래와 같이 에러가 발생한다.
| $ weston-screenshooter weston_screenshooter@5: error 0: screenshooter failed: permission denied. Debug protocol must be enabled |
weston --debug를 통해 실행하라는데
| $ weston --debug |
[링크 : https://blog.lancitou.net/build-and-run-weston-on-ubuntu/]
[링크 : https://www.collabora.com/news-and-blog/blog/2019/04/24/weston-debugging-and-tracing-on-the-fly/]
시리얼 콘솔을 통해 접속을 해서 그런지 실행이 안된다.
| # weston --debug Date: 2022-01-13 KST [11:49:13.239] weston 9.0.0 https://wayland.freedesktop.org Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/ Build: lf-5.10.35-2.0.0-rc2+ [11:49:13.239] Command line: weston --debug [11:49:13.239] OS: Linux, 5.10.35-lts-5.10.y+g6369370afcb5, #1 SMP PREEMPT Tue Dec 14 09:29:50 UTC 2021, aarch64 [11:49:13.239] Using config file '/etc/xdg/weston/weston.ini' WARNING: debug protocol has been enabled. This is a potential denial-of-service attack vector and information leak. [11:49:13.239] Output repaint window is 16 ms maximum. [11:49:13.240] Loading module '/usr/lib/libweston-9/drm-backend.so' [11:49:13.244] initializing drm backend [11:49:13.244] logind: failed to get session seat [11:49:13.245] logind: cannot setup systemd-logind helper (-61), using legacy fallback [11:49:13.245] <stdin> not a vt [11:49:13.245] if running weston from ssh, use --tty to specify a tty [11:49:13.245] fatal: drm backend should be run using weston-launch binary, or your system should provide the logind D-Bus API. [11:49:13.245] fatal: failed to create compositor backend Internal warning: debug scope 'drm-backend' has not been destroyed. |
weston 실행 스크립트 에서
(내가 가진 시스템에서는 다음 경로에 존재함. /etc/systemd/system/graphical.target.wants/weston.service)
Service 섹션 ExecStart 의 가장 마지막에 --debug를 추가해주면 문제없이 실행된다.
다만.. 경고가 무시무시 하구만.
+
의외로 별 내용이 없는 함수인데 얘를 실행하면 debug protol must be enabled 에러가 발생한다.
| wl_display_roundtrip - Block until all pending request are processed by the server. int wl_display_roundtrip(struct wl_display *display) display The display context object Returns: The number of dispatched events on success or -1 on failure This function blocks until the server has processed all currently issued requests by sending a request to the display server and waiting for a reply before returning. This function uses wl_display_dispatch_queue() internally. It is not allowed to call this function while the thread is being prepared for reading events, and doing so will cause a dead lock. Note: This function may dispatch other events being received on the default queue. |
[링크 : https://wayland.freedesktop.org/docs/html/apb.html]
[링크 : https://www.systutorials.com/docs/linux/man/3-wl_display_roundtrip/]
compositor/weston-screenshooter.c 에서 bind_shooter() 에서 해당 에러를 출력하고
bind_shooter()는 screenshooter_create() 에서 호출이 되고
| static void bind_shooter(struct wl_client *client, void *data, uint32_t version, uint32_t id) { struct screenshooter *shooter = data; struct wl_resource *resource; bool debug_enabled = weston_compositor_is_debug_protocol_enabled(shooter->ec); resource = wl_resource_create(client, &weston_screenshooter_interface, 1, id); if (!debug_enabled && !shooter->client) { wl_resource_post_error(resource, WL_DISPLAY_ERROR_INVALID_OBJECT, "screenshooter failed: permission denied. "\ "Debug protocol must be enabled"); return; } else if (!debug_enabled && client != shooter->client) { wl_resource_post_error(resource, WL_DISPLAY_ERROR_INVALID_OBJECT, "screenshooter failed: permission denied."); return; } wl_resource_set_implementation(resource, &screenshooter_implementation, data, NULL); } WL_EXPORT void screenshooter_create(struct weston_compositor *ec) { struct screenshooter *shooter; shooter = zalloc(sizeof *shooter); if (shooter == NULL) return; shooter->ec = ec; shooter->global = wl_global_create(ec->wl_display, &weston_screenshooter_interface, 1, shooter, bind_shooter); weston_compositor_add_key_binding(ec, KEY_S, MODIFIER_SUPER, screenshooter_binding, shooter); weston_compositor_add_key_binding(ec, KEY_R, MODIFIER_SUPER, recorder_binding, shooter); shooter->destroy_listener.notify = screenshooter_destroy; wl_signal_add(&ec->destroy_signal, &shooter->destroy_listener); } |
screenshooter_create() 는 desktop-shell/shell.c의 init 함수에서 호출하는데
| WL_EXPORT int wet_shell_init(struct weston_compositor *ec, int *argc, char *argv[]) { screenshooter_create(ec); shell_add_bindings(ec, shell); shell_fade_init(shell); clock_gettime(CLOCK_MONOTONIC, &shell->startup_time); return 0; } |
이미 등록되어 있어서 새로 등록할 수 없다고 나오는 건진 애매하네..
위에서 wl_create() 하면서 이미 생성된 것에 bind 하려고 하다 보니 에러가 나는 것 같은데
bind 여부를 wl_display_roundtrip() 에서 하진 않을 것 같고 지연된 에러라고 보기에는
딜레이를 주고 실행해도 딱 그 위치에서 나오니 애매하네..
| static void handle_global(void *data, struct wl_registry *registry, uint32_t name, const char *interface, uint32_t version) { static struct screenshooter_output *output; struct screenshooter_data *sh_data = data; if (strcmp(interface, "wl_output") == 0) { output = xmalloc(sizeof *output); output->output = wl_registry_bind(registry, name, &wl_output_interface, 1); wl_list_insert(&sh_data->output_list, &output->link); wl_output_add_listener(output->output, &output_listener, output); } else if (strcmp(interface, "wl_shm") == 0) { sh_data->shm = wl_registry_bind(registry, name, &wl_shm_interface, 1); } else if (strcmp(interface, "weston_screenshooter") == 0) { sh_data->screenshooter = wl_registry_bind(registry, name, &weston_screenshooter_interface, 1); } } static const struct wl_registry_listener registry_listener = { handle_global, handle_global_remove }; |
| wayland client example (0) | 2022.01.06 |
|---|---|
| weston window transform (0) | 2022.01.06 |
| weston 단축키 (0) | 2022.01.04 |
| weston.ini same-as on output section (0) | 2022.01.03 |
| weston-image 와 cairo (0) | 2021.12.08 |
super(win) + R은 녹화한다는데
wcap이 16byte짜리만 생겨서 정상적으로 작동하는질 모르겠다..

[링크 : https://stackoverflow.com/questions/23856154/how-to-take-screenshot-under-wayland]
| weston window transform (0) | 2022.01.06 |
|---|---|
| weston-screenshooter 실행에러 (0) | 2022.01.05 |
| weston.ini same-as on output section (0) | 2022.01.03 |
| weston-image 와 cairo (0) | 2021.12.08 |
| rpi3b 64bit weston (0) | 2021.12.03 |