블로그 이미지
훅크선장

카테고리

분류 전체보기 (328)
사진이야기 (23)
펭귄컴퓨팅 (108)
컴퓨터보안 (70)
절름발이 프로그래머 (59)
하드웨어개조 (19)
멀알려줄까 (34)
잡다한것들 (15)
Total714,608
Today58
Yesterday46

달력

« » 2019.4
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

공지사항

태그목록

https://wiki.openwrt.org/toh/tp-link/tl-wr841nd 

에서TFTP install/recovery via serial” 부분을 열심히 따라서 한 것입니다. 특별하게 다른 내용은 없지만, 한국에서 가장 많이 팔린? v11을 대상으로 한, 한글로 쓰여진 복구 매뉴얼로 생각하시면 됩니다.



OpenWRT 팀에서는 시리얼 포트를 이용한 복구보다는 tftp 기능을 이용한 복구를 권장하고 있는데, 일단 제 경우에는 펌웨어 업데이트중에 메모리 쓰기 에러가 발생해서, 단순 tftp 기능 복구는 실패하였습니다. 일단 먼저 tftp 기능 복구를 설명드리겠습니다. (제 경우는 실패하였지만...!!)



기존에 OpenWRT를 설치한 공유기에 경우에는,

1) Luci 웹 인터페이스에서 “system" 메뉴의 "Backup / Flash Firmware" 페이지에서 "Flash new Firmware image" 기능을 이용하거나,

2) SSH 로 공유기에 접근해서,

# cd /tmp

# wget https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/openwrt-ar71xx-generic-tl-wr841-v11-squashfs-sysupgrade.bin

로 펌웨어를 인터넷에서 다운로드 받은 뒤,

# sysupgrade openwrt-ar71xx-generic-tl-wr841-v11-squashfs-sysupgrade.bin

명령으로 업그레이드가 가능합니다. 


제 경우는 위 2)번 방식 도중에 메모리 쓰기 에러가 난 후에, 계속 공유기가 재부팅을 반복하는 상황이었습니다.


이런 상황을 흔히 벽돌 (Brick) 상태라고 합니다.


첫번째로 시도해볼 방법은 tftp 기능을 이용한 복구입니다. 이 기능은 TP-Link 계열 공유기들이 거의 가지고 있는 것으로, 공유기가 failsafe 모드로 부팅하는 순간에 몇 초정도 tftp 클라이언트 기능을 동작시키고 복구용 펌웨어 다운로드를 찾으면서 대기하는 기능입니다.


1. 사용자 PC의 유선랜 네트워크 설정을 다음과 같이 합니다.

    IP Address : 192.168.0. 66

    Netmask : 255.255.255.0

    Gateway : 192.168.0.86

2. TFTPD 프로그램을 설치합니다. (이건 인터넷 검색하셔서, 설치하면 됩니다.)

     http://blog.pages.kr/486


3. TFTPD 데몬의 루트 디렉토리에 펌웨어 파일을 위치 시킵니다. 단, 펌웨어 파일명을 정확히 바꿔줘야 합니다.

    https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/openwrt-ar71xx-generic-tl-wr841-v11-squashfs-factory.bin  라는 파일을 가져와서, 파일명을 꼭 정확히 wr841nv11_tp_recovery.bin 으로 바꾸어 줍니다.


4. 공유기의 LAN  포트중 하나에 랜선을 이용하여, PC와 연결합니다.


5. 공유기의 뒷면의 RESET 버튼을 누른 상태로, 공유기의 전원을 켭니다. 

    공유기가 리부팅될때까지 RESET 버튼을 누르고 있습니다. (공유기의 모든 LED가 꺼지고, 전원 LED만 다시 켜지는 상황)


6. 사용자 PC의 유선랜 네트워크를 DHCP로 변경하고, 192.168.1.x 네트워크에 가입된 것을 확인하고, http://192.168.1.1 로 접속해봅니다.



그러나, 제 경우에는 위 tftp 방식으로 실패했습니다. 

나중에 Serial 연결을 한 상태에서 보니, 펌웨어의 압축해제에서 계속 에러가 발생하는 것을 확인하였습니다. 

U-Boot 1.1.4 (Dec  1 2015 - 12:04:56)


ap143-2.0 - Honey Bee 2.0


DRAM:  32 MB

Flash Manuf Id 0xc8, DeviceId0 0x40, DeviceId1 0x16

flash size 4MB, sector count = 64

Flash:  4 MB

Using default environment


In:    serial

Out:   serial

Err:   serial

Net:   ath_gmac_enet_initialize...

ath_gmac_enet_initialize: reset mask:c02200 

Scorpion ---->S27 PHY*

S27 reg init

: cfg1 0x800c0000 cfg2 0x7114

eth0: ba:be:fa:ce:08:41

athrs27_phy_setup ATHR_PHY_CONTROL 4 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 4 :10

eth0 up

Honey Bee ---->  MAC 1 S27 PHY *

S27 reg init

ATHRS27: resetting s27

ATHRS27: s27 reset done

: cfg1 0x800c0000 cfg2 0x7214

eth1: ba:be:fa:ce:08:41

athrs27_phy_setup ATHR_PHY_CONTROL 0 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 0 :10

athrs27_phy_setup ATHR_PHY_CONTROL 1 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 1 :10

athrs27_phy_setup ATHR_PHY_CONTROL 2 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 2 :10

athrs27_phy_setup ATHR_PHY_CONTROL 3 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 3 :10

eth1 up

eth0, eth1

Setting 0x181162c0 to 0x5cb9a100

is_auto_upload_firmware=0

Autobooting in 1 seconds

## Booting image at 9f020000 ...

   Uncompressing Kernel Image ... ERROR: LzmaDecode.c, 543


Decoding error = 1

LZMA ERROR 1 - must RESET board to recoverˇ



그래서, 결국 Serial 포트를 이용한 벽돌상태에서 복구하기 (De-Brick)를 했습니다.


Serial 포트는 메인보드 상에 존재하기 때문에, 공유기의 분해 및 납땜이 필요합니다. 공유기 분해까지는 보통 사람들에게 어렵지 않지만, 문제는 메인보드상에 연결용 커넥터를 추가하는 납땜을 위해 납땜용 도구들이 필요하고, 게다가 컴퓨터와 Serial 포트를 연결하려면, 전용 USB to UART 연결보드(3.3v 용)가 필요합니다.  

주의하실 점이 UART 연결보드를 반드시 3.3v 용(아니면 겸용을 사서 3.3v 모드로)으로 써야합니다. 5v 용을 사서 쓰다가 큰 낭패(보드 칩 타 버림)를 볼 수 있습니다.


제 경우에는 아두이노 보드 연결용 UART 보드가 3.3v/5v 겸용이 있어서, 그것을 전원 선택 LED 표시가 되도록 개조해서 쓰고 있습니다.


그러면, 차례로 설명해 보겠습니다.


1) 공유기 분해


공유기 뒷면에서 안테나가 있는 쪽, 동그만 검정 고무 2개를 제거합니다. (헤어드라이어 열풍으로 살짝 가열하고 떼면 잘 떼어집니다.)

아래와 같이 나사가 두 개 나옵니다. 두 나사를 풀어줍니다.



그리고, 윗 부분과 아래 부분을 분리하면 됩니다. (모서리를 눌러서 틈이 벌어지면, 위 아래를 각각 힘으로 분리하면 됩니다.)



2) 메인보드상의 저항 제거 및 핀 경로 연결


아래 그림은 https://abload.de/img/841v12-board-serialumurl.jpg 에서 가져온 것입니다.


원래 R26 자리에 아주 작은 저항 한 개가 붙어 있고, R23에는 아무 것도 없습니다. 제조사가 사용하는 일종의 안전장치입니다. R26을 제거해서 단선시키고, R23을 연결해야만 Serial 접속이 가능합니다.

