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 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.