Please ensure Javascript is enabled for purposes of website accessibility Jump to content

HowTo Linux Driver (PODHD Pro X or others)


kroa38
 Share

Recommended Posts

# Running PODHD Pro X under linux

 

Because we love linux !

Tested on : Ubuntu 22-04 (jammy)

 

## 1) Get the righ ID of the PODHD PRO X:

 

run the command :

```

> sudo dmesg | grep 'idVendor=0e41'

[ 3239.784010] usb 3-1.3.1: New USB device found, idVendor=0e41, idProduct=415a, bcdDevice= 0.00

```

0x0e41 = Line 6 Manufacturer ID

__0x415a__ = __PODHD Pro X ID__

 

## 2) Linux kernel source

 

Get your current kernel version:

```

> uname -r

6.8.0-47-generic

```

Download the most closest version of your kernel:

For me is 6.8.0 and extract under __/usr/src/__

```

> wget https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.6.8.tar.gz

> tar -xvf linux-6.6.8.tar.gz

> mv linx-6.6.8/ /usr/src/.

```

 

## 3) Make Module Prepare

Remove root permission

```

> cd /usr/src/

> chown -R $(whoami):$(whoami) linux_6.8.0/

```

Copy your current kernel config inside the source

```

> cd /usr/src/linux_6.8.0

> cp /boot/config-$(uname -r) .config

```

make module_prepare

```

> cd /usr/src/linux_6.8.0

> cp /boot/config-$(uname -r) .config

> make oldconfig

> make modules_prepare

```

 

## 4) Modify PODHD. C file

 

For working you have to simply modify the value of LINE6_PODHDDESKTOP inside the file :

> linux-6.8.0/sound/usb/line6/podhd.c

 

> replace __0x4156__ by __0x415a__

 

```

/* table of devices that work with this driver */

static const struct usb_device_id podhd_id_table[] = {

/* TODO: no need to alloc data interfaces when only audio is used */

{ LINE6_DEVICE(0x5057), .driver_info = LINE6_PODHD300 },

{ LINE6_DEVICE(0x5058), .driver_info = LINE6_PODHD400 },

{ LINE6_IF_NUM(0x414D, 0), .driver_info = LINE6_PODHD500 },

{ LINE6_IF_NUM(0x414A, 0), .driver_info = LINE6_PODX3 },

{ LINE6_IF_NUM(0x414B, 0), .driver_info = LINE6_PODX3LIVE },

{ LINE6_IF_NUM(0x4159, 0), .driver_info = LINE6_PODHD500X },

{ LINE6_IF_NUM(0x415a, 0), .driver_info = LINE6_PODHDDESKTOP },

{}

};

```

## 5) Rebuild module

 

```

> cd linux-6.8.0/sound/usb/line6

> make -C /lib/modules/$(uname -r)/build M=$(pwd) modules

```

if all is ok you have successfully build the modules for the PODHD Pro X.

```

> ll *.ko

-rw-r--r-- 1 root root 1567408 Oct 23 15:56 snd-usb-line6.ko

-rw-r--r-- 1 root root 418600 Oct 23 16:22 snd-usb-podhd.ko

-rw-r--r-- 1 root root 417152 Oct 23 15:56 snd-usb-pod.ko

-rw-r--r-- 1 root root 438232 Oct 23 15:56 snd-usb-toneport.ko

-rw-r--r-- 1 root root 384128 Oct 23 15:56 snd-usb-variax.ko

```

## 6) unload old module .

 

verify if you have line modules loaded

```

> sudo lsmod | grep snd_usb

snd_usb_podhd 16384 0

snd_usb_line6 49152 3 snd_usb_podhd

snd_usb_audio 499712 5

snd_usbmidi_lib 53248 1 snd_usb_audio

snd_hwdep 20480 3 snd_usb_audio,snd_hda_codec,snd_usb_line6

snd_ump 45056 1 snd_usb_audio

snd_rawmidi 57344 4 snd_seq_midi,snd_usbmidi_lib,snd_usb_line6,snd_ump

mc 81920 1 snd_usb_audio

 

```

For me __snd_usb_pod_hd__ and __snd_usb_line6__ must be unloaded

 

```

> sudo rmmod snd_usb_podhd

> sudo rmmod snd_usb_line6

```

## 7) Insert new module.

 

Insert first line6 and after podhd

```

> sudo insmod ./snd-usb-line6.ko

> sudo insmod ./snd-usb-podhd.ko

```


 

## 8) Big thanks to :

Markus Grabner <grabner@icg.tugraz.at> who is at the origin of this driver.




 

README.md podhd.c

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...