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.
This commit is contained in:
parent
74ad753b4f
commit
b036fe2fed
3 changed files with 42 additions and 2 deletions
13
pkgs/tools/security/chipsec/compile-ko.diff
Normal file
13
pkgs/tools/security/chipsec/compile-ko.diff
Normal file
|
@ -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" ];
|
||||
|
||||
|
|
13
pkgs/tools/security/chipsec/ko-path.diff
Normal file
13
pkgs/tools/security/chipsec/ko-path.diff
Normal file
|
@ -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…
Reference in a new issue