|
20 | 20 | run: ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make ch_defconfig |
21 | 21 | - name: Build (aarch64) |
22 | 22 | run: ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make Image.gz -j `nproc` |
| 23 | + - name: Package kernel headers (aarch64) |
| 24 | + run: | |
| 25 | + KVER=$(ARCH=arm64 make -s kernelrelease) |
| 26 | + HEADERS_DIR="$(pwd)/kernel-headers-arm64/usr/src/linux-headers-${KVER}" |
| 27 | + |
| 28 | + # Use the kernel's built-in script via make run-command to ensure proper env vars |
| 29 | + mkdir -p "${HEADERS_DIR}" |
| 30 | + ARCH=arm64 make run-command KBUILD_RUN_COMMAND="\${srctree}/scripts/package/install-extmod-build ${HEADERS_DIR}" |
| 31 | + |
| 32 | + # Add System.map and .config |
| 33 | + cp System.map "${HEADERS_DIR}/" |
| 34 | + cp .config "${HEADERS_DIR}/" |
| 35 | + |
| 36 | + # Create the standard module build symlink structure |
| 37 | + mkdir -p "kernel-headers-arm64/lib/modules/${KVER}" |
| 38 | + ln -s "/usr/src/linux-headers-${KVER}" "kernel-headers-arm64/lib/modules/${KVER}/build" |
| 39 | + |
| 40 | + # Package it |
| 41 | + tar czf kernel-headers-aarch64.tar.gz -C kernel-headers-arm64 . |
| 42 | + |
| 43 | + echo "Kernel headers packaged for ${KVER} (aarch64):" |
| 44 | + du -sh kernel-headers-aarch64.tar.gz |
23 | 45 | - name: Configure (riscv64) |
24 | 46 | run: ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- make ch_defconfig |
25 | 47 | - name: Build (riscv64) |
|
30 | 52 | run: CFLAGS="-Wa,-mx86-used-note=no" make bzImage -j `nproc` |
31 | 53 | - name: Build kernel modules (x86-64) |
32 | 54 | run: make modules -j `nproc` |
| 55 | + - name: Package kernel headers (x86-64) |
| 56 | + run: | |
| 57 | + KVER=$(make -s kernelrelease) |
| 58 | + HEADERS_DIR="$(pwd)/kernel-headers/usr/src/linux-headers-${KVER}" |
| 59 | + |
| 60 | + # Use the kernel's built-in script via make run-command to ensure proper env vars |
| 61 | + mkdir -p "${HEADERS_DIR}" |
| 62 | + make run-command KBUILD_RUN_COMMAND="\${srctree}/scripts/package/install-extmod-build ${HEADERS_DIR}" |
| 63 | + |
| 64 | + # Add System.map and .config (useful for debugging and some build scenarios) |
| 65 | + cp System.map "${HEADERS_DIR}/" |
| 66 | + cp .config "${HEADERS_DIR}/" |
| 67 | + |
| 68 | + # Create the standard module build symlink structure |
| 69 | + mkdir -p "kernel-headers/lib/modules/${KVER}" |
| 70 | + ln -s "/usr/src/linux-headers-${KVER}" "kernel-headers/lib/modules/${KVER}/build" |
| 71 | + |
| 72 | + # Package it |
| 73 | + tar czf kernel-headers-x86_64.tar.gz -C kernel-headers . |
| 74 | + |
| 75 | + echo "Kernel headers packaged for ${KVER}:" |
| 76 | + du -sh kernel-headers-x86_64.tar.gz |
33 | 77 | - name: Clone NVIDIA open-gpu-kernel-modules |
34 | 78 | run: git clone --depth 1 --branch 570.86.16 https://github.com/NVIDIA/open-gpu-kernel-modules.git |
35 | 79 | - name: Build NVIDIA modules (x86-64) |
@@ -139,6 +183,24 @@ jobs: |
139 | 183 | asset_path: nvidia-modules-x86_64.tar.gz |
140 | 184 | asset_name: nvidia-modules-x86_64.tar.gz |
141 | 185 | asset_content_type: application/gzip |
| 186 | + - name: Upload kernel headers for x86_64 |
| 187 | + uses: actions/upload-release-asset@v1 |
| 188 | + env: |
| 189 | + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| 190 | + with: |
| 191 | + upload_url: ${{ steps.create_release.outputs.upload_url }} |
| 192 | + asset_path: kernel-headers-x86_64.tar.gz |
| 193 | + asset_name: kernel-headers-x86_64.tar.gz |
| 194 | + asset_content_type: application/gzip |
| 195 | + - name: Upload kernel headers for aarch64 |
| 196 | + uses: actions/upload-release-asset@v1 |
| 197 | + env: |
| 198 | + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| 199 | + with: |
| 200 | + upload_url: ${{ steps.create_release.outputs.upload_url }} |
| 201 | + asset_path: kernel-headers-aarch64.tar.gz |
| 202 | + asset_name: kernel-headers-aarch64.tar.gz |
| 203 | + asset_content_type: application/gzip |
142 | 204 | - name: Upload NVIDIA driver libraries for x86_64 |
143 | 205 | uses: actions/upload-release-asset@v1 |
144 | 206 | env: |
|
0 commit comments