New Feature: Telnet based remote management Date: Mon, 28 Jan 2013 18:25:36 +0530  |  Posted by: Anup Patel

We have telnet-based remote management daemon available in Xvisor.

Telnet based management can be:

  • Used as Xvisor remote shell
  • Used in conjunction with a management tool which will translate admin action into Xvisor commands over telnet

In future, we can also have authentication for telnet-based management daemon and use encryption for secured communication.

In addition, we also provide vstelnet library for telnet-based access to guest virtual serial ports.

To quickly try out telnet based management on QEMU, do the following:

  1. Configure Xvisor for Realview-PB-A8 host
    [Terminal0] # cd <xvisor_source>
    [Terminal0] # make ARCH=arm realview-pb-a8-defconfig
    
  2. Enable telnet daemon and vstelnet library from menuconfig
    [Terminal0] # make menuconfig
    [Terminal0] (Select) Library Options -> Network Stack Options -> Network stack support
    [Terminal0] (Select) Library Options -> Vserial telnet library
    [Terminal0] (Select) Daemon Options -> Telnet management daemon
    [Terminal0] Save and exit menuconfig
    
  3. Build Xvisor and Basic Test
    [Terminal0] # make; make -C tests/arm32/realview-pb-a8/basic
    
  4. Combine images using memimg.py
    [Terminal0] # ./tools/scripts/memimg.py -a 0x70010000 -o build/qemu.img \
    build/vmm.bin@0x70010000 build/tests/arm32/realview-pb-a8/basic/arm_test.bin.patched@0x71000000
    
  5. Launch QEMU with host port 4444 redirected to 10.0.2.1:23 and port 4445 redirected to 10.0.2.1:4445
    [Terminal0] # qemu-system-arm -M realview-pb-a8 -display none -serial stdio -kernel \
    ./build/qemu.img -redir tcp:4444:10.0.2.1:23 -redir tcp:4445:10.0.2.1:4445
    
  6. Change IP address of Xvisor for using QEMU user-mode networking
    [Terminal0] XVisor# ipconfig update 10.0.2.1
    
  7. Open new terminal and connect to localhost:4444 to view Xvisor console over telnet
    [Terminal1] # telnet localhost 4444
    
  8. Create telnet access to guest0/uart0 using vstelnet command
    [Terminal1] XVisor# vstelnet create 4445 guest0/uart0
    
  9. Remotely kick guest0
    [Terminal1] XVisor# guest kick 0
    
  10. Again open new terminal and connect to localhost:4445 to view guest0/uart0
    [Terminal2] # telnet localhost 4445
    [Terminal2] ARM Realview PB-A8 Basic Test
    [Terminal2]
    [Terminal2] arm-test # help
    [Terminal2] arm-test # reset
    [Terminal2] arm-test # timer
    
  11. Remotely reset guest0
    [Terminal1] XVisor# guest reset 0; guest kick 0
    [Terminal2] ARM Realview PB-A8 Basic Test
    [Terminal2]
    [Terminal2] arm-test #