我有一个 D-LINK DAP-1360 WiFi 接入点(硬件版本 F2),似乎已变砖。我可以通过 RX 和 TX 端口以及screen
使用screen /dev/ttyACM0 115200
命令的会话进行终端访问。
以下是我从 RX/TX 端口获得的终端上可用的命令D-LINK DAP-1360
:
RTL8196# ?
? - alias for 'help'
base - print or set address offset
booth - boot kernel from host
bootm - boot application image from memory
cmp - memory compare
cp - memory copy
crc32 - checksum calculation
erase - erase FLASH memory
flinfo - print FLASH memory information
flitem - print item information on FLASH memory
go - start application at address 'addr'
help - print online help
ifcfg - Set the Ethernet interface up or down
loadb - load binary file over serial line (kermit mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
modify_sysc - sysc modify
mtest - simple RAM test
mw - memory write (fill)
nm - memory modify (constant address)
protect - enable or disable FLASH write protection
reg - read[write] register at address 'addr'
reset - Perform RESET of the CPU
saveb - download BIN image via network using TFTP protocol and save it to flash
saves - save image file over serial line (kermit mode)
savet - download IMG image via network using TFTP protocol and save it to flash
tftp - download image via network using TFTP protocol
unlzma - decompress code with LZMADecoder
version - print monitor version
RTL8196#
我尝试使用“savet”命令更新固件,将原始固件从 tftp 服务器传输到设备,但没有成功。
RTL8196# savet 192.168.1.2 dap612_03.img
TFTP from server 192.168.1.2; our IP address is 192.168.1.1
Filename 'dap612_03.img'.
Load address: 0x80001000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
################################################################
done
Bytes transferred = 3654824 (37c4a8 hex)
Erasing ........................................................
Burning .......................................................
Done
System update completely! Restarting system!
Booting...
TBS bootloader V1.0 (Dec 13 2018 - 16:29:10)
DRAM: 32 MB
Flash: 4 MB
The config data has lost!
Can't get system configuration.Use default vlaue.
init ehternet...
IP: 192.168.1.1 MAC: 00:02:03:04:05:06
IN: eth_init...
Hit Space or Enter key to stop autoboot: 0
out : abortboot
Can't found system configuration! Please use "bootm addr" command.
IN: eth_init...
RTL8196#
我所拥有的硬件版本的原始固件版本DAP-1360_fw_revf_612eub03_EU_en_20181211.zip
可以在这里下载,最新版本可以在这里下载。我尝试过其他版本的固件但没有成功。
命令bootm
失败:
RTL8196# bootm 0x80001000
##failed!
该命令的输出flinfo
是:
RTL8196# flinfo
Bank # 1: Spi flash ID: 0xef4016
Size: 4 MB in 64 Sectors
Sector Start Addresses:
BFC00000 BFC10000 BFC20000 BFC30000 BFC40000
BFC50000 BFC60000 BFC70000 BFC80000 BFC90000
BFCA0000 BFCB0000 BFCC0000 BFCD0000 BFCE0000
BFCF0000 BFD00000 BFD10000 BFD20000 BFD30000
BFD40000 BFD50000 BFD60000 BFD70000 BFD80000
BFD90000 BFDA0000 BFDB0000 BFDC0000 BFDD0000
BFDE0000 BFDF0000 BFE00000 BFE10000 BFE20000
BFE30000 BFE40000 BFE50000 BFE60000 BFE70000
BFE80000 BFE90000 BFEA0000 BFEB0000 BFEC0000
BFED0000 BFEE0000 BFEF0000 BFF00000 BFF10000
BFF20000 BFF30000 BFF40000 BFF50000 BFF60000
BFF70000 BFF80000 BFF90000 BFFA0000 BFFB0000
BFFC0000 BFFD0000 BFFE0000 BFFF0000
该命令的输出flitem
是:
RTL8196# flitem
Dump part 0:
Item tbs_app_cfg locate at 0xbfc10002, length=0x11, flag=00, CRC=OK
Item llconfig locate at 0xbfc10018, length=0xf1, flag=00, CRC=OK
Item tbs_app_cfg locate at 0xbfc1010e, length=0x11, flag=00, CRC=OK
Item llconfig locate at 0xbfc10124, length=0xf1, flag=00, CRC=OK
Item tbs_app_cfg locate at 0xbfc1021a, length=0x11, flag=00, CRC=OK
Item llconfig locate at 0xbfc10230, length=0xf1, flag=00, CRC=OK
Item tbs_app_cfg locate at 0xbfc10326, length=0x11, flag=00, CRC=OK
Item llconfig locate at 0xbfc1033c, length=0xf1, flag=00, CRC=OK
Item tbs_app_cfg locate at 0xbfc10432, length=0x11, flag=00, CRC=OK
Item llconfig locate at 0xbfc10448, length=0xf1, flag=00, CRC=OK
Item tbs_app_cfg locate at 0xbfc1053e, length=0x11, flag=00, CRC=OK
Item llconfig locate at 0xbfc10554, length=0xf1, flag=00, CRC=OK
Item tbs_app_cfg locate at 0xbfc1064a, length=0x11, flag=11, CRC=OK
Item llconfig locate at 0xbfc10660, length=0xf1, flag=11, CRC=OK
Item �������������������� locate at 0xbfc10756, length=0xffff, flag=ff, CRC=BAD
Dump part 1:
Item �������������������� locate at 0xbfc20002, length=0xffff, flag=ff, CRC=BAD
固件的输出binwalk -e dap.img
给出以下文件和目录:
$ ls -lah
total 9,7M
drwxrwxr-x 4 username username 4,0K jul 24 00:40 .
drwxrwxr-x 3 username username 4,0K jul 24 00:40 ..
-rw-rw-r-- 1 username username 2,4M jul 24 00:40 1174A4.squashfs
-rw-rw-r-- 1 username username 3,8M jul 24 00:40 A4
-rw-rw-r-- 1 username username 3,5M jul 24 00:40 A4.7z
drwxrwxr-x 13 username username 4,0K jul 24 00:40 squashfs-root
drwxrwxr-x 13 username username 4,0K jul 24 00:40 squashfs-root-0
$ cd squashfs-root
$ ls -lah
total 52K
drwxrwxr-x 13 username username 4,0K jul 24 00:40 .
drwxrwxr-x 4 username username 4,0K jul 24 00:40 ..
drwxrwxr-x 2 username username 4,0K jan 14 2023 bin
drwxrwxr-x 5 username username 4,0K jan 14 2023 dev
drwxrwxr-x 6 username username 4,0K jan 14 2023 etc
drwxrwxr-x 3 username username 4,0K jan 14 2023 lib
drwxrwxr-x 2 username username 4,0K jan 14 2023 mnt
lrwxrwxrwx 1 username username 3 jan 14 2023 pool -> var
drwxrwxr-x 2 username username 4,0K jan 14 2023 proc
drwxrwxr-x 2 username username 4,0K jan 14 2023 root
drwxrwxr-x 2 username username 4,0K jan 14 2023 sbin
drwxrwxr-x 2 username username 4,0K jan 14 2023 sys
lrwxrwxrwx 1 username username 9 jul 24 00:40 tmp -> /dev/null
drwxrwxr-x 7 username username 4,0K jan 14 2023 usr
drwxrwxr-x 2 username username 4,0K jul 24 00:51 var
$ cd etc/
$ ls -lah
total 256K
drwxrwxr-x 6 username username 4,0K jan 14 2023 .
drwxrwxr-x 13 username username 4,0K jul 24 00:40 ..
drwxrwxr-x 2 username username 4,0K jan 14 2023 ath
-rw-rw-r-- 1 username username 70K jan 14 2023 config_full.xml
-rwxrwxr-x 1 username username 88K jan 14 2023 config.xml
lrwxrwxrwx 1 username username 25 jan 14 2023 dhcp6c.conf -> ../var/dhcpv6/dhcp6c.conf
lrwxrwxrwx 1 username username 25 jan 14 2023 dhcp6s.conf -> ../var/dhcpv6/dhcp6s.conf
lrwxrwxrwx 1 username username 18 jan 14 2023 dproxy.conf -> ../var/dproxy.conf
-rwxrwxr-x 1 username username 647 jan 14 2023 functions.sh
-rw-rw-r-- 1 username username 51 jan 14 2023 group
-rw-rw-r-- 1 username username 41 jan 14 2023 gshadow
-rw-rw-r-- 1 username username 17 jan 14 2023 host.conf
lrwxrwxrwx 1 username username 12 jan 14 2023 hosts -> ../var/hosts
lrwxrwxrwx 1 username username 21 jan 14 2023 igmpproxy.conf -> ../var/igmpproxy.conf
lrwxrwxrwx 1 username username 17 jan 14 2023 inetd.conf -> ../var/inetd.conf
drwxrwxr-x 3 username username 4,0K jan 14 2023 init.d
-rw-rw-r-- 1 username username 61 jan 14 2023 inittab
lrwxrwxrwx 1 username username 15 jan 14 2023 iproute2 -> ../var/iproute2
lrwxrwxrwx 1 username username 11 jan 14 2023 mtab -> ../var/mtab
-rw-rw-r-- 1 username username 130 jan 14 2023 passwd
-rwxrwxr-x 1 username username 108 jan 14 2023 pc.ini
drwxrwxr-x 2 username username 4,0K jul 24 00:40 ppp
lrwxrwxrwx 1 username username 17 jan 14 2023 radvd.conf -> ../var/radvd.conf
lrwxrwxrwx 1 username username 18 jan 14 2023 resolv.conf -> ../var/resolv.conf
-rw-rw-r-- 1 username username 164 jan 14 2023 services
-rw-rw-r-- 1 username username 235 jan 14 2023 shadow
lrwxrwxrwx 1 username username 19 jan 14 2023 siproxd.conf -> ../var/siproxd.conf
-rwxrwxr-x 1 username username 279 jan 14 2023 siproxd.tplt
lrwxrwxrwx 1 username username 13 jan 14 2023 TZ -> ../var/tmp/TZ
lrwxrwxrwx 1 username username 18 jan 14 2023 udhcpd.conf -> ../var/udhcpd.conf
lrwxrwxrwx 1 username username 21 jan 14 2023 upnpd.conf -> ../var/miniupnpd.conf
-rw-rw-r-- 1 username username 30K jan 14 2023 var.tar
drwxrwxr-x 2 username username 4,0K jan 14 2023 wps
根据您提供的引导加载程序输出,固件升级过程似乎已完成,但是设备无法找到系统配置。发生这种情况的原因有几个。
固件文件可能已损坏或格式不适合您的设备。当您使用
savet
命令传输固件时,系统似乎接受了它,擦除闪存,并将新固件写入闪存。但是当它尝试从这个新固件启动时,它报告找不到系统配置并且启动失败。您使用的内存地址也可能不正确,或者设备的闪存以某种方式损坏。
您可以采取以下几个步骤来解决此问题:
尝试不同的固件文件:您提到尝试多个版本的固件,但请确保使用适合您的硬件版本的正确版本。如果您使用的固件文件已损坏,请尝试重新下载固件文件。
确保固件文件格式正确:您的 D-Link 设备可能需要特定格式的固件文件。固件可能需要采用原始格式,而不是您正在使用的 .img 格式。
binwalk
您可能需要使用您似乎熟悉的工具从 .img 文件转换或提取正确的文件。检查闪存问题:
flinfo
和flitem
命令提供有关闪存的信息。从你的输出来看,似乎可能存在一些坏扇区。您可能需要进一步调查这一点。联系 D-Link 支持:如果您仍然无法恢复设备,最好联系 D-Link 的支持。他们可能拥有未公开提供的其他资源或固件恢复方法。
最后一件事,不建议将不同版本的固件强制安装到设备中,因为这可能会永久损坏设备。请始终确保您使用的是专为您的特定设备型号和版本设计的固件版本。
我希望这有帮助!如果您需要进一步的帮助,请告诉我。
我找不到修复它的方法。我把它扔到垃圾桶里以回收它。不管怎么说,还是要谢谢你。