Po inicializaci a připojení kořenového systému souborů se Linux spustí /sbin/init
který pokračuje s inicializacemi uživatelského prostoru včetně montáže /proc
S největší pravděpodobností vaše rcS
nebo jakoukoli konfiguraci init
reads to nedělá a musíte mu to říct.
Pokud máte výzvu shellu, můžete připojit /proc
ručně pomocí:
mount -t proc p /proc
Všimněte si, že /proc
adresář musí existovat, než tam můžete něco připojit. Měli byste jej zahrnout do svého kořenového obrazu.
2) je velmi pravděpodobné kvůli 1) - ps
používá /proc
získat informace o běžících procesech.
1) je buď proto, že se to neočekává od inicializace, nebo proto, že to neudělá. Zkontrolujte, jaká distribuce je předpokládaná to do on boot – jak se má systém spustit.
Věci, které můžete vyzkoušet:
-
mount
/proc
, např.:mount -t proc proc /proc
- druhý argument je libovolný (ukazuje se jako zdroj připojení). Zkontrolujte, co běží s PID=1 -
zkontrolujte
/proc/cmdline
jaké parametry vaše jádro obdrží při bootování. Pokud obsahujeinit=...
možná jej budete muset změnit např./sbin/init
nebo jej odstraňte, aby se jádro pokusilo vyřešit init, aby se spustilo samo. Musíte to udělat v konfiguraci bootloaderu (pro R-Pi je to v nějakém textovém souboru na SD kartě IIRC). -
Zkontrolujte, zda požadovaný init spustitelný soubor existuje - Busybox má obvykle spoustu symbolických odkazů směřujících na jeho binární soubor, takže lze použít
command [args]
spíše nežbusybox command [args]
. Možná vám chybí.