อาร์กิวเมนต์ไม่ถูกต้อง - สแกนเนอร์ Brother ไม่ทำงานหลังจากอัปเกรด (ไดรเวอร์ brscan2)


31

ฉันเพิ่งอัพเกรด Ubuntu 13.10 (ทะลึ่ง)

การสแกนผ่าน MFC-420CN ของฉันทำงานบน Ubuntu และ Linux Mint ติดตั้งแล้วแม้ว่า Olivia และ Oneric อย่างไรก็ตามเมื่อฉันอัพเกรดจากสิ่งเหล่านี้การสแกนก็พัง ฉันติดตั้งสำเนาทะลึ่งใหม่เพื่อตรวจสอบว่าไม่ใช่แค่การอัพเกรด

เว็บไซต์ของ Brother มีข้อสังเกตว่าทุกรุ่นของ brscan1 ไม่รองรับการสแกน usb ใน Ubuntu 11.10 อีกต่อไป แต่ดูเหมือนจะไม่ใช้กับรุ่น brscan2 และ brscan3 นอกจากนี้ผมพบว่าหลายอื่น ๆโพสต์ที่ดูเหมือนจะบ่งชี้อย่างน้อยรุ่น brscan4 กำลังทำงานอยู่ในปัจจุบัน อย่างไรก็ตามฉันไม่สามารถตรวจสอบสแกนเนอร์โดยใช้ brscan2 (หรือนักดำน้ำอื่นที่ไม่ใช่ brscan4) และ ubuntu 13.10 (อันที่จริงแล้ว 12.10 ขึ้นไป) กำลังทำงานอยู่

สำหรับการอ้างอิงโยง / เพื่อช่วยผู้อื่นในปัญหารายการทั้งหมดของสแกนเนอร์ brscan2 มีดังนี้:

DCP-110C DCP-115C DCP-117C DCP-120C DCP-130C DCP-135C DCP-150C DCP-150C DCP-153C DCP-153C DCP-155C DCP-310CN DCP-330C DCP-340CW DCP-350CW-DCC-357C 540CN DCP-560CN DCP-7010 DCP-7020 DCP-7025 DCP-750CW DCP-770CW DCP-8060 DCP-8060 DCP-8065DN MFC-210C MFC-230C MFC-240C MFC-240C MFC-240C MFC-3240C MFC -3360C MFC-410CN MFC-420CN MFC-425CN MFC-440CN MFC-465CN MFC-680CN MFC-680CN MFC-660CN MFC-660CN MFC-660CN MFC-660CW MFC MFC-7225N MFC-7420 MFC-7820N MFC-820CW MFC-845CW MFC-8460N MFC-8660DN MFC-8670DN MFC-870CW MFC-885CW MFC-8860DW MFC-8870CN

คำถาม / ปัญหาที่ถามก่อนหน้าคล้ายกัน (แต่สำหรับฮาร์ดแวร์ไดรเวอร์ brscan3):


จนถึงตอนนี้ฉันได้ลองแล้ว:

  • การติดตั้ง sane-utils

  • เส้นทางที่เว็บไซต์ของพี่ชายเกี่ยวกับการติดตั้ง brscan2 รวมถึงการใช้แฟล็ก dpkg -f

  • การแก้ไข /lib/udev/rules.d/40-libsane.rules ที่จะรวม

รหัส:

# Brother scanners

ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"
  • การคัดลอกไฟล์ในรูปแบบ lib ถึง lib64:

รหัส:

cd /usr/lib
ln -s ../lib64/libbrscandec2.so.1.0.0 .
ln -s ../lib64/libbrcolm2.so.1.0.1 .
ln -s ../lib64/libbrcolm2.so .
ln -s ../lib64/libbrscandec2.so.1 .
ln -s ../lib64/libbrscandec2.so .
ln -s ../lib64/libbrcolm2.so.1
cd sane
ln -s ../../lib64/sane/libsane-brother2.so.1.0.7 .
ln -s ../../lib64/sane/libsane-brother2.so.1 .
ln -s ../../lib64/sane/libsane-brother2.so .
  • การติดตั้ง ia32-libs และติดตั้ง sane-utils ซ้ำ
  • การลบไดรเวอร์ 64 บิต brscan2 และแทนที่ด้วย 32 บิตหนึ่ง แต่ผลลัพธ์ของ scanimage ด้วยการตั้งค่าไดรเวอร์ 32 บิตสำหรับ usb หรือโหมดเครือข่ายมีค่าน้อยกว่าที่คาดไว้:

รหัส:

# scanimage -L

No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
  • ของไดรเวอร์ Windows 32 บิตที่มี WINE eumlating Win2000 หรือ XP - เกือบจะเสร็จในปี 2000

การดีบักไดรเวอร์ 64 บิต:

เมื่อติดตั้ง brscan2 ฉันสามารถเปิดสแกนอย่างง่ายและค้นหาสแกนเนอร์ได้ นอกจากนี้ผลลัพธ์ของการสแกนภาพบ่งชี้ว่าทุกอย่างโอเค:

# scanimage -L
device `brother2:bus5;dev2' is a Brother DCP-350C USB scanner

แต่การสแกน (แม้ในฐานะผู้ใช้รูท) ยังคงไม่ทำงาน

> sudo scanimage >image.pnm
scanimage: open of device brother2:bus2;dev4 failed: Invalid argument

xsane สร้างข้อผิดพลาดที่คล้ายกัน:

 Failed to start scanner: Invalid argument

sane-find-scanner สร้างข้อผิดพลาดไปป์ที่แสดงที่นี่: http://pastebin.com/tTNMyD1m แต่ดูเหมือนว่าจะเกี่ยวข้องกับความจริงที่ว่าพี่ชายกำลังจัดหาไดรเวอร์ให้ไม่ใช่มีสติ

ฉันค่อนข้างติดอยู่ที่จุดนี้ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม


เพิ่งพบลิงค์นี้ที่ดูเหมือนว่าบ่งชี้ผลลัพธ์ของ sane-find-scanner สามารถละเว้นได้และฉันควรมุ่งเน้นไปที่ข้อผิดพลาดอาร์กิวเมนต์ที่ไม่ถูกต้อง: linuxquestions.org/questions/slackware-14/ …
virtualxtc

ดูนี่สิ นอกจากนี้คุณสามารถเพิ่มbrother-lpr-drivers-mfc9420cnและbrother-cups-wrapper-mfc9420cn

@DuminduMahawela นอกเหนือจากแพ็คเกจ * -dev ฉันได้ติดตั้ง "ไดรเวอร์เครื่องสแกน" ทั้งหมด
virtualxtc

ฉันส่งอีเมลไปยังพี่ชายเพื่อขอความช่วยเหลือและอ้างอิงคำถามนี้ในกรณีที่มีการอัปเดต พี่ยอมรับตั๋วของฉัน แต่นอกเหนือจากทั้งหมดที่ฉันได้รับคืออากาศตาย ฉันซื้ออีกเครื่องพิมพ์สแกนเนอร์บนพื้นฐานของการมีสติรายการที่เข้ากัน
virtualxtc

ส่วน "การแก้ไขปัญหา" ของหน้านี้อาจช่วยได้? bugs.launchpad.net/ubuntu/+source/xsane/+bug/478761
sabik

คำตอบ:


23

หลังจากอัปเดตเป็น 13.10 ฉันได้รับข้อผิดพลาดเดียวกันขณะสแกน มีสองปัญหาที่นี่

  1. ข้อผิดพลาดอาร์กิวเมนต์ไม่ถูกต้องไม่ใช่ปัญหาอาร์กิวเมนต์ แต่เป็นปัญหาการเข้าถึงการเขียน
  2. ปัญหาอื่น ๆ คือบัสและหมายเลข dev ผิดจากข้อผิดพลาดของการสแกน

จะค้นหาและแก้ไขปัญหาได้อย่างไร

ติดตั้งไดรเวอร์ brscan4 จากเว็บไซต์ของพี่น้อง

sudo dpkg -i brscan4-0.4.2-1.amd64.deb

ตรวจสอบเพื่อดูว่ามันใช้งานได้

sudo brsaneconfig4 -d

ทดสอบเพื่อดูว่ามีการติดตั้งสแกนเนอร์หรือไม่ และเรียกใช้ในฐานะผู้ใช้ไม่ได้รูท

$ scanimage -L
device `brother4:bus5;dev1' is a Brother ADS-2000 USB scanner
$ scanimage --test
scanimage: open of device brother4:bus5;dev1 failed:
Invalid argument

หรือ

$ scanimage
scanimage: open of device brother4:bus5;dev1 failed:
Invalid argument

คุณสามารถใช้สคริปต์ต่อไปนี้เพื่ออัปเดตการอนุญาตสำหรับเครื่องสแกน

lsusb | grep -i brother | sed 's/://' | awk '{printf "/dev/bus/usb/%s/%s", $2,$4}' | xargs -i -t sudo chmod 666 "{}"

lsusb แสดงรายการอุปกรณ์ usb

grep -i brother จะพบอุปกรณ์พี่ชาย (สมมติว่าฉันทำคือคุณมีอุปกรณ์น้องชายคนเดียวที่เชื่อมต่อกับ USB ได้ตลอดเวลา)

sed 's/://' | awk '{printf "/dev/bus/usb/%s/%s", $2,$4}' จะพบหมายเลขรถบัสและอุปกรณ์

xargs -i -t sudo chmod 666 "{}" จะเพิ่มการอนุญาตให้เขียนลงในเครื่องสแกน

นี่คือข้อมูลรายละเอียดเพิ่มเติมว่าทำไมเราถึงทำในสิ่งที่เราได้ทำ

lsusbเพื่อหาที่สแกนเนอร์พี่ชายคือเกี่ยวกับการใช้รถบัส นี่เป็นปัญหาอย่างหนึ่งใน scanimage บัสคือ 003 และอุปกรณ์คือ 002 และไม่ใช่บัส 5, dev 1 ตามการสแกน

$ lsusb
Bus 003 Device 002: ID 04f9:60a0 Brother Industries, Ltd**  
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
...

ในการแก้ไขปัญหาคุณจะต้องใช้พา ธ ตามตำแหน่งของเครื่องสแกนเนอร์บราเดอร์ในlsusbคำสั่ง ในกรณีของฉันมันเป็นและbus 003 device 002โปรดทราบว่าหากคุณถอดสายเคเบิล USB ไปยังเครื่องสแกนแล้วเสียบกลับเข้าไปในอุปกรณ์คุณจะได้รับหมายเลขและ / หรือบัสใหม่ (จำนวนกลับไปเป็น 2 เมื่อคุณรีบูทพีซี)

ตัวอย่าง:

sudo cd /dev/bus/usb/003
sudo chmod 666 002

หรือเพียงแค่:

sudo chmod 666 /dev/bus/usb/003/002

Scanimage จำเป็นต้องแก้ไขข้อความเมื่อไม่สามารถเข้าถึงเครื่องสแกนเพื่อให้มีบัสที่ถูกต้องและหมายเลข dev และยังบอกผู้ใช้ว่าปัญหาคือปัญหาการเข้าถึงการเขียน

Brotherจำเป็นต้องอัปเดตรหัสไดรเวอร์เพื่อให้ผู้ใช้ทั่วโลกสามารถเขียนไปยังเครื่องสแกนเช่นchmod 666ไปยังตำแหน่งไดรเวอร์เครื่องสแกน


ทุกคนสามารถยืนยันการแก้ไขนี้ได้หรือไม่ โชคดีที่ฉันเคาะเครื่องสแกนเนอร์นี้ออกจากโต๊ะของฉันหนึ่งเดือนหลังจากที่ฉันโพสต์คำถามและต้องซื้อเครื่องสแกนใหม่ (สอดคล้องกับ SANE) Mark / Dan คำตอบยังไม่ชัดเจนเนื่องจากปัญหาด้านไวยากรณ์ต่าง ๆ โปรดแก้ไขเพื่อให้ฉันรู้สึกสะดวกสบายในการลงคะแนน
virtualxtc

1
คำตอบนี้ดูเหมือนจะเป็นสัญญาที่ให้ผลลัพธ์จากlsusbและscanimage -Lแสดงหมายเลข dev / บัสที่แตกต่างกัน ฉันพยายามเปลี่ยนการอนุญาตใน/dev/bus/usb/...ไฟล์ให้เป็นประโยชน์ มีวิธีอื่นในการให้ระบบปฏิบัติการตรวจสอบหมายเลขบัส USB / dev ที่ถูกต้องสำหรับสแกนเนอร์หรือไม่
David Thomas

สิ่งนี้ใช้ได้ผล หลังจากทำการเปลี่ยนแปลงในคำตอบและทำการบูทxsaneครั้งแรกที่ฉันพยายามรับตัวอย่างมันจะทำให้ฉันเกิดข้อผิดพลาด "สแกนเนอร์ล้มเหลวในการเริ่มต้น" แต่ลองอีกครั้งมันจะทำงาน ตอนนี้ฉันสามารถสแกน! :)
jja

2
มันไม่ได้แก้ไขสำหรับฉัน
Natim

1
วิธีนี้ใช้ได้กับฉันกับ Lubuntu 16.04 และ Brother DCP-7030 อย่างไรก็ตามหลังจากรีบูตสิทธิ์ทั้งหมดจะถูกรีเซ็ต ดูเหมือนว่าจำเป็นต้องมีกฎของ udev?
Xavier13

3

เพียงเพิ่มผู้ใช้ของคุณในกลุ่ม lp ...

usermod -a -G lp username

เช่นนี้คุณจะมีสิทธิ์เขียนสำหรับสแกนเนอร์ของคุณ

ทดสอบกับ:

  • 14.04 LTS 64-bit เป็นเวอร์ชั่นล่าสุด
  • Brother DCP-J315W
  • linux-brprinter-installer-2.0.0-1 ดาวน์โหลดจาก Brother Support Center

สิทธิ์สำหรับเครื่องพิมพ์ / สแกนเนอร์ที่ / dev / bus / usb / 001 คือ:

crw-rw-r-- 1 root lp

มีไว้สำหรับสิ่งนี้ที่เพิ่มชื่อผู้ใช้ของคุณไปยังกลุ่ม lp ซึ่งเป็นโซลูชัน


ตามที่ระบุโดย '#' ฉันกำลังเรียกใช้คำสั่งเป็น root และยังคงได้รับข้อผิดพลาดดังนั้นนี่จึงไม่ใช่วิธีแก้ไขข้อผิดพลาดด้านบน
virtualxtc

1
คุณคัดลอก (หรือเชื่อมโยงกับ ln -s) ไลบรารีจาก / usr / lib64 ไปยัง / usr / lib ตามที่แนะนำในsupport.brother.com/g/s/id/linux/en/หรือไม่?
Bellera

ยินดีต้อนรับสู่ AskUbuntu - โปรดทราบว่าปกติฉันจะบอกคุณ -1 สำหรับเรื่องนี้: หากคุณได้อ่านคำถามของฉันโดยเฉพาะอย่างยิ่งสิ่งที่เขียนภายใต้ส่วน "จนถึงตอนนี้ฉันได้ลองแล้ว" คุณจะรู้คำตอบคือ ' ใช่'. ในอนาคตโปรดอ่านคำถามทั้งหมดก่อนที่จะตอบ
virtualxtc

2

ลองใช้โปรแกรมนี้ชื่อ VueScan ฉันค้นหาไดรเวอร์ mfc-420cn และฉันพบเว็บไซต์นี้: " http://www.hamrick.com/ " ฉันยังไม่สามารถทดสอบสิ่งนี้ได้ (เพราะฉันยังไม่มี ค้นหาสายไฟไปยังเครื่องพิมพ์เก่าของฉันที่สะสมฝุ่น) แต่มันก็บอกว่ามันจะรองรับเครื่องพิมพ์หลากหลายรูปแบบดังนั้นฉันคิดว่าฉันควรโพสต์ อย่างไรก็ตามหวังว่านี่จะช่วยได้


ขอบคุณ แต่สำหรับราคาของซอฟต์แวร์นั้นฉันสามารถซื้อเครื่องสแกนตามมาตรฐาน SANE! เนื่องจากคำตอบนี้ไม่ได้รับการยืนยันและดีกว่า "ซื้อสแกนเนอร์ที่ดีกว่า" เพียงเล็กน้อยเท่านั้นฉันจะเปิดคำถามทิ้งไว้
virtualxtc

