[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
slackwarearm:virtualization_slackware_aarch64 [2023/11/18 02:51 (UTC)] – [SlackBuilds and Packages] finish up and add post install section header mralk3slackwarearm:virtualization_slackware_aarch64 [2023/11/19 19:37 (UTC)] (current) – [SlackBuilds and Packages] fix typos mralk3
Line 1: Line 1:
 ====== 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 =====
Line 10: Line 12:
   * 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>
Line 37: Line 37:
 <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>
  
Line 44: Line 70:
  
 ===== 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. 
 + 
 slackwarearm:virtualization_slackware_aarch64 ()