Skip to contentSkip to conversation

how to use udev

DISCUSSION Roman Duka 3 participants 13 messages Jan 3, 2004

lore
Share & tools
lore

Roman Duka

author
#0 lore raw

could somebody explain to me please how to use this udev thing i've compiled and installed udev-012 and hotplug-2003_08_05 udev documentaion says "Add and remove devices from the system and marvel as nodes are creaed and removed in /udev/ based on the device types" so how do I add devices? Do I have to call "mknod" or just calling "modprobe" to load a give device module would be enough? I mean neither seems to work, I get absolutely nothing in /dev/ or /udev/ ??? Am I missing something here???

PS proc and sysfs are both mounted on /proc and /sys, I have some entries in /proc and /sys but that's about it, nothing in /dev or /udev

Cheers for your help

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#1 lore raw
Quoted 8 lines · Roman Duka

could somebody explain to me please how to use this udev thing i've compiled and installed udev-012 and hotplug-2003_08_05 udev documentaion says "Add and remove devices from the system and marvel as nodes are creaed and removed in /udev/ based on the device types" so how do I add devices? Do I have to call "mknod" or just calling "modprobe" to load a give device module would be enough? I mean neither seems to work, I get absolutely nothing in /dev/ or /udev/ ??? Am I missing something here???

If you go into the test directory, after installing udev, and run the test.all script as root with the 'add' paramater:
test.all add

Do you see new nodes show up in /udev?

If not, something is not installed properly.

If there are nodes, great, it's working :)

thanks,

greg k-h

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

author
#2 lore raw
In reply to Roman Duka
Quoted 16 lines · Greg KH
Quoted 8 lines · Roman Duka

could somebody explain to me please how to use this udev thing i've compiled and installed udev-012 and hotplug-2003_08_05 udev documentaion says "Add and remove devices from the system and marvel as nodes are creaed and removed in /udev/ based on the device types" so how do I add devices? Do I have to call "mknod" or just calling "modprobe" to load a give device module would be enough? I mean neither seems to work, I get absolutely nothing in /dev/ or /udev/ ??? Am I missing something here???

If you go into the test directory, after installing udev, and run the test.all script as root with the 'add' paramater:
test.all add

Quoted 6 lines

Do you see new nodes show up in /udev?

If not, something is not installed properly.

If there are nodes, great, it's working :)

No Greg I don't get anything in /udev the script calls udev and there are no error messages or anything, however /udev is still empty I need to ask you a few questions:
- I compiled udev on Linux running kenel 2.4.20, however I am trying to get udev working on kernel 2.6.0 which has support for hot-pluggable devices and module loading/unloading enabled. I don't think I need to be running kernel 2.6.0 in order to just compile udev, am I correct here??
- I didn't switch my system to kernel 2.6.0 and udev, I am trying to test it within initrd (Initial Ram Disk), so what I have is a subdirectory in my home directory, where I installed busybox, bash, insmod, modprobe, hotplug scripts and udev, plus the needed shared libraries in /lib. Note I installed udev with the following command "make DESTDIR=mydir install" i.e. I didn't use "prefix" so all the config files etc should be relative to the root directory, and I've checked them, they're fine. I created a initrd and put it on a CD-RW disk and that's what I am booting from and testing udev. My question is, does running udev withing initrd make any impact on its operations? May be the reason why it doesn't work for me is because it has some issues in initrd environment???

If nothing else, what else do you think could be wrong??

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#3 lore raw
In reply to Roman Duka
Quoted 4 lines · Roman Duka

No Greg I don't get anything in /udev the script calls udev and there are no error messages or anything, however /udev is still empty I need to ask you a few questions:

Ick. You ran that as root, right?

Hm, try running the udev-test.pl script in that directory. Let us know if the tests there pass or not. They should.

Quoted 4 lines

- I compiled udev on Linux running kenel 2.4.20, however I am trying to get udev working on kernel 2.6.0 which has support for hot-pluggable devices and module loading/unloading enabled. I don't think I need to be running kernel 2.6.0 in order to just compile udev, am I correct here??

You are correct. You can build udev on any kernel. _but_ the test.all script will _not_ show anything in /udev if you are not on a 2.6.0 kernel. That's probably the problem.

The udev-test.pl script will work on any kernel, it uses its own fake sysfs tree.

Quoted 10 lines

- I didn't switch my system to kernel 2.6.0 and udev, I am trying to test it within initrd (Initial Ram Disk), so what I have is a subdirectory in my home directory, where I installed busybox, bash, insmod, modprobe, hotplug scripts and udev, plus the needed shared libraries in /lib. Note I installed udev with the following command "make DESTDIR=mydir install" i.e. I didn't use "prefix" so all the config files etc should be relative to the root directory, and I've checked them, they're fine. I created a initrd and put it on a CD-RW disk and that's what I am booting from and testing udev. My question is, does running udev withing initrd make any impact on its operations?

It shouldn't. You built the klibc version, right?

Quoted 2 lines

May be the reason why it doesn't work for me is because it has some issues in initrd environment???

Is sysfs mounted when udev is called? That's a requirement.

thanks,

greg k-h

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#4 lore raw
In reply to Roman Duka

udev won't work if sysfs isn't mounted. from fstab...
none /sys sysfs defaults 0 0

Does your sysfs directory have a class directory? under the various classes do they have dev attributes? For example: /sys/class/tty/console/dev

Without these dev entries udev won't work. They should be automatically generated by the device drivers.

Quoted 35 lines · --- Roman Duka
Quoted 10 lines

If you go into the test directory, after installing udev, and run the test.all script as root with the 'add' paramater:
test.all add

Do you see new nodes show up in /udev?

If not, something is not installed properly.

If there are nodes, great, it's working :)

No Greg I don't get anything in /udev the script calls udev and there are no error messages or anything, however /udev is still empty I need to ask you a few questions:
- I compiled udev on Linux running kenel 2.4.20, however I am trying to get udev working on kernel 2.6.0 which has support for hot-pluggable devices and module loading/unloading enabled. I don't think I need to be running kernel 2.6.0 in order to just compile udev, am I correct here??
- I didn't switch my system to kernel 2.6.0 and udev, I am trying to test it within initrd (Initial Ram Disk), so what I have is a subdirectory in my home directory, where I installed busybox, bash, insmod, modprobe, hotplug scripts and udev, plus the needed shared libraries in /lib. Note I installed udev with the following command "make DESTDIR=mydir install" i.e. I didn't use "prefix" so all the config files etc should be relative to the root directory, and I've checked them, they're fine. I created a initrd and put it on a CD-RW disk and that's what I am booting from and testing udev. My question is, does running udev withing initrd make any impact on its operations? May be the reason why it doesn't work for me is because it has some issues in initrd environment???

If nothing else, what else do you think could be wrong??

Quoted 9 lines

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

==Jon Smirl
[email protected]

__________________________________
Do you Yahoo!?
Find out what made the Top Yahoo! Searches of 2003
http://search.yahoo.com/top2003

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

author
#5 lore raw
In reply to Roman Duka
Quoted 12 lines · Greg KH
Quoted 10 lines

- I didn't switch my system to kernel 2.6.0 and udev, I am trying to test it within initrd (Initial Ram Disk), so what I have is a subdirectory in my home directory, where I installed busybox, bash, insmod, modprobe, hotplug scripts and udev, plus the needed shared libraries in /lib. Note I installed udev with the following command "make DESTDIR=mydir install" i.e. I didn't use "prefix" so all the config files etc should be relative to the root directory, and I've checked them, they're fine. I created a initrd and put it on a CD-RW disk and that's what I am booting from and testing udev. My question is, does running udev withing initrd make any impact on its operations?

Quoted 2 lines

It shouldn't. You built the klibc version, right?

