FE_GET_INFO — Query DVB frontend capabilities and returns information about the front-end. This call only requires read-only access to the device


int ioctl(int fd,
 int request,
 struct dvb_frontend_info *argp);



File descriptor returned by open().




pointer to struct struct dvb_frontend_info


All DVB frontend devices support the FE_GET_INFO ioctl. It is used to identify kernel devices compatible with this specification and to obtain information about driver and hardware capabilities. The ioctl takes a pointer to dvb_frontend_info which is filled by the driver. When the driver is not compatible with this specification the ioctl returns an error.


On success 0 is returned, on error -1 and the errno variable is set appropriately. The generic error codes are described at the Generic Error Codes chapter.

Table 9.17. struct dvb_frontend_info

charname[128]Name of the frontend
fe_type_ttypeDEPRECATED. DVBv3 type. Should not be used on modern programs, as a frontend may have more than one type. So, the DVBv5 API should be used instead to enumerate and select the frontend type.
uint32_tfrequency_minMinimal frequency supported by the frontend
uint32_tfrequency_maxMaximal frequency supported by the frontend
uint32_tfrequency_stepsizeFrequency step - all frequencies are multiple of this value
uint32_tfrequency_toleranceTolerance of the frequency
uint32_tsymbol_rate_minMinimal symbol rate (for Cable/Satellite systems), in bauds
uint32_tsymbol_rate_maxMaximal symbol rate (for Cable/Satellite systems), in bauds
uint32_tsymbol_rate_toleranceMaximal symbol rate tolerance, in ppm
uint32_tnotifier_delayDEPRECATED. Not used by any driver.
enum fe_capscapsCapabilities supported by the frontend

NOTE: The frequencies are specified in Hz for Terrestrial and Cable systems. They're specified in kHz for Satellite systems

frontend capabilities

Capabilities describe what a frontend can do. Some capabilities are supported only on some specific frontend types.

Table 9.18. enum fe_caps

FE_IS_STUPIDThere's something wrong at the frontend, and it can't report its capabilities
FE_CAN_INVERSION_AUTOThe frontend is capable of auto-detecting inversion
FE_CAN_FEC_1_2The frontend supports FEC 1/2
FE_CAN_FEC_2_3The frontend supports FEC 2/3
FE_CAN_FEC_3_4The frontend supports FEC 3/4
FE_CAN_FEC_4_5The frontend supports FEC 4/5
FE_CAN_FEC_5_6The frontend supports FEC 5/6
FE_CAN_FEC_6_7The frontend supports FEC 6/7
FE_CAN_FEC_7_8The frontend supports FEC 7/8
FE_CAN_FEC_8_9The frontend supports FEC 8/9
FE_CAN_FEC_AUTOThe frontend can autodetect FEC.
FE_CAN_QPSKThe frontend supports QPSK modulation
FE_CAN_QAM_16The frontend supports 16-QAM modulation
FE_CAN_QAM_32The frontend supports 32-QAM modulation
FE_CAN_QAM_64The frontend supports 64-QAM modulation
FE_CAN_QAM_128The frontend supports 128-QAM modulation
FE_CAN_QAM_256The frontend supports 256-QAM modulation
FE_CAN_QAM_AUTOThe frontend can autodetect modulation
FE_CAN_TRANSMISSION_MODE_AUTOThe frontend can autodetect the transmission mode
FE_CAN_BANDWIDTH_AUTOThe frontend can autodetect the bandwidth
FE_CAN_GUARD_INTERVAL_AUTOThe frontend can autodetect the guard interval
FE_CAN_HIERARCHY_AUTOThe frontend can autodetect hierarch
FE_CAN_8VSBThe frontend supports 8-VSB modulation
FE_CAN_16VSBThe frontend supports 16-VSB modulation
FE_HAS_EXTENDED_CAPSCurrently, unused
FE_CAN_MULTISTREAMThe frontend supports multistream filtering
FE_CAN_TURBO_FECThe frontend supports turbo FEC modulation
FE_CAN_2G_MODULATIONThe frontend supports "2nd generation modulation" (DVB-S2/T2)>
FE_NEEDS_BENDINGNot supported anymore, don't use it
FE_CAN_RECOVERThe frontend can recover from a cable unplug automatically
FE_CAN_MUTE_TSThe frontend can stop spurious TS data output