OK. so, I basically had 2 choices for modprobe.d auto_loading of mlx4_en upon usage of mlx4_core. Neither was perfect.
A.) "softdep mlx4_core post: mlx4_en mlx4_ib"
The softdep route hits what it seems to me to be a bug in 12.04 in modprobe
or update-initramfs. The updating of initramfs gives warnings like:
FATAL: modprobe: softdep dependency loop encountered inserting mlx4_core
FATAL: modprobe: softdep dependency loop encountered inserting mlx4_core
It exits with success (0), but it does not put mlx4_en inside the initramfs.
B.) "install mlx4_core /sbin/modprobe --ignore-install mlx4_core; /sbin/modprobe mlx4_en; /sbin/modprobe mlx4_ib"
With this entry, creation of initramfs goes fine, but but if there is no mlx4_en or mlx4_ib module available upon request to load the mlx4_core module, the user gets a confusing error:
$ sudo modprobe mlx4_core; echo $?
FATAL: Could not read '/lib/modules/3.2.0-37-virtual/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko': No such file or directory
0
It really feels to me that soft-dep is more intended to satisfy this exact need, but the initramfs is a killer. So, we'll go with the 'install' route.
OK. so, I basically had 2 choices for modprobe.d auto_loading of mlx4_en upon usage of mlx4_core. Neither was perfect.
A.) "softdep mlx4_core post: mlx4_en mlx4_ib"
The softdep route hits what it seems to me to be a bug in 12.04 in modprobe
or update-initramfs. The updating of initramfs gives warnings like:
FATAL: modprobe: softdep dependency loop encountered inserting mlx4_core
FATAL: modprobe: softdep dependency loop encountered inserting mlx4_core
It exits with success (0), but it does not put mlx4_en inside the initramfs.
B.) "install mlx4_core /sbin/modprobe --ignore-install mlx4_core; /sbin/modprobe mlx4_en; /sbin/modprobe mlx4_ib"
With this entry, creation of initramfs goes fine, but but if there is no mlx4_en or mlx4_ib module available upon request to load the mlx4_core module, the user gets a confusing error: 3.2.0-37- virtual/ kernel/ drivers/ net/ethernet/ mellanox/ mlx4/mlx4_ en.ko': No such file or directory
$ sudo modprobe mlx4_core; echo $?
FATAL: Could not read '/lib/modules/
0
It really feels to me that soft-dep is more intended to satisfy this exact need, but the initramfs is a killer. So, we'll go with the 'install' route.
### issue with softdep route ####
$ sudo rm /boot/initrd. img-$(uname -r); sudo update-initramfs -u -k $(uname -r); echo $?; echo === ; cat /etc/modprobe. d/mlx4. conf; echo ===; lsinitramfs /boot/initrd. img-$(uname -r) | grep mlx img-3.2. 0-37-virtual 3.2.0-37- virtual/ kernel/ drivers/ net/ethernet/ mellanox/ mlx4 3.2.0-37- virtual/ kernel/ drivers/ net/ethernet/ mellanox/ mlx4/mlx4_ core.ko d/mlx4. conf
update-initramfs: Generating /boot/initrd.
FATAL: modprobe: softdep dependency loop encountered inserting mlx4_core
FATAL: modprobe: softdep dependency loop encountered inserting mlx4_core
0
===
# mlx4_core should load mlx4_en (LP: #1115710).
softdep mlx4_core post: mlx4_en mlx4_ib
===
lib/modules/
lib/modules/
etc/modprobe.
### issue with install route ####
$ sudo cp ~/mlx4.conf.install /etc/modprobe. d/mlx4. conf; sudo rmmod mlx4_en mlx4_ib mlx4_core &>/dev/null; sudo rm -f /lib/modules/ $(uname -r)/kernel/ drivers/ net/ethernet/ mellanox/ mlx4/mlx4_ en.ko; echo === ; cat /etc/modprobe. d/mlx4. conf; echo ===; sudo modprobe mlx4_core; echo $?; 3.2.0-37- virtual/ kernel/ drivers/ net/ethernet/ mellanox/ mlx4/mlx4_ en.ko': No such file or directory
===
# mlx4_core should load mlx4_en (LP: #1115710).
#softdep mlx4_core post: mlx4_en mlx4_ib
install mlx4_core /sbin/modprobe --ignore-install mlx4_core; /sbin/modprobe mlx4_en; /sbin/modprobe mlx4_ib
===
FATAL: Could not read '/lib/modules/
0