I want to install IDA Pro for Linux(or IDA Free has the same problem) on my ARM64 Ubuntu 22.04 Virtual Machine, which utilizes Rosetta 2 for compatibility.
After spending considerable time resolving environmental dependency issues and installing numerous packages, IDA Pro was able to run properly.
sudo apt-get update
sudo apt-get install binutils:amd64 libgl1-mesa-glx:amd64 libglib2.0-0:amd64 libsecret-1-0:amd64
sudo apt-get install libfontconfig1:amd64 libxcb-icccm4:amd64 libxcb-image0:amd64 libxcb-keysyms1:amd64 libxcb-render-util0:amd64 libxcb-render0:amd64 libxcb-shape0:amd64 libxcb-xinerama0:amd64 libxcb-xkb1:amd64 libsm6:amd64 libice6:amd64 libxkbcommon-x11-0:amd64 libxkbcommon0:amd64 libdbus-1-3:amd64
However, upon restarting the virtual machine, I encountered a shared libraries loading error again, with the characters appearing as garbled text.
$ ./idafree-8.4/ida64
./idafree-8.4/ida64: error while loading shared libraries: ��: cannot open shared object file: No such file or directory
The ldd output is as followed. Seemed that nothing dynamic library missed.
$ ldd-amd64 ./idafree-8.4/ida64
libQt5PrintSupport.so.5 => /home/parallels/./idafree-8.4/libQt5PrintSupport.so.5 (0x00007ffffea00000)
libQt5Svg.so.5 => /home/parallels/./idafree-8.4/libQt5Svg.so.5 (0x00007ffffe600000)
libQt5Widgets.so.5 => /home/parallels/./idafree-8.4/libQt5Widgets.so.5 (0x00007ffffdc00000)
libQt5Gui.so.5 => /home/parallels/./idafree-8.4/libQt5Gui.so.5 (0x00007ffffd200000)
libQt5Core.so.5 => /home/parallels/./idafree-8.4/libQt5Core.so.5 (0x00007ffffc800000)
libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007fffff6e5000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fffff6de000)
libida64.so => /home/parallels/./idafree-8.4/libida64.so (0x00007ffffc000000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007ffffbdd4000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fffff5f7000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fffff5d7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ffffbbab000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ffffede2000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ffffeddd000)
libgthread-2.0.so.0 => /lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007ffffedd8000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007ffffec9e000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffffff80000)
libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007ffffe948000)
libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007ffffec68000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ffffe943000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007ffffe8cd000)
libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007ffffe4c0000)
libxcb.so.1 => /home/parallels/./idafree-8.4/libxcb.so.1 (0x00007ffffb800000)
libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007ffffe8c7000)
IDA Pro: idapronl_hexarm64l_hexarml_hexmips64l_hexmipsl_hexx64l_hexx86l_230608_xxx.run
or
IDA Free: v8.3 (from https://hex-rays.com/ida-free/)
VM:
Ubuntu 22.04.4
Arch: aarch64
Kernel: Linux version 5.15.0-76-generic (buildd@bos02-arm64-019) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #83-Ubuntu SMP Thu Jun 15 19:21:56 UTC 2023
Memory Size: 2G
Host:
Model: Apple M3 Pro
Memory: 18GB
OS: MacOS Sonoma 14.3.1 (23D60)
VirtualMachine Software: Parallels Desktop 19 for Mac (19.0.0)
I speculated that there might be a conflict between the installed libraries and the system's libraries. Therefore, I tried installing each library and then restarting the virtual machine to narrow down the search scope. After installing libc6
and restarting, the error did not occur for IDA, but it indicated that libGL.so.1
was missing. Upon installing the libgl1-mesa-glx
package and running IDA again, the previous error reappeared.
The hex code of error:
parallels@ubuntu-linux-22-04-02-desktop:~$ ./idapro-8.3/ida 2>&1 | hexdump -C
00000000 2e 2f 69 64 61 70 72 6f 2d 38 2e 33 2f 69 64 61 |./idapro-8.3/ida|
00000010 3a 20 65 72 72 6f 72 20 77 68 69 6c 65 20 6c 6f |: error while lo|
00000020 61 64 69 6e 67 20 73 68 61 72 65 64 20 6c 69 62 |ading shared lib|
00000030 72 61 72 69 65 73 3a 20 01 91 99 3a 20 63 61 6e |raries: ...: can|
00000040 6e 6f 74 20 6f 70 65 6e 20 73 68 61 72 65 64 20 |not open shared |
00000050 6f 62 6a 65 63 74 20 66 69 6c 65 3a 20 4e 6f 20 |object file: No |
00000060 73 75 63 68 20 66 69 6c 65 20 6f 72 20 64 69 72 |such file or dir|
00000070 65 63 74 6f 72 79 0a |ectory.|
00000077
I try run the TUI version of IDA -- idat
. The idat
works well.
So I guess the error may caused by libGL.so.1
.
Running IDA Pro successfully.
The “culprit” is actually the Rosetta daemon, which is probably used to speed up Rosetta:
For Parallels, the daemon is /media/psf/RosettaLinux/rosettad
It creates cache entries in /var/cache/prlrosettad
Killing the daemon is enough to allow IDA to start. Not ideal, but it's a good workaround until Apple(?) fixes the issue.
sudo pkill rosettad