環境:CentOS 7.1 64ビット、Intel i7-4771 Gnome 3シェルの使用
Aardvark Control Center(Total Phase)をダウンロードしてcontrolctr bashファイルを実行しようとしましたが、「アプリケーションを実行できません」というエラーメッセージが表示されます。問題がTotal Phaseベンダーにあるかどうかはわかりませんが、Linuxに問題があるようです。
オンラインで検索して探すこのリンクトラブルシューティングに使用されます。フォーラムの投稿が役に立ちます。 Aardvark Control Centerは32ビットアプリケーションであり、CentOS 7の64ビットi7バージョンで動作します。 "file controlctr.bin"コマンドは標準ELF形式を表示します。フォーラムの投稿からコピーして貼り付けましたが、実際の行は同じではなくても似ています。
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
「$ldd controlctr.bin」は、フォーラムの投稿と非常によく似た行を示しています。
linux-gate.so.1 => (0xffffe000)
libdl.so.2 => /lib/libdl.so.2 (0xb76fe000)
libpthread.so.0 => /lib/i686/libpthread.so.0 (0xb76e4000)
libc.so.6 => /lib/i686/libc.so.6 (0xb7566000)
/lib/ld-linux.so.2 (0xb771f000)
strace -o controlctr.binを実行しました。
ログには、Linuxディレクトリにtlsサブディレクトリがないため、問題があることが示されます。特に、ローダーはもちろん、ZIPファイルにはないかなり多くのSSE2ライブラリを見つけようとします。すべてのSSE2ライブラリ呼び出しのログは、「該当するファイルまたはディレクトリなし」エラーメッセージでいっぱいであるため、最終的にエラーメッセージが表示されます。これはログファイルの関連部分です。
readlink("/proc/self/exe", "/home/jmr/Downloads/control-ctr-"..., 1023) = 76
execve("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/controlctr.bin", ["controlctr.bin"], [/* 47 vars */]) = 0
brk(0) = 0x9214000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff76ed000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/tls/i686/sse2/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/tls/i686/sse2", 0xffd3eb30) = -1 ENOENT (No such file or directory)
open("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/tls/i686/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/tls/i686", 0xffd3eb30) = -1 ENOENT (No such file or directory)
open("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/tls/sse2/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/tls/sse2", 0xffd3eb30) = -1 ENOENT (No such file or directory)
open("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/tls/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/tls", 0xffd3eb30) = -1 ENOENT (No such file or directory)
open("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/i686/sse2/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/i686/sse2", 0xffd3eb30) = -1 ENOENT (No such file or directory)
open("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/i686/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/i686", 0xffd3eb30) = -1 ENOENT (No such file or directory)
open("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/sse2/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/sse2", 0xffd3eb30) = -1 ENOENT (No such file or directory)
open("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/jmr/Downloads/control-ctr-serial-linux-i686-v3.83/linux", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
オンラインでこのライブラリを検索し、この問題の助けを受けましたが、何も見つかりませんでした。私はSSE2がIntel i7 CPUを含む最新のプロセッサの機能であることを知っています。これがおそらくcontrolctr.binファイルがこれらのライブラリを見つける理由です。
私が見つけたこのSSE2の問題U&Lフォーラムで。
SSE2に関する質問への回答です。
[root@jmr-server1 linux]# cat /proc/cpuinfo | grep flags | tail -n 1
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
[root@jmr-server1 linux]# uname -a
Linux jmr-server1 3.10.0-229.11.1.el7.x86_64 #1 SMP Thu Aug 6 01:06:18 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@jmr-server1 linux]# gcc --version
gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
どんなアイデアがありますか?
答え1
Ubuntu 16.04 64ビットでも同様の問題が発生しました。私はあなたのs-traceメソッドに従ってi386ライブラリを1つずつインストールし始め、アプリケーションを再試行しました。いくつかのライブラリをインストールした後、GUIが起動しました。私のデバイスを検出しましたが、権限がなかったので[udevルールがインストールされていません] rootcontrolctr.bin
として実行しました。今大丈夫!
i386バージョンのライブラリをインストールするには、ライブラリ名の後にi386を追加します。
たとえば、私は[controlctr.binでstraceの実行が終わった後にインポートされた]以下をインストールする必要がありました。
sudo apt-get install libgtk2.0-0:i386
sudo apt-get install libpango-1.0-0:i386
sudo apt-get install libpangox-1.0-0:i386
sudo apt-get install libpangoxft-1.0-0:i386