Device node at /dev/tty* not getting created for uart serial driver
Manavendra Nath Manav
mnm.kernel at gmail.com
Wed Nov 28 03:05:16 EST 2012
On Mon, Nov 26, 2012 at 2:02 PM, Jinqiang Zeng <jinqiangzeng at gmail.com> wrote:
>
> first creat a device class,then register a device to the kernel. using the following functions:
> struct class *class_create(struct module *owner, char *name);
> struct class_device *class_device_create(struct class *cls,
> struct class_device *parent,
> dev_t devt,
> struct device *device, char *fmt, ...)
>
>
> 2012/11/26 Manavendra Nath Manav <mnm.kernel at gmail.com>
>>
>>
>> On Sat, Nov 24, 2012 at 2:20 PM, Manavendra Nath Manav <mnm.kernel at gmail.com> wrote:
>>>
>>> Hi RK
>>>
>>> On Sat, Nov 24, 2012 at 2:03 PM, Manavendra Nath Manav <mnm.kernel at gmail.com> wrote:
>>>>
>>>> I have written a simple UART serial driver in embedded Linux running busybox with mdev rules. I have provided .dev_name as "ttyC2C" in my driver code.
>>>>
>>>> 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,
>>>> };
>>>>
>>>> However the node is getting created in
>>>>
>>>> ./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
>>>> / #
>>>>
>>>> The mdev rules for tty are:
>>>>
>>>> tty 0:5 0666
>>>> tty.* 0:0 0620
>>>>
>>>> How to get device node as /dev/ttyC2C ?
>>>>
>>>> --
>>>> Manavendra Nath Manav
>>>
>>>
>>> can you help me on following issue?
>>>
>>> --
>>> Manavendra Nath Manav
>>
>>
>> In "Essential Linux Device Drivers" book, it says that that the driver name in "struct platform_driver" and "struct uart_driver" should be same. I modified the code according but still /dev/ttyC2C node is not being populated.
>>
>> --
>> Manavendra Nath Manav
When i add .major and .minor to the struct uart_driver and create the
device node manually using "mknod" then the driver works fine. Why the
kernel (3.4.0) is not able to create it automatically?
--
Manavendra Nath Manav
More information about the Kernelnewbies
mailing list