NVIDIA Jetson AGX Xavier와 PC간 무선 네트워크 연결

강민우·2022년 8월 9일
0
post-thumbnail

0. 개요

현재 저는 교내의 지능형임베디드소프트웨어 연구실에서 학부연구생으로 연구를 하고 있습니다.

지금 진행중인 프로젝트의 실험환경은 Gocator2375라는 2D Line Lazer 센서를 이용하여 데이터를 취득 후, Xavier에서 분석, 계산하여 PC의 클라이언트 프로그램으로 보내는데, 이는 모두 유선으로 이어져 있습니다.

이러한 실험환경은 여러개의 랜선과 허브역할을 하는 공유기, 배터리팩이 필요하기 때문에 외부에서 실험할 때 이를 세팅하기에 번거롭습니다. 현재 개발중인 클라이언트 프로그램과 알고리즘이 어느정도 안정되었다고 판단하여 공유기의 사용 없이, USB형 무선랜카드 또는 칩셋 등을 활용하여 Xavier - PC Client 를 무선으로 구성하기로 하였습니다.

그러나 간단할 줄 알았던 무선환경 세팅 도중 여러가지 문제를 만나게 되어 제가 시도한 여러가지 과정과, 이 과정들로 인한 느낀점들을 포스팅하려고 합니다.

1. 에듀플레이어 ELR22를 이용한 무선 연결

1-1. 구성환경

Xavier OS : Jetpack 4.3 based Ubuntu 18.04 LTS

구성환경
Xavier : Gocator(유선), 에듀플레이어 ELR22
PC : iptime N150UA


각각 EDU Player ELR22, iptime N150UA 이다.

iptime N150UA는 PC에 사용할 수 있는 USB 타입의 무선 랜카드이다.
2010년에 출시되었고 802.11n의 와이파이 규격까지 지원하여 최대 다운로드 150Mbps, 업로드 50Mbps의 전송속도를 가질 수 있다.

EDU Player ELR22는 조금 특이한 와이파이 라우터인데, 이 라우터에 휴대폰 유심을 꽂고 USB포트에 꽂으면 즉시 와이파이가 생성되는 휴대용 라우터이다. 이 또한 802.11n까지 지원한다.

라우터에 휴대폰 유심을 꽂지 않아도 와이파이는 사용 가능하다. 유심이 없으므로 인터넷 연결은 불가능하지만 Xavier와 Client는 인터넷 사용 없이 같은 네트워크로만 연결되면 상관없는 환경이기 때문에 ELR22만 Xavier에 꽂으면 별다른 세팅이 필요없는 이것을 사용하게 되었다.

1-2. 문제점 : 낮은 전송속도

연결은 성공적이었다. Xavier는 ELR22를 잘 인식했으며 N150UA를 사용하는 PC는 ELR22의 와이파이를 사용할 수 있었다. 그러나 Gocator2375를 사용한 데이터 수집 실험에서 문제가 발생했다.

ELR22를 사용한 Xavier - PC 간 전송 속도
평균 속도 : 11.6 Mbps
최고 속도 : 20.9 Mbps
최저 속도 : 1.9 Mbps

기존에 LAN 케이블로 연결하여 진행한 실험의 데이터 수집 속도보다 무선환경의 데이터 수집 속도가 지나치게 느렸다. 유선 환경에서는 데이터 전송 속도가 빨라 전송 딜레이를 크게 체감하지 못했던 반면 무선 환경에서는 눈으로 체감할 수 있을 정도의 딜레이가 생겼다.

데이터를 받아와 우리의 알고리즘으로 데이터를 분석하고 결과를 도출하거나, Object Detection을 Realtime으로 수행하기 위해서는 전송속도에 의한 딜레이는 정말 치명적이다.

Xavier - PC 간 전송속도를 측정하고 결과를 살펴보니, Xavier에서 전송하는 데이터의 양이 무선 환경에서의 전송속도를 크게 뛰어넘는다는 것을 파악했고, 다른 환경을 이용하기로 하였다.

1-3. 해결방법 모색 : 더 좋은 규격의 Wi-Fi 규격 사용

Wi-Fi의 802.11n 규격을 가진 ELR22의 데이터 전송속도는 우리가 필요로 하는 전송속도에 미치지 못한다는 것을 파악했다. 최대 다운로드 속도 150Mbps, 업로도 속도 50Mbps는 말 그대로 최대일 뿐, 실제 환경에서의 전송 속도는 이보다 크게 낮은 것도 확인할 수 있었다.

따라서 Xavier와 PC 모두 최신 Wi-Fi 규격인 802.11ax (Wi-Fi 6) 무선 랜카드를 사용하기로 하였다.

1-4. 느낀점

Xavier와 PC를 같은 무선 네트워크로만 연결하는 일이었기 때문에 금방 해결할 수 있을 것으로 생각했다. 실제로도 연결 자체는 금방 성공했지만 낮은 전송 속도가 발목을 잡았다.

