├── config.mk.nanopi-m1 ├── config.mk.rock64 ├── config.mk.nanopi-neo ├── config.mk.orangepi-2 ├── config.mk.orangepi-one ├── config.mk.nanopi-m1-plus ├── config.mk.orangepi-zero ├── config.mk.rock-pi-e ├── config.mk.nanopi-r2s ├── config.mk.roc-cc-rk3328 ├── config.mk.libretech-all-h3-cc └── README.md /config.mk.nanopi-m1: -------------------------------------------------------------------------------- 1 | BOARD = generic 2 | ARCH = arm 3 | UBOOT = nanopi-m1 4 | PLATFORM = v2-hdmiusb 5 | STAGES = __init__ os pikvm-repo watchdog ro pikvm pikvm-image __cleanup__ 6 | REPO_URL = http://mirror.archlinuxarm.org 7 | BUILDER_URL = https://github.com/Yura80/pi-builder 8 | HOSTNAME = pikvm 9 | TIMEZONE = America/New_York 10 | CARD_DATA_FS_TYPE = ext4 11 | PIKVM_REPO_URL = https://raw.githubusercontent.com/Yura80/pikvm-repo/main 12 | PIKVM_REPO_KEY = 39CCCE14BFBB5D69 -------------------------------------------------------------------------------- /config.mk.rock64: -------------------------------------------------------------------------------- 1 | BOARD = generic 2 | ARCH = aarch64 3 | UBOOT = rock64 4 | PLATFORM = v2-hdmiusb 5 | STAGES = __init__ os pikvm-repo watchdog ro pikvm pikvm-image __cleanup__ 6 | REPO_URL = http://mirror.archlinuxarm.org 7 | BUILDER_URL = https://github.com/Yura80/pi-builder 8 | HOSTNAME = pikvm 9 | TIMEZONE = America/New_York 10 | CARD_DATA_FS_TYPE = ext4 11 | PIKVM_REPO_URL = https://raw.githubusercontent.com/Yura80/pikvm-repo/main 12 | PIKVM_REPO_KEY = 39CCCE14BFBB5D69 -------------------------------------------------------------------------------- /config.mk.nanopi-neo: -------------------------------------------------------------------------------- 1 | BOARD = generic 2 | ARCH = arm 3 | UBOOT = nanopi-neo 4 | PLATFORM = v2-hdmiusb 5 | STAGES = __init__ os pikvm-repo watchdog ro pikvm pikvm-image __cleanup__ 6 | REPO_URL = http://mirror.archlinuxarm.org 7 | BUILDER_URL = https://github.com/Yura80/pi-builder 8 | HOSTNAME = pikvm 9 | TIMEZONE = America/New_York 10 | CARD_DATA_FS_TYPE = ext4 11 | PIKVM_REPO_URL = https://raw.githubusercontent.com/Yura80/pikvm-repo/main 12 | PIKVM_REPO_KEY = 39CCCE14BFBB5D69 -------------------------------------------------------------------------------- /config.mk.orangepi-2: -------------------------------------------------------------------------------- 1 | BOARD = generic 2 | ARCH = arm 3 | UBOOT = orangepi-2 4 | PLATFORM = v2-hdmiusb 5 | STAGES = __init__ os pikvm-repo watchdog ro pikvm pikvm-image __cleanup__ 6 | REPO_URL = http://mirror.archlinuxarm.org 7 | BUILDER_URL = https://github.com/Yura80/pi-builder 8 | HOSTNAME = pikvm 9 | TIMEZONE = America/New_York 10 | CARD_DATA_FS_TYPE = ext4 11 | PIKVM_REPO_URL = https://raw.githubusercontent.com/Yura80/pikvm-repo/main 12 | PIKVM_REPO_KEY = 39CCCE14BFBB5D69 -------------------------------------------------------------------------------- /config.mk.orangepi-one: -------------------------------------------------------------------------------- 1 | BOARD = generic 2 | ARCH = arm 3 | UBOOT = orangepi-one 4 | PLATFORM = v2-hdmiusb 5 | STAGES = __init__ os pikvm-repo watchdog ro pikvm pikvm-image __cleanup__ 6 | REPO_URL = http://mirror.archlinuxarm.org 7 | BUILDER_URL = https://github.com/Yura80/pi-builder 8 | HOSTNAME = pikvm 9 | TIMEZONE = America/New_York 10 | CARD_DATA_FS_TYPE = ext4 11 | PIKVM_REPO_URL = https://raw.githubusercontent.com/Yura80/pikvm-repo/main 12 | PIKVM_REPO_KEY = 39CCCE14BFBB5D69 -------------------------------------------------------------------------------- /config.mk.nanopi-m1-plus: -------------------------------------------------------------------------------- 1 | BOARD = generic 2 | ARCH = arm 3 | UBOOT = nanopi-m1-plus 4 | PLATFORM = v2-hdmiusb 5 | STAGES = __init__ os pikvm-repo watchdog ro pikvm pikvm-image __cleanup__ 6 | REPO_URL = http://mirror.archlinuxarm.org 7 | BUILDER_URL = https://github.com/Yura80/pi-builder 8 | HOSTNAME = pikvm 9 | TIMEZONE = America/New_York 10 | CARD_DATA_FS_TYPE = ext4 11 | PIKVM_REPO_URL = https://raw.githubusercontent.com/Yura80/pikvm-repo/main 12 | PIKVM_REPO_KEY = 39CCCE14BFBB5D69 -------------------------------------------------------------------------------- /config.mk.orangepi-zero: -------------------------------------------------------------------------------- 1 | BOARD = generic 2 | ARCH = arm 3 | UBOOT = orangepi-zero 4 | PLATFORM = v2-hdmiusb 5 | STAGES = __init__ os pikvm-repo watchdog ro pikvm pikvm-image __cleanup__ 6 | REPO_URL = http://mirror.archlinuxarm.org 7 | BUILDER_URL = https://github.com/Yura80/pi-builder 8 | HOSTNAME = pikvm 9 | TIMEZONE = America/New_York 10 | CARD_DATA_FS_TYPE = ext4 11 | PIKVM_REPO_URL = https://raw.githubusercontent.com/Yura80/pikvm-repo/main 12 | PIKVM_REPO_KEY = 39CCCE14BFBB5D69 -------------------------------------------------------------------------------- /config.mk.rock-pi-e: -------------------------------------------------------------------------------- 1 | BOARD = generic 2 | ARCH = aarch64 3 | UBOOT = rock-pi-e-rk3328 4 | PLATFORM = v2-hdmiusb 5 | STAGES = __init__ os pikvm-repo watchdog ro pikvm pikvm-image __cleanup__ 6 | REPO_URL = http://mirror.archlinuxarm.org 7 | BUILDER_URL = https://github.com/Yura80/pi-builder 8 | HOSTNAME = pikvm 9 | TIMEZONE = America/New_York 10 | CARD_DATA_FS_TYPE = ext4 11 | PIKVM_REPO_URL = https://raw.githubusercontent.com/Yura80/pikvm-repo/main 12 | PIKVM_REPO_KEY = 39CCCE14BFBB5D69 -------------------------------------------------------------------------------- /config.mk.nanopi-r2s: -------------------------------------------------------------------------------- 1 | BOARD = generic 2 | ARCH = aarch64 3 | UBOOT = nanopi-r2s-rk3328 4 | PLATFORM = v2-hdmiusb 5 | STAGES = __init__ os pikvm-repo watchdog ro pikvm pikvm-image __cleanup__ 6 | REPO_URL = http://mirror.archlinuxarm.org 7 | BUILDER_URL = https://github.com/Yura80/pi-builder 8 | HOSTNAME = pikvm 9 | TIMEZONE = America/New_York 10 | CARD_DATA_FS_TYPE = ext4 11 | PIKVM_REPO_URL = https://raw.githubusercontent.com/Yura80/pikvm-repo/main 12 | PIKVM_REPO_KEY = 39CCCE14BFBB5D69 -------------------------------------------------------------------------------- /config.mk.roc-cc-rk3328: -------------------------------------------------------------------------------- 1 | BOARD = generic 2 | ARCH = aarch64 3 | UBOOT = roc-cc-rk3328 4 | PLATFORM = v2-hdmiusb 5 | STAGES = __init__ os pikvm-repo watchdog ro pikvm pikvm-image __cleanup__ 6 | REPO_URL = http://mirror.archlinuxarm.org 7 | BUILDER_URL = https://github.com/Yura80/pi-builder 8 | HOSTNAME = pikvm 9 | TIMEZONE = America/New_York 10 | CARD_DATA_FS_TYPE = ext4 11 | PIKVM_REPO_URL = https://raw.githubusercontent.com/Yura80/pikvm-repo/main 12 | PIKVM_REPO_KEY = 39CCCE14BFBB5D69 -------------------------------------------------------------------------------- /config.mk.libretech-all-h3-cc: -------------------------------------------------------------------------------- 1 | BOARD = generic 2 | ARCH = arm 3 | #UBOOT = libretech-all-h3-cc-h2-plus 4 | UBOOT = libretech-all-h3-cc-h3 5 | PLATFORM = v2-hdmiusb 6 | STAGES = __init__ os pikvm-repo watchdog ro pikvm pikvm-image __cleanup__ 7 | REPO_URL = http://mirror.archlinuxarm.org 8 | BUILDER_URL = https://github.com/Yura80/pi-builder 9 | HOSTNAME = pikvm 10 | TIMEZONE = America/New_York 11 | CARD_DATA_FS_TYPE = ext4 12 | PIKVM_REPO_URL = https://raw.githubusercontent.com/Yura80/pikvm-repo/main 13 | PIKVM_REPO_KEY = 39CCCE14BFBB5D69 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [PI-KVM](https://github.com/pikvm/pikvm) fork for Rock64, NanoPi, Orange Pi and other boards 2 | 3 | This is experimental and unsupported. Some features may not work. 4 | 5 | Pre-built images are available here: https://github.com/Yura80/os/releases 6 | 7 | To make OTG keyboard and mouse work on Rock64 and Libre Computer boards, use an A-to-A USB cable connected to the top left USB port. 8 | 9 | ### Building 10 | 11 | Generate a GPG key-pair if you don't have one already and export it to a public keyserver: 12 | 13 | gpg --full-generate-key 14 | gpg --keyserver keyserver.ubuntu.com --send-key XXXXXXXXXXXXXXXX 15 | 16 | 17 | Clone the repositories: 18 | 19 | git clone https://github.com/Yura80/pikvm-rock64.git 20 | git clone https://github.com/Yura80/os.git 21 | git clone https://github.com/Yura80/packages.git 22 | 23 | Build the packages: 24 | 25 | cd packages 26 | make buildenv BOARD=generic ARCH=aarch64 _REPO_KEY=XXXXXXXXXXXXXXXX _PIBUILDER_REPO=https://github.com/Yura80/pi-builder 27 | make update BOARD=generic ARCH=aarch64 28 | make packages-generic BOARD=generic ARCH=aarch64 _REPO_KEY=XXXXXXXXXXXXXXXX _PIBUILDER_REPO=https://github.com/Yura80/pi-builder 29 | make buildenv BOARD=generic ARCH=arm _REPO_KEY=XXXXXXXXXXXXXXXX _PIBUILDER_REPO=https://github.com/Yura80/pi-builder 30 | make update BOARD=generic ARCH=arm 31 | make packages-generic BOARD=generic ARCH=arm _REPO_KEY=XXXXXXXXXXXXXXXX _PIBUILDER_REPO=https://github.com/Yura80/pi-builder 32 | 33 | 34 | Upload the repository to your web server: 35 | 36 | make upload _REPO_DEST=root@example.com:/var/www/pikvm/ 37 | 38 | Copy the config template for your board: 39 | 40 | cd ../os 41 | cp ../pikvm-rock64/config.mk.rock64 config.mk 42 | 43 | Edit config.mk and set PIKVM_REPO_URL and PIKVM_REPO_KEY to the proper values for the repository on your server. 44 | 45 | Build the image: 46 | 47 | make os 48 | make image 49 | --------------------------------------------------------------------------------