chipsec: Fix building kernel module

In recent versions of chipsec the build scripts have changed and we
haven't built the kernel module in nixpkgs. Upstream has changed the
variable for the kernel sources.

Additional patches are needed as a workaround. Those issues should be
fixed upstream.
wip/yesman
Daniel Schaefer 3 years ago
parent 74ad753b4f
commit b036fe2fed
  1. 13
      pkgs/tools/security/chipsec/compile-ko.diff
  2. 18
      pkgs/tools/security/chipsec/default.nix
  3. 13
      pkgs/tools/security/chipsec/ko-path.diff

@ -0,0 +1,13 @@
diff --git i/setup.py w/setup.py
index cfe2665..5795874 100755
--- i/setup.py
+++ w/setup.py
@@ -179,7 +179,7 @@ class build_ext(_build_ext):
driver_build_function = self._build_win_driver
self._build_win_compression()
- if not self.skip_driver:
+ if True:
driver_build_function()
def get_source_files(self):

@ -20,7 +20,9 @@ python3.pkgs.buildPythonApplication rec {
sha256 = "01sp24z63r3nqxx57zc4873b8i5dqipy7yrxzrwjns531vznhiy2";
};
KERNEL_SRC_DIR = lib.optionalString withDriver "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
patches = lib.optionals withDriver [ ./ko-path.diff ./compile-ko.diff ];
KSRC = lib.optionalString withDriver "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
nativeBuildInputs = [
libelf
@ -32,7 +34,19 @@ python3.pkgs.buildPythonApplication rec {
python3.pkgs.pytestCheckHook
];
setupPyBuildFlags = lib.optional (!withDriver) "--skip-driver";
preBuild = lib.optionalString withDriver ''
export CHIPSEC_BUILD_LIB=$(mktemp -d)
mkdir -p $CHIPSEC_BUILD_LIB/chipsec/helper/linux
'';
preInstall = lib.optionalString withDriver ''
mkdir -p $out/${python3.pkgs.python.sitePackages}/drivers/linux
mv $CHIPSEC_BUILD_LIB/chipsec/helper/linux/chipsec.ko \
$out/${python3.pkgs.python.sitePackages}/drivers/linux/chipsec.ko
'';
setupPyBuildFlags = [ "--build-lib=$CHIPSEC_BUILD_LIB" ]
++ lib.optional (!withDriver) "--skip-driver";
pythonImportsCheck = [ "chipsec" ];

@ -0,0 +1,13 @@
diff --git c/chipsec/helper/linux/linuxhelper.py i/chipsec/helper/linux/linuxhelper.py
index c51b5e6..4be05ea 100644
--- c/chipsec/helper/linux/linuxhelper.py
+++ i/chipsec/helper/linux/linuxhelper.py
@@ -152,7 +152,7 @@ class LinuxHelper(Helper):
else:
a2 = "a2=0x{}".format(phys_mem_access_prot)
- driver_path = os.path.join(chipsec.file.get_main_dir(), "chipsec", "helper", "linux", "chipsec.ko" )
+ driver_path = os.path.join(chipsec.file.get_main_dir(), "drivers", "linux", "chipsec.ko" )
if not os.path.exists(driver_path):
driver_path += ".xz"
if not os.path.exists(driver_path):
Loading…
Cancel
Save