You are not logged in.

#1 2021-08-16 11:57:01

cstn
Member
Registered: 2019-12-24
Posts: 37

[SOLVED]manaully bind usb sound card to a specific driver failed

I try to use Line6 TonePort Di-Silver usb sound card in archlinux.

Line6 TonePort series includes:
TonePort GX
TonePort Di-Silver/Gold
TonePort UX1
TonePort UX2
etc.

kernel have some line6 drivers:

$ ls /lib/modules/5.13.10-arch1-1/kernel/sound/usb/line6/
snd-usb-line6.ko.zst  snd-usb-podhd.ko.zst  snd-usb-pod.ko.zst  snd-usb-toneport.ko.zst  snd-usb-variax.ko.zst

this site shows snd-usb-toneport module should support:
TonePort GX, UX1 and UX2  (no TonePort Di)
https://sbexr.rabexc.org/latest/sources … 0c925.html

I want to try manually load snd-usb-toneport driver and bind my TonePort Di to it. to check if this driver support my TonePort Di sound card.
then i did this:

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0bda:5830 Realtek Semiconductor Corp. USB Camera
Bus 001 Device 004: ID 0e41:4144 Line6, Inc. TonePort DI-S
Bus 001 Device 003: ID 8087:0a2a Intel Corp. Bluetooth wireless interface
Bus 001 Device 002: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/7p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/9p, 480M
    |__ Port 3: Dev 2, If 0, Class=Vendor Specific Class, Driver=rtsx_usb, 480M
    |__ Port 4: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 4: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 6: Dev 4, If 0, Class=Vendor Specific Class, Driver=, 12M
    |__ Port 7: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 7: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M

noticed that "Driver=" is empty for TonePort Di hardware.
then i continue:

$ tree /sys/bus/usb/devices/1-6/1-6\:1.0/
/sys/bus/usb/devices/1-6/1-6:1.0/
├── authorized
├── bAlternateSetting
├── bInterfaceClass
├── bInterfaceNumber
├── bInterfaceProtocol
├── bInterfaceSubClass
├── bNumEndpoints
├── ep_01
│   ├── bEndpointAddress
│   ├── bInterval
│   ├── bLength
│   ├── bmAttributes
│   ├── direction
│   ├── interval
│   ├── power
│   │   ├── autosuspend_delay_ms
│   │   ├── control
│   │   ├── runtime_active_time
│   │   ├── runtime_status
│   │   └── runtime_suspended_time
│   ├── type
│   ├── uevent
│   └── wMaxPacketSize
├── ep_82
│   ├── bEndpointAddress
│   ├── bInterval
│   ├── bLength
│   ├── bmAttributes
│   ├── direction
│   ├── interval
│   ├── power
│   │   ├── autosuspend_delay_ms
│   │   ├── control
│   │   ├── runtime_active_time
│   │   ├── runtime_status
│   │   └── runtime_suspended_time
│   ├── type
│   ├── uevent
│   └── wMaxPacketSize
├── firmware_node -> ../../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:0d/device:0e/device:14
├── modalias
├── power
├── subsystem -> ../../../../../../bus/usb
├── supports_autosuspend
├── uevent
└── waiting_for_supplier

7 directories, 39 files

# modprobe snd-usb-toneport

$ dmesg | grep usb
[  168.310780] usb 1-6: new full-speed USB device number 5 using xhci_hcd
[  168.575310] usb 1-6: New USB device found, idVendor=0e41, idProduct=4144, bcdDevice= 0.01
[  168.575331] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  168.575339] usb 1-6: Product: TonePort DI-S
[  168.575345] usb 1-6: Manufacturer: Line 6
[ 1277.387278] usbcore: registered new interface driver snd_usb_toneport

$ echo '1-6:1.0' | sudo tee /sys/bus/usb/drivers/snd_usb_toneport/bind 
1-6:1.0
tee: /sys/bus/usb/drivers/snd_usb_toneport/bind: No such device

so, the last line
"tee: /sys/bus/usb/drivers/snd_usb_toneport/bind: No such device"
indicates that failure of binding my sound card to snd-usb-toneport driver.

Did I miss something?  HOW to bind my hardware to the driver?

I really want this device work with linux. thanks for any suggestion.

UPDATE: with help from @progandy, I got the hardware work:

$ sudo modprobe snd-usb-toneport
plug in the toneport di-silver to the usb port, led start to flash red, after a wile, led will turn off, then excute this:
$ echo "0e41 4144" | sudo tee /sys/bus/usb/drivers/snd_usb_toneport/new_id
led will turn green
$ alsamixer
press F6 to select your toneport sound card(named GuitarPort), navigate to Monitor channel to mute it.
then open your Guitarix and QJackctl and just go rock it.(http://www.ubuntugeek.com/how-to-instal … or-gx.html)

if your find other mediaplayer can't play music or backing tracks while you play guitar with JACK, open "pavucontrol", set the "JACK sink" in output devices and "JACK source"  in input  deivces as FALLBACK.

Last edited by cstn (2021-09-02 01:14:10)

Offline

#2 2021-08-16 12:42:39

progandy
Member
Registered: 2012-05-17
Posts: 5,211

Re: [SOLVED]manaully bind usb sound card to a specific driver failed

You should tell echo to remove the newline ("-n"). That might still not make the driver work with your hardware, though.


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |

Offline

#3 2021-08-16 13:55:28

cstn
Member
Registered: 2019-12-24
Posts: 37

Re: [SOLVED]manaully bind usb sound card to a specific driver failed

progandy wrote:

You should tell echo to remove the newline ("-n"). That might still not make the driver work with your hardware, though.

At least a try with it.

added parameter '-n', but still "no such device"

echo -n '1-6:1.0' | sudo tee /sys/bus/usb/drivers/snd_usb_toneport/bind 
1-6:1.0tee: /sys/bus/usb/drivers/snd_usb_toneport/bind: No such device

Offline

#4 2021-08-16 14:05:53

progandy
Member
Registered: 2012-05-17
Posts: 5,211

Re: [SOLVED]manaully bind usb sound card to a specific driver failed

You also have to add the usb device id to the driver with the "new_id" file. That won't add any special flags or other options to the driver, though and your device might need that.

echo 0e41 4144 >/sys/bus/usb-serial/drivers/snd_usb_toneport/new_id

| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |

Offline

#5 2021-08-18 07:58:54

cstn
Member
Registered: 2019-12-24
Posts: 37

Re: [SOLVED]manaully bind usb sound card to a specific driver failed

progandy wrote:

You also have to add the usb device id to the driver with the "new_id" file. That won't add any special flags or other options to the driver, though and your device might need that.

echo 0e41 4144 >/sys/bus/usb-serial/drivers/snd_usb_toneport/new_id

It works! This your command makes my hardware works with snd_usb_toneport driver.
thanks!.

actually, for my machine, first, load snd_usb_toneport driver automatically on boot up, edit /etc/modules-load.d/line6_toneport.conf :

# load snd-usb-toneport.ko.zst driver on boot up
snd-usb-toneport

then, plug in the Line6 TonePort DI-silver hardware to the usb port, and excute the command:

echo "0e41 4144" | sudo tee /sys/bus/usb/drivers/snd_usb_toneport/new_id

the sound card should work. without 'bind' usb id or something, just append the usb id to "new id" of this snd_usb_toneport driver.

after some tests, I have to say the line6 toneport driver right now provided by kernel_5.13.10-arch1-1 is not perfect for toneport-di-silver hardware. This sound card is an instrument guitar and voice recording device. the driver makes it work, but , when plug in a guitar to the sound card, it always make sound directly with clean tone of electrical guitar through the right channel speaker without any virtual amplifier. virtual amplifier can work good with JACK, but the uneccessary clean tone is still there from the right speaker. I will try to contact with the driver author.

Last edited by cstn (2021-08-18 07:59:26)

Offline

Board footer

Powered by FluxBB