Bug 149588 - Must disable coldplug to either complete installation or run normally
Summary: Must disable coldplug to either complete installation or run normally
Status: VERIFIED FIXED
Alias: None
Product: SUSE LINUX 10.0
Classification: openSUSE
Component: Installation (show other bugs)
Version: Final
Hardware: x86 SuSE Linux 10.0
: P5 - None : Normal
Target Milestone: ---
Assignee: Christian Zoz
QA Contact: Klaus Kämpf
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-02-09 16:39 UTC by Steve May
Modified: 2007-06-05 09:37 UTC (History)
1 user (show)

See Also:
Found By: Other
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
My hardware configuration (160.06 KB, text/plain)
2006-02-09 16:41 UTC, Steve May
Details
Boot messages just before hang (128.34 KB, text/plain)
2006-02-19 15:20 UTC, Steve May
Details
modules list (4.32 KB, text/plain)
2006-02-21 14:51 UTC, Christian Zoz
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Steve May 2006-02-09 16:39:16 UTC
Unable to complete install or run SuSE 10.0 Linux without disabling coldplug, Initially I was doing an upgrade from SuSE Linux 9.3 where I had had no problems with any of hardware. After loading up the first CD SuSE then as normal reboots, however the system completely hung after the message System Boot Control: Running /etc/init.d/boot.local. I decided to start over and do a clean installation instead of an upgrade, I had the same problem. Having searched the internet I discovered the problem was running Coldplug. This I disabled and the system came up and I was able to complete the installation. However, if I enable Coldplug the system will hang even if I run it after the system is up. Hence several of my devices do not become active, e.g. network card. I have no idea how debug this kind of problem. Robb Dunphy (Novell Technical Services) suggested this is a bug and asked me to report it as such. Apologies if I've placed it on the wrong queue as its not clear if this is an installation problem or kernel problem or something else!
Comment 1 Steve May 2006-02-09 16:41:01 UTC
Created attachment 67349 [details]
My hardware configuration
Comment 2 Thomas Fehr 2006-02-09 16:52:06 UTC
Reassigned to maintainer of hotplug.
Comment 3 Christian Zoz 2006-02-10 12:42:11 UTC
I guess it loads a 'bad' driver.

Please boot without Coldplug. Then set /etc/udev/udev.conf:udev_log=info.
Insert a line
   sleep 2; sync; sleep 1
in /sbin/hwup, function modprobe_modalias, directly after line 
   info_mesg "executing modprobe $MODALIAS"
Then call coldplug start.

At the next boot you can look in /var/log/messages what happened right before the crash.
Comment 4 Steve May 2006-02-19 15:20:06 UTC
Created attachment 69201 [details]
Boot messages just before hang
Comment 5 Steve May 2006-02-19 15:23:48 UTC
Apologies for delay in responding but I have been very ill!

Attached is the section of /var/log/messages relating to the boot process just before the hang. This is following the changes to /etc/udev/udev.conf and /sbin/hwup as requested.
Regards, Steve
Comment 6 Christian Zoz 2006-02-21 14:45:54 UTC
grep modprobe <your attachment> shows that modprobe is called for these modaliases:

pci:v000010B9d00005237sv000010B9sd00005237bc0Csc03i10
pci:v000010B9d00005237sv000010B9sd00005237bc0Csc03i10
pci:v000010B9d00005239sv000010B9sd00005272bc0Csc03i20
pci:v00001102d00000002sv00001102sd00008061bc04sc01i00
pci:v00001102d00007002sv00001102sd00000020bc09sc80i00
pci:v0000109Ed0000036Esv00000000sd00000000bc04sc00i00
pci:v0000109Ed00000878sv00000000sd00000000bc04sc80i00
pci:v000010DEd00000171sv00000000sd00000000bc03sc00i00

Again start without coldplug and then call modprobe for each of these modaliases. Which is the evil?
Comment 7 Christian Zoz 2006-02-21 14:51:18 UTC
Created attachment 69597 [details]
modules list

This are the modules which will be loaded for the mentioned modaliases.
Comment 8 Steve May 2006-02-28 23:14:23 UTC
Christian,

Either of the two following modaliases will cause my system to hang:

pci:v0000109Ed0000036Esv00000000sd00000000bc04sc00i00
pci:v0000109Ed00000878sv00000000sd00000000bc04sc80i00

From the attachment of the modules that load for the modaliases, I note that these modaliases appear to be for a TV card (chipset BT878)?

I do have installed a satellite TV card (Twinhan/Vision Plus VP1020 Free-To-Air card). However, on previous releases of SuSE Linux I have not been able to use the supplied drivers to get the card to work, indeed I do recall configuring the card caused the system to hang! So, on subsequent upgrades I've never bothered to config the card and SuSE has installed and ran fine. I have also not configured the card under SuSE 10.0, but this is obviously not a solution that works for SuSE 10.0. 

Whereas, it would be nice to be able to use the card with SuSE Linux, I'd be quite happy if I could get the rest of the system to behave normally. Is there some way to stop coldplug from issuing modprobe for the two modaliases which are causing the system to hang? It's as if SuSE Linux is attempting to load the drivers for the satellite card even though the card has not been configured in Yast. 

By the way, the satellite card works fine with Windows and the supplied Windows drivers, so I can actually use the satellite card OK.

Best Regards,
Steve  

