Ошибка mknod при попытке сделать файл драйвера устройства с оболочкой
Мой код
#!/bin/sh
major=$(awk '$2=="module_dev" {print $1}' /proc/devices)
echo $major
mknod /dev/module_dev c $major 0
Я практикую драйверы символьных устройств, и это один из примеров. Приведенный выше код должен создать файл драйвера устройства в /dev/, но есть ошибка, которая говорит
mknod: missing operand after '0'(it could be wrong because it's just a translation)
for more information type 'mknod --help'
Это сообщение было показано, когда я пытался создать файл драйвера устройства (sh ***.h
Я понятия не имею, в чем проблема. (insmod
уже сделано)
1 ответ
Наиболее вероятной причиной этой ошибки является то, что $major
не имеет значения. То есть, $major
пусто
У вас там есть эхо: что оно показывает? Если вы ничего не видите, вы можете улучшить его, чтобы ничего не показывать просветляюще;
echo "major='$major'"
который будет производить что-то вроде
major='213'
если все хорошо, и показывать пустые кавычки, если он работает, как я подозреваю.