[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: strange hang on ultra5 boot in audioctl init script



On Fri, 12 Nov 2004 21:35:09, Joey Hess wrote:
I've an ultra 5, and if I install unstable with the 2.6 kernel on it, it
hangs during boot like this. I've added set -x to the script that seems
to be hanging it:

Initializing random number generator...done.
Recovering nvi editor sessions... done.
+ test -x /usr/bin/audioctl
+ PARAMS=
+ DEVICE=
+ '[' -f /etc/default/audioctl ']'
+ . /etc/default/audioctl
+ case "$1" in
+ echo -n 'Setting audio parameters...'
Setting audio parameter

Yes, it really seems to hang midway through the echo. Except it's not
really hung, the machine still responds to ping, just the console
doesn't work. Strange huh? I tried removing /etc/rcS.d/S75audioctl, and
the system then boots and works ok. After it's booted, I can run
/etc/init.d/audioctl start with no problems. I've tried reinstalling,
and reproduce the problem every time, though it's fine if I install a
2.4 kernel.

I tried installing ssh and configuring it to start before audioctl
during boot. I could log in via ssh, and was suprised to see that the
init script no longer seems to be running, and no other init scripts are
running either. This is a complete ps fax:

  PID TTY      STAT   TIME COMMAND
1 ? S 0:03 init boot 2 ? SN 0:00 [ksoftirqd/0]
    3 ?        S<     0:00 [events/0]
    4 ?        S<     0:00  \_ [khelper]
   16 ?        S<     0:00  \_ [kblockd/0]
   27 ?        S      0:00  \_ [pdflush]
   28 ?        S      0:00  \_ [pdflush]
   30 ?        S<     0:00  \_ [aio/0]
   15 ?        S      0:00 [powerd]
   17 ?        S      0:00 [khubd]
   29 ?        S      0:00 [kswapd0]
  133 ?        S      0:00 [kseriod]
  206 ?        S      0:00 [kjournald]
  216 ?        Ss     0:00 [init]
  367 ?        S      0:00 [kjournald]
  368 ?        S      0:00 [kjournald]
  369 ?        S      0:00 [kjournald]
  370 ?        S      0:00 [kjournald]
  371 ?        S      0:00 [kjournald]
  795 ?        Ss     0:00 dhclient -e -pf /var/run/dhclient.eth0.pid -lf /var/r
  802 ?        Ss     0:00 /usr/sbin/sshd
  855 ?        Ss     0:00  \_ sshd: root@pts/0
  858 pts/0    Ss     0:00      \_ -bash
  919 pts/0    R+     0:00          \_ ps fax

I was not ale to strace init, so I don't know what it's doing. telinit
does not seem to work. And that process 216 that is apparently a swapped
out init child is very strange. Nothing interesting in dmesg, and of
course syslogd is not running yet. One other interesting thing is that
if I echo to /dev/console, it hangs.

Here's another weird thing: If I turn on bootlogd, it doesn't hang.

Serial console ?

Sounds like something in the boot process is setting -clocal, or
turns on hardware handshaking, and if you just have a simple
3-wire terminal RTS and DCD are low so I/O from/to the console
device hangs - as usual, the computer does what you say, not
what you want :)

Also, I have seen something very similar with a 2.6 kernel on
Intel machines - sometimes, not always, but sometimes, the boot
process hangs as you describe because of a bug in the serial
driver. If I press "enter" on the serial console a few times,
interrupts are generated and the serial driver gets "unstuck"
and booting continues ... I have not been able to reproduce
it reliably, though, so I haven't reported this on linux-kernel yet.

Mike.



Reply to: