Brother MFC-J220 on Slackware 13:37 Scanner Cannot Be Detected. Help.
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Brother MFC-J220 on Slackware 13:37 Scanner Cannot Be Detected. Help.
Hi,
Running Slackware Salix Slackware 13.37
in a Compaq Laptop
Attached is Brother MFC-J220 Printer, Scanner, Fax & Copier
I need help. I have downloaded printer and scan drivers from Brothers, converted them to *tgz and installed as root by c-shell. The printer prints but the scanner cannot be detected.
Issued this--
Quote:
root@box--# lsusb -v
It returned seeing Brother MFC-J220:
Quote:
Bus 003 Device 002: ID 04f9:0259 Brother Industries, Ltd
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x04f9 Brother Industries, Ltd
idProduct 0x0259
bcdDevice 1.00
iManufacturer 1 Brother
iProduct 2 MFC-J220
iSerial 3 BROF2F186805
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 85
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 2mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 2 Bidirectional
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 100
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk (Zip)
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x08 EP 8 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x89 EP 9 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0001
Self Powered
Quote:
root@box-# sane-find-scanner -v
returns the following:
Quote:
searching for USB scanners:
checking /dev/usb/scanner... failed to open (Invalid argument)
checking /dev/usb/scanner0... failed to open (Invalid argument)
checking /dev/usb/scanner1... failed to open (Invalid argument)
checking /dev/usb/scanner2... failed to open (Invalid argument)
checking /dev/usb/scanner3... failed to open (Invalid argument)
checking /dev/usb/scanner4... failed to open (Invalid argument)
checking /dev/usb/scanner5... failed to open (Invalid argument)
checking /dev/usb/scanner5... failed to open (Invalid argument)
checking /dev/usb/scanner7... failed to open (Invalid argument)
checking /dev/usb/scanner8... failed to open (Invalid argument)
checking /dev/usb/scanner9... failed to open (Invalid argument)
checking /dev/usb/scanner10... failed to open (Invalid argument)
checking /dev/usb/scanner11... failed to open (Invalid argument)
checking /dev/usb/scanner12... failed to open (Invalid argument)
checking /dev/usb/scanner13... failed to open (Invalid argument)
checking /dev/usb/scanner14... failed to open (Invalid argument)
checking /dev/usb/scanner15... failed to open (Invalid argument)
checking /dev/usbscanner... failed to open (Invalid argument)
checking /dev/usbscanner0... failed to open (Invalid argument)
checking /dev/usbscanner1... failed to open (Invalid argument)
checking /dev/usbscanner2... failed to open (Invalid argument)
checking /dev/usbscanner3... failed to open (Invalid argument)
checking /dev/usbscanner4... failed to open (Invalid argument)
checking /dev/usbscanner5... failed to open (Invalid argument)
checking /dev/usbscanner6... failed to open (Invalid argument)
checking /dev/usbscanner7... failed to open (Invalid argument)
checking /dev/usbscanner8... failed to open (Invalid argument)
checking /dev/usbscanner9... failed to open (Invalid argument)
checking /dev/usbscanner10... failed to open (Invalid argument)
checking /dev/usbscanner11... failed to open (Invalid argument)
checking /dev/usbscanner12... failed to open (Invalid argument)
checking /dev/usbscanner13... failed to open (Invalid argument)
checking /dev/usbscanner14... failed to open (Invalid argument)
checking /dev/usbscanner15... failed to open (Invalid argument)
could not open USB device 0x1d6b/0x0002 at 001:001: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0001 at 002:001: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0001 at 003:001: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0001 at 004:001: Access denied (insufficient permissions)
could not open USB device 0x0bda/0x0158 at 001:005: Access denied (insufficient permissions)
could not open USB device 0x064e/0xc108 at 001:006: Access denied (insufficient permissions)
could not open USB device 0x1c4f/0x0002 at 002:002: Access denied (insufficient permissions)
could not open USB device 0x0458/0x003a at 002:007: Access denied (insufficient permissions)
# No USB scanners found. If you expected something different, make sure that
# you have loaded a kernel driver for your USB host controller and have setup
# the USB system correctly. See man sane-usb for details.
My /dev/usb only has lp0--
Quote:
root@box-# ls /dev/usb
returns:
Quote:
lp0
Issued this--
Quote:
root@box-# scanimage -L
returned:
Quote:
device `v4l:/dev/video0' is a Noname Webcam-101 virtual device
First thing I would do is check out which groups your user belongs to. I've recently setup an HP printer/scanner, and I had a hard time figuring everything out... until I added my user to the 'scanner' AND the 'lp' group. Reboot your PC after that, or at least log out and restart rc.udev to get device permissions right.
BTW, are you running 32-bit or 64-bit Slackware? I also remember having had some trouble with a Brother HL-2030 and the Brother drivers... only to find out after ldd'ing that they were 32-bit only. I installed AlienBob's multilib (only the basic packages) and everything worked like a charm.
First thing I would do is check out which groups your user belongs to. I've recently setup an HP printer/scanner, and I had a hard time figuring everything out... until I added my user to the 'scanner' AND the 'lp' group. Reboot your PC after that, or at least log out and restart rc.udev to get device permissions right.
kikinovak: Yes, I was running as root, and I have a 'scanner' group and added to it. I did not expect I should try add me to the 'lp' group.
Quote:
BTW, are you running 32-bit or 64-bit Slackware? I also remember having had some trouble with a Brother HL-2030 and the Brother drivers... only to find out after ldd'ing that they were 32-bit only. I installed AlienBob's multilib (only the basic packages) and everything worked like a charm.
kikinovak: Yes I am running 32-bit and the drivers from Brothers I chose the 32bit drivers in rpm.
Allend: Yes I knew that link and in fact from that basis I decided to choose Brother MFC-J220, thinking that since it ran well on Slack 13.1 32bit I went to assume that it must run too under Slack 13.37 32bit. I used that link as my guide too in the install stage however---
1. I noticed that the script 'brscan3' is just 'brscan' under the latest module I downloaded; and
2. I noticed that the package did not install into /usr/local/Brother but rather into /opt/brother; no prob I managed to find and run them all at install.
The printer is printing after my installation.
But the Scanner is not seen and the system cannot create the necessary descriptor in /dev/usb/scanner0; the OS seems not to see the device. I am afraid this is a serious problem. Certainly Slackware 13.37 installed 'libusb' and it is there as I checked it.
What package did you download? Both the rpm and .deb packages install to /usr/local (and not /opt) as far as I can see. I believe you want brscan3-0.2.11-4.i386.rpm. You may need to run
Code:
/usr/local/Brother/sane/setupSaneScan3 -i
after installing the package to add brother3 to /etc/sane.d/dll.conf.
I have downloaded the MFC-J220 scanner drivers from here http://welcome.solutions.brother.com...nload_scn.html This time I have tried the .deb packages "brscan3-0.2.11-4.i386.deb" and "brscan-skey-0.2.3-0.i386.deb". Using "# alien -ct file.deb" I was able to produce the tgz and install them accordingly by way of a c-shell.
Yes the sane installs to /usr/local/Brother/sane but the scan-skey always chooses the /opt/brother/scanner/brscan-skey/ and it is where the 'brscan-skey-0.2.3-0.sh' is located. I tried to create a link of this script to /usr/local/Brother/sane/* but the same did not run, so I have it ran on a c-shell right there where it is.
After doing this here is still the result:
Restarted the udev.d '/etc/rc.d/rc.udev force-restart'
But still the /dev/usb contains only the 'lp0'.
Quote:
Issued 'root@box-# sane-find-scanner
Again it returned:
Quote:
# sane-find-scanner will now attempt to detect your scanner. If the
# result is different from what you expected, first make sure your
# scanner is powered up and properly connected to your computer.
# No SCSI scanners found. If you expected something different, make sure that
# you have loaded a kernel SCSI driver for your SCSI adapter.
could not fetch string descriptor: Pipe error
could not fetch string descriptor: Pipe error
# No USB scanners found. If you expected something different, make sure that
# you have loaded a kernel driver for your USB host controller and have setup
# the USB system correctly. See man sane-usb for details.
# Not checking for parallel port scanners.
# Most Scanners connected to the parallel port or other proprietary ports
# can't be detected by this program.
Did you do the addition to /lib/udev/rules.d/80-libsane.rules as shown in the blog post?
Actually, that is probably better handled by copying /lib/udev/rules.d/80-libsane.rules to /etc/udev/rules.d/80-libsane.rules and making the edit there.
I don't understand what is happening here; and I am not happy.
If I issue
Quote:
'user@box-$ scanimage -L'
it returns:
Quote:
scanimage -L
device `brother3:bus3;dev2' is a Brother MFC-J220 USB scanner
device `v4l:/dev/video0' is a Noname Webcam-101 virtual device
Tried to launch "/usr/bin/xscanimage" the application sees the scanner and offers two choices:
Quote:
"brother3:bus3:dev2" and
"v4I:/dev/video0"
The xscanimage scans rightly and saves a *pnm file of the image. This applies the same functioning with other frontends like "simple-scan" and "Xsane-Scanning".
This is happening while the "sane-find-scanner" command CANNOT see the Brother MFC-J220 usb device and denies seeing it.
Behind the scene the /dev doesn't contain any scanner node. Rather, the system keeps a temporary rule under "/dev/.udev/db/b8:32" cat-ting this descriptor it sufficiently describes the necessary identification of the MFC-J220.
I tried to trick udev by adding a little folishness in /etc/udev/rules.d/70-persistent-cd.rules; forced-restart /etc/rc.d/rc.udev did not do, but when I tried to reboot the system the node was automatically created by udev as /dev/scanner; however this is confounding me the more because it was only a SYMLINK to /dev/sdc. I don't know why the system should treat the sane scanner as "block" --actually this is beyond my knowledge.
At this state, the same returns the query --
Quote:
root@box ~ $ sane-find-scanner
# sane-find-scanner will now attempt to detect your scanner. If the
# result is different from what you expected, first make sure your
# scanner is powered up and properly connected to your computer.
# No SCSI scanners found. If you expected something different, make sure that
# you have loaded a kernel SCSI driver for your SCSI adapter.
could not fetch string descriptor: Pipe error
could not fetch string descriptor: Pipe error
# No USB scanners found. If you expected something different, make sure that
# you have loaded a kernel driver for your USB host controller and have setup
# the USB system correctly. See man sane-usb for details.
# Not checking for parallel port scanners.
# Most Scanners connected to the parallel port or other proprietary ports
# can't be detected by this program.
So your device can now be used for scanning. Good!
FWIW I also do not have my Brother DCP-110C device reported by sane-find-scanner. However I can successfully use it for scanning. The problem is with the permissions on the device file created for the Brother multifunction device. Slackware sets root as the owner and lp as the group. This confuses sane-find-scanner.
If this still bothers you, try an alternative udev rule that sets permissions like this
Allend: Thanks I have done it accordingly. Meanwhile the "sane-find-scanner" still cannot see the usb device. I think this has to do with how the Brother MFC-J220 appears to 'libusb' or the kernel --something that probably requires extra mending to do and I have no luxury of time. Thanks you so much.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.