├── .gitignore ├── .travis.yml ├── Makefile ├── Dockerfile └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | bin/ 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | 3 | services: 4 | - docker 5 | 6 | stages: 7 | - debian 8 | 9 | jobs: 10 | include: 11 | - stage: debian 12 | language: c 13 | script: make 14 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all 2 | .PHONY: package 3 | 4 | PWD := $(shell pwd) 5 | USER := $(shell whoami) 6 | 7 | all: build package 8 | 9 | package: package-0 package-1 10 | 11 | build: 12 | docker build -t pve-qemu-unlocked . 13 | 14 | package-0: 15 | mkdir -p bin/ 16 | chown ${USER}:docker -R bin/ 17 | docker run -v ${PWD}/bin/:/mnt/ -it pve-qemu-unlocked bash -c 'cd /opt/pve-qemu/; cp *.deb /mnt/' 18 | 19 | package-1: 20 | BUILD_NAME=$(shell find bin/ -name "*.deb" | grep -v dbg | sed "s/^bin.//;s/\.deb//") && \ 21 | mv bin $${BUILD_NAME} && \ 22 | tar -czvf $${BUILD_NAME}.tar.gz $${BUILD_NAME} && \ 23 | rm -rf $${BUILD_NAME} && \ 24 | mkdir bin/ && \ 25 | mv $${BUILD_NAME}.tar.gz bin/ 26 | 27 | shell: 28 | @docker run -it pve-qemu-unlocked bash 29 | 30 | kill: 31 | @docker stop $(shell docker ps -a -q) 2>/dev/null || echo 32 | 33 | clean: 34 | rm -rf bin/ 35 | @docker stop $(shell docker ps -a -q) 2>/dev/null || echo > /dev/null 36 | @docker rm $(shell docker ps -a -q) 2>/dev/null || echo > /dev/null 37 | @docker rmi $(shell docker images -a -q) 2>/dev/null || echo > /dev/null 38 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stable 2 | RUN apt-get update 3 | RUN apt-get install -y git 4 | RUN mkdir -p /opt/ 5 | WORKDIR /opt/ 6 | RUN git clone git://git.proxmox.com/git/pve-qemu 7 | WORKDIR /opt/pve-qemu/ 8 | RUN git checkout 284d3b2cabef10362a574efe209d1d406f351dfa 9 | RUN apt-get install -y make \ 10 | wget \ 11 | curl \ 12 | sed \ 13 | nano \ 14 | build-essential \ 15 | autotools-dev \ 16 | check \ 17 | debhelper \ 18 | libacl1-dev \ 19 | libaio-dev \ 20 | libcap-dev \ 21 | libcurl4-gnutls-dev \ 22 | libfdt-dev \ 23 | libglusterfs-dev \ 24 | libgnutls28-dev \ 25 | libiscsi-dev \ 26 | libjemalloc-dev \ 27 | libjpeg-dev \ 28 | libnuma-dev \ 29 | libpci-dev \ 30 | libpixman-1-dev \ 31 | librbd-dev \ 32 | libsdl1.2-dev \ 33 | libseccomp-dev \ 34 | libspice-protocol-dev \ 35 | libspice-server-dev \ 36 | libusb-1.0-0-dev \ 37 | libusbredirparser-dev \ 38 | python3-minimal \ 39 | python3-sphinx \ 40 | quilt texi2html \ 41 | texinfo \ 42 | uuid-dev \ 43 | xfslibs-dev \ 44 | lintian 45 | RUN sed -i '/.*--target-list=.*/d' debian/rules 46 | RUN make -j8 47 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # pve-qemu-unlocked 2 | 3 | Proxmox does not support anything other than `x86`/`x86_x64` even though `qemu` which is in it's backend supports to emulate MANY other CPU architectures. 4 | 5 | Since I felt this is a disservice to `proxmox` and `qemu` as great technologies, I've decided to start fixing it. 6 | 7 | This `Dockerfile` and `make` script will build your own version of `pve-qemu` and remove the `--target-list` configure options enabling all supported CPUs and emulations for the proxmox `pve-qemu` DEB package. 8 | 9 | Since this is done with docker you need not worry about any other dependancies other than docker to build the DEB packages you need. 10 | 11 | # Features to Come 12 | - Setup Travis CI to serve builds to everyone without having to compile their own 13 | - Modifications to the UI to allow all other CPUs supported by `qemu` 14 | 15 | # Dependancies 16 | - Docker 17 | 18 | # Build DEB Packages 19 | ```bash 20 | git clone https://github.com/lillypad/pve-qemu-unlocked.git 21 | cd pve-qemu-unlocked/ 22 | make 23 | ``` 24 | 25 | __NOTE:__ If you do not specify `-j#` in the `Dockerfile` the build will take up more than 32GB of RAM. If you want faster builds and you have more RAM, you can modify this to your specific needs. 26 | 27 | `DEB` fills will be stored in `bin/` 28 | 29 | # Installation 30 | 31 | There will be a debug as well as a regular build. 32 | 33 | You will want to use `dpkg` to install the non-debug version on proxmox unless you are debugging or developing. 34 | --------------------------------------------------------------------------------