사실 Linux에서 사용하려고 구매했던 것은 아니지만 무선랜카드가 A1000UA 밖에 없는 상황이라 Ubuntu에서 네트워크 사용 할일이 있어 시도해 보았다. 사실 이번에 처음 시도하는 것은 아니고 이전에 사용하기 위해 iptime 홈페이지에서 Linux 용 driver를 제공하는지 알아본 적은 있었다. 다행인지 iptime에서는 A1000UA의 드라이버를 제공하고 있었는데, 좀 더 정확히 말하자면 A1000UA에서 사용하는 Mediatek MT7610U의 가져다가 올려놓은 것까지만 확인했었었다.
올려져 있는 파일을 다운받아 README를 보면 아래와 같이 적혀있다.
===================
Supporting Kernel:
===================
linux kernel 2.4 and 2.6 series.
Tested in Redhat 7.3 or later.
지금 사용하려고하는 OS가 Ubuntu 14.04이고 사용하는 Kernel이 4.4 인데 2.4와 2.6을 지원한다니, 이건 뭐 안봐도 안될 것 같았다.
그런데 좀 찾아보니 iptime의 A1000UA로 한건 아니고 동일한 Mediatek mt7610u을 사용한 Cisco Linksys AE6000 로 Ubuntu 14.04에서 동작을 성공하였다는 글을 찾게되었다.
게다가 이 사람이 사용한 소스 코드가 iptime 홈페이지에 올라와 있는 코드와 완전 똑같지는 않지만 거의 동일하다. (거의 동일하지만 주석, 일부 macro, type casting 등이 추가되거나 수정되었다.)
기본적으로 A1000UA를 USB에 연결해 보면 로그상 USB 연결까지만 확인되고 실제로 동작하지 않는다. 이유는 A1000UA용 Driver가 기본적으로 들어있지 않기 때문이다.
[USB가 탐지되긴하지만 WI-Fi Driver가 동작하지는 않는다]
Wi-Fi Driver가 커널에 기본적으로 포함되어 있지 않기 때문에 아래와 같은 방식으로 A1000UA 드라이버를 설치해보자.
1. 우선 Wi-Fi USB Dongle을 제거한다.
2. build에 필요한 package를 설치한다.
# apt-get install build-essential git
3. 설치한 git으로 code를 sync한다.
# git clone https://sanrath@bitbucket.org/sanrath/mediatek_mt7610u_sta_driver_linux-64bit.git
4. 빌드하고 설치한다.
# cd mediatek_mt7610u_sta_driver_linux-64bit
# make clean
# make
# make install
[make clean]
[make]
[make install]
5. Wi-Fi USB Dongle을 연결하고 Wi-Fi 를 사용해 본다.
아래와 같이 이전과는 다르게 Wi-Fi Driver가 동작하는 것을 확인할 수 있다.
화면에서도 Wi-Fi AP 검색이 잘되는 것을 알 수 있다.
AP에 연결하면 아래와 같이 인터넷도 잘된다.
혹시 잘되지 않는다면...
# lsusb
위 결과값에서 확인된 Wi-Fi USB Dongle의 ID가 소스 코드에 정상적으로 들어 있는지 확인해보자.
[lsusb 한 결과]
[common/rtusb_dev_id.c]
자신의 결과와 일치하는 table이 없다면 한줄 더 추가해주면 된다.
2.4Ghz만 보이고, 5Ghz은 안보이지 않는다면...
https://gist.github.com/benperove/0705726b7c38082c50aa118f4675addc
위 Link의 patch들이 소스 코드에 적용되어 있는지 확인해 본다. 해당 patch가 적용되어 있지 않다면 아래와 같이 설정 파일을 읽지 못한다는 에러가 로그에 찍히고, 설정파일을 제대로 읽지 못하기 때문에 기본으로 2.4Ghz만 검색되게 된다.
[Patch 적용 전 검색 가능한 채널]
[Patch 적용 후 검색 가능한 채널]
사실 이런 설치 과정도 필요없이 그냥 꼽으면 되어야 한다. Ubuntu 를 포함해서 Linux 자체가 업체들이 지원하는 가장 기본적인 OS가 아니기 때문에 이런 번거로움이 생기는게 아닐까 한다. 과거 보다는 정말 많이 좋아졌지만 일반인이 사용할 OS로써는 다소 개선의 여지가 있어 보인다.
'OS > Linux' 카테고리의 다른 글
자기 자신 IP Address C 코드로 확인하기.(SIOCGIFADDR) (0) | 2016.07.27 |
---|---|
Linux 접속 차단하기. (TCP Wrapper) (0) | 2016.07.22 |
Linux/Ubuntu, 용량 큰 파일/디렉토리 찾아내기. (0) | 2016.07.13 |
Linux/Ubuntu, CD/DVD 를 ISO로 만들기 (0) | 2016.07.13 |
terminator, Linux 다중 분할 터미널 (0) | 2016.07.12 |
Ubuntu package 검색하기/상세정보보기/설치하기 (apt-cache, apt-get) (0) | 2016.07.12 |
Ubuntu 최신으로 유지하기 (apt-get, aptitude, Ubuntu Software) (0) | 2016.07.12 |
Ubuntu 16.04, 기본 설정에서의 Kernel Compile. (0) | 2016.07.07 |