Both sides previous revisionPrevious revisionNext revision | Previous revision |
slackwarearm:virtualization_slackware_aarch64 [2023/11/18 02:51 (UTC)] – [SlackBuilds and Packages] finish up and add post install section header mralk3 | slackwarearm:virtualization_slackware_aarch64 [2023/11/19 19:37 (UTC)] (current) – [SlackBuilds and Packages] fix typos mralk3 |
---|
====== Slackware Aarch64 and Virtualization ====== | ====== Slackware Aarch64 and Virtualization ====== |
| |
<note>Work in progress. See notes [[slackwarearm:development_di_virtualization_aarch64|here]].</note> | Virtualization on the Aarch64 architecture simplifies research, development, and testing. The goal of this document is to aid the user to create a favorable environment without any complicated requirements. The hope is that this will enable more Slackware ARM users to contribute to the project. This guide targets the RockPro64, the Pinebook Pro, and the Honeycomb LX2K hardware models. This same process may work on the Raspberry Pi 4, but remains untested. |
| |
| <note>Work in progress.</note> |
| |
===== Software Requirements ===== | ===== Software Requirements ===== |
* virt-manager as the GUI for local and remote access | * virt-manager as the GUI for local and remote access |
* netcat-openbsd to enable remote connections to libvirt | * netcat-openbsd to enable remote connections to libvirt |
| |
The stock "nc" package (netcat) should be removed from your system to avoid a conflict with netcat-openbsd. | |
===== SlackBuilds and Packages ===== | ===== SlackBuilds and Packages ===== |
| |
You can find the build scripts [[https://slackware.uk/slackwarearm/people/brent/slackware-aarch64-virtualization/virtualization-scripts/|here]] and you can find pre-built packages [[https://slackware.uk/slackwarearm/people/brent/slackware-aarch64-virtualization/pkgs/|here]]. | * The build scripts are [[https://slackware.uk/slackwarearm/people/brent/slackware-aarch64-virtualization/virtualization-scripts/|here]] |
| * Pre-built packages [[https://slackware.uk/slackwarearm/people/brent/slackware-aarch64-virtualization/pkgs/|here]]. |
| |
It is recommended that the packages are rebuilt often. The current package set was built on the Aarch64 port of Slackware-current and the software is constantly upgraded in Slackware-current. What works now, may not work tomorrow. | In the future the pre-built packages will become outdated and you will need to rebuild the packages with the included build scripts. The current package set was built on the Aarch64 port of Slackware-current. The software is constantly upgraded in Slackware-current. What works now, may not work tomorrow. It is recommended that the packages are rebuilt often as an exercise for the user. |
| |
The whole bundle can be downloaded from the Slackware.uk public mirror like so: | <note tip>You can use your favorite package manager for SlackBuilds.org to automate the build installation. That is beyond the scope of this document.</note> |
| |
| The whole bundle can be downloaded from the Slackware.uk public mirror like so: |
<code>$ mkdir -p /tmp/slackware-aarch64-virtualization | <code>$ mkdir -p /tmp/slackware-aarch64-virtualization |
$ cd /tmp/slackware-aarch64-virtualization | $ cd /tmp/slackware-aarch64-virtualization |
$ rsync -Paav -n slackware.uk::slackwarearm/people/brent/slackware-aarch64-virtualization/ .</code> | $ rsync -Paav slackware.uk::slackwarearm/people/brent/slackware-aarch64-virtualization/ .</code> |
| |
Then enter the directory if you are not already in it: | Then enter the directory if you are not already in it: |
| <code>cd /tmp/slackware-aarch64-virtualization/virtualization-scripts</code> |
| |
<code>cd /tmp/slackware-aarch64-virtualization</code> | Verify the SlackBuild scripts are all marked executable. |
| <code>chmod -v +x arm/build */arm/build */*SlackBuild tools/refresh.source</code> |
Verify the SlackBuild scripts and arm/build scripts are all marked executable. | |
| |
<code>chmod -v +x arm/build */arm/build */*SlackBuild</code> | |
| |
<note important>Make sure you remove the vanilla Slackware package of netcat. It is named //nc// and can be removed easily with //removepkg//. This package is swapped out for //netcat-openbsd// to enable virt-manager and libvirt to communicate when virt-manager is connected remotely to a virtual machine host system.</note> | <note important>Make sure you remove the vanilla Slackware package of netcat. It is named //nc// and can be removed easily with //removepkg//. This package is swapped out for //netcat-openbsd// to enable virt-manager and libvirt to communicate when virt-manager is connected remotely to a virtual machine host system.</note> |
<code>removepkg nc</code> | <code>removepkg nc</code> |
| |
Execute the build script in the root of the tree: | To verify the checksum of existing source archives without having to download them again: |
| <code>CHECK=1 REFRESH=0 ./tools/refresh.source </code> |
| |
| Output should look similar to: |
| <code>spice-protocol-0.14.4.tar.xz: OK |
| spice-0.15.1.tar.bz2: OK |
| spice-gtk-0.42.tar.xz: OK |
| gtk-vnc-1.3.1.tar.xz: OK |
| lloyd-yajl-2.1.0-0-ga0ecdde.tar.gz: OK |
| libvirt-9.1.0.tar.xz: OK |
| libvirt-python-9.1.0.tar.gz: OK |
| libvirt-glib-4.0.0.tar.xz: OK |
| osinfo-db-tools-1.10.0.tar.xz: OK |
| osinfo-db-20230308.tar.xz: OK |
| libosinfo-1.10.0.tar.xz: OK |
| virt-manager-4.1.0.tar.gz: OK |
| libmd-1.1.0.tar.xz: OK |
| libbsd-0.11.7.tar.xz: OK |
| netcat-openbsd-7.3_1.tar.gz: OK |
| qemu-7.2.1.tar.xz: OK |
| </code> |
| |
| <note tip> |
| Update the SlackBuilds using newer source archives by editing arm/build and the download.info files in each sub directory. To download the source code for each build script use the utility in the tools/ directory: |
| <code>CHECK=0 REFRESH=1 ./tools/refresh.source </code> |
| </note> |
| |
| Execute the build script in the root of the tree: |
<code>./arm/build</code> | <code>./arm/build</code> |
| |
| |
===== Post Installation ===== | ===== Post Installation ===== |
TODO: | TODO: screen shots |
| |
| Configure system to start the Libvirt daemon during system boot. |
| |
| <code>chmod -v +x /etc/rc.d/rc.libvirt /etc/rc.d/rc.local |
| vim /etc/rc.d/rc.local </code> |
| |
| Add in rc.local |
| <code> |
| if [ -x /etc/rc.d/rc.libvirt ]; then |
| /etc/rc.d/rc.libvirt start |
| fi |
| </code> |
| |
| To start the daemon without restarting your machine: |
| <code>/etc/rc.d/rc.libvirt start</code> |
| |
| ===== Manage Graphically ===== |
| TODO: screen shots |
| |
| Your virtual machine host can be a x86, x86_64, or aarch64. Other architectures were not tested. It can be accessed remotely on your local network through the virt-manager graphical environment on your Aarch64 machine. It is all interchangeably the same scenario for each architecture. On 32 bit ARM, its possible to use just Virt-manager to access other machines running qemu virtual machines. |
| |