USB works nicely with Linux 2.4.x kernels and newer. Most of the information on this page was tested with various Red Hat kernels for Red Hat 7.2 and 7.3.
In older kernels (before 2.4.17 and before 2.5.1) has a bug in drivers/usb/audio.c. In order to fix it either take audio.c from a new kernel or apply this patch.. Makefile for Red Hat under link given at the top of this page.
If you have more than one device use symbolic links to control the default one. So if you have mixer but no mixer0 : mv mixer mixer0 and then by ln -s mixer0 mixer or ln -s mixer1 mixer you control which mixer is the default one. Same applies to dsp and audio.
Recording at other rates than 8000, 11025, 22050, 44100, and 48000 44100 does not really work - you have to do the conversion manually. Examples of test commands (from Reinhard Max) which sound good:
ecasound -f:s16_le,2ch,8000,interleaved -sr:8000 -b:32 -i:/dev/dsp1 -o:/dev/dsp1 sox -r48000 -w -tossdsp /dev/dsp0 -r48000 -w -tossdsp /dev/dsp0and which sound bad:
ecasound -sr:8000 -b:32 -i:/dev/dsp1 -o:/dev/dsp1 sox -r44100 -c2 -tossdsp /dev/dsp1 -r44100 -c2 -tossdsp /dev/dsp1
First mixer does not work for recording. For recording use the 2nd one - it appears as the last one in gmix. First mixer for microphone should control how much of the microphone input is fed back to the speakers - but it was reported it does not work.
There is a following bug found by Reinhard which is yet to be debugged:
ecasound -i /dev/dsp0 -o /dev/dsp0
" This worked for some seconds, but then ecasound got stuck in a read()
call and the USB bus hung up (USB mouse stopped working). I wasn't
able to kill ecasound or reload the USB drivers so I had to reboot.
When giving ecasound an explicit buffer size (e.g. -b 32) or using sox
or cat to create the loop, it worked."
If the volume button does not work for you - use one of the following simple programs: for hid device (older kernels <=2.4.9) and for for evdev device (newer kernels >=2.4.18). Look inside it is really simple. Requires aumix. In the evdev version /dev/input/event2 is used (change to your device). If you do not have /dev/usb/hidddev* or /dev/input/event* you have to create them as root:
mknod /dev/usb/hiddev0 c 180 96 mknod /dev/usb/hiddev1 c 180 97 mknod /dev/usb/hiddev2 c 180 98or
mknod /dev/input/event0 c 13 64 mknod /dev/input/event1 c 13 65 mknod /dev/input/event2 c 13 66. In newer kernels you need the following lines to /etc/modules.conf:
above audio evdev # or above input evdev # or alias char-major-13-64 evdev #
It is also branded as Kanguru. The models newer than Sep 2001 should be fully Linux compatible and work out-of-box (maybe with extra modules.conf lines as below). The older models requires the driver below. Unfortunately the upgrade of firmware in older models is unlikely due to technical issues. Here you can get a gzipped tarred archive with patches v0.2 (v0.1 got problems) for 2.4.1 (from Lee Kok Wah from Phison) and 2.4.18 (adjusted by Tero Manninen). For Red Hat I needed to add these lines to modules.conf:
options scsi_mod max_scsi_luns=3 below usb-storage sd_modMakefile for Red Hat under link above.
For device access you can use suid or hotplugging - see doc directory. This is my favorite:
chown --reference=/dev/console $DEVICEIt gives the rights to access the Nomad to the console owner (usually the person using the first Xwindow session). Other examples can be found in hotplug subdirectory of documentation dir.
If you want to access your nomad from mc put this file in /usr/lib/mc/extfs, make it executable and add line:
nomadin /usr/lib/mc/extfs/extfs.ini. Then enjoy access to your nomad with:
mc ~/mp3 /#nomador, if mc is already running, just cd #nomad.
Section "ServerLayout"
Identifier "XFree86 Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer" # touchpad
InputDevice "Mouse1" "SendCoreEvents" # this is the UAPS12 mouse
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Device" "/dev/input/mouse0" # or /dev/input/mice
Option "Protocol" "MouseManPlusPS/2"
Option "ZAxisMapping" "4 5" # does not work :(
EndSection
epsonand /etc/sane/epson.conf:
usb /dev/usb/scanner0Then simply check your scanner with usbview and scanimage.
In order to use all implemented features of your scanner run:
scanimage --helpthen check list availaible devices. In my case it is epson:/dev/usb/scanner0. Then run(with epson replaced by your backend):
scanimage --help -d epsonThis is the way I use my epson for scanning papers:
scanimage --wait-for-button=yes --mode Binary --resolution 300dpi --batch --batch-start=1 --format=pnm --batch-double scanimage --wait-for-button=yes --mode Binary --resolution 300dpi --batch --batch-start=2 --format=pnm --batch-doubleThen I use convert to crop the needed part of the picture and pnmtotiff in order to get maximal compression:
convert -monochrome -crop 1824x2600 file.pnm file-a.pnm; pnmtotiff -g4 file-a.pnm > file.tiff
stat /dev/usb/scanner0że numery urządzenia są poprawne: 180,48 (b4,30 w hex-ie). Poza tym nie wiem czy potrzebnie ale dodałem poniższe linie do /etc/conf.moduls:
stat /dev/usb/scanner0że numery urządzenia są poprawne: 180,48 (b4,30 w hex-ie). Poza tym nie wiem czy potrzebnie ale dodałem poniższe linie do /etc/conf.moduls:
alias char-major-166 acm alias char-major-180 usbcore alias char-major-240 usb-serial alias usb-controller usb-uhci post-install usb-uhci modprobe scanner options scanner vendor=0x03f0 product=0x0601Oczywiście jeśli ktoś ma OHCI a nie UHCI to powinien wpisać co innego (sprawdzanie przez lspci -v). Warto sprawdzić czy kody vendor i product zgadzają się z tym co widzieliśmy w /proc/bus/usb/devices. Następnie ładujemy USB i driver skanera (jeśli nie został juz załadowany) oraz upewniamy że załadowały się poprawnie:
modprobe usb-uhci modprobe scanner lsmodNastępnie edytujemy pliki w /etc/sane.d. W dll.conf zostawiamy wyłącznie:
hpzaś w hp.conf zostawiamy wyłącznie:
/dev/usb/scanner0 option connect-deviceWtedy uruchamiamy xscanimage i skanujemy. Następnie jeszcze tylko pozwalamy skanować wszystkim:
chmod a+rw /dev/usbscanner