From: Maximilian E. <ma...@da...> - 2014-02-02 00:08:37
|
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): > 1. $ git clone https://github.com/takaswie/snd-firewire-improve.git > 2. $ 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): > 1. $ modprobe -r snd-bebob snd-fireworks snd-firewire-lib (superuser) > 2. $ dkms remove ans-firewire/3.11 --all (superuser) > 3. $ rm /usr/src/alsa-firewire-3.11 (superuser) > 4. $ rm snd-firewire-improve > > How to install (Manual): > 1. $ git clone https://github.com/takaswie/snd-firewire-improve.git > 2. $ cd snd-firewire-improve > 3. $ 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) > 1. 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-t...@sa... > > ---------------------------------------------------------------------------- > -- 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.clktrk > _______________________________________________ > FFADO-devel mailing list > FFA...@li... > 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 |