udev, ttys, and other pseudo-devices
I'm trying to get udev to work on Debian unstable, and although I've kind
of succeeded I still don't have a functional system.
I can now successfully boot and log in via SSH, but to do so I have to
manually create /dev/console (otherwise I get a kernel panic when init
runs), /dev/null (many things need this), and /dev/urandom (for ssh).
Well, I'm not manually creating them really; I've added them to
M console c 5 1
M null c 1 3
M urandom c 1 9
Actually, I had to mount the root filesystem while booted off CD and
create these devices in a real /dev because init starts udev, udev
normally creates /dev/console, and /dev/console is required by init, which
results in the above-mentioned kernel panic. The only way I could find
around that was to have the /dev/console device exist on the root disk,
which seems like a hack and is probably going to hurt me eventually.
I'm still missing many important device files, though, the most important
being some kind of terminal device so I can run getty or fbgetty. This is
what my /dev looks like right now:
luke@culain(0) $ ls /dev
MAKEDEV cdroms initctl mapper ptmx scsi shm sr0 st0l
agpgart console input misc pts sg0 snd st0 st0m
audio hci_vhci log null radeon sg1 sound st0a urandom
No vcs devices, no tty devices. In /etc/udev/rules.d I have compat.rules
and devfs.rules linked, and I've uncommented the TTY lines from
compat.rules. Checking /var/log/daemon.log shows that udev is reading the
files, but it's only creating snd devices and nothing else.
I have sysfs mounted and can see tty devices in /sys. DevFS is no longer
Also, udev seems to be ignoring the udev.permissions files; I have
specific permissions marked for a few devices and they are not getting
I have not yet started on getting X to work, as I imagine that's even more
painful than getting getty to work, but I really do need those ttys or
something equivalent (I'm fine changing /etc/inittab to reflect different
I've read every post about udev and ttys about 10 times, but it just seems
to work for everyone else. Any ideas on where I should look, what I can
check? udevinfo -p does not list any terminal devices, so it doesn't know
about them at all, but when I log in via ssh the /dev/pts/[0-9]* devices
correctly get created.
Is there a standard, documented way of forcing those tty or vcs devices to
get created? Is there a driver I'm missing? A missing driver doesn't
seem to be the problem, as I've got stuff in /sys/class/tty (including
'console', which would imply I shouldn't have to create it manually).
It's very hard to predict things . . . Especially the future."
-- Prof. Charles Kelemen, Swarthmore CS Dept.