All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Use modinfo to gather module dependencies
@ 2012-02-25 21:09 Dennis Schridde
  2012-02-27 10:25 ` Harald Hoyer
       [not found] ` <CALAkbJMqL-p95Yb=jsP8BZAjhJkByHn-QZV=C0nmsTkMW1qZ1Q@mail.gmail.com>
  0 siblings, 2 replies; 6+ messages in thread
From: Dennis Schridde @ 2012-02-25 21:09 UTC (permalink / raw)
  To: initramfs-u79uwXL29TY76Z2rM5mHXA


[-- Attachment #1.1: Type: text/plain, Size: 457 bytes --]

Hello!

I just switched from module-init-tools to kmod and found dracut broken, 
because it uses modprobe --show-depends to find out about module locations and 
dependencies, which apparently is not implemented in kmod.

Hence I wrote attached patch, switching from modprobe to modinfo, which also 
seem to be the tool intended for the job. This method appears to work reliable 
in kmod-5, but I have not tested with module-init-tools.

Kind regards,
Dennis

[-- Attachment #1.2: dracut-modinfo.patch --]
[-- Type: text/x-patch, Size: 1655 bytes --]

--- /usr/lib/dracut/dracut-functions.orig	2012-02-25 20:28:31.378736079 +0100
+++ /usr/lib/dracut/dracut-functions	2012-02-25 21:53:55.278987278 +0100
@@ -964,6 +964,28 @@
     return 0
 }
 
+get_kmod_filename_with_deps_recursive() {
+    local _kmod=$1 _field _value _modpath _dep _deps
+	shift 1
+    modinfo "$@" $_kmod 2>&${_fderr} | (
+		while read _field _value ; do
+			case $_field in
+				filename:)
+					_modpath=$_value
+					;;
+				depends:)
+					_deps=${_value//,/ }
+					for _dep in $_deps ; do
+						get_kmod_filename_with_deps_recursive $_dep "$@"
+					done
+					;;
+			esac
+		done
+		echo $_modpath
+		[[ $_modpath ]] || exit 1
+	)
+}
+
 # Do something with all the dependencies of a kernel module.
 # Note that kernel modules depend on themselves using the technique we use
 # $1 = function to call for each dependency we find
@@ -972,17 +994,13 @@
 # rest of args = arguments to modprobe
 # _fderr specifies FD passed from surrounding scope
 for_each_kmod_dep() {
-    local _func=$1 _kmod=$2 _cmd _modpath _options _found=0
+    local _func=$1 _kmod=$2 _modpath _found=0
     shift 2
-    modprobe "$@" --ignore-install --show-depends $_kmod 2>&${_fderr} | (
-        while read _cmd _modpath _options; do
-            [[ $_cmd = insmod ]] || continue
-            $_func ${_modpath} || exit $?
-            _found=1
-        done
-        [[ $_found -eq 0 ]] && exit 1
-        exit 0
-    )
+    for _modpath in `get_kmod_filename_with_deps_recursive ${_kmod} "$@"` ; do
+       	$_func ${_modpath}
+        _found=1
+	done
+    [[ $_found -ne 0 ]]
 }
 
 # filter kernel modules to install certain modules that meet specific

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] Use modinfo to gather module dependencies
  2012-02-25 21:09 [PATCH] Use modinfo to gather module dependencies Dennis Schridde
