auto-create inittab entries for serial consoles
This commit is contained in:
@@ -79,7 +79,30 @@ pub async fn bootstrap(cfg: Config) {
|
||||
})
|
||||
.await;
|
||||
|
||||
exec("chroot", &["/system", "update-ca-certificates"]).await
|
||||
exec("chroot", &["/system", "update-ca-certificates"]).await;
|
||||
|
||||
// activate ttyS* consoles as needed
|
||||
retry_or_ignore(async || {
|
||||
const PATH: &str = "/system/etc/inittab";
|
||||
let mut inittab = fs::read_to_string(PATH).await?;
|
||||
let mut changed = false;
|
||||
for opt in utils::cmdline().filter_map(|s| s.strip_prefix("console=ttyS")) {
|
||||
info!("inittab: adding entry for ttyS{opt}");
|
||||
changed = true;
|
||||
|
||||
let mut params = opt.split(',');
|
||||
let num = params.next().unwrap();
|
||||
let speed = params.next().unwrap_or("115200");
|
||||
inittab.push_str(&format!(
|
||||
"S{num}:12345:respawn:/sbin/agetty --noclear {speed} ttyS{num} linux\n"
|
||||
));
|
||||
}
|
||||
if changed {
|
||||
fs::write(PATH, inittab.as_bytes()).await?;
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
.await;
|
||||
}
|
||||
|
||||
struct Verifier {
|
||||
|
||||
Reference in New Issue
Block a user