FS#27668 - [mkinitcpio] Net hook does not work if kernel parameter line is too long

Attached to Project: Arch Linux
Opened by Andreas (Evilandi666) - Thursday, 22 December 2011, 16:20 GMT
Last edited by Dave Reisner (falconindy) - Monday, 23 January 2012, 19:02 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Thomas Bächler (brain0)
Dave Reisner (falconindy)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
If you have a long parameter line and the ip=... config of the net hook at the end, it won't be red completly and you just get an error like "unknown protocol st", because the last 4 characters of "static" are missing.

I first thought this is because grub or kernel can't handle long parameter lines, but if you put ip=... in the beginning and other parameters at the end all work fine.

Please see my thread at arch forum for much more information: https://bbs.archlinux.org/viewtopic.php?pid=1031340#p1031340

Additional info:
* package version(s)
mkinitcpio 0.8.0-3
mkinitcpio-nfs-utils 0.2-2

Steps to reproduce:
0) config mkinitcpio to use net hook
1) Open /boot/grub/menu.lst
2) use the following kernel line (please replace UUID with one with same length):
kernel /vmlinuz-linux cryptdevice=/dev/disk/by-uuid/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:main:allow-discards root=/dev/mapper/main-root pcie_aspm=force i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 acpi_osi=Linux quiet ro locale=de_DE.UTF-8 lang=de ip=192.168.178.1:::::eth0:static

3) reboot -> I get "unknown protocol st" from net hook

If I use
kernel /vmlinuz-linux cryptdevice=/dev/disk/by-uuid/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX:main:allow-discards root=/dev/mapper/main-root pcie_aspm=force i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 acpi_osi=Linux quiet ro ip=192.168.178.1:::::eth0:static locale=de_DE.UTF-8 lang=de

then everything works fine even the last two parameters are set correctly.

I don't if this is a bug in mkinitcpio oder mkinitcpio-nfs-utils, so please move if wrong. It seems to be mkinitcpio can only handle 254/255 characters, would be great to put that to a higher value ;)
This task depends upon

Closed by  Dave Reisner (falconindy)
Monday, 23 January 2012, 19:02 GMT
Reason for closing:  Not a bug
Additional comments about closing:  255 characters is the limit for the x86 kernel cmdline. Use /etc/modprobe.d/
Comment by Dave Reisner (falconindy) - Saturday, 07 January 2012, 00:54 GMT
This isn't a limitation of mkinitcpio -- it's a limitation of the kernel. Module options you have on the kernel cmdline belong in a modprobe.d file stuck in /etc and included on your initramfs.

Loading...