(Arch Linux) Illegal instruction (core dumped) in 24.04

Installing from the Qt6 version of Anki 24.04 from https://github.com/ankitects/anki/releases/download/24.04/anki-24.04-linux-qt6.tar.zst. The installation went well after running anki in the command line from using the instructions in official Anki website, until it outputted a text that says Illegal instruction (core dumped)

I’ve installed the necessary component, which is Qt6. And it should expected to go well as I installed a previous version before 24.04.

I suspected that Anki is not supporting the architecture of my processor “Intel N550” because it’s missing something from the CPU architecture that requires Anki to run from the requirements.txt. Also suspected here from another repo with the same issue: https://github.com/oobabooga/text-generation-webui/issues/3731

Dump from strace

[arch@SAMSUNG-NC110 anki-24.04-linux-qt6]$ strace anki
execve("/usr/local/bin/anki", ["anki"], 0x7ffe73c63df0 /* 41 vars */) = 0
brk(NULL)                               = 0x566f2ddd0000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=100731, ...}) = 0
mmap(NULL, 100731, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7735543af000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14280, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7735543ad000
mmap(NULL, 16400, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7735543a8000
mmap(0x7735543a9000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7735543a9000
mmap(0x7735543aa000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7735543aa000
mmap(0x7735543ab000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7735543ab000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=960856, ...}) = 0
mmap(NULL, 962856, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7735542bc000
mmap(0x7735542ca000, 524288, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe000) = 0x7735542ca000
mmap(0x77355434a000, 376832, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8e000) = 0x77355434a000
mmap(0x7735543a6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe9000) = 0x7735543a6000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14288, ...}) = 0
mmap(NULL, 16400, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7735542b7000
mmap(0x7735542b8000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7735542b8000
mmap(0x7735542b9000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7735542b9000
mmap(0x7735542ba000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7735542ba000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14352, ...}) = 0
mmap(NULL, 16400, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7735542b2000
mmap(0x7735542b3000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7735542b3000
mmap(0x7735542b4000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7735542b4000
mmap(0x7735542b5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7735542b5000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libutil.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14280, ...}) = 0
mmap(NULL, 16400, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7735542ad000
mmap(0x7735542ae000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7735542ae000
mmap(0x7735542af000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7735542af000
mmap(0x7735542b0000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7735542b0000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=728120, ...}) = 0
mmap(NULL, 147912, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x773554288000
mmap(0x77355428c000, 110592, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x77355428c000
mmap(0x7735542a7000, 16384, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f000) = 0x7735542a7000
mmap(0x7735542ab000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0x7735542ab000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220^\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
fstat(3, {st_mode=S_IFREG|0755, st_size=1948952, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x773554286000
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
mmap(NULL, 1973104, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7735540a4000
mmap(0x7735540c8000, 1421312, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7735540c8000
mmap(0x773554223000, 348160, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17f000) = 0x773554223000
mmap(0x773554278000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d3000) = 0x773554278000
mmap(0x77355427e000, 31600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x77355427e000
close(3)                                = 0
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7735540a1000
arch_prctl(ARCH_SET_FS, 0x7735540a2240) = 0
set_tid_address(0x7735540a2510)         = 3422
set_robust_list(0x7735540a2520, 24)     = 0
rseq(0x7735540a2b60, 0x20, 0, 0x53053053) = 0
mprotect(0x773554278000, 16384, PROT_READ) = 0
mprotect(0x7735542ab000, 4096, PROT_READ) = 0
mprotect(0x7735542b0000, 4096, PROT_READ) = 0
mprotect(0x7735542b5000, 4096, PROT_READ) = 0
mprotect(0x7735542ba000, 4096, PROT_READ) = 0
mprotect(0x7735543a6000, 4096, PROT_READ) = 0
mprotect(0x7735543ab000, 4096, PROT_READ) = 0
mprotect(0x566f2bb71000, 815104, PROT_READ) = 0
mprotect(0x7735543fb000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
munmap(0x7735543af000, 100731)          = 0
readlink("/etc/_rjem_malloc.conf", 0x7ffeb9cec410, 4096) = -1 ENOENT (No such file or directory)
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7735543c7000
madvise(0x7735543c7000, 4096, MADV_DONTNEED) = 0
munmap(0x7735543c7000, 4096)            = 0
open("/proc/sys/vm/overcommit_memory", O_RDONLY|O_CLOEXEC) = 3
read(3, "0", 1)                         = 1
close(3)                                = 0
open("/sys/kernel/mm/transparent_hugepage/enabled", O_RDONLY) = 3
read(3, "[always] madvise never\n", 24) = 23
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7735543c7000
madvise(0x7735543c7000, 4096, MADV_FREE) = 0
munmap(0x7735543c7000, 4096)            = 0
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x773553e00000
brk(NULL)                               = 0x566f2ddd0000
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x773553c00000
mmap(NULL, 4194304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x773553800000
sched_getaffinity(0, 128, [0 1 2 3])    = 8
poll([{fd=0, events=0}, {fd=1, events=0}, {fd=2, events=0}], 3, 0) = 0 (Timeout)
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7735540e0770}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGSEGV, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x566f29031fe0, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_SIGINFO, sa_restorer=0x7735540e0770}, NULL, 8) = 0
rt_sigaction(SIGBUS, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0x566f29031fe0, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_SIGINFO, sa_restorer=0x7735540e0770}, NULL, 8) = 0
sigaltstack(NULL, {ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}) = 0
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7735543c5000
mprotect(0x7735543c5000, 4096, PROT_NONE) = 0
sigaltstack({ss_sp=0x7735543c6000, ss_flags=0, ss_size=8192}, NULL) = 0
getrandom("\x26\xa6\xe0\xc4\x92\xfb\xe0\x32", 8, GRND_NONBLOCK) = 8
brk(0x566f2ddf1000)                     = 0x566f2ddf1000
openat(AT_FDCWD, "/proc/self/maps", O_RDONLY|O_CLOEXEC) = 3
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(3, "566f28c18000-566f28db2000 r--p 0"..., 1024) = 1024
read(3, "c000 r--p 001d3000 00:17 4003   "..., 1024) = 1024
read(3, "039                       /usr/l"..., 1024) = 1024
read(3, "0 rw-p 00003000 00:17 4030      "..., 1024) = 1024
read(3, " rw-p 00000000 00:00 0 \n7735543c"..., 1024) = 962
close(3)                                = 0
sched_getaffinity(3422, 32, [0 1 2 3])  = 8
write(1, "Anki starting...\n", 17Anki starting...
)      = 17
readlink("/proc/self/exe", "/usr/local/share/anki/anki", 256) = 26
readlink("/usr", 0x7ffeb9cecfb0, 1023)  = -1 EINVAL (Invalid argument)
readlink("/usr/local", 0x7ffeb9cecfb0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/local/share", 0x7ffeb9cecfb0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/local/share/anki", 0x7ffeb9cecfb0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/local/share/anki/anki", 0x7ffeb9cecfb0, 1023) = -1 EINVAL (Invalid argument)
openat(AT_FDCWD, "/etc/os-release", O_RDONLY|O_CLOEXEC) = 3
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=382, ...}) = 0
read(3, "NAME=\"Arch Linux\"\nPRETTY_NAME=\"A"..., 382) = 382
read(3, "", 32)                         = 0
close(3)                                = 0
statx(AT_FDCWD, "/usr/local/etc/terminfo", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffeb9ced150) = -1 ENOENT (No such file or directory)
statx(0, NULL, AT_STATX_SYNC_AS_STAT, STATX_ALL, NULL) = -1 EFAULT (Bad address)
statx(AT_FDCWD, "/usr/local/lib/terminfo", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffeb9ced150) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/local/share/terminfo", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffeb9ced150) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/etc/terminfo", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffeb9ced150) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib/terminfo", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0755, stx_size=84, ...}) = 0
statx(AT_FDCWD, "/lib/terminfo", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0755, stx_size=84, ...}) = 0
statx(AT_FDCWD, "/usr/share/terminfo", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0755, stx_size=84, ...}) = 0
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=4407424, ...}) = 0
mmap(NULL, 4407424, PROT_READ, MAP_PRIVATE, 3, 0) = 0x773553200000
close(3)                                = 0
--- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPN, si_addr=0x566f291489d9} ---
+++ killed by SIGILL (core dumped) +++
Illegal instruction (core dumped)

Core dump:

Message: Process 18383 (anki) of user 1000 dumped core.
                
                Stack trace of thread 18383:
                #0  0x00005737f9c839d9 _Py_GetEnv (anki + 0x5309d9)
                #1  0x00005737f9c84688 _Py_PreInitializeFromPyArgv (anki + 0x531688)
                #2  0x00005737f993256b Py_PreInitialize (anki + 0x1df56b)
                #3  0x00005737f9a91aa0 _ZN4anki4main17hd40ef0a747d3c49eE (anki + 0x33eaa0)
                #4  0x00005737f9a8d183 _ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17hd33ae59645
c03e91E (anki + 0x33a183)
                #5  0x00005737f9a8d7ab _ZN3std2rt10lang_start17h6c85bc47b73a271dE (anki + 0x33a7ab)
                #6  0x000073507d1dfcd0 n/a (libc.so.6 + 0x25cd0)
                #7  0x000073507d1dfd8a __libc_start_main (libc.so.6 + 0x25d8a)
                #8  0x00005737f9a8d0ba _start (anki + 0x33a0ba)
                ELF object binary architecture: AMD x86-64

The binary builds require a CPU with certain instructions like SSE. Your chip is a low powered one from ~14 years ago, so you’ll either need to switch to an older Anki version (try .49 or .35), or build Anki yourself.

1 Like

As, expected, it’s the set instructions that is put into this CPU. At the moment, using 23.12.1

Man, that’s unfortunate. This laptop has been carrying me since 2008 I was a kid and I am now a grown person, and still using this to study with things. I think it’s getting old now too, like people.

Thank you for responding either way, and your hard work too at Anki.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.