[ELDK] Using FTDI USB serial converter with ELDK

Detlev Zundel dzu at denx.de
Tue Sep 28 16:31:31 CEST 2010


Hi Alberto,

> I am trying to connect a cable that includes a FTDI device into my EP440xS
> board. Following the comments found at some forums and web pages, I
> configured the kernel so now I have USB serial converter support (not
> compiled as a module), generic USB serial converter support and FTDI
> support. After that, I downloaded my new kernel image into the board,
> start-up the system, check that the USB subsystem was initializating and
> then plug my cable into the system. After issuing a "dmesg" command, I found
> out that the device was recognized, but no /dev/ttyUSB0 device was created.

This is expected unless you provide means by which such a device file
can be created.

The first option would be to use something like udev.  You need to
explicitely enable udev in ELDK 4.2 by either running 'start_udev' as
superuser manually or by enabling the call to it in /etc/rc/sysinit in
line 323.

For embedded systems, I would much rather look at option 2, namely
enabling the devtmpfs filesystem in the linux kernel.  This is the
config option:

drivers/base/Kconfig:19
 "Device Drivers"
    --->  "Generic Driver Options"
config DEVTMPFS
        bool "Maintain a devtmpfs filesystem to mount at /dev"
        depends on HOTPLUG
        help
          This creates a tmpfs/ramfs filesystem instance early at bootup.
          In this filesystem, the kernel driver core maintains device
          nodes with their default names and permissions for all
          registered devices with an assigned major/minor number.
          Userspace can modify the filesystem content as needed, add
          symlinks, and apply needed permissions.
          It provides a fully functional /dev directory, where usually
          udev runs on top, managing permissions and adding meaningful
          symlinks.
          In very limited environments, it may provide a sufficient
          functional /dev without any further help. It also allows simple
          rescue systems, and reliably handles dynamic major/minor numbers.

          Notice: if CONFIG_TMPFS isn't enabled, the simpler ramfs
          file system will be used instead.

Also be sure to enable this option:

drivers/base/Kconfig:39
 "Device Drivers"
    --->  "Generic Driver Options"
config DEVTMPFS_MOUNT
        bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs"
        depends on DEVTMPFS
        help
          This will instruct the kernel to automatically mount the
          devtmpfs filesystem at /dev, directly after the kernel has
          mounted the root filesystem. The behavior can be overridden
          with the commandline parameter: devtmpfs.mount=0|1.
          This option does not affect initramfs based booting, here
          the devtmpfs filesystem always needs to be mounted manually
          after the roots is mounted.
          With this option enabled, it allows to bring up a system in
          rescue mode with init=/bin/sh, even when the /dev directory
          on the rootfs is completely empty.

Then the device should show up after plugging it in.

Cheers
  Detlev

-- 
But solicitors and stockbrokers and bookmakers often lead comfortable and
happy lives,  and it is very difficult to see how the world is richer for
their existence.                                  -- G. H. Hardy
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de


More information about the eldk mailing list