Dear sysvinit Development Team,


I am an embedded systems programmer, also a sysvinit user and I wish to share 
with you my concerns about this recently introduced feature:

http://git.savannah.nongnu.org/cgit/sysvinit.git/commit/?id=6e3e87bf32664aaf996d5b7b1eef3b9441ba19ac


There are some problems with it.


p1. It breaks compatibility. For example, if kernel params include 
"console=ttyS0" and file /etc/inittab already cotains an entry like this:


s0:12345:respawn:/sbin/agetty ttyS0 115200 linux


the sysvinit will not notice that there already is an agetty running on ttyS0 
and will launch another one. Two agettys will share ttyS0 and produce bizzare 
effects - prompts of both shells will randomly alternate on the console, and 
the characters from input will go randomly to one shell or another.


I encountered an effect like this - an upgrade of sysvinit (without changing 
configuration) broke my boxes.


p2. It ignores the baudrate from kernel params. If kernel params include 
"console=ttyS0,9600", the baudrate 9600 will be ignored (not passed to agetty).


p3. It hardcodes too much. Essentially, it runs:


/sbin/agetty -L -s 115200,38400,9600 ${console_id} vt102


with ${console_id} as the only softcoded thing. Someone might want to:

- use other program than /sbin/agetty

- use other terminal than vt102

- use other options than -L -s (for example, -l or -n)


For example, I use /sbin/agetty, but with non-standard options.


p4. In many cases, when the /sbin/init starts, /proc is not mounted yet, 
therefore /proc/cmdline is not available and the feature does not work anyway.


I understand that solving p3 (i.e. softcoding everything) would be complex, and 
/sbin/init is expected to be simple and stable.


However, I strongly believe that at least p1 should be adressed. I believe that 
this feature should not be enabled by default. It should depend on some kind of 
switch (in /etc/inittab or in some other file, maybe in kernel params).


Sincerely,

Grzegorz Borowiak


Reply via email to