@ 2012-02-27 10:25 ` Harald Hoyer
       [not found]   ` <4F4B5A00.2060400-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
       [not found] ` <CALAkbJMqL-p95Yb=jsP8BZAjhJkByHn-QZV=C0nmsTkMW1qZ1Q@mail.gmail.com>
  1 sibling, 1 reply; 6+ messages in thread
From: Harald Hoyer @ 2012-02-27 10:25 UTC (permalink / raw)
  To: Dennis Schridde; +Cc: initramfs-u79uwXL29TY76Z2rM5mHXA

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 25.02.2012 22:09, schrieb Dennis Schridde:
> Hello!
> 
> I just switched from module-init-tools to kmod and found dracut broken, 
> because it uses modprobe --show-depends to find out about module locations
> and dependencies, which apparently is not implemented in kmod.
> 
> Hence I wrote attached patch, switching from modprobe to modinfo, which
> also seem to be the tool intended for the job. This method appears to work
> reliable in kmod-5, but I have not tested with module-init-tools.
> 
> Kind regards, Dennis

You need this patch for kmod:

http://git.profusion.mobi/cgit.cgi/kmod.git/commit/?id=269de2e0bf5011072da2f40f4f2d4023fad696b9
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJPS1nvAAoJEANOs3ABTfJwhbgP/iasuIv8UUjNT6GO6oGU5nPN
CBulsqlfSyYHedi2mg6owI4sDb/UU6Ii5gs1fYI4pzlRGJwUTD0/eR2yAZ0Cpyht
eEliTS9zb/UqZcXRvDQi245IvKD4cM1xKAQhwSzGwAEBEbuD10RXLkNm8x5LmwpW
ZhjlMl58s1FjYC54Ezrqd2H3dD6d0oWEkDW6pU0wn34QQOemaZEgNcXXXn62qR1X
j4Br8ambBaByTqhOBX8xZGXPa7K6Uz6BM5vvd5CTRpZ/uODJ1r6ngUz/hWS+zzwl
iBjrM2DHBEJdg7HJjwn7Dt8FH5ifxWdIN42Pkp//NyozwBbbfSyeGczYn4tHQPs8
W2EyiIkTwzp09UT5JmLCbULyrg12YgSI7jreW3Mb37Hyvzll1846rBSrUWP5Ujx2
bqzajMiPXgZx9hJR6N3YxFlGw96ORbSfpnrbIlTrfN8qdCEeOx6IZRteM/Pkyzza
1m+T08WwCzQE2MLkIStLX//zmHDRVZErBsUHp0rSu9ya68/N0lFlJvPrOc1HsNaF
kcnnmOy9Anak21UCO4+QMIzhNG1C0wujZUiWu0W37eQLpCGBBUAZTXQSrJhmsNj+
V2gx10+/W3mnKHbhdjGbcr0ds87oJFMIfT3XKdn1aJ88PtVtdfwd97ZA8gQ5omv5
SVet9vwoaupvgfsaETqq
=Oc+u
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] Use modinfo to gather module dependencies
       [not found]   ` <4F4B5A00.2060400-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2012-02-27 11:29     ` Colin Guthrie
  2012-02-27 12:08       ` Harald Hoyer
  0 siblings, 1 reply; 6+ messages in thread
From: Colin Guthrie @ 2012-02-27 11:29 UTC (permalink / raw)
  To: initramfs-u79uwXL29TY76Z2rM5mHXA

'Twas brillig, and Harald Hoyer at 27/02/12 10:25 did gyre and gimble:
> Am 25.02.2012 22:09, schrieb Dennis Schridde:
>> Hello!
> 
>> I just switched from module-init-tools to kmod and found dracut broken, 
>> because it uses modprobe --show-depends to find out about module locations
>> and dependencies, which apparently is not implemented in kmod.
> 
>> Hence I wrote attached patch, switching from modprobe to modinfo, which
>> also seem to be the tool intended for the job. This method appears to work
>> reliable in kmod-5, but I have not tested with module-init-tools.
> 
>> Kind regards, Dennis
> 
> You need this patch for kmod:
> 
> http://git.profusion.mobi/cgit.cgi/kmod.git/commit/?id=269de2e0bf5011072da2f40f4f2d4023fad696b9

What does this patch add?

I seem to get modprobe working happily with kmod 5 even for non-loaded
modules. With patch applied or not, the output was the same.

I'd just like to understand the issue :)

Cheers

Col


(i915 is loaded, nouveau is not)


[colin@jimmy dracut (master)]$ modprobe --ignore-install --show-depends i915
insmod /lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/acpi/video.ko.xz
insmod /lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/i2c/i2c-core.ko.xz
insmod /lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/acpi/button.ko.xz
insmod
/lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/i2c/algos/i2c-algo-bit.ko.xz

insmod /lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/gpu/drm/drm.ko.xz
insmod
/lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/gpu/drm/drm_kms_helper.ko.xz

insmod
/lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/gpu/drm/i915/i915.ko.xz
i915_enable_fbc=0
[colin@jimmy dracut (master)]$ modprobe --ignore-install --show-depends
nouveau
insmod /lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/acpi/button.ko.xz
insmod /lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/acpi/video.ko.xz
insmod
/lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/platform/x86/wmi.ko.xz
insmod
/lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/platform/x86/mxm-wmi.ko.xz
insmod /lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/i2c/i2c-core.ko.xz
insmod
/lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/i2c/algos/i2c-algo-bit.ko.xz

insmod /lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/gpu/drm/drm.ko.xz
insmod
/lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/gpu/drm/drm_kms_helper.ko.xz

insmod
/lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/gpu/drm/ttm/ttm.ko.xz
insmod
/lib/modules/3.2.7-desktop-1.mga2/kernel/drivers/gpu/drm/nouveau/nouveau.ko.xz




