Package: busybox Version: 1.22.0-19 Tags: patch FreeBSD kernel doesn't tell PID 1 the pathname of /dev/console through CONSOLE environment variable like Linux does. Instead it expects PID 1 to always open /dev/console.
This patch is tested on ubuntuBSD but I think it should work on Debian too (I haven't tested the whole init yet, but I verified that with my patch it can print to stdout). I've also sent it to BusyBox bugzilla: https://bugs.busybox.net/show_bug.cgi?id=9031 -- Jon Boden ubuntuBSD -- The power of FreeBSD kernel with familiarity of Ubuntu OS! http://www.ubuntubsd.org/ -- https://twitter.com/ubuntuBSD
Index: busybox-1.22.0/init/init.c =================================================================== --- busybox-1.22.0.orig/init/init.c +++ busybox-1.22.0/init/init.c @@ -277,11 +277,19 @@ static void console_init(void) #ifdef VT_OPENQRY int vtno; #endif - char *s; +#if defined(__linux__) + char *s; s = getenv("CONSOLE"); if (!s) s = getenv("console"); +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + const char *s; + s = "/dev/console"; +#else +#error "we don't know how to open the console on this system" +#endif + if (s) { int fd = open(s, O_RDWR | O_NONBLOCK | O_NOCTTY); if (fd >= 0) {