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)

addon.patch (225 bytes ) - added by Manuel Carreira Silva 12 years ago.
base.patch (271 bytes ) - added by Manuel Carreira Silva 12 years ago.
install.patch (1.1 KB ) - added by Manuel Carreira Silva 12 years ago.
mindi.patch (647 bytes ) - added by Manuel Carreira Silva 12 years ago.
minimal.patch (640 bytes ) - added by Manuel Carreira Silva 12 years ago.
net.patch (439 bytes ) - added by Manuel Carreira Silva 12 years ago.
rcs.patch (2.0 KB ) - added by Manuel Carreira Silva 12 years ago.
udevfiles.patch (436 bytes ) - added by Manuel Carreira Silva 12 years ago.

Download all attachments as: .zip

Change History (10)

by Manuel Carreira Silva, 12 years ago

Attachment: addon.patch added

by Manuel Carreira Silva, 12 years ago

Attachment: base.patch added

by Manuel Carreira Silva, 12 years ago

Attachment: install.patch added

by Manuel Carreira Silva, 12 years ago

Attachment: mindi.patch added

by Manuel Carreira Silva, 12 years ago

Attachment: minimal.patch added

by Manuel Carreira Silva, 12 years ago

Attachment: net.patch added

by Manuel Carreira Silva, 12 years ago

Attachment: rcs.patch added

by Manuel Carreira Silva, 12 years ago

Attachment: udevfiles.patch added

comment:1 by Manuel Carreira Silva, 12 years ago

Component: mondomindi
Keywords: mindi udev modprobe added

comment:2 by Bruno Cornec, 12 years ago

Milestone: 3.0.2
Resolution: fixed
Status: newclosed

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].

Note: See TracTickets for help on using tickets.