[Window] Xming 설치 방법

이미지
Window Xming 설치 방법 Xming이란 MS 윈도우 OS에게 서버에서 동작하는 GUI를 표출해주는 X11 디스플레이 서버입니다. X11이란 유닉스 계열 OS에서 입력장치(마우스, 키보드 등)의 상호작용 등을 관리해 GUI 환경의 구현을 위한 기본적인 프레임워크를 제공하는 것을 뜻합니다. 즉, Xming은 유닉스 계열에서 동작하는 X11을 클라이언트 PC로 가져와 표출할 수 있도록 해줍니다. Xming 설치 방법 여기 에서 설치 프로그램을 다운받습니다. Xming 설치 진행 다운받은 설치 프로그램을 더블 클릭하여 실행합니다. Next 클릭 Next 클릭 Next 클릭 Next 클릭 Next 클릭 Install 클릭 Finish 클릭 Xming 설치 확인 맨 우측 하단 화살표 클릭 후 xming 로고가 보이면 제대로 설치 후 실행까지 완료된 상태입니다. 만약, xming 로고가 보이지 않는다면 "윈도우 버튼 클릭 - xming 검색 - Xming 앱 실행"을 하면 됩니다. 참고 문헌 [1]   https://ko.wikipedia.org/wiki/Xming [2]   https://ko.wikipedia.org/wiki/X_%EC%9C%88%EB%8F%84_%EC%8B%9C%EC%8A%A4%ED%85%9C

[Jetson] 192.168.55.1 접근 실패(ping, ssh)

이미지
Jetson Nano 192.168.55.1 접근 실패 micro usb 케이블을 통해 노트북과 젯슨 나노를 연결하면 젯슨은 무조건 192.168.55.1 주소를 고정으로 가지며, 케이블 선을 연결한 뒤 ssh 혹은 ping 192.168.55.1을 던지면 젯슨에 접근이 안되는 경우가 발생합니다. 해결 방법 아래와 같이 선을 연결했는지 한번 더 확인합니다. 선 연결이 문제 없으면 젯슨은 192.168.55.1로 자동 설정되고, host pc는 192.168.55.100으로 설정해야 합니다. 즉, 노트북에서 수동 IP 설정을 해야 합니다. IP: 192.168.55.100 서브넷: 255.255.255.0 게이트웨이: 192.168.55.1 DNS: 8.8.8.8 수동 IP 설정하는 방법 맨 우측 하단을 마우스 우클릭하여 "네트워크 및 인터넷 설정" 클릭 네트워크 및 인터넷 창에서 "이더넷" 클릭 네트워크 및 인터넷 > 이더넷 창에서 "IP 할당의 편집" 클릭 IP 설정 편집에서 "수동" 클릭 IP 설정 편집에서 IPv4 "스위치" 클릭 IP주소부터 DNS까지 정보를 입력 후 저장 클릭 위와 같이 설정 후 ping 명령어를 통해 확인하면 제대로 연결되었음을 확인할 수 있습니다. ping이 안된다면? 만약, 위대로 진행했음에도 ping이 안된다면 네트워크 설정 칸을 바꿔서 수동 IP를 설정하세요. 참고 문헌 [1]   https://forums.developer.nvidia.com/t/ip-address-192-168-55-1/184273/5

[Jetson] TKinter, Virtualenv에서 사용하기 ModuleNotFoundError: No module named '_tkinter' 해결 방법

이미지
ModuleNotFoundError: No module named '_tkinter' 해결 방법 tkinter는 간단하게 apt install로 설치 가능합니다. sudo apt-get install python3-tk Copy 다만, venv에서 사용하려고 하면 시스템에 설치된 tkinter 파일을 venv에서 찾지 못해서 에러가 발생합니다. 해결 방법 우선 시스템에 설치된 _tkinter~~.so 파일을 찾습니다. 저는 python3.6 버전이기 때문에 cpython-36m입니다. (python3.8이면 38m 등으로 버전에 맞게 수정) find /usr/lib -name _tkinter.cpython-36m-aarch64-linux-gnu.so Copy 나온 경로를 참고하여 심볼링 링크를 생성합니다. cd 경로 설정 부분에서는 본인의 venv 경로를 {myvenvpath}에, venv name은 {myvenvname}에, python3.x는 본인의 python 버전에 맞춰 입력 ln -s 링크 설정 부분에서는 위 find에서 찾은 전체 경로를 /usr/lib/python3.x/lib-dynload/_tkinter.cpython-3xm-x86_64-linux-gnu.so 부분에 입력 저 같은 경우에는 python3.6으로, 기본 시스템으로 설치된 36m 버전의 _tkinter~.so 파일을 python3.8 lp(lp가 venv 이름)에 연결했습니다. cd ~/{myvenvpath}/{myvenvname}/lib/{python3.x}/site-packages ln -s /usr/lib/{python3.x}/lib-dynload/_tkinter.cpython-{3xm}-x86_64-linux-gnu.so _tkinter.so Copy 심볼링 링크 연결 심볼링 링크 연결 확인 심...

