OK. I have now gotten both Skylake video and audio working on Qubes. Four things are needed to make it work:
1) Xen 4.4 with xsave patch, or Xen 4.6 (otherwise, Xen won't boot on Skylake with more recent kernels)
2) Linux 4.3 kernel (first release with full Skylake video support)
3) Skylake firmware blobs. Skylake is the first to require firmware blobs for i915. The most recent version is available at
https://01.org/linuxgraphics/intel-linux-graphics-firmwares However, Fedora 23's linux-firmware package has a close enough version - look under /lib/firmware/i915)
4) Updated X server, to provide recent enough i915 support for Skylake. If someone can tell me how to do this update (for example, 'yum install xxx') on dom0 on R3.0, it would be greatly appreciated!
It should be possible to work out a set of updates to R3.0 that include the above features.
Below is what I did. However, I seem to be running into stability issues in this pre-R3.1-rc1 environment that has been cobbled together (appvm windows keep crashing, requiring me to kill the appvm and restart it).
1) Build the Qubes installer, using example-configs/qubes-os-master.conf
This effectively gives you R3.1-rc1, I suppose. For me, it was the easiest path to having Xen 4.6, updated X (needed to support the Skylake i915 driver), and something closer to the linux 4.3 kernel. This step isn't strictly necessary, it was just the most convenient way to get various things in place. In fact, I am having some stability issues with this build - so you probably don't want to follow this path yet.
2) Install Qubes using the above ISO.
3) Build the Linux 4.3 kernel RPMs.
4.3 is pretty much needed to get Skylake graphics working. I used 'make oldconfig' in the Linux 4.3 source directory to generate a new config file for building the kernel (see attached 'config' file).
To do this, in qubes-src/linux-kernel, I downloaded linux-4.3.tar.xz and linux-4.3.tar.sign from
kernel.org, then renamed each to linux-4.3.0.tar.xz and linux-4.3.0.tar.sign I also edited version to contain '4.3.0' and release to 1. Because of a mismatch between 4.3 and 4.3.0 cropping up in the build process, I modified kernel.spec as follows:
--- kernel.spec.orig 2015-11-30 21:46:59.140360578 -0500
+++ kernel.spec 2015-11-30 21:48:40.456360578 -0500
@@ -101,6 +101,7 @@
mkdir -p %kernel_build_dir
+ln -s linux-4.3 linux-4.3.0
cd linux-%version
if [ -r %_sourcedir/series-%{version}.conf ]; then
The above patch won't be required for 4.3.1 and onward.
I additionally changed patches.rpmify/makefile-after_link.patch and patches.xen/pvops-blkfront-removable-flag.patch. The updated copies are attached.
4) Install the resulting RPMs in dom0.
5) Add the Skylake firmware blobs to initramfs
sudo bash
mkdir tmp
cd tmp
gunzip -c /boot/inintramfs-4.3.0-1.pvops.qubes.x86_64.img | cpio -
cd usr/lib/firmware
mkdir i915
cd i915
[copy in skl_dmc_ver1_23.bin and skl_guc_ver4_3.bin]
ln -s skl_dmc_ver1_23.bin skl_dmc_ver1.bin
ln -s skl_guc_ver4_3.bin skl_guc_ver4.bin
cd ../../../..
mv /boot/inintramfs-4.3.0-1.pvops.qubes.x86_64.img /boot/inintramfs-4.3.0-1.pvops.qubes.x86_64.img.OLD
find . | cpio -H newc -o gzip -9 > /boot/inintramfs-4.3.0-1.pvops.qubes.x86_64.img
cd ..
rm -rf tmp
exitAs I noted above, I am running into serious stability issues with the above setup. It is possible this is caused by the 4.3 kernel. If so, it might be possible to use the 4.1.13 kernel with 'i915.preliminary_hw_support=1' added to the kernel command line in grub.cfg.
Best of luck. I hope to turn this around into a more formal contribution soon - [erhaps something else that makes sense to work into a possible 3.0.1 release.
Eric