-
Notifications
You must be signed in to change notification settings - Fork 144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
eudev doesn't work, /dev not populated #17
Comments
The problem is most likely that we are missing rules that are needed for proper module loading without kmod. A solution is in the kmod branch. It will be merged after proper review. |
@fluxer This issue should be fixed in HEAD. Please let me know if you are still having this problem. |
Still no joy. Executing from the initramfs
tells me that /etc/udev/hwdb.bin is missing. |
Thanks for the report! What's going on here is that the hwdb files are being installed into
where this is substituted at configure time
but, udevadm-hwdb.c is hard coded to look in /etc/udev/hwdb.bin. systemd upstream has already fixed this by adding another AM_CPPFLAGS -DHWDB_BIN=hwdb_bin where the later is still hard set to hwdb_bin=/etc/udev/hwdb.bin, only now in their Makefile.am rather than their c code. I don't completely like this solution since it disconnects hwdb_bin from a configurable directory which is substituted at configure time. I will half adopt their solution. |
On Fri, Nov 23, 2012 at 5:38 PM, blueness notifications@github.com wrote:
I wonder why he isn't defining it in config.h though, exporting it lu |
Luca, look at my commit in
My next step will be to add -DHWDB_BIN=@udevhwdbdir@ and replace the hard coded patch in the code. I think my approach will make it a lot easier to control paths to various components in the future via substitution variables. |
On Fri, Nov 23, 2012 at 7:59 PM, blueness notifications@github.com wrote:
From what I can see you should have the make vars already defined by
Use AC_DEFINE_UNQUOTED instead. lu |
Yeah I can use AC_DEFINE_UNQUOTED, thanks. |
I was not able to use AC_DEFINE* because AC_ARG_WITH does not set up a template in config.h.in like AC_CHECK_* does, so I reverted to using AM_CPPFLAGS as we've been doing up til now --- upstream and ryao did it this way. @fluxer, Thanks! and please be patient since the pieces are just now starting to come together. |
I gave it a whirl just now, it still doesn't work and still leaves me in initramfs. I changed the initramfs hook to include /etc/udev/hwdb.bin but that doesn't seem to help. And again, I did tried this from the initramfs:
where the trigger trow a lot of output this time, something that didn't happened before and makes me thing you've made some progress. I will give it another try later on, just let me know. |
@fluxer Is there any possibility that Arch Linux uses custom udev rules? It might be worthwhile doing a diff between the rules provided by eudev and the rules provided by Arch Linux's systemd package. |
I've tried that before, look at my first comment:
|
Just to do a bit of a run-down on the install process, based on what's done in gentoo:
So if the above matches what you're doing, and it's failing to boot, then if you could provide us with some of that debug output we'd appreciate it -- I'm curious to see what's going on. |
Here are screenshots of the output of 'udevd --daemon --debug': Compiled today from master, using untouched rules provided by eudev, if the 'udevadm trigger' is important too I will have to make a few more screenshots or if you tell me how to make the nodes manually for my disks (IDE) I can dump it on it and upload it. |
Hello, I have the same problem with default kernel. My logs (catched by bootlogd): eudev-git 20130121: http://pastebin.com/mk9a3VGu BTW if look into last log, you'll see that systemd-udev misses hwdb file too but works as expected. Maybe the problem is not here? |
@fluxer , try rebuild eudev with --enable-libkmod. |
Nope, didn't worked either. I noticed that
are not valid configure options, could it be that there is something missing in the configure script? I'm using the following commands to compile it:
Edit: Two more things
|
That is correct. The build system doesn't actually do anything with the *.ids files. You can just copy them directly to /etc/udev/hwdb.d/ or /lib/udev/hwdb.d (or alternatively, make /lib/udev/hwdb.d be a symlink to where they are actually installed), and then run udevadm hwdb --update to generate the "hwdb.bin" file. |
also, --enable-rule-generator should have no effect on this, as all it does is install the helper scripts and the 75-persistent-*-generator.rules as per udev-171 and older. (also, you need to checkout the rule-generator branch to obtain the code for this) |
Just to confirm -- your kernels do have CONFIG_DEVTMPFS and CONFIG_DEVTMPFS_MOUNT enabled, correct? |
Tried to link the hwids files to /lib/udev/hwdb.d and still the same, hwdb.bin updated and included in the initramfs. And about CONFIG_DEVTMPFS and CONFIG_DEVTMPFS_MOUNT - yes, both are built-in into the kernel. The kernel is 3.4.23 from Zen sources. |
If you have /dev line in /etc/fstab, make sure it says devtmpfs as filesystem and nothing else -- this would prevent the /dev population if it's wrongly set. |
Pseudo filesystems mounted as follows:
After discussion with Ian he came to the conclusion that this a problem with the combination of kmod and eudev which I'm using. It seems that the necessary modules to access the real filesystems are not loaded. |
Are you sure that have modules loading support enabled (--enable-modules)? I just want to notice you that it's disabled by default. |
I was running into big issues with eudev on Archlinux myself and I just got it working with runit-musl+ignite instead of systemd. Thanks the TZ86's comment I added
However, there's a big problem with
That is CLEARLY not the case! The default is disabled, not enabled. So far so good. I will put up a AUR build so that more Arch users can try this out tomorrow. |
I tried to compile it with '--enable-modules' and nothing changed. Here is what ldd says:
|
Strange, it works for me. Do you update initramfs image? |
I did, I'm rebuilding it everytime. It seems that it works now after adding all of the eudev rules into the initramfs, eudev compiled with '--enable-modules' and '--enable-libkmod'. I've tried that before except that eudev was not compiled with that options and it didn't worked. I guess that those configure options should be set to enabled by default? |
This is probably a documentation issue, more than anything. At this time, --enable-modules is required for -all- module load support (that is, --disable-modules drops all module loading support). --enable-libkmod , on the other hand, enables build-time internal libkmod-based module loading. We'll make sure to properly document the flags in the future and probably we'll also swap the default so that "modules" is enabled. Are we at a point now where this issue can be closed? (oops - didn't mean to actually close this issue, yet) |
I think the issue should stay open until the proper defaults are set in the configure script. Other than that I'm trough it. |
Or at least make sure to open a new documentation bug and fix the configure outputs :) But its good for me too. |
I agree with fluxer and vostok4. Not ready to be closed, but getting there! |
so --enable-modules was supposed to be on by default, but the AC_ARG_ENABLE command for it in configure was incomplete. Fixed in commit 0407037 (this should bring an eudev default build a lot closer to expected behaviour, if not resolve the issue completely) |
Yep, now it works perfectly even without --enable-libkmod and --enable-modules. Thanks! @fluxer, I think the issue may be closed now. |
as per comments above, the now properly-implemented defaults seem to have sorted this issue. Closing again |
The configuration of the installation paths for various components was scattered between the main configure.ac file and the various Makefile.am's. These components are: udev config file, hwdb, keymaps and force-release keymaps and the rules. This commit consolidates them all into one point in configure.ac and anticipates the inclusion of new AM_CPPFLAGS of the form -DHWDB_BIN=@udevhwdbdir@ as upstream has done, so it is easier to address issues like: eudev-project/eudev#17 Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
This commit is a continuation of the previous one in which all the configured paths obtained in configure.ac are propagated to the Makefile.am and .c files via AM_CPPFLAGS of the form -DUDEV_CONF_FILE=\"$(udevconffile)\". This should address the issue in eudev-project/eudev#17 Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
I've made a PKGBUILD for Arch Linux, builded the sources and installed it. After rebuilding my intramfs image and rebooting it seems that udev doesn't populate nodes for my storage devices and I'm unable to boot. I've tried doing it manually from the intramfs with:
but that didn't helped. Since I was using the udev-fork of braindamaged and it worked for me I tried to use the rules from it and copied them over those that eudev provided, that didn't helped either.
After executing:
I saw that there are a few warnings about missing groups - storage, tty and more. I can not provide the full output tough, I can write it all by hand from the screen to a text file but I can not provide screenshot nor video.
Source for my PKGBUILD at http://dl.dropbox.com/u/54183088/eudev-git-20121119-1.src.tar.gz
The text was updated successfully, but these errors were encountered: