LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Brother MFC-J220 on Slackware 13:37 Scanner Cannot Be Detected. Help. (https://www.linuxquestions.org/questions/slackware-14/brother-mfc-j220-on-slackware-13-37-scanner-cannot-be-detected-help-4175422639/)

malekmustaq 08-17-2012 12:07 PM

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
I was all root. I don't know what to continue.

Please help. Thanks ahead.

m.m.

kikinovak 08-17-2012 12:23 PM

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.

allend 08-17-2012 08:03 PM

This blog post looks very good. http://www.linuxquestions.org/questi...-1-32bit-3626/
This is an important point.
Quote:

less /etc/sane.d/dll.conf <------- You should see an entry for brother3 in the list.

malekmustaq 08-17-2012 10:07 PM

Quote:

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.

malekmustaq 08-17-2012 10:17 PM

Quote:

Originally Posted by allend (Post 4757183)
This blog post looks very good. http://www.linuxquestions.org/questi...-1-32bit-3626/
This is an important point.

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.

I need help.

Thanks ahead.

m.m.

T3slider 08-18-2012 12:14 AM

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.

malekmustaq 08-18-2012 02:52 AM

Hi T3slider,
Thank you for coming up.

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.
Please help. Thanks ahead.

m.m.

malekmustaq 08-18-2012 02:56 AM

Quote:

after installing the package to add brother3 to /etc/sane.d/dll.conf.

Yes 'less /etc/sane.d/dll.conf' contains "brother3".

allend 08-18-2012 03:27 AM

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.

malekmustaq 08-18-2012 03:53 AM

Allend,

Yes I did copy from a nearby mfc and modified accordingly to 04f9:0259 company: product_i.d.

Thanks ahead.

M.M.

malekmustaq 08-18-2012 05:22 AM

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.
Please help. Thanks ahead.

M.M.

allend 08-18-2012 09:44 AM

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
Code:

# Brother MFC-J220
ATTR{idVendor}=="04f9", ATTR{idProduct}=="0259", MODE="0664", OWNER="lp", GROUP="scanner", ENV{libsane_matched}="yes"


malekmustaq 08-19-2012 10:32 PM

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.

kiknovak: Thanks for your time and idea.

T3slider: Thank you for the help.

Malek Mustaqim


All times are GMT -5. The time now is 09:01 AM.