mirror of
https://github.com/SCST-project/scst.git
synced 2026-08-24 16:16:40 +00:00
The top-level guides still describe retired source, QLogic, service and kernel-support workflows. Following them can select the wrong driver, cross-compile only part of the tree, or misstate module-signing policy. Commit7aade0a109("Makefile: Make the qla2x00t-32gbit driver the default QLogic FC driver") made the newer tree the default. Commit0d3c9018af("debian, scstadmin: Add systemd scst.service") added the installed systemd unit. Point source users at GitHub and kernel support at nightly/conf/nightly.conf. Separate kernel and user-space cross builds, follow the current service recipes, and make module acceptance depend on the target kernel and platform policy.
33 lines
1.2 KiB
Plaintext
33 lines
1.2 KiB
Plaintext
Cross-compilation is the process of compiling code for one architecture (often
|
|
called the target) on a different system, usually called the host.
|
|
Cross-compilation of the SCST kernel modules is possible as follows:
|
|
1. Download the Linux kernel source code and also the SCST source code.
|
|
2. Install the appropriate cross-compiler, e.g. as follows:
|
|
|
|
zypper install cross-arm-gcc9
|
|
|
|
3. Store the cross-compilation prefix and architecture names in the
|
|
CROSS_COMPILE and ARCH environment variables, e.g. as follows:
|
|
|
|
export CROSS_COMPILE=/usr/bin/arm-suse-linux-gnueabi-
|
|
export ARCH=arm
|
|
|
|
4. Build the Linux kernel.
|
|
|
|
cd $HOME/software/linux-kernel
|
|
make
|
|
|
|
5. Cross-compile the SCST core modules with the same toolchain. For example:
|
|
|
|
export KDIR=$HOME/software/linux-kernel
|
|
export PASS_CC_TO_MAKE=1
|
|
export CC=${CROSS_COMPILE}gcc
|
|
cd scst.git
|
|
make scst
|
|
|
|
`ARCH` and `CROSS_COMPILE` configure the kernel build. They do not configure
|
|
the user-space build: programs under usr/ use `CC` directly and scstadmin uses
|
|
Perl MakeMaker. Cross-compiling the entire repository or building packages
|
|
therefore also requires a target-aware user-space toolchain and packaging
|
|
environment. `make rpm` by itself is not a generic cross-compilation method.
|