R26의 아주 작은 저항은 납땜기로 가열해서 제거할 수도 있는데, 과열에 의한 보드 손상이 있을 수 있으므로, 작은 니퍼를 이용해서 먼저 저항을 깬 다음, 납땜기로 나머지 남은 부분을 제거하는 것이 낫습니다.

R23의 연결은 저항을 쓸 수 있지만, 너무 작은 저항을 구하는 것도 납땜하는 것도 어렵기 때문에, 저는 전선의 코어 한 가닥을 길게 핀셋으로 잡고 납땜한 다음, 나머지 부분을 니퍼로 제거하는 방법을 썼습니다.

아래 그림을 자세히 보시면, R26은 단선되고, R23은 바로 연결된 것을 보실 수 있습니다. 반드시 테스터를 사용하여 단선과 연결을 확인하기 바랍니다. 육안으로는 잘 구분하기 어렵습니다. 실제로 작업에는 확대경이 필수입니다.

이 과정만 보더라도, 장비가 없는 사람에게 복구는 그림의 떡입니다.   




3) 공유기 메인보드에 연결용 커넥터 납땜


https://www.devicemart.co.kr/1313372

Female to Female 점퍼와이어와 

https://www.devicemart.co.kr/35988

12mm 기본 핀 헤더가 있는 것이 좋습니다. 보드에 선을 그냥 납땜할 수도 있습니다만, 핀헤더와 연결 커넥터를 사용하는 것을 권장합니다. (실수를 줄이고, 깔끔하거든요~!)


아래와 같이, 4개 핀 헤더를 보드에 납땜하면 됩니다. 





4) USB to UART 설치 및 Serial 과 연결


제 경우에는 다음 그림에 있는 큰 형태의 USB to UART(5v / 3.3v 겸용 제품)를 사용했습니다.



https://www.devicemart.co.kr/1290042

FTDI사 FT232RL 칩셋을 사용하는 범용을 사서 쓰는 것이 좋습니다. 5V와 3.3V 를 점퍼선으로 변환해서 사용할 수 있어서 좋습니다.

FTDI 사의 드라이버는 여기서 받아서 쓸 수 있습니다.

http://www.ftdichip.com/Drivers/VCP.htm


USB to UART 보드와 메인보드 핀 헤더를 연결하는 방법은 단지 세 개만 연결하면 됩니다. 절대로 Vcc 선을 연결하지 마시기 바랍니다. (공유기 메인보드 칩 아니면, UART 보드의 칩이 타버릴 수 있습니다.)

연결한 선은 다음과 같이 합니다. (점퍼선 연결이 편리합니다~!)

USB to UART 보드    <<----------------->>   공유기 메인보드 핀헤더 

                      Vcc           xx 연결 안함 xx           Vcc

                     GND       <----------------->     GND

                      TX         <----------------->      RX

                      RX         <----------------->      TX



5) PC에서 터미널 에뮬레이터로 Serial 연결 

    가장 일반적인 터미널 에뮬레이터는 Putty 입니다. 

    Putty 에서 USB to UART 보드의 COM 포트 번호를 지정하고, Speed는 115200로 설정하면 됩니다.


Putty 설치와 사용에 대해서는 인터넷 검색하시면, 다음과 같은 참고 페이지들이 많이 나올겁니다.

http://zelkun.tistory.com/entry/009-Arduino-%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-PuTTY-%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%8B%9C%EB%A6%AC%EC%96%BC-%ED%86%B5%EC%8B%A0



6) 공유기 부팅해서, 상태 확인하기

모든 것이 다 정상이라면, 공유기의 전원을 켰을 때,  PC의 터미널 에뮬레이터 화면에는 다음과 같은 메시지가 출력될 것입니다. (앞 부분 글자가 조금 잘리는 경우도 많습니다. 정상적인 텍스트 출력이 중요합니다.)


U-Boot 1.1.4 (Dec  1 2015 - 12:04:56)


ap143-2.0 - Honey Bee 2.0


DRAM:  32 MB

Flash Manuf Id 0xc8, DeviceId0 0x40, DeviceId1 0x16

flash size 4MB, sector count = 64

Flash:  4 MB

Using default environment


