LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Slackware and QEMU (https://www.linuxquestions.org/questions/slackware-14/slackware-and-qemu-4175675769/)

mega-lnx 05-23-2020 02:29 PM

Slackware and QEMU
 
2 Attachment(s)
Hello
I would like to share a project that I have been working on it's called SlackVirt, that includes some custom tools for managing QEMU virtual machines at Slackware.
The project aims to deliver a simple virtualization solution based on Slackware philosophy.
I'm now searching for a place to share it to the community for testing and receive some feedback.
It has about 100MB an ISO that includes the source files and 50MB the install only image.

Didier Spaier 05-24-2020 02:42 PM

Hello,
You could host the source files on GitHub.

mega-lnx 05-25-2020 04:23 PM

Download link
 
I thought about share over dropbox, but I wasn't able before I thought that It was due to connection issues but It was the parameters of the local proxy running inside of the a LXC container of my server instance of SlackVirt a Slackware64 14.2 running a few LXCs.
Here is the link:
https://www.dropbox.com/s/3h59vvyy4h...ource.iso?dl=0
Cheers form my SlackVirt desktop instance of Slackware 14.1 (32-bit), an ancient remade custom machine that I preserve :)

mega-lnx 08-17-2020 07:19 PM

SlackVirt - Documentation (WIP)
 
2 Attachment(s)
Here is some documentation about SlackVirt, a work-in-progress.


SlackVirt QEMU host system

---------------------------
1. Introduction
---------------------------

SlackVirt is a cloud pocket system intended to be simple,
versatile and efficient

SlackVirt isn't a real emulator or virtualization solution, but a
virtualization platform for maintain a Slackware based virtual machine server.
Which includes compatible tools to its aimed Linux distribution that can
handle typical administrative operations on a set of virtualized machines
connected through an ethernet virtualized network.

Slackware do not maintain a strict package dependency list, but according
to some premises it was decided which Slackware package series shall be
installed as following:

- Required: a, ap, l, n
- Recommended: x
- Optional: d, kde, kdei, xfce

NOTE: package series "d" is required if you want to build SlackVirt packages,
such as: qemu and spice-gtk or compiling other softwares.

Nonetheless SlackVirt installer tool will install required packages from a
slackpkg template. Therefore slackpkg is required for the installation
procedure.

SlackVirt includes two qemu packages, such as: qemu-server and qemu-desktop.
They are compiled different according to the premises of each machine type,
been a server and a desktop machine, disabling functions of the generated binary
files allowing them to be independent of some host libraries, therefore making
easy for maintaining the slackvirt host machine.

There are a few sniplets that are compatible to libvirt at least those that
are related to SlackVirt structure and operating mode.

SlackVirt also includes an usrlocal "disk" for the server and the desktop
instances. That can be used to creates img files that can be attached to the
VMs. The set of scripts helps to easily deploy/configure the instances
according:
- server: dhcpd daemons, manipulate LXCs
- desktop: vncserver daemon for different users.


---------------------------
2. Install
---------------------------
Slackware version 14.2

Recommended hardware configuration:
RAM: 2GB
DISK: 14GB ( for SlackVirt server rootfs )
DISK: 16GB ( virtual machine storage )

There are three SlackVirt installation stanzas that can be used according to
the needs, the first one it's static and the other two are volatile.
All stanzas are intended to be used on top of a Slackware machine with few
system modifications, but the last two are less intrusive. But the volatile
installation do not save any changes that you made at SlackVirt system.
1. installing all files to /usr/local ( static )
2. temporary installation at startup over tmpfs /usr/local ( volatile )
3. using a initrd disk ( volatile )

How to install the SlackVirt different stanzas:

Method 1. static: uncompress the slackvirt-142.tar.xz at /usr/local
Method 2. volatile: include at /etc/rc.d/rc.local the following:

Include at /etc/rc.d/rc.local, the following:

#if [ -f /root/slackvirt-usrlocal.tar.xz ]; then
# echo "Unpacking /usr/local ..."
# tar xf /root/slackvirt-usrlocal.tar.xz \
# --strip-components=2 -C /usr/local
#fi