우리가 보내는 데이터의 양, 기기 간의 전송 속도를 직접 측정하고 Wi-Fi의 상위 규격을 조사하면서 실제 환경에서의 무선 네트워크를 잘 이해할 수 있었고 무선 환경을 세팅할 때 이러한 점까지 고려하여 프로젝트를 설계해야 한다는 것을 느낄 수 있었다.

2. iptime AX2000UA 사용

2-1. 구성환경

Xavier OS : Jetpack 4.3 based Ubuntu 18.04 LTS

구성환경
Xavier : Gocator(유선), iptime AX2000UA
PC : iptime AX2000UA

더 좋은 와이파이 규격을 사용하여 네트워크 통신 속도를 높여야겠다고 생각하여 802.11ax (Wi-Fi 6) 규격의 무선랜카드를 사용하기로 결정했다.

iptime의 AX2000UA는 802.11ax를 지원하며 AP모드도 가능하다고 하여 PC에서 AP모드를 작동시킬 랜카드 하나, Xavier에서 와이파이 신호를 받을 랜카드 하나로, 총 2개의 랜카드를 사용하였다.

2-2. Ubuntu에서의 AX2000UA 인식 불가

Windows 10 환경에서는 AX2000UA가 정상적으로 인식되었으며 윈도우의 모바일 핫스팟 기능을 이용한 AP모드 역시 가능했다.

문제는 Ubuntu에서의 인식이었다. AX2000UA의 리눅스 드라이버는 iptime의 공식 홈페이지에서도 제공하지 않으며 랜카드 칩셋인 RTL8832AU의 드라이버 역시 찾을 수 없었다.

지금 생각해보면 내가 굉장히 안일했다.
현재 내가 리눅스에 사용하는 iptime의 무선랜카드인 N100mini나, N150ua 모두 별다른 설정이나 드라이버 설치 없이 정상적으로 Ubuntu에서 인식했기에 관련 드라이버 없이도 인식 가능할줄 알았다. 설령 드라이버가 필요하더라도 github나 Relateck 공식 홈페이지 등에 리눅스 드라이버가 있을 것으로 생각했다.

궁여지책으로 윈도우 드라이버를 리눅스 드라이버로 변환해주는 NDISwrapper 라는 프로그램도 사용해보았지만 이조차 Ubuntu에서 동작하지 않았다.

(혹시 해당 랜카드 인식을 우분투에서 성공하신 분들은 댓글 달아주시면 너무 감사드리겠습니다.)

2-3. 해결방법 모색 : M.2슬롯 기반의 무선랜카드 사용

위와 같은 이유로 리눅스에서의 AX2000UA의 사용이 불가능하다고 판단하여 다른 방법을 모색했다.

인터넷의 여러 블로그의 포스팅에서, 우분투 환경에서 작동한다고 인증된 iptime의 다른 무선랜카드를 사용할까 고민하다가 문득 Xavier AGX에는 m.2슬롯이 있다는 것을 떠올렸다.

타사의 USB형 무선랜카드보다는 인텔의 m.2슬롯 기반의 무선랜카드가 안정성면에서 유리하다고 생각했고, Xavier AGX와 호환되는 무선랜카드를 찾아냈다.

2-4. 느낀점

Ubuntu에서 외부 디바이스를 인식하려면 관련 드라이버가 반드시 필요하고, 경우에 따라서는 Ubuntu용 드라이버가 전혀 존재하지 않을수도 있다는 것을 알게되었다.

'당연히 리눅스에서 인식되고, 인식 안되도 드라이버가 존재하겠지!' 라는 안일한 생각으로 문제에 접근했고, 결과는 기껏 마련한 장비 하나가 쓸모없어지게 되었다. 지금까지는 Ubuntu에 호환이 되고, 드라이버가 존재하는 장비들만을 사용했기에 이러한 문제를 생각하지 못했다.

지금이라도 이러한 문제를 경험한 것을 다행으로 생각한다. 이 문제를 경험하지 못했다면, 나중에 연구활동을 진행하거나 회사에서 프로젝트를 수행할 때 기껏 마련한 비싼 장비를 프로젝트 환경에서 인식하지 못해 버려질 수도 있었을 것이다.

3. intel 8265NGW 무선랜카드 사용

3-1. 구성환경

Xavier OS : Jetpack 4.3 based Ubuntu 18.04 LTS

구성환경
Xavier : Gocator(유선), intel 8265NGW(Wi-Fi 802.11ac), SZH-IWA013 (안테나, 6dbi)
PC : iptime AX2000UA

intel 8265NGW는 Wi-Fi 802.11ac 를 지원하는 M.2슬롯 기반의 무선 랜카드칩셋이다.

