【发布时间】:2023-03-23 08:40:02
【问题描述】:
我有一个由内核正确初始化的 Zigbee RF4CE 设备驱动程序。但是,当我的用户空间应用程序想要打开设备时,我收到错误消息: 错误:打开设备失败:没有这样的文件或目录
在 /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
我该如何解决这个问题?
【问题讨论】:
-
也许你想展示脚本?
-
添加的部分脚本。
标签: linux-device-driver device-node