FAQ (Frequently Asked Questions)
Q.How to correctly uninstall KylixDriver and, if need be, to correctly install it again.
A. Select Component|Install Packages menu item. Remove 2 packages relevant to KylixDriver from the Design Packages list. Open Tools|Environment Options|Library tab. Remove path to the run-time version of KylixDriver Application Library from the Library Path edit box. Remove the deployed directory itself. That’s all. You can install the product again.
Q. How to rebuild the GDD (kdmodule.o or kdmodule.ko file) after making modifications to accompanying source files?
A. Go to directory where you installed KylixDriver, open a console/terminal window and execute make clearmakefile command at the console/terminal prompt. After that, execute this command: make install.
Q. When the GDD is being loaded (by module_load shell script), there is the following message: Warning: loading kdmodule.o will taint the kernel: non-GPL license. What’s happening?
A. Fear not, you can work. Just, we are prohibited from getting rid of this message, because the GDD is delivered with no complete source code and using the GPL license type that suppresses this message is not applicable (non-legal).
Q. I have installed KylixDriver, kdmodule.o file is successfully built as well. I set all the properties of TkdCustomCard component correctly. But ModuleLoaded property stays false all along.
A. Only root can alternate ModuleLoaded property value. If you are a non-root, the administrator has to configure the system so that you have ModuleLoaded property always set to true (when the GDD is initially loaded once the kernel is booted). The corresponding helpful information is displayed on the console during the functioning time of the setup shell script.
Q. I am root. I am trying to load the GDD (kdmodule.o file) explicitly by launching the module_load shell script from LINUX.X.X.X-X folder. I am observing that the GDD is refusing to load: some Linux kernel routines with mangled names with numbers are considered as unresolved symbols.
A. There is the only issue that might help. Just find #include <linux/modversions.h> text in the following files: sysdep.c, kdcommon.h and comment these lines out. After that, rebuild the GDD.
Q. When PCI device’s resources are automatically constructed by CardBuilder, all memory and port ranges have their RangeShared properties turned to true. Is not it a bad style?
A. Yes, of course. The ultimate version of your user-mode PCI device driver should be with RangeShared properties turned to false. But for the sake of hardware diagnostic purposes only, all ranging resources are constructed with RangeShared properties turned to true, because, in this case, these resources can be assuredly registered in the system.
Q. Must I use SOI action in the interrupt management if the interrupt of my PCI device is not shared and InterruptAcknowledgement property is involved in interrupt acknowledgement?
A. It is not necessary. You can omit SOI action. The GDD will automatically acknowledge interrupts with what you specified in InterruptAcknowledgement property. See the 6th variant in Table 3. For shared PCI interrupts SOI action must be put in place evidently.
Q.What is the maximum size of user-allocated buffer suitable for scatter/gather DMA?
A. 2093055 (calculated out from the following condition: INT((SIZE - 1) / 4096) + 2 must be less than or equal to DMA_Pages (512).