anyc / snd-bcd2000

Linux driver for the Behringer BCD2000 DJ controller
GNU General Public License v2.0
24 stars 5 forks source link

64 bits #1

Closed matasa closed 10 years ago

matasa commented 10 years ago

Hi anyc !

This is a very cool project caus it could be the only driver to support mixxx on 64 bits. My question was is it a driver for linux 32 and/or 64bits versions ? I also tried the bcd2000 on xp 32 with mixxx but only the main functions are working. It could be very cool to work on linux anyway caus mixxx support the bcd2000.

I tried to install on ubuntu 12.04 x64 but :

/usr/src$ sudo dkms build -m bcd2000 -v 1.0

Kernel preparation unnecessary for this kernel. Skipping...

Building module: cleaning build area....(bad exit status: 2) make KERNELRELEASE=3.5.0-45-generic -C /lib/modules/3.5.0-45-generic/build M=/var/lib/dkms/bcd2000/1.0/build....(bad exit status: 2) ERROR (dkms apport): binary package for bcd2000: 1.0 not found Error! Bad return status for module build on kernel: 3.5.0-45-generic (x86_64) Consult /var/lib/dkms/bcd2000/1.0/build/make.log for more information.

x64 ...

Thank you anyway for coding ! ;)

matasa

anyc commented 10 years ago

Hi matasa,

thank you! Hm, I am not aware of any architecture dependent parts of the module, so it should work on 32bit and 64bit architectures.

Could you post the make.log? I included two header files that are not included in linux-headers package, maybe those two are not compatible with your kernel version.

matasa commented 10 years ago

That's a very good news :D The native driver only works under 32 bits systems, but I don't know why ... Do you think that you will be able to make all functions working ?

My log :

DKMS make.log for bcd2000-1.0 for kernel 3.5.0-45-generic (x86_64) jeudi 6 février 2014, 12:51:00 (UTC+0100) make: entrant dans le répertoire « /usr/src/linux-headers-3.5.0-45-generic » scripts/Makefile.build:44: /var/lib/dkms/bcd2000/1.0/build/Makefile: Aucun fichier ou dossier de ce type make[1]: * Pas de règle pour fabriquer la cible « /var/lib/dkms/bcd2000/1.0/build/Makefile ». Arrêt. make: * [module/var/lib/dkms/bcd2000/1.0/build] Erreur 2 make: quittant le répertoire « /usr/src/linux-headers-3.5.0-45-generic »

(Ask me if translation needed) ;)

Cheers !!

anyc commented 10 years ago