-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited http://www.tribalogic.net/
Open Source:
  Mageia Contributor http://www.mageia.org/
  PulseAudio Hacker http://www.pulseaudio.org/
  Trac Hacker http://trac.edgewall.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] Use modinfo to gather module dependencies
  2012-02-27 11:29     ` Colin Guthrie
@ 2012-02-27 12:08       ` Harald Hoyer
       [not found]         ` <4F4B7237.6070005-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 6+ messages in thread
From: Harald Hoyer @ 2012-02-27 12:08 UTC (permalink / raw)
  To: Colin Guthrie; +Cc: initramfs-u79uwXL29TY76Z2rM5mHXA

Am 27.02.2012 12:29, schrieb Colin Guthrie:
> 'Twas brillig, and Harald Hoyer at 27/02/12 10:25 did gyre and gimble:
>> Am 25.02.2012 22:09, schrieb Dennis Schridde:
>>> Hello!
>>
>>> I just switched from module-init-tools to kmod and found dracut broken, 
>>> because it uses modprobe --show-depends to find out about module locations
>>> and dependencies, which apparently is not implemented in kmod.
>>
>>> Hence I wrote attached patch, switching from modprobe to modinfo, which
>>> also seem to be the tool intended for the job. This method appears to work
>>> reliable in kmod-5, but I have not tested with module-init-tools.
>>
>>> Kind regards, Dennis
>>
>> You need this patch for kmod:
>>
>> http://git.profusion.mobi/cgit.cgi/kmod.git/commit/?id=269de2e0bf5011072da2f40f4f2d4023fad696b9
> 
> What does this patch add?
> 
> I seem to get modprobe working happily with kmod 5 even for non-loaded
> modules. With patch applied or not, the output was the same.
> 
> I'd just like to understand the issue :)

Have you replaced module-init-tools with kmod? If not, then this problem does
not affect you.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] Use modinfo to gather module dependencies
       [not found]         ` <4F4B7237.6070005-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2012-02-27 12:33           ` Colin Guthrie
  0 siblings, 0 replies; 6+ messages in thread
From: Colin Guthrie @ 2012-02-27 12:33 UTC (permalink / raw)
  To: initramfs-u79uwXL29TY76Z2rM5mHXA

'Twas brillig, and Harald Hoyer at 27/02/12 12:08 did gyre and gimble:
> Am 27.02.2012 12:29, schrieb Colin Guthrie:
>> I'd just like to understand the issue :)
> 
> Have you replaced module-init-tools with kmod? If not, then this problem does
> not affect you.

Gah, it seems not. I had it in my head that we'd switched, but on closer
inspection it was just ldetect and few other bits and bobs that moved
over... not module-init-tools yet.

Sorry for the noise.

Col


-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited http://www.tribalogic.net/
Open Source:
  Mageia Contributor http://www.mageia.org/
  PulseAudio Hacker http://www.pulseaudio.org/
  Trac Hacker http://trac.edgewall.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] Use modinfo to gather module dependencies
       [not found]   ` <CALAkbJMqL-p95Yb=jsP8BZAjhJkByHn-QZV=C0nmsTkMW1qZ1Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2012-02-27 12:39     ` Dennis Schridde
  0 siblings, 0 replies; 6+ messages in thread
From: Dennis Schridde @ 2012-02-27 12:39 UTC (permalink / raw)
  To: initramfs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 657 bytes --]

Hi Harald!

Am Samstag, 25. Februar 2012, 22:18:48 schrieben Sie:
> Am 25.02.2012 22:09 schrieb "Dennis Schridde" <devurandom-hi6Y0CQ0nG0@public.gmane.org>:
> > 
> > Hence I wrote attached patch, switching from modprobe to modinfo, which
> 
> also
> 
> > seem to be the tool intended for the job. This method appears to work
> 
> reliable
> 
> > in kmod-5, but I have not tested with module-init-tools.
> 
> Just update kmod... modprobe --show-depends was fixed
Thanks for the info.

I would like know your reasons for using modprobe instead of modinfo to gather 
information about modules, since it appears to be the wrong tool to me.

Kind regards,
Dennis

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-02-27 12:39 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-25 21:09 [PATCH] Use modinfo to gather module dependencies Dennis Schridde
2012-02-27 10:25 ` Harald Hoyer
     [not found]   ` <4F4B5A00.2060400-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-02-27 11:29     ` Colin Guthrie
2012-02-27 12:08       ` Harald Hoyer
     [not found]         ` <4F4B7237.6070005-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-02-27 12:33           ` Colin Guthrie
     [not found] ` <CALAkbJMqL-p95Yb=jsP8BZAjhJkByHn-QZV=C0nmsTkMW1qZ1Q@mail.gmail.com>
     [not found]   ` <CALAkbJMqL-p95Yb=jsP8BZAjhJkByHn-QZV=C0nmsTkMW1qZ1Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-27 12:39     ` Dennis Schridde

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.