Synology Toolchain to compile Modules, LKMs and Binary @ https://github.com/AuxXxilium/syno-build
5.4K
docker run -it auxxxilium/syno-compiler:7.3 bash
docker run -it \
-v /path/to/source:/input \
-v /path/to/output:/output \
auxxxilium/syno-compiler:7.3 \
<command> <args>
Volume mappings:
/input - Source code or module source/output - Compiled binaries/modulesRun commands inside the container via the entry point script:
bash - Interactive Shelldocker run -it auxxxilium/syno-compiler:7.3 bash
Start a regular bash shell with no special configuration.
shell <platform> - Build Environment Shelldocker run -it \
-v /path/to/kernel/src:/input \
-v /path/to/output:/output \
auxxxilium/syno-compiler:7.3 \
shell <platform>
Open an interactive shell with full build environment configured for the specified platform:
Supported platforms: epyc7002, geminilakenk, broadwell, apollolake, denverton, purley, v1000, r1000, broadwellnk, broadwellnkv2, etc.
compile-module <platform> - Compile Kernel Moduledocker run -it \
-v /path/to/module/source:/input \
-v /path/to/output:/output \
auxxxilium/syno-compiler:7.3 \
compile-module <platform>
Compile a kernel module against the kernel for the specified platform:
/input/input/defines.<platform> if present-j$(nproc))/outputExample custom defines file:
# /input/defines.epyc7002
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_FB_DEFERRED_IO=y
compile-binary <platform> <build_script> - Compile Binarydocker run -it \
-v /path/to/source:/input \
-v /path/to/output:/output \
auxxxilium/syno-compiler:7.3 \
compile-binary <platform> <build_script>
Execute a custom build script within the build environment:
<build_script> from /input directory/input/output/input/output/* to /outputSupported platforms: Same as shell command
compile-lkm <platform> [dev|prod] - Compile Redpill LKMdocker run -it \
-v /path/to/redpill/source:/input \
-v /path/to/output:/output \
auxxxilium/syno-compiler:7.3 \
compile-lkm <platform> prod
Compile redpill LKM (loadable kernel module) for the specified platform:
/inputprod - Production build (default)dev - Debug build with symbolsmake <target>-v7 inside the source directoryredpill.ko to /output| Platform | DSM 7.2 | DSM 7.3 |
|---|---|---|
| epyc7002 | 7.2 | 7.3 |
| geminilakenk | 7.2 | 7.3 |
| broadwell | 7.2 | 7.3 |
| apollolake | 7.2 | 7.3 |
| denverton | 7.2 | 7.3 |
| purley | 7.2 | 7.3 |
| v1000 | 7.2 | 7.3 |
| r1000 | 7.2 | 7.3 |
| broadwellnk | 7.2 | 7.3 |
| broadwellnkv2 | 7.2 | 7.3 |
| r1000nk | 7.2 | 7.3 |
| v1000nk | 7.2 | 7.3 |
docker run -it \
-v ~/my-module:/input \
-v ~/output:/output \
auxxxilium/syno-compiler:7.3 \
compile-module epyc7002
docker run -it \
-v ~/kernel:/input \
-v ~/output:/output \
auxxxilium/syno-compiler:7.3 \
shell geminilakenk
Inside the shell, you can run standard make commands:
cd /opt/geminilakenk/build
make -j$(nproc) bzImage modules
docker run -it \
-v ~/redpill-source:/input \
-v ~/output:/output \
auxxxilium/syno-compiler:7.3 \
compile-lkm epyc7002 prod
Create /path/to/project/build.sh:
#!/bin/bash
set -e
cd /tmp/input
make -j$(nproc)
mkdir -p /tmp/input/output
cp binary /tmp/input/output/
Then run:
docker run -it \
-v /path/to/project:/input \
-v ~/output:/output \
auxxxilium/syno-compiler:7.3 \
compile-binary epyc7002 build.sh
Content type
Image
Digest
sha256:9450168b7…
Size
3.3 GB
Last updated
about 2 months ago
docker pull auxxxilium/syno-compiler:7.4