mdevルールのbusyboxを実行している組み込みLinuxにシンプルなUARTシリアルドライバを書きました。私は.dev_name
を私のドライバコードに "ttyC2C
"として提供しました。デバイスノード/ dev/tty *がUARTシリアルドライバ用に作成されていません
static struct uart_driver serial_omap_reg = {
.owner = THIS_MODULE,
.driver_name = "Omap-C2C-Serial",
.dev_name = "ttyC2C",
.nr = OMAP_MAX_HSUART_PORTS,
.cons = NULL,
};
ノードがttyのために
./sys/devices/platform/omap_c2c_uart.0/tty/ttyC2C0
./sys/class/tty/ttyC2C0
/# ls -l ./sys/class/tty/ttyC2C0
lrwxrwxrwx 1 root 0 0 Jan 1 00:14 ./sys/class/tty/ttyC2C0 -> ../../devices/platform/omap_c2c_uart.0/tty/ttyC2C0
/# ls -l ./sys/devices/platform/omap_c2c_uart.0/tty/ttyC2C0
-r--r--r-- 1 root 0 4096 Jan 1 00:14 dev
lrwxrwxrwx 1 root 0 0 Jan 1 00:14 device -> ../../../omap_c2c_uart.0
drwxr-xr-x 2 root 0 0 Jan 1 00:14 power
lrwxrwxrwx 1 root 0 0 Jan 1 00:14 subsystem -> ../../../../../class/tty
-rw-r--r-- 1 root 0 4096 Jan 1 00:14 uevent
/#
MDEV規則で作成されたばかりしかし、次のとおりです。
tty 0:5 0666
tty.* 0:0 0620
どのよう/dev/ttyC2C
としてデバイスノードを取得するには?
、それは "構造体platform_driver" と "構造体uart_driver" でそのドライバ名が同じであることを述べています。私はコードを変更しましたが、まだ/ dev/ttyC2Cノードは実装されていません。 –
構造体uart_driverに.majorと.minorを追加し、 "mknod"を使って手動でデバイスノードを作成すると、ドライバは正常に動作します。カーネル(3.4.0)が自動的にそれを作成できないのはなぜですか? –