Technical data
169
Dialogic® Diva® TTY driver
The Dialogic
®
Diva
®
TTY driver is provided only in binary form, and can only be recompiled for your own kernel
using the source level package.
This section describes the usage of this driver with customized kernels if the aforementioned method is not
applicable.
The Dialogic
®
Diva
®
TTY interface relies on a limited amount of exposed kernel services. If the appropriate
services do not differ from the services the Dialogic
®
Diva
®
TTY driver was originally compiled for, then you can
still use the driver with your customized kernel. Therefore, the Diva TTY driver for single processor machines is
compiled without symbol version information and can be loaded in every kernel that exports the requested
externals. If the driver cannot be loaded due to different kernel version/name, you can try the forced module
load.
Notes:
• Drivers for SMP (Multi-processor) systems are compiled using the same symbol version information
settings as set by the original kernel configuration.
• To do so, you can use the Dialogic
® Diva® Media Board configuration utility or the insmod -f Divatty.o
command.
The Linux kernel is "monolithic". The interface between the kernel and the loadable kernel modules, especially
the layout of internal kernel structures, can change depending on the current kernel configuration. It is clear
that in case the kernel and the loadable kernel module have different layout of shared structures you can still
load the module, but it can lead to instabilities or Oops.
Another cause for Oops and instabilities is the different processor model. The loadable kernel module which is
optimized for PentiumPro CPU can cause problems if loaded in the kernel that was optimized for Pentium CPU.
In case your system becomes instable after the Diva TTY driver was loaded, you can follow the general rules
described below. These rules allow you to create the customized kernel which will be compatible with the Diva
TTY driver:
• Select the Dialogic
®
Diva
®
RPM package with the name (kernel version) that is closest to the name of the
kernel you plan to use and that is suited for the CPU that you plan to use, i.e., optimized for i386, i686,
ATHLON. Verify that your kernel and the Dialogic
®
Diva
®
module are compiled by the same GCC compiler
generation (GCC 2.XX or GCC 3.XX).
Note: You can use the command objdump -s Divatty.o > info1.txt; objdump - s vmlinux >
info2.txt and view the context of the ".comment" sections.
• View with the nm -u Divatty.o command the list of TTY driver kernel services (functions) used by the
Dialogic
®
Diva
®
System Release software.
• View the definition of structures that are directly used by functions the Dialogic® Diva® TTY driver imports
from the kernel. Additionally, view the layout of structures used by macros that contain some of these
functions (some functions are used only from macros, especially "skb_xxx", "memcpy", "memset" and
similiar functions and macros.
Note: You can receive detailed information about all exported data structures, functions and the structures
on which the exported functions depend on if you activate the symbol version information, change the kernel
Makefile from "genksyms" to "genksyms -D" and execute make modules 2>info.txt && grep Export
info.txt > exports.txt.