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

  1. 2023.09.09 처갓댁 당일치기
  2. 2023.09.08 어지러워
  3. 2023.09.08 wayland hdmi - touch 연결
  4. 2023.09.07 yocto build on i5-3570
  5. 2023.09.06 배탈, 몸살, 피곤
  6. 2023.09.05 흐음.. 방문자 수가..
  7. 2023.09.05 ordroid c2 - mrs 명령어 고찰
  8. 2023.09.04 linux cooked capture
  9. 2023.09.04 tcpdump
  10. 2023.09.03 피곤

어우 눈아파

 

이제 사과사세요 모드

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

사과는 애플  (0) 2023.09.11
사과 사세요~  (0) 2023.09.10
어지러워  (0) 2023.09.08
배탈, 몸살, 피곤  (0) 2023.09.06
피곤  (0) 2023.09.03
Posted by 구차니

약 기운인가 ㅠㅠ

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

사과 사세요~  (0) 2023.09.10
처갓댁 당일치기  (0) 2023.09.09
배탈, 몸살, 피곤  (0) 2023.09.06
피곤  (0) 2023.09.03
뚝섬 유원지 물놀이  (0) 2023.08.19
Posted by 구차니

윈도우와는 다르게 리눅스에서는

HDMI + touch를 연결하면 자꾸 0번 디스플레이와 새로 연결된 터치가 연결된다.

 

윈도우에서 지금까진 안맞는적은 없었는데, 연결방법 글이 있는걸 보면 아주 없진 않나보다.

아무튼 윈도우는 어떤 시나리오로 되길래 외부 모니터와 touch를 잘 매칭해주는진 모르겠지만