이번에는 인식이 안되는 문제를 막기 위해 꼼꼼히 조사했다.
802.11ax를 지원하는 인텔의 무선랜카드 칩셋 AX200도 존재하지만, 이는 Jetpack 4.3의 Ubuntu 커널을 지원하지 않기 때문에 배제했다.
(관련링크 : https://www.intel.co.kr/content/www/kr/ko/support/articles/000005511/wireless.html)

무선랜카드 규격에 맞는 안테나도 구매했다. 6dBi이며 IPEX4 규격으로 802.11ac를 지원한다.

급한대로 벨크로로 안테나를 거치했다. 추후에 폼팩터에 Xavier를 거치하면 안정적으로 안테나도 거치될 것이다.

3-2. 설치 및 속도 테스트

intel 8265NGW를 m.2슬롯에 설치하고 연결한 후, Xavier를 몇번 재부팅하니 정상적으로 Wi-Fi가 인식되었다.

Xavier가 5GHz 대역의 와이파이를 인식할 수 있게 됨에 따라 PC와 Xavier간의 무선 네트워크의 속도를 측정할 수 있는 여건이 마련되었다.

네트워크 속도 측정 실험 환경

  • 동일 네트워크에서의 두 기기 간의 속도를 프로그램을 통해 측정한다.
  • 두 기기 간의 거리는 3m으로, 장애물이 없는 트인 환경에서 진행한다.
  • 60초 동안의 네트워크 속도의 평균을 구하며 총 10번 측정을 진행한다.

속도 측정 프로그램 : iperf3
Device 1 : PC (Ubuntu 18.04 LTS)
Device 2 : Xavier (Jetpack 4.3 based Ubuntu 18.04 LTS)

한 회차당 1분씩, 총 10번의 실험을 진행한 결과이다.
모든 회차가 140Mbps 근처의 속도로 측정되어 균일한 값이 나왔음을 알 수 있다.

Wi-Fi 802.11ac 규격으로 실험을 진행하였지만, 이 규격의 이론상 최대 속도인 866.7Mbps에는 크게 미치지 못하는 모습을 보여주었다. 디바이스의 성능상의 문제인지, Windows10의 모바일 핫스팟 기능의 문제인지, 아니면 원래 저 정도의 실효속도를 보여주는지 조금 더 확인이 필요하다.

어찌됐던 100Mbps의 네트워크 속도를 보여주었기 때문에, Xavier가 PC 클라이언트로 데이터를 안정적으로 보낼 수 있게 되어 추후 Gocator의 데이터 수집 실험에 이 방식을 적용하려고 한다.

3-3. 느낀점 및 마무리

간단할 것으로 예상되었던 기기간 무선네트워크 구축은 생각보다 쉽지 않은 과정을 보여주었고, 여기서 배운 점도 컸다. 가지고 있던 802.11n 무선랜카드는 생각보다 느린 속도를 제공했고, 우리가 Xavier에서 PC 클라이언트로 보내는 데이터의 양은 생각보다 많았다.

그래서 802.11ax Wi-Fi 규격을 지원하는 무선랜카드를 마련했으나, 이는 Ubuntu에서 인식할 수 없엇고, 끝내 Xavier에서 안정적으로 지원되는 무선랜카드 칩셋을 마련하게 되었다.

결국 "~~장비를 사용하여 문제를 해결했습니다." 정도의 한줄짜리 결과가 보여지게 되는데, 이 포스팅의 의의는 결과보다는 과정의 기록에 있다.

앞에서의 문제점을 직접 경험해보고, 원인을 분석하고 문제를 해결해나가는 과정 덕분에 많은 것을 배울 수 있었다. 특히 코딩-개발분야가 아닌 네트워크나 장비 분야에서의 이러한 경험은 생소했기에 또한 많은 것을 느낄 수 있었다.

정말 하루면 끝날 줄 알았던 무선네트워크 구축이 생각보다 시간이 너무 길어졌다. 이제 공유기와 몇 개의 랜선, 공유기의 전원을 연결할 배터리팩 없이도 실험이 가능해져 한결 간단한 실험을 할 수 있게 되었다.

profile
어제보다 성장한 오늘

1개의 댓글

comment-user-thumbnail
2024년 1월 5일
  • Ubuntu에서의 AX2000UA 인식 불가

이 제품은 설명서에 나와 있듯이 USB로 연결하면 Windows Device Driver 파일이 들어 있는 FAT 볼륨으로 인식됩니다. (rtl 칩셋의 기능, 기본 Mode가 Disk) 따라서 아래 명령을 실행하면 USB 모드가 변경되어 NIC로 인식 됩니다.

usb_modeswitch -KW -v 0bda -p 1a2b

명령어 실행 전후로 lsusb 로 확인해보면 Vendor ID는 그대로 인데 Product ID가 b832로 변경 된 것을 확인 할 수 있습니다.

이제 아래 링크로 가서 rtl8852bu 드라이버를 설치하세요.
https://github.com/morrownr/rtl8852bu

WiFi 설정은 아래 링크를 참고하시고요.
https://lhjin.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C-%EB%AC%B4%EC%84%A0%EB%9E%9CWiFi-%EC%82%AC%EC%9A%A9%EB%B0%A9%EB%B2%95

답글 달기