So about that kernel ...
Waves soundgrid servers run on kernel 4.1.33-rt37. So that's Kernel 4.1.33 with the corresponding realtime-patch.
https://cdn.kernel.org/pub/linux/kernel/v4.x/ (there's
a lot of kernel on that page, so use the search function of your browser and download the .gz compressed file)
https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.1/older/ (same as before)
Once download unpack the kernel, copy the realtime patch into the extracted linux-4.1.33 folder and apply it
Code:
cd Downloads
tar -xvf linux-4.1.33.tar.gz
cp patch-4.1.33-rt37.tar.gz linux-4.1.33
cd linux-4.1.33
zcat patch-4.1.33-rt37.patch.gz | patch -p1
Copy the kernel modules from the 2016 soundgrid release (sglinux-9.7.99.105) into your source tree.
Just do it manually and replace the files with the ones from Waves.
The files from
sglinux-9.7.99.105/kernel_module/wigb/ go to
linux-4.1.33/drivers/net/ethernet/intel/igb/
Netx rename the wr8169.c found in
sglinux-9.7.99.105/kernel_module/wr8169/to r8169.c and copy it to
linux-4.1.33/drivers/net/ethernet/realtek/
sidenote: as of now I still don't have any idea what to do with the /wevent files :
We're also going to need firmware files for the Realtek NICs and while we're at it we can install some additional dependencies needed for the kernel compilation
Code:
sudo apt-get install linux-firmware-nonfree libncurses5-dev libncursesw5-dev
Copy the folder
/lib/firmware/rtl_nic (going from the root level of your file system) into
linux-4.1.33/firmware/
Last but not least, we need a .config file. I've extracted mine from a running WSG server:
- insert a fat32 formatted usb stick to your server and enter the console
- create a directory to mount your usb stick
- mount your usb stick
Code:
mount -t vfat /dev/sdb1 /mnt/usb
- copy the config
Code:
cp /proc/config.gz /mnt/usb
- unmount your usb drive
Back in ubuntu-land extract the config.gz file to your hard drive, copy the config file into /linux-4.1.33 and rename it .config
(if it suddenly vanishes press ctrl+h to show hidden files)
Now we're ready to compile the kernel 8) Fortunately for us the Waves Kernel is pretty slim and it should compile in just a couple of minutes.
Code:
cd linux-4.1.33
make -j $(nproc)
-j $(nproc) tells your pc to use all available cores for the compilation.
Once that's done you'll find the kernel image named
bzimage in the linux-4.1.33/arch/x86/boot folder.