루카스(lucas2)에서 H/W 에서 무선 특성을 측정하기 위해서는 사전에 mfgbrige, labtool 이 실행되어야 한다. 다시말해 mfgbrige, labtool 이 실행가능한 환경이 구축되어야 한다.
참고로 lucas2 에는 WiFi chip 8797 이 들어있다.
필요 환경
측정 시 실행하게 되는 명령어는 총 3가지이다.
#./backup.sh // 가장 처음에 한번만 실행하면 된다(product module(.ko), firmware 를 mfg 용 module, firmware 로 바꿔준다). #rfTest.sh lucas 5 // mfgbridge 를 실행한다 #rfTest.sh lucas 7 // labtool 을 실행한다
실행환경 만들기
새로운 보드에서 위 명령어를 실행하기 위해서 필요한 작업들이 있다. 먼저 실행 환경이 이미 구축된 곳에서 필요한 파일들을 USB 메모리에 복사하여 이를 새로운 보드에 복사하여 환경을 만들 것이다.
#mkdir /tmp/test #mount /dev/sda1 /tmp/test #mkdir /tmp/test/wifitest #cp /sbin/rfTest.sh /tmp/test/wifitest/ #cd /mnt/stateful_partition/ #cp -arf mwifiex mfgbridge /tmp/test/wifitest/ #umount /tmp/test
위와 같이 필요한 파일들을 모두 복사했다. 이제 새로운 보드에 복사한 파일들을 아래와 같이 옮기도록 하자.
#mount -o remount,rw / #mkdir /tmp/test #mount /dev/sda1 /tmp/test #cd /tmp/test/wifitest #cp rfTest.sh /sbin/ #cp -arf mwifiex mfgbridge /mnt/stateful_partition/ #cd .. #cp labtool /mnt/stateful_partition/mwifiex/labtool // 11ac 가 지원되는 labtool 사용을 위해 기존의 labtool 을 덮어 씌움 #umount /tmp/test #cd /mnt/stateful_partition/mwifiex/ #sh ./backup.sh
마지막 스크립트(backup.sh)를 실행하면 재부팅이 된다.
실행 확인
#cd /mnt/stateful_partition/mwifiex/ #sh ./inital.sh #./labtool
이후 labtool 메뉴에서 '1 → 88' 을 입력하여, firmware 버전이 제대로 출력되는지 확인한다.
#rfTest.sh lucas 5 #rfTest.sh lucas 7
제대로 실행되는지 확인한다.
Cal Data 를 OTP 에 write 하는 방법
lucas2 의 경우, WiFi 무선 감도를 최적화하기 위해서 calibration(캘러브레이션)이 필요한데, 이를 golden cal 이라고하는 설정 파일을 사용한다.
설정 파일로 부터 읽어들인 cal 값은 OTP 영역에 write 한다. OTP 영역은 사이즈가 제한되어 있어 횟수가 제한되어 있다.
여기서 사용할 labtool 의 버전은 2.0.44 이다. 이보다 낮은 버전의 경우, Cal 데이터를 OPT 에 write 하는 명령어를 지원하지 않을 수 있다.
먼저 labtool 과 mfgbridge 가 실행가능한 상태에서 Host PC 측에서 DutApiMimoBtFmBrdigeEth.exe 를 실행한다.
Name: Dut labtool Version: 2.0.0.44 Date: Nov 8 2013 (16:04:36) Note: 1. =========WiFi tool============= 2. =========BT tool============= Enter CMD 99 to Exit Enter option: 1 // 1 입력 Name: DutApiClass Interface: EtherNet Version: 2.0.0.44 Date: Nov 8 2013 (16:03:42) Note: C:\Users\wjkim\Desktop\labtool\setup.ini Dut's IP 172.28.22.97:9930 Host's IP 172.28.22.52:9931 DutIf_UdpIp::delay 0 DutIf_UdpIp::vg_IfSpy 0 TCP connecting... DutIf_InitConnection: 0 -------------------------------------------------------- W87xx (802.11a/g/b/n) TEST MENU -------------------------------------------------------- Enter option: 44 2 // OTP 모드로 변경 Set Storage Type to: 2 Enter option: 147 // 현재 write 할 수 있는 OTP 라인 수 Free Lines in OTP: 155 Enter option:
Cal 데이터를 OTP 에 write 하기 전에 147 번 명령어로 현재 남아있는 OTP 라인 수를 확인해야 한다. 만일 모자르다면, 쓸 수 없다.
Enter option: 44 1 // Config File 모드로 변경 Set Storage Type to: 2 Enter option: 54 // CalWlanDataFile_Upload.txt 파일과 Power Table 데이터 구조체를 파일로 만들어 write 한다. Device Type: Conf File Upload Data to: C:\Users\wjkim\Desktop\labtool\\CalWlanDataFile_Upload.txt Write Main Data Structure Write Pwr Table to File "PwrTble_Band0_SubBand0_Dev0_Path0_Upload.txt" Write Pwr Table to File "PwrTble_Band1_SubBand0_Dev0_Path0_Upload.txt" Write Pwr Table to File "PwrTble_Band1_SubBand1_Dev0_Path0_Upload.txt" Write Pwr Table to File "PwrTble_Band1_SubBand2_Dev0_Path0_Upload.txt" Write Pwr Table to File "PwrTble_Band1_SubBand3_Dev0_Path0_Upload.txt" Write Pwr Table to File "PwrTble_Band0_SubBand0_Dev0_Path1_Upload.txt" Write Pwr Table to File "PwrTble_Band1_SubBand0_Dev0_Path1_Upload.txt" Write Pwr Table to File "PwrTble_Band1_SubBand1_Dev0_Path1_Upload.txt" Write Pwr Table to File "PwrTble_Band1_SubBand2_Dev0_Path1_Upload.txt" Write Pwr Table to File "PwrTble_Band1_SubBand3_Dev0_Path1_Upload.txt" Write Annex42 Data Write Annex55 Data DUTAPI_UpLoadSaveCalData: 0x00000000 CsC:1 Enter option:
실행 디렉토리를 보면, CalWlanDataFile_Upload.txt 와 Power Table 이 적힌 파일들(10개)이 생성된 것을 볼 수 있다.
CalWlanDataFile_Upload.txt | 전체적인 설정값들이 들어있는 파일 |
PwrTble_Band1_SubBand3_Dev0_Path1_Upload.txt | 각 채널 별로 신호세기 설정값이 들어있는 파일 |
이제 이 파일들을 수정하여 OTP 에 write 할 차례다. 먼저 앞서 생성된 파일들의 이름에서 '_Upload' 를 뺀다.
Enter option: 44 2 // OTP 모드로 변경 Set Storage Type to: 2 Enter option: 147 Free Lines in OTP: 155 Enter option: 53 // OTP write Device Type: OTP Read Main Data Structure Read Annex49 Data from "C:\Users\wjkim\Desktop\labtool//PwrTble_Band0_SubBand0_Dev0_Path0.txt" Read Annex50 Data from "C:\Users\wjkim\Desktop\labtool//PwrTble_Band1_SubBand0_Dev0_Path0.txt" Read Annex50 Data from "C:\Users\wjkim\Desktop\labtool//PwrTble_Band1_SubBand1_Dev0_Path0.txt" Read Annex50 Data from "C:\Users\wjkim\Desktop\labtool//PwrTble_Band1_SubBand2_Dev0_Path0.txt" Read Annex50 Data from "C:\Users\wjkim\Desktop\labtool//PwrTble_Band1_SubBand3_Dev0_Path0.txt" Read Annex49 Data from "C:\Users\wjkim\Desktop\labtool//PwrTble_Band0_SubBand0_Dev0_Path1.txt" Read Annex50 Data from "C:\Users\wjkim\Desktop\labtool//PwrTble_Band1_SubBand0_Dev0_Path1.txt" Read Annex50 Data from "C:\Users\wjkim\Desktop\labtool//PwrTble_Band1_SubBand1_Dev0_Path1.txt" Read Annex50 Data from "C:\Users\wjkim\Desktop\labtool//PwrTble_Band1_SubBand2_Dev0_Path1.txt" Read Annex50 Data from "C:\Users\wjkim\Desktop\labtool//PwrTble_Band1_SubBand3_Dev0_Path1.txt" Read Annex52 Data Read Annex53 Data Read Annex54 Data Read Annex63 Data Read Annex47 Data Read Annex48 Data Read Annex52 Data Read Annex53 Data Read Annex54 Data Read Annex63 Data Read Annex47 Data Read Annex48 Data Read Annex42 Data Read Annex55 Data Read Annex56 Data DUTAPI_LoadSaveCalData: 0x00000000 Enter option: 147 Free Lines in OTP: 90
사용가능한 OTP 라인이 줄어든 것을 알 수 있다. 참고로 CalWlanDataFile.txt 파일이 없으면, write 되지 않는다.
FAQ
mount -o remount,rw / 실행에러가 발생할 때
write-protected 라는 메세지와 함께 에러가 발생한다면, 다른 방법으로 / 를 rw 하도록 해주어야 한다.
먼저 USB memory 를 마운트하고, 아래와 같이 rtTest.sh 를 실행한다.
#mkdir /tmp/test #mount /dev/sda1 /tmp/test #cd /tmp/test/wifitest #./rfTest.sh lucas2 12
재부팅 후에, 다시 시도해보면, rw 가능할 것이다.