In:    serial

Out:   serial

Err:   serial

Net:   ath_gmac_enet_initialize...

ath_gmac_enet_initialize: reset mask:c02200 

Scorpion ---->S27 PHY*

S27 reg init

: cfg1 0x800c0000 cfg2 0x7114

eth0: ba:be:fa:ce:08:41

athrs27_phy_setup ATHR_PHY_CONTROL 4 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 4 :10

eth0 up

Honey Bee ---->  MAC 1 S27 PHY *

S27 reg init

ATHRS27: resetting s27

ATHRS27: s27 reset done

: cfg1 0x800c0000 cfg2 0x7214

eth1: ba:be:fa:ce:08:41

athrs27_phy_setup ATHR_PHY_CONTROL 0 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 0 :10

athrs27_phy_setup ATHR_PHY_CONTROL 1 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 1 :10

athrs27_phy_setup ATHR_PHY_CONTROL 2 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 2 :10

athrs27_phy_setup ATHR_PHY_CONTROL 3 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 3 :10

eth1 up

eth0, eth1

Setting 0x181162c0 to 0x5cb9a100

is_auto_upload_firmware=0

Autobooting in 1 seconds

## Booting image at 9f020000 ...

   Uncompressing Kernel Image ... ERROR: LzmaDecode.c, 543


Decoding error = 1

LZMA ERROR 1 - must RESET board to recoverˇ


만약, 위와 같은 메시지가 나오지 않는다면, 앞에서 과정을 다시 확인하시기 바랍니다.



7) Serial 연결상태에서 펌웨어 다운받고, 업데이트하기


먼저 tftp 복구 환경을 앞에서와 같이 설정 합니다.

그 다음, 공유기를 켭니다. 공유기에서 Autobooting in 1 seconds 메시지가 보이자마자, tpl 이라고 영문 세글자를 입력 합니다.

그러면, 쉘 명령어 상태가 됩니다.  ap143-2.0> 라는 프롬프트가 뜰 것입니다.


ap143-2.0> printenv

명령어로 현재 상태를 확인하고,


ap143-2.0> setenv ipaddr 192.168.0.86

ap143-2.0> setenv serverip 192.168.0.66


을 설정한 다음, (tftp 서비스 설정할때의 값을 사용하는데, 여기 IP 주소들은 공유기 입장에서 사용하는 것입니다.)


ap143-2.0> tftpboot 0x80000000 wr841nv11_tp_recovery.bin


로 펌웨어를 다운로드 받습니다.


enet0 port4 up

Using eth0 device

TFTP from server 192.168.0.66; our IP address is 192.168.0.86

Filename 'wr841nv11_tp_recovery.bin'.

Load address: 0x80000000

Loading: *.#################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. ######################################################

done

Bytes transferred = 3932160 (3c0000 hex)


와 같이 정상적으로 펌웨어가 tftp로 전송 완료되었으면, (전송완료된 데이터의 hex 길이는 반드시 기억해줘야 합니다. 명령어에서 계속 사용하는 값이 됩니다. 절대로 틀리면 안되는 값입니다.)


ap143-2.0> printenv bootcmdbootcmd=bootm 0x9f020000

ap143-2.0> erase 0x9f020000 +0x3c0000


부팅 파라미터를 설정하고, 펌웨어가 들어갈 메모리 영역을 먼저 지워줍니다.


Erasing flash... 

First 0x2 last 0x3d sector size 0x10000

....   2....   3....   4....   5....   6....   7....   8....   9....  10....  11....  12....  13....  14....  15....  16....  17....  18....  19....  20....  21....  22....  23....  24....  25....  26....  27....  28....  29....  30....  31....  32....  33....  34....  35....  36....  37....  38....  39....  40....  41....  42....  43....  44....  45....  46....  47....  48....  49....  50....  51....  52....  53....  54....  55....  56....  57....  58....  59....  60....  61

Erased 60 sectors


메모리가 정상적으로 지워지면, 펌웨어를 메모리 영역에 덮어씁니다.