`/usr/src/linux-headers-3.5.0-45-generic' doesn't look right. The directory should be: /usr/src/snd-usb-bcd2000-0.01/

matasa commented 10 years ago

Hi anyc,

I tried again to install but I think I'm not good enough ... :/ I use this example :

cd /usr/src tar xzf /tmp/exemple-1.0.tar.gz dkms add -m exemple -v 1.0 dkms build -m exemple -v 1.0

dkms install -m exemple -v 1.0

So thats all I did then :

mata@matasa:~$ cd /usr/src

mata@matasa:/usr/src$ :~$ dkms uninstall -m bcd2000 -v 1.0 :~$ : commande introuvable

mata@matasa:/usr/src$ dkms uninstall -m bcd2000 -v 1.0 Error! You must be root to use this command.

mata@matasa:/usr/src$ sudo dkms uninstall -m bcd2000 -v 1.0

Error! The module bcd2000 1.0 is not currently installed. This module is not currently ACTIVE for kernel 3.5.0-45-generic (x86_64).

mata@matasa:/usr/src$ sudo dkms uninstall -m bcd2000 -v 1.0 -k linux-headers-3.5.0-45-generic Error! The module bcd2000 1.0 is not currently installed. This module is not currently ACTIVE for kernel linux-headers-3.5.0-45-generic (x86_64).

So I just did :

mata@matasa:/usr/src$ sudo rm -rf bcd2000-1.0

And copy the new archive with the right name :

mata@matasa:/usr/src$ sudo tar xzf /home/matasa/Bureau/snd-usb-bcd2000-0.01.tar.gz mata@matasa:/usr/src$ sudo dkms add -m snd-usb-bcd2000 -v 0.01

Creating symlink /var/lib/dkms/snd-usb-bcd2000/0.01/source -> /usr/src/snd-usb-bcd2000-0.01

DKMS: add completed.

Should work ....

mata@matasa:/usr/src$ sudo dkms build -m snd-usb-bcd2000 -v 0.01

Kernel preparation unnecessary for this kernel. Skipping...

Building module: cleaning build area....(bad exit status: 2) make KERNELRELEASE=3.5.0-45-generic -C /lib/modules/3.5.0-45-generic/build M=/var/lib/dkms/snd-usb-bcd2000/0.01/build....(bad exit status: 2) ERROR (dkms apport): binary package for snd-usb-bcd2000: 0.01 not found Error! Bad return status for module build on kernel: 3.5.0-45-generic (x86_64) Consult /var/lib/dkms/snd-usb-bcd2000/0.01/build/make.log for more information.

Why ?? I didn't tell about the 3.5.0-45-generic !!?

mata@matasa:/usr/src$ sudo dkms add -m snd-usb-bcd2000 -v 0.01 -k snd-usb-bcd2000-0.01 Error! DKMS tree already contains: snd-usb-bcd2000-0.01 You cannot add the same module/version combo more than once.

mata@matasa:/usr/src$ sudo dkms build -m snd-usb-bcd2000 -v 0.01 -k snd-usb-bcd2000-0.01 Error! Your kernel headers for kernel snd-usb-bcd2000-0.01 cannot be found. Please install the linux-headers-snd-usb-bcd2000-0.01 package, or use the --kernelsourcedir option to tell DKMS where it's located

mata@matasa:/usr/src$ sudo dkms build -m snd-usb-bcd2000 -v 0.01 --kernelsourcedir /usr/src/snd-usb-bcd2000-0.01/

Preparing kernel 3.5.0-45-generic for module build: (This is not compiling a kernel, just preparing kernel symbols) Storing current .config to be restored when complete Running Generic preparation routine make mrproper.......(bad exit status: 2) : using /lib/modules/3.5.0-45-generic/build/.config (I hope this is the correct config for this kernel) make oldconfig...... make prepare-all....(bad exit status: 2)

Building module: cleaning build area....(bad exit status: 2) make KERNELRELEASE=3.5.0-45-generic -C /lib/modules/3.5.0-45-generic/build M=/var/lib/dkms/snd-usb-bcd2000/0.01/build....(bad exit status: 2) ERROR (dkms apport): binary package for snd-usb-bcd2000: 0.01 not found Error! Bad return status for module build on kernel: 3.5.0-45-generic (x86_64) Consult /var/lib/dkms/snd-usb-bcd2000/0.01/build/make.log for more information.

Looks better but as you see, there is a problem after prepare-all

Is there another way to do ? Maybe should I wait the final package or do you need me to test more ? :D Thanks anyway !!

matasa

PS : The log (look same) :

DKMS make.log for snd-usb-bcd2000-0.01 for kernel 3.5.0-45-generic (x86_64) jeudi 6 février 2014, 16:15:53 (UTC+0100) make: entrant dans le répertoire « /usr/src/linux-headers-3.5.0-45-generic » scripts/Makefile.build:44: /var/lib/dkms/snd-usb-bcd2000/0.01/build/Makefile: Aucun fichier ou dossier de ce type make[1]: * Pas de règle pour fabriquer la cible « /var/lib/dkms/snd-usb-bcd2000/0.01/build/Makefile ». Arrêt. make: * [module/var/lib/dkms/snd-usb-bcd2000/0.01/build] Erreur 2 make: quittant le répertoire « /usr/src/linux-headers-3.5.0-45-generic »

anyc commented 10 years ago

I just pushed a new commit that should simplify the whole thing. Please retry with the new version. It might be even sufficient to just execute "make" in the folder and load the resulting .ko file with "insmod". DKMS would be better if you want Ubuntu to recompile it automatically for new kernels.

matasa commented 10 years ago

Ok, that what I did :

matasa@matasa-,:~$ cd /home/matasa/Bureau/snd-usb-bcd2000-master/ matasa@matasa-,:~/Bureau/snd-usb-bcd2000-master$ test -f configure matasa@matasa-,:~/Bureau/snd-usb-bcd2000-master$ make

make -C /lib/modules/3.5.0-45-generic/build M=/home/matasa/Bureau/snd-usb-bcd2000-master modules make[1]: entrant dans le répertoire « /usr/src/linux-headers-3.5.0-45-generic » CC [M] /home/matasa/Bureau/snd-usb-bcd2000-master/bcd2000.o LD [M] /home/matasa/Bureau/snd-usb-bcd2000-master/snd-usb-bcd2000.o Building modules, stage 2. MODPOST 1 modules CC /home/matasa/Bureau/snd-usb-bcd2000-master/snd-usb-bcd2000.mod.o LD [M] /home/matasa/Bureau/snd-usb-bcd2000-master/snd-usb-bcd2000.ko make[1]: quittant le répertoire « /usr/src/linux-headers-3.5.0-45-generic »

matasa@matasa-,:~/Bureau/snd-usb-bcd2000-master$ insmod snd-usb-bcd2000.ko insmod: error inserting 'snd-usb-bcd2000.ko': -1 Operation not permitted

matasa@matasa-,:~/Bureau/snd-usb-bcd2000-master$ sudo insmod snd-usb-bcd2000.ko matasa@matasa-,:~

So that looks good, I reboot ... :P

matasa commented 10 years ago

Nothing in mixxx console, may I miss something ? (switch is on)

anyc commented 10 years ago

Hm, does it show up in the preferences and did you enabled it plus the right preset?

anyc commented 10 years ago

Check "dmesg" if there are errors. If you load it with insmod and you get errors like "Unknown symbol" you might need to do a "modprobe snd_usbmidi-lib" before it that module isn't already loaded.

matasa commented 10 years ago

Some - things ... :

On ubuntu startup I everytime choose the S option meaning skip a usb problem support. This started when I was using virtualbox and usb 2.0 extention pack. I also actually run mixxx on VM virtualbox with xp 32bits and it's not working. Actually it works 2secs and come very slow (unworkable). Same with B-DJ. Several times, I had to reinstall 1.1.1 driver to reset. (It's only working on another native xp computer with mixxx, partly, burk)

The bcd2000 doesnt show up in preferences so I can't check the preset.. I have mixxx 1.11.0 x64.

As you saw on my previous post there were no errrors, or they were hidden. In dmesg there is a very big amount of data. Theses are the ones with bcd keyword :

[ 1166.496152] usb 7-2: USB disconnect, device number 2 [ 1170.060086] usb 7-2: new full-speed USB device number 3 using uhci_hcd [ 1170.238128] usb 7-2: New USB device found, idVendor=1397, idProduct=00bd [ 1170.238140] usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 1170.238148] usb 7-2: Product: BCD2000
[ 1170.238155] usb 7-2: Manufacturer: Behringer

I feel like a stone in the universe ... :P

anyc commented 10 years ago

The last ~10 lines of dmesg would be interesting after you executed matasa@matasa-,:~/Bureau/snd-usb-bcd2000-master$ sudo insmod snd-usb-bcd2000.k

You can also check if it works if amidi -l lists the BCD2000.

I also pushed a new version.