From 5902f4856e449739406d632a0fa4eb4be36f886f Mon Sep 17 00:00:00 2001 From: bbaa Date: Thu, 2 Jan 2025 18:07:28 +0800 Subject: [PATCH] ci: auto build package and create release --- .bumpversion.cfg | 23 ---- .github/workflows/build.yml | 168 +++++++++++++++++++++++++++++ PKGBUILD | 26 ++--- README.md | 64 ++++++----- VERSION | 1 - configure | 3 + debian/changelog | 5 + debian/control | 15 +++ debian/copyright | 25 +++++ debian/dkms | 11 ++ debian/rules | 33 ++++++ debian/source/format | 1 + debian/upstream/metadata | 5 + drivers/gpu/drm/i915/i915_module.c | 4 + i915-set-sriov-numvfs.conf | 3 + i915-sriov-dkms-git.install | 7 -- i915-sriov-dkms.install | 9 ++ 17 files changed, 332 insertions(+), 71 deletions(-) delete mode 100644 .bumpversion.cfg create mode 100644 .github/workflows/build.yml delete mode 100644 VERSION create mode 100644 debian/changelog create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/dkms create mode 100755 debian/rules create mode 100644 debian/source/format create mode 100644 debian/upstream/metadata create mode 100644 i915-set-sriov-numvfs.conf delete mode 100644 i915-sriov-dkms-git.install create mode 100644 i915-sriov-dkms.install diff --git a/.bumpversion.cfg b/.bumpversion.cfg deleted file mode 100644 index 210a6ea..0000000 --- a/.bumpversion.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[bumpversion] -current_version = 2024.12.30 -parse = (?P\d+)\.(?P\d+)\.(?P\d+) -serialize = - {year}.{month}.{day} -commit = False -tag = False - -[bumpversion:file:dkms.conf] -search = PACKAGE_VERSION="{current_version}" -replace = PACKAGE_VERSION="{new_version}" - -[bumpversion:file:PKGBUILD] -search = pkgver={current_version} -replace = pkgver={new_version} - -[bumpversion:file:README.md] -search = -v {current_version} -replace = -v {new_version} - -[bumpversion:file:VERSION] -search = {current_version} -replace = {new_version} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..6d591bf --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,168 @@ +name: Build + +on: + workflow_dispatch: + push: + +jobs: + packaging-debian: + runs-on: ubuntu-24.04 + steps: + - name: Install Dependencies + run: | + sudo apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential devscripts dh-make dh-dkms dkms + - name: Checkout + uses: actions/checkout@v4 + with: + path: i915-sriov-dkms + - name: Packaging + working-directory: i915-sriov-dkms + run: dpkg-buildpackage -tc + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: debain-package + path: "*.deb" + + packaging-archlinux: + runs-on: ubuntu-24.04 + container: + image: archlinux:base-devel + steps: + - name: Install Dependencies + run: | + pacman-key --init + pacman -Syu --noconfirm git dkms + - name: Checkout + uses: actions/checkout@v4 + with: + path: i915-sriov-dkms + - name: Packaging + working-directory: i915-sriov-dkms + run: | + useradd -m user + sed -i 's/COMPRESSZST=.*/COMPRESSZST=(zstd -c -T0 --ultra -20 -)/' /etc/makepkg.conf + echo "user ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers + chown -R user: . + sudo -u user makepkg -s + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: arch-package + path: "i915-sriov-dkms/*.pkg*" + + test-ubuntu-noble: + runs-on: ubuntu-24.04 + steps: + - name: Install Dependencies + run: | + sudo apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential linux-generic linux-headers-generic + - name: Checkout + uses: actions/checkout@v4 + with: + path: i915-sriov-dkms + - name: Build Module + working-directory: i915-sriov-dkms + run: | + KERNEL_SOURCE_DIR=$(dpkg -L $(dpkg -s linux-headers-generic | grep "Depends: " | cut -d " " -f2) | grep -m 1 -Eo ".*/lib/modules/[^/]+/build") + KERNELRELEASE=$(echo -n "$KERNEL_SOURCE_DIR" | sed 's/.*\/lib\/modules\///g;s/\/build//') + sudo make -j$(nproc) KERNELRELEASE=$KERNELRELEASE -C $KERNEL_SOURCE_DIR M=$(pwd) + + test-ubuntu-oracular: + runs-on: ubuntu-24.04 + container: + image: ubuntu:24.10 + steps: + - name: Install Dependencies + run: | + apt-get update + DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential linux-generic linux-headers-generic + - name: Checkout + uses: actions/checkout@v4 + with: + path: i915-sriov-dkms + - name: Build Module + working-directory: i915-sriov-dkms + run: | + KERNEL_SOURCE_DIR=$(dpkg -L $(dpkg -s linux-headers-generic | grep "Depends: " | cut -d " " -f2) | grep -m 1 -Eo ".*/lib/modules/[^/]+/build") + KERNELRELEASE=$(echo -n "$KERNEL_SOURCE_DIR" | sed 's/.*\/lib\/modules\///g;s/\/build//') + make -j$(nproc) KERNELRELEASE=$KERNELRELEASE -C $KERNEL_SOURCE_DIR M=$(pwd) + + test-proxmox: + runs-on: ubuntu-24.04 + steps: + - name: Install Dependencies + run: | + sudo apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential + sudo sh -c "echo deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription >> /etc/apt/sources.list" + sudo apt-get --allow-insecure-repositories update + sudo DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install -y proxmox-archive-keyring + sudo apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y proxmox-default-kernel proxmox-default-headers + - name: Checkout + uses: actions/checkout@v4 + with: + path: i915-sriov-dkms + - name: Build Module + working-directory: i915-sriov-dkms + run: | + KERNEL_SOURCE_DIR=$(dpkg -L $(dpkg -s $(dpkg -s proxmox-default-headers | grep "Depends: " | cut -d " " -f2) | grep "Depends: " | cut -d " " -f2) | grep -m 1 -Eo ".*/lib/modules/[^/]+/build") + KERNELRELEASE=$(echo -n "$KERNEL_SOURCE_DIR" | sed 's/.*\/lib\/modules\///g;s/\/build//') + sudo make -j$(nproc) KERNELRELEASE=$KERNELRELEASE -C $KERNEL_SOURCE_DIR M=$(pwd) + + test-archlinux: + runs-on: ubuntu-24.04 + container: + image: archlinux:base-devel + steps: + - name: Install Dependencies + run: | + pacman-key --init + pacman -Syu --noconfirm linux linux-headers + - name: Checkout + uses: actions/checkout@v4 + with: + path: i915-sriov-dkms + - name: Build Module + working-directory: i915-sriov-dkms + run: | + KERNEL_SOURCE_DIR=$(pacman -Qql linux-headers | grep -m 1 -Eo ".*/lib/modules/[^/]+/build") + KERNELRELEASE=$(echo -n "$KERNEL_SOURCE_DIR" | sed 's/.*\/lib\/modules\///g;s/\/build//') + sudo make -j$(nproc) KERNELRELEASE=$KERNELRELEASE -C $KERNEL_SOURCE_DIR M=$(pwd) + + release: + runs-on: ubuntu-24.04 + needs: [packaging-debian, packaging-archlinux, test-ubuntu-noble, test-ubuntu-oracular, test-proxmox, test-archlinux] + permissions: + contents: write + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + fetch-tags: true + path: i915-sriov-dkms + - name: Check release created + working-directory: i915-sriov-dkms + run: | + VERSION=$(grep "^PACKAGE_VERSION" "dkms.conf" | grep -o "[0-9]*\.[0-9]*\.[0-9]*") + echo "VERSION=$VERSION" >> $GITHUB_ENV + git tag | grep $VERSION && echo "MAKE_RELEASE=0" > $GITHUB_ENV || echo "MAKE_RELEASE=1" >> $GITHUB_ENV + - name: Download artifacts + if: ${{ env.MAKE_RELEASE == 1 }} + uses: actions/download-artifact@v4 + with: + merge-multiple: true + - name: Create Release + if: ${{ env.MAKE_RELEASE == 1 }} + uses: softprops/action-gh-release@v2 + with: + generate_release_notes: true + name: ${{ env.VERSION }} + tag_name: ${{ env.VERSION }} + files: | + *.pkg* + *.deb diff --git a/PKGBUILD b/PKGBUILD index ff894f6..40b5528 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,26 +1,28 @@ # Maintainer: Xilin Wu -_pkgbase=i915-sriov-dkms -pkgname=i915-sriov-dkms-git +pkgname=i915-sriov-dkms pkgver=2024.12.30 pkgrel=1 pkgdesc="Linux i915 module patched with SR-IOV support" arch=('x86_64') url="https://github.com/strongtz/i915-sriov-dkms" -license=('GPL2') -depends=('dkms') +license=('GPL-2.0-only') makedepends=('git') -conflicts=("${_pkgbase}") +depends=('dkms') +conflicts=("${pkgname}-git") +backup=("etc/tmpfiles.d/i915-set-sriov-numvfs.conf") install=${pkgname}.install -source=("git+https://github.com/strongtz/i915-sriov-dkms.git") -md5sums=('SKIP') +source=("git+https://github.com/strongtz/i915-sriov-dkms.git" "i915-set-sriov-numvfs.conf") +sha256sums=('SKIP' + 'e85e4d4c97cb1f6e825c47ea5e3a9c18f10761714307985f67b58c8e55a1e2c2') package() { - cd "$srcdir/$_pkgbase" - # Copy dkms.conf - install -Dm644 dkms.conf "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/dkms.conf + cd "$srcdir/$pkgname" echo "* Copying module into /usr/src..." - install -dm755 "${pkgdir}/usr/src/${_pkgbase}-${pkgver}" - cp -r ${srcdir}/$_pkgbase/* "${pkgdir}/usr/src/${_pkgbase}-${pkgver}" + install -dm755 "${pkgdir}/usr/src/${pkgname}-${pkgver}" + cp -r ${srcdir}/$pkgname/{compat,config,drivers,include,Makefile,configure,dkms.conf} "${pkgdir}/usr/src/${pkgname}-${pkgver}" + + cd "$srcdir" + install -Dm644 i915-set-sriov-numvfs.conf "${pkgdir}/etc/tmpfiles.d/i915-set-sriov-numvfs.conf" } diff --git a/README.md b/README.md index c5ad8fc..8614a7f 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,6 @@ This package is **highly experimental**, you should only use it when you know wh You need to install this dkms module in **both host and guest!** -For Arch Linux users, it is available in AUR. [i915-sriov-dkms](https://aur.archlinux.org/packages/i915-sriov-dkms-git) - Tested kernel versions: 6.12.6-zen1/6.11.9-arch1/6.10.9-arch1/6.9.10-arch1/6.8.9-arch1 with ArchLinux @@ -26,33 +24,24 @@ echo 2 > /sys/devices/pci0000:00/0000:00:02.0/sriov_numvfs You can create up to 7 VFs on Intel UHD Graphics -## PVE Host Installation Steps (Tested Kernel 6.5 and 6.8) -1. Clone this repo +## Arch Linux Installation Steps (Tested Kernel 6.12.6-zen1) + +For Arch Linux users, it is available in AUR. [i915-sriov-dkms](https://aur.archlinux.org/packages/i915-sriov-dkms) +You also can download the package from the [releases page](https://github.com/strongtz/i915-sriov-dkms/releases) and install it with `pacman -U`. + +## PVE Host Installation Steps (Tested Kernel 6.8) 1. Install build tools: `apt install build-* dkms` -1. Install the kernel and headers for desired version: `apt install proxmox-headers-6.8.8-2-pve proxmox-kernel-6.8.8-2-pve` (for unsigned kernel). -1. Change into the root of the cloned repository and run `dkms add .`. -1. Execute the command `dkms install -m i915-sriov-dkms -v 2024.12.30 --force` or `dkms install -m i915-sriov-dkms -v $(cat VERSION) --force` for a version-independent command. +1. Install the kernel and headers for desired version: `apt install proxmox-headers-6.8 proxmox-kernel-6.8` (for unsigned kernel). +1. Download deb package from the [releases page](https://github.com/strongtz/i915-sriov-dkms/releases)` +1. Install the deb package with dpkg: `dpkg -i i915-sriov-dkms_2024.12.30_amd64.deb` 1. Once finished, the kernel commandline needs to be adjusted: `nano /etc/default/grub` and change `GRUB_CMDLINE_LINUX_DEFAULT` to `intel_iommu=on i915.enable_guc=3 i915.max_vfs=7`, or add to it if you have other arguments there already. +1. Update `grub` and `initramfs` by executing `update-grub` and `update-initramfs -u` 1. Optionally pin the kernel version and update the boot config via `proxmox-boot-tool`. 1. In order to enable the VFs, a `sysfs` attribute must be set. Install `sysfsutils`, then do `echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf`, assuming your iGPU is on 00:02 bus. If not, use `lspci | grep VGA` to find the PCIe bus your iGPU is on. 1. Reboot the system. 1. When the system is back up again, you should see the number of VFs under 02:00.1 - 02:00.7. Again, assuming your iGPU is on 00:02 bus. 1. You can passthrough the VFs to LXCs or VMs. However, never touch the PF which is 02:00.0 under any circumstances. -## PVE Host Installation Steps (Tested Kernel 6.1 and 6.2) -1. Clone this repo -1. Install some tools. `apt install build-* dkms` -1. Go inside the repo, edit the `dkms.conf`file, change the `PACKAGE_NAME` to `i915-sriov-dkms`, and change the `PACKAGE_VERSION` to `6.1`. Save the file. -1. Move the entire content of the repository to `/usr/src/i915-sriov-dkms-6.1`. The folder name will be the DKMS package name. -1. Execute command `dkms install -m i915-sriov-dkms -v 6.1 --force`. `-m` argument denotes the package name, and it should be the same as the folder name which contains the package content. `-v` argument denotes the package version, which we have specified in the `dkms.conf` as `6.1`. `--force` argument will reinstall the module even if a module with same name has been already installed. -1. The kernel module should begin building. -1. Once finished, we need to make a few changes to the kernel commandline. `nano /etc/default/grub` and change `GRUB_CMDLINE_LINUX_DEFAULT` to 'intel_iommu=on i915.enable_guc=3 i915.max_vfs=7`, or add to it if you have other arguments there already. -1. Update `grub` and `initramfs` by executing `update-grub` and `update-initramfs -u` -1. In order to enable the VFs, we need to modify some variables in the `sysfs`. Install `sysfsutils`, then do `echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf`, assuming your iGPU is on 00:02 bus. If not, use `lspci | grep VGA` to find the PCIe bus your iGPU is on. -1. Reboot the system. -1. When the system is back up again, you should see the number of VFs you specified show up under 02:00.1 - 02:00.7. Again, assuming your iGPU is on 00:02 bus. -1. You can passthrough the VFs to LXCs or VMs. However, never touch the PF which is 02:00.0 under any circumstances. - ## Linux Guest Installation Steps (Tested Kernel 6.2) We will need to run the same driver under Linux guests. We can repeat the steps for installing the driver. However, when modifying command line defaults, we use `i915.enable_guc=3` instead of `i915.enable_guc=3 i915.max_vfs=7`. Furthermore, we don't need to use `sysfsutils` to create any more VFs since we ARE using a VF. Once that's done, update `grub` and `initramfs`, then reboot. Once the VM is back up again, do `dmesg | grep i915` to see if your VF is recognized by the kernel. @@ -64,14 +53,33 @@ I've used Intel gfx version 4316 to get it working. Here's a link to download it See also: https://github.com/strongtz/i915-sriov-dkms/issues/8#issuecomment-1567465036 +## Manual Installation Steps +1. Install build tools: `apt install build-essential dkms git` / `pacman -S base-devel dkms git`. +1. Install the kernel and headers for desired version: `apt install linux-headers-$(uname -r)` / `pacman -S linux-headers`. +1. Clone the repository: `git clone https://github.com/strongtz/i915-sriov-dkms.git`. +1. Add the module to DKMS: `dkms add ./i915-sriov-dkms`. +1. Install the module with DKMS: `dkms install i915-sriov-dkms/2024.12.30`. +1. Once finished, the kernel commandline needs to be adjusted: `nano /etc/default/grub` and change `GRUB_CMDLINE_LINUX_DEFAULT` to `intel_iommu=on i915.enable_guc=3 i915.max_vfs=7`, or add to it if you have other arguments there already. +1. Update `grub` and `initramfs` by executing `update-grub` and `update-initramfs -u` / for Arch Linux `grub-mkconfig -o /boot/grub/grub.cfg` and `mkinitcpio -P`. +1. Optionally use `sysfsutils` to set the number of VFs on boot. Install `sysfsutils`, then do `echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf`, assuming your iGPU is on 00:02 bus. If not, use `lspci | grep VGA` to find the PCIe bus your iGPU is on. +1. Reboot the system. + +## Uninstallation +### dpkg +Remove the package with `dpkg -r i915-sriov-dkms` +### pacman +Remove the package with `pacman -R i915-sriov-dkms` +### Manual +Remove the dkms module with `dkms remove i915-sriov-dkms/2024.12.30` + # Credits Major contributors to this repository are listed below. -* [@strongtz](https://github.com/strongtz)  _Create the initial dkms module_ -* [@zhtengw](https://github.com/zhtengw)  _Rebase on the linux-intel-lts (v5.15, v6.1) , support for v6.1~v6.4, participation in 15+ issues_ -* [@bbaa-bbaa](https://github.com/bbaa-bbaa)  _Rebase on the mainline-tracking linux/v6.12 branch, support for v6.8~v6.13, participation in 10+ issues_ -* [@pasbec](https://github.com/pasbec)  _Major refactor to the repo, support for (v6.2, v6.5, v6.8), participation in 20+ issues_ -* [@shenwii](https://github.com/shenwii)  _Support for (v6.7, v6.9)_ -* [@MotherOfTheGracchi](https://github.com/MotherOfTheGracchi)  _Support for v6.5.3_ -* [@michael-pptf](https://github.com/michael-pptf)  _Several updates to README.md, participation in 20+ issues_ +* [@strongtz](https://github.com/strongtz) _Create the initial dkms module_ +* [@zhtengw](https://github.com/zhtengw) _Rebase on the linux-intel-lts (v5.15, v6.1) , support for v6.1~v6.4, participation in 15+ issues_ +* [@bbaa-bbaa](https://github.com/bbaa-bbaa) _Rebase on the mainline-tracking linux/v6.12 branch, support for v6.8~v6.13, participation in 10+ issues_ +* [@pasbec](https://github.com/pasbec) _Major refactor to the repo, support for (v6.2, v6.5, v6.8), participation in 20+ issues_ +* [@shenwii](https://github.com/shenwii) _Support for (v6.7, v6.9)_ +* [@MotherOfTheGracchi](https://github.com/MotherOfTheGracchi) _Support for v6.5.3_ +* [@michael-pptf](https://github.com/michael-pptf) _Several updates to README.md, participation in 20+ issues_ diff --git a/VERSION b/VERSION deleted file mode 100644 index 41e0327..0000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -2024.12.30 diff --git a/configure b/configure index b8aa275..5783082 100755 --- a/configure +++ b/configure @@ -6,12 +6,15 @@ if [ "$KBUILD_MODULES" != "1" ]; then fi CONFIGURE_CFLAGS="$KBUILD_CPPFLAGS $KBUILD_CFLAGS $LINUXINCLUDE" +module_version=$(grep "^PACKAGE_VERSION" "$KBUILD_EXTMOD/dkms.conf" | grep -o "[0-9]*\.[0-9]*\.[0-9]*") cat < "$KBUILD_EXTMOD/include/config.h" #include +#define DKMS_MODULE_VERSION "$module_version.sriov-6.12" EOF +# conftest for symbol_test in "$KBUILD_EXTMOD"/config/*.c do $CC $CONFIGURE_CFLAGS -c "$symbol_test" -o /dev/null > /dev/null 2>&1 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..5cd00ad --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +i915-sriov-dkms (2024.12.30) UNRELEASED; urgency=medium + + * 2024.12.30: backport missing pciids for ADL-N CPU + + -- bbaa bbaa Thu, 2 Jan 2025 17:37:04 +0800 \ No newline at end of file diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..5bf88c4 --- /dev/null +++ b/debian/control @@ -0,0 +1,15 @@ +Source: i915-sriov-dkms +Section: kernel +Priority: optional +Maintainer: bbaa +Rules-Requires-Root: no +Build-Depends: + debhelper-compat (= 13), dh-sequence-dkms +Standards-Version: 2024.12.30 +Homepage: https://github.com/strongtz/i915-sriov-dkms + +Package: i915-sriov-dkms +Architecture: amd64 +Depends: + ${misc:Depends}, build-essential +Description: Linux i915 driver (dkms module) with SR-IOV support diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..9f1dab9 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,25 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Source: https://github.com/strongtz/i915-sriov-dkms +Upstream-Name: i915-sriov-dkms +Upstream-Contact: https://github.com/strongtz/i915-sriov-dkms/issues + +Files: + * +Copyright: + Linus Torvalds and others +License: GPL-2.0 + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see +Comment: + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". \ No newline at end of file diff --git a/debian/dkms b/debian/dkms new file mode 100644 index 0000000..8ebcc5f --- /dev/null +++ b/debian/dkms @@ -0,0 +1,11 @@ +PACKAGE_NAME="i915-sriov-dkms" +PACKAGE_VERSION="#MODULE_VERSION#" + +MAKE[0]="make -C ${kernel_source_dir} M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build" +CLEAN="make -C ${kernel_source_dir} M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build clean" + +BUILT_MODULE_NAME[0]="i915" +DEST_MODULE_LOCATION[0]=/updates + +AUTOINSTALL=yes +BUILD_EXCLUSIVE_KERNEL="^6\.([8-9]|1[0-3])" diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..3648659 --- /dev/null +++ b/debian/rules @@ -0,0 +1,33 @@ +#!/usr/bin/make -f +#export DH_VERBOSE = 1 +include /usr/share/dpkg/default.mk + +%: + dh $@ + +override_dh_autoreconf: + +override_dh_auto_test: + +override_dh_auto_configure: + +override_dh_auto_clean: + +override_dh_auto_build: + +override_dh_auto_install: + +override_dh_install: + mkdir -p $(CURDIR)/debian/i915-sriov-dkms/usr/src/i915-sriov-dkms-$(DEB_VERSION_UPSTREAM) + cp -r $(CURDIR)/compat $(CURDIR)/debian/i915-sriov-dkms/usr/src/i915-sriov-dkms-$(DEB_VERSION_UPSTREAM) + cp -r $(CURDIR)/config $(CURDIR)/debian/i915-sriov-dkms/usr/src/i915-sriov-dkms-$(DEB_VERSION_UPSTREAM) + cp -r $(CURDIR)/drivers $(CURDIR)/debian/i915-sriov-dkms/usr/src/i915-sriov-dkms-$(DEB_VERSION_UPSTREAM) + cp -r $(CURDIR)/include $(CURDIR)/debian/i915-sriov-dkms/usr/src/i915-sriov-dkms-$(DEB_VERSION_UPSTREAM) + cp $(CURDIR)/configure $(CURDIR)/debian/i915-sriov-dkms/usr/src/i915-sriov-dkms-$(DEB_VERSION_UPSTREAM) + cp $(CURDIR)/Makefile $(CURDIR)/debian/i915-sriov-dkms/usr/src/i915-sriov-dkms-$(DEB_VERSION_UPSTREAM) + dh_install + +override_dh_dkms: + dh_dkms -V $(DEB_VERSION_UPSTREAM) + + diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/debian/upstream/metadata b/debian/upstream/metadata new file mode 100644 index 0000000..b5913ac --- /dev/null +++ b/debian/upstream/metadata @@ -0,0 +1,5 @@ +Bug-Database: https://github.com/strongtz/i915-sriov-dkms/issues +Bug-Submit: https://github.com/strongtz/i915-sriov-dkms/issues/new +Documentation: https://github.com/strongtz/i915-sriov-dkms/blob/master/README.md +Repository-Browse: https://github.com/strongtz/i915-sriov-dkms +Repository: https://github.com/strongtz/i915-sriov-dkms.git diff --git a/drivers/gpu/drm/i915/i915_module.c b/drivers/gpu/drm/i915/i915_module.c index 7ed6d70..6f9035f 100644 --- a/drivers/gpu/drm/i915/i915_module.c +++ b/drivers/gpu/drm/i915/i915_module.c @@ -126,5 +126,9 @@ module_exit(i915_exit); MODULE_AUTHOR("Tungsten Graphics, Inc."); MODULE_AUTHOR("Intel Corporation"); +#ifdef DKMS_MODULE_VERSION +MODULE_VERSION(DKMS_MODULE_VERSION); +#endif + MODULE_DESCRIPTION(DRIVER_DESC); MODULE_LICENSE("GPL and additional rights"); diff --git a/i915-set-sriov-numvfs.conf b/i915-set-sriov-numvfs.conf new file mode 100644 index 0000000..406b1b4 --- /dev/null +++ b/i915-set-sriov-numvfs.conf @@ -0,0 +1,3 @@ +#Path Mode UID GID Age Argument +#Uncomment the next line and change the argument to the number of VFs you want +#w /sys/devices/pci0000:00/0000:00:02.0/sriov_numvfs - - - - 1 diff --git a/i915-sriov-dkms-git.install b/i915-sriov-dkms-git.install deleted file mode 100644 index c4f73ad..0000000 --- a/i915-sriov-dkms-git.install +++ /dev/null @@ -1,7 +0,0 @@ -post_install() { - echo 'The i915 kernel module will be available on reboot.' -} - -post_remove() { - echo 'The i915 kernel module will be removed on reboot.' -} diff --git a/i915-sriov-dkms.install b/i915-sriov-dkms.install new file mode 100644 index 0000000..bae918f --- /dev/null +++ b/i915-sriov-dkms.install @@ -0,0 +1,9 @@ +post_install() { + echo "The i915 kernel module will be available on reboot." + echo "You can edit /etc/tmpfiles.d/i915-set-sriov-numvfs.conf to set the number of VFs on boot." + echo "Please refer to https://github.com/strongtz/i915-sriov-dkms/blob/master/README.md to set kernel parameters." +} + +post_remove() { + echo "The i915 kernel module will be removed on reboot." +}