Opened 12 years ago
Closed 12 years ago
#589 closed defect (fixed)
Proposed mindi-2.1.1 patches to Archlinux. New udev version, replacement of module-init-tools by kmod.
Reported by: | Manuel Carreira Silva | Owned by: | Bruno Cornec |
---|---|---|---|
Priority: | normal | Milestone: | 3.0.2 |
Component: | mindi | Version: | 3.0.0 |
Severity: | normal | Keywords: | mindi udev modprobe |
Cc: |
Description
I had some serious problems running mindi-2.1.1 in Archlinux, and made some patches that seems to solve the issues found. (see: http://aur.archlinux.org/packages.php?ID=38365)
The main issues have 2 reasons:
1 - Recent udev versions (>173) had change udevadm and udevd paths, and also changed some udevadm options.
2 - The replacement of module-init-tools by kmod, because module-init-tools has been declared as a dead project by his maintainer. The result was that modprobe, insmod, rmmod, lsmod and modinfo are now links to /usr/bin/kmod, and their paths also changed.
Kmod is also dependent of other /lib/modules/uname -r
/modules.* files that are not referred in "mindi" file, line 2658.
I substituted "modules.dep" by "modules.*" and I don't know if this breaks something in other distros (??), but this is the only way to run modprobe/kmod successfully. (mindi.patch)
######
I also found a minor bug in "rcS" file that I think can be easily fixed.
- Line 744 in "rcS" file has SIGINTR instead of SIGINT. (mindi.patch)
######
So, the first patches are related to /etc/mindi files, where I added and removed some paths:
In /etc/mindi/:
- udev.files (udevfiles.patch)
In /etc/mindi/deplist.d/
- base.conf, minimal.conf, net.conf (base.aptch, minimal.patch, net.patch)
######
Problems with hardcoded paths are related not only with /sbin/udevd, /sbin/udevadm, but also with /bin/grep, that Archlinux changed to /usr/bin/grep (I don't know why).
I thought it could be better "install.sh" script to detect the real paths (see "install.patch"), and change udevadm, udevd and grep paths in "mindi" and "rcS" files. Another possibility, was instead of harcode paths, we could use variables that were assigned with the paths depending of the distro.
I don't know if this is the best procedure, but I think this way, we can preserve paths from other distros or versions.
######
With Udev version 174, "udevadm trigger --type=failed" (used in init.d/rcS) is deprecated, and it seems there is no substitution option, aparently because there is no real reason use it (?).
This could be a reasonable explanation: http://permalink.gmane.org/gmane.linux.hotplug.devel/17012
So, I changed UdevadmTrigger() in rcS file: (rcs.patch)
UdevadmTrigger() { if [ -x /usr/bin/udevadm ]; then v=`/usr/bin/udevadm --version` echo "Triggering udev again..." if [ "$v" -ge "146" -a "$v" -lt "174" ]; then /usr/bin/udevadm trigger --type=failed elif [ "$v" -lt "146" ]; then /usr/bin/udevadm trigger --retry-failed else echo "Triggering not needed!" fi fi }
I don't know if this is the best solution, but for now, it works...
#######
There are also 2 other minor issues, but they are not related to mindi. "modprobe -q" option does not work as expected. It prints error messages, instead of being quiet. This produces some unexpected FATAL ERRORS in the screen, that can cause some panic (like I felt in the beginning). I think a later kmod upgrade would fix this thing, but for now, I added some code to the lines: # modprobe -q $module 2>/dev/null
#######
The other issue is "udevd --debug" that send some errors when booting from the mindi image: # udevd -daemon udevd[8144]: bind failed: No such file or directory
error binding udev control socket udevd[8144]: error binding udev control socket
I don't know what is the cause of this, but mindi works as expected. Any clue?
Attachments (8)
Change History (10)
by , 12 years ago
Attachment: | addon.patch added |
---|
by , 12 years ago
Attachment: | base.patch added |
---|
by , 12 years ago
Attachment: | install.patch added |
---|
by , 12 years ago
Attachment: | mindi.patch added |
---|
by , 12 years ago
Attachment: | minimal.patch added |
---|
by , 12 years ago
by , 12 years ago
by , 12 years ago
Attachment: | udevfiles.patch added |
---|
comment:1 by , 12 years ago
Component: | mondo → mindi |
---|---|
Keywords: | mindi udev modprobe added |
comment:2 by , 12 years ago
Milestone: | → 3.0.2 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Most of the patches have been eihter taken directly or adapted so the feature be present. So Arch Linux should be much better supported as of 3.0.2. The revisions providing these are rev [2964] and [2965].