Method 3. volatile: uncompress the slackvirt-core-14.2.tar.xz at /tmp, then execute:
# /tmp/sbin/create-initrd-slackvirt.sh


# installing slackvirt
root@darkstar:/mnt/cdrom# ./installer/slackvirt-install

# using custom kernel
KVERSION=4.14.166 ./installer/slackvirt-install

General system modifications for all SlackVirt installation types:
Include at /etc/rc.d/rc.local, the following:

# if [ -x /usr/local/etc/rc.d/rc.local-slackvirt ]; then
# /usr/local/etc/rc.d/rc.local-slackvirt
# fi

Or if you want to strict the startup time of SlackVirt and keep loggin the
initialization procedure, use this:

# CDATE=$(date +%d%H%Y-%H%M)
# TIMEOUT=300
# if [ -x /usr/local/etc/rc.d/rc.local-slackvirt ]; then
# timeout $TIMEOUT /usr/local/etc/rc.d/rc.local-slackvirt > \
# /var/log/boot-slackvirt$CDATE.log
# fi

Then, make it executable:

# chmod 754 /usr/local/etc/rc.d/rc.local-slackvirt

---------------------------
3. Setup
---------------------------


By default SlackVirt has configured two default computer instances,
a server and a desktop. Let's presume here that SlackVirt intents to
follow the Slackware way/development/educational philosofy.

Defining that SlackVirt, it's just a virtualization host and will be
referenced here as a machine too, the other two computers cited will be
the "server" and the "desktop", having in mind that they are virtual machines.

Therefore the machines, are delivered according to some premises, which are:
- The server, a displayless computer machine, of a data center.
- The desktop, a visual enhanced computer machine, at home.

By default both machines, have serial connections that can be used at
the bootup procedure or/and as normal consoles. However the desktop presents two
graphic cards for enhanced visual experiences, that are not intended to be
done at server machines which used to lacks graphic hardware support.
Slackvirt takes that idea for defining its default machines.

The full characteristcs of the machines can be found at the flat files that
holds it's configurations, which are saved at: /usr/local/etc/slackvirt. The
configuration files just defines the virtual machine hardware and do not
include a bootable disk with a Slackware installation on it. Thereby, it's
required that user perform the system installation.

Let's see some notes about a pratical system configuration.


Creating a qcow2 image:
# qemu-img create -f qcow2 /mnt/hd/slackware/14.2/slackware-14.2.img 15G

Then partitioning the disk with one partition
# fdisk /mnt/hd/disk1.img (n, enter, enter, enter, enter, w)

Creating the file system
# losetup -P loop0 /mnt/hd/disk1.img
# mkfs.ext4 /dev/loop0p1


SlackVirt includes an automated installation procedure to make easy Slackware
system installations. The method can be used, as following:

Automated Slackware install:

# PKG_SERIES="A#AP#D#L#N#" \
# DISK0=/mnt/hd/slackware/14.2/slackware-14.2.img \
# slackware-qemu-vmserver.sh install \
# /usr/local/etc/slackvirt/machines/slackware/slackware-14.2/slackware.qemu

---------------------------
4. Network
---------------------------

SlackVirt default SMs comes with three network IF cards configured attached
to host bridge: qemubr0, qemubr1 and qemubr2.


4.1 Network configuration

The host system can be configured over: /usr/local/etc/rc.d/rc.inet1.conf

To configure address of slackvirt host, server and desktop SMs, the tool:

netconfig.slackvirt

can be used for generating the configuration files.

By default the tool will just prompt for the host setup. However, the
enviroment variable MACHINES is used to define extra configuration options for
which SM, either "server", "desktop" or "server desktop".


4.2 HOST Wireless setup

For configuring wireless network setup, uses the tool:

setup.70.local-wireless

It will prompt to choose one of the detected wireless network IF for been
configured.

---

Slack well.
- William PC

mega-lnx 09-03-2020 11:44 PM

Updated iso images
 