no I didn't, udev was linked against glibc, does it have to be linked against klibc? I mean I have glibc.so.6 and ld-linux.so.2 in my initrd environment
roman@athlon1000:~/kernel/udev-012> ldd udev

         libc.so.6 => /lib/libc.so.6 (0x4001e000)
         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

roman@athlon1000:~/kernel/udev-012>

Quoted 6 lines
Quoted 3 lines

May be the reason why it doesn't work for me is because it has some issues in initrd environment???

Is sysfs mounted when udev is called? That's a requirement.

yeah proc and sysfs are mounted on /proc and /sysfs

Signature · 14 lines
http://www.spetsnazlinux.com
[ Kick-Ass Linux server project ]



-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
author
#6 lore raw
In reply to Roman Duka
Quoted 10 lines · Jon Smirl

udev won't work if sysfs isn't mounted. from fstab...
none /sys sysfs defaults 0 0

Does your sysfs directory have a class directory? under the various classes do they have dev attributes? For example: /sys/class/tty/console/dev

Without these dev entries udev won't work. They should be automatically generated by the device drivers.

no I mount it by hand
mount -t sysfs none /sys
and there are entries under /sys :-)

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

author
#7 lore raw
In reply to Roman Duka

Here is the output of that perl script, any ideas??

roman@athlon1000:~/kernel/udev-012/test> ./udev-test.pl > out 2>&1 roman@athlon1000:~/kernel/udev-012/test> mc

roman@athlon1000:~/kernel/udev-012/test> cat out

udev-test will run 30 tests:

TEST: label test of scsi disc
method 'LABEL' for 'block/sda' expecting node 'boot_disk'
add: error
Can't exec "tree": No such file or directory at ./udev-test.pl line 382.

remove: ok

TEST: label test of scsi partition
method 'LABEL' for 'block/sda/sda1' expecting node 'boot_disk1'
add: error
Can't exec "tree": No such file or directory at ./udev-test.pl line 382.

remove: ok

TEST: label test of pattern match
method 'LABEL' for 'block/sda/sda1' expecting node 'boot_disk1'
add: error
Can't exec "tree": No such file or directory at ./udev-test.pl line 382.

remove: ok

.........etc

rm: cannot change to directory `udev-root/visor': Permission denied
rm: cannot remove directory `udev-root': Directory not empty roman@athlon1000:~/kernel/udev-012/test>

roman@athlon1000:~/kernel/udev-012/test> ls -l udev-root/ total 1
drw-rw-rw- 2 roman users 48 Jan 3 06:21 visor
roman@athlon1000:~/kernel/udev-012/test>

Ahh? no execute permissions for directory? Is it supposed to be like that?

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#8 lore raw
In reply to Roman Duka

It doesn't work without execute permissions

[root@smirl init.d]# chmod 666 /udev
[root@smirl init.d]# ls /udev
[root@smirl init.d]# ./udev start
Creating initial udev device nodes: [ OK ]
./udev: line 82: 9288 Bus error $bin block
[root@smirl init.d]# ./udev stop
Removing udev device nodes: [ OK ]
[root@smirl init.d]# chmod 777 /udev
[root@smirl init.d]# ./udev start
Creating initial udev device nodes: [ OK ]
[root@smirl init.d]#

==Jon Smirl
[email protected]

__________________________________
Do you Yahoo!?
Find out what made the Top Yahoo! Searches of 2003
http://search.yahoo.com/top2003

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

author
#9 lore raw
In reply to Roman Duka
Quoted 38 lines · Roman Duka

Here is the output of that perl script, any ideas??

roman@athlon1000:~/kernel/udev-012/test> ./udev-test.pl > out 2>&1 roman@athlon1000:~/kernel/udev-012/test> mc

roman@athlon1000:~/kernel/udev-012/test> cat out

udev-test will run 30 tests:

TEST: label test of scsi disc
method 'LABEL' for 'block/sda' expecting node 'boot_disk'
add: error
Can't exec "tree": No such file or directory at ./udev-test.pl line 382.

