On Monday 14 October 2013 12:17:31 Takashi Sakamoto wrote:
Hi all,
This is a call for testing my ALSA driver for Fireworks/BeBoB based devices.
Please test 'snd-fireworks' for Fireworks and 'snd-bebob' for BeBoB if you have some devices listed in the end of this mail.
Status:
- still under development
- Without snd-dice and Clemens' development (I must do this later)
Functionality:
- playback/capturing (full duplex) with PCM/MIDI interface
- hardware metering for some devices with CONTROL interface
- switching clock source/digital interface/digital mode with CONTROL
interface
- print hardware status with PROC interface
Note:
- Don't use simultaneously 'ALSA PCM/MIDI playback/capture' and 'jackd
with Firewire (FFADO) backend'. Both of them try connecting to the device when another is running.
- I add much modification into snd-firewire-lib for full duplex
synchronization of receive/transmit AMDTP stream.
Requirement:
- Linux kernel 3.11 or later because of Juju (nickname of Firewire
stack) changing its API.
- Dynamic Kernel Module Support (DKMS) is reccomended for safely
installing/uninstalling (I work with Ubuntu 13.10)
Bug report:
- report with /proc/asound/cardX/#XXX
- please send your experiences to me with the output
How to install (DKMS):
- $ git clone https://github.com/takaswie/snd-firewire-improve.git
- $ ln -s $(pwd)/snd-firewire-improve/ /usr/src/alsa-firewire-3.11
(superuser) 3. $ dkms install snd-firewire/3.11 (superuser)
How to uninstall (DKMS):
- $ modprobe -r snd-bebob snd-fireworks snd-firewire-lib (superuser)
- $ dkms remove ans-firewire/3.11 --all (superuser)
- $ rm /usr/src/alsa-firewire-3.11 (superuser)
- $ rm snd-firewire-improve
How to install (Manual):
- $ git clone https://github.com/takaswie/snd-firewire-improve.git
- $ cd snd-firewire-improve
- $ make
4, backup system snd-firewire-lib/snd-firewire-speakers/snd-isight (superuser) 5. install snd-firewire-lib/snd-firewire-speakers/snd-isight/snd-fireworks/snd-bebob (superuser) 6. depmod -a (superuser)
How to uninstall (Manual)
- modprobe -r snd-firewire-lib snd-firewire-speakers snd-isight
snd-fireworks snd-bebob (superuser) 2. remove snd-firewire-lib/snd-firewire-speakers/snd-isight/snd-fireworks/snd-bebob (superuser) 3. recover snd-firewire-lib/snd-firewire-speakers/snd-isight (superuser) 4. depmod -a (superuser)
Confirmed to work:
- AudioFire4
- AudioFirePre8
- Ozonic
- Firewire Solo
- Firewire Audiophile
- Firewire 410
== Fireworks based devices [Echo Audio] AudioFire2 AudioFire4 AudioFirePre8 AudioFire8 (till 2009) AudioFire8 (since 2009) AudioFire12
[Gibson] RIP
[Mackie] Onyx 400F Onyx 1200F
== BeBoB based devices [Yamaha] GO44 GO46
[M-Audio] (to control mixer channels please use FFADO upstream) Ozonic Firewire 410 Firewire Audiophile Firewire Solo NRV10 ProFireLightbridge
[Focusrite] SaffirePro 26 I/O SaffirePro 10 I/O Saffire(LE)
[Edirol] FA-66 FA-101
[TerraTecElectronic GmbH] Phase88FW PhaseX24FW
[PreSonus] FireBox FirePod
[Mackie] OnyxFirewire
[Tascam] IF-FW/DM
[Behringer] X32
[ApogeeElectronics] Rosetta200
[ESI] Quatafire610
Regards
Takashi Sakamoto o-takashi@sakamocchi.jp
-- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clk... _______________________________________________ FFADO-devel mailing list FFADO-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ffado-devel
Hi Takashi,
Today I finally had some time to try your patches. I have a Terratec Phase 24FW Card. I did use the latest version (as of today) from https://github.com/takaswie/snd-firewire-improve.git on a Debian testing system. I did not use dkms but loaded the driver manually: $ cd sound/firewire $ modprobe -r snd-firewire-lib $ insmod ./snd-firewire-lib.ko $ insmod ./bebob/snd-bebob.ko
First I have to say the driver does work and I can play music through the device, so thanks for your work. Unfortunately I managed to crash my system with it. I was using mplayer2 to play sound files and it seems that if I let mplayer2 play multiple files the system crashed somewhere between the end of the last file and the start of the new file (probably a race or something). I only did some quick testes because I hat to reboot after every crash (even sysrq doesn't work anymore), but I think the crash doesn't happen every time mplayer2 switches to the next file, but most of the time. If I let it play only one file I didn't observe any crashes.
Here is the mplayer2 command I did use for testing: $ mplayer -ao alsa:device=hw=1 <some files>
And here the output of /proc/asound/cardX/#XXX $ cat /proc/asound/card1/#clock Sampling rate: 48000 Clock Source: Internal $ cat /proc/asound/card1/#firmware Manufacturer: bridgeCo Protocol Ver: 1 Build Ver: 0 GUID: 0x000AAC04005F9C07 Model ID: 0x04 Model Rev: 1 Firmware Date: 20060420 Firmware Time: 105241 Firmware ID: 0x4 Firmware Ver: 18681119 Base Addr: 0x20080000 Max Size: 1572864 Loader Date: 20040719 Loader Time: 134002 $ cat /proc/asound/card1/#formation Output Stream from device: Rate PCM MIDI 22050 0 0 24000 0 0 32000 4 1 44100 4 1 48000 4 1 88200 4 1 96000 4 1 176400 0 0 192000 4 1 Input Stream to device: Rate PCM MIDI 22050 0 0 24000 0 0 32000 6 1 44100 6 1 48000 6 1 88200 6 1 96000 6 1 176400 0 0 192000 6 1
Attached is the crash log as far as I could obtain it.
pulseaudio[4885]: [pulseaudio] module-alsa-card.c: Failed to find a working profile. pulseaudio[4885]: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="1" name="firewire-0x000aac04005f9c07" card_name="alsa_card.firewire-0x000aac04005f9c07" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes card_properties="module-udev-detect.discovered=1""): initialization failed. kernel: [ 334.172898] BUG: unable to handle kernel paging request at ffffffffffffffff kernel: [ 334.172934] IP: [<ffffffffa0154670>] fw_iso_context_queue_flush+0x10/0x10 [firewire_core] kernel: [ 334.172977] PGD 180f067 PUD 1811067 PMD 0 kernel: [ 334.172998] Oops: 0000 [#1] SMP kernel: [ 334.173015] Modules linked in: snd_bebob(O) snd_firewire_lib(O) sit ebtable_nat tunnel4 ip_tunnel ebtables cpufreq_stats cpufreq_userspace cpufreq_conservative parport_pc cpufreq_powersave ppdev lp ip6table_raw parport nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables xt_REDIRECT iptable_nat nf_nat_ipv4 nf_nat xt_CT iptable_raw ipt_REJECT xt_LOG xt_limit xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack iptable_filter ip_tables x_tables binfmt_misc deflate ctr twofish_generic twofish_avx_x86_64 twofish_x86_64_3way twofish_x86_64 twofish_common camellia_generic camellia_x86_64 serpent_avx_x86_64 serpent_sse2_x86_64 serpent_generic xts blowfish_generic blowfish_x86_64 blowfish_common cast5_generic cast_common des_generic cbc cmac xcbc rmd160 sha512_generic sha256_generic crypto_null af_key xfrm_algo arc4 ecb md4 hmac nls_utf8 cifs rpcsec_gss_krb5 nfsv4 dns_resolver nfsd auth_rpcgss oid_registry nfs_acl nfs lockd fscache sunrpc w83627ehf hwmon_vid loop fuse ecryptfs isl6423 stv6110x stv090x snd_hda_codec_hdmi snd_hda_codec_realtek iTCO_wdt iTCO_vendor_support stv0299 rc_hauppauge mxm_wmi x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 ablk_helper cryptd lrw gf128mul glue_helper psmouse snd_hda_intel snd_hda_codec snd_hwdep snd_pcm_oss snd_mixer_oss snd_pcm snd_page_alloc snd_seq_midi snd_seq_midi_event pcspkr snd_rawmidi budget budget_ci serio_raw budget_core ttpci_eeprom snd_seq i2c_i801 saa7146 snd_seq_device snd_timer rc_core dvb_core lpc_ich mfd_core snd soundcore evdev i915 drm_kms_helper wmi drm i2c_algo_bit i2c_core video button processor mei_me mei ext4 crc16 mbcache jbd2 btrfs xor raid6_pq crc32c libcrc32c dm_mod raid1 md_mod sg sd_mod sr_mod cdrom crc_t10dif crct10dif_common hid_generic usbhid hid ahci firewire_ohci libahci firewire_core crc_itu_t libata scsi_mod ehci_pci ehci_hcd e1000e xhci_hcd ptp pps_core usbcore usb_common thermal fan thermal_sys kernel: [ 334.173881] CPU: 0 PID: 5343 Comm: mplayer Tainted: G O 3.12-1-amd64 #1 Debian 3.12.6-2 kernel: [ 334.173913] Hardware name: /DZ77BH-55K, BIOS BHZ7710H.86A.0100.2013.0517.0942 05/17/2013 kernel: [ 334.173947] task: ffff88040da7a0c0 ti: ffff8803da2e4000 task.ti: ffff8803da2e4000 kernel: [ 334.173973] RIP: 0010:[<ffffffffa0154670>] [<ffffffffa0154670>] fw_iso_context_queue_flush+0x10/0x10 [firewire_core] kernel: [ 334.174015] RSP: 0018:ffff8803da2e5d70 EFLAGS: 00010002 kernel: [ 334.174035] RAX: ffffffffa0acd040 RBX: ffff8800c99c95c8 RCX: 0000000000001c2c kernel: [ 334.174060] RDX: ffff88040dcff000 RSI: 0000000000000000 RDI: ffffffffffffffff kernel: [ 334.174086] RBP: ffff8803da2e5de8 R08: 0000000000000000 R09: 00000000000031a1 kernel: [ 334.174111] R10: 0000000052ed7c8e R11: 0000000000000246 R12: 00007fffa996f808 kernel: [ 334.174137] R13: 00007fffa996f808 R14: 0000000000000000 R15: ffff8803f70a8c00 kernel: [ 334.174162] FS: 00007f286ae957c0(0000) GS:ffff88041f200000(0000) knlGS:0000000000000000 kernel: [ 334.174190] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 kernel: [ 334.174211] CR2: ffffffffffffffff CR3: 000000040c1d3000 CR4: 00000000001407f0 kernel: [ 334.174236] Stack: kernel: [ 334.174245] ffffffffa0abbca9 ffff8803da3a7000 ffffffffa0569bc4 0000000000000000 kernel: [ 334.174277] 0000000c00000000 0000000081019435 0000000000000097 ffffffffa03e321b kernel: [ 334.174309] ffff8803edca3558 ffff8803edca3530 ffff8803f70a8c00 00007fffa996f808 kernel: [ 334.174340] Call Trace: kernel: [ 334.174352] [<ffffffffa0abbca9>] ? amdtp_stream_pcm_pointer+0x29/0x40 [snd_firewire_lib] kernel: [ 334.174388] [<ffffffffa0569bc4>] ? snd_pcm_update_hw_ptr0+0x34/0x3a0 [snd_pcm] kernel: [ 334.174419] [<ffffffffa03e321b>] ? snd_timer_notify+0x6b/0x150 [snd_timer] kernel: [ 334.174448] [<ffffffffa056363a>] ? snd_pcm_delay+0x5a/0x140 [snd_pcm] kernel: [ 334.174476] [<ffffffffa0565623>] ? snd_pcm_common_ioctl1+0x5f3/0xc90 [snd_pcm] kernel: [ 334.174506] [<ffffffffa056a5f3>] ? snd_pcm_lib_write1+0x3a3/0x3f0 [snd_pcm] kernel: [ 334.174536] [<ffffffffa0567b80>] ? pcm_chmap_ctl_private_free+0x30/0x30 [snd_pcm] kernel: [ 334.174567] [<ffffffffa0565db0>] ? snd_pcm_playback_ioctl1+0xf0/0x240 [snd_pcm] kernel: [ 334.174597] [<ffffffffa0565f26>] ? snd_pcm_playback_ioctl+0x26/0x30 [snd_pcm] kernel: [ 334.174625] [<ffffffff81184d94>] ? do_vfs_ioctl+0x2d4/0x4b0 kernel: [ 334.174648] [<ffffffff81184ff0>] ? SyS_ioctl+0x80/0xa0 kernel: [ 334.174669] [<ffffffff81499b39>] ? system_call_fastpath+0x16/0x1b kernel: [ 334.174691] Code: 00 48 8b 40 60 ff e0 0f 1f 40 00 48 8b 07 48 8b 00 48 8b 40 70 ff e0 0f 1f 40 00 48 8b 07 48 8b 00 48 8b 40 78 ff e0 0f 1f 40 00 <48> 8b 07 48 8b 00 48 8b 80 80 00 00 00 ff e0 90 48 8b 07 48 8b kernel: [ 334.174857] RIP [<ffffffffa0154670>] fw_iso_context_queue_flush+0x10/0x10 [firewire_core] kernel: [ 334.174893] RSP <ffff8803da2e5d70> kernel: [ 334.174906] CR2: ffffffffffffffff kernel: [ 334.184706] ---[ end trace 4fd37a42001c8a5d ]--- kernel: [ 355.198207] INFO: rcu_sched detected stalls on CPUs/tasks: { 0} (detected by 2, t=5252 jiffies, g=3743, c=3742, q=2720) kernel: [ 355.198212] sending NMI to all CPUs: kernel: [ 355.198213] NMI backtrace for cpu 2 kernel: [ 355.198215] CPU: 2 PID: 3929 Comm: collectd Tainted: G D O 3.12-1-amd64 #1 Debian 3.12.6-2 kernel: [ 355.198216] Hardware name: /DZ77BH-55K, BIOS BHZ7710H.86A.0100.2013.0517.0942 05/17/2013 kernel: [ 355.198226] task: ffff88040bcad0c0 ti: ffff88040bf76000 task.ti: ffff88040bf76000 kernel: [ 355.198227] RIP: 0010:[<ffffffff81275bdd>] [<ffffffff81275bdd>] find_next_bit+0x4d/0xd0 kernel: [ 355.198231] RSP: 0018:ffff88041f303df0 EFLAGS: 00000046 kernel: [ 355.198231] RAX: 0000000000000000 RBX: ffff88041f30de00 RCX: 0000000000000001 kernel: [ 355.198232] RDX: ffff88041f30de38 RSI: 0000000000000080 RDI: 0000000000000180 kernel: [ 355.198233] RBP: ffff88041f20de40 R08: ffff88041f30de08 R09: 0000000000000008 kernel: [ 355.198234] R10: 0000000000000000 R11: ffff88041f303bb6 R12: 000000000000de80 kernel: [ 355.198234] R13: 0000000000080000 R14: 0000000000000055 R15: 0000000000000002 kernel: [ 355.198235] FS: 00007f8149847700(0000) GS:ffff88041f300000(0000) knlGS:0000000000000000 kernel: [ 355.198236] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 kernel: [ 355.198237] CR2: 00007f8157da9000 CR3: 000000040d165000 CR4: 00000000001407e0 kernel: [ 355.198238] Stack: kernel: [ 355.198239] ffffffff81043637 0000000000000008 000000000000de40 0000000200000002 kernel: [ 355.198241] 0000000000000082 0000000000002710 ffffffff818419c0 ffffffff818419c0 kernel: [ 355.198242] ffff88040bf76000 0000000000000aa0 ffff88041f30ed80 ffffffff8103f88e kernel: [ 355.198243] Call Trace: kernel: [ 355.198244] <IRQ> kernel: [ 355.198245] [<ffffffff81043637>] ? __x2apic_send_IPI_mask+0xb7/0x190 kernel: [ 355.198251] [<ffffffff8103f88e>] ? arch_trigger_all_cpu_backtrace+0x4e/0x80 kernel: [ 355.198253] [<ffffffff810e1b48>] ? rcu_check_callbacks+0x5b8/0x600 kernel: [ 355.198256] [<ffffffff810b4c30>] ? tick_sched_handle.isra.15+0x60/0x60 kernel: [ 355.198258] [<ffffffff8106881b>] ? update_process_times+0x3b/0x70 kernel: [ 355.198259] [<ffffffff810b4beb>] ? tick_sched_handle.isra.15+0x1b/0x60 kernel: [ 355.198260] [<ffffffff810b4c67>] ? tick_sched_timer+0x37/0x60 kernel: [ 355.198263] [<ffffffff8107ea22>] ? __run_hrtimer+0x62/0x1b0 kernel: [ 355.198264] [<ffffffff8107f1c9>] ? hrtimer_interrupt+0xe9/0x220 kernel: [ 355.198266] [<ffffffff8103deb6>] ? smp_apic_timer_interrupt+0x36/0x50 kernel: [ 355.198269] [<ffffffff8149a71d>] ? apic_timer_interrupt+0x6d/0x80 kernel: [ 355.198269] <EOI> kernel: [ 355.198270] [<ffffffff810ba548>] ? generic_exec_single+0x68/0x90 kernel: [ 355.198273] [<ffffffff810ba564>] ? generic_exec_single+0x84/0x90 kernel: [ 355.198275] [<ffffffff81287cb0>] ? ucs2_strncmp+0x60/0x60 kernel: [ 355.198277] [<ffffffff810ba655>] ? smp_call_function_single+0xe5/0x190 kernel: [ 355.198278] [<ffffffff81287cb0>] ? ucs2_strncmp+0x60/0x60 kernel: [ 355.198280] [<ffffffff81287dd6>] ? rdmsr_on_cpu+0x46/0x60 kernel: [ 355.198295] [<ffffffffa06561f3>] ? show_temp+0x93/0xd0 [coretemp] kernel: [ 355.198298] [<ffffffff81342157>] ? dev_attr_show+0x17/0x50 kernel: [ 355.198300] [<ffffffff811decc9>] ? sysfs_read_file+0x99/0x170 kernel: [ 355.198302] [<ffffffff81172f94>] ? vfs_read+0x94/0x160 kernel: [ 355.198304] [<ffffffff81173a83>] ? SyS_read+0x43/0xa0 kernel: [ 355.198306] [<ffffffff81499b39>] ? system_call_fastpath+0x16/0x1b kernel: [ 355.198306] Code: 3f 75 6b 48 f7 c6 c0 ff ff ff 0f 84 93 00 00 00 49 8b 00 49 8d 50 08 48 85 c0 74 0f eb 3f 48 83 c2 08 48 8b 42 f8 48 85 c0 75 32 <48> 83 ee 40 48 83 c7 40 48 f7 c6 c0 ff ff ff 75 e2 48 85 f6 48 kernel: [ 355.198321] NMI backtrace for cpu 0 kernel: [ 355.198324] CPU: 0 PID: 5343 Comm: mplayer Tainted: G D O 3.12-1-amd64 #1 Debian 3.12.6-2 kernel: [ 355.198324] Hardware name: /DZ77BH-55K, BIOS BHZ7710H.86A.0100.2013.0517.0942 05/17/2013 kernel: [ 355.198325] task: ffff88040da7a0c0 ti: ffff8803da2e4000 task.ti: ffff8803da2e4000 kernel: [ 355.198326] RIP: 0010:[<ffffffff81492083>] [<ffffffff81492083>] _raw_spin_lock+0x23/0x30 kernel: [ 355.198329] RSP: 0018:ffff8803da2e5a30 EFLAGS: 00000097 kernel: [ 355.198330] RAX: 0000000000001c2c RBX: ffff8803f70a8c00 RCX: 0000000000001c2d kernel: [ 355.198331] RDX: 0000000000001c2d RSI: ffff88040b1b5580 RDI: ffff8803f70a8d70 kernel: [ 355.198331] RBP: ffff8803da3a7000 R08: 0000000000000000 R09: 0000000000000000 kernel: [ 355.198332] R10: ffff88040b1b5590 R11: 0000000000000117 R12: ffff88040b1b5580 kernel: [ 355.198333] R13: ffff88040dca7e40 R14: ffff88040b029d98 R15: ffff8803d9156330 kernel: [ 355.198334] FS: 0000000000000000(0000) GS:ffff88041f200000(0000) knlGS:0000000000000000 kernel: [ 355.198335] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 kernel: [ 355.198335] CR2: ffffffffffffffff CR3: 000000000180c000 CR4: 00000000001407f0 kernel: [ 355.198336] Stack: kernel: [ 355.198337] ffffffffa0563cb8 ffff8803f70a8c00 ffff88040b029c00 ffffffffa0563d2a kernel: [ 355.198338] ffff8803f70a8c00 ffff88040b029c00 ffffffffa0563e68 ffff88040b1b5580 kernel: [ 355.198340] 0000000000000008 ffff8803d9156330 ffff8803d3d7e780 ffff88040e6656e0 kernel: [ 355.198341] Call Trace: kernel: [ 355.198351] [<ffffffffa0563cb8>] ? snd_pcm_drop+0x48/0xb0 [snd_pcm] kernel: [ 355.198355] [<ffffffffa0563d2a>] ? snd_pcm_release_substream.part.29+0xa/0x90 [snd_pcm] kernel: [ 355.198359] [<ffffffffa0563e68>] ? snd_pcm_release+0x98/0xb0 [snd_pcm] kernel: [ 355.198361] [<ffffffff81174a9a>] ? __fput+0xca/0x220 kernel: [ 355.198363] [<ffffffff81078904>] ? task_work_run+0xb4/0xd0 kernel: [ 355.198365] [<ffffffff8105d8c3>] ? do_exit+0x2b3/0xa40 kernel: [ 355.198367] [<ffffffff814932b8>] ? oops_end+0x98/0xe0 kernel: [ 355.198369] [<ffffffff81489540>] ? no_context+0x26a/0x276 kernel: [ 355.198371] [<ffffffff81495a0e>] ? __do_page_fault+0x2fe/0x500 kernel: [ 355.198373] [<ffffffff8111abea>] ? __alloc_pages_nodemask+0x14a/0xa30 kernel: [ 355.198376] [<ffffffff81127fcb>] ? shmem_find_get_pages_and_swap.part.18+0xcb/0x120 [some part missing...]
Greetings, Maxi