Black screen hinders the client build on the target host

Toomas Tamm tt-fai at kky.ttu.ee
Wed Dec 4 12:09:16 CET 2013


Hello,

I have not yet installed wheezy on any of the strange-video machines we
have (going to do one in a couple of weeks), but the general
characteristic of suspicious modules is that they drive various frame
buffers. These tend to have "fb" in their name.

I currently have the following in my class/20-hwdetect.source , but this
has not been tested on suspicious hardware yet. Probably does not apply
to wheezy anyway (see the comment):

# wheezy does not have -m and modules.pcimap
depmod -m 2>/dev/null
if [ -f "/lib/modules/`uname -r`/modules.pcimap" ]; then
    for module in $(pcimodules) ; do
        if [ $module = "radeonfb" -o $module = "nvidiafb" -o $module = "cirrusfb" ] ; then
            # Loading the frame buffer modules messes up screens of certain hosts
            [ "$verbose" ] && echo Avoiding loading of kernel module $module
        else
            [ "$verbose" ] && echo loading kernel module $module
            modprobe "$module"
        fi
    done
fi

Maybe you can cook up your own solution based on that.

On Wed, 2013-12-04 at 01:27 -0500, George VerDuin wrote:

> In March, Toomas Tamm  believed the video interface hardware in my 
> particular host is a strange variety, and it seems correct to me. The 
> bad news is that his suggestion does not work today, and modprobe has 
> such a large list I doubt I will be able to sort it out.  The black 
> screen in March was solved by something unknown to me at this moment.  
> If no driver is the problem, I am most puzzled about why the interface 
> is shut down upon failure to find suitable driving software.  Why does 
> linux not return to whatever worked OK a few seconds earlier even though 
> it is not the ideal solution?

One trick I have used to debug this and other similar issues is to put
delays (via the sleep command) into the script, for example

for module in [something]
do 
    echo "now going to modprobe $module"
    sleep 5
    modprobe $module
done
echo "all modules loaded"
sleep 5

This way you will, after watching for some minutes, see exactly the last
command that gets executed before the screen goes blank. You may record
the screen with a video camera (hint: most smartphones have the
functionality as well) if you want to make sure you do not miss
anything.

If it is not modprobe, keep adding similar debug statements into other
parts of the FAI scripts. The great thing about FAI is, that it is a
collection of scripts after all, and thus very easy to modify and debug.

Regards,

Toomas


More information about the linux-fai mailing list