SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I'd like to upgrade udev from 165 to 181, but I can't get to do it. It seems the architecture of udev has must changed, and even by mimicking the build script on slackbuilds it's a no go.
Look at the NEWS file in udev's source. Start at 165, and read upwards to 181. You will find lots of very bad news like this:
Code:
50 udev 176
51 ========
52 The 'devtmpfs' filesystem is required now, udev will not create or delete
53 device nodes anymore, it only adjusts permissions and ownership of device
54 nodes and maintains additional symlinks.
55
56 A writable /run directory (ususally tmpfs) is required now for a fully
57 functional udev, there is no longer a fallback to /dev/.udev.
58
59 The default 'configure' install locations have changed. Packages for systems
60 with the historic / vs. /usr split need to be adapted, otherwise udev will
61 be installed in /usr and not work properly. Example configuration options
62 to install things the traditional way are in INSTALL.
63
64 The default install location of the 'udevadm' tool moved from 'sbin'
65 to /usr/bin. Some tools expect udevadm in 'sbin', a symlink to udevadm
66 needs to be manually created if needed, or --bindir=/sbin be specified.
67
68 The expected value of '--libexecdir=' has changed and must no longer contain
69 the 'udev' directory.
70
71 Kernel modules are now loaded directly by linking udev to 'libkmod'. The
72 'modprobe' tool is no longer executed by udev.
Maybe this gives you some insight why the next release of Slackware will not be quick and easy for the Slackware team.
I'd like to upgrade udev from 165 to 181, but I can't get to do it. It seems the architecture of udev has must changed, and even by mimicking the build script on slackbuilds it's a no go.
Does anyone have any pointers or help?
Thanks!
--
F. Delente
The biggest issue is that the newest udev versions require devtmpfs to be enabled. As far as I know it is disabled in Slackware 13.37 by default, meaning that your new udev will not work unless you recompile/upgrade your kernel.
Look at the NEWS file in udev's source. Start at 165, and read upwards to 181. You will find lots of very bad news like this:
Code:
50 udev 176
51 ========
52 The 'devtmpfs' filesystem is required now, udev will not create or delete
53 device nodes anymore, it only adjusts permissions and ownership of device
54 nodes and maintains additional symlinks.
55
56 A writable /run directory (ususally tmpfs) is required now for a fully
57 functional udev, there is no longer a fallback to /dev/.udev.
58
59 The default 'configure' install locations have changed. Packages for systems
60 with the historic / vs. /usr split need to be adapted, otherwise udev will
61 be installed in /usr and not work properly. Example configuration options
62 to install things the traditional way are in INSTALL.
63
64 The default install location of the 'udevadm' tool moved from 'sbin'
65 to /usr/bin. Some tools expect udevadm in 'sbin', a symlink to udevadm
66 needs to be manually created if needed, or --bindir=/sbin be specified.
67
68 The expected value of '--libexecdir=' has changed and must no longer contain
69 the 'udev' directory.
70
71 Kernel modules are now loaded directly by linking udev to 'libkmod'. The
72 'modprobe' tool is no longer executed by udev.
Maybe this gives you some insight why the next release of Slackware will not be quick and easy for the Slackware team.
Take it easy! These are not "bad news", but improvements :-)
The biggest issue is that the newest udev versions require devtmpfs to be enabled. As far as I know it is disabled in Slackware 13.37 by default, meaning that your new udev will not work unless you recompile/upgrade your kernel.
you can't use current's kernel on 13.37, or better, it will run but you will face a lot of problems because it was built with a different toolchain: you need to rebuild it.
Last edited by ponce; 03-13-2012 at 02:03 PM.
Reason: added link to alienBOB's kernel building guide
you can't use current's kernel on 13.37, or better, it will run but you will face a lot of problems because of that, it has been built with a different toolchain: you need to rebuild it.
but I'm pretty sure (hoping no 0-day appears) that udev won't be upgraded there
I've just rebooted my machine to Slackware 13.37, and (whatever the reason is) devtmpfs is not mounted at /dev during the boot time, so no wonder that the newest udev cannot work there.
When the initrd/init scripts run they don't update /etc/mtab to reflect the devtmpfs mount so if you do a df or a mount command you probably won't spot it, but if you check /proc/mounts you should see you're using it.
I've patched my init scripts locally to fix this, but when I wrote Pat about it he believed it better to keep the devtmpfs mount hidden (something I don't agree with, but it is his distro so I wasn't going to argue).
When the initrd/init scripts run they don't update /etc/mtab to reflect the devtmpfs mount so if you do a df or a mount command you probably won't spot it, but if you check /proc/mounts you should see you're using it.
I've patched my init scripts locally to fix this, but when I wrote Pat about it he believed it better to keep the devtmpfs mount hidden (something I don't agree with, but it is his distro so I wasn't going to argue).
@GazL Thanks for this info! It explains everything. I've just remembered that I didn't see devtmpfs under Slackware. This is why I wrote "As far as I know it is disabled in Slackware 13.37 by default, meaning that your new udev will not work unless you recompile/upgrade your kernel", and it has now appeared that I was wrong :-(
@fdelente It is me to blame that we have an off topic discussion (titled "Is devtmpfs enabled in Slackware or not") in your post. Sorry for this! I am shutting up now ;-)
Does anyone have this latest udev-181 fully functional? I'm not worried about devtmpfs. I'm worried about what I've read following the link on post #2 is moving files around, symlinking, libkmod, etc.
I've got it nearly functional, even though some things were not right (the WIFI never wanted to work...)
Mainly, I fixed UDEV_ROOT to /dev in /etc/rc.d/rc.udev, because udev.conf didn't have a udev_root key.
I also had to comment out the lines in rc.udev about udevadm -- failed, because it's deprecated in udev-181.
All in all it was functinal but flaky, so I reverted to 165; I'll give it a later go when I have a better understanding of udev in general and the way it is implemented in Slackware.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.