When buying an expensive server you get some kind of way for remote access when the server has made a booboo. I wanted the same thing: to be able to keep connecting to my Raspberry Pi’s when I made a booboo with the network config.
This is my first iteration: just being able to see the console. Next iteration will hopefully add some way to reboot/reset the pi remotely.
- some jumper cables
- some type of esp8266 module (I used a Wemos D1 here)
- Arduino IDE and following example: https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/examples/WiFiTelnetToSerial/WiFiTelnetToSerial.ino
- some kind of thing that has UART (Raspberry PI, Pine64, CHIP, …)
- common sense
- Upload the sketch to the ESP
- Connect the grounds together, connect the RX of one device to the TX of the other. Do this twice.
- Telnet to the ESP
- Boot the other device
[patrick@kivik ~]$ telnet 192.168.1.111 Trying 192.168.1.111... Connected to 192.168.1.111. Escape character is '^]'. U-Boot SPL 2015.10-00023-g79150b8 (May 13 2016 - 21:52:20) 0x00000100 DRAM: 512 MiB CPU: 1008000000Hz, AXI/AHB/APB: 3/2/2 U-Boot 2015.10-00023-g79150b8 (May 13 2016 - 21:52:20 +0000) Allwinner Technology CPU: Allwinner A13 (SUN5I) I2C: ready DRAM: 512 MiB NAND: 8192 MiB DIP: Cape PocketCHIP (0x1) from Next Thing Co. (0x9d011a) detected video-mode 480x272-16@60 not available, falling back to 1024x768-24@60 Setting up a 480x272 lcd console (overscan 0x0) In: serial Out: serial Err: serial Net: usb_ether starting USB... No controllers found Hit any key to stop autoboot: 0 Command 'gpio' failed: Error -22 device nand0 <sunxi-nand.0>, # parts = 5 #: name size offset mask_flags 0: spl 0x00400000 0x00000000 0 1: spl-backup 0x00400000 0x00400000 0 2: uboot 0x00400000 0x00800000 0 3: env 0x00400000 0x00c00000 0 4: UBI 0x1ff000000 0x01000000 0 active partition: nand0,0 - (spl) 0x00400000 @ 0x00000000 defaults: mtdids : none mtdparts: none UBI: attaching mtd1 to ubi0 UBI: scanning is finished UBI: attached mtd1 (name "mtd=4", size 8176 MiB) to ubi0 UBI: PEB size: 2097152 bytes (4096 KiB), LEB size: 2064384 bytes UBI: min./max. I/O unit sizes: 16384/16384, sub-page size 16384 UBI: VID header offset: 16384 (aligned 16384), data offset: 32768 UBI: good PEBs: 2044, bad PEBs: 0, corrupted PEBs: 0 UBI: user volume: 1, internal volumes: 1, max. volumes count: 128 UBI: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 104729146 UBI: available PEBs: 0, total reserved PEBs: 2044, PEBs reserved for bad PEB handling: 40 Loading file '/boot/sun5i-r8-chip.dtb' to addr 0x43000000 with size 23598 (0x00005c2e)... Done Loading file '/boot/initrd.uimage' to addr 0x44000000 with size 6675354 (0x0065db9a)... Done Loading file '/boot/zImage' to addr 0x42000000 with size 5609280 (0x00559740)... Done Kernel image @ 0x42000000 [ 0x000000 - 0x559740 ] ## Loading init Ramdisk from Legacy Image at 44000000 ... Image Name: Image Type: ARM Linux RAMDisk Image (uncompressed) Data Size: 6675290 Bytes = 6.4 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 43000000 Booting using the fdt blob at 0x43000000 Loading Ramdisk to 499a2000, end 49fffb5a ... OK Loading Device Tree to 49999000, end 499a1c2d ... OK Starting kernel ... Loading, please wait... Debian GNU/Linux 8 chip ttyS0 chip login: chip chip Password: chip Last login: Fri Sep 9 19:01:40 UTC 2016 on ttyS0 Linux chip 4.3.0-ntc #1 SMP Wed May 11 21:57:30 UTC 2016 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. chip@chip:~$ chip@chip:~$ ^] telnet> quit Connection closed.