Re: Raspberry Pi 3B USB Printing Issue
- Reply: Hans Petter Selasky : "Re: Raspberry Pi 3B USB Printing Issue"
- In reply to: Hans Petter Selasky : "Re: Raspberry Pi 3B USB Printing Issue"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 10 Mar 2022 12:37:08 UTC
On Thu, Mar 10, 2022 at 3:47 PM Hans Petter Selasky <hps@selasky.org> wrote: > On 3/10/22 00:24, Archimedes Gaviola wrote: > > On Thu, Mar 10, 2022 at 4:14 AM Hans Petter Selasky <hps@selasky.org> > wrote: > > > >> On 3/9/22 18:55, Archimedes Gaviola wrote: > >>> Hi, > >>> > >>> I have an Epson printer connected to one of the USB ports of my RPi 3B. > >> The > >>> printer is detected as a ugen(4) driver and then I have a text file - > >>> myfile3.txt which contains 10 lines of repeating sentences. > >>> > >>> freebsd@generic:~ % dmesg | grep EPSON > >>> ugen1.4: <EPSON EPSON UB-U03II> at usbus1 > >>> > >>> freebsd@generic:~ % cat myfile3.txt > >>> The quick brown fox jumps over the lazy dog. > >>> The quick brown fox jumps over the lazy dog. > >>> The quick brown fox jumps over the lazy dog. > >>> The quick brown fox jumps over the lazy dog. > >>> The quick brown fox jumps over the lazy dog. > >>> The quick brown fox jumps over the lazy dog. > >>> The quick brown fox jumps over the lazy dog. > >>> The quick brown fox jumps over the lazy dog. > >>> The quick brown fox jumps over the lazy dog. > >>> The quick brown fox jumps over the lazy dog. > >>> > >>> freebsd@generic:~ % cat myfile3.txt > /dev/usb/1.4.1 > >>> > >>> I print the file successfully through device file redirection with cat > >>> command as described above. However, there were times that printing > >> seemed > >>> to suspend and withhold especially when my RPi 3B system got idle for > >> some > >>> period of time. Suspended or withhold in such a way that out of the 10 > >>> lines there were only 2-3 lines to be printed in the paper. So, the > only > >>> remedy I have for now is to reboot the system to be able to get back to > >>> normal printing. I'm using the 14.0-CURRENT #0 > main-n253384-45c23c2608e: > >>> Thu Feb 24 09:18:58 UTC 2022 and my RPi 4B does not manifest this > >> behavior > >>> using this same 14.0-CURRENT version. Any idea what's going on? > >>> > >>> I found these sysctl knobs thinking if some tweaks would help but not > >> sure > >>> what are the exact settings beyond these defaults. > >>> > >>> hw.usb.timings.port_resume_delay: 40 > >>> hw.usb.timings.port_powerup_delay: 300 > >>> hw.usb.timings.port_reset_recovery: 10 > >>> hw.usb.timings.port_root_reset_delay: 200 > >>> hw.usb.timings.port_reset_delay: 50 > >>> > >>> (Resend this message without dmesg and sysctl outputs as files are > quite > >>> big, sorry I didn't notice it.) > >>> > >> > >> Hi, > >> > >> Why are you not using /dev/ulpt<N> ? > >> > >> /dev/usb/1.4.1 is the raw BULK endpoint. > >> > > > > > > Hi Hans, > > > > The ulpt(4) driver isn't detected with this Epson printer. Only my other > > printer which is an Xprinter brand is able to get detected with ulpt(4). > > > > Hi, > > Is it correctly detected if you the VID and PID to > /usr/src/sys/dev/usb/serial/ulpt.c ? > Hi Hans, Not sure how to make the current ugen(4) driver into ulpt(4). Is there a need to disable ugen(4) and recompile the kernel and let ulpt(4) driver loaded and enabled? As far as vendor ID and product ID of this Epson printer are concerned, these are 0x04b8 and 0x0200 respectively. I checked it with usbconfig below. I checked also /usr/src/sys/dev/usb/usbdevs file and it seems only the vendor ID is present but no product ID on these particular model which is TM-U220B. root@generic:~ # usbconfig -u 1 -a 4 dump_device_desc ugen1.4: <EPSON EPSON UB-U03II> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (10mA) bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0110 bDeviceClass = 0x0000 <Probed by interface class> bDeviceSubClass = 0x0000 bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0008 idVendor = 0x04b8 idProduct = 0x0202 bcdDevice = 0x0200 iManufacturer = 0x0001 <EPSON> iProduct = 0x0002 <EPSON UB-U03II> iSerialNumber = 0x0003 <20160118193053218M03C> bNumConfigurations = 0x0001 > > When you use the printer via the BULK endpoint, there might be a missing > flush packet, to flush all the printed text. This happens when the > payload length is a multiple of the wMaxPacketSize. > Okay this is noted but what I found lately in usbdump are the presence of ioerrors ERR=IOERROR in capturing the ugen1.4.1 device while printing were the printed outputs are intermittent. This time I'm going to use the word "intermittent" as I don't have any idea when this occurs. It just behaves anytime without any warnings or notices to the system not even logs in the dmesg. On the other hand, normal printing will prompts with ERR=0 with complete outputs. root@generic:~ # usbdump -d ugen1.4.1 -v 19:14:11.861532 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:14:12.147498 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=0 frame[0] WRITE 1264 bytes 19:14:23.491555 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:14:23.777222 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=0 frame[0] WRITE 1264 bytes 19:14:32.325817 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:14:32.612222 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=0 frame[0] WRITE 1264 bytes 19:18:46.334624 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:18:46.620474 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=0 frame[0] WRITE 1264 bytes 19:18:53.975846 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:18:54.262223 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=0 frame[0] WRITE 1264 bytes 19:21:38.505907 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:21:38.792224 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=0 frame[0] WRITE 1264 bytes 19:22:06.235833 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:22:06.521723 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=0 frame[0] WRITE 1264 bytes 19:22:16.344551 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:22:16.630472 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=0 frame[0] WRITE 1264 bytes 19:22:31.625887 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:22:31.911723 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=0 frame[0] WRITE 1264 bytes 19:22:40.325843 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:22:40.612223 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=0 frame[0] WRITE 1264 bytes 19:23:53.484761 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:23:53.514428 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0, frame[0] WRITE 128 bytes 19:23:57.055902 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:23:57.084227 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:24:00.244450 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:00.274206 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:24:03.974541 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:04.004203 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 144 bytes 19:24:06.975851 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:07.004209 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:24:09.605790 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:09.633980 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:24:12.385923 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:12.413760 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:24:15.224542 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:15.253771 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:24:18.174530 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:18.203756 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:24:21.125927 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:21.153752 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 136 bytes 19:24:24.275854 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:24.303756 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 144 bytes 19:24:27.485857 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:27.772223 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=0 frame[0] WRITE 1264 bytes 19:24:36.194633 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:36.223750 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:24:39.115831 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:39.143771 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 144 bytes 19:24:41.855851 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:41.883758 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:24:44.215882 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:44.243755 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:24:47.634603 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:47.663751 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:24:50.324493 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:50.353755 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:24:52.864637 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:52.893756 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 144 bytes 19:24:54.944528 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:54.973743 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:24:57.254498 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:24:57.537227 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=0 frame[0] WRITE 1264 bytes 19:25:06.024607 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:25:06.053747 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:25:08.214550 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:25:08.243749 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 144 bytes 19:25:10.355858 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:25:10.383752 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:25:12.435851 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:25:12.463752 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:25:14.574555 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:25:14.603740 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:25:17.814561 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:25:17.844015 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:25:19.924529 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:25:19.954029 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:25:28.075867 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:25:28.104036 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 144 bytes 19:25:30.195823 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:25:30.224035 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:25:32.574567 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:25:32.604028 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:25:34.624522 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:25:34.654016 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 128 bytes 19:25:36.895889 usbus1.4 SUBM-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=1264,IVAL=0 frame[0] WRITE 1264 bytes 19:25:36.924007 usbus1.4 DONE-BULK-EP=00000001,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=IOERROR frame[0] WRITE 144 bytes 86 packets captured 41546 packets received by filter 0 packets dropped by kernel What could be these ioerrors? As I am also firm that my Epson printer's status is good and this only happens in RPi 3B but not RPi 4B. My RPi 4B using the same printer and ugen(4) driver is very stable. Thanks, Archimedes