QEMU Virtual Machine for testing a partially synthesised Linux PC Speaker driver
Description
This upload contains the gzip archive of a QEMU Virtual Machine (qcow file) with an installed Ubuntu 22.04 x86_64 OS for testing the partially synthesised (i.e. generated from a Coq formalisation) and experimental Linux PC Speaker driver . More details on the project can be found in the Github repository.
Starting the Virtual Machine
In order to start the VM, the archive needs to be unpacked (with gunzip) and QEMU needs to be installed. Also, the host system should have PulseAudio (which implies being Linux x86_64 itself). Then, the VM can be started with
qemu-system-x86_64 -enable-kvm -smp 4 -m 8G -drive file=CertPCSpkrVM.qcow,if=virtio -audiodev pa,id=snd0 -machine pcspk-audiodev=snd0
The option "-smp 4" registers 4 CPU cores. This can also be set to 2, for example. The option "-m 8G" registers 8 GB main memory.
When the system is started, a terminal (which is linked as favourite) has to be started.
Building the Kernel Module
The installation includes 3 directories in the folder ~/KernelModuleSynthesis of which "certpcspkr" is most important and the directory "certpcspkr" contains a README.md with more details. The other folders are a fork of CertiCoq and VeriFFI and used for compilation of the driver.
First, the driver has to be built with:
cd ~/KernelModuleSynthesis/certpcspkr_linux/src
make CERTICOQ_PATH=../../CertiCoq_kmod VERIFFI_PATH=../../VeriFFI_contrib/
But there is a shell script "build.sh" in the directory "~/KernelModuleSynthesis" that automates the build and copies the Kernel object into "~/KernelModuleSynthesis". This script can be executed as follows
cd ~/KernelModuleSynthesis
./build.sh
It will print what it is doing and also some compilation warnings from compiling synthesised code.
Installing the driver and Testing
Then, the driver has to be installed (as administrator, the password is the username)
sudo insmod certpcspkr.ko
and the command "sudo dmesg" should show "Probing DONE" as one of the last lines.
Then, executing
beep -f 600
should produce a tone. Beep supports frequencies up to 20000 Hz.
Files
Files
(9.1 GB)
| Name | Size | Download all |
|---|---|---|
|
md5:280b8a800acad2e571700da0230ba952
|
9.1 GB | Download |
Additional details
Software
- Development Status
- Wip