Get Informed out of Data

Full width home advertisement

Raspbian

DataScience

Post Page Advertisement [Top]

Open and cheap DIY IP-KVM based on Raspberry Pi

Open and cheap DIY IP-KVM based on Raspberry Pi

A very simple and fully functional IP-KVM based on Raspberry Pi that you can make with your own hands. This device will help you to manage your server or workstation remotely, regardless of the operating system's health. You can fix any problem, configure the BIOS and even reinstall the OS using the CD-ROM and Flash Drive emulator.

Fully-featured and modern IP-KVM

  • Cheaper, but better than commercial solutions
    You will spend from $30 to $100 depending on what you want. Even the most expensive configuration will be cheaper than a commercial IP-KVM for $500.
  • Easy to build
    A ready-to-use OS that can be assembled just using make build and installed to SD-card using make install. Hardware can be maked in half an hour without soldering.
  • The widest hardware support
    There are many ways to build KVM. You can use the video capture device with CSI-2 or USB interface; the Raspberry Pi of different models: 2, 3, 4 or Zero W. Any build is supported, and Pi-KVM implements its maximum possible set of features.
  • Very low latency
    ~100 milliseconds of video latency. This is the smallest delay of all existing solutions.
  • Extra lightweight and fancy Web-UI
    No weird proprietary clients. No ugly Java applets. Just use your favorite browser to connect to Pi-KVM. Oh, and no flash plugin either!
  • Keyboard and mouse
    The mouse works directly in the browser. And the keyboard emulator supports displaying the key LEDs state.
  • Mass Storage Drive
    On the Raspberry Pi 4 and Zero Pi-KVM can emulate the virtual CD-ROM or Flash Drive. You can upload a live image and boot your server from it.
  • ATX power management
    With a very simple circuit that can be assembled on a breadboard you can control the power of your server using the ATX buttons on the motherboard.
  • Security
    You can open Pi-KVM to the Internet and be sure that no one will get access to your server without password. SSL encryption protect the traffic from being intercepted by third parties.
  • Local monitoring
    Pi-KVM monitors the health of the Raspberry Pi board and will tell you if it's too hot or not enough power.

Production-ready

  • Linux-based embedded OS
    The Pi-KVM OS is based on Arch Linux ARM. It can be customized for any needs. Thousands of pre-built binary packages at your service. Update with a single command!
  • Read-only filesystem
    By default, the OS runs in read-only mode, as an embedded system should. You don't have to worry about the memory card being damaged due to a sudden power outage.
  • VNC server
    The managed server and its BIOS can be accessed using a regular VNC client which supports JPEG compression.
  • IPMI BMC
    Use ipmitoolipmiutil or any thing in your network infrastructure that supports IPMI to monitor and manage the server's power.
  • Wake-on-LAN
    Pi-KVM can be configured to power up a managed server using WoL. This will be available in the Web menu.
  • Extensible authorization methods
    Multiple Pi-KVMs can be configured to use a common authorization service. You can also use PAM and its rich authorization mechanisms to integrate Pi-KVM into your existing auth infrastructure.
  • Macro scripts
    If you need to perform repetitive actions on your server (or on different servers), you can record the macro with keyboard & mouse actions and play it back many times.

Building OS

Pi-KVM OS is based on Arch Linux ARM and contains all required packages and configs to work. To build the OS you will need any Linux machine with a fresh Docker (>= 1:19) with enabled privileged mode (for fdisk and some other commands, check Makefiles if you don't trust us :).

  1. For a clean OS (Like Ubuntu 18) you need to install and configure docker (after adding user in the docker group a relogin is needed), as well as git and make.

    [[email protected] ~]$ sudo apt-get install git make curl binutils -y
    [[email protected] ~]$ curl -fsSL https://get.docker.com -o get-docker.sh
    [[email protected] ~]$ sudo sh get-docker.sh
    [[email protected] ~]$ sudo usermod -aG docker $USER

    Re-login to apply changes.

  2. Checkout build toolchain:

    [[email protected] ~]$ git clone https://github.com/pikvm/os
    [[email protected] ~]$ cd os
  3. Determine the target hardware configuration (platform). Choose the board (BOARD=rpi4 for Raspberry Pi 4 or BOARD=zerowBOARD=rpi2BOARD=rpi3 for other options). Next, choose the platform: PLATFORM=v2-hdmi for RPi4 or ZeroW; PLATFORM=v0-hdmi for RPi 2 or 3. Other options are for legacy or specialized Pi-KVM boards (WIP).

  4. Create the config file config.mk for the target system. You must specify the path to the SD card on your local computer (this will be used to format and install the system) and the version of your Raspberry Pi and platform. You can change other parameters as you wish. Please note: if your password contains the # character, you must escape it using a backslash like ROOT_PASSWD = pass\#word.

    [[email protected] os]$ cat config.mk
    # rpi3 for Raspberry Pi 3; rpi2 for the version 2, zerow for ZeroW
    BOARD = rpi4
    
    # Hardware configuration
    PLATFORM = v2-hdmi
    
    # Target hostname
    HOSTNAME = pikvm
    
    # ru_RU, etc. UTF-8 only
    LOCALE = en_US
    
    # See /usr/share/zoneinfo
    TIMEZONE = Europe/Moscow
    
    # For SSH root user
    ROOT_PASSWD = root
    
    # Web UI credentials: user=admin, password=<this>
    WEBUI_ADMIN_PASSWD = admin
    
    # IPMI credentials: user=admin, password=<this>
    IPMI_ADMIN_PASSWD = admin
    
    # SD card device
    CARD = /dev/mmcblk0

    If you want to configure wifi (for ZeroW board for example) you must add these lines to config.mk:

    WIFI_ESSID = "my-network"
    WIFI_PASSWD = "[email protected]$$word"
  5. Build OS. It may take about one hour depending on your Internet connection:

    [[email protected] os]$ make os
  6. Put SD card into card reader and install OS (you should disable automounting before: systemctl stop udisk2 or something like that):

    [[email protected] os]$ make install
  7. After installation remove the SD card and insert it into your RPi. Turn on the power. RPi will try to get ad IP address using DHCP on your LAN. It will be available via SSH.

  8. If you can't find the device's address, try using the following command:

    [[email protected] os]$ make scan
  9. Only for v0. Now you need to flash Arduino. This can be done using your RPi. Before starting this operation, disconnect the RESET wire from Arduino, otherwise the firmware will not be uploaded. Connect the Arduino and RPi with a suitable USB cable. Log in to RPi and upload the firmware. Then connect RESET wire back, disconnect USB and reboot RPi.

Congratulations! Your Pi-KVM will be available via SSH (ssh [email protected]<addr>) and HTTPS (try to open it in a browser at https://<addr>). For HTTPS a self-signed certificate is used by default.

No comments:

Post a Comment

Bottom Ad [Post Page]