Dopo aver inizializzato e montato il file system root, Linux avvia /sbin/init
che continua con le inizializzazioni dello spazio utente incluso il montaggio di /proc
Molto probabilmente il tuo rcS
o qualsiasi altra configurazione init
reads non lo fa, e devi dirglielo.
Se hai un prompt della shell, puoi montare /proc
manualmente con:
mount -t proc p /proc
Nota che il /proc
directory deve esistere prima di poter montare qualcosa lì. Dovresti includerlo nella tua immagine root.
2) è molto probabile a causa di 1) - ps
usa /proc
per ottenere informazioni sui processi in esecuzione.
1) è perché non ci si aspetta che l'inizializzazione lo faccia o perché non riesce a farlo. Controlla qual è la distribuzione prevista da fare all'avvio - come avviare il sistema.
Cose che puoi provare:
-
montare
/proc
, ad esempio:mount -t proc proc /proc
- il secondo argomento è arbitrario (è ciò che mostra come origine del mount). Controlla cosa è in esecuzione con PID=1 -
controlla in
/proc/cmdline
quali parametri il tuo kernel riceve all'avvio. Se contieneinit=...
potrebbe essere necessario modificarlo ad es./sbin/init
o rimuovilo per consentire al kernel di provare a risolvere l'init da eseguire da solo. Devi farlo nella configurazione del bootloader (per R-Pi questo è in un file di testo sulla scheda SD IIRC). -
Verifica che l'eseguibile init desiderato esista - Busybox normalmente ha tonnellate di collegamenti simbolici che puntano al suo binario in modo che si possa usare
command [args]
anzichébusybox command [args]
. Potrebbero mancarti quelli.