ap143-2.0> cp.b 0x80000000 0x9f020000 0x3c0000


Copy to Flash... write addr: 9f020000

done


모든 것이 완료되었으면, 공유기를 재부팅합니다.


ap143-2.0> reset


그러면, 정상적으로 부팅되는 로그를 보실 수 있습니다. 

http://192.168.1.1 로 접속해서, 공유기를 설정하면 됩니다.



-----------------------------------------------------------------------------------------------


※ 전체과정 화면 캡쳐 (참고용)

tftp 상황에서 retry 과정이 여러번 있었습니다. 한번에 성공하지 못하더라도 tftp 환경만 정상적이면, 공유기를 재부팅해서 계속 시도할 수 있습니다. 


 U-Boot 1.1.4 (Dec  1 2015 - 12:04:56)


ap143-2.0 - Honey Bee 2.0


DRAM:  32 MB

Flash Manuf Id 0xc8, DeviceId0 0x40, DeviceId1 0x16

flash size 4MB, sector count = 64

Flash:  4 MB

Using default environment


In:    serial

Out:   serial

Err:   serial

Net:   ath_gmac_enet_initialize...

ath_gmac_enet_initialize: reset mask:c02200 

Scorpion ---->S27 PHY*

S27 reg init

: cfg1 0x800c0000 cfg2 0x7114

eth0: ba:be:fa:ce:08:41

athrs27_phy_setup ATHR_PHY_CONTROL 4 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 4 :10

eth0 up

Honey Bee ---->  MAC 1 S27 PHY *

S27 reg init

ATHRS27: resetting s27

ATHRS27: s27 reset done

: cfg1 0x800c0000 cfg2 0x7214

eth1: ba:be:fa:ce:08:41

athrs27_phy_setup ATHR_PHY_CONTROL 0 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 0 :10

athrs27_phy_setup ATHR_PHY_CONTROL 1 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 1 :10

athrs27_phy_setup ATHR_PHY_CONTROL 2 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 2 :10

athrs27_phy_setup ATHR_PHY_CONTROL 3 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 3 :10

eth1 up

eth0, eth1

Setting 0x181162c0 to 0x5cb9a100

is_auto_upload_firmware=0

Autobooting in 1 seconds

ap143-2.0> ap143-2.0> ap143-2.0> ap143-2.0> setenv ipaddr ROUTERIPap143-2.0> setenv serverip SERVERIPap143-2.0> printenvbootargs=console=ttyS0,115200 root=31:02 rootfstype=jffs2 init=/sbin/init mtdparts=ath-nor0:32k(u-boot1),32k(u-boot2),3008k(rootfs),896k(uImage),64k(mib0),64k(ART)

bootcmd=bootm 0x9f020000

bootdelay=1

baudrate=115200

ethaddr=0xba:0xbe:0xfa:0xce:0x08:0x41

dir=

lu=tftp 0x80060000 ${dir}tuboot.bin&&erase 0x9f000000 +$filesize&&cp.b $fileaddr 0x9f000000 $filesize

lf=tftp 0x80060000 ${dir}ap143-2.0${bc}-jffs2&&erase 0x9f010000 +$filesize&&cp.b $fileaddr 0x9f010000 $filesize

lk=tftp 0x80060000 ${dir}vmlinux${bc}.lzma.uImage&&erase 0x9f300000 +$filesize&&cp.b $fileaddr 0x9f300000 $filesize

stdin=serial

stdout=serial

stderr=serial

ethact=eth0

ipaddr=ROUTERIP

serverip=SERVERIP


Environment size: 677/65532 bytes

ap143-2.0> ser. .tUsage:

setenv  - set environment variables


ap143-2.0> setenv ipd. .addr 192.168.1.. .. .0.86ap143-2.0> setenv serverip 192.168.0.66ap143-2.0> printenvbootargs=console=ttyS0,115200 root=31:02 rootfstype=jffs2 init=/sbin/init mtdparts=ath-nor0:32k(u-boot1),32k(u-boot2),3008k(rootfs),896k(uImage),64k(mib0),64k(ART)

