Re: [linux-usb-devel] USB Keyboard

From: linux-os \(Dick Johnson\)
Date: Thu Mar 15 2007 - 15:59:10 EST



On Thu, 15 Mar 2007, Alan Stern wrote:

> On Thu, 15 Mar 2007, linux-os (Dick Johnson) wrote:
>
>>>> Ouch! I can't do anything by copy from a screen! There is no way to get
>>>> `dmesg` without the keyboard! That's why I sent a request to
>>>> linux-kernel, hoping that the problem would sound familiar. All I can do
>>>> is boot the system (off a CD-ROM) and then pull the plug when the
>>>> keyboad doesn't work!
>
> Can you get the live-CD to initialize a network interface via DHCP and
> then log in remotely?
>
> Alan Stern

What I have is a bootable-CD/ROM that boots Linux with
a very minimum system. It executes a simple home-made
shell which has three commands, one to check if all
the hardware is present, another to install software,
and the last to umount the drive(s) and reboot. The
rest of the CD/ROM contains a tar.gz ball of the entire
software to be installed after the shell partitions the
drive(s), builds file-systems, and mounts them. After
the entire directory structure with all the files is
cloned, `grub` is executed to put the boot-sector on
the first partition of the first drive. This is how
we 'clone' a number of embedded image-processing
systems.

It is only __after__ all that happens that I have
a system that can be used interactively. It doesn't
normally run on a network, but it could once it is
completely built. Using this technique, one doesn't
need to have some technicians install a distribution
from scratch, then install all the third-party stuff,
then install all the Analogic stuff. We just 'clone'
a "golden" system, which takes about two hours per
system as opposed to about 8 hours the "hard" way.
The time is basically the time to read from the CD.

The OS on the CD is a standard 32-bit version as
the attached ".config" file will show. It boots
these systems fine because it doesn't do anything
special, only claims to be a Pentium, etc.

So, this worked with RedHat versions of the kernel.
However, we now have some third-party software that
doesn't so I built another CD/ROM that contains a
new tarball plus a kernel from the net. That's
when I found that the USB keyboard doesn't work
on most of the systems, but still works on some.

The initrd "linuxrc" file that loads the modules is
here. One can see the order in which the modules are
loaded. We had to make our own shell to replace 'nash'
because the SCSI drivers spawned "children" that
confused nash with SIGCHLD when they executed.

#!/bin/command
echo "Mount /proc filesystem"
mount -t proc /proc /proc
echo "Loading modules"
echo "Loading scsi_mod.ko module"
insmod /lib/scsi_mod.ko
echo "Loading sd_mod.ko module"
insmod /lib/sd_mod.ko
echo "Loading scsi_transport_spi.ko module"
insmod /lib/scsi_transport_spi.ko
echo "Loading aic79xx.ko module"
insmod /lib/aic79xx.ko
echo "Loading jbd.ko module"
insmod /lib/jbd.ko
echo "Loading ext3.ko module"
insmod /lib/ext3.ko
echo "Loading loop.ko module"
insmod /lib/loop.ko
echo "Loading rtc.ko module"
insmod /lib/rtc.ko
echo "Loading uhci-hcd.ko module"
insmod /lib/uhci-hcd.ko
echo "Loading ehci-hcd.ko module"
insmod /lib/ehci-hcd.ko
echo "Loading usbhid.ko module"
insmod /lib/usbhid.ko
echo "Loading usbkbd.ko module"
insmod /lib/usbkbd.ko
echo "sleeping for a few seconds"
sleep 2
echo "Mounting root filesystem"
/bin/findroot
mount -o defaults --ro -t iso9660 /dev/root /sysroot
pivot_root /sysroot /sysroot/initrd
umount /initrd/proc
exec /sbin/init

On the systems where it works, one can unplug or plug in the
keyboard and get a corresponding message. On the ones that
don't, it's dead. I was going to boot a troublesome system
again and report results on the screen with debugging enabled.
However, that system is now having its software loaded the
"hard" way because they need to make shipments. They will soon
find out that they can't complete the installation because
the keyboard doesn't work once Linux is up, but they didn't
listen.... I will be able to boot it again after they finish
failing (tommorrow)!


Cheers,
Dick Johnson
Penguin : Linux version 2.6.16.24 on an i686 machine (5615.29 BogoMips).
New book: http://www.AbominableFirebug.com/
_



****************************************************************
The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors@xxxxxxxxxxxx - and destroy all copies of this information, including any attachments, without reading or disclosing them.

Thank you.

Attachment: CONFIG.gz
Description: CONFIG.gz