2016-08-13 37 views
1

新しい環境をセットアップしました。これはChromebook(Asus flip C100P-ARMベース)にUbuntu 14.04(信頼できる)を含むchrootです。 gccとg ++がインストールされています。私は、単純な "こんにちは、世界" プログラム(test.cの)を作成し、それを経由してコンパイル:gccを使って実行可能なビルドを実行できません

gcc -o t.exe test.c 

私は./t1.exe実行するために行くとき、私は以下の取得:

bash: ./t.exe: Permission denied 

rootとして実行していて、./t.exeのアクセス権が広く開いていることに注意してください(chmod 777、ls -lで確認)。

だから私は間違っているかを決定しようとした - ここで私が試したものです:

not a dynamic executable 

./t.exe

./t.exe: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=82a6c6227e0f7171a68c71a74c6e6396e37e6675, not stripped 

%のLDD ./t.exe

%ファイルを%readelf -d ./t.exe | grepが

0x00000001 (NEEDED)      Shared library: [libc.so.6] 

%のdpkg -lのlibc6

Desired=Unknown/Install/Remove/Purge/Hold 
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend 
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) 
||/ Name   Version  Architecture Description 
+++-==============-============-============-================================= 
ii libc6:armhf 2.19-0ubuntu armhf  Embedded GNU C Library: Shared li 

%猫/etc/ld.so.conf.d/*

# Multiarch support 
/lib/arm-linux-gnueabihf 
/usr/lib/arm-linux-gnueabihf 
/usr/lib/arm-linux-gnueabihf/mesa-egl 
/usr/lib/arm-linux-gnueabihf/mesa 
/usr/lib/arm-linux-gnueabihf/libfakeroot 
# libc default configuration 
/usr/local/lib 

%のLS -l libc.so.が必要6

lrwxrwxrwx 1 root root 14 Aug 12 19:37 libc.so.6 -> /lib/libc.so.6 

%のLS -l /usr/local/lib/libc.so.6

lrwxrwxrwx 1 root root 14 Aug 12 18:21 /usr/local/lib/libc.so.6 -> /lib/libc.so.6 

%のLS -l /usr/lib/libc.so.6

lrwxrwxrwx 1 root root 14 Aug 12 19:37 /usr/lib/libc.so.6 -> /lib/libc.so.6 

%のLS -l /lib/libc.so.6

lrwxrwxrwx 1 root root 34 Aug 12 18:11 /lib/libc.so.6 -> /lib/arm-linux-gnueabihf/libc.so.6 

% LSと-l /lib/arm-linux-gnueabihf/libc.so.6

lrwxrwxrwx 1 root root 12 May 26 07:55 /lib/arm-linux-gnueabihf/libc.so.6 -> libc-2.19.so 

%のls -l /lib/arm-linux-gnueabihf/libc-2.19.so

-rwxr-xr-x 1 root root 902876 May 26 07:56 /lib/arm-linux-gnueabihf/libc-2.19.so 

% objdumpの-a /lib/arm-linux-gnueabihf/libc-2.19.so

/lib/arm-linux-gnueabihf/libc-2.19.so:  file format elf32-littlearm 

% /lib/arm-linux-gnueabihf/libc-2.19.so objdump -a ./t.exe

./t.exe:  file format elf32-littlearm 

./t。exeファイル

%のuname -aを

Linux localhost 3.14.0 #1 SMP PREEMPT Tue Aug 2 21:07:06 PDT 2016 armv7l armv7l armv7l GNU/Linux 

私はborkedツールチェーンを持っていると思われるが、私は本当にこの時点で困惑。
誰でもここで何が起こっているのか、問題の発見に進む方法について考えていますか?

+0

すごく驚くべきcmdsのリストをチェックしてこのQを保存しています...しかし、 'printf"#!/ bin/bash \ necho Hello Scripting!\ n "> ./myTest.sh; chmod 755 myTest.sh; 。/ myTest.sh'。 (私は ';'や ''などを見逃しているかもしれませんが、うまくいけばあなたはそのアイデアを得るでしょう)。これが失敗した場合、 '。/' dirまたはそのディレクトリの「上の」ディレクトリにアクセス権に間違いがあります。いくつかのアイデアについては、http://stackoverflow.com/a/26718467/620097を参照してください。がんばろう。 – shellter

+1

'-march = i686'のようなものでコンパイルしようとしましたか? Chromebook用のバイナリはUbuntu向けではないようです(Chromebookに実行ファイルをコピーしてください)。バイブレーションが実行されていることを確認します。 – MondKin

+0

@Mondkin - アーキテクチャが間違っています。これはARM上にあります。私が使用しているARMのオプションを指定したとしても、違いはありません。私はあなたのコメントを理解していません - 「Chromebookでは生成され、Ubuntuでは生成されません」。私はクロスツールセットを使用していません。 ChromebookでUbuntuをcroutonで実行していて、Ubuntuを実行しているchrootの内側からgccを実行します。 – youngmj

答えて

1

私はもともとリムーバブルSDカードのディレクトリを使用していたことが判明し、そのカードを使用して暗号化されたchrootも格納していました。 (推奨されていませんBTW - 非常に遅いです。)したがって、このディレクトリは明示的に共有を設定することなく、ChromeOSとUbuntuによって表示され、到達可能でした。

私は答えをオンラインで見て、次の点を偶然見つけました:https://ubuntuforums.org/showthread.php?t=1956802。 私の/ etc/fstabファイルは実質的に空で、 "#UNCONFIGURED FSTAB FOR BASE SYSTEM"のみを含んでいました。

'mount'の出力を見ると、SDカードのファイルシステムは 'noexec'でマウントされているようです。私はこれが私の問題の原因だと思っています。代わりに、このファイルシステムにfstabエントリを追加して 'exec'フラグを付けることができると思います。すべてになるはずです。

しかし、私はこれをしないことにしました。結局のところ、ファイルの実行を許可するために暗号化されたファイルシステム(SDカード上のコンテナファイル)内にアイテムが必要です。直接実行可能なSDカードのファイルシステムでは、少し安全性が低くなる可能性があります。そのため、開発作業に使用するディレクトリツリーを自分のホームディレクトリ(Ubuntuでchrootで使用されている暗号化されたファイルシステム内にあり、SDカードの上に置かれていることがわかります) SDカードのパーティション自体のファイルシステムには直接アクセスできません)。私はchroot環境とChromeOS環境の両方からファイルに直接アクセスするのをやめますが、実際にこれが必要な場合は、おそらく別のデバイス/パーティション(USBフラッシュドライブ)に共有を設定することができます。

関連する問題