'잡동사니'에 해당되는 글 13306건
- 2023.09.09 처갓댁 당일치기
- 2023.09.08 어지러워
- 2023.09.08 wayland hdmi - touch 연결
- 2023.09.07 yocto build on i5-3570
- 2023.09.06 배탈, 몸살, 피곤
- 2023.09.05 흐음.. 방문자 수가..
- 2023.09.05 ordroid c2 - mrs 명령어 고찰
- 2023.09.04 linux cooked capture
- 2023.09.04 tcpdump
- 2023.09.03 피곤
약 기운인가 ㅠㅠ
'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글
사과 사세요~ (0) | 2023.09.10 |
---|---|
처갓댁 당일치기 (0) | 2023.09.09 |
배탈, 몸살, 피곤 (0) | 2023.09.06 |
피곤 (0) | 2023.09.03 |
뚝섬 유원지 물놀이 (0) | 2023.08.19 |
윈도우와는 다르게 리눅스에서는
HDMI + touch를 연결하면 자꾸 0번 디스플레이와 새로 연결된 터치가 연결된다.
윈도우에서 지금까진 안맞는적은 없었는데, 연결방법 글이 있는걸 보면 아주 없진 않나보다.
아무튼 윈도우는 어떤 시나리오로 되길래 외부 모니터와 touch를 잘 매칭해주는진 모르겠지만
[링크 : https://comterman.tistory.com/2738]
wayland 나 x.org 에서는 영~ 매칭이 잘 안된다.
화면 찢어짐 때문에 wayland로 해놨는데 그 여파로 따라해봐도 스크린에 터치가 옮겨가진 않는다.
[링크 : https://askubuntu.com/questions/71768/touchscreen-and-additional-external-monitor]
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 |
전체는 아니고 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 |
한참때는 1300까지 가더니
아직 대학생들이 개학을 안해서 그런가 미적지근(?) 하다
게을러져서 2~3주에 한번 글 정리해서 공개하고 하다보니
매일 1개는 쓰더라도 공개주기가 늦어져서 그런건가 싶기도 하고.
'개소리 왈왈 > 블로그' 카테고리의 다른 글
블로그 방문자 하락.. -_ㅠ (0) | 2023.10.03 |
---|---|
방문자 1000 미만 -_ㅠ (0) | 2023.09.22 |
티스토리 블로그 백업 기능 살아남 (0) | 2023.06.06 |
티스토리 절찬리에 폭주중 feat 상단광고 (0) | 2023.06.05 |
도메인 결제 (0) | 2023.06.02 |
라즈베리 파이 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. |
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. |
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 |
wireshark 에서 any 인터페이스로 잡으면
linux cooked capture 라는 희한한(?) 레이어가 생긴다.
물론 wlo나 eth 와 같이 인터페이스를 지정하면 Ethernet II 이런식으로 뜬다.
[링크 : https://byeo.tistory.com/entry/Linux-Cooked-Capture-SLL-protocol]
'프로그램 사용 > wireshark(ethereal)' 카테고리의 다른 글
wireshark logging (0) | 2025.03.05 |
---|---|
wireshark winpcap 설정하기 (0) | 2024.06.17 |
wireshark에서 DHCP 캡쳐하기 (0) | 2011.10.05 |
wireshark(ethereal / 이더리얼)에서 특정 프로토콜만 필터하기 (0) | 2009.07.05 |
ubuntu에 ethereal(wireshark) 설치하기 (0) | 2009.07.04 |
원인불명(?)으로 랜이 엄청나게 깜박여서 확인겸
어떤 소켓이나 어떤 포트로 요청이 들어오나 찾는법을 검색해보는데
tcpdump를 실행하면 된다고 해서 깔아봄
2995 packets captured 3250 packets received by filter 239 packets dropped by kernel |
-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 |
으아아아아아 어깨 아파
어깨에서 곰들이 춤을 추고 있어!
'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글
어지러워 (0) | 2023.09.08 |
---|---|
배탈, 몸살, 피곤 (0) | 2023.09.06 |
뚝섬 유원지 물놀이 (0) | 2023.08.19 |
처갓댁 방문 (0) | 2023.08.13 |
낮잠을 잘 수가 없네!!! (0) | 2023.08.12 |