bootcmd=bootm 0x9f020000

bootdelay=1

baudrate=115200

ethaddr=0xba:0xbe:0xfa:0xce:0x08:0x41

dir=

lu=tftp 0x80060000 ${dir}tuboot.bin&&erase 0x9f000000 +$filesize&&cp.b $fileaddr 0x9f000000 $filesize

lf=tftp 0x80060000 ${dir}ap143-2.0${bc}-jffs2&&erase 0x9f010000 +$filesize&&cp.b $fileaddr 0x9f010000 $filesize

lk=tftp 0x80060000 ${dir}vmlinux${bc}.lzma.uImage&&erase 0x9f300000 +$filesize&&cp.b $fileaddr 0x9f300000 $filesize

stdin=serial

stdout=serial

stderr=serial

ethact=eth0

ipaddr=192.168.0.86

serverip=192.168.0.66


Environment size: 685/65532 bytes

ap143-2.0> tftpboot 0x80000000 o. .wr841nv11_tp_recovery.bineth1 link down

enet0 port4 up

dup 1 speed 100

Using eth0 device

TFTP from server 192.168.0.66; our IP address is 192.168.0.86

Filename 'wr841nv11_tp_recovery.bin'.

Load address: 0x80000000

Loading: *.T T T 

Retry count exceeded; starting again

eth1 link down

Using eth0 device

TFTP from server 192.168.0.66; our IP address is 192.168.0.86

Filename 'wr841nv11_tp_recovery.bin'.

Load address: 0x80000000

Loading: *.T T T 

Retry count exceeded; starting again

enet1 port3 up

dup 1 speed 1000

Using eth1 device

TFTP from server 192.168.0.66; our IP address is 192.168.0.86

Filename 'wr841nv11_tp_recovery.bin'.

Load address: 0x80000000

Loading: *.T T T 

Retry count exceeded; starting again

enet0 port4 down

eth0 link down

Using eth1 device

TFTP from server 192.168.0.66; our IP address is 192.168.0.86

Filename 'wr841nv11_tp_recovery.bin'.

Load address: 0x80000000

Loading: *.T T T 

Retry count exceeded; starting again

enet0 port4 up

Using eth0 device

TFTP from server 192.168.0.66; our IP address is 192.168.0.86

Filename 'wr841nv11_tp_recovery.bin'.

Load address: 0x80000000

Loading: *.#################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. #################################################################

. ######################################################

done

Bytes transferred = 3932160 (3c0000 hex)

ap143-2.0> printenv bootcmdbootcmd=bootm 0x9f020000

ap143-2.0> erase 0x9f020000 +0x3c0000Erasing flash... 

First 0x2 last 0x3d sector size 0x10000

....   2....   3....   4....   5....   6....   7....   8....   9....  10....  11....  12....  13....  14....  15....  16....  17....  18....  19....  20....  21....  22....  23....  24....  25....  26....  27....  28....  29....  30....  31....  32....  33....  34....  35....  36....  37....  38....  39....  40....  41....  42....  43....  44....  45....  46....  47....  48....  49....  50....  51....  52....  53....  54....  55....  56....  57....  58....  59....  60....  61

Erased 60 sectors

ap143-2.0> cp.b 0x80000000 0x9f020000 0x3c0000Copy to Flash... write addr: 9f020000

done

ap143-2.0> reset



<----- 재부팅되고서....------->



vironment


In:    serial

Out:   serial

Err:   serial

Net:   ath_gmac_enet_initialize...

ath_gmac_enet_initialize: reset mask:c02200 

Scorpion ---->S27 PHY*

S27 reg init

: cfg1 0x800c0000 cfg2 0x7114

eth0: ba:be:fa:ce:08:41

athrs27_phy_setup ATHR_PHY_CONTROL 4 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 4 :10

eth0 up

Honey Bee ---->  MAC 1 S27 PHY *

S27 reg init

ATHRS27: resetting s27

ATHRS27: s27 reset done

: cfg1 0x800c0000 cfg2 0x7214

eth1: ba:be:fa:ce:08:41

