diff --git a/finit.c b/finit.c index 934d8549..ffa351ae 100644 --- a/finit.c +++ b/finit.c @@ -267,6 +267,13 @@ int main(int argc, char* argv[]) if (getpid() != 1) return client(argc, argv); + /* + * The trigger call to udevadm later on screws up the console + * XXX: Yes, this is an ugly workaround, please fix me. + */ + if (fexist("/sbin/udevadm")) + silent = 1; + /* * In case of emergency. */ @@ -352,8 +359,9 @@ int main(int argc, char* argv[]) run_interactive(devfsd, "Populating device tree"); if (fexist("/sbin/udevadm")) { - run_interactive("/sbin/udevadm trigger --action=add --type=subsystems", "Trigger subsystems"); - run_interactive("/sbin/udevadm trigger --action=add --type=devices", "Trigger devices"); + run("/sbin/udevadm trigger --action=add --type=subsystems"); + run("/sbin/udevadm trigger --action=add --type=devices"); + run("/sbin/udevadm settle --timeout=120"); } /*