I just uploaded the new iso images for SlackVirt, please check them at:
https://slackware.uk/slackvirt

I'm still considering it as a beta development even that it's almost ready to go, but I would like to consider receive some reviews.

Let's follow this thread for sharing your comments and feedback. I will be thankful.

See you :)

Will PC

ul7 09-05-2020 05:48 PM

Is this compatible with any QEMU image? Would I be able to integrate this into AWS?

mega-lnx 09-06-2020 09:40 PM

Hi,
did you mean QEMU disk images ?
Yes. SlackVirt (core) is just a set of shell scripts and predefined QEMU virtual machines (one as a server and other as a desktop) written in flat text files. As part of the shell scripts there is a tool that helps to start/stop/save/reboot the QEMU instances (note that they work differently), some commands sent a ACPI signal to VM others are handled through the QEMU process. However there is two "user discs" raw images that are intended to be attached to the default virtual machine instances, those are designed to work at Slackware.
What is the basic requirements to run the SlackVirt system is a Slackware host and install the SlackVirt packages A, AP, D, L, N and QEMU. Packages X and XAP includes functionalities for using X11 for monitoring the SlackVirt host and accessing the VMs.
- AWS
I'm not sure exactly how AWS works, but as long they allows you to run a Slackware machine as a host within support for nested virtualization, I would say that Yes.

The main goal of SlackVirt is to use as minimum hardware resources and additional software possible for creating a QEMU virtualization host.

ul7 09-06-2020 10:32 PM

Noice! So anyone can download this and test it out, right?

mega-lnx 09-09-2020 02:03 AM

Yes, you can download it and test, but it still in beta mode.
So you can check and ask any doubt here and send some comments too.

I have been using/testing it for almost 1 year as my main machine. I even made once a full re-installation of the host and getting everything working again was marvelous, the server (with several services) and the desktop (with a bunch of stuff).
Although today I created a virtual machine (as I don't want to reinstall my host) for testing the ISOs and I found some bugs, the installer isn't working really well.
Besides the tool for configuring the VMs is a WIP. Therefore you shall configure the instances manually:
- create the images and set the path to them at the virtual machine configuration files at /usr/local/etc/slackvirt/{server,desktop}.qemu
- define the source media of Slackware disks

I'm rebuilding the iso images now and will sync soon.

mega-lnx 09-11-2020 03:52 PM

sync - changeLog
 
We fixed the installer and tested for the first time the 32-bit version

Wed Sep 10 14:18:39 GMT 2020
xap/slackvirt-xapps : upgrade
Fix slack-desc
xap/fluxbox-slackvirt : upgrade
Fix slack-desc
xap/blackbox-slackvirt : upgrade
Fix slack-desc
x/xdm-slackvirt : upgrade
Fix slack-desc
qemu/qemu-server : upgrade
Fix slack-desc
qemu/qemu-qmp : upgrade
Fix slack-desc
qemu/qemu-desktop : upgrade
Fix slack-desc
n/wireless-tools-slackvirt : upgrade
Added description for setup.70.local-wireless
Enhance iw-scan tool
n/network-scripts-slackvirt : upgrade
Fix for:
- netconfig.slackvirt, adjusted name of host ifaces (qemubr[0,1,2])
ap/slackvirt-tools : upgrade
Fixes for:
- dialog-ctrl.sh
- gkrellms-split, include sanity check (which gkrellm)
- hw-sys-mon.sh, check if devices exists before cat them
ap/slackpkg-slackvirt : upgrade
Fix template, removed unnecessary packages
a/slackvirt-sysvinit-scripts : upgrade
Fix slack-desc
a/slackvirt-core : upgrade
Fixes:
- Added description for setup.100.slackvirt-usbbind
- expect script install now define a RAM variable
a/pkgtools-slackvirt : upgrade
Fixes for:
- pkgtool.slackvirt, mispelling words
- setup.liloentry, fix rootfs detection and adjust append and initrd lines.
a/aaa_base-slackvirt : upgrade
Fix slack-desc

we are almost at release ALPHA.


All times are GMT -5. The time now is 05:43 PM.