다중 클라이언트가 접속하는 서버를 구현하는 베이스 코드입니다. 기존 1:1 방식이 아닌, N 명의 클라이언트에 대하여 select를 활용하여 각 클라이언트의 요청을 처리합니다. 현재 진행 중인 웹 브라우저와 리눅스 기반 응용 프로그램 사이, 중계 서버를 만들기 위하여 테스트 한 코드입니다. 개요 먼저, 일반적으로 알고 있는 socket의 개념과 별개로 select에 대하여 간략히 설명하자면, select는 네트워크 프로그래밍에서 사용되는 함수 중 하나로, 여러 개의 소켓을 모니터링하고 입출력 가능한 상태를 감지하는 기능을 제공합니다. 이를 통해 동시에 여러 소켓을 관리하고 비동기 네트워크 통신을 구현할 수 있습니다. 일반적으로 select는 유닉스 기반의 운영체제(Linux, mac, FreeBSD 등)..
리눅스
Xavier 환경에서 직접 개발을 하여도 무관하지만, 편의성을 위하여 개발은 SSH 기반 윈도우 환경에서 Visual Studio Code를 활용하고, 실 테스트는 VNC 또는 실제 보드에서 동작을 진행하였습니다. 1. VS Code 설치하기 https://code.visualstudio.com/ Visual Studio Code - Code Editing. Redefined Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platfo..
해당 글에서는 YOLOv5 사용을 위한 PyTorch 및 기타 관련 패키지를 설치합니다. 모든 커맨드는 가상환경이 활성화된 상태에서 진행됩니다. (본문 : darknet) # 명령 conda activate [환경이름] # (예시) conda activate darknet 1. PyTorch 설치 일반적인 환경이라면 아나콘다를 통해 간단하게 PyTorch 및 관련 패키지 설치가 가능합니다. 그러나 aarch64 환경에서 이에 맞는 저장소를 찾을 수 없기 때문에 pip를 통해 설치합니다. 주의사항은 원하는 가상환경이 activate 된 상태에서 진행하여야 합니다. # 설치 (가상환경 베이스) pip install torch 2. YOLOv5 설치 먼저 Git을 통해 YOLOv5를 다운로드합니다. # (Op..
[개발환경] - Hardware : Nvidia Jetson Xavier NX (aarch64) - OS : Jetpack 4.6 rev. 3 (based on Ubuntu 18.04) YOLO 테스트를 위하여 Xavier NX 보드에서 Anaconda(아나콘다)를 사용하기 위한 방법을 정리한 글입니다. 아나콘다는 일반 AMD64 계열은 linux 버전도 지원하지만 라즈베리파이와 같은 aarch64 계열에 대한 지원이 보이지 않아 별도로 다운받아 설치하였습니다. 1. 아나콘다 설치 Jetson Anaconda로 검색해보면 Anaconda를 aarch64 버전으로 빌드한 것들이 많았는데, Mini-forge가 최근 업데이트가 활발한 것으로 보였고, 이를 선택했습니다. https://github.com/co..
Nvidia Xavier NX 보드에서 C++ 소스의 컴파일 및 실행을 위한 일련의 과정이다. - 설치 환경 [윈도우] Visual Studio Code [리눅스] Nvidia Xavier NX Board (Ubuntu 18.04 version) - 사용 언어 C, C++ with nvcc compiler 1. 리눅스에 접속 1. 먼저 윈도우 환경에서 개발을 위하여 VS Code를 설치하고, SSH Remote Control을 통해 원격으로 리눅스에 접속한다. 2. VS Code의 좌측 아이콘 중 "원격 탐색기"를 선택 후 SSH로 리눅스에 접속한다. 만약 원격 탐색기 아이콘이 보이지 않을 경우, VS Code를 재시작 한다. 추가로 SSH 접속 시 기본적으로 config 파일이 자동 생성 되는데, 해당..
Visual Studio 2017 버전부터 Linux 디버깅을 지원했다고 한다. 이를 기반으로, 2019에서 Hello World를 코딩하고, NVIDIA Jetson Xavier NX 보드에서 실행해본다. 1. 먼저 프로젝트를 생성한다. 아래와 같이 C++, Linux 선택 후 콘솔 애플리케이션으로 생성 시 빌드 간 필요한 프로젝트 설정이 기본적으로 지원된다. 2. Ubuntu 환경에서 Jetson 보드 IP를 확인한다. 3. Visual Studio 2019에서 원하는 코드를 작성한다 (예시) #include int main() { printf("%s에 오신 것을 환영합니다!\n", "SampleLinux"); return 0; } 4. 코드를 실행하면 아래와 같은 창이 뜨고, 원격 정보를 입력한다...