Thomas De Schampheleire wrote:
> Hello,
>
> You are creating /dev/console after the system is trying to use it.
> No second attempt is made to open /dev/console, so the system stays blocked.
>
> /dev/console should be created before the point where the warning
> currently is displayed...
Indeed - stupido me :/, I somehow missed that sys_open()..
Here is working version of patch in case someone might need similar.
Another approach that might work would be to open the /dev/console
for the second time when the device entry is created..
Thank you!
Best regards,
Hinko
--
ČETRTA POT, d.o.o., Kranj
Planina 3
4000 Kranj
Slovenia, Europe
Tel. +386 (0) 4 280 66 03
E-mail: [EMAIL PROTECTED]
Http: www.cetrtapot.si
--- init/main.c.orig 2008-07-13 23:51:29.000000000 +0200
+++ init/main.c 2008-07-31 14:42:57.000000000 +0200
@@ -796,12 +796,27 @@
*/
static int noinline init_post(void)
{
+ struct __old_kernel_stat stat;
+
free_initmem();
unlock_kernel();
mark_rodata_ro();
system_state = SYSTEM_RUNNING;
numa_default_policy();
+ if (sys_stat((char __user *) "/dev/console", &stat) < 0)
+ {
+ printk(KERN_WARNING "Warning: missing /dev/console.\n");
+ sys_mkdir("/dev", 0755);
+
+ if (sys_mknod((const char __user *) "/dev/console",
+ S_IFCHR | S_IRUSR | S_IWUSR,
+ new_encode_dev(MKDEV(5, 1))) < 0)
+ printk(KERN_WARNING "Warning: failed to create /dev/console.\n");
+
+ printk(KERN_NOTICE "Info: success creating /dev/console.\n");
+ }
+
if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
printk(KERN_WARNING "Warning: unable to open an initial console.\n");
@@ -823,6 +838,7 @@
* trying to recover a really broken machine.
*/
if (execute_command) {
+ printk(KERN_NOTICE "Running %s...\n", execute_command);
run_init_process(execute_command);
printk(KERN_WARNING "Failed to execute %s. Attempting "
"defaults...\n", execute_command);