2016-11-03 7 views
3

カーネルによって正しく初期化されるZigbee RF4CE用のデバイスドライバがあります。しかし、私のユーザスペースアプリケーションがデバイスを開こうとしているときにエラーが発生する: エラー:デバイスを開くことができませんでした:そのようなファイルまたはディレクトリがありませんLinux - デバイスノード名の末尾に '?'が付きます。これは何を意味するのでしょうか?

/devフォルダにlsを実行すると、疑問符 '?'

私はこのノードが作成されたスクリプトファイル内のデバイス名に特別な文字が明示的に追加されていない場合、その理由を知りたいと思います。ここで

は、スクリプトの一部です:

DEVICE_INPUT_MAJOR=`grep device-input /proc/devices | sed 's/^ *\([0-9]*\) .*$/\1/'` 

if [ "$EUID" != "0" ] || [ "$1" == "-t" ] ; then 
    if [ "$EUID" != "0" ] ; then 
     echo 
     echo "You need to be root to create the nodes." 
     echo 
    fi 
    echo "Here is what would be done:" 
    ECHO=echo 
else 
    ECHO= 
fi 

function create_if() 
{ 
    name=$1 
    major=$2 
    minor=$3 

    #echo $name $major $minor 
    if [ "$major" != "" ] ; then 

     $ECHO mknod $name c $major $minor 

     echo -e $major "\t" $minor "\t" $name 

    else 
     echo -e "--- \t\t" $name 
    fi 
} 

create_if $BASE_DIR/$MY_DEVICE_DIR/$MY_DEVICE "$DEVICE_INPUT_MAJOR" 0 

どのように私はこの問題を解決するのですか?

+0

スクリプトを表示したいですか? – bogl

+0

スクリプトの部分が追加されました。 – Sudesh

答えて

1

考えられる原因の1つは、スクリプトに印刷できない文字です。これは、スクリプトがWindowsを使用して(またはWindowsからコピーされて)実行され、Unix/Linux環境で実行される場合によく発生します。

印刷できない文字を表示するエディタでスクリプトを確認できます。

+1

はい、Notepad ++でファイルを編集すると印刷できない文字が表示されます。それは原因と思われる不要なCRでした。削除し、問題を解決しました。ありがとう。 – Sudesh

関連する問題