Beagleboard C3 with Narcissus Angstrom distro installed. I don't have jack from the distro installed.
If I build jackmp with "./waf configure --alsa", "./waf build", "./waf install", when it runs I get undefined symbol errors as there are no symbols defined.
root@beagleboard:/usr/src/jackmp# jackd -m -Phw:0 -Chw:1 -r48000 -n3&
root@beagleboard:/usr/src/jackmp# jackdmp 1.9.7
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2010 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
jackd: symbol lookup error: jackd: undefined symbol: jackctl_server_create
None of the following symbols are defined.
root@beagleboard:/usr/src/jackmp# nm /usr/local/bin/jackd|grep U
U _Z27jackctl_parse_driver_paramsP14jackctl_driveriPPc
U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
U __aeabi_atexit@@GLIBC_2.4
U __aeabi_unwind_cpp_pr0@@GCC_3.5
U __libc_start_main@@GLIBC_2.4
U abort@@GLIBC_2.4
U fprintf@@GLIBC_2.4
U fwrite@@GLIBC_2.4
U getopt_long@@GLIBC_2.4
U jack_set_error_function
U jackctl_driver_get_name
U jackctl_driver_get_parameters
U jackctl_parameter_get_name
U jackctl_parameter_set_value
U jackctl_server_add_slave
U jackctl_server_create
U jackctl_server_destroy
U jackctl_server_get_drivers_list
U jackctl_server_get_parameters
U jackctl_server_start
U jackctl_server_stop
U jackctl_setup_signals
U jackctl_wait_signals
U malloc@@GLIBC_2.4
U memcpy@@GLIBC_2.4
U memset@@GLIBC_2.4
U printf@@GLIBC_2.4
U silent_jack_error_callback
U strcmp@@GLIBC_2.4
U strncpy@@GLIBC_2.4
U strtol@@GLIBC_2.4
U tolower@@GLIBC_2.4
beagleboard:/usr/src/jackmp# CC="gcc -E" CXX="g++ -E" ./waf configure --alsa
Linux detected
Checking for compiler version : ok 4.3.3
Checking for program cpp : ok /usr/bin/cpp
Checking for program ar : ok /usr/bin/ar
Checking for program ranlib : ok /usr/bin/ranlib
Checking for g++ : ok
Checking for compiler version : ok 4.3.3
Checking for program ar : ok /usr/bin/ar
Checking for program ranlib : ok /usr/bin/ranlib
Checking for gcc : ok
Checking for header samplerate.h : not found
Checking for alsa >= 1.0.18 : ok
Checking for libfreebob >= 1.0.0 : Package "libfreebob (>= 1.0.0)" could not be found or the found version is too old.
Checking for libffado >= 1.999.17 : Package "libffado (>= 1.999.17)" could not be found or the found version is too old.
Checking for header sndfile.h : not found
Checking for header samplerate.h : not found
Checking for celt >= 0.5.0 : Package "celt (>= 0.5.0)" could not be found or the found version is too old.
Checking for header ncurses.h : not found
Checking for library readline : not found
Checking for celt >= 0.7.0 : Package "celt (>= 0.7.0)" could not be found or the found version is too old.
Checking for celt >= 0.5.0 : Package "celt (>= 0.5.0)" could not be found or the found version is too old.
Are you trying to mix C and C++ implementations? From my experience
with jack 1.x many symbols come from the libjack shared library rather
than from jackd itself because in some cases clients need to activate
jackd.
Is there a reason that jackd from the ipkg is unsuitable? It works for
me (now that the defaults are patched).
Are you trying to mix C and C++ implementations? From my experience
with jack 1.x many symbols come from the libjack shared library rather
than from jackd itself because in some cases clients need to activate
jackd.
Some of the sources are C++ and some are C
slipstream:/home/lancelot/ftp/JUL10/jackmp # ls linux/alsa
alsa_driver.h alsa_midi_impl.h alsa_rawmidi.c bitset.h generic_hw.c hammerfall.h hdsp.c ice1712.c JackAlsaAdapter.cpp JackAlsaDriver.cpp jslist.h midi_unpack.h usx2y.c
alsa_midi.h alsa_midi_jackmp.cpp alsa_seqmidi.c generic.h hammerfall.c hardware.h hdsp.h ice1712.h JackAlsaAdapter.h JackAlsaDriver.h midi_pack.h .svn usx2y.h
Jack 1.x or at least the packages in the narcissus version lack certain utilities.
# ls /usr/local/bin/jack*
/usr/local/bin/jack_alias /usr/local/bin/jack_cpu /usr/local/bin/jack_disconnect /usr/local/bin/jack_lsp /usr/local/bin/jack_monitor_client /usr/local/bin/jack_samplerate /usr/local/bin/jack_test /usr/local/bin/jack_wait
/usr/local/bin/jack_bufsize /usr/local/bin/jack_cpu_load /usr/local/bin/jack_evmon /usr/local/bin/jack_metro /usr/local/bin/jack_multiple_metro /usr/local/bin/jack_server_control /usr/local/bin/jack_thru /usr/local/bin/jack_zombie
/usr/local/bin/jack_connect /usr/local/bin/jackd /usr/local/bin/jack_freewheel /usr/local/bin/jack_midiseq /usr/local/bin/jack_netsource /usr/local/bin/jack_showtime /usr/local/bin/jack_transport
/usr/local/bin/jack_control /usr/local/bin/jack_delay /usr/local/bin/jack_load /usr/local/bin/jack_midisine /usr/local/bin/jack_rec /usr/local/bin/jack_simple_client /usr/local/bin/jack_unload
Is there a reason that jackd from the ipkg is unsuitable? It works for
me (now that the defaults are patched).
Yes, see above. I at least need jack_connect, jack_lsp, jack_samplerate and jack_load.
Building the same source on the x86_64 platform, I get no errors from jackd.
Regards
Sid.
The ipkg repo gives at least jackd, jack_connect and jack_lsp as these
are the elements I currently use frequently.
I don't have my board with me so I cannot be sure of the others.
I tried the ipk packages from narcissus and they didn't show them.
I've since installed Ubuntu and jackd starts OK, though jack_lsp doesn't list any ports, it just hangs with strace showing the following and I have to terminate it with ^C.
mmap2(NULL, 524288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x402be000
mprotect(0x402be000, 4096, PROT_NONE) = 0
clone(Process 708 attached
child_stack=0x4033cf98, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x4033d4c8, tls=0x4033d920, child_tidptr=0x4033d4c8) = 708
[pid 707] nanosleep({0, 1000000}, NULL) = 0
[pid 707] nanosleep({0, 1000000}, <unfinished ...>
[pid 708] set_robust_list(0x4033d4d0, 0xc) = 0
[pid 708] futex(0x1f51c, FUTEX_WAIT_PRIVATE, 1, NULL <unfinished ...>
[pid 707] <... nanosleep resumed> NULL) = 0
[pid 707] rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0
[pid 707] socket(PF_FILE, SOCK_STREAM, 0) = 3
[pid 707] getuid32() = 0
[pid 707] connect(3, {sa_family=AF_FILE, path="/dev/shm/jack_default_0_0"}, 110^C <unfinished ...>
Process 708 detached
Regards
Sid.
I had to patch the jackd defaults to make capture work on the beagle.
The archive of this (beagleboard) list has my mail that describes the
magic jackd command-line parameters to get capture to work. Linked
below.
http://groups.google.com/group/beagleboard/browse_thread/thread/a634a3986d50f92d/a34125442f5cee80?lnk=gst&q=jackd#a34125442f5cee80
I decided to install Ubuntu on a spare 16G SD, jackmp builds and installs, jackd runs.
root@beagleboard:~# jack_lsp
^C
root@beagleboard:~# ps fax|grep jack
637 ttyS2 RLl 1:08 \_ jackd -m -r -dalsa -Phw:0 -Chw:1 -r48000 -p1024 -s -n3
642 ttyS2 S+ 0:00 \_ grep --color=auto jack
root@beagleboard:~# jack_lsp
^C
jack_lsp just hangs there until ^C.
aplay works for me on Angstrom via the LINE OUT jack to headphones. I
don't use pulseaudio. I run without a screen so everything I do is via
ssh command line.
I had to run alsamixer and turn up the gain on a few DAC elements.
Forgotten which ones, but I remember it was pretty simple to find
which ones were effective.
I have not been able to get capture gain to work, but its default
levels are OK for my purposes.
alsamixer settings
AVADC HiFi/hig or Voice hi
Carkit 100<>100
Codec Option1 or Option 2
DAC Voic 100
DAC1 Ana 100 <> 100
DAC1 Dig 100 <> 100
DAC2 Ana 100 <> 100
DAC2 Dig 100 <> 100
Earpiece 100
aplay jet.wav >/dev/dsp no sound.
I'll try the Angstrom disto later.
Regards
Sid.