Křížový překlad (anglicky cross-compilation) je překlad ze zdrojových kódů do spustitelného kódu určeného pro jinou architekturu, než na které překlad probíhá.
Křížového překladu se využívá, nejsme-li schopni na cílové platformě překlad provést (např. cílový stroj má málo paměti), nevlastníme-li takovou platformu (např. sestavujeme-li nové vydání distribuce) nebo je-li to tak z nějakého důvodu výhodnější (např. rychlejší).
Příkladem budiž překlad jádra pro RouterBoard 532, což je počítač postavený na architektuře MIPS mající několik desítek megabajtů fyzické paměti a nejvýše několik stovek megabajtů paměti trvalé. Trvalá paměť je pomalá pro čtení, pro zápis ještě více a taktovací frekvence procesu končí na 400 MHz. V takovém případě je rozumnější software překládat na jiném – výkonnějším – stroji. Například na desktopovém PC, což je architektura i386 (x86) nebo x86_64 či ia64 poskytující dnes mnohem vyšší výkon a větší paměťové kapacity.
Konfigurace, překlad a instalace jádra je řízena nástrojem make. Tomu je třeba předat informace o cílové architektuře v proměnné ARCH a název toolchainu, který chceme použít k překladu, pomocí proměnné CROSS_COMPILE. Hodnota ARCH je jedna ze jmen podadresářů v podadresáři arch ve zdrojových kódech jádra. Hodnota CROSS_COMPILE je prostě předřetězena názvu konkrétního nástroje, tudíž je třeba ji uvést i se závěrečným spojovníkem.
Spustí konfiguraci jádra v ncurses rozhraní
make ARCH=mips CROSS_COMPILE=mipsel-softfloat-linux-uclibc- menuconfig
Zahájí překlad jádra
make ARCH=mips CROSS_COMPILE=mipsel-softfloat-linux-uclibc-
Moduly a jádro je třeba nainstalovat do zvláštního adresáře. K umístění instalovaných modulů slouží proměnná INSTALL_MOD_PATH. Je třeba, aby byla absolutní cestou a aby všechny adresáře tvořící tuto cestu již existovaly.
Instalace modulu pak proběhne příkazem
make ARCH=mips CROSS_COMPILE=mipsel-softfloat-linux-uclibc- INSTALL_MOD_PATH=/tmp/nove_moduly modules_install
Moduly budou nainstalovány do /tmp/nove_moduly/lib/modules/verze_jádra.