FS#16571 - [initscripts] No Login / TTYs after upgrade to kernel 2.6.31

Attached to Project: Arch Linux
Opened by Radu Potop (wooptoo) - Sunday, 11 October 2009, 13:07 GMT
Last edited by Thomas Bächler (brain0) - Sunday, 11 October 2009, 17:33 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Aaron Griffin (phrakture)
Thomas Bächler (brain0)
Roman Kyrylych (Romashka)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:
After the upgrade to kernel 2.6.31, I get this error at init:

::Setting Consoles to UTF-8 mode [BUSY]
/etc/rc.sysinit: line364: /dev/tty[0-9]*: No such file or directory

Also, the login process doesn't start, so i get no TTYs. I can only login using gdm.


Additional info:
* package:
Name : kernel26
Version : 2.6.31.3-1
This task depends upon

Closed by  Thomas Bächler (brain0)
Sunday, 11 October 2009, 17:33 GMT
Reason for closing:  Not a bug
Comment by Roman Kyrylych (Romashka) - Sunday, 11 October 2009, 13:14 GMT
What version of udev do you have?
Looks like you don't have tty devices.
Comment by Radu Potop (wooptoo) - Sunday, 11 October 2009, 13:20 GMT
Name : initscripts
Version : 2009.08-1
Comment by Radu Potop (wooptoo) - Sunday, 11 October 2009, 13:22 GMT
also:

$ ls -l /dev/tty*
crw-rw-rw- 1 root tty 5, 0 2009-10-11 16:09 /dev/tty
-rw-r--r-- 1 root root 3 2009-10-11 15:00 /dev/tty[0-9]*
Comment by Roman Kyrylych (Romashka) - Sunday, 11 October 2009, 13:33 GMT
please specify udev version too
Comment by Roman Kyrylych (Romashka) - Sunday, 11 October 2009, 13:34 GMT
hmm, I had /dev/tty[0-9]* on my VPS too, thought that was a bug of their Arch template.
Comment by Radu Potop (wooptoo) - Sunday, 11 October 2009, 13:36 GMT
Name : udev
Version : 146-2
Comment by Roman Kyrylych (Romashka) - Sunday, 11 October 2009, 13:45 GMT
/dev/tty[0-9]* can be created when TTYs don't not exist.
Theoretically this can happen when upgrading initscripts from 2009.03-2 to 2009.08-1 skipping versions in between.
Comment by Roman Kyrylych (Romashka) - Sunday, 11 October 2009, 13:48 GMT
@Thomas, Aaron: if we replace that line with:
for i in $(/bin/ls -1 /dev/tty[0-9]* 2>/dev/null); do
this will skip the for loop when no /dev/tty* exist and thus prevent creation the file named '/dev/tty[0-9]*' by `> /dev/tty[0-9]*` inside the loop.
Comment by Thomas Bächler (brain0) - Sunday, 11 October 2009, 13:55 GMT
We should instead run [ -c $i ] in the loop. However, the original issue in question is only due to an old file /etc/udev/rules.d/udev.rules being present. Said file does not belong to any package and is from a historical udev version - some users seem to have it. Deleting it makes the TTYs appear again.
Comment by Roman Kyrylych (Romashka) - Sunday, 11 October 2009, 13:59 GMT
Ah, true, I forgot that udev.rules causes this
So this is "Not a bug" then. Wanna make patch for [ -c $i ] ?
Comment by Radu Potop (wooptoo) - Sunday, 11 October 2009, 14:14 GMT
I don't have /etc/udev/rules.d/udev.rules and I still have no TTYs.

Comment by Roman Kyrylych (Romashka) - Sunday, 11 October 2009, 14:18 GMT
try to remove '/dev/tty[0-9]*' file and see if you get them after reboot
Comment by Thomas Bächler (brain0) - Sunday, 11 October 2009, 14:24 GMT
Maybe another old rule file that shouldn't be there? Can you give us the whole output of 'ls -lhFR /dev'?
Comment by Radu Potop (wooptoo) - Sunday, 11 October 2009, 16:27 GMT
@Romashka: Didn't work, /dev/tty[0-9]* is created on init.
@brain0: I attached the output.
   dev.txt (27.3 KiB)
Comment by Roman Kyrylych (Romashka) - Sunday, 11 October 2009, 16:36 GMT
You still have /dev/vc/* files for some reason.
Comment by Thomas Bächler (brain0) - Sunday, 11 October 2009, 17:14 GMT
Okay, you do have a udev rule file that is old and invalid and confuses the stock Arch rules. Run 'grep vc/ /etc/udev/rules.d/*.rules /lib/udev/rules.d/*.rules' to find it.
Comment by Radu Potop (wooptoo) - Sunday, 11 October 2009, 17:26 GMT
@brain0: that fixed it.
It was this line:
KERNEL=="tty[0-9]*", NAME="vc/%n", SYMLINK+="%k"
in /etc/udev/rules.d/81-arch.rules that caused the bug.

Login works now, TTYs appear in /dev, VCs are gone, but i have a lot of TTYs in /dev:
/dev/tty0 to 63 is this normal?
Comment by Radu Potop (wooptoo) - Sunday, 11 October 2009, 17:29 GMT
Also, no package owns /etc/udev/rules.d/81-arch.rules Should I delete it?
Comment by Thomas Bächler (brain0) - Sunday, 11 October 2009, 17:33 GMT
Yes, that file should have been gone for some time, no idea why old udev files keep sticking around. It overrides our default rules in /lib/udev/rules.d/

Loading...