Comment 9 Steve May 2006-02-28 23:17:11 UTC
Christian,

Either of the two following modaliases will cause my system to hang:

pci:v0000109Ed0000036Esv00000000sd00000000bc04sc00i00
pci:v0000109Ed00000878sv00000000sd00000000bc04sc80i00

From the attachment of the modules that load for the modaliases, I note that
these modaliases appear to be for a TV card (chipset BT878)?

I do have installed a satellite TV card (Twinhan/Vision Plus VP1020 Free-To-Air
card). However, on previous releases of SuSE Linux I have not been able to use
the supplied drivers to get the card to work, indeed I do recall configuring
the card caused the system to hang! So, on subsequent upgrades I've never
bothered to config the card and SuSE has installed and ran fine. I have also
not configured the card under SuSE 10.0, but this is obviously not a solution
that works for SuSE 10.0. 

Whereas, it would be nice to be able to use the card with SuSE Linux, I'd be
quite happy if I could get the rest of the system to behave normally. Is there
some way to stop coldplug from issuing modprobe for the two modaliases which
are causing the system to hang? It's as if SuSE Linux is attempting to load the
drivers for the satellite card even though the card has not been configured in
Yast. 

By the way, the satellite card works fine with Windows and the supplied Windows
drivers, so I can actually use the satellite card OK.

Best Regards,
Steve  
Comment 10 Christian Zoz 2006-03-01 12:55:19 UTC
Gerd, if there must something be added to the blacklist, reassign to me.
Comment 11 Gerd Hoffmann 2006-03-01 13:33:29 UTC
Oh well, that's a very special piece of hardware.
Problem is that
  (a) touching the (unused) video function of the bt878 will freeze the machine
and
  (b) the card lacks a PCI subsystem ID and thus can't be identified automatically.

Steve:  If you load the driver using "modprobe bttv card=113" the freezes should go away.  If you load the dvb driver (bt878) afterwards chances are good that the card even works ok with linux.

Christian:  Simply blacklisting the whole bttv module due to that isn't an option IMHO.  Is it possible to blacklist specific PCI ID's only?  Especially: is it possible to blacklist bt878 cards which don't have a PCI Subsystem ID, but without blocking all bt878 cards while doing so?
Comment 12 Christian Zoz 2006-03-01 14:17:02 UTC
Blacklisting via modprobes blacklist command does afaik not work (Marian, you might know better). But we can add special alias lines for these and redirect them to bin/true (or better echo info).

alias pci:v0000109Ed0000036Esv00000000sd00000000bc04sc00i00 skip_it
install skip_it /bin/echo "This module alias is blacklisted"

Tell me which pci ID's you want to treat this way.
Comment 13 Gerd Hoffmann 2006-03-01 15:13:15 UTC
The line you've picked in comment #12 is the correct one ;)

Ah and I think "pci:v0000109Ed00000878sv00000000sd00000000bc04sc80i00" must be handled that way too otherwise we'll get bttv.ko loaded again via bt878.ko symbol dependencies.

I'd suggest to make the echo a bit more descriptive (bt878 chip without PCI Subsystem ID) so we remember the reason it was blacklisted.

Taking yast2-tv maintainer into Cc:, he might want to know what we are doing ;)
Comment 14 Christian Zoz 2006-03-01 18:53:22 UTC
Added this to blacklist:

# These devices have bt878 chip without PCI Subsystem ID. Without that info bttv
# does not know how to treat them properly. Therefore we disable autoloading of
# modules for these devices.
# See https://bugzilla.novell.com/show_bug.cgi?id=149588
# To enable your device craete a hardware configuration file for your device.
# See man hwup for details. Try option 'card=113' with module 'bttv'.
alias pci:v0000109Ed0000036Esv00000000sd00000000bc04sc00i00 bttv_skip_it
alias pci:v0000109Ed00000878sv00000000sd00000000bc04sc80i00 bttv_skip_it
install bttv_skip_it /bin/echo "module alias skipped (bt878 chip without PCI Subsystem ID)"

Fixed in svn, Try oran-zoz-23.
Comment 15 Gerd Hoffmann 2006-03-02 08:15:25 UTC
Almost perfect ;)  card=113 is only fine for the card in this bug (i.e. twinhan dvb cards), for other cards other values are needed to get them work correctly. (Documentation/video4linux/CARDLIST.bttv in the linux kernel source tree has a list ...).
Comment 16 Christian Zoz 2006-03-02 13:03:03 UTC
# To enable your device create a hardware configuration file for your device.
# See man hwup for details.
# You will probably have to specify an option to identify your card. Have a look
# in /usr/src/linux/Documentation/video4linux/CARDLIST.bttv.
Comment 17 Steve May 2006-03-02 16:30:39 UTC
Gerd: Thanks for the info, issuing "modprobe bttv card=113" works okay.

Christian: Many thanks, I'll take a look at the documentation you recommended, in the meantime  I've the alias entries you recommended to /etc/modprobe.conf.local and reenabled coldplug successfully.

alias pci:v0000109Ed0000036Esv00000000sd00000000bc04sc00i00 bttv_skip_it
alias pci:v0000109Ed00000878sv00000000sd00000000bc04sc80i00 bttv_skip_it
install bttv_skip_it /bin/echo "module alias skipped (bt878 chip without PCI Subsystem ID)" 
Best Regards, Steve