1
จากประสบการณ์ของฉัน (นานมาแล้ว) VueScan นั้นยอดเยี่ยม อาจไกลกว่าไดรเวอร์เครื่องสแกนส่วนใหญ่ ข้อดีของมันชัดเจนที่สุดสำหรับการสแกนภาพถ่ายและ / หรือเพื่อควบคุมคุณภาพการสแกน ฉันเชื่อว่าคุณสามารถดาวน์โหลดและทดลองใช้ได้ฟรี ข้อได้เปรียบคือคุณไม่ต้องทนทุกข์ทรมานกับข้อ จำกัด ของไดรเวอร์ที่น่ารังเกียจของผู้ผลิตอีกต่อไป น่าเสียดายที่คุณต้องจ่ายให้บุคคลที่สามเพื่อใช้สแกนเนอร์ที่คุณจ่ายไปแล้ว คนจำนวนมากตัดสินใจว่าคุ้มค่าเพราะ VueScan ใช้งานได้ดีกับเครื่องสแกนทั้งเก่าและใหม่
Tommy Trussell

ฉันใช้เวลาหลายชั่วโมงในการพยายามแก้ไขปัญหานี้ (ซึ่งสามารถพบได้ในหน้าแรก ๆ ของ Google) และ VueScan เป็นทางออกเดียวที่ได้ทำงานมาแล้ว ฉันจะไม่ซื้อสแกนเนอร์ Brother กับ Linux
MRule

1

ฉันพบปัญหาเดียวกันและเป็นไปตามhttps://wiki.debianforum.de/Brother_Scannerข้อผิดพลาด "อาร์กิวเมนต์ไม่ถูกต้อง" อาจเกิดขึ้นได้หากเครื่องพิมพ์เชื่อมต่อกับพอร์ต USB 3 (ควบคุมโดย xhci_hcd) มันเริ่มทำงานให้ฉันทันทีที่ฉันเปลี่ยนเป็นพอร์ต USB 2 (ควบคุมโดย ehci_hcd)


ฉันไม่มีพอร์ต usb 3 บนคอมพิวเตอร์ที่ฉันได้รับข้อผิดพลาดนี้
virtualxtc

0

ฉันใช้ Ubuntu 13.10 32 บิต

ฉันใช้ MFC-7820N และทุกครั้งที่ฉันอัพเกรดเคอร์เนลฉันต้องติดตั้งไดรเวอร์ทั้งหมดของพี่ชายอีกครั้ง สิ่งที่ฉันมีคือ: brmfc7840nlpr-2.0.2-1.i386, brscan2-0.2.5-1.i386, cupswrapperMFC7840N-2.0.2-1.i386

ฉันตรวจสอบอีกครั้งว่ากฎ "ATTRS {idVendor} ==" 04f9 ", ENV {libsane_matched} =" ใช่ "" ยังไม่ได้รับการแก้ไขหรือลบใน /lib/udev/rules.d/40-libsane.rules

หลังจากทั้งหมดที่ฉันรีบูต

สุดท้ายฉันจะให้เครื่องพิมพ์พี่ชายเป็นโฮสต์คอนโทรลเลอร์ USB ของตัวเองซึ่งเป็นมาตรการเพิ่มเติมสำหรับการทดสอบ


brmfc7840nlpr-2.0.2-1.i386 และ upswrapperMFC7840N-2.0.2-1.i386 เป็นไดรเวอร์เครื่องพิมพ์และไม่เกี่ยวข้องกับคำถามนี้
virtualxtc

อาจเป็น 64 บิตกับ 32 บิตอย่างไรก็ตามฉันไม่เคยมีปัญหากับ 64 บิตมาก่อน เคอร์เนลใดที่คุณใช้อยู่ ใครสามารถยืนยันว่าพวกเขาใช้งานได้หรือไม่
virtualxtc

1
ฉันเพิ่งอัพเกรดเป็น 13.10 บนเครื่อง 64 บิต ก่อนที่เครื่องสแกนเนอร์ / เครื่องพิมพ์ Brother DCP-135C ของฉันจะใช้งานได้ นอกจากนี้ฉันไม่สามารถติดตั้งไดรเวอร์เก่าที่มีให้โดย Brother เพราะพวกเขาขัดแย้งกับ Brother-lpr-drivers- พิเศษ หากฉันถอนการติดตั้ง brother-lpr-drivers- พิเศษและติดตั้งไดรเวอร์ที่ให้โดย Brother มันยังคงไม่ทำงาน
ramiro
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.