View file File name : detect_ppa Content :#!/bin/sh # script for testing installation of a PPA printer, v0.5 20000908 # (C) 2000 The pnm2ppa project # Requires Linux 2.2.x kernels with parport autoprobe support. # assumes all parallel ports are in the range 0-7 # (as linux/include/parport.h sets PARPORT_MAX=8) MODPROBE="/sbin/modprobe" echo "*** Script for testing installation of PPA printers on Linux " echo " (requires 2.2.x kernel or later)" supported="710 720 820 1000" if [ "$($MODPROBE -l parport_probe.o )" = "" ] ; then echo "*** kernel module parport_probe.o not found:" echo "*** IEEE-1284 autodetection not supported by this Linux kernel" exit 1 fi if ! $($MODPROBE -r ) ; then echo "*** Error: cannot load/unload kernel module(s) " echo " You must run this script as root " exit 1 fi # (re)probe the parport: $MODPROBE -r lp # unload the lowlevel parport driver #(probably only ARCH=pc is OK for PPA printers?) for ARCH in amiga arc atari ax mfc3 pc ; do $MODPROBE -r parport_$ARCH done $MODPROBE lp if [ -e /proc/parport ] ; then found=0 found_ppa=0 ppa_printer="" for n in 0 1 2 3 4 5 6 7 ; do if [ -e /proc/parport/$n/autoprobe ] ; then found=1 echo " " echo "Printer found at parallel port $n (usually /dev/lp$n )" echo "IEEE-1284 autoprobe reports:" cat /proc/parport/$n/autoprobe report=$(cat /proc/parport/$n/autoprobe) for printer in $supported ; do if $(echo $report |grep -e "DESKJET $printer" >/dev/null) ; then found_ppa=1 text=" type=$printer, port=$n;" ppa_printer=$ppa_printer$text fi done fi done echo " " if [ "$found_ppa" = 0 ] ; then echo "No supported PPA printers attached to parallel port(s) were found" echo "(Make sure the printer's power cable is connected!!)" else echo "Supported PPA printers found on parallel ports:" echo $ppa_printer echo "printers on parallel port <n> are by default accessed by printing to /dev/lp<n>" echo "(unless this was explictly changed when loading the parport module)" fi else echo "*** Error: /proc/parport does not exist:" echo "*** Cannot autoprobe IEEE-1284 parallel port devices." echo "(This requires 2.2.x kernels with IEEE-1284 autoprobe support)" echo "A IEEE-1284 bidirectional parallel port cable is also required" echo "*** Possible causes of error:" echo " 1. You are running an older Linux kernel (2.0.x or earlier)" echo " -- this does NOT mean that you cannot make your PPA printer" echo " work; however, this test script will not work." echo " 2. Check that the printer is properly connected to a parallel" echo " port, with a bidirectional IEEE-1284 cable, and is switched" echo " on. (If your printer works under MS Windows(tm), you have " echo " the correct cable.)" echo " 3. If \"lsmod\" shows that the lp, parport and parport_probe" echo " modules are loaded, but not the architecture-dependent " echo " module parport_pc, you may need to add a line " echo " alias parport_lowlevel parport_pc " echo " to your /etc/conf.modules file (needed for RedHat 6.1)." echo " " echo " (modules for other architectures exist, e.g., parport_ax for " echo " Sun Ultra/AX, but it is not clear whether PPA printers " echo " will work on such hardware (let us know if you try...))" exit 0 fi