FS#17474 - [mkinitcpio] 8250.nr_uarts=8 stop the kernel booting

Attached to Project: Arch Linux
Opened by zhengyi (goodmen) - Saturday, 12 December 2009, 10:06 GMT
Last edited by Thomas Bächler (brain0) - Friday, 19 February 2010, 17:31 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Aaron Griffin (phrakture)
Thomas Bächler (brain0)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
when set kernel param "8250.nr_uarts=8" in the grub, the kernel booting will run into truble.

In the initrd scrip init, the "case" block can not process this param correctly.
It will turn that param into a scrip line "8250_nr_uarts=8" then, sh will complain that 8250_nr_uarts is not a valide variable name!

Because the 8250 driver is not compile as a kernel module, so the only way
to assign to number of serial port is by kernel params( if one do not want to rebuild the kernel).

Would you please imporve the initrd/init script to let the kernel itself to deel
with that param?


Additional info:
* package version(s) all version of mkinitcpio
* config and/or log files etc.


Steps to reproduce:
This task depends upon

Closed by  Thomas Bächler (brain0)
Friday, 19 February 2010, 17:31 GMT
Reason for closing:  Fixed
Additional comments about closing:  Should be fixed, and no further response.
Comment by zhengyi (goodmen) - Saturday, 12 December 2009, 10:24 GMT
Here is my fix. Could the maintaner give a full solution?
Any kernel param that begin with [0123456789] will fail if the /lib/initcpio/init is not updated
   init (4 KiB)
Comment by Aaron Griffin (phrakture) - Sunday, 13 December 2009, 01:51 GMT
This seems ok to me. Thomas, because you were unhappy with the sh compliance stuff, let's talk about this over jabber next week some time.

Side note: why do you have to set this on the kernel command line? Can it not be set as a module parameter in a modprobe conf file?
Comment by zhengyi (goodmen) - Sunday, 13 December 2009, 02:45 GMT
Because 8250 driver is built into kernel directly, not as a kernel module( and I think it is a good choice! ), so the only way I know to set the parameter is by kernel cmdline.

Do you agree with me?

Serial port is a basic hardware, some machines do not have a video card(embeded system and telcom system), so a serial terminal is an important way to run the system. If 8250 is compiled as a kernel module, one can not see the
precdure of kernel booting( an important way to debug system ).


Comment by Aaron Griffin (phrakture) - Sunday, 13 December 2009, 04:29 GMT
Oh that sounds good. I didn't think of the part where it needs to be built in to use a serial terminal during boot.

I'll try to get this fixed sometime this week, assuming Thomas gets back to me :)
Comment by zhengyi (goodmen) - Sunday, 13 December 2009, 04:45 GMT
Because 8250 driver is built into kernel directly, not as a kernel module( and I think it is a good choice! ), so the only way I know to set the parameter is by kernel cmdline.

Do you agree with me?

Serial port is a basic hardware, some machines do not have a video card(embeded system and telcom system), so a serial terminal is an important way to run the system. If 8250 is compiled as a kernel module, one can not see the
precdure of kernel booting( an important way to debug system ).


Comment by Thomas Bächler (brain0) - Tuesday, 12 January 2010, 22:28 GMT
This should be fixed in the 0.6 release of mkinitcpio.
Comment by Thomas Bächler (brain0) - Saturday, 06 February 2010, 16:54 GMT
This particular case is fixed in the 0.6 branch of mkinitcpio.

Loading...