suminworld

network

ALFA AWUS036ACM(MT7612U) 모니터모드 캡처 설정

숨usm 2025. 10. 1. 02:34

문제 요약

ALFA AWUS036ACM 무선 랜카드를 UTM 가상머신의 Ubuntu에서 모니터모드로 사용하려다 겪은 문제는 크게 두 가지였습니다.

  1. 호스트(macOS)가 USB 동글을 선점해서 게스트(UTM→Ubuntu)로 전달되지 않는 문제
  2. 펌웨어 파일 누락으로 드라이버가 Firmware Version 0.0.00만 로드하여 MAC error 발생 후 인터페이스가 죽는 문제

이 글에서는 이 문제들을 해결한 전체 과정을 단계별로 정리했습니다.


1. 테스트 환경

  • 호스트: macOS (M1/M2 계열)
  • 가상화 소프트웨어: UTM (QEMU 기반)
  • 게스트 OS: Ubuntu 24.04 Server
  • 무선 랜카드: ALFA AWUS036ACM (MediaTek MT7612U 칩셋, mt76x2u 드라이버 사용)
  • 목표: 무선 인터페이스를 모니터 모드로 전환하여 tcpdump/Wireshark로 패킷 캡처

2. 초기 증상

  • ip link 명령어에 무선 인터페이스가 표시되지 않음 (wlx로 시작하는 인터페이스 없음)
  • sudo lsusb에서도 MediaTek 장치를 찾을 수 없음 (VM에 장치가 연결되지 않음)
  • 간헐적으로 장치가 인식되더라도 dmesg에 Firmware Version: 0.0.00와 MAC error detected 메시지가 반복 출력되며 인터페이스가 비정상 종료됨

3. 해결 과정 요약

  1. macOS에서 동글을 선점하고 있던 네트워크 서비스 제거
  2. UTM VM 설정에서 USB 3.0 (xHCI) 활성화 및 호스트 USB 장치 공유 설정
  3. 필요시 UTM Edit 메뉴의 USB 탭에서 장치 직접 추가
  4. 게스트 Ubuntu에서 펌웨어 설치 또는 수동 다운로드 후 모듈 재적재
  5. 장치 인식 확인 후 모니터 모드 설정 및 tcpdump로 캡처 시작

4. 상세 설정 단계

A. macOS에서 USB 동글 선점 여부 확인

macOS 터미널에서 다음 명령어로 USB 장치를 확인합니다.

 
 
bash
system_profiler SPUSBDataType | grep -A 8 -i mediatek

출력에 Vendor ID: 0x0e8d 또는 장치 이름(예: AX88179B)이 표시되면 macOS가 장치를 인식한 상태입니다.

중요: macOS가 해당 장치를 네트워크 서비스로 등록했다면 UTM이 게스트로 전달할 수 없습니다.

해결 방법:

  • 시스템 설정 → 네트워크 → 해당 장치 선택 → 제거 또는 비활성화

B. UTM VM 설정

VM을 종료한 상태에서 다음 설정을 진행합니다.

  1. UTM에서 해당 VM 선택 → Edit 클릭
  2. 왼쪽 메뉴에서 입력 → USB 탭 선택
  3. USB 지원을 **USB 3.0 (xHCI)**로 설정
  4. 호스트로부터 USB 장치 공유 옵션 체크 후 저장
  5. UTM 버전에 따라 USB 장치를 직접 추가하거나, VM 실행 후 메뉴에서 Devices → USB를 통해 장치 선택

설정 완료 후 VM을 부팅합니다.


C. Ubuntu에서 장치 인식 확인

다음 명령어로 USB 장치가 정상적으로 연결되었는지 확인합니다.

 
 
bash
sudo lsusb

정상적으로 인식되었다면 다음과 같은 라인이 표시됩니다.

 
 
ID 0e8d:7612 MediaTek Inc. MT7612U ...

커널 로그를 확인하여 펌웨어 로딩 상태를 점검합니다.

 
 
bash
sudo dmesg -T | egrep -i 'mt76|mediatek|firmware|wlan' | tail -n 80

정상 케이스: loading firmware mediatek/mt7662u.bin 등의 메시지가 표시됨

문제 케이스: Firmware Version: 0.0.00 메시지가 표시되면 펌웨어 파일이 없거나 로딩에 실패한 것입니다.


D. 펌웨어 문제 해결

방법 1: 패키지 재설치

 
 
bash
sudo apt update
sudo apt install --reinstall linux-firmware

펌웨어 파일 존재 여부 확인:

 
 
bash
ls -l /lib/firmware/mediatek/mt7662u*.bin

mt7662u.bin과 mt7662u_rom_patch.bin 파일이 있어야 합니다.

방법 2: 수동 다운로드

패키지에 펌웨어가 없거나 최신 버전을 사용하고 싶다면 직접 다운로드합니다.

 
 
bash
cd /lib/firmware/mediatek
sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/mediatek/mt7662u.bin
sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/mediatek/mt7662u_rom_patch.bin
ls -l mt7662u*.bin

모듈 재적재

펌웨어를 설치한 후 관련 모듈을 재적재합니다.

 
 
bash
sudo modprobe -r mt76x2u mt76x02_usb mt76_usb mt76x02_lib mt76x2_common mt76 2>/dev/null || true
sudo modprobe mt76x2u

initramfs에 펌웨어를 포함시키려면:

 
 
bash
sudo update-initramfs -u

재부팅을 권장합니다.


E. 장치 리바인딩 (핫플러그 타이밍 문제 해결)

장치가 인식되지만 펌웨어 로딩이 실패하는 경우, USB 포트를 리바인딩하여 재연결을 시도합니다.

  1. 포트 번호 확인:
 
 
bash
lsusb -t

예시 출력에서 포트 번호 확인 (예: 6-3)

  1. 언바인드 후 바인드:
 
 
bash
echo '6-3' | sudo tee /sys/bus/usb/drivers/usb/unbind
sleep 1
echo '6-3' | sudo tee /sys/bus/usb/drivers/usb/bind

재연결 시 커널이 펌웨어를 다시 로드합니다.


F. 인터페이스 확인 및 모니터 모드 설정

네트워크 인터페이스 확인:

 
 
bash
ip -br link
iw dev

무선 인터페이스 이름이 wlx00c0cab766e5 형태로 표시됩니다.

모니터 모드 전환

 
 
bash
IFACE="wlx00c0cab766e5"

sudo ip link set "$IFACE" down
sudo iw dev "$IFACE" set type monitor
sudo ip link set "$IFACE" up

# 채널 지정 (선택 사항)
sudo iw dev "$IFACE" set channel 1

패킷 캡처

 
 
bash
sudo tcpdump -i "$IFACE" -vv -w ~/alfa_test.pcap

중지하려면 Ctrl+C를 누릅니다.

tcpdump 출력에 link-type IEEE802_11_RADIO가 표시되거나 pcap 파일에 radiotap 헤더가 포함되어 있으면 정상적으로 캡처되는 것입니다.


5. 자주 발생하는 문제와 해결 팁

macOS가 장치를 선점하는 문제

macOS가 네트워크 인터페이스로 장치를 인식하면 UTM 메뉴에서 장치가 표시되지 않습니다. macOS 네트워크 설정에서 해당 서비스(AX88179B 등)를 제거해야 합니다.

USB 3.0 미설정

일부 무선 랜카드는 USB 2.0만으로는 정상 작동하지 않거나 불안정합니다. UTM 설정에서 USB 3.0 (xHCI)를 반드시 활성화해야 합니다.

펌웨어 누락

Firmware Version: 0.0.00 로그가 표시되면 /lib/firmware/mediatek/mt7662u*.bin 파일을 확인하고, 없으면 수동으로 다운로드합니다.

장치가 인식되지만 즉시 비활성화되는 경우

initramfs에 펌웨어가 포함되지 않았거나 핫플러그 타이밍 문제일 수 있습니다. update-initramfs -u 명령어를 실행하거나 언바인드/바인드를 시도합니다.

드라이버 빌드가 필요한 경우

위 방법으로 해결되지 않고 커널/드라이버 문제가 의심된다면 backports를 이용해 최신 무선 모듈을 빌드할 수 있습니다.

 
 
bash
git clone https://git.kernel.org/pub/scm/linux/kernel/git/backports/backports.git
cd backports
make defconfig-wifi
make -j$(nproc)
sudo make install

마치며

ALFA AWUS036ACM을 UTM 가상머신에서 모니터모드로 사용하기 위해서는 호스트 OS의 USB 선점 문제와 게스트 OS의 펌웨어 문제를 모두 해결해야 합니다.