↑ 여기 회색 막대를 움직여서 전체 목록을 확인할 수 있어요.
Posted by on the 7th of October, 2023 at 11:02 am under 컴퓨터.  Post is not tagged.  This post has no comments.

Recently, I found that Nginx Proxy Manager docker is not working properly after reboot my Synology NAS. But it works properly just restart the container again.

I found this log when it had the problem.

❯ Configuring npm user …
0
s6-rc: fatal: timed out
s6-sudoc: fatal: unable to get exit status from server: Operation timed out
/run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
usermod: no changes

It said “timed out”. It seems that it doesn’t get enough processing time because I have 16 containers that start at boot. I added this environment varaible, and now it works properly after reboot.

S6_CMD_WAIT_FOR_SERVICES_MAXTIME 60000

(from https://github.com/just-containers/s6-overlay)

 

혹시 Docker로 Nginx Proxy Manager 쓰는데 재부팅하면 동작을 안하고 container를 재시작 해야 한다면, 위 환경변수를 추가했을 때 해결될수도 있다.

Posted by on the 24th of September, 2023 at 12:35 pm under 컴퓨터.  Post is not tagged.  This post has no comments.

이번에 업그레이드 하면서 윈도우10을 새로 깔았다. 그리고 가능한 개발 환경은 WSL 을 이용해 리눅스를 이용하고 있다. WSL에 Android Studio를 사용하는데 있던 문제 해결 방법을 적어둔다. 결론은 USBIPD 쓰면 됨.

윈도우 ADB 실행 안됨

일단 윈도우에서 ADB를 실행하는데 자꾸 5037 포트를 열지 못하고 실행이 되지 않았다. 구글링 해보니 Hyper-V 를 사용하는 경우 Hyper-V 에서 임의의 포트를 미리 잡고 있어서 문제가 생긴다고 한다.

다음 명령으로 포트를 바꾸고 재부팅하면 해결 된다.

netsh int ipv4 set dynamic tcp start=49152 num=16384
netsh int ipv6 set dynamic tcp start=49152 num=16384

(출처: https://stackoverflow.com/questions/52173657/android-studio-error-cannot-connect-to-daemon/76617445#76617445)

WSL Android Studio와 연동하기 (윈도우 adb + socat)

안드로이드 폰을 PC와 연결하면 윈도우PC와 동작한다. 이걸 WSL로 연동을 해야 하는데 USBIPD 가 잘 동작하지 않아 일단 다른 방법을 시도했다.  윈도우에서 adb를 실행시키고 리눅스에서 socat으로 사용하는 방법이다.

먼저 윈도우에서 adb를 실행한다.

adb kill-server
adb -a nodaemon server start

다음에 linux에서 socat을 실행한다.

adb kill-server
export WSL_HOST_IP="$(tail -1 /etc/resolv.conf | cut -d' ' -f2)"
socat TCP-LISTEN:5037,reuseaddr,fork TCP:$WSL_HOST_IP:5037

(출처: https://stackoverflow.com/questions/60166965/adb-device-list-empty-using-wsl2/77049846#77049846)

WSL Android Studio와 연동하기 (USBIPD)

그런데, 이 글을 적다가 진짜 USBIPD로 동작을 안하나 찾아봤다. 그런데 알고보니.. udev rules 파일을 제대로 안만들어서 그런거였다. udev rules가 잘 되어 있다면 윈도우에서는 다음과 같이 실행하면 된다.

usbipd wsl list            # bus id 확인
usbipd wsl attach --busid 0-0 --auto-attach

USBIPD 사용법: https://github.com/dorssel/usbipd-win/wiki/WSL-support

Posted by on the 22nd of September, 2023 at 9:46 pm under 컴퓨터.  Post is not tagged.  This post has 10 comments.

내가 쓰는 키보드는 예전에 LG IBM 컴퓨터와 나왔던 PS/2 방식 내추럴 키보드다. 찾아보니 예전 글도 하나 있다. 그런데 이번에 산 메인보드는 PS/2 포트가 없다. 어떻게 할까 고민하다 USB 방식으로 개조를 했다.

개조한 결과물. USB 케이블 색깔이 검은색이라 좀 아쉽다.

컴퓨터 업그레이드 이후 키보드 개조까지 이런 일들이 있었다. 너무 길어서 가려둔다.

(read more)

Posted by on the 10th of September, 2023 at 9:23 pm under 사는이야기.  Post is not tagged.  This post has no comments.

이제 언제 했는지도 모를  마지막 업그레이드 이후 컴퓨터 성능에 대한 욕심은 많이 줄었다. 그 당시에 가장 빠른 CPU와 램 32GB에 SSD 까지 달면서 일반적인 성능은 부족함이 없었다. 인텔 4세대 CPU인데 아마 5세대가 나왔을 때 샀으니 적어도 8년전 쯤 했던 거 같다.

그러다 이번에 업그레이드를 했다.

며칠동안 i7-13700 으로 할까  i5-13600k 로 할까 고민을 했다. 구글링 해보면 13700 부터는 공랭이 어렵고, 공랭을 한다고 해도 성능을 다 못쓴다고 하고 비용도 제법 든다. 13600k 는 공랭으로 많이들 쓰는 거 같고 가격도 어쨌거나 더 저렴한데, 컴퓨터에 관심이 많고 욕심이 있는데 i7이 아니라 i5라서 만족감이 떨어지는 느낌이었다. 그래도 13600k 도 충분히 좋은 CPU고, 사실 내가 좋은 CPU 달아 봐야 하는게 크게 달라지는게 없어서 13600k 를 선택했다.

메인보드는 B760 칩셋 사용한 제품중에 MSI B760 토마호크를 선택했다. 다들 박격포를 많이 쓰는데, 내 케이스는 일단 크기도 크고, 일단 안쓰더라도 이것저것 더 많은게 마음에 들었다. 문제는 내가 쓰는 키보드가 하도 예전꺼라 PS/2 방식인데 이 보드는 PS/2 를 더 이상 지원하지 않는다. 그래서 컨버터를 만들려고 작은 보드를 하나 주문했다. 이건 보드가 오면 다른 글을 쓸 예정이다.

메모리는 전에 이미 32GB를 써서 이번엔 64GB로 했다. 예전에는 8GB 짜리 4개로 했는데 이번에는 32GB 짜리 2개를 달았다. 이렇게 메모리를 많이 단 이유는 윈도우와 리눅스를 같이 쓰기 위해서이다. 그냥 평소에 사용하기에는, 그리고 게임하기에는 윈도우가 더 좋다. 그런데, 얼마 하지는 않지만, 개발을 하기에는 확실히 리눅스가 더 편하다. 윈도우PC에서 VMWare나 가상화를 해서 써봐도 뭔가 만족스럽지 않았다.

8년 전에는 Linux를 메인으로 하고 qemu로 윈도우를 깔고 거기에 pcie passthrough를 이용해 게임도 하려고 했다. 다만, 가능성만 확인하고는 그냥 윈도우를 썼다. 그 사이에 생각지도 못했던 WSL, WSLG 가 들어오면서 윈도우에서 리눅스를 쓰는게 훨씬 편해졌다. 이번에 업그레이드 하자마자 WSL을 이용해 gentoo linux를 설치했다.

나머지 부품들은 이미 전부터 쓰던거 그대로 써서 더 살것은 없었다.

 

그런데, 윈도우 깔고 이것저것 해보는데 CPU 온도가 너무 높았다. 아이들이 60도 정도에 뭐만 조금 돌아도 금방 100도를 찍었다. 시네벤치를 해봤는데.. 기대했던 성능의 2/3 정도밖에 나오지 않았다. 이게 여름이라 그런건지, PC가 있는 방이 너무 작고 더워서 그런건지 이상하다 생각을 했는데..

(read more)

Posted by on the 29th of March, 2022 at 11:42 am under 컴퓨터.  Post is not tagged.  This post has no comments.

회사에서 쓰는 가상 컴퓨터에서 snap이 동작을 안해 찾아본 기록.

동작하지 않는 이유

snap으로 설치한 앱을 실행해보면 이런 메시지가 뜨면서 되지 않는다.

Sorry, home directories outside of /home are not currently supported.
See https://forum.snapcraft.io/t/11209 for details.

snap 소스를 찾아보니 setup_user_data 함수에서 에러를 출력하는데 SNAP_USER_DATA 환경변수가 문제였다.
https://github.com/snapcore/snapd/blob/master/cmd/snap-confine/user-support.c#L27

SNAP_USER_DATA 환경병수는 userEnv 함수에서 설정하는데 이때 golang에서 제공하는 user.Current를 통해 정보를 얻어온다.
https://github.com/snapcore/snapd/blob/master/snap/snapenv/snapenv.go#L104

그리고 golang은 /etc/passwd 파일에서 직접 사용자 정보를 읽어온다.
https://github.com/golang/go/blob/master/src/os/user/lookup_unix.go#L19

해결 방법

1. local 사용자 추가

home directory가 /home 에 있는 local 사용자를 추가한다. 그리고 local 사용자로 전환해서 실행

(outside /home user)@localhost $ xhost +localhost
(outside /home user)@localhost $ sudo su – local_user
local_user$localhost $ (run snap application)

xhost를 실행해야 X Window 앱이 화면에 나온다.

2. snap 소스 코드 수정 (안해봤음)

현재 사용자용 디렉토리를 /home 에 하나 만든다. 그리고 snap 소스코드를 고쳐서 SNAP_USER_DATA 환경변수 설정할 때 prefix를 /home 쪽으로 바꿔치기 한다.

3. golang 소스 코드 수정 (안해봤음)

현재 사용자 home directory를 /etc/passwd 파일에서 얻어오는데 특정 환경변수로 override 할 수 있게 한다.

4. snap에서 공식적으로 알려주는 workaround (안해봤음)

https://snapcraft.io/docs/home-outside-home

그런데 회사 가상 컴퓨터에서 했다가 문제 생길까봐 안해봤음

5. docker를 이용한 방법 (안해봤음)

https://askubuntu.com/questions/1207472/how-do-you-actually-run-a-snap-package-when-your-home-directory-isnt-under-h

회사 가상 컴퓨터에 docker를 안깔아서 안해봤음