[링크 : https://comterman.tistory.com/2738]

 

wayland 나 x.org 에서는 영~ 매칭이 잘 안된다.

화면 찢어짐 때문에 wayland로 해놨는데 그 여파로 따라해봐도 스크린에 터치가 옮겨가진 않는다.

[링크 : https://askubuntu.com/questions/71768/touchscreen-and-additional-external-monitor]

[링크 : https://unix.stackexchange.com/questions/473721/calibrating-a-touch-screen-on-dual-monitors-one-touch-one-not]

 

libinput-device.c를 보면 아래 함수 두개에 associated 용어를 표현하며

입력 장치를 evdev의 이벤트를 통해 연결하는데, 회사에서 시험해볼때는

touch 장치 쪽에서 연결할 스크린 명칭을 넣어주지 않아서인지 제대로 연결되는걸 못 본 듯.

void
evdev_device_set_calibration(struct evdev_device *device)
{
struct udev *udev;
struct udev_device *udev_device = NULL;
const char *sysname = libinput_device_get_sysname(device->device);
const char *calibration_values;
uint32_t width, height;
struct weston_touch_device_matrix calibration;

if (!libinput_device_config_calibration_has_matrix(device->device))
return;

/* If LIBINPUT_CALIBRATION_MATRIX was set to non-identity, we will not
* override it with WL_CALIBRATION. It also means we don't need an
* output to load a calibration. */
if (libinput_device_config_calibration_get_default_matrix(
device->device,
calibration.m) != 0)
return;

/* touch_set_calibration() has updated the values, do not load old
* values from WL_CALIBRATION.
*/
if (device->override_wl_calibration)
return;

if (!device->output) {
weston_log("input device %s has no enabled output associated "
"(%s named), skipping calibration for now.\n",
sysname, device->output_name ?: "none");
return;
}

void
evdev_device_set_output(struct evdev_device *device,
struct weston_output *output)
{
if (device->output == output)
return;

if (device->output_destroy_listener.notify) {
wl_list_remove(&device->output_destroy_listener.link);
device->output_destroy_listener.notify = NULL;
}

if (!output) {
weston_log("output for input device %s removed\n",
libinput_device_get_sysname(device->device));

device->output = NULL;
return;
}

weston_log("associating input device %s with output %s "
"(%s by udev)\n",
libinput_device_get_sysname(device->device),
output->name,
device->output_name ?: "none");

device->output = output;
device->output_destroy_listener.notify = notify_output_destroy;
wl_signal_add(&output->destroy_signal,
&device->output_destroy_listener);
evdev_device_set_calibration(device);
}

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

weston evdev libinput  (0) 2024.03.11
weston 커서 숨기기  (0) 2024.02.26
wayland atomic commit 패치?  (0) 2022.08.22
weston screen shooter 뜯어보기  (0) 2022.08.17
wayland glreadpixels 실패  (0) 2022.08.16
Posted by 구차니

전체는 아니고 weston 쪽을 기준으로 빌드하는데

소요시간이 1시간

real 62m37.028s
user 0m6.099s
sys 0m0.797s

 

나중에 노트북에서 다시 빌드해 봐야하나?

어째 i7-10510U+ nvme 보다

i5-3570 + sata ssd 가 더 빠른것 같은건 왜지..

 

데스크탑과 노트북이라 차이가 있긴 해도 

벤치상으로는 노트북쪽이 신형이라 빠를텐데..?

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

bitbake --help  (0) 2023.08.29
Do not use Bitbake as root.  (0) 2023.08.28
imx8 yocto  (0) 2023.08.28
imx8 yocto build on ubuntu 22.04  (0) 2023.02.10
라즈베리 파이 with yocto project  (2) 2015.07.30
Posted by 구차니

새벽에 더워서 열어두고 선풍기를 틀어서 밖으로 바람 빼면서 잤더니

추워서 배탈나고

이불 덮어서 땀은 뻘뻘나는데 추워서 오들거리고

좌우로 댕댕쓰들이 있어줘서 열로 버텼지

아니면 자다가 골로갈뻔 -_-

 

하루종일 피곤해서 골골골

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

처갓댁 당일치기  (0) 2023.09.09
어지러워  (0) 2023.09.08
피곤  (0) 2023.09.03
뚝섬 유원지 물놀이  (0) 2023.08.19
처갓댁 방문  (0) 2023.08.13
Posted by 구차니

한참때는 1300까지 가더니

아직 대학생들이 개학을 안해서 그런가 미적지근(?) 하다 

게을러져서 2~3주에 한번 글 정리해서 공개하고 하다보니

매일 1개는 쓰더라도 공개주기가 늦어져서 그런건가 싶기도 하고.

 

Posted by 구차니
embeded/odroid2023. 9. 5. 11:08

라즈베리 파이 3b

$ cat /proc/cpuinfo 
processor : 0
BogoMIPS : 38.40
Features : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4

 

odroid-c2

$ cat /proc/cpuinfo 
processor : 0
BogoMIPS : 2.00
Features : fp asimd crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4

 

소스코드

#include <stdint.h>
#include "timer.h"

void main()
{
opal_sys_timer_freq();
}
#ifndef OPAL_SYS_ARCH_TIMER_H
#define OPAL_SYS_ARCH_TIMER_H 1

#include <sys/times.h>

typedef uint64_t opal_timer_t;

static inline opal_timer_t
opal_sys_timer_get_cycles(void)
{
    opal_timer_t ret;

    __asm__ __volatile__ ("isb" ::: "memory");
    __asm__ __volatile__ ("mrs %0,  CNTVCT_EL0" : "=r" (ret));

    return ret;
}


static inline opal_timer_t
opal_sys_timer_freq(void)
{
    opal_timer_t freq;
    __asm__ __volatile__ ("mrs %0,  CNTFRQ_EL0" : "=r" (freq));
    return (opal_timer_t)(freq);
}

#define OPAL_HAVE_SYS_TIMER_GET_CYCLES 1

#endif /* ! OPAL_SYS_ARCH_TIMER_H */

 

실행파일 디스어셈블

0000000000000724 <opal_sys_timer_freq>:
 724: d10043ff  sub sp, sp, #0x10
 728: d53be000  mrs x0, cntfrq_el0
 72c: f90007e0  str x0, [sp, #8]
 730: f94007e0  ldr x0, [sp, #8]
 734: 910043ff  add sp, sp, #0x10
 738: d65f03c0  ret

 

라즈베리 파이(좌), odroid-c2(우)

(gdb) r
Starting program: /home/pi/src/a.out 
[Inferior 1 (process 2762) exited normally]


(gdb) r
Starting program: /root/src/a.out 

Program received signal SIGILL, Illegal instruction.
0x0000005555555720 in opal_sys_timer_freq ()

 

MRS
Move the contents of the CPSR or SPSR to a general-purpose register.

Usage
Use MRS in combination with MSR as part of a read-modify-write sequence for updating a PSR, for example to change processor mode, or to clear the Q flag.

Caution
You must not attempt to access the SPSR when the processor is in User or System mode. This is your responsibility. The assembler cannot warn you about this as it does not know what processor mode code will be executed in.

Architectures
This instruction is available in ARM architecture versions 3 and above.

[링크 : https://developer.arm.com/documentation/dui0068/b/ARM-Instruction-Reference/Miscellaneous-ARM-instructions/MRS]

 

MSR
Load specified fields of the CPSR or SPSR with an immediate constant, or from the contents of a general-purpose register.

Architectures
This instruction is available in ARM architecture versions 3 and above.

[링크 : https://developer.arm.com/documentation/dui0068/b/ARM-Instruction-Reference/Miscellaneous-ARM-instructions/MSR]

 

 

[링크 :https://developer.arm.com/documentation/ddi0601/2022-03/AArch64-Registers/CNTFRQ-EL0--Counter-timer-Frequency-register]

 

 

Saved Process Status Register

[링크 : https://developer.arm.com/documentation/den0024/a/ARMv8-Registers/AArch64-special-registers/Saved-Process-Status-Register]

 

AArch64 (ARM64)에서는 ARMv7의 CPSR (Current Program Status Register)과 directly 연결되는 개념을 갖고 있지 않다. 그 대신 AArch64에서는 CPSR field의 각 값을 PSTATE로 정의하였다.

[링크 : https://gongpd.tistory.com/9]

 

EL이라는 것에 따라서 PSR 접근이 달라지는 거라면.. 명령어도 illegal이 될 수 있으려나?

[링크 : https://developer.arm.com/documentation/den0024/a/ARMv8-Registers/AArch64-special-registers]

 

EL0 = ARMv7의 User 모드
EL1 = ARMv7의 Supervisor 모드(커널 코드 실행)
EL2 = 하이퍼바이저 모드(하이퍼바이저 실행)
EL3 = Secure 모드(트러스트 존 실행)

[링크 : https://blog.naver.com/crushhh/222093330435]

 

분위기를 보아하니.. cpu ring level(privilige mode) 에 따라서 접근 가능한 레지스터가 바뀌는데

그러면서 특정 명령어가 사용불능이 되기도 하는건가 싶은데

 

라즈베리 파이 3b / 64 odroid c2
$ uname -a
Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux
# uname -a
Linux odroid 3.16.85-65 #1 SMP PREEMPT Mon Jan 18 13:32:38 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux

 

설마 커널 버전에 따른 atf 혹은 el 설정방법 차이나 누락으로 인해 이런 문제가 발생하는건가?

 

시간나면 odroid-c2용 armbian 으로 시도해봐야겠다. 커널 버전이 너무 차이나네..

Armbian 23.8 Bookworm
Kernel 6.1, Size: 467Mb, Release date: Aug 31, 2023

[링크 : https://www.armbian.com/odroid-c2/]

 

+

걍 armbian 하니 잘 된다. 커널 버전이나 aarch64 지원이 미흡한 구버전 커널이라 그럴수도 있을 듯 하다.

minimonk@odroidc2:~$ mpirun
--------------------------------------------------------------------------
mpirun could not find anything to do.

It is possible that you forgot to specify how many processes to run
via the "-np" argument.
--------------------------------------------------------------------------

'embeded > odroid' 카테고리의 다른 글

wayland on odroid-c2  (0) 2021.11.22
odroid c2 gpio 와 wiringpi  (0) 2021.09.29
g_mass_storage rpi - odroid c2  (0) 2021.09.28
g_mass_storage ins/rm 실패  (0) 2021.09.28
odroid c2 ubuntu 18.04, 20.04 kernel 버전 정보  (0) 2021.09.27
Posted by 구차니

wireshark 에서 any 인터페이스로 잡으면 

linux cooked capture 라는 희한한(?) 레이어가 생긴다.

물론 wlo나 eth 와 같이 인터페이스를 지정하면 Ethernet II 이런식으로 뜬다.

 

[링크 : https://byeo.tistory.com/entry/Linux-Cooked-Capture-SLL-protocol]

Posted by 구차니
Linux2023. 9. 4. 10:14

원인불명(?)으로 랜이 엄청나게 깜박여서 확인겸

어떤 소켓이나 어떤 포트로 요청이 들어오나 찾는법을 검색해보는데

tcpdump를 실행하면 된다고 해서 깔아봄

 

2995 packets captured
3250 packets received by filter
239 packets dropped by kernel

[링크 : https://stackoverflow.com/questions/21937162/how-to-find-out-the-number-of-transmitted-received-bytes-for-a-socket]

 

-n 줘서 resolve 안하면 drop이 줄어든다는데

도대체 머가 drop 되는진 어떻게 알 수 있을까?

[링크 : http://www.packetinside.com/2010/11/커널에서-drop-되는-패킷-수가-많다면.html]

'Linux' 카테고리의 다른 글

multitail / tail  (2) 2023.10.18
top 로그로 남기기  (0) 2023.10.17
dhcpd IP 할당 규칙  (0) 2023.09.01
시스템 audit 로그  (0) 2023.08.30
.bashrc 설정 history  (0) 2023.08.08
Posted by 구차니

으아아아아아 어깨 아파

어깨에서 곰들이 춤을 추고 있어!

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

어지러워  (0) 2023.09.08
배탈, 몸살, 피곤  (0) 2023.09.06
뚝섬 유원지 물놀이  (0) 2023.08.19
처갓댁 방문  (0) 2023.08.13
낮잠을 잘 수가 없네!!!  (0) 2023.08.12
Posted by 구차니