으아아아아아 어깨 아파
어깨에서 곰들이 춤을 추고 있어!
'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글
| 어지러워 (0) | 2023.09.08 |
|---|---|
| 배탈, 몸살, 피곤 (0) | 2023.09.06 |
| 뚝섬 유원지 물놀이 (0) | 2023.08.19 |
| 처갓댁 방문 (0) | 2023.08.13 |
| 낮잠을 잘 수가 없네!!! (0) | 2023.08.12 |
으아아아아아 어깨 아파
어깨에서 곰들이 춤을 추고 있어!
| 어지러워 (0) | 2023.09.08 |
|---|---|
| 배탈, 몸살, 피곤 (0) | 2023.09.06 |
| 뚝섬 유원지 물놀이 (0) | 2023.08.19 |
| 처갓댁 방문 (0) | 2023.08.13 |
| 낮잠을 잘 수가 없네!!! (0) | 2023.08.12 |
거꾸로 두 번 타는 보일러도 아니고 -_-
“택시 기본요금 1000원 아닌가요”…국무총리 답변 ‘실소’
[링크 : https://v.daum.net/v/20230831103504070]
박지원 "차라리 대통령을 김건희가 했으면 더 잘할 것"
[링크 : https://v.daum.net/v/20230831192203722]
尹 국정지지율 5%P 떨어져 33%··· 70% "후쿠시마 오염수 해로울것"
[링크 : https://v.daum.net/v/20230831140144198]
video 태그에서 비디오 재생 종료시, onended 이벤트가 발생한다고 한다.
대충(?) 이걸 이용해서 video tag에 재생목록 기능이 없으니, 순차적으로 다른 파일을 재생은 가능한 듯.
| let aud = document.getElementById("myAudio"); aud.onended = function() { alert("The audio has ended"); }; |
[링크 : https://www.w3schools.com/tags/av_event_ended.asp]
[링크 : https://www.w3schools.com/tags/ref_av_dom.asp]
| javascript 숫자 (0) | 2024.02.07 |
|---|---|
| 마우스로 테이블 열 변경하기 (0) | 2024.02.02 |
| 숫자에 콤마 찍기(자릿수 표현) (0) | 2023.07.27 |
| canvas 없는 getcontext (0) | 2023.07.12 |
| html canvas와 시간 그래프 흘리기 (0) | 2023.07.06 |
엥...
라즈베리 파이 3B 64bit OS 에서는 잘 실행되는데
| pi@raspberrypi:~ $ 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. -------------------------------------------------------------------------- pi@raspberrypi:~ $ mpirun --version mpirun (Open MPI) 4.1.0 Report bugs to http://www.open-mpi.org/community/help/ |
odroid c2 에서는(aarch64) 에러가 난다
| $ mpirun Illegal instruction $ mpirun --help Illegal instruction $ mpirun --version mpirun (Open MPI) 4.0.3 Report bugs to http://www.open-mpi.org/community/help/ |
strace라던가 써서 추적해보려는데 패키지가 되먹질 않으니 짜증나네 -_ㅠ
odroid c2
| geteuid() = 1000 openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3 --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPC, si_addr=0x7fa18b7cfc} --- +++ killed by SIGILL +++ Illegal instruction |
라즈베리 파이
| geteuid() = 1000 openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3 close(3) = 0 getuid() = 1000 geteuid() = 1000 |
도대체 고작 /proc/cpuinfo 여는걸로 죽다니 머지?
+
gdb로 해보니 뜬금없이 libopen-pal.so.40 에서 죽는다. 도대체 PAL 이 멀하는데 illegal instruction 을 띄울 작업을 하는거지?
| $ gdb mpirun GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "aarch64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from mpirun... (No debugging symbols found in mpirun) (gdb) r Starting program: /usr/bin/mpirun [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1". Program received signal SIGILL, Illegal instruction. 0x0000007fb7ec5cfc in ?? () from /usr/lib/aarch64-linux-gnu/libopen-pal.so.40 |
눈이 이상해졌나 open-pam 인 줄.. -_-
아무튼 libopen-pal 혹은 OPAL 이라는 녀석이 현재 문제인데
openmpi는 liboshmem(shared memory 관리?) libmpi 그리고 libopen-pal로 구성된다고 한다.
| That is, they are compiled into separate libraries: liboshmem, libmpi, libopen-pal with a strict dependency order: OSHMEM depends on OMPI, OMPI depends on OPAL. |
[링크: https://docs.open-mpi.org/en/v5.0.x/developers/terminology.html]
open PAL은 체크포인트 와 프로그램 재시작을 할 수 있도록 해주는 녀석이니..
프로세서에 대해서 잘 알아야 프로그램을 멈추고 실행하게 할테니..
반대로 생각하면 odroid-c2에서 적용된 aarch64 버전이 amlogic 기반의 ap와는 맞지 않게 빌드된걸려나?
| Open PAL can involuntarily checkpoint and restart sequential programs. Doing so requires that Open PAL was compiled with thread support and that the back-end checkpointing systems are available at run-time. |
[링크 : https://www.open-mpi.org/doc/v4.1/man7/opal_crs.7.php]
+
odroid c2 에서 make -j4 로 openmpi-4.1.0 빌드에 걸린시간
중간에 gdb 설치한다고 순수하게 돌리면 24분쯤으로 되지 않았을까?
| real 25m20.199s user 52m9.680s sys 5m27.920s |
+
빡세게(?) 빌드까지 해서 겨우겨우 돌렸는데 왜 저런 에러가 또 나냐고 ㅠㅠ
| Program received signal SIGILL, Illegal instruction. 0x0000007fb7ec236c in opal_timer_linux_find_freq () from /usr/local/lib/libopen-pal.so.40 |
에러를 보니 먼가 함수명이 나와서 추적
| $ grep -rn "opal_timer_linux_find_freq" . Binary file ./opal/mca/timer/linux/.libs/timer_linux_component.o matches Binary file ./opal/mca/timer/linux/.libs/libmca_timer_linux.a matches ./opal/mca/timer/linux/timer_linux_component.c:105:static int opal_timer_linux_find_freq(void) ./opal/mca/timer/linux/timer_linux_component.c:203: ret = opal_timer_linux_find_freq(); $ cat opal/mca/timer/linux/timer_linux_component.c static int opal_timer_linux_find_freq(void) { FILE *fp; char *loc; float cpu_f; int ret; char buf[1024]; fp = fopen("/proc/cpuinfo", "r"); if (NULL == fp) { return OPAL_ERR_IN_ERRNO; } opal_timer_linux_freq = 0; #if OPAL_ASSEMBLY_ARCH == OPAL_ARM64 opal_timer_linux_freq = opal_sys_timer_freq(); #endif $ grep -rni "opal_sys_timer_freq" . ./mca/timer/linux/timer_linux_component.c:121: opal_timer_linux_freq = opal_sys_timer_freq(); ./include/opal/sys/arm64/timer.h:36:opal_sys_timer_freq(void) $ cat openmpi-4.1.0/opal/include/opal/sys/arm64/timer.h 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); } |
레지스터 이름부터가 무시무시하네?
| MRS Move System Register. Syntax MRS Xt, (systemreg|Sop0_op1_Cn_Cm_op2) Where: Xt Is the 64-bit name of the general-purpose destination register. systemreg Is a System register name. The System register names are defined in 'AArch64 System Registers' in the System Register XML. op0 Is an unsigned immediate, and can be either 2 or 3. op1 Is a 3-bit unsigned immediate, in the range 0 to 7. Cn Is a name Cn, with n in the range 0 to 15. Cm Is a name Cm, with m in the range 0 to 15. op2 Is a 3-bit unsigned immediate, in the range 0 to 7. Usage Move System Register allows the PE to read an AArch64 System register into a general-purpose register. |
[링크 : https://developer.arm.com/documentation/dui0801/h/A64-General-Instructions/MRS]
| Accessing CNTFRQ_EL0 Accesses to this register use the following encodings in the System register encoding space: MRS <Xt>, CNTFRQ_EL0 op0 |
| The two instructions you show above are therefore - MSR HPFAR_EL2, X0 MSR PSTATEField_SP, #0 |
[링크 : https://reverseengineering.stackexchange.com/questions/14617/arm-understanding-msr-mrs-instructions]
보면.. uboot에도 있는 아주 평범한(?) 녀석인데.. 머지?
| unsigned long timer_read_counter(void) { unsigned long cntpct; unsigned long temp; isb(); asm volatile("mrs %0, cntpct_el0" : "=r" (cntpct)); asm volatile("mrs %0, cntpct_el0" : "=r" (temp)); while (temp != cntpct) { asm volatile("mrs %0, cntpct_el0" : "=r" (cntpct)); asm volatile("mrs %0, cntpct_el0" : "=r" (temp)); } return cntpct; } |
[링크 : https://github.com/qemu/u-boot/blob/master/arch/arm/cpu/armv8/generic_timer.c]
%0은 이전의 dst 를 의미하는걸려나?
| int val = 50; __asm volatile ("MOV R0, %0": : "r"(var) ); ==> (컴파일러 해석) ldr r3, [r7, #4] mov r0, r3 |
[링크 : https://dhpark1212.tistory.com/entry/ARM-GCC-Inline-assembly-coding]
amlogic 의 Cortex-A53인데 많이 다른가?
| ODROID-C2 | ODROID-C1+ | RPi 3 Model B | |
| CPU |
Amlogic S905 SoC
4 x ARM Cortex-A53 1.5GHz
64bit ARMv8 Architecture @28nm
|
Amlogic S805 SoC
4 x ARM Cortex-A5 1.5GHz
32bit ARMv7 Architecture @28nm
|
Broadcom BCM2837
4 x ARM Cortex-A53 1.2Ghz
64bit ARMv7 Architecture @40nm
|
| openFOAM + freecad + salome (0) | 2023.06.07 |
|---|---|
| openFOAM tutorial with youtube (0) | 2023.05.24 |
| openfoam on ubuntu (0) | 2023.05.24 |
| openFOAM tutorial (4) | 2023.05.24 |
| openfoam7 on ubuntu 18.04 (0) | 2020.08.09 |
mac의 oui에 따라서 ip 대역을 다르게 할당하는 방법인.. 듯?
| class "kvm" { match if binary-to-ascii(16,8,":",substring(hardware, 1, 2)) = "56:11"; } class "local" { match if binary-to-ascii(16,8,":",substring(hardware, 1, 2)) = "52:54"; } host meme { fixed-address 10.1.0.254; } host server247 { hardware ethernet 52:54:00:2f:ea:07; fixed-address 10.1.0.247; } subnet 10.1.0.224 netmask 255.255.255.224 { option routers 10.1.0.225; pool { allow members of "kvm"; range 10.1.0.226 10.1.0.235; } pool { allow members of "local"; range 10.1.0.236 10.1.0.240; } pool { # Don't use this pool. It is really just a range to reserve # for fixed addresses defined per host, above. allow known-clients; range 10.1.0.241 10.1.0.253; } } |
[링크 : https://serverfault.com/questions/79748/assign-dhcp-ips-for-specific-mac-prefixes]
| 예 14.3. DHCP를 사용하여 고정 IP 주소 host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; } |
| 예 14.6. “그룹 선언” 에서 시연한 대로 그룹 선언은 선언 그룹에 전역 매개 변수를 적용하는 데 사용됩니다. 예를 들어 공유 네트워크, 서브넷 및 호스트를 그룹화할 수 있습니다. 예 14.6. 그룹 선언 group { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option domain-search "example.com"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; } host raleigh { option host-name "raleigh.example.com"; hardware ethernet 00:A1:DD:74:C3:F2; fixed-address 192.168.1.6; } } |
| top 로그로 남기기 (0) | 2023.10.17 |
|---|---|
| tcpdump (0) | 2023.09.04 |
| 시스템 audit 로그 (0) | 2023.08.30 |
| .bashrc 설정 history (0) | 2023.08.08 |
| lvmcache bcache (0) | 2023.07.27 |
갑자기 Q / SET 버튼이 안눌려서 어제는 터치로 어떻게 커버했는데
이전에도 회전 버튼도 이상해서 수리해볼까 하다가 검색해보니 부품만 판다고
특이하게(?) FPCB 단판으로 되어있다. 분해해서 닦으면 좀 나아지려나?
[링크 : https://blog.naver.com/cottonface/221988000370]
[링크 : https://ko.aliexpress.com/item/33042077406.html] 3316원 1.0 평점
[링크 : https://ko.aliexpress.com/item/1005003221582492.html] 4377원 4.0 평점
+
AS 센터 전화해보니 ARS 단계만 드럽게 많네 -_-
EOS M은 수리 종료된 제품이라 택배비/점검비 발생가능하지만 수리 못할 수도 있다는 슬픈 소식.
| 캐논 br-e1 (0) | 2023.12.25 |
|---|---|
| 아부지 카메라 강탈! (0) | 2023.11.23 |
| 슈퍼~~~문 (0) | 2023.08.31 |
| 북두칠성, 오리온 그리고 불꽃놀이 (2) | 2022.02.03 |
| 가을비 (0) | 2021.10.31 |
이전에 공유메모리를 사용할 때 c에서는 packed 구조체로 사용하고
go 에서는 system v 스타일로 그냥 사용했는데 문제가 없었는데, 문제가 없던게 아니라 몰랐던건가?
[링크 : https://medium.com/@liamkelly17/working-with-packed-c-structs-in-cgo-224a0a3b708b]
[링크 : https://stackoverflow.com/questions/55681650/golang-pack-a-struct]
[링크 : https://pkg.go.dev/golang.org/x/tools/go/analysis/passes/fieldalignment]
[링크 : https://golangprojectstructure.com/how-to-make-go-structs-more-efficient/]
fieldalignment 라는 유틸(?)을 이용하면 go의 구조체를 바꾸어서 용량을 줄여준다는데
자세히 보면 가장 큰 구조체를 위로 올리고 작은건 뒤에 배치해서 메모리 align에 맞춰서 하는 것으로 보인다.

[링크 : https://jacking75.github.io/go-20220712/]
기존에 메모리 배치를 알아서 잘 쌓아서 쓰던 습관이 있어서 우연히(?) 회피한건가...
| golang echo 구조체 배열은 미지원? (0) | 2023.11.06 |
|---|---|
| golang echo 패키지 소스 (0) | 2023.09.13 |
| golang asm (0) | 2023.08.24 |
| golang goarch=arm64 와 디스어셈블러 (0) | 2023.08.23 |
| golang echo 서버 이상한 버그 발견? (0) | 2023.06.27 |
개들 데리고 산책 나가는데,다들 폰들고 먼가 찍고 있어서 먼가 했더니
오늘이 슈퍼문이랬나 블루문이랬나
[링크 : https://www.bbc.com/korean/articles/cyrjnm3kr0vo]
오랫만에 카메라를 들었더니
이 망할 카메라는 확인 버튼도 안눌리고 슬슬 보내줘야 하나...

| 아부지 카메라 강탈! (0) | 2023.11.23 |
|---|---|
| eos m 수리 부품... (0) | 2023.09.01 |
| 북두칠성, 오리온 그리고 불꽃놀이 (2) | 2022.02.03 |
| 가을비 (0) | 2021.10.31 |
| 안드로메다 은하, 플레아데스 성운 (0) | 2021.10.29 |
freecad 에서 도면을 그리려면 먼가 어렵다?
상단의 툴바에서 누르던가 아니면
보기 - 워크벤치 - Draft 혹은 Part Design을 누르면 되는 것 같은데

Draft를 누르면 아래와 같이 격자종이가 나오고

part Design을 누르면 그냥 빈화면만 나온다.

[링크 : https://commox111.tistory.com/65]
part design 에서 점이나 선을 그리려면 활성바디가 없다고 에러가 나는데
좌측에 생성 : 바디(body) 누르면 어떻게 시작은 가능한 듯.

[링크 : https://www.youtube.com/watch?v=x53Jbr16ekI]
아무튼 draft 에서 대충대충 선을 그리고
modification - array tools - circular array로 대충 베어링은 그려볼 수 있을 듯.

| CSG(Constructive solid geometry) freecad (0) | 2024.08.30 |
|---|---|
| freecad 사용법 다시.. (2) | 2024.08.29 |
| freeCAD 는 ubuntu24.04에서 사라졌나? (0) | 2024.08.29 |
| ubuntu용 cad 프로그램 (0) | 2020.09.23 |
| freecad 설명 (0) | 2018.01.22 |
주로 다루고 있는게 A9(zynq z7020, imx6q) 과 A53(imx8mp) 인데
A53만 해도 나온지 10년이 된 녀석.. A5x 시리즈의 최초 버전

벤치해보면 의외로 빠르지 않았는데, 클럭빨이었나.. A9보다 낮은 2.3DMIPS라니..

라즈베리 같은데 A7 인데 얘도 공정빨로 클럭이 높아서 쓸만할뿐 1.9DMIPS 로 성능이 좋은편은 아니다
A9이 클럭이 낮고 열이 많이 나서 그렇지(!) 기본 성능 자체는 2.5DMIPS로 의외로 좋게 설계되어 있다.
(물론 설계대로 성능이 나온다는 말은 아님)
근데 A9도 out-of-order를 지원하는데 A53은 in-order 라니!! 이게 무슨 소리요!!
다른 의미로는 A53 보다는 A57 이후 버전은 되어야 그나마(?) 쓸만 하다는 의미?

| emmc 파티션 정렬 (0) | 2024.02.07 |
|---|---|
| arm asm rev (0) | 2023.09.14 |
| aarch64 vector register (0) | 2023.08.23 |
| arm vsub operator (0) | 2023.08.09 |
| ARM NEON SLP (0) | 2023.08.07 |