[Jetson] CSI camera Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:751 Failed to create CaptureSession

Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:751 Failed to create CaptureSession Jetson Nano CSI camera를 실행하려하면 위와 같은 에러가 발생한다. CaptureSession 생성을 실패했다는 에러인데, 다른 세션이 동일한 카메라를 잡고 있어서 새로운 세션을 생성할 수 없는 이유이다. 해결 방법 기존에 생성된 모든 세션을 종료하고 nvargus-daemon을 리셋해서 argus framework를 재설정한다. sudo service nvargus-daemon restart Copy 만약 위 방법으로 매번 service restart가 번거롭다면, 기존 세션을 여는 코드에서 try except으로 잡아주면 되는데, 프로세스가 예기치 않게 죽더라도 열어뒀던 세션을 release하도록 처리하면 된다. 참고 문헌 [1]   https://forums.developer.nvidia.com/t/error-generated-gstnvarguscamerasrc-cpp-execute-543-failed-to-create-capturesession/112431/2

[TensorRT] ERROR: 3: [executionContext.cpp::setBindingDimensions::944] Error Code 3: API Usage Error (Parameter check failed at: runtime/api/executionContext.cpp::setBindingDimensions::944, condition: profileMaxDims.d[i] >= dimensions.d[i]

이미지
ERROR: 3: [executionContext.cpp::setBindingDimensions::944] Error Code 3: API Usage Error (Parameter check failed at: runtime/api/executionContext.cpp::setBindingDimensions::944, condition: profileMaxDims.d[i] >= dimensions.d[i] NVIDIA-AI-IOT 오픈소스에서 torch2trt로 변환 후, 모델 inference할 때 변환 과정에서 설정된 차원값과 input 차원 값이 맞지 않아 발생하는 에러입니다. 저 같은 경우 max dimension이 5로 설정되었는데, input demension이 6이라 에러가 발생했습니다. 차원 맞추기 torch2trt parameters를 보면 차원을 설정할 수 있는 값으로 유추되는건 min_shapes, max_shapes, opt_shapes, max_batch_size가 있습니다. 이 값들을 어떻게 사용하는지 아래 코드를 보면 inputs와 outputs를 Flattener value로 만든 후, 입력 값(dataset)의 min / max shape을 구합니다. max_batch_size가 입력된 경우(None이 아닌 경우) min_shapes_flat과 max_shapes_flat을 각각 구하여 infer_dynamic_axes에 넣어줍니다. 반대로 max_batch_size가 None인 경우에는 위에서 계산해둔(min_shapes와 max_shapes에서 구한) min_shapes_flat, max_shapes_flat를 이용합니다. 코드 구조를 보아 dynamic_axes_flat에서 입력 배치가 설정됨을 유추할 수 있습니다. 저같은 경우에는 입력 이미지 크기가 변경되는게 아닌 단순한 배치 크기의 문제이므로 배치 사...

[TensorRT] ModuleNotFoundError: No module named 'onnx_graphsurgeon' 해결 방법

ModuleNotFoundError: No module named 'onnx_graphsurgeon' TensorRT ONNX 변환 과정에서 발생하는 에러입니다. 해결 방법 python3 -m pip install onnx_graphsurgeon --index-url https://pypi.ngc.nvidia.com Copy 참고 문헌 [1]   https://github.com/NVIDIA/jetson-gpio/issues/20 [2]   https://github.com/NVIDIA/TensorRT/tree/release/8.5/tools/onnx-graphsurgeon

[Jetson] Jetson Nano GPIO 권한 부여 (sudo 없이 사용)

Jetson Nano GPIO sudo 없이 사용 방법 sudo pip install Jetson.GPIO를 설치하면 GPIO를 사용할 수 있습니다. 다만, sudo 명령어 없이는 실행이 안되는데 sudo 명령어 없이 사용하는 방법을 알아보겠습니다. GPIO 권한 부여 USER에 GPIO 권한을 부여합니다. sudo usermod -aG gpio USER sudo chown root.gpio /dev/gpiochip0 sudo chmod 660 /dev/gpiochip0 sudo chown root.gpio /dev/gpiochip1 sudo chmod 660 /dev/gpiochip1 Copy 참고 문헌 [1]   https://github.com/NVIDIA/jetson-gpio/issues/20 [2]   https://forums.developer.nvidia.com/t/unable-to-get-permissions-for-jetson-gpio/297977/6