Bug 104618

Summary: /dev/{video,vbi,radio} symlinks missing
Product: [openSUSE] SUSE LINUX 10.0 Reporter: Ludwig Nussel <lnussel>
Component: BasesystemAssignee: Kay Sievers <kasievers>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: forgotten_ZO3j_7LtsJ
Version: Beta 1   
Target Milestone: ---   
Hardware: Other   
OS: All   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Ludwig Nussel 2005-08-14 15:56:49 UTC
9.3 has /dev/{video,vbi,radio} symlinks pointing to video0, vbi0, radio0. 
There are currently udev rules missing to create them. At least the console 
'radio' program uses /dev/radio
Comment 1 Hannes Reinecke 2005-08-17 11:02:22 UTC
Kay?
Comment 2 Kay Sievers 2005-08-18 20:05:24 UTC
Added:
  KERNEL=="video0", SYMLINK+="video"
  KERNEL=="radi0", SYMLINK+="radio"
Comment 3 Ludwig Nussel 2005-09-07 08:42:09 UTC
vbi -> vbi0 is missing, scantv uses that. 
Comment 4 Kay Sievers 2005-09-07 09:53:59 UTC
Added and submitted. Thanks!
Comment 5 Forgotten User ZO3j_7LtsJ 2006-02-23 02:14:46 UTC
This is not just a matter of missing symlinks. The /dev/device0 and 1 and 2 and 3 are missing for video, radio, vbi, vtx, and bttv. This may be the case in all versions. How do I create them that they stay?
Comment 6 Kay Sievers 2006-02-23 23:14:33 UTC
Put them as real device-nodes with the correct permissions (like they should show up in /dev) in /lib/udev/devices/. They get copied over at every bootup.
Comment 7 Forgotten User ZO3j_7LtsJ 2006-03-04 12:49:14 UTC
As root I ran this script.
---
#!/bin/bash

function makedev () {

        for dev in 0 1 2 3; do
                echo "/dev/$1$dev: char 81 $[ $2 + $dev ]"
                rm -f /dev/$1$dev
                mknod /dev/$1$dev c 81 $[ $2 + $dev ]
                chmod 666 /dev/$1$dev
        done

        # symlink for default device
        rm -f /dev/$1
        ln -s /dev/${1}0 /dev/$1
}

#seehttp://roadrunner.swansea.uk.linux.org/v4lapi.shtml

echo "*** new device names ***"
makedev video 0
makedev radio 64
makedev vtx 192
makedev vbi 224

#echo "*** old device names (for compatibility only) ***"
#makedev bttv 0
#makedev bttv-fm 64
#makedev bttv-vbi 224
---
Of course they only stay there till a reboot. There is NO /lib/udev directory. There is a /dev/.udevdb folder with no class files for the video, radio, etc.
http://forums.novell.com/group/opensuse.org.suse-linux.support.install-configure-administration/readerNoFrame.tpt/@thread@13868@F@10@D-,D@+13865/@article@14329
has a lot of details on what I've tried and learned so far.
Comment 8 Kay Sievers 2006-03-10 15:12:30 UTC
Oops, sorry, this is 10.0, which I lost the focus. There should be a /etc/udev/static_devices.txt file, where you can add these nodes. This is completely replaced by /lib/udev/devices on 10.1 and almost all other distros today.
Comment 9 Kay Sievers 2006-03-14 15:49:45 UTC
Please add the needed entries to /etc/udev/static_devices.txt, so that they will be created with every reboot. If you update to 10.1 some day, these nodes belong into /lib/udev/devices/ (as long as the kernel does not get fixed to create the nodes). Closing the bug.