* [PR PATCH] [WIP] rpi-kernel: enable build of kernel modules
@ 2019-09-29 18:40 voidlinux-github
2019-09-29 18:50 ` [PR PATCH] [Updated] " voidlinux-github
` (9 more replies)
0 siblings, 10 replies; 11+ messages in thread
From: voidlinux-github @ 2019-09-29 18:40 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 343 bytes --]
There is a new pull request by Piraty against master on the void-packages repository
https://github.com/Piraty/void-packages rpi-kernel-fix-dkms
https://github.com/void-linux/void-packages/pull/14823
[WIP] rpi-kernel: enable build of kernel modules
A patch file from https://github.com/void-linux/void-packages/pull/14823.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-rpi-kernel-fix-dkms-14823.patch --]
[-- Type: text/x-diff, Size: 10304 bytes --]
From 1a3e72ef48d24b384804c96a432464b28bba2e51 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 13:53:33 +0200
Subject: [PATCH 1/3] xbps-triggers: run `make scripts` with all cores
also, use `yes` to not get stuck on prompts (happened with
CONFIG_GCC_PLUGINGS).
---
srcpkgs/xbps-triggers/files/dkms | 2 +-
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/xbps-triggers/files/dkms b/srcpkgs/xbps-triggers/files/dkms
index 0f1fbb9ec0a..309f7fa97b5 100755
--- a/srcpkgs/xbps-triggers/files/dkms
+++ b/srcpkgs/xbps-triggers/files/dkms
@@ -72,7 +72,7 @@ add_modules() {
fi
if [ ! -f ${f}/build/scripts/basic/fixdep ] ; then
echo -n "Building scripts for kernel-${_kver}... "
- make -C ${f}/build scripts &> ${f}/build/make.log
+ yes "" | make -C -j$(nproc) ${f}/build scripts > ${f}/build/make.log 2>&1
if [ $? -eq 0 ]; then
echo "done."
else
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 4247352939c..178a2b10fd5 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,7 +1,7 @@
# Template file for 'xbps-triggers'
pkgname=xbps-triggers
version=0.113
-revision=1
+revision=2
archs=noarch
bootstrap=yes
short_desc="The XBPS triggers for Void Linux"
From 73f6de6ce8d5dfeb54052e637281435f3f3a33be Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 18:46:41 +0200
Subject: [PATCH 2/3] rpi-kernel: cleanup template
* define kernel arch + cross globally
* fix typo ($arch -> $_arch)
* simplify "Remove unneeded architectures"
---
srcpkgs/rpi-kernel/template | 104 +++++++++++++++++-------------------
1 file changed, 48 insertions(+), 56 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index fe74326de4b..e0a5b2add46 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -41,76 +41,67 @@ mutable_files="
/usr/lib/modules/${_kernver}/modules.alias.bin
/usr/lib/modules/${_kernver}/modules.devname"
+_arch=
+case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch=arm ;;
+ aarch64*) _arch=arm64 ;;
+esac
+_cross=
+if [ "$CROSS_BUILD" ]; then
+ _cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
+fi
+
pre_configure() {
# Remove .git directory, otherwise scripts/setkernelversion.sh
# modifies KERNELRELEASE and appends + to it.
rm -rf .git
}
do_configure() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target defconfig
- # Use upstream default configuration, no need to maintain ours.
+ # Use upstream's default configuration, no need to maintain ours.
case "$XBPS_TARGET_MACHINE" in
- aarch64*)
- echo "CONFIG_CONNECTOR=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- make ${makejobs} ${_args} ARCH=arm64 bcmrpi3_defconfig
- ;;
- armv7l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcm2709_defconfig
- make ${makejobs} ${_args} ARCH=arm bcm2709_defconfig
- ;;
- armv6l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcmrpi_defconfig
- make ${makejobs} ${_args} ARCH=arm bcmrpi_defconfig
- ;;
+ # RPi3
+ aarch64*)
+ target=bcmrpi3_defconfig
+ ;;
+ # RPi2 / RPi3
+ armv7l*)
+ target=bcm2709_defconfig
+ ;;
+ # RPi1
+ armv6l*)
+ target=bcmrpi_defconfig
+ ;;
esac
+ defconfig="arch/${_arch}/configs/${target}"
+ echo "CONFIG_CONNECTOR=y" >> "$defconfig"
+ echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
+ echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
+ echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
+
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
- sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
+ vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
}
do_build() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target
case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch=arm
- _targets="zImage modules dtbs"
- ;;
- aarch64*)
- unset LDFLAGS
- _arch=arm64
- _targets="Image modules dtbs"
- ;;
+ arm*)
+ target="zImage modules dtbs"
+ ;;
+ aarch64*)
+ target="Image modules dtbs"
+ ;;
esac
- make ${makejobs} ${_args} ARCH=${_arch} prepare
- make ${makejobs} ${_args} ARCH=${_arch} ${_targets}
+ make ${makejobs} ${_cross} ARCH=${_arch} prepare
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
}
do_install() {
- case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch="arm"
- ;;
- aarch64*)
- _arch="arm64"
- ;;
- esac
-
local hdrdest
# Run depmod after compressing modules.
@@ -180,7 +171,7 @@ do_install() {
mkdir -p ${hdrdest}/arch/${_arch}
cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
- mkdir -p ${hdrdest}/arch/${arch}/kernel
+ mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
@@ -207,10 +198,11 @@ do_install() {
done
# Remove unneeded architectures
- for arch in alpha arc avr32 blackfin c6x cris frv h8300 \
- hexagon ia64 m* n* p* s* um v850 x86 xtensa; do
- rm -rf ${hdrdest}/arch/${arch}
- done
+ # (save the correct one + Kconfig and delete all others)
+ mkdir -p arch-backup
+ cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ rm -rf ${hdrdest}/arch
+ mv arch-backup ${hdrdest}/arch
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
From 2b3da5890a12cddc9ff45c4e8bdebe937f6c6ad4 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 25 Aug 2019 22:49:06 +0200
Subject: [PATCH 3/3] rpi-kernel-header: enable build of kernel modules
In order to get dkms to build on our beloved rpi...
* port b5fa1bd9b6ec04c20bc1fe01540295200ef552d9 from mainline template
* remove host built scripts and tools
* add missing includes
* install missing arch/arm64/kernel/vdso in linux-headers
* keep arch/x86/ras/Kconfig for all architectures
* add "clocksource" includes
[ci skip]
---
srcpkgs/rpi-kernel/template | 38 +++++++++++++++++++++++++++----------
1 file changed, 28 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index e0a5b2add46..5bb3e46ed84 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -10,7 +10,7 @@ _gitshort="${_githash:0:7}"
pkgname=rpi-kernel
version=4.19.75
-revision=1
+revision=2
wrksrc="linux-${_githash}"
maintainer="Peter Bui <pbui@github.bx612.space>"
homepage="http://www.kernel.org"
@@ -149,20 +149,39 @@ do_install() {
install -Dm644 Makefile ${hdrdest}/Makefile
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
install -Dm644 .config ${hdrdest}/.config
+ for file in $(find . -name Kconfig\*); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
+ for file in $(find arch/${_arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
mkdir -p ${hdrdest}/include
# Remove firmware stuff provided by the "linux-firmware" pkg.
rm -rf ${DESTDIR}/usr/lib/firmware
- for i in acpi asm-generic config crypto drm generated linux math-emu \
- media net pcmcia scsi sound trace uapi video xen; do
+ for i in acpi asm-generic clocksource config crypto drm generated linux \
+ math-emu media net pcmcia scsi sound trace uapi video xen; do
[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
done
cd ${wrksrc}
+ # Remove helper binaries built for host,
+ # if generated files from the scripts/ directory need to be included,
+ # they need to be copied to ${hdrdest} before this step
+ if [ "$CROSS_BUILD" ]; then
+ make ${makejobs} ARCH=${_arch} _mrproper_scripts
+ fi
+
# Copy files necessary for later builds.
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
+ mkdir -p ${hdrdest}/security/selinux
+ cp -a security/selinux/include ${hdrdest}/security/selinux
+ mkdir -p ${hdrdest}/tools/include
+ cp -a tools/include/tools ${hdrdest}/tools/include
# fix permissions on scripts dir
chmod og-w -R ${hdrdest}/scripts
@@ -174,6 +193,8 @@ do_install() {
mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
+ #FIXME: vdso for all arm*? if not, why not?
+ cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
# Add md headers
mkdir -p ${hdrdest}/drivers/md
@@ -191,18 +212,15 @@ do_install() {
mkdir -p ${hdrdest}/include/config/dvb/
cp include/config/dvb/*.h ${hdrdest}/include/config/dvb/
- # Copy in Kconfig files
- for i in $(find . -name "Kconfig*"); do
- mkdir -p ${hdrdest}/$(echo $i | sed 's|/Kconfig.*||')
- cp $i ${hdrdest}/$i
- done
-
# Remove unneeded architectures
# (save the correct one + Kconfig and delete all others)
mkdir -p arch-backup
- cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
rm -rf ${hdrdest}/arch
mv arch-backup ${hdrdest}/arch
+ # Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
+ mkdir -p ${hdrdest}/arch/x86/ras
+ cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] rpi-kernel: enable build of kernel modules
2019-09-29 18:40 [PR PATCH] [WIP] rpi-kernel: enable build of kernel modules voidlinux-github
2019-09-29 18:50 ` [PR PATCH] [Updated] " voidlinux-github
@ 2019-09-29 18:50 ` voidlinux-github
2019-09-29 18:53 ` voidlinux-github
` (7 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: voidlinux-github @ 2019-09-29 18:50 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 472 bytes --]
There is an updated pull request by Piraty against master on the void-packages repository
https://github.com/Piraty/void-packages rpi-kernel-fix-dkms
https://github.com/void-linux/void-packages/pull/14823
[WIP] rpi-kernel: enable build of kernel modules
Thanks to @marmeladema (#8480 , b5fa1bd9b6ec04c20bc1fe01540295200ef552d9) (and @Hoshpak for making me aware of this commit)
A patch file from https://github.com/void-linux/void-packages/pull/14823.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-rpi-kernel-fix-dkms-14823.patch --]
[-- Type: text/x-diff, Size: 10492 bytes --]
From 1a3e72ef48d24b384804c96a432464b28bba2e51 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 13:53:33 +0200
Subject: [PATCH 1/3] xbps-triggers: run `make scripts` with all cores
also, use `yes` to not get stuck on prompts (happened with
CONFIG_GCC_PLUGINGS).
---
srcpkgs/xbps-triggers/files/dkms | 2 +-
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/xbps-triggers/files/dkms b/srcpkgs/xbps-triggers/files/dkms
index 0f1fbb9ec0a..309f7fa97b5 100755
--- a/srcpkgs/xbps-triggers/files/dkms
+++ b/srcpkgs/xbps-triggers/files/dkms
@@ -72,7 +72,7 @@ add_modules() {
fi
if [ ! -f ${f}/build/scripts/basic/fixdep ] ; then
echo -n "Building scripts for kernel-${_kver}... "
- make -C ${f}/build scripts &> ${f}/build/make.log
+ yes "" | make -C -j$(nproc) ${f}/build scripts > ${f}/build/make.log 2>&1
if [ $? -eq 0 ]; then
echo "done."
else
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 4247352939c..178a2b10fd5 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,7 +1,7 @@
# Template file for 'xbps-triggers'
pkgname=xbps-triggers
version=0.113
-revision=1
+revision=2
archs=noarch
bootstrap=yes
short_desc="The XBPS triggers for Void Linux"
From 51bed2a5eac9d085aa8d07e508747f2364de21cc Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 18:46:41 +0200
Subject: [PATCH 2/3] rpi-kernel: cleanup template
* define kernel arch + cross globally
* fix typo ($arch -> $_arch)
* simplify "Remove unneeded architectures"
---
srcpkgs/rpi-kernel/template | 107 ++++++++++++++++--------------------
1 file changed, 48 insertions(+), 59 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index fe74326de4b..8cd8ad3b0ad 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -41,76 +41,67 @@ mutable_files="
/usr/lib/modules/${_kernver}/modules.alias.bin
/usr/lib/modules/${_kernver}/modules.devname"
+_arch=
+case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch=arm ;;
+ aarch64*) _arch=arm64 ;;
+esac
+_cross=
+if [ "$CROSS_BUILD" ]; then
+ _cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
+fi
+
pre_configure() {
# Remove .git directory, otherwise scripts/setkernelversion.sh
# modifies KERNELRELEASE and appends + to it.
rm -rf .git
}
do_configure() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target defconfig
- # Use upstream default configuration, no need to maintain ours.
+ # Use upstream's default configuration, no need to maintain ours.
case "$XBPS_TARGET_MACHINE" in
- aarch64*)
- echo "CONFIG_CONNECTOR=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- make ${makejobs} ${_args} ARCH=arm64 bcmrpi3_defconfig
- ;;
- armv7l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcm2709_defconfig
- make ${makejobs} ${_args} ARCH=arm bcm2709_defconfig
- ;;
- armv6l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcmrpi_defconfig
- make ${makejobs} ${_args} ARCH=arm bcmrpi_defconfig
- ;;
+ # RPi3
+ aarch64*)
+ target=bcmrpi3_defconfig
+ ;;
+ # RPi2 / RPi3
+ armv7l*)
+ target=bcm2709_defconfig
+ ;;
+ # RPi1
+ armv6l*)
+ target=bcmrpi_defconfig
+ ;;
esac
+ defconfig="arch/${_arch}/configs/${target}"
+ echo "CONFIG_CONNECTOR=y" >> "$defconfig"
+ echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
+ echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
+ echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
+
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
- sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
+ vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
}
do_build() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target
case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch=arm
- _targets="zImage modules dtbs"
- ;;
- aarch64*)
- unset LDFLAGS
- _arch=arm64
- _targets="Image modules dtbs"
- ;;
+ arm*)
+ target="zImage modules dtbs"
+ ;;
+ aarch64*)
+ target="Image modules dtbs"
+ ;;
esac
- make ${makejobs} ${_args} ARCH=${_arch} prepare
- make ${makejobs} ${_args} ARCH=${_arch} ${_targets}
+ make ${makejobs} ${_cross} ARCH=${_arch} prepare
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
}
do_install() {
- case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch="arm"
- ;;
- aarch64*)
- _arch="arm64"
- ;;
- esac
-
local hdrdest
# Run depmod after compressing modules.
@@ -173,14 +164,11 @@ do_install() {
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
- # fix permissions on scripts dir
- chmod og-w -R ${hdrdest}/scripts
-
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
- mkdir -p ${hdrdest}/arch/${arch}/kernel
+ mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
@@ -207,10 +195,11 @@ do_install() {
done
# Remove unneeded architectures
- for arch in alpha arc avr32 blackfin c6x cris frv h8300 \
- hexagon ia64 m* n* p* s* um v850 x86 xtensa; do
- rm -rf ${hdrdest}/arch/${arch}
- done
+ # (save the correct one + Kconfig and delete all others)
+ mkdir -p arch-backup
+ cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ rm -rf ${hdrdest}/arch
+ mv arch-backup ${hdrdest}/arch
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
From b80934cb6fc226cea6eca48759b7ac5e3295a95f Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 25 Aug 2019 22:49:06 +0200
Subject: [PATCH 3/3] rpi-kernel-header: enable build of kernel modules
In order to get dkms to build on our beloved rpi...
* port b5fa1bd9b6ec04c20bc1fe01540295200ef552d9 from mainline template
* remove host built scripts and tools
* add missing includes
* install missing arch/arm64/kernel/vdso in linux-headers
* keep arch/x86/ras/Kconfig for all architectures
* add "clocksource" includes
[ci skip]
---
srcpkgs/rpi-kernel/template | 38 +++++++++++++++++++++++++++----------
1 file changed, 28 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 8cd8ad3b0ad..44cc9dbe44b 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -10,7 +10,7 @@ _gitshort="${_githash:0:7}"
pkgname=rpi-kernel
version=4.19.75
-revision=1
+revision=2
wrksrc="linux-${_githash}"
maintainer="Peter Bui <pbui@github.bx612.space>"
homepage="http://www.kernel.org"
@@ -149,20 +149,39 @@ do_install() {
install -Dm644 Makefile ${hdrdest}/Makefile
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
install -Dm644 .config ${hdrdest}/.config
+ for file in $(find . -name Kconfig\*); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
+ for file in $(find arch/${_arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
mkdir -p ${hdrdest}/include
# Remove firmware stuff provided by the "linux-firmware" pkg.
rm -rf ${DESTDIR}/usr/lib/firmware
- for i in acpi asm-generic config crypto drm generated linux math-emu \
- media net pcmcia scsi sound trace uapi video xen; do
+ for i in acpi asm-generic clocksource config crypto drm generated linux \
+ math-emu media net pcmcia scsi sound trace uapi video xen; do
[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
done
cd ${wrksrc}
+ # Remove helper binaries built for host,
+ # if generated files from the scripts/ directory need to be included,
+ # they need to be copied to ${hdrdest} before this step
+ if [ "$CROSS_BUILD" ]; then
+ make ${makejobs} ARCH=${_arch} _mrproper_scripts
+ fi
+
# Copy files necessary for later builds.
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
+ mkdir -p ${hdrdest}/security/selinux
+ cp -a security/selinux/include ${hdrdest}/security/selinux
+ mkdir -p ${hdrdest}/tools/include
+ cp -a tools/include/tools ${hdrdest}/tools/include
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
@@ -171,6 +190,8 @@ do_install() {
mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
+ #FIXME: vdso for all arm*? if not, why not?
+ cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
# Add md headers
mkdir -p ${hdrdest}/drivers/md
@@ -188,18 +209,15 @@ do_install() {
mkdir -p ${hdrdest}/include/config/dvb/
cp include/config/dvb/*.h ${hdrdest}/include/config/dvb/
- # Copy in Kconfig files
- for i in $(find . -name "Kconfig*"); do
- mkdir -p ${hdrdest}/$(echo $i | sed 's|/Kconfig.*||')
- cp $i ${hdrdest}/$i
- done
-
# Remove unneeded architectures
# (save the correct one + Kconfig and delete all others)
mkdir -p arch-backup
- cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
rm -rf ${hdrdest}/arch
mv arch-backup ${hdrdest}/arch
+ # Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
+ mkdir -p ${hdrdest}/arch/x86/ras
+ cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] rpi-kernel: enable build of kernel modules
2019-09-29 18:40 [PR PATCH] [WIP] rpi-kernel: enable build of kernel modules voidlinux-github
@ 2019-09-29 18:50 ` voidlinux-github
2019-09-29 18:50 ` voidlinux-github
` (8 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: voidlinux-github @ 2019-09-29 18:50 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 472 bytes --]
There is an updated pull request by Piraty against master on the void-packages repository
https://github.com/Piraty/void-packages rpi-kernel-fix-dkms
https://github.com/void-linux/void-packages/pull/14823
[WIP] rpi-kernel: enable build of kernel modules
Thanks to @marmeladema (#8480 , b5fa1bd9b6ec04c20bc1fe01540295200ef552d9) (and @Hoshpak for making me aware of this commit)
A patch file from https://github.com/void-linux/void-packages/pull/14823.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-rpi-kernel-fix-dkms-14823.patch --]
[-- Type: text/x-diff, Size: 10492 bytes --]
From 1a3e72ef48d24b384804c96a432464b28bba2e51 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 13:53:33 +0200
Subject: [PATCH 1/3] xbps-triggers: run `make scripts` with all cores
also, use `yes` to not get stuck on prompts (happened with
CONFIG_GCC_PLUGINGS).
---
srcpkgs/xbps-triggers/files/dkms | 2 +-
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/xbps-triggers/files/dkms b/srcpkgs/xbps-triggers/files/dkms
index 0f1fbb9ec0a..309f7fa97b5 100755
--- a/srcpkgs/xbps-triggers/files/dkms
+++ b/srcpkgs/xbps-triggers/files/dkms
@@ -72,7 +72,7 @@ add_modules() {
fi
if [ ! -f ${f}/build/scripts/basic/fixdep ] ; then
echo -n "Building scripts for kernel-${_kver}... "
- make -C ${f}/build scripts &> ${f}/build/make.log
+ yes "" | make -C -j$(nproc) ${f}/build scripts > ${f}/build/make.log 2>&1
if [ $? -eq 0 ]; then
echo "done."
else
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 4247352939c..178a2b10fd5 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,7 +1,7 @@
# Template file for 'xbps-triggers'
pkgname=xbps-triggers
version=0.113
-revision=1
+revision=2
archs=noarch
bootstrap=yes
short_desc="The XBPS triggers for Void Linux"
From 51bed2a5eac9d085aa8d07e508747f2364de21cc Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 18:46:41 +0200
Subject: [PATCH 2/3] rpi-kernel: cleanup template
* define kernel arch + cross globally
* fix typo ($arch -> $_arch)
* simplify "Remove unneeded architectures"
---
srcpkgs/rpi-kernel/template | 107 ++++++++++++++++--------------------
1 file changed, 48 insertions(+), 59 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index fe74326de4b..8cd8ad3b0ad 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -41,76 +41,67 @@ mutable_files="
/usr/lib/modules/${_kernver}/modules.alias.bin
/usr/lib/modules/${_kernver}/modules.devname"
+_arch=
+case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch=arm ;;
+ aarch64*) _arch=arm64 ;;
+esac
+_cross=
+if [ "$CROSS_BUILD" ]; then
+ _cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
+fi
+
pre_configure() {
# Remove .git directory, otherwise scripts/setkernelversion.sh
# modifies KERNELRELEASE and appends + to it.
rm -rf .git
}
do_configure() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target defconfig
- # Use upstream default configuration, no need to maintain ours.
+ # Use upstream's default configuration, no need to maintain ours.
case "$XBPS_TARGET_MACHINE" in
- aarch64*)
- echo "CONFIG_CONNECTOR=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- make ${makejobs} ${_args} ARCH=arm64 bcmrpi3_defconfig
- ;;
- armv7l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcm2709_defconfig
- make ${makejobs} ${_args} ARCH=arm bcm2709_defconfig
- ;;
- armv6l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcmrpi_defconfig
- make ${makejobs} ${_args} ARCH=arm bcmrpi_defconfig
- ;;
+ # RPi3
+ aarch64*)
+ target=bcmrpi3_defconfig
+ ;;
+ # RPi2 / RPi3
+ armv7l*)
+ target=bcm2709_defconfig
+ ;;
+ # RPi1
+ armv6l*)
+ target=bcmrpi_defconfig
+ ;;
esac
+ defconfig="arch/${_arch}/configs/${target}"
+ echo "CONFIG_CONNECTOR=y" >> "$defconfig"
+ echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
+ echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
+ echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
+
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
- sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
+ vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
}
do_build() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target
case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch=arm
- _targets="zImage modules dtbs"
- ;;
- aarch64*)
- unset LDFLAGS
- _arch=arm64
- _targets="Image modules dtbs"
- ;;
+ arm*)
+ target="zImage modules dtbs"
+ ;;
+ aarch64*)
+ target="Image modules dtbs"
+ ;;
esac
- make ${makejobs} ${_args} ARCH=${_arch} prepare
- make ${makejobs} ${_args} ARCH=${_arch} ${_targets}
+ make ${makejobs} ${_cross} ARCH=${_arch} prepare
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
}
do_install() {
- case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch="arm"
- ;;
- aarch64*)
- _arch="arm64"
- ;;
- esac
-
local hdrdest
# Run depmod after compressing modules.
@@ -173,14 +164,11 @@ do_install() {
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
- # fix permissions on scripts dir
- chmod og-w -R ${hdrdest}/scripts
-
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
- mkdir -p ${hdrdest}/arch/${arch}/kernel
+ mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
@@ -207,10 +195,11 @@ do_install() {
done
# Remove unneeded architectures
- for arch in alpha arc avr32 blackfin c6x cris frv h8300 \
- hexagon ia64 m* n* p* s* um v850 x86 xtensa; do
- rm -rf ${hdrdest}/arch/${arch}
- done
+ # (save the correct one + Kconfig and delete all others)
+ mkdir -p arch-backup
+ cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ rm -rf ${hdrdest}/arch
+ mv arch-backup ${hdrdest}/arch
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
From b80934cb6fc226cea6eca48759b7ac5e3295a95f Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 25 Aug 2019 22:49:06 +0200
Subject: [PATCH 3/3] rpi-kernel-header: enable build of kernel modules
In order to get dkms to build on our beloved rpi...
* port b5fa1bd9b6ec04c20bc1fe01540295200ef552d9 from mainline template
* remove host built scripts and tools
* add missing includes
* install missing arch/arm64/kernel/vdso in linux-headers
* keep arch/x86/ras/Kconfig for all architectures
* add "clocksource" includes
[ci skip]
---
srcpkgs/rpi-kernel/template | 38 +++++++++++++++++++++++++++----------
1 file changed, 28 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 8cd8ad3b0ad..44cc9dbe44b 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -10,7 +10,7 @@ _gitshort="${_githash:0:7}"
pkgname=rpi-kernel
version=4.19.75
-revision=1
+revision=2
wrksrc="linux-${_githash}"
maintainer="Peter Bui <pbui@github.bx612.space>"
homepage="http://www.kernel.org"
@@ -149,20 +149,39 @@ do_install() {
install -Dm644 Makefile ${hdrdest}/Makefile
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
install -Dm644 .config ${hdrdest}/.config
+ for file in $(find . -name Kconfig\*); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
+ for file in $(find arch/${_arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
mkdir -p ${hdrdest}/include
# Remove firmware stuff provided by the "linux-firmware" pkg.
rm -rf ${DESTDIR}/usr/lib/firmware
- for i in acpi asm-generic config crypto drm generated linux math-emu \
- media net pcmcia scsi sound trace uapi video xen; do
+ for i in acpi asm-generic clocksource config crypto drm generated linux \
+ math-emu media net pcmcia scsi sound trace uapi video xen; do
[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
done
cd ${wrksrc}
+ # Remove helper binaries built for host,
+ # if generated files from the scripts/ directory need to be included,
+ # they need to be copied to ${hdrdest} before this step
+ if [ "$CROSS_BUILD" ]; then
+ make ${makejobs} ARCH=${_arch} _mrproper_scripts
+ fi
+
# Copy files necessary for later builds.
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
+ mkdir -p ${hdrdest}/security/selinux
+ cp -a security/selinux/include ${hdrdest}/security/selinux
+ mkdir -p ${hdrdest}/tools/include
+ cp -a tools/include/tools ${hdrdest}/tools/include
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
@@ -171,6 +190,8 @@ do_install() {
mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
+ #FIXME: vdso for all arm*? if not, why not?
+ cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
# Add md headers
mkdir -p ${hdrdest}/drivers/md
@@ -188,18 +209,15 @@ do_install() {
mkdir -p ${hdrdest}/include/config/dvb/
cp include/config/dvb/*.h ${hdrdest}/include/config/dvb/
- # Copy in Kconfig files
- for i in $(find . -name "Kconfig*"); do
- mkdir -p ${hdrdest}/$(echo $i | sed 's|/Kconfig.*||')
- cp $i ${hdrdest}/$i
- done
-
# Remove unneeded architectures
# (save the correct one + Kconfig and delete all others)
mkdir -p arch-backup
- cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
rm -rf ${hdrdest}/arch
mv arch-backup ${hdrdest}/arch
+ # Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
+ mkdir -p ${hdrdest}/arch/x86/ras
+ cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] rpi-kernel: enable build of kernel modules
2019-09-29 18:40 [PR PATCH] [WIP] rpi-kernel: enable build of kernel modules voidlinux-github
2019-09-29 18:50 ` [PR PATCH] [Updated] " voidlinux-github
2019-09-29 18:50 ` voidlinux-github
@ 2019-09-29 18:53 ` voidlinux-github
2019-09-29 18:53 ` voidlinux-github
` (6 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: voidlinux-github @ 2019-09-29 18:53 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 472 bytes --]
There is an updated pull request by Piraty against master on the void-packages repository
https://github.com/Piraty/void-packages rpi-kernel-fix-dkms
https://github.com/void-linux/void-packages/pull/14823
[WIP] rpi-kernel: enable build of kernel modules
Thanks to @marmeladema (#8480 , b5fa1bd9b6ec04c20bc1fe01540295200ef552d9) (and @Hoshpak for making me aware of this commit)
A patch file from https://github.com/void-linux/void-packages/pull/14823.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-rpi-kernel-fix-dkms-14823.patch --]
[-- Type: text/x-diff, Size: 10635 bytes --]
From 1a3e72ef48d24b384804c96a432464b28bba2e51 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 13:53:33 +0200
Subject: [PATCH 1/3] xbps-triggers: run `make scripts` with all cores
also, use `yes` to not get stuck on prompts (happened with
CONFIG_GCC_PLUGINGS).
---
srcpkgs/xbps-triggers/files/dkms | 2 +-
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/xbps-triggers/files/dkms b/srcpkgs/xbps-triggers/files/dkms
index 0f1fbb9ec0a..309f7fa97b5 100755
--- a/srcpkgs/xbps-triggers/files/dkms
+++ b/srcpkgs/xbps-triggers/files/dkms
@@ -72,7 +72,7 @@ add_modules() {
fi
if [ ! -f ${f}/build/scripts/basic/fixdep ] ; then
echo -n "Building scripts for kernel-${_kver}... "
- make -C ${f}/build scripts &> ${f}/build/make.log
+ yes "" | make -C -j$(nproc) ${f}/build scripts > ${f}/build/make.log 2>&1
if [ $? -eq 0 ]; then
echo "done."
else
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 4247352939c..178a2b10fd5 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,7 +1,7 @@
# Template file for 'xbps-triggers'
pkgname=xbps-triggers
version=0.113
-revision=1
+revision=2
archs=noarch
bootstrap=yes
short_desc="The XBPS triggers for Void Linux"
From 51bed2a5eac9d085aa8d07e508747f2364de21cc Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 18:46:41 +0200
Subject: [PATCH 2/3] rpi-kernel: cleanup template
* define kernel arch + cross globally
* fix typo ($arch -> $_arch)
* simplify "Remove unneeded architectures"
---
srcpkgs/rpi-kernel/template | 107 ++++++++++++++++--------------------
1 file changed, 48 insertions(+), 59 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index fe74326de4b..8cd8ad3b0ad 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -41,76 +41,67 @@ mutable_files="
/usr/lib/modules/${_kernver}/modules.alias.bin
/usr/lib/modules/${_kernver}/modules.devname"
+_arch=
+case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch=arm ;;
+ aarch64*) _arch=arm64 ;;
+esac
+_cross=
+if [ "$CROSS_BUILD" ]; then
+ _cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
+fi
+
pre_configure() {
# Remove .git directory, otherwise scripts/setkernelversion.sh
# modifies KERNELRELEASE and appends + to it.
rm -rf .git
}
do_configure() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target defconfig
- # Use upstream default configuration, no need to maintain ours.
+ # Use upstream's default configuration, no need to maintain ours.
case "$XBPS_TARGET_MACHINE" in
- aarch64*)
- echo "CONFIG_CONNECTOR=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- make ${makejobs} ${_args} ARCH=arm64 bcmrpi3_defconfig
- ;;
- armv7l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcm2709_defconfig
- make ${makejobs} ${_args} ARCH=arm bcm2709_defconfig
- ;;
- armv6l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcmrpi_defconfig
- make ${makejobs} ${_args} ARCH=arm bcmrpi_defconfig
- ;;
+ # RPi3
+ aarch64*)
+ target=bcmrpi3_defconfig
+ ;;
+ # RPi2 / RPi3
+ armv7l*)
+ target=bcm2709_defconfig
+ ;;
+ # RPi1
+ armv6l*)
+ target=bcmrpi_defconfig
+ ;;
esac
+ defconfig="arch/${_arch}/configs/${target}"
+ echo "CONFIG_CONNECTOR=y" >> "$defconfig"
+ echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
+ echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
+ echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
+
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
- sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
+ vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
}
do_build() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target
case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch=arm
- _targets="zImage modules dtbs"
- ;;
- aarch64*)
- unset LDFLAGS
- _arch=arm64
- _targets="Image modules dtbs"
- ;;
+ arm*)
+ target="zImage modules dtbs"
+ ;;
+ aarch64*)
+ target="Image modules dtbs"
+ ;;
esac
- make ${makejobs} ${_args} ARCH=${_arch} prepare
- make ${makejobs} ${_args} ARCH=${_arch} ${_targets}
+ make ${makejobs} ${_cross} ARCH=${_arch} prepare
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
}
do_install() {
- case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch="arm"
- ;;
- aarch64*)
- _arch="arm64"
- ;;
- esac
-
local hdrdest
# Run depmod after compressing modules.
@@ -173,14 +164,11 @@ do_install() {
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
- # fix permissions on scripts dir
- chmod og-w -R ${hdrdest}/scripts
-
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
- mkdir -p ${hdrdest}/arch/${arch}/kernel
+ mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
@@ -207,10 +195,11 @@ do_install() {
done
# Remove unneeded architectures
- for arch in alpha arc avr32 blackfin c6x cris frv h8300 \
- hexagon ia64 m* n* p* s* um v850 x86 xtensa; do
- rm -rf ${hdrdest}/arch/${arch}
- done
+ # (save the correct one + Kconfig and delete all others)
+ mkdir -p arch-backup
+ cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ rm -rf ${hdrdest}/arch
+ mv arch-backup ${hdrdest}/arch
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
From 8b7b661c90a1d2aa259d9eaa6661a6ae4df006d2 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 25 Aug 2019 22:49:06 +0200
Subject: [PATCH 3/3] rpi-kernel-header: enable build of kernel modules
In order to get dkms to build on our beloved rpi...
* port b5fa1bd9b6ec04c20bc1fe01540295200ef552d9 from mainline template
* remove host built scripts and tools
* add missing includes
* install missing arch/arm64/kernel/vdso in linux-headers
* keep arch/x86/ras/Kconfig for all architectures
* add "clocksource" includes
[ci skip]
---
srcpkgs/rpi-kernel/template | 39 +++++++++++++++++++++++++++----------
1 file changed, 29 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 8cd8ad3b0ad..6ca3e293393 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -10,7 +10,7 @@ _gitshort="${_githash:0:7}"
pkgname=rpi-kernel
version=4.19.75
-revision=1
+revision=2
wrksrc="linux-${_githash}"
maintainer="Peter Bui <pbui@github.bx612.space>"
homepage="http://www.kernel.org"
@@ -149,20 +149,39 @@ do_install() {
install -Dm644 Makefile ${hdrdest}/Makefile
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
install -Dm644 .config ${hdrdest}/.config
+ for file in $(find . -name Kconfig\*); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
+ for file in $(find arch/${_arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
mkdir -p ${hdrdest}/include
# Remove firmware stuff provided by the "linux-firmware" pkg.
rm -rf ${DESTDIR}/usr/lib/firmware
- for i in acpi asm-generic config crypto drm generated linux math-emu \
- media net pcmcia scsi sound trace uapi video xen; do
+ for i in acpi asm-generic clocksource config crypto drm generated linux \
+ math-emu media net pcmcia scsi sound trace uapi video xen; do
[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
done
cd ${wrksrc}
+ # Remove helper binaries built for host,
+ # if generated files from the scripts/ directory need to be included,
+ # they need to be copied to ${hdrdest} before this step
+ if [ "$CROSS_BUILD" ]; then
+ make ${makejobs} ARCH=${_arch} _mrproper_scripts
+ fi
+
# Copy files necessary for later builds.
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
+ mkdir -p ${hdrdest}/security/selinux
+ cp -a security/selinux/include ${hdrdest}/security/selinux
+ mkdir -p ${hdrdest}/tools/include
+ cp -a tools/include/tools ${hdrdest}/tools/include
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
@@ -171,6 +190,9 @@ do_install() {
mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
+ #FIXME: vdso for all arm*? if not, why not?
+ # see: https://github.com/void-linux/void-packages/commit/b5fa1bd9b6ec04c20bc1fe01540295200ef552d9#diff-fd3d27bc6e3312ca18b9eab6fb4ffd8aR203
+ cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
# Add md headers
mkdir -p ${hdrdest}/drivers/md
@@ -188,18 +210,15 @@ do_install() {
mkdir -p ${hdrdest}/include/config/dvb/
cp include/config/dvb/*.h ${hdrdest}/include/config/dvb/
- # Copy in Kconfig files
- for i in $(find . -name "Kconfig*"); do
- mkdir -p ${hdrdest}/$(echo $i | sed 's|/Kconfig.*||')
- cp $i ${hdrdest}/$i
- done
-
# Remove unneeded architectures
# (save the correct one + Kconfig and delete all others)
mkdir -p arch-backup
- cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
rm -rf ${hdrdest}/arch
mv arch-backup ${hdrdest}/arch
+ # Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
+ mkdir -p ${hdrdest}/arch/x86/ras
+ cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] rpi-kernel: enable build of kernel modules
2019-09-29 18:40 [PR PATCH] [WIP] rpi-kernel: enable build of kernel modules voidlinux-github
` (2 preceding siblings ...)
2019-09-29 18:53 ` voidlinux-github
@ 2019-09-29 18:53 ` voidlinux-github
2019-09-30 13:54 ` voidlinux-github
` (5 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: voidlinux-github @ 2019-09-29 18:53 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 472 bytes --]
There is an updated pull request by Piraty against master on the void-packages repository
https://github.com/Piraty/void-packages rpi-kernel-fix-dkms
https://github.com/void-linux/void-packages/pull/14823
[WIP] rpi-kernel: enable build of kernel modules
Thanks to @marmeladema (#8480 , b5fa1bd9b6ec04c20bc1fe01540295200ef552d9) (and @Hoshpak for making me aware of this commit)
A patch file from https://github.com/void-linux/void-packages/pull/14823.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-rpi-kernel-fix-dkms-14823.patch --]
[-- Type: text/x-diff, Size: 10635 bytes --]
From 1a3e72ef48d24b384804c96a432464b28bba2e51 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 13:53:33 +0200
Subject: [PATCH 1/3] xbps-triggers: run `make scripts` with all cores
also, use `yes` to not get stuck on prompts (happened with
CONFIG_GCC_PLUGINGS).
---
srcpkgs/xbps-triggers/files/dkms | 2 +-
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/xbps-triggers/files/dkms b/srcpkgs/xbps-triggers/files/dkms
index 0f1fbb9ec0a..309f7fa97b5 100755
--- a/srcpkgs/xbps-triggers/files/dkms
+++ b/srcpkgs/xbps-triggers/files/dkms
@@ -72,7 +72,7 @@ add_modules() {
fi
if [ ! -f ${f}/build/scripts/basic/fixdep ] ; then
echo -n "Building scripts for kernel-${_kver}... "
- make -C ${f}/build scripts &> ${f}/build/make.log
+ yes "" | make -C -j$(nproc) ${f}/build scripts > ${f}/build/make.log 2>&1
if [ $? -eq 0 ]; then
echo "done."
else
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 4247352939c..178a2b10fd5 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,7 +1,7 @@
# Template file for 'xbps-triggers'
pkgname=xbps-triggers
version=0.113
-revision=1
+revision=2
archs=noarch
bootstrap=yes
short_desc="The XBPS triggers for Void Linux"
From 51bed2a5eac9d085aa8d07e508747f2364de21cc Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 18:46:41 +0200
Subject: [PATCH 2/3] rpi-kernel: cleanup template
* define kernel arch + cross globally
* fix typo ($arch -> $_arch)
* simplify "Remove unneeded architectures"
---
srcpkgs/rpi-kernel/template | 107 ++++++++++++++++--------------------
1 file changed, 48 insertions(+), 59 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index fe74326de4b..8cd8ad3b0ad 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -41,76 +41,67 @@ mutable_files="
/usr/lib/modules/${_kernver}/modules.alias.bin
/usr/lib/modules/${_kernver}/modules.devname"
+_arch=
+case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch=arm ;;
+ aarch64*) _arch=arm64 ;;
+esac
+_cross=
+if [ "$CROSS_BUILD" ]; then
+ _cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
+fi
+
pre_configure() {
# Remove .git directory, otherwise scripts/setkernelversion.sh
# modifies KERNELRELEASE and appends + to it.
rm -rf .git
}
do_configure() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target defconfig
- # Use upstream default configuration, no need to maintain ours.
+ # Use upstream's default configuration, no need to maintain ours.
case "$XBPS_TARGET_MACHINE" in
- aarch64*)
- echo "CONFIG_CONNECTOR=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- make ${makejobs} ${_args} ARCH=arm64 bcmrpi3_defconfig
- ;;
- armv7l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcm2709_defconfig
- make ${makejobs} ${_args} ARCH=arm bcm2709_defconfig
- ;;
- armv6l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcmrpi_defconfig
- make ${makejobs} ${_args} ARCH=arm bcmrpi_defconfig
- ;;
+ # RPi3
+ aarch64*)
+ target=bcmrpi3_defconfig
+ ;;
+ # RPi2 / RPi3
+ armv7l*)
+ target=bcm2709_defconfig
+ ;;
+ # RPi1
+ armv6l*)
+ target=bcmrpi_defconfig
+ ;;
esac
+ defconfig="arch/${_arch}/configs/${target}"
+ echo "CONFIG_CONNECTOR=y" >> "$defconfig"
+ echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
+ echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
+ echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
+
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
- sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
+ vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
}
do_build() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target
case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch=arm
- _targets="zImage modules dtbs"
- ;;
- aarch64*)
- unset LDFLAGS
- _arch=arm64
- _targets="Image modules dtbs"
- ;;
+ arm*)
+ target="zImage modules dtbs"
+ ;;
+ aarch64*)
+ target="Image modules dtbs"
+ ;;
esac
- make ${makejobs} ${_args} ARCH=${_arch} prepare
- make ${makejobs} ${_args} ARCH=${_arch} ${_targets}
+ make ${makejobs} ${_cross} ARCH=${_arch} prepare
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
}
do_install() {
- case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch="arm"
- ;;
- aarch64*)
- _arch="arm64"
- ;;
- esac
-
local hdrdest
# Run depmod after compressing modules.
@@ -173,14 +164,11 @@ do_install() {
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
- # fix permissions on scripts dir
- chmod og-w -R ${hdrdest}/scripts
-
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
- mkdir -p ${hdrdest}/arch/${arch}/kernel
+ mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
@@ -207,10 +195,11 @@ do_install() {
done
# Remove unneeded architectures
- for arch in alpha arc avr32 blackfin c6x cris frv h8300 \
- hexagon ia64 m* n* p* s* um v850 x86 xtensa; do
- rm -rf ${hdrdest}/arch/${arch}
- done
+ # (save the correct one + Kconfig and delete all others)
+ mkdir -p arch-backup
+ cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ rm -rf ${hdrdest}/arch
+ mv arch-backup ${hdrdest}/arch
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
From 8b7b661c90a1d2aa259d9eaa6661a6ae4df006d2 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 25 Aug 2019 22:49:06 +0200
Subject: [PATCH 3/3] rpi-kernel-header: enable build of kernel modules
In order to get dkms to build on our beloved rpi...
* port b5fa1bd9b6ec04c20bc1fe01540295200ef552d9 from mainline template
* remove host built scripts and tools
* add missing includes
* install missing arch/arm64/kernel/vdso in linux-headers
* keep arch/x86/ras/Kconfig for all architectures
* add "clocksource" includes
[ci skip]
---
srcpkgs/rpi-kernel/template | 39 +++++++++++++++++++++++++++----------
1 file changed, 29 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 8cd8ad3b0ad..6ca3e293393 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -10,7 +10,7 @@ _gitshort="${_githash:0:7}"
pkgname=rpi-kernel
version=4.19.75
-revision=1
+revision=2
wrksrc="linux-${_githash}"
maintainer="Peter Bui <pbui@github.bx612.space>"
homepage="http://www.kernel.org"
@@ -149,20 +149,39 @@ do_install() {
install -Dm644 Makefile ${hdrdest}/Makefile
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
install -Dm644 .config ${hdrdest}/.config
+ for file in $(find . -name Kconfig\*); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
+ for file in $(find arch/${_arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
mkdir -p ${hdrdest}/include
# Remove firmware stuff provided by the "linux-firmware" pkg.
rm -rf ${DESTDIR}/usr/lib/firmware
- for i in acpi asm-generic config crypto drm generated linux math-emu \
- media net pcmcia scsi sound trace uapi video xen; do
+ for i in acpi asm-generic clocksource config crypto drm generated linux \
+ math-emu media net pcmcia scsi sound trace uapi video xen; do
[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
done
cd ${wrksrc}
+ # Remove helper binaries built for host,
+ # if generated files from the scripts/ directory need to be included,
+ # they need to be copied to ${hdrdest} before this step
+ if [ "$CROSS_BUILD" ]; then
+ make ${makejobs} ARCH=${_arch} _mrproper_scripts
+ fi
+
# Copy files necessary for later builds.
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
+ mkdir -p ${hdrdest}/security/selinux
+ cp -a security/selinux/include ${hdrdest}/security/selinux
+ mkdir -p ${hdrdest}/tools/include
+ cp -a tools/include/tools ${hdrdest}/tools/include
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
@@ -171,6 +190,9 @@ do_install() {
mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
+ #FIXME: vdso for all arm*? if not, why not?
+ # see: https://github.com/void-linux/void-packages/commit/b5fa1bd9b6ec04c20bc1fe01540295200ef552d9#diff-fd3d27bc6e3312ca18b9eab6fb4ffd8aR203
+ cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
# Add md headers
mkdir -p ${hdrdest}/drivers/md
@@ -188,18 +210,15 @@ do_install() {
mkdir -p ${hdrdest}/include/config/dvb/
cp include/config/dvb/*.h ${hdrdest}/include/config/dvb/
- # Copy in Kconfig files
- for i in $(find . -name "Kconfig*"); do
- mkdir -p ${hdrdest}/$(echo $i | sed 's|/Kconfig.*||')
- cp $i ${hdrdest}/$i
- done
-
# Remove unneeded architectures
# (save the correct one + Kconfig and delete all others)
mkdir -p arch-backup
- cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
rm -rf ${hdrdest}/arch
mv arch-backup ${hdrdest}/arch
+ # Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
+ mkdir -p ${hdrdest}/arch/x86/ras
+ cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] rpi-kernel: enable build of kernel modules
2019-09-29 18:40 [PR PATCH] [WIP] rpi-kernel: enable build of kernel modules voidlinux-github
` (4 preceding siblings ...)
2019-09-30 13:54 ` voidlinux-github
@ 2019-09-30 13:54 ` voidlinux-github
2019-09-30 13:55 ` voidlinux-github
` (3 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: voidlinux-github @ 2019-09-30 13:54 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 472 bytes --]
There is an updated pull request by Piraty against master on the void-packages repository
https://github.com/Piraty/void-packages rpi-kernel-fix-dkms
https://github.com/void-linux/void-packages/pull/14823
[WIP] rpi-kernel: enable build of kernel modules
Thanks to @marmeladema (#8480 , b5fa1bd9b6ec04c20bc1fe01540295200ef552d9) (and @Hoshpak for making me aware of this commit)
A patch file from https://github.com/void-linux/void-packages/pull/14823.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-rpi-kernel-fix-dkms-14823.patch --]
[-- Type: text/x-diff, Size: 10490 bytes --]
From 1a3e72ef48d24b384804c96a432464b28bba2e51 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 13:53:33 +0200
Subject: [PATCH 1/3] xbps-triggers: run `make scripts` with all cores
also, use `yes` to not get stuck on prompts (happened with
CONFIG_GCC_PLUGINGS).
---
srcpkgs/xbps-triggers/files/dkms | 2 +-
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/xbps-triggers/files/dkms b/srcpkgs/xbps-triggers/files/dkms
index 0f1fbb9ec0a..309f7fa97b5 100755
--- a/srcpkgs/xbps-triggers/files/dkms
+++ b/srcpkgs/xbps-triggers/files/dkms
@@ -72,7 +72,7 @@ add_modules() {
fi
if [ ! -f ${f}/build/scripts/basic/fixdep ] ; then
echo -n "Building scripts for kernel-${_kver}... "
- make -C ${f}/build scripts &> ${f}/build/make.log
+ yes "" | make -C -j$(nproc) ${f}/build scripts > ${f}/build/make.log 2>&1
if [ $? -eq 0 ]; then
echo "done."
else
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 4247352939c..178a2b10fd5 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,7 +1,7 @@
# Template file for 'xbps-triggers'
pkgname=xbps-triggers
version=0.113
-revision=1
+revision=2
archs=noarch
bootstrap=yes
short_desc="The XBPS triggers for Void Linux"
From 51bed2a5eac9d085aa8d07e508747f2364de21cc Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 18:46:41 +0200
Subject: [PATCH 2/3] rpi-kernel: cleanup template
* define kernel arch + cross globally
* fix typo ($arch -> $_arch)
* simplify "Remove unneeded architectures"
---
srcpkgs/rpi-kernel/template | 107 ++++++++++++++++--------------------
1 file changed, 48 insertions(+), 59 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index fe74326de4b..8cd8ad3b0ad 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -41,76 +41,67 @@ mutable_files="
/usr/lib/modules/${_kernver}/modules.alias.bin
/usr/lib/modules/${_kernver}/modules.devname"
+_arch=
+case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch=arm ;;
+ aarch64*) _arch=arm64 ;;
+esac
+_cross=
+if [ "$CROSS_BUILD" ]; then
+ _cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
+fi
+
pre_configure() {
# Remove .git directory, otherwise scripts/setkernelversion.sh
# modifies KERNELRELEASE and appends + to it.
rm -rf .git
}
do_configure() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target defconfig
- # Use upstream default configuration, no need to maintain ours.
+ # Use upstream's default configuration, no need to maintain ours.
case "$XBPS_TARGET_MACHINE" in
- aarch64*)
- echo "CONFIG_CONNECTOR=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- make ${makejobs} ${_args} ARCH=arm64 bcmrpi3_defconfig
- ;;
- armv7l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcm2709_defconfig
- make ${makejobs} ${_args} ARCH=arm bcm2709_defconfig
- ;;
- armv6l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcmrpi_defconfig
- make ${makejobs} ${_args} ARCH=arm bcmrpi_defconfig
- ;;
+ # RPi3
+ aarch64*)
+ target=bcmrpi3_defconfig
+ ;;
+ # RPi2 / RPi3
+ armv7l*)
+ target=bcm2709_defconfig
+ ;;
+ # RPi1
+ armv6l*)
+ target=bcmrpi_defconfig
+ ;;
esac
+ defconfig="arch/${_arch}/configs/${target}"
+ echo "CONFIG_CONNECTOR=y" >> "$defconfig"
+ echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
+ echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
+ echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
+
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
- sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
+ vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
}
do_build() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target
case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch=arm
- _targets="zImage modules dtbs"
- ;;
- aarch64*)
- unset LDFLAGS
- _arch=arm64
- _targets="Image modules dtbs"
- ;;
+ arm*)
+ target="zImage modules dtbs"
+ ;;
+ aarch64*)
+ target="Image modules dtbs"
+ ;;
esac
- make ${makejobs} ${_args} ARCH=${_arch} prepare
- make ${makejobs} ${_args} ARCH=${_arch} ${_targets}
+ make ${makejobs} ${_cross} ARCH=${_arch} prepare
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
}
do_install() {
- case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch="arm"
- ;;
- aarch64*)
- _arch="arm64"
- ;;
- esac
-
local hdrdest
# Run depmod after compressing modules.
@@ -173,14 +164,11 @@ do_install() {
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
- # fix permissions on scripts dir
- chmod og-w -R ${hdrdest}/scripts
-
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
- mkdir -p ${hdrdest}/arch/${arch}/kernel
+ mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
@@ -207,10 +195,11 @@ do_install() {
done
# Remove unneeded architectures
- for arch in alpha arc avr32 blackfin c6x cris frv h8300 \
- hexagon ia64 m* n* p* s* um v850 x86 xtensa; do
- rm -rf ${hdrdest}/arch/${arch}
- done
+ # (save the correct one + Kconfig and delete all others)
+ mkdir -p arch-backup
+ cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ rm -rf ${hdrdest}/arch
+ mv arch-backup ${hdrdest}/arch
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
From 430d35f9c4bc4a7cc0779e40ea38cb385d5cff94 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 25 Aug 2019 22:49:06 +0200
Subject: [PATCH 3/3] rpi-kernel-header: enable build of kernel modules
In order to get dkms to build on our beloved rpi...
* port b5fa1bd9b6ec04c20bc1fe01540295200ef552d9 from mainline template
* remove host built scripts and tools
* add missing includes
* install missing arch/arm64/kernel/vdso in linux-headers
* keep arch/x86/ras/Kconfig for all architectures
* add "clocksource" includes
[ci skip]
---
srcpkgs/rpi-kernel/template | 39 +++++++++++++++++++++++++++----------
1 file changed, 29 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 8cd8ad3b0ad..9f0a000fcfa 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -10,7 +10,7 @@ _gitshort="${_githash:0:7}"
pkgname=rpi-kernel
version=4.19.75
-revision=1
+revision=2
wrksrc="linux-${_githash}"
maintainer="Peter Bui <pbui@github.bx612.space>"
homepage="http://www.kernel.org"
@@ -149,20 +149,39 @@ do_install() {
install -Dm644 Makefile ${hdrdest}/Makefile
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
install -Dm644 .config ${hdrdest}/.config
+ for file in $(find . -name Kconfig\*); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
+ for file in $(find arch/${_arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
mkdir -p ${hdrdest}/include
# Remove firmware stuff provided by the "linux-firmware" pkg.
rm -rf ${DESTDIR}/usr/lib/firmware
- for i in acpi asm-generic config crypto drm generated linux math-emu \
- media net pcmcia scsi sound trace uapi video xen; do
+ for i in acpi asm-generic clocksource config crypto drm generated linux \
+ math-emu media net pcmcia scsi sound trace uapi video xen; do
[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
done
cd ${wrksrc}
+ # Remove helper binaries built for host,
+ # if generated files from the scripts/ directory need to be included,
+ # they need to be copied to ${hdrdest} before this step
+ if [ "$CROSS_BUILD" ]; then
+ make ${makejobs} ARCH=${_arch} _mrproper_scripts
+ fi
+
# Copy files necessary for later builds.
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
+ mkdir -p ${hdrdest}/security/selinux
+ cp -a security/selinux/include ${hdrdest}/security/selinux
+ mkdir -p ${hdrdest}/tools/include
+ cp -a tools/include/tools ${hdrdest}/tools/include
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
@@ -171,6 +190,9 @@ do_install() {
mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
+ if [ "$_arch" = "arm64" ] ; then
+ cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/ ;;
+ fi
# Add md headers
mkdir -p ${hdrdest}/drivers/md
@@ -188,18 +210,15 @@ do_install() {
mkdir -p ${hdrdest}/include/config/dvb/
cp include/config/dvb/*.h ${hdrdest}/include/config/dvb/
- # Copy in Kconfig files
- for i in $(find . -name "Kconfig*"); do
- mkdir -p ${hdrdest}/$(echo $i | sed 's|/Kconfig.*||')
- cp $i ${hdrdest}/$i
- done
-
# Remove unneeded architectures
# (save the correct one + Kconfig and delete all others)
mkdir -p arch-backup
- cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
rm -rf ${hdrdest}/arch
mv arch-backup ${hdrdest}/arch
+ # Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
+ mkdir -p ${hdrdest}/arch/x86/ras
+ cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] rpi-kernel: enable build of kernel modules
2019-09-29 18:40 [PR PATCH] [WIP] rpi-kernel: enable build of kernel modules voidlinux-github
` (3 preceding siblings ...)
2019-09-29 18:53 ` voidlinux-github
@ 2019-09-30 13:54 ` voidlinux-github
2019-09-30 13:54 ` voidlinux-github
` (4 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: voidlinux-github @ 2019-09-30 13:54 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 472 bytes --]
There is an updated pull request by Piraty against master on the void-packages repository
https://github.com/Piraty/void-packages rpi-kernel-fix-dkms
https://github.com/void-linux/void-packages/pull/14823
[WIP] rpi-kernel: enable build of kernel modules
Thanks to @marmeladema (#8480 , b5fa1bd9b6ec04c20bc1fe01540295200ef552d9) (and @Hoshpak for making me aware of this commit)
A patch file from https://github.com/void-linux/void-packages/pull/14823.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-rpi-kernel-fix-dkms-14823.patch --]
[-- Type: text/x-diff, Size: 10490 bytes --]
From 1a3e72ef48d24b384804c96a432464b28bba2e51 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 13:53:33 +0200
Subject: [PATCH 1/3] xbps-triggers: run `make scripts` with all cores
also, use `yes` to not get stuck on prompts (happened with
CONFIG_GCC_PLUGINGS).
---
srcpkgs/xbps-triggers/files/dkms | 2 +-
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/xbps-triggers/files/dkms b/srcpkgs/xbps-triggers/files/dkms
index 0f1fbb9ec0a..309f7fa97b5 100755
--- a/srcpkgs/xbps-triggers/files/dkms
+++ b/srcpkgs/xbps-triggers/files/dkms
@@ -72,7 +72,7 @@ add_modules() {
fi
if [ ! -f ${f}/build/scripts/basic/fixdep ] ; then
echo -n "Building scripts for kernel-${_kver}... "
- make -C ${f}/build scripts &> ${f}/build/make.log
+ yes "" | make -C -j$(nproc) ${f}/build scripts > ${f}/build/make.log 2>&1
if [ $? -eq 0 ]; then
echo "done."
else
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 4247352939c..178a2b10fd5 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,7 +1,7 @@
# Template file for 'xbps-triggers'
pkgname=xbps-triggers
version=0.113
-revision=1
+revision=2
archs=noarch
bootstrap=yes
short_desc="The XBPS triggers for Void Linux"
From 51bed2a5eac9d085aa8d07e508747f2364de21cc Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 18:46:41 +0200
Subject: [PATCH 2/3] rpi-kernel: cleanup template
* define kernel arch + cross globally
* fix typo ($arch -> $_arch)
* simplify "Remove unneeded architectures"
---
srcpkgs/rpi-kernel/template | 107 ++++++++++++++++--------------------
1 file changed, 48 insertions(+), 59 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index fe74326de4b..8cd8ad3b0ad 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -41,76 +41,67 @@ mutable_files="
/usr/lib/modules/${_kernver}/modules.alias.bin
/usr/lib/modules/${_kernver}/modules.devname"
+_arch=
+case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch=arm ;;
+ aarch64*) _arch=arm64 ;;
+esac
+_cross=
+if [ "$CROSS_BUILD" ]; then
+ _cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
+fi
+
pre_configure() {
# Remove .git directory, otherwise scripts/setkernelversion.sh
# modifies KERNELRELEASE and appends + to it.
rm -rf .git
}
do_configure() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target defconfig
- # Use upstream default configuration, no need to maintain ours.
+ # Use upstream's default configuration, no need to maintain ours.
case "$XBPS_TARGET_MACHINE" in
- aarch64*)
- echo "CONFIG_CONNECTOR=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- make ${makejobs} ${_args} ARCH=arm64 bcmrpi3_defconfig
- ;;
- armv7l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcm2709_defconfig
- make ${makejobs} ${_args} ARCH=arm bcm2709_defconfig
- ;;
- armv6l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcmrpi_defconfig
- make ${makejobs} ${_args} ARCH=arm bcmrpi_defconfig
- ;;
+ # RPi3
+ aarch64*)
+ target=bcmrpi3_defconfig
+ ;;
+ # RPi2 / RPi3
+ armv7l*)
+ target=bcm2709_defconfig
+ ;;
+ # RPi1
+ armv6l*)
+ target=bcmrpi_defconfig
+ ;;
esac
+ defconfig="arch/${_arch}/configs/${target}"
+ echo "CONFIG_CONNECTOR=y" >> "$defconfig"
+ echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
+ echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
+ echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
+
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
- sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
+ vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
}
do_build() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target
case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch=arm
- _targets="zImage modules dtbs"
- ;;
- aarch64*)
- unset LDFLAGS
- _arch=arm64
- _targets="Image modules dtbs"
- ;;
+ arm*)
+ target="zImage modules dtbs"
+ ;;
+ aarch64*)
+ target="Image modules dtbs"
+ ;;
esac
- make ${makejobs} ${_args} ARCH=${_arch} prepare
- make ${makejobs} ${_args} ARCH=${_arch} ${_targets}
+ make ${makejobs} ${_cross} ARCH=${_arch} prepare
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
}
do_install() {
- case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch="arm"
- ;;
- aarch64*)
- _arch="arm64"
- ;;
- esac
-
local hdrdest
# Run depmod after compressing modules.
@@ -173,14 +164,11 @@ do_install() {
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
- # fix permissions on scripts dir
- chmod og-w -R ${hdrdest}/scripts
-
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
- mkdir -p ${hdrdest}/arch/${arch}/kernel
+ mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
@@ -207,10 +195,11 @@ do_install() {
done
# Remove unneeded architectures
- for arch in alpha arc avr32 blackfin c6x cris frv h8300 \
- hexagon ia64 m* n* p* s* um v850 x86 xtensa; do
- rm -rf ${hdrdest}/arch/${arch}
- done
+ # (save the correct one + Kconfig and delete all others)
+ mkdir -p arch-backup
+ cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ rm -rf ${hdrdest}/arch
+ mv arch-backup ${hdrdest}/arch
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
From 430d35f9c4bc4a7cc0779e40ea38cb385d5cff94 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 25 Aug 2019 22:49:06 +0200
Subject: [PATCH 3/3] rpi-kernel-header: enable build of kernel modules
In order to get dkms to build on our beloved rpi...
* port b5fa1bd9b6ec04c20bc1fe01540295200ef552d9 from mainline template
* remove host built scripts and tools
* add missing includes
* install missing arch/arm64/kernel/vdso in linux-headers
* keep arch/x86/ras/Kconfig for all architectures
* add "clocksource" includes
[ci skip]
---
srcpkgs/rpi-kernel/template | 39 +++++++++++++++++++++++++++----------
1 file changed, 29 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 8cd8ad3b0ad..9f0a000fcfa 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -10,7 +10,7 @@ _gitshort="${_githash:0:7}"
pkgname=rpi-kernel
version=4.19.75
-revision=1
+revision=2
wrksrc="linux-${_githash}"
maintainer="Peter Bui <pbui@github.bx612.space>"
homepage="http://www.kernel.org"
@@ -149,20 +149,39 @@ do_install() {
install -Dm644 Makefile ${hdrdest}/Makefile
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
install -Dm644 .config ${hdrdest}/.config
+ for file in $(find . -name Kconfig\*); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
+ for file in $(find arch/${_arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
mkdir -p ${hdrdest}/include
# Remove firmware stuff provided by the "linux-firmware" pkg.
rm -rf ${DESTDIR}/usr/lib/firmware
- for i in acpi asm-generic config crypto drm generated linux math-emu \
- media net pcmcia scsi sound trace uapi video xen; do
+ for i in acpi asm-generic clocksource config crypto drm generated linux \
+ math-emu media net pcmcia scsi sound trace uapi video xen; do
[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
done
cd ${wrksrc}
+ # Remove helper binaries built for host,
+ # if generated files from the scripts/ directory need to be included,
+ # they need to be copied to ${hdrdest} before this step
+ if [ "$CROSS_BUILD" ]; then
+ make ${makejobs} ARCH=${_arch} _mrproper_scripts
+ fi
+
# Copy files necessary for later builds.
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
+ mkdir -p ${hdrdest}/security/selinux
+ cp -a security/selinux/include ${hdrdest}/security/selinux
+ mkdir -p ${hdrdest}/tools/include
+ cp -a tools/include/tools ${hdrdest}/tools/include
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
@@ -171,6 +190,9 @@ do_install() {
mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
+ if [ "$_arch" = "arm64" ] ; then
+ cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/ ;;
+ fi
# Add md headers
mkdir -p ${hdrdest}/drivers/md
@@ -188,18 +210,15 @@ do_install() {
mkdir -p ${hdrdest}/include/config/dvb/
cp include/config/dvb/*.h ${hdrdest}/include/config/dvb/
- # Copy in Kconfig files
- for i in $(find . -name "Kconfig*"); do
- mkdir -p ${hdrdest}/$(echo $i | sed 's|/Kconfig.*||')
- cp $i ${hdrdest}/$i
- done
-
# Remove unneeded architectures
# (save the correct one + Kconfig and delete all others)
mkdir -p arch-backup
- cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
rm -rf ${hdrdest}/arch
mv arch-backup ${hdrdest}/arch
+ # Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
+ mkdir -p ${hdrdest}/arch/x86/ras
+ cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] rpi-kernel: enable build of kernel modules
2019-09-29 18:40 [PR PATCH] [WIP] rpi-kernel: enable build of kernel modules voidlinux-github
` (5 preceding siblings ...)
2019-09-30 13:54 ` voidlinux-github
@ 2019-09-30 13:55 ` voidlinux-github
2019-09-30 13:55 ` voidlinux-github
` (2 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: voidlinux-github @ 2019-09-30 13:55 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 472 bytes --]
There is an updated pull request by Piraty against master on the void-packages repository
https://github.com/Piraty/void-packages rpi-kernel-fix-dkms
https://github.com/void-linux/void-packages/pull/14823
[WIP] rpi-kernel: enable build of kernel modules
Thanks to @marmeladema (#8480 , b5fa1bd9b6ec04c20bc1fe01540295200ef552d9) (and @Hoshpak for making me aware of this commit)
A patch file from https://github.com/void-linux/void-packages/pull/14823.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-rpi-kernel-fix-dkms-14823.patch --]
[-- Type: text/x-diff, Size: 10487 bytes --]
From 1a3e72ef48d24b384804c96a432464b28bba2e51 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 13:53:33 +0200
Subject: [PATCH 1/3] xbps-triggers: run `make scripts` with all cores
also, use `yes` to not get stuck on prompts (happened with
CONFIG_GCC_PLUGINGS).
---
srcpkgs/xbps-triggers/files/dkms | 2 +-
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/xbps-triggers/files/dkms b/srcpkgs/xbps-triggers/files/dkms
index 0f1fbb9ec0a..309f7fa97b5 100755
--- a/srcpkgs/xbps-triggers/files/dkms
+++ b/srcpkgs/xbps-triggers/files/dkms
@@ -72,7 +72,7 @@ add_modules() {
fi
if [ ! -f ${f}/build/scripts/basic/fixdep ] ; then
echo -n "Building scripts for kernel-${_kver}... "
- make -C ${f}/build scripts &> ${f}/build/make.log
+ yes "" | make -C -j$(nproc) ${f}/build scripts > ${f}/build/make.log 2>&1
if [ $? -eq 0 ]; then
echo "done."
else
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 4247352939c..178a2b10fd5 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,7 +1,7 @@
# Template file for 'xbps-triggers'
pkgname=xbps-triggers
version=0.113
-revision=1
+revision=2
archs=noarch
bootstrap=yes
short_desc="The XBPS triggers for Void Linux"
From 51bed2a5eac9d085aa8d07e508747f2364de21cc Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 18:46:41 +0200
Subject: [PATCH 2/3] rpi-kernel: cleanup template
* define kernel arch + cross globally
* fix typo ($arch -> $_arch)
* simplify "Remove unneeded architectures"
---
srcpkgs/rpi-kernel/template | 107 ++++++++++++++++--------------------
1 file changed, 48 insertions(+), 59 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index fe74326de4b..8cd8ad3b0ad 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -41,76 +41,67 @@ mutable_files="
/usr/lib/modules/${_kernver}/modules.alias.bin
/usr/lib/modules/${_kernver}/modules.devname"
+_arch=
+case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch=arm ;;
+ aarch64*) _arch=arm64 ;;
+esac
+_cross=
+if [ "$CROSS_BUILD" ]; then
+ _cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
+fi
+
pre_configure() {
# Remove .git directory, otherwise scripts/setkernelversion.sh
# modifies KERNELRELEASE and appends + to it.
rm -rf .git
}
do_configure() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target defconfig
- # Use upstream default configuration, no need to maintain ours.
+ # Use upstream's default configuration, no need to maintain ours.
case "$XBPS_TARGET_MACHINE" in
- aarch64*)
- echo "CONFIG_CONNECTOR=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- make ${makejobs} ${_args} ARCH=arm64 bcmrpi3_defconfig
- ;;
- armv7l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcm2709_defconfig
- make ${makejobs} ${_args} ARCH=arm bcm2709_defconfig
- ;;
- armv6l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcmrpi_defconfig
- make ${makejobs} ${_args} ARCH=arm bcmrpi_defconfig
- ;;
+ # RPi3
+ aarch64*)
+ target=bcmrpi3_defconfig
+ ;;
+ # RPi2 / RPi3
+ armv7l*)
+ target=bcm2709_defconfig
+ ;;
+ # RPi1
+ armv6l*)
+ target=bcmrpi_defconfig
+ ;;
esac
+ defconfig="arch/${_arch}/configs/${target}"
+ echo "CONFIG_CONNECTOR=y" >> "$defconfig"
+ echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
+ echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
+ echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
+
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
- sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
+ vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
}
do_build() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target
case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch=arm
- _targets="zImage modules dtbs"
- ;;
- aarch64*)
- unset LDFLAGS
- _arch=arm64
- _targets="Image modules dtbs"
- ;;
+ arm*)
+ target="zImage modules dtbs"
+ ;;
+ aarch64*)
+ target="Image modules dtbs"
+ ;;
esac
- make ${makejobs} ${_args} ARCH=${_arch} prepare
- make ${makejobs} ${_args} ARCH=${_arch} ${_targets}
+ make ${makejobs} ${_cross} ARCH=${_arch} prepare
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
}
do_install() {
- case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch="arm"
- ;;
- aarch64*)
- _arch="arm64"
- ;;
- esac
-
local hdrdest
# Run depmod after compressing modules.
@@ -173,14 +164,11 @@ do_install() {
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
- # fix permissions on scripts dir
- chmod og-w -R ${hdrdest}/scripts
-
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
- mkdir -p ${hdrdest}/arch/${arch}/kernel
+ mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
@@ -207,10 +195,11 @@ do_install() {
done
# Remove unneeded architectures
- for arch in alpha arc avr32 blackfin c6x cris frv h8300 \
- hexagon ia64 m* n* p* s* um v850 x86 xtensa; do
- rm -rf ${hdrdest}/arch/${arch}
- done
+ # (save the correct one + Kconfig and delete all others)
+ mkdir -p arch-backup
+ cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ rm -rf ${hdrdest}/arch
+ mv arch-backup ${hdrdest}/arch
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
From 45568ccb34faaf7285faefc0d2941378983e057f Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 25 Aug 2019 22:49:06 +0200
Subject: [PATCH 3/3] rpi-kernel-header: enable build of kernel modules
In order to get dkms to build on our beloved rpi...
* port b5fa1bd9b6ec04c20bc1fe01540295200ef552d9 from mainline template
* remove host built scripts and tools
* add missing includes
* install missing arch/arm64/kernel/vdso in linux-headers
* keep arch/x86/ras/Kconfig for all architectures
* add "clocksource" includes
[ci skip]
---
srcpkgs/rpi-kernel/template | 39 +++++++++++++++++++++++++++----------
1 file changed, 29 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 8cd8ad3b0ad..77ac0f69e1a 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -10,7 +10,7 @@ _gitshort="${_githash:0:7}"
pkgname=rpi-kernel
version=4.19.75
-revision=1
+revision=2
wrksrc="linux-${_githash}"
maintainer="Peter Bui <pbui@github.bx612.space>"
homepage="http://www.kernel.org"
@@ -149,20 +149,39 @@ do_install() {
install -Dm644 Makefile ${hdrdest}/Makefile
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
install -Dm644 .config ${hdrdest}/.config
+ for file in $(find . -name Kconfig\*); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
+ for file in $(find arch/${_arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
mkdir -p ${hdrdest}/include
# Remove firmware stuff provided by the "linux-firmware" pkg.
rm -rf ${DESTDIR}/usr/lib/firmware
- for i in acpi asm-generic config crypto drm generated linux math-emu \
- media net pcmcia scsi sound trace uapi video xen; do
+ for i in acpi asm-generic clocksource config crypto drm generated linux \
+ math-emu media net pcmcia scsi sound trace uapi video xen; do
[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
done
cd ${wrksrc}
+ # Remove helper binaries built for host,
+ # if generated files from the scripts/ directory need to be included,
+ # they need to be copied to ${hdrdest} before this step
+ if [ "$CROSS_BUILD" ]; then
+ make ${makejobs} ARCH=${_arch} _mrproper_scripts
+ fi
+
# Copy files necessary for later builds.
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
+ mkdir -p ${hdrdest}/security/selinux
+ cp -a security/selinux/include ${hdrdest}/security/selinux
+ mkdir -p ${hdrdest}/tools/include
+ cp -a tools/include/tools ${hdrdest}/tools/include
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
@@ -171,6 +190,9 @@ do_install() {
mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
+ if [ "$_arch" = "arm64" ] ; then
+ cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
+ fi
# Add md headers
mkdir -p ${hdrdest}/drivers/md
@@ -188,18 +210,15 @@ do_install() {
mkdir -p ${hdrdest}/include/config/dvb/
cp include/config/dvb/*.h ${hdrdest}/include/config/dvb/
- # Copy in Kconfig files
- for i in $(find . -name "Kconfig*"); do
- mkdir -p ${hdrdest}/$(echo $i | sed 's|/Kconfig.*||')
- cp $i ${hdrdest}/$i
- done
-
# Remove unneeded architectures
# (save the correct one + Kconfig and delete all others)
mkdir -p arch-backup
- cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
rm -rf ${hdrdest}/arch
mv arch-backup ${hdrdest}/arch
+ # Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
+ mkdir -p ${hdrdest}/arch/x86/ras
+ cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Updated] [WIP] rpi-kernel: enable build of kernel modules
2019-09-29 18:40 [PR PATCH] [WIP] rpi-kernel: enable build of kernel modules voidlinux-github
` (6 preceding siblings ...)
2019-09-30 13:55 ` voidlinux-github
@ 2019-09-30 13:55 ` voidlinux-github
2019-10-02 12:52 ` voidlinux-github
2019-10-04 23:16 ` [PR PATCH] [Merged]: " voidlinux-github
9 siblings, 0 replies; 11+ messages in thread
From: voidlinux-github @ 2019-09-30 13:55 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 472 bytes --]
There is an updated pull request by Piraty against master on the void-packages repository
https://github.com/Piraty/void-packages rpi-kernel-fix-dkms
https://github.com/void-linux/void-packages/pull/14823
[WIP] rpi-kernel: enable build of kernel modules
Thanks to @marmeladema (#8480 , b5fa1bd9b6ec04c20bc1fe01540295200ef552d9) (and @Hoshpak for making me aware of this commit)
A patch file from https://github.com/void-linux/void-packages/pull/14823.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-rpi-kernel-fix-dkms-14823.patch --]
[-- Type: text/x-diff, Size: 10487 bytes --]
From 1a3e72ef48d24b384804c96a432464b28bba2e51 Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 13:53:33 +0200
Subject: [PATCH 1/3] xbps-triggers: run `make scripts` with all cores
also, use `yes` to not get stuck on prompts (happened with
CONFIG_GCC_PLUGINGS).
---
srcpkgs/xbps-triggers/files/dkms | 2 +-
srcpkgs/xbps-triggers/template | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/xbps-triggers/files/dkms b/srcpkgs/xbps-triggers/files/dkms
index 0f1fbb9ec0a..309f7fa97b5 100755
--- a/srcpkgs/xbps-triggers/files/dkms
+++ b/srcpkgs/xbps-triggers/files/dkms
@@ -72,7 +72,7 @@ add_modules() {
fi
if [ ! -f ${f}/build/scripts/basic/fixdep ] ; then
echo -n "Building scripts for kernel-${_kver}... "
- make -C ${f}/build scripts &> ${f}/build/make.log
+ yes "" | make -C -j$(nproc) ${f}/build scripts > ${f}/build/make.log 2>&1
if [ $? -eq 0 ]; then
echo "done."
else
diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template
index 4247352939c..178a2b10fd5 100644
--- a/srcpkgs/xbps-triggers/template
+++ b/srcpkgs/xbps-triggers/template
@@ -1,7 +1,7 @@
# Template file for 'xbps-triggers'
pkgname=xbps-triggers
version=0.113
-revision=1
+revision=2
archs=noarch
bootstrap=yes
short_desc="The XBPS triggers for Void Linux"
From 51bed2a5eac9d085aa8d07e508747f2364de21cc Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 29 Sep 2019 18:46:41 +0200
Subject: [PATCH 2/3] rpi-kernel: cleanup template
* define kernel arch + cross globally
* fix typo ($arch -> $_arch)
* simplify "Remove unneeded architectures"
---
srcpkgs/rpi-kernel/template | 107 ++++++++++++++++--------------------
1 file changed, 48 insertions(+), 59 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index fe74326de4b..8cd8ad3b0ad 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -41,76 +41,67 @@ mutable_files="
/usr/lib/modules/${_kernver}/modules.alias.bin
/usr/lib/modules/${_kernver}/modules.devname"
+_arch=
+case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch=arm ;;
+ aarch64*) _arch=arm64 ;;
+esac
+_cross=
+if [ "$CROSS_BUILD" ]; then
+ _cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
+fi
+
pre_configure() {
# Remove .git directory, otherwise scripts/setkernelversion.sh
# modifies KERNELRELEASE and appends + to it.
rm -rf .git
}
do_configure() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target defconfig
- # Use upstream default configuration, no need to maintain ours.
+ # Use upstream's default configuration, no need to maintain ours.
case "$XBPS_TARGET_MACHINE" in
- aarch64*)
- echo "CONFIG_CONNECTOR=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm64/configs/bcmrpi3_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm64/configs/bcmrpi3_defconfig
- make ${makejobs} ${_args} ARCH=arm64 bcmrpi3_defconfig
- ;;
- armv7l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcm2709_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcm2709_defconfig
- make ${makejobs} ${_args} ARCH=arm bcm2709_defconfig
- ;;
- armv6l*)
- echo "CONFIG_USER_NS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CONNECTOR=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_PROC_EVENTS=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_F2FS_FS_SECURITY=y" >> arch/arm/configs/bcmrpi_defconfig
- echo "CONFIG_CGROUP_PIDS=y" >> arch/arm/configs/bcmrpi_defconfig
- make ${makejobs} ${_args} ARCH=arm bcmrpi_defconfig
- ;;
+ # RPi3
+ aarch64*)
+ target=bcmrpi3_defconfig
+ ;;
+ # RPi2 / RPi3
+ armv7l*)
+ target=bcm2709_defconfig
+ ;;
+ # RPi1
+ armv6l*)
+ target=bcmrpi_defconfig
+ ;;
esac
+ defconfig="arch/${_arch}/configs/${target}"
+ echo "CONFIG_CONNECTOR=y" >> "$defconfig"
+ echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
+ echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
+ echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
+
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
- sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
+ vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
}
do_build() {
- if [ "$CROSS_BUILD" ]; then
- _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
- fi
+ local target
case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch=arm
- _targets="zImage modules dtbs"
- ;;
- aarch64*)
- unset LDFLAGS
- _arch=arm64
- _targets="Image modules dtbs"
- ;;
+ arm*)
+ target="zImage modules dtbs"
+ ;;
+ aarch64*)
+ target="Image modules dtbs"
+ ;;
esac
- make ${makejobs} ${_args} ARCH=${_arch} prepare
- make ${makejobs} ${_args} ARCH=${_arch} ${_targets}
+ make ${makejobs} ${_cross} ARCH=${_arch} prepare
+ make ${makejobs} ${_cross} ARCH=${_arch} ${target}
}
do_install() {
- case "$XBPS_TARGET_MACHINE" in
- arm*)
- _arch="arm"
- ;;
- aarch64*)
- _arch="arm64"
- ;;
- esac
-
local hdrdest
# Run depmod after compressing modules.
@@ -173,14 +164,11 @@ do_install() {
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
- # fix permissions on scripts dir
- chmod og-w -R ${hdrdest}/scripts
-
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
- mkdir -p ${hdrdest}/arch/${arch}/kernel
+ mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
@@ -207,10 +195,11 @@ do_install() {
done
# Remove unneeded architectures
- for arch in alpha arc avr32 blackfin c6x cris frv h8300 \
- hexagon ia64 m* n* p* s* um v850 x86 xtensa; do
- rm -rf ${hdrdest}/arch/${arch}
- done
+ # (save the correct one + Kconfig and delete all others)
+ mkdir -p arch-backup
+ cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ rm -rf ${hdrdest}/arch
+ mv arch-backup ${hdrdest}/arch
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
From 45568ccb34faaf7285faefc0d2941378983e057f Mon Sep 17 00:00:00 2001
From: Piraty <piraty1@inbox.ru>
Date: Sun, 25 Aug 2019 22:49:06 +0200
Subject: [PATCH 3/3] rpi-kernel-header: enable build of kernel modules
In order to get dkms to build on our beloved rpi...
* port b5fa1bd9b6ec04c20bc1fe01540295200ef552d9 from mainline template
* remove host built scripts and tools
* add missing includes
* install missing arch/arm64/kernel/vdso in linux-headers
* keep arch/x86/ras/Kconfig for all architectures
* add "clocksource" includes
[ci skip]
---
srcpkgs/rpi-kernel/template | 39 +++++++++++++++++++++++++++----------
1 file changed, 29 insertions(+), 10 deletions(-)
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 8cd8ad3b0ad..77ac0f69e1a 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -10,7 +10,7 @@ _gitshort="${_githash:0:7}"
pkgname=rpi-kernel
version=4.19.75
-revision=1
+revision=2
wrksrc="linux-${_githash}"
maintainer="Peter Bui <pbui@github.bx612.space>"
homepage="http://www.kernel.org"
@@ -149,20 +149,39 @@ do_install() {
install -Dm644 Makefile ${hdrdest}/Makefile
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
install -Dm644 .config ${hdrdest}/.config
+ for file in $(find . -name Kconfig\*); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
+ for file in $(find arch/${_arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do
+ mkdir -p ${hdrdest}/$(dirname $file)
+ install -Dm644 $file ${hdrdest}/${file}
+ done
mkdir -p ${hdrdest}/include
# Remove firmware stuff provided by the "linux-firmware" pkg.
rm -rf ${DESTDIR}/usr/lib/firmware
- for i in acpi asm-generic config crypto drm generated linux math-emu \
- media net pcmcia scsi sound trace uapi video xen; do
+ for i in acpi asm-generic clocksource config crypto drm generated linux \
+ math-emu media net pcmcia scsi sound trace uapi video xen; do
[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
done
cd ${wrksrc}
+ # Remove helper binaries built for host,
+ # if generated files from the scripts/ directory need to be included,
+ # they need to be copied to ${hdrdest} before this step
+ if [ "$CROSS_BUILD" ]; then
+ make ${makejobs} ARCH=${_arch} _mrproper_scripts
+ fi
+
# Copy files necessary for later builds.
cp Module.symvers ${hdrdest}
cp -a scripts ${hdrdest}
+ mkdir -p ${hdrdest}/security/selinux
+ cp -a security/selinux/include ${hdrdest}/security/selinux
+ mkdir -p ${hdrdest}/tools/include
+ cp -a tools/include/tools ${hdrdest}/tools/include
# copy arch includes for external modules
mkdir -p ${hdrdest}/arch/${_arch}
@@ -171,6 +190,9 @@ do_install() {
mkdir -p ${hdrdest}/arch/${_arch}/kernel
cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
+ if [ "$_arch" = "arm64" ] ; then
+ cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
+ fi
# Add md headers
mkdir -p ${hdrdest}/drivers/md
@@ -188,18 +210,15 @@ do_install() {
mkdir -p ${hdrdest}/include/config/dvb/
cp include/config/dvb/*.h ${hdrdest}/include/config/dvb/
- # Copy in Kconfig files
- for i in $(find . -name "Kconfig*"); do
- mkdir -p ${hdrdest}/$(echo $i | sed 's|/Kconfig.*||')
- cp $i ${hdrdest}/$i
- done
-
# Remove unneeded architectures
# (save the correct one + Kconfig and delete all others)
mkdir -p arch-backup
- cp ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
+ cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
rm -rf ${hdrdest}/arch
mv arch-backup ${hdrdest}/arch
+ # Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
+ mkdir -p ${hdrdest}/arch/x86/ras
+ cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
# Compress all modules with xz to save a few MBs.
msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: rpi-kernel: enable build of kernel modules
2019-09-29 18:40 [PR PATCH] [WIP] rpi-kernel: enable build of kernel modules voidlinux-github
` (7 preceding siblings ...)
2019-09-30 13:55 ` voidlinux-github
@ 2019-10-02 12:52 ` voidlinux-github
2019-10-04 23:16 ` [PR PATCH] [Merged]: " voidlinux-github
9 siblings, 0 replies; 11+ messages in thread
From: voidlinux-github @ 2019-10-02 12:52 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 271 bytes --]
New comment by pbui on void-packages repository
https://github.com/void-linux/void-packages/pull/14823#issuecomment-537478067
Comment:
@Piraty LGTM.
I was able to build a armv7l kernel, install dkms, build the exfat-dkms module, reboot and then load the new module.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PR PATCH] [Merged]: rpi-kernel: enable build of kernel modules
2019-09-29 18:40 [PR PATCH] [WIP] rpi-kernel: enable build of kernel modules voidlinux-github
` (8 preceding siblings ...)
2019-10-02 12:52 ` voidlinux-github
@ 2019-10-04 23:16 ` voidlinux-github
9 siblings, 0 replies; 11+ messages in thread
From: voidlinux-github @ 2019-10-04 23:16 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 555 bytes --]
There's a merged pull request on the void-packages repository
rpi-kernel: enable build of kernel modules
https://github.com/void-linux/void-packages/pull/14823
Description:
Thanks to @marmeladema (#8480 , b5fa1bd9b6ec04c20bc1fe01540295200ef552d9) (and @Hoshpak for making me aware of this commit)
(I only run an rpi3 with aarch64, so my testing is limited)
- (cross)builds for: armv6l, armv7l and aarch64.
- Boots on: aarch64.
- Compiles dkms on: aarch64 (when rpi-kernel-headers is installed manually, which we should deal with later).
@pbui
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2019-10-04 23:16 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-29 18:40 [PR PATCH] [WIP] rpi-kernel: enable build of kernel modules voidlinux-github
2019-09-29 18:50 ` [PR PATCH] [Updated] " voidlinux-github
2019-09-29 18:50 ` voidlinux-github
2019-09-29 18:53 ` voidlinux-github
2019-09-29 18:53 ` voidlinux-github
2019-09-30 13:54 ` voidlinux-github
2019-09-30 13:54 ` voidlinux-github
2019-09-30 13:55 ` voidlinux-github
2019-09-30 13:55 ` voidlinux-github
2019-10-02 12:52 ` voidlinux-github
2019-10-04 23:16 ` [PR PATCH] [Merged]: " voidlinux-github
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).