Return to BSD News archive
Newsgroups: comp.unix.bsd Path: sserve!manuel!munnari.oz.au!uunet!destroyer!ncar!ico!jbsys.com!jbev From: jbev@iscden.jbsys.com (Jim Bevier - J B Systems) Subject: How to build & configure LPT Message-ID: <1992Aug11.201127.1600@jbsys.com> Sender: jbev@jbsys.com (Jim Bevier - J B Systems) Organization: J B Systems on HiPeak, Morrison, Co. Date: Tue, 11 Aug 1992 20:11:27 GMT Lines: 154 I have seen several requests for information on how to install the line printer driver lpt.c. Well, this is what I did, and it seems to work. The printer must be online and ready before starting any printing. In /sys/i386/isa edit the file lpt.c to look like the following diffs: ------------------start diffs--------------------- *** lpt.c.std Fri Apr 17 17:18:59 1992 --- lpt.c Sun Aug 9 21:35:45 1992 *************** *** 46,52 **** * SUCH DAMAGE. * */ - */ /* * Device Driver for AT parallel printer port --- 46,51 ---- *************** *** 57,69 **** #if NLPT > 0 #include "param.h" - #include "user.h" #include "buf.h" #include "systm.h" - #include "kernel.h" #include "ioctl.h" #include "tty.h" #include "uio.h" #include "i386/isa/isa_device.h" #include "i386/isa/lptreg.h" --- 56,69 ---- #if NLPT > 0 #include "param.h" #include "buf.h" #include "systm.h" #include "ioctl.h" #include "tty.h" + #include "proc.h" + #include "user.h" #include "uio.h" + #include "kernel.h" #include "i386/isa/isa_device.h" #include "i386/isa/lptreg.h" -------------------------------end------------------------- The above changes will allow the driver to be compiled without errors. I did not change any of the driver's functionality. Now go to /sys/i386/i386 and edit conf.c to add the lpt information: ------------------start diffs--------------------- *** conf.c.std Sat May 30 16:48:08 1992 --- conf.c Sun Aug 9 21:41:10 1992 *************** extern struct tty com_tty[]; *** 165,170 **** --- 165,179 ---- #define com_tty NULL #endif + #include "lpt.h" + #if NLPT > 0 + int lptopen(),lptclose(),lptwrite(); + #else + #define lptopen enxio + #define lptclose enxio + #define lptwrite enxio + #endif + int logopen(),logclose(),logread(),logioctl(),logselect(); int ttselect(), seltrue(); *************** struct cdevsw cdevsw[] = *** 214,219 **** --- 223,231 ---- { asopen, asclose, rawread, rawwrite, /*D*/ asioctl, enodev, nullop, NULL, seltrue, enodev, asstrategy }, + { lptopen, lptclose, enodev, lptwrite, /*E*/ + enodev, enodev, nullop, NULL, + seltrue, enodev, NULL }, }; int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]); -------------------------------end------------------------- This will add the major character device 'E' for the printer. You will use `14' for the mknod later. No go to /sys/i386/conf and edit files.i386 to include the lpt driver. ------------------start diffs--------------------- *** files.i386.std Mon May 25 12:25:04 1992 --- files.i386 Sun Aug 9 21:25:29 1992 *************** i386/isa/isa.c optional isa device-driv *** 22,27 **** --- 22,28 ---- i386/isa/com.c optional com device-driver i386/isa/npx.c optional npx device-driver i386/isa/as.c optional as device-driver + i386/isa/lpt.c optional lpt device-driver i386/i386/db_disasm.c optional ddb i386/i386/db_interface.c optional ddb i386/i386/db_trace.c optional ddb -------------------------------end------------------------- Now you need to modify your local configuration file by adding the lpt device information. Insert the device definition as: device lpt0 at isa? port 0x378 bio irq 7 vector lptintr or device lpt0 at isa? port "IO_LPT1" bio irq 7 vector lptintr Now do a ``config LOCAL_CONFIG'' Now you can go to /sys/compile/LOCAL_CONFIG and do ``make depend'' and then ``make''. This will rebuild the kernel with the printer driver included. Then install the new system by: ``mv /386bsd /386bsd.alt'' ``cp 386bsd /'' and reboot your system. After the system restarts, you need to make the dev entries for the printer by: ``mknod /dev/lpt0 c 14 0'' ``ln /dev/lpt0 /dev/lp'' ``chmod 222 /dev/lpt0'' Now...., you are done. So make sure your printer is connected, online, and ready and output something to the printer, such as: ``cat /COPYRIGHT > /dev/lp'' I hope it will all work for you too! 8-) Jim Bevier jbev@jbsys.com -- +=+ From the mountains of Colorado: jbev@jbsys.com +=+ +=+ when it's not snowing, the sun is shining +=+ +=+ Jim Bevier - J B Systems (303)-697-1038 +=+ +=+ 10136 Horizon View, Morrison, CO 80465 +=+