'잡동사니'에 해당되는 글 13035건

  1. 2022.01.07 조이콘 부품 도착, 수리 13분 컷
  2. 2022.01.07 pcr 무증상 검사 안한다고? 4
  3. 2022.01.07 gqrx 오디오 스트리밍
  4. 2022.01.07 rpi gqrx
  5. 2022.01.07 rtl sdr am
  6. 2022.01.06 wayland client example
  7. 2022.01.06 weston window transform
  8. 2022.01.06 systemctl TTYPath
  9. 2022.01.06 조이콘 부품 또 지름 8
  10. 2022.01.05 weston-screenshooter 실행에러

이제 익숙해져서 그런가, 왼쪽만 두번 수리했으니 익숙해질만... 도 한가?

아무튼 수리 처음사진이랑 다 하고 나서 찍으니 13분

 

IR 카메라 달리면서 좀 더 구조가 복잡하긴 한데

안테나 도.. 왼쪽에서는 못 본것 같은데 먼가 생소하네

 

혹시 모르니 배터리를 뽑고는 아니고

배터리를 뽑지 않으면 선 길이 때문에 조이스틱을 빼낼수 없으니 필수적으로 빼내야 한다.

 

왼쪽이 정품, 오른쪽이 교체할 호환품.

조이스틱 손 닿는 부분도 이상하게 부풀어 오르고 난리...

 

취미(!)삼아 분해했는데

이번에는 탄소피막 손상은 크지 않은데 센터에서 미세하게 흔들린다.

피막문제가 아니라 접촉부 문제인가?

 

Posted by 구차니

나중에 폭주할 때 시나리오로 사용해야 할 걸 미리 땡겨서 발표하냐?

개인적으로는 백신 패스 때문에 오히려 백신 맞았다고 술먹고 마스크 안하는 사람들이 늘어난다고 생각해서

그리고 백신을 맞았다고 해서 확실히 안걸리는 것도 아니고

예방 효과도 애매한 상황에서, 백신 패스라고 해서 예외를 적용함으로

이번에 7~8천까지 날뛰었는데

여러모로 앞뒤 손발이 안 맞는 짓을 하는 느낌..

 

[링크 : https://news.v.daum.net/v/20220107172803596]

Posted by 구차니

gqrx에 네트워크로 스트리밍 하는 옵션을 본 것 같은데 

찾아보니 오디오를 스트리밍 하고 해당 기능은 아래 명령을 이용하여 aplay로 재생이 가능 하다고..

 

$ nc -l -u 7355 | aplay -r 48k -f S16_LE -t raw -c 1

[링크 : https://gqrx.dk/doc/streaming-audio-over-udp]

'프로그램 사용 > rtl-sdr' 카테고리의 다른 글

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
Posted by 구차니

호오.. 소스로 받아서 하면 된다는데

라즈베리 파이 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' 카테고리의 다른 글

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
Posted by 구차니

생각해보니.. 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)

'프로그램 사용 > rtl-sdr' 카테고리의 다른 글

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
Posted by 구차니

surface (그려질 영역)

shell surface (창 최소화,최대,닫기 창이름 등 셸 디자인 영역)

근데 git에 있는 cilent 예제에서는 window.c로 랩핑해놔서 아래 소스랑 비교해서 분석하는게 쉽지 않다.

 

[링크 : https://jan.newmarch.name/Wayland/ProgrammingClient/]

'프로그램 사용 > wayland' 카테고리의 다른 글

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
Posted by 구차니

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' 카테고리의 다른 글

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
Posted by 구차니
Linux2022. 1. 6. 15:34

weston 실행 스크립트를 보다보니 아래와 같은게 보인다.

# A virtual terminal is needed.
TTYPath=/dev/tty7
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes

 

저래서 /dev/tty7 에서 weston이 실행되는 것 같은데

chvt 등을 이용해서 해당 tty로 이동은 불가능한데 어떤식으로 systemctl에서는 구현되어 있는 걸까?

[링크 : https://alan-mushi.github.io/2014/10/26/execute-an-interactive-script-at-boot-with-systemd.html]

'Linux' 카테고리의 다른 글

elementary os  (0) 2022.01.28
linux 터미널 pause, resume  (0) 2022.01.11
uniq 카운트  (0) 2021.12.07
grep 바이너리 파일 일치함  (0) 2021.12.06
리눅스 코어 덤프 및 분석  (0) 2021.11.03
Posted by 구차니

이거.. 소모품이었냐?!?!

조이콘 스트랩이 망가져서 같이 사려는데 배송비 합쳐지지 않고 두번 나가서 조이콘 스틱모듈만 구매!

저번에는 제노 블레이드 DE 한다고 왼쪽 만 두번 갈아먹었는데

젤다 하면서 오른쪽 갈아 먹고 겸사겸사 양쪽 다 갈게 될 느낌이라

쿠폰쓰기 위해 만원 넘기도록 4개 구매!

 

 

젤다 야숨은 엔딩 봤는데 2회차는 좀 까마득하고

제노블레이드 2 중단했던거 이어서나 하게 주말에 고쳐봐야겠다.

Posted by 구차니

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' 카테고리의 다른 글

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
Posted by 구차니