?? faq
字號:
Frequently Asked Questions (FAQ) about the Linux Driver for Quicknet Technologies, Inc. Internet PhoneJACK and LineJACK CardsVersion: 0.1.3 - July 2, 1999Document maintainer: Greg Herlein (gherlein@quicknet.net)___________________________________________________________________________Table of ContentsSection 1.0 - General Questions 1.1 - What is the sample rate for audio on the cards? 1.2 - Can the Internet PhoneJACK/LineJACK do CallerID? 1.3 - Can I put multiple LineJACK/PhoneJACK cards in one computer?Section 2.0 - Installation and Configuration 2.1 - How do I load the module? 2.2 - How can I use kerneld do automatically load the ixj module? 2.3 - How can I let non-root users use the ixj devices? 2.4 - How do I use isapnp? 2.5 - How do I make isapnp work? It keeps failing! Section 3.0 - Use of IOCTLS 3.1 - Will we be able to set a configurable frame size for linear (PCM)? 3.2 - Is the IXJCTL_RING ioctl call a blocking call ? Can this call be made configurable so that we can change the type or number of rings? 3.3 - What does IXJCTL_DSP_RESET do? 3.4 - What does IXJCTL_DSP_SYNC do? 3.5 - What does IXJCTL_DSP_TYPE do? 3.6 - What does IXJCTL_DSP_VERSION do?Section 4.0 - Performance Improvements 4.1 - How can I reduce latency?___________________________________________________________________________Section 1.0 - General Questions1.1 - What is the sample rate for audio on the cards?A: Everything is being done at 8KHz.1.2 - Can the Internet PhoneJACK/LineJACK do CallerID?A: Yes and No. The LineJACK can detect the CallerID information andthat information can be made available to the driver. The driver doesnot yet support this, but it will in the near future. However, theLineJACK will probably not be able to generate CallerID informationwithout extra user-level code. This requires an FSK signal (at 1200baud) be generated and played over the line between the first andsecond rings. The hardware will support this on-hook transmission,but code has yet to be written to take advantage of that.1.3 - Can I put multiple LineJACK/PhoneJACK cards in one computer?A: Absolutely! The driver will support up to 16 such devices in onecomputer. The device files created in the /dev directory are numberedixj0-ixj15. ___________________________________________________________________________Section 2.0 - Installation and Configuration2.1 - How do I load the module?A: If you are loading the module by hand, use insmod. An exampleof this would look like this: insmod ixj io=0x300 ixjdebug=0Then verify the module loaded by running lsmod.2.2 - How can I use kerneld do automatically load the ixj module?A: You need to edit /etc/conf.modules and add the following lines: options ixj io=0x300 ixjdebug=0 alias char-major-159 ixjIf you do this, then when you execute an application that uses themodule kerneld will load the module for you. Note that to do this,you need to have your kernel set to support kerneld. You can checkfor this by looking at /usr/src/linux/.config and you should see this: # Loadable module support # CONFIG_MODULES=y # CONFIG_MODVERSIONS is not set CONFIG_KMOD=y2.3 - How can I let non-root users use the ixj devices? A: You need to set the permissions on the devices to a group that youwant to have permission to use the card. Here is how: - decide upon a group name to use and create that group if needed. Add the user names to that group that you wish to have access to the device. For example, we typically will create a group named "ixj" in /etc/group and add all users to that group that we want to run software that can use the ixjX devices. - change the permissions on the device files, like this: chgrp ixj /dev/ixj* chmod 660 /dev/ixj* Once this is done, then non-root users should be able to use thedevices. If you have enabled autoloading of modules, then the usershould be able to open the device and have the module loadedautomatically for them.2.4 - How do I use isapnp? A: If you are new to the isapnp tools, you can jumpstart yourself bydoing the following: a. run pnpdump to get a blank isapnp.conf file pnpdump > /etc/isapnp.conf b. edit the /etc/isapnp.conf file to set the register IO addresses. c. if you have multiple Quicknet cards, make sure that you donot have any overlaps. Be especially careful if you are mixing InternetPhoneJACK and Internet LineJACK cards in the same system.More information is available at:http://mailer.wiwi.uni-marburg.de/linux/LDP/HOWTO/Plug-and-Play-HOWTO.html2.5 - How do I make isapnp work? It keeps failing! A: There is a known problem with the isapnp system for recent distributionsTo work around this, do the following: - edit the isapnp.conf file and look for this line near the top:(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNINGchange that line to look like this:(CONFLICT (IO WARNING)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNINGthen go to the section where you activate the Quicknet card andfind the area that looks like this:(IO 0 (SIZE 16) (BASE 0x0310) (CHECK))and edit it to look like this:(IO 0 (SIZE 16) (BASE 0x0310))Use the appropriate io port address for your system, of course. ___________________________________________________________________________Section 3.0 - Use of IOCTLS3.1 - Will we be able to set a configurable frame size for linear (PCM)?A: The only options are 10ms (160 bytes), 20ms (320 bytes), and 30ms(480 bytes). Right now it is locked at 30ms frames because that isthe fundamental frame size of all the TrueSpeech formats, includingG.723.1. Access to those codecs were the primary design goal of thisdriver. It is not possible to simply stream bytes into the DSP likeyou would a sound card. That would require a much more sophisticatedbuffering system than we now use.3.2 - Is the IXJCTL_RING ioctl call a blocking call ? Can this call bemade configurable so that we can change the type or number of rings?The IXJCTL_RING ioctl will be supplemented by other ioctls that willchange the type and number of rings. These ioctls are already planned andpartially implemented. 3.3 - What does IXJCTL_DSP_RESET do? #define IXJCTL_DSP_RESET _IO ('q', 0x00)This ioctl will send the reset signal to the DSP should something gowrong and the DSP get into an unknown state. Under normalcircumstances it is not needed, but this is the real work andcircumstances are not always normal. :)3.4 - What does IXJCTL_DSP_SYNC do?#define IXJCTL_DSP_SYNC _IO ('q', 0x01)This sets the sync mode of the DSP, host sync, poll sync etc. Againthis is not normally needed as the driver sets the proper mode of theDSP, it was mainly included for completeness of the DSP command set.3.5 - What does IXJCTL_DSP_TYPE do?#define IXJCTL_DSP_TYPE _IOR ('q', 0x0C, int)This returns a value that indicates the DSP type, for the Phone Jack itwill return 0x8020 and for the Line Jack it will return 0x8021.3.6 - What does IXJCTL_DSP_VERSION do? #define IXJCTL_DSP_VERSION _IOR ('q', 0x0D, int)This will return the version of the DSP that is on the board. Typicalvalues are 0x0112 and 0x0114. This can give some insight when doingdiagnostics on CODEC problems, as the DSP code version implements someCODECs differently.___________________________________________________________________________Section 4.0 - Performance Improvements4.1 - How can I reduce latency?A: Reducing latency across the Internet is beyond the scope of thisanswer! However, reducing latency with the cards is possible incertain situations. The IXJCTL_REC_DEPTH command sets the internalbuffer depth of the DSP. Setting a lower depth reduces latency, butincreases the demand of the application to service the driver withoutframe loss. The DSP has 480 bytes of physical buffer memory for therecord channel so the true maximum limit is determined by how manyframes will fit in the buffer. 1 uncompressed (480 byte) 16-bit linear frame. 2 uncompressed (240 byte) 8-bit A-law/mu-law frames. 15 TrueSpeech 8.5 frames. 20 TrueSpeech 6.3,5.3,4.8 or 4.1 frames.The default in the driver is currently set to 2 frames.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -