Poor man ILO | IDRAC

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.

Parts needed:

PocketCHIP Poor man ILO

  • 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

Sample output:

[patrick@kivik ~]$ telnet
Connected to  
Escape character is '^]'.

U-Boot SPL 2015.10-00023-g79150b8 (May 13 2016 - 21:52:20)  
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

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)...  
Loading file '/boot/initrd.uimage' to addr 0x44000000 with size 6675354 (0x0065db9a)...  
Loading file '/boot/zImage' to addr 0x42000000 with size 5609280 (0x00559740)...  
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  
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:~$ ^]

telnet> quit  
Connection closed.