Score:1

undefined symbol: PaAlsa_EnableRealtimeScheduling prevents mixx application from opening

bd flag

In this machine, we have Ubuntu 20.04 (i suppose). After a few hardware configurations (some cables) (i don't really know about to explain), the mixxx software doesn't open.

So, it shows up in the Activity bar but then it doesn't open.
I tried to kill the process with killall command.
I tried to restart the machine.
I tried to reinstall the Mixxx software from the ubuntu software center, and from the console with the apt-get command.

Any advice would be useful.

I don't have physical access to the machine right now but I can manage it from my house with AnyDesk software.

(P.S.: I am not familiar with ubuntu software almost at all, so please give explanation answers :) )

enter image description here

Edit:

epalxeis@epalxeis-To-be-filled-by-O-E-M:~$ mixxx
mixxx: symbol lookup error: mixxx: undefined symbol: PaAlsa_EnableRealtimeScheduling
epalxeis@epalxeis-To-be-filled-by-O-E-M:~$ 

I tried to install it from source (link). Same error.

epalxeis@epalxeis-To-be-filled-by-O-E-M:~/Desktop/mixxx-2.3/build$ cmake --build .
Scanning dependencies of target benchmark
[  0%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/benchmark.cc.o
[  0%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/benchmark_api_internal.cc.o
[  0%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/benchmark_name.cc.o
[  0%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o
[  1%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/benchmark_runner.cc.o
[  1%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/colorprint.cc.o
[  1%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/commandlineflags.cc.o
[  1%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/complexity.cc.o
[  1%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/console_reporter.cc.o
[  1%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/counter.cc.o
[  1%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/csv_reporter.cc.o
[  1%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/json_reporter.cc.o
[  2%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/reporter.cc.o
[  2%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/sleep.cc.o
[  2%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/statistics.cc.o
[  2%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/string_util.cc.o
[  2%] Building CXX object lib/benchmark/src/CMakeFiles/benchmark.dir/sysinfo.cc.o
...
...
...
[ 99%] Linking CXX executable mixxx-test
/usr/bin/ld: libmixxx-lib.a(sounddeviceportaudio.cpp.o): in function `SoundDevicePortAudio::open(bool, int)':
/home/epalxeis/Desktop/mixxx-2.3/src/soundio/sounddeviceportaudio.cpp:340: undefined reference to `PaAlsa_EnableRealtimeScheduling'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/mixxx-test.dir/build.make:1659: mixxx-test] Error 1
make[1]: *** [CMakeFiles/Makefile2:1155: CMakeFiles/mixxx-test.dir/all] Error 2
make: *** [Makefile:163: all] Error 2

bd flag
@user535733 did it as you tell.
user535733 avatar
cn flag
Now you are making progress. Looks like some kind of alsa-related problem, not specifically mixx. I have added the 'alsa' and '20.04' tags to your question, and made your title more specific. These changes make it more likely that alsa gurus will see your question.
bd flag
@user535733 I have added some additional inforation.
Score:1
bd flag

I have just comment(//) lines339 and 340 of file /home/epalxeis/Desktop/mixxx-2.3/src/soundio/sounddeviceportaudio.cpp changing this:

#ifdef __LINUX__
    if (m_deviceTypeId == paALSA) {
        qInfo() << "Enabling ALSA real-time scheduling";
        PaAlsa_EnableRealtimeScheduling(pStream, 1);
    }
#endif

to this:

#ifdef __LINUX__
    if (m_deviceTypeId == paALSA) {
    //    qInfo() << "Enabling ALSA real-time scheduling";
    //    PaAlsa_EnableRealtimeScheduling(pStream, 1);
    }
#endif

and then I ran:

sudo cmake --build build --target install --parallel `nproc`

and now mixxx opens.

I don't know what side effects this custom install may do, so feel free to comment.

terdon avatar
cn flag
Hmm... Sounds like you should file a bug with mixxx. The best way would probably be to report this on their github page where you got the source. Also, could you please edit your answer and include the specific lines you commented out? Line numbers are likely to change with any minor change to the project, so having the actual code will be helpful in case anyone else faces the same issue. Oh, and "epalxeis", λολ :)
terdon avatar
cn flag
I added what I think you changed, please check and correct if needed.
bd flag
@tendon: also check lines 23-26 of the same file. There has `LINUX` instead of `__LINUX__`
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.