Just a few notes regarding recovery of the LinkIt Smart 7688 / LinkIt Smart 7688 Duo devices.
Handbook
Update the firmware with a USB drive
Factory reset
- https://docs.labs.mediatek.com/resource/linkit-smart-7688/en/tutorials/firmware-and-bootloader/factory-reset
- https://en.forum.labs.mediatek.com/t/first-time-to-write-bootloader-to-mt7688/1815
- https://technicallypink.com/2017/01/29/linkit-smart-7688-serial-console-connection/
Access bootloader and kernel console
The Bootloader console and Linux kernel console are configured to serial port UART2 (P8/UART_TXD2 and P9/UART_RXD2) at a baud rate of 57600. This applies to both LinkIt Smart 7688 and LinkIt Smart 7688 Duo.
You can connect to the system console of LinkIt Smart 7688 and LinkIt Smart 7688 Duo development boards by using a Serial (or UART) to USB converter.
Connect the Serial to USB cable to LinkIt Smart 7688’s UART pins:
Converter's RX to P8. Converter's TX to P9. GND to GND.
Connect to the COM port and set baud rate to 57600.
Issues booting with the FTDI connection
Issue: The LinkIt bombs out while booting after printing
"procd: - init -"
to the bootloader console.
Recover via TFTP
- You need to wire a Ethernet Port to the LinkIt
- choose a TFTP-server (e.g. aTFTP)
- Put an imagefile into
/srv/atftp/<IMAGE_NAME>
assign a <FIX_IP> to your machine and start the TFTP serversystemctl start atftpd
. Watch the logsjournalctl -n 100 -u atftpd -f
- connect to the serial and reboot the linkit. The bootloader will lead you to the rest of the procedure:
============================================
Ralink UBoot Version: 4.3.0.0
--------------------------------------------
ASIC 7628_MP (Port5<->None)
DRAM component: 1024 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 128 MBytes
Flash component: SPI Flash
Date:Sep 10 2015 Time:05:56:31
============================================
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768
##### The CPU freq = 580 MHZ ####
estimate memory size =128 Mbytes
RESET MT7628 PHY!!!!!!
GPIOMODE --> 50054404
GPIOMODE2 --> 5540551
Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
7: Load Boot Loader code then write to Flash via Serial.
9: Load Boot Loader code then write to Flash via TFTP.
You choosed 2
0
2: System Load Linux Kernel then write to Flash via TFTP.
Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)
Please Input new ones /or Ctrl-C to discard
Input device IP (10.10.10.123) ==:192.168.26.2
Input server IP (10.10.10.3) ==:192.168.26.1
Input Linux Kernel filename () ==:linkit_duo.img
netboot_common, argc= 3
NetTxPacket = 0x87FB5480
KSEG1ADDR(NetTxPacket) = 0xA7FB5480
NetLoop,call eth_halt !
NetLoop,call eth_init !
Trying Eth0 (10/100-M)
Waitting for RX_DMA_BUSY status Start... done
ETH_STATE_ACTIVE!!
TFTP from server 192.168.26.1; our IP address is 192.168.26.2
Filename 'linkit_duo.img'.
TIMEOUT_COUNT=10,Load address: 0x80100000
Loading: T T T T T T T T T T
Retry count exceeded; starting again
ArpTimeoutCheck
TFTP from server 192.168.26.1; our IP address is 192.168.26.2
Filename 'linkit_duo.img'.
TIMEOUT_COUNT=10,Load address: 0x80100000
Loading: T T T T Got ARP REPLY, set server/gtwy eth addr (3c:97:0e:0f:ca:fc)
Got it
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
########################################
done
Bytes transferred = 4194499 (4000c3 hex)
NetBootFileXferSize= 004000c3
................................................................
................................................................
.
.
Done!
on the atftpd output you would see:
Sep 15 20:59:44 <HOST> atftpd[5874]: socket may listen on any address, including broadcast
Sep 15 20:59:44 <HOST> atftpd[5874]: Serving linkit_duo.img to 192.168.26.2:2860
Sep 15 20:59:44 <HOST> atftpd[5874]: timeout option -> 3
Sep 15 20:59:51 <HOST> atftpd[5874]: Server thread exiting
AVRDUDE Issues
If you compiles the OpenWRT-image for the LinkIt on your own, it might, that you catched a buggy version of AVRDude. I fixed the issue by using an older version. This I did, by manipulating the avrdude-Makefile in the OpenWRT build system. I switched back to version 6.1
openwrt/feeds/packages/utils/avrdude/Makefile
:
PKG_VERSION:=6.1
#PKG_HASH:=0f9f731b6394ca7795b88359689a7fa1fba818c6e1d962513eb28da670e0a196
PKG_HASH:=9e98baca8e57cad402aaa1c7b61c8de750ed4f6fed577f7e4935db0430783d3b