remove: ok

TEST: label test of scsi partition
method 'LABEL' for 'block/sda/sda1' expecting node 'boot_disk1'
add: error
Can't exec "tree": No such file or directory at ./udev-test.pl line 382.

remove: ok

TEST: label test of pattern match
method 'LABEL' for 'block/sda/sda1' expecting node 'boot_disk1'
add: error
Can't exec "tree": No such file or directory at ./udev-test.pl line 382.

remove: ok

.........etc

rm: cannot change to directory `udev-root/visor': Permission denied
rm: cannot remove directory `udev-root': Directory not empty roman@athlon1000:~/kernel/udev-012/test>

Quoted 6 lines

roman@athlon1000:~/kernel/udev-012/test> ls -l udev-root/ total 1
drw-rw-rw- 2 roman users 48 Jan 3 06:21 visor
roman@athlon1000:~/kernel/udev-012/test>

Ahh? no execute permissions for directory? Is it supposed to be like that?

No ignor this perl test thing, I needed to be root for that, it runs ok, but that's about it, everything else is as it was

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

author
#10 lore raw
In reply to Roman Duka
Quoted 14 lines · Jon Smirl

It doesn't work without execute permissions

[root@smirl init.d]# chmod 666 /udev [root@smirl init.d]# ls /udev [root@smirl init.d]# ./udev start
Creating initial udev device nodes: [ OK ]
./udev: line 82: 9288 Bus error $bin block
[root@smirl init.d]# ./udev stop
Removing udev device nodes: [ OK ]
[root@smirl init.d]# chmod 777 /udev [root@smirl init.d]# ./udev start
Creating initial udev device nodes: [ OK ]
[root@smirl init.d]#

Well I do have execute permissions on my /dev/ and /udev/ directories and I run everything as root, I run udev start, and it runs OK, but it doesn't populate /dev/ directory. Like I said, I'm running this within initrd (Initial RamDisk) so everything is in RAM, including the root filesystem.

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#11 lore raw
In reply to Roman Duka
Quoted 13 lines · Roman Duka
Quoted 12 lines · Greg KH
Quoted 10 lines

- I didn't switch my system to kernel 2.6.0 and udev, I am trying to test it within initrd (Initial Ram Disk), so what I have is a subdirectory in my home directory, where I installed busybox, bash, insmod, modprobe, hotplug scripts and udev, plus the needed shared libraries in /lib. Note I installed udev with the following command "make DESTDIR=mydir install" i.e. I didn't use "prefix" so all the config files etc should be relative to the root directory, and I've checked them, they're fine. I created a initrd and put it on a CD-RW disk and that's what I am booting from and testing udev. My question is, does running udev withing initrd make any impact on its operations?

Quoted 8 lines
Quoted 2 lines

It shouldn't. You built the klibc version, right?

no I didn't, udev was linked against glibc, does it have to be linked against klibc? I mean I have glibc.so.6 and ld-linux.so.2 in my initrd environment
roman@athlon1000:~/kernel/udev-012> ldd udev

        libc.so.6 => /lib/libc.so.6 (0x4001e000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

As long are you are sure udev is able to run properly, no, that's fine. But why not try using a build against klibc, that would remove any need for glibc.

thanks,

greg k-h

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#12 lore raw
In reply to Roman Duka
Quoted 5 lines · Roman Duka

Here is the output of that perl script, any ideas??

roman@athlon1000:~/kernel/udev-012/test> ./udev-test.pl > out 2>&1 roman@athlon1000:~/kernel/udev-012/test> mc

Quoted 8 lines

roman@athlon1000:~/kernel/udev-012/test> cat out

udev-test will run 30 tests:

TEST: label test of scsi disc
method 'LABEL' for 'block/sda' expecting node 'boot_disk'
add: error
Can't exec "tree": No such file or directory at ./udev-test.pl line 382.

Ick, something's really wrong. Wait, you aren't running the script as root, are you? That's needed.

thanks,

greg k-h

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel