แสดงบทความที่มีป้ายกำกับ P660HN-T1A repair แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ P660HN-T1A repair แสดงบทความทั้งหมด

วันพฤหัสบดีที่ 14 สิงหาคม พ.ศ. 2557

Debrick Zyxel P660HN-T1A ซ่อมอาการเปิดติดแต่ไม่ทำงานเนื่องจากเฟิร์มแวร์พัง

คราวก่อนผมได้เขียนเรื่องการซ่อมอาการเสียไปครั้งนึงแล้วโดยใช้ ftp ใน ลิงค์ นี้ครับ แต่เราเตอร์ตัวที่ผมได้มามันเข้าได้แค่ถึง BootLoader ทำให้ใช้วิธีนั้นไม่ได้ ก็เลยหาวิธีทำไปทำมาใช้ได้ เลยเขียนไว้กันลืมหน่อยครับ


วิธีนี้ผมลองกับรุ่นขายปลีกอย่างเดียว รุ่นที่แถมมากับเน็ต TRUE ยังไม่ได้ลอง2 รุ่นนี้ฮาร์ดแวร์ไม่เหมือนกันนะครับ

ขั้นตอนการทำต้องแกะเครื่องเพื่อเข้าถึงพอร์ต Serial ตามรูปล่าง
พอร์ต Serial
เวลาต่อใช้  3 ขาคือ RX TX GND โดยระดับแรงดันไม่เกิน 3.3v ต่อเข้ากับพอร์ต Serial ของคอมพิวเตอร์ ขั้นต่อไปคือ 
  • เปิดโปรแกรม Hyper Terminal เรียกใช้ COM Port ที่เชื่อมกับเราเตอร์ ตั้งความเร็วพอร์ตที่ 115200 
  • จ่ายไฟให้เราเตอร์ จะปรากฎข้อความ  พอข้อความ "Press any key to enter debug mode within 3 seconds." ขึ้นมาให้กด Enter 1 ครั้ง เครื่องก็จะเข้า BootLoader โดยขึ้นข้อความ "Enter Debug Mode"
Bootbase Version: VTC_SPI1.8 | 2010/4/8 09:32:52
RAM: Size = 16384 Kbytes
DRAM POST: Testing: 16384K
OK
Found SPI Flash 2MiB MX25L1606E(05D) at 0xbfc00000

RAS Version: 3.40(BYF.11)b1

Press any key to enter debug mode within 3 seconds.
........
Enter Debug Mode

  •  พิมพ์คำสั่ง ATUR และกด Enter จะขึ้นข้อความ 
ATUR
Starting XMODEM upload (CRC mode)....
C

  • พอตัว "C" ขึ้นมาให้คลิกเมาส์ที่เมนู Transfer -> Send File... ดังรูปเพื่อส่งเฟิร์มแวร์ไปยังเราเตอร์  

เข้าเมนูส่งไฟล์

  • กด Browse เพื่อเลือกเฟิร์มแวร์ที่เราใช้ โดยผมใช้ตัวนี้ครับ 340BYF11B1 ส่วน Protocolให้เลือกเป็น Xmodem แล้วกด Send

เลือกไฟล์และ Protocol

  • รอให้ส่งเฟิร์มแวร์เสร็จ

ส่งเฟิร์มแวร์หาเราเตอร์
  • หลังส่งเสร็จตัวเราเตอร์จะทำการเขียนเฟิร์มแวร์จะข้อความแสดงความคืบหน้าขึ้นมา ให้รอซักพักจนกว่าข้อความขึ้นคล้ายๆ ด้านล่างเป็นอันเสร็จสิ้นครับ
ATUR
Starting XMODEM upload (CRC mode)....
CCCCCCCCC
Total  1645696 bytes received.

Erasing
Erase OK!

..................................................

OK

System Reboot...

Bootbase Version: VTC_SPI1.8 | 2010/4/8 09:32:52
RAM: Size = 16384 Kbytes
Found SPI Flash 2MiB MX25L1606E(05D) at 0xbfc00000

RAS Version: 3.40(BYF.11)b1

Press any key to enter debug mode within 3 seconds.
............................................................



























Copyright (c) 1994 - 2010 ZyXEL Communications Corp.
spSysStart: spRead() failed

Default Romfile reset...

Erasing 4K Sector...

Erasing 4K Sector...

Erase OK!

Erasing 4K Sector...

Erasing 4K Sector...

Erase OK!

OK

System Restart...


Bootbase Version: VTC_SPI1.8 | 2010/4/8 09:32:52
RAM: Size = 16384 Kbytes
Found SPI Flash 2MiB MX25L1606E(05D) at 0xbfc00000

RAS Version: 3.40(BYF.11)b1

Press any key to enter debug mode within 3 seconds.
............................................................



























Copyright (c) 1994 - 2010 ZyXEL Communications Corp.

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...
initialize ch = 0, TC2104ME,  TC2206, ethernet address: 50:67:f0:e6:5b:24
initialize ch = 1,
Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

CPE will reboot because Wifi parameters changed.

Bootbase Version: VTC_SPI1.8 | 2010/4/8 09:32:52
RAM: Size = 16384 Kbytes
Found SPI Flash 2MiB MX25L1606E(05D) at 0xbfc00000

RAS Version: 3.40(BYF.11)b1

Press any key to enter debug mode within 3 seconds.
............................................................



























Copyright (c) 1994 - 2010 ZyXEL Communications Corp.

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...
initialize ch = 0, TC2104ME,  TC2206, ethernet address: 50:67:f0:e6:5b:24
initialize ch = 1,
Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

 AP restart , also restart 802.1x and reset EAPoL queuePhyMode = 9
ethernet address: 50:67:f0:e6:5b:24
tcphy[3]: Link-up at 100F. tx_amp_save=0.
tcphy[3]: boosten=1 agccode=9 zfgain=8 ch_idx=41 snr=3

Erasing 4K Sector...

Erasing 4K Sector...

writeRomBlock(): Erase OK!
Wan Channel init ........ done
Initializing ADSL F/W ........ done

==>natTableMemoryInit
<==natTableMemoryInit
*DOT1X* radius_srv_num = 1

*DOT1X* radius_srv_num = 1

*DOT1X* radius_srv_num = 1

*DOT1X* radius_srv_num = 1

*DOT1X* initRadiusSocket[0]: bind socket to 2050 OK

*DOT1X* initRadiusSocket[1]: bind socket to 2051 OK

*DOT1X* initRadiusSocket[2]: bind socket to 2052 OK

*DOT1X* initRadiusSocket[3]: bind socket to 2053 OK

*DOT1X* register socket ok  - iface-0

*DOT1X* register socket ok  - iface-1

*DOT1X* register socket ok  - iface-2

*DOT1X* register socket ok  - iface-3
                                     ANNEXAL
DNS Hijack switch is 1.
Success!NAT session reserved is 512,protocol is 2,port is 80!
WSC_MANUFACTURE is ZyXEL now
AP_WSC_DEVICE_NAME is P-660HN-T1A now
AP_WSC_MODEL_NAME is P-660HN-T1A now
now autocwmppara is off
Testlab 10
set try multimode number to 3 (dropmod
Erasing 4K Sector...

Erasing 4K Sector...

writeRomBlock(): Erase OK!
e try num 3)
aargeD flag=2 (0:
 Erasing 4K Sec2tor...
D=511)

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

writeRomBlock(): Erase OK!

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

 AP restart , also restart 802.1x and reset EAPoL queuePhyMode = 9

 AP restart , also restart 802.1x and reset EAPoL queue
 AP restart , also restart 802.1x and reset EAPoL queue
 AP restart , also restart 802.1x and reset EAPoL queue
 AP restart , also restart 802.1x and reset EAPoL queue
 AP restart , also restart 802.1x and reset EAPoL queue
Erasing 4K Sector...

Erasing 4K Sector...

writeRomBlock(): Erase OK!

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...
set default customer parameters OK!

Erasing 4K Sector...

Erasing 4K Sector...

writeRomBlock(): Erase OK!

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...

Erasing 4K Sector...
Syncookie switch On!
Press EN
*DOT1X* radiu.s_srv_num = 1

*DOT1X* radius_srv_num = 1

*DOT1X* radius_srv_num = 1

*DOT1X* radius_srv_num = 1

*DOT1X* register socket ok  - iface-0

*DOT1X* register socket ok  - iface-1

*DOT1X* register socket ok  - iface-2

*DOT1X* register socket ok  - iface-3

เสร็จเรียบร้อยแล้วครับ แถมอีกอย่างคือ
ชุดคำสั่งที่ใช้ได้ใน BootLoader ของเราเตอร์ ครับ

======= Debug Command Listing =======
AT          just answer OK
ATHE          print help
ATBAx         change baudrate. 1:38.4k, 2:19.2k, 3:9.6k 4:57.6k 5:115.2k
ATENx,(y)     set BootExtension Debug Flag (y=password)
ATSE          show the seed of password generator
ATRLx         display the 32-bit value of address x
ATGO(x)       run program at addr x or boot router
ATGR          boot router
ATRTw,x,y(,z) RAM test level w, from address x to y (z iterations)
ATSH          dump manufacturer related data in ROM
ATTD          download router configuration to PC via XMODEM
ATUR          upload router firmware to flash ROM
ATLC          upload router configuration file to flash ROM
ATXSx         xmodem select: x=0: CRC mode(default); x=1: checksum mode
ATLD          Upload Configuration File and Default ROM File to Flash
ATCD          Convert Running ROM File to Default ROM File into Flash   

วันอาทิตย์ที่ 27 ตุลาคม พ.ศ. 2556

Zyxel P660HN-T1A Firmware Repair

ผมได้ Router ที่เสียมาตัวนึง อาการเสียคือ เครื่องเปิดได้ปกติ แต่เข้าเว็บเพื่อ config ไม่ได้ ผมจึงลองแกะเคสออกเพื่อเชื่อมกับ Serial Port ของเราเตอร์ โดยตั้ง Baudrate ที่ 115200

รูปบอร์ด P660HN-T1A
ฮาร์ดแวร์ของเราเตอร์รุ่นนี้จัดว่าประสิทธิภาพสูงอยู่ โดยมีรายละเอียดตามตารางครับ


ตารางรายการฮาร์ดแวร์
รายการ ชื่อ
SoC TrendChip TC3162U-LQ128G
Flash MX25L6405D SPI Flash 8MiB
Ram Winbound W9825G6JH-6 32MiB
Ethernet TrendChip TC2206F 10/100
Wireless Ralink RT3390L Wireless b/g/n
ADSL TrendChip TC3086

จากที่ผมพิมพ์คำสั่งเช็คดูพบว่าเราเตอร์ไม่บูตเนื่องจากเฟิร์มแวร์เสียหายบางส่วนตัว bootloader ไม่ให้ boot เพราะค่า crc ผิดพลาด ผมบังคับให้เราเตอร์บูตโดยพิมพ์คำสั่ง "go" ใน bootloader หลังจากนั้นรอเราเตอร์บูตเข้า linux ถึงตอนนี้ผมสามารถ telnet เข้าไปได้แล้วแต่ยังเข้า config ใน web interface ได้ พอเช็คดูจึงรู้ว่า process ที่ทำงาน web server ที่ชื่อว่า boa ไม่ทำงาน ผมลองสั่ง run คำสั่ง boa แต่ก็ขึ้น error

ว่าไฟล์บางตัวมีปัญหา จึง start web server ไม่ได้ ทางแก้ต่อมาที่คิดได้คือ ลงเฟิร์มแวร์ใหม่ แต่จะทำยังไงเพราะหน้าเว็บเข้าไม่ได้ ผมได้ลองอยู่หลายวิธี เช่น ลองใช้คำสั่งใน bootloader แต่ก็ทำไม่ได้เพราะไม่รู้ว่าแต่ละคำสั่งใช้ยังไง ต่อมาก็ลองโดยใช้ tftp ดึงเฟิร์มแวร์เข้าเราเตอร์ แล้วสั่งเขียนเฟิร์มแวร์โดยคำสั่ง mtd แต่ก็ขึ้นข้อผิดพลาด วิธีนี้จึงใช้ไม่ได้

ผมได้หาข้อมูลจาก google จนมาพบอีกวิธีโดยใช้ ftp โดยทำดังนี้

  1. เข้า command promt 
  2. ผมเก็บเฟิร์มแวร์ไว้ที่ C:\Users\sun89\Desktop\340ULM0b25 ต้อง cd เข้าไปโดยเรียกใช้ดังนี้ "cd C:\Users\sun89\Desktop\340ULM0b25"
  3. พิมพ์คำสั่ง ftp 192.168.1.1
  4. กรอก user name และ password ซึ่งก็คือ admin,password
  5. เมื่อขึ้น ftp> ให้พิมพ์คำสั่ง put 340ULM0b25.bin image ;340ULM0b25.bin คือชื่อเฟิร์มแวร์ รอจนได้ผลลัพธ์ตามรูปด้านล่างเป็นอันเสร็จสิ้น
ผลลัพธ์
หลังจากเสร็จพบว่าสามารถเข้าไป config ทาง web interface ได้ปกติดี จึงขอจบการรายงานเพียงเท่านี้ครับ

Web Interface
แหล่งข้อมูล