GNU/Linux >> Linux Esercitazione >  >> Linux

No /proc in una distribuzione Linux embedded basata su Busybox

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 contiene init=... 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.


Linux
  1. Come ottengo il percorso di un processo in Unix/Linux

  2. /proc/[pid]/pagemaps e /proc/[pid]/maps | Linux

  3. Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

  4. montare dev, proc, sys in un ambiente chroot?

  5. Come scoprire da quale cartella è in esecuzione un processo?

Una guida al file system '/proc' in Linux

/proc/cpuinfo e /proc/meminfo in Linux

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions

Comprensione di Linux /proc/id/maps

linux /proc/loadavg

sysctl rispetto alla scrittura diretta su /proc/*