athrs27_phy_setup ATHR_PHY_CONTROL 0 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 0 :10

athrs27_phy_setup ATHR_PHY_CONTROL 1 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 1 :10

athrs27_phy_setup ATHR_PHY_CONTROL 2 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 2 :10

athrs27_phy_setup ATHR_PHY_CONTROL 3 :1000

athrs27_phy_setup ATHR_PHY_SPEC_STAUS 3 :10

eth1 up

eth0, eth1

Setting 0x181162c0 to 0x5cb9a100

is_auto_upload_firmware=0

Autobooting in 1 seconds

## Booting image at 9f020000 ...

   Uncompressing Kernel Image ... OK


Starting kernel ...


[    0.000000] Linux version 3.18.23 (buildbot@builder1) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47269) ) #1 Sun Jan 31 18:39:35 CET 2016

[    0.000000] bootconsole [early0] enabled

[    0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)

[    0.000000] SoC: Qualcomm Atheros QCA9533 ver 2 rev 0

[    0.000000] Determined physical RAM map:

[    0.000000]  memory: 02000000 @ 00000000 (usable)

[    0.000000] Initrd not found or empty - disabling initrd

[    0.000000] Zone ranges:

[    0.000000]   Normal   [mem 0x00000000-0x01ffffff]

[    0.000000] Movable zone start for each node

[    0.000000] Early memory node ranges

[    0.000000]   node   0: [mem 0x00000000-0x01ffffff]

[    0.000000] Initmem setup node 0 [mem 0x00000000-0x01ffffff]

[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.

[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes

[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128

[    0.000000] Kernel command line:  board=TL-WR841N-v9  console=ttyS0,115200 rootfstype=squashfs,jffs2 noinitrd

[    0.000000] PID hash table entries: 128 (order: -3, 512 bytes)

[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)

[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)

[    0.000000] Writing ErrCtl register=00000000

[    0.000000] Readback ErrCtl register=00000000

[    0.000000] Memory: 28324K/32768K available (2586K kernel code, 128K rwdata, 540K rodata, 256K init, 193K bss, 4444K reserved)

[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

[    0.000000] NR_IRQS:51

[    0.000000] Clocks: CPU:650.000MHz, DDR:392.724MHz, AHB:216.666MHz, Ref:25.000MHz

[    0.000000] Calibrating delay loop... 432.53 BogoMIPS (lpj=2162688)

[    0.060000] pid_max: default: 32768 minimum: 301

[    0.060000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)

[    0.070000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)

[    0.080000] NET: Registered protocol family 16

[    0.080000] MIPS: machine is TP-LINK TL-WR841N/ND v9

[    0.540000] Switched to clocksource MIPS

[    0.540000] NET: Registered protocol family 2

[    0.550000] TCP established hash table entries: 1024 (order: 0, 4096 bytes)

[    0.550000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)

[    0.560000] TCP: Hash tables configured (established 1024 bind 1024)

[    0.560000] TCP: reno registered

[    0.570000] UDP hash table entries: 256 (order: 0, 4096 bytes)

[    0.570000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)

[    0.580000] NET: Registered protocol family 1

[    0.580000] futex hash table entries: 256 (order: -1, 3072 bytes)

[    0.600000] squashfs: version 4.0 (2009/01/31) Phillip Lougher

[    0.600000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.

[    0.610000] msgmni has been set to 55

[    0.620000] io scheduler noop registered

[    0.620000] io scheduler deadline registered (default)

[    0.630000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled

[    0.640000] console [ttyS0] disabled

�[    0.660000] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 1562500) is a 16550A

[    0.670000] console [ttyS0] enabled

[    0.670000] console [ttyS0] enabled

[    0.670000] bootconsole [early0] disabled

[    0.670000] bootconsole [early0] disabled

[    0.680000] m25p80 spi0.0: found gd25q32, expected m25p80

[    0.690000] m25p80 spi0.0: gd25q32 (4096 Kbytes)

[    0.700000] 5 tp-link partitions found on MTD device spi0.0

[    0.700000] Creating 5 MTD partitions on "spi0.0":

[    0.710000] 0x000000000000-0x000000020000 : "u-boot"

[    0.710000] 0x000000020000-0x00000013f620 : "kernel"

[    0.720000] 0x00000013f620-0x0000003f0000 : "rootfs"

[    0.720000] mtd: device 2 (rootfs) set to be root filesystem

[    0.730000] 1 squashfs-split partitions found on MTD device rootfs

[    0.740000] 0x000000360000-0x0000003f0000 : "rootfs_data"

[    0.740000] 0x0000003f0000-0x000000400000 : "art"

[    0.750000] 0x000000020000-0x0000003f0000 : "firmware"

[    0.790000] libphy: ag71xx_mdio: probed

[    1.380000] ag71xx-mdio.1: Found an AR934X built-in switch

[    1.420000] eth0: Atheros AG71xx at 0xba000000, irq 5, mode:GMII

[    2.020000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.1:04 [uid=004dd042, driver=Generic PHY]

[    2.030000] eth1: Atheros AG71xx at 0xb9000000, irq 4, mode:MII

[    2.040000] TCP: cubic registered

[    2.040000] NET: Registered protocol family 17

[    2.040000] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.

[    2.060000] Bridge firewalling registered

[    2.060000] 8021q: 802.1Q VLAN Support v1.8

[    2.070000] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.

[    2.080000] Freeing unused kernel memory: 256K (80390000 - 803d0000)

[    3.080000] init: Console is alive

[    3.090000] init: - watchdog -

[    5.120000] init: - preinit -

[    5.670000] random: procd urandom read with 8 bits of entropy available

Press the [f] key and hit [enter] to enter failsafe mode

Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level

[    8.870000] mount_root: jffs2 not ready yet, using temporary tmpfs overlay

[    8.920000] procd: - early -

[    8.920000] procd: - watchdog -

[    9.660000] procd: - ubus -

[   10.680000] procd: - init -

Please press Enter to activate this console.

[   11.490000] NET: Registered protocol family 10

[   11.500000] ip6_tables: (C) 2000-2006 Netfilter Core Team

[   11.520000] Loading modules backported from Linux version master-2015-03-09-0-g141f155

[   11.530000] Backport generated by backports.git backports-20150129-0-gdd4a670

[   11.540000] ip_tables: (C) 2000-2006 Netfilter Core Team

[   11.550000] nf_conntrack version 0.5.0 (446 buckets, 1784 max)

[   11.600000] xt_time: kernel timezone is -0000

[   11.630000] cfg80211: Calling CRDA to update world regulatory domain

[   11.660000] cfg80211: World regulatory domain updated:

[   11.660000] cfg80211:  DFS Master region: unset

[   11.670000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)

[   11.680000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)

[   11.680000] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A)

[   11.690000] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)

[   11.700000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)

[   11.710000] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)

[   11.720000] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)

[   11.730000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)

[   11.740000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)

[   11.800000] PPP generic driver version 2.4.2

[   11.810000] NET: Registered protocol family 24

[   11.880000] ieee80211 phy0: Atheros AR9531 Rev:2 mem=0xb8100000, irq=2

[   11.890000] cfg80211: Calling CRDA for country: US

[   11.910000] cfg80211: Regulatory domain changed to country: US

[   11.910000] cfg80211:  DFS Master region: FCC

[   11.920000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)

[   11.930000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A)

[   11.930000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (N/A)

[   11.940000] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s)

[   11.950000] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2300 mBm), (0 s)

[   11.960000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A)

[   11.970000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)

[   19.320000] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0

[   19.330000] jffs2_build_filesystem(): unlocking the mtd device... done.

[   19.340000] jffs2_build_filesystem(): erasing all blocks after the end marker... done.

[   20.730000] jffs2: notice: (985) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.

[   21.510000] device eth0 entered promiscuous mode

[   21.510000] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready

[   21.610000] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready

[   26.300000] eth1: link up (100Mbps/Full duplex)

[   26.330000] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready


Posted by 훅크선장