hardware:jednodeskove-pocitace:espressobin:kompilace-jadra-a-chybejicich-modulu

Armbian: kompilace jádra a chybějících modulů

Vytvořeno: 12.5.2020

Poznámka k aktuálnosti: Toto je dobový článek. Postup odpovídá tehdejší větvi Armbianu a kernelu 4.19 pro Espressobin a dnes už nemusí být potřeba nebo může fungovat jinak.

Na Espressobinu jsem při připojování CIFS sdílení narazil na problém s českými znaky. Chyběl mi modul nls_utf8.ko, takže jsem musel zkompilovat jádro nebo aspoň jeho moduly pro existující verzi kernelu.

Při mountování síťového disku s iocharset=utf8 jsem dostal chybu:

mount -t cifs -o iocharset=utf8 //cubieboard/movies /movies
mount error(79): Can not access a needed shared library

Příčina byla v tom, že v jádře chyběl modul nls_utf8.ko. Ověření přes konfiguraci jádra:

grep -i nls_utf8 /boot/config*

Výstup:

# CONFIG_NLS_UTF8 is not set

Pro úplnost jsem si zkontroloval i běžící verzi jádra:

uname -a
Linux espressobin 4.19.113-mvebu64 #20.02.7 SMP PREEMPT Sat Mar 28 16:42:32 CET 2020 aarch64 GNU/Linux

Abych si nezaplnil samotný Espressobin balíčky pro build, dělal jsem kompilaci ve VirtualBoxu na Ubuntu 20.04. Pro build bylo rozumné počítat s 25–30 GB volného místa.

Základní příprava podle Developer Guide Build Preparation:

git clone --depth 1 https://github.com/armbian/build
cd build

Nejdřív jsem zjistil, že build bere jinou větev jádra, než jakou jsem měl na zařízení. Chtěl jsem ale zůstat u existující verze a jen do ní dopočítat chybějící modul. Proto bylo potřeba vynutit konkrétní větev:

echo "KERNELBRANCH='tag:v4.19.113'" > userpatches/lib.config

Pak už šla spustit kompilace pro Espressobin:

./compile.sh BOARD=espressobin BRANCH=current BUILD_DESKTOP=no KERNEL_ONLY=yes KERNEL_CONFIGURE=yes

Ukázky z build procesu:

Po kompilaci vznikly balíčky ve složce build/output/debs. Zajímal mě hlavně balíček linux-image-current-mvebu64_20.05.0-trunk_arm64.deb. Po rozbalení jsem z něj vytáhl soubor nls_utf8.ko z cesty:

/lib/modules/4.19.113-mvebu64/kernel/fs/nls

Ten jsem zkopíroval do aktuálního systému na Espressobinu a pak aktualizoval databázi modulů:

depmod -a

Tím znovu začalo fungovat mountování CIFS sdílení s UTF-8 kódováním.

  • hardware/jednodeskove-pocitace/espressobin/kompilace-jadra-a-chybejicich-modulu.txt
  • Poslední úprava: 23.04.2026 11:48
  • autor: Petr Nosek