반응형


연구 목적으로 compat-wireless 패키지에 들어 있는 Qualcomm Atheros 칩셋 중 하나인 ath9k의 소스코드를 고치고 있는데,아무리 봐도 내가 원하는 기능을 해당 코드에서 달성할 수 없는 것 같다. 디바이스 드라이버(device driver) 레벨보다 더 하위 레벨로 내려가야 할 것 같아서 찾아보니, 내가 갖고 있는 USB 랜카드(TP-LINK TL-WN722N)는 htc_9271.fw 라는 이름의 펌웨어를 쓴다는 것을 알게 되었다.


해당 펌웨어의 소스코드가 있는지 찾아 보니, 반갑게도 Qualcomm Atheros에서 htc 9271 펌웨어 소스코드를 오픈소스로 git에 올려 놓았다.


아래와 같은 순서대로 하면 ath9k 펌웨어 개발 환경을 얻을 수 있다. (주의사항: ath9k 디바이스 드라이버와는 다르다. 디바이스 드라이버는 compat-wireless 소스코드를 받아서 빌드해야 한다.)



1. Git에서 소스코드 다운받기 (https://github.com/qca/open-ath9k-htc-firmware)

 $ git clone https://github.com/qca/open-ath9k-htc-firmware



2. make 명령으로 toolchain 다운받고 설치하기

 $ cd ./open-ath9k-htc-firmware

 $ make toolchain

(한참 걸린다. 약 30분~1시간)



3. Firmware 빌드하기 

(참고로 cmake가 필요하다. 없으면 sudo apt-get install cmake 로 설치하자.)

 $ make -C target_firmware

(그리 오래 걸리지 않는다.)



4. open-ath9k-htc-firmware/target_firmware 디렉토리에 .fw 파일이 생성되어 있으면 빌드 성공.

htc_9271.fw 파일을 /lib/firmware/ 에 복사한 뒤에, 기존에 설치된 ath9k_htc 커널 모듈을 지우고 재설치한다.

$ sudo cp htc_9271.fw /lib/firmware/

$ sudo rmmod ath9k_htc

$ sudo modprobe ath9k_htc





반응형
블로그 이미지

Bryan_

,