Skip to content

crazycat69/scan-s2

Repository files navigation

scan-s2 -- channels scanning tool for the Linux DVB S2 API

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

scan-s2 requires Linux DVB driver API version 5.2 and newer.
The scan-s2 utility was tested with Igor M. Liplianin ([email protected]) DVB S2 API driver changeset 149a5c57c1e2
that can be obtained from: 
https://bitbucket.org/liplianin/s2-liplianin-v37
The sources could be obtained by running:
hg clone https://bitbucket.org/liplianin/s2-liplianin-v37

The driver directory was symbolically linked to "s2" directory. If you have the driver in other directory, 
you'll have to change the following line in Makefile to point to the right place:
INCLUDE=-I../s2/linux/include


If compiler can't find DVB headers in ../s2/linux/include/linux/dvb,
then it looks at usual location /usr/include/linux/dvb.

Install as follows:
	make
	make install
Uninstall
	make uninstall

The scan-s2 utilty can be used to scan channels on currently locked (by szap-s2 utility) channel or
by specifying frequencies list that will be scanned one after another.
szap-s2 utility can be found at:
http://mercurial.intuxication.org/hg/szap-s2

Samples of frequencies files can be found in dvb-s, dvb-t, dvb-c and atsc subdirectories. 
Those files are just samples and defenitelly do not include all frequencies you would like to scan.

The format of frequencies files is as follows:
For DVB-S/S2:
S <frequency> <polarity> <symbol rate> [fec] [rolloff] [modulation]
S1 <frequency> <polarity> <symbol rate> [fec] [rolloff] [modulation]
S2 <frequency> <polarity> <symbol rate> [fec] [rolloff] [modulation] [mis id] [pls_code] [pls_mode]
For DVB-C:
C <frequency> <symbol rate> [fec] [modulation]
For DVB-T/T2:
T <frequency> [bandwidth] [HP fec] [LP fec] [modulation] [transmission mode] [guard] [hierarchy]
T1 <frequency> [bandwidth] [HP fec] [LP fec] [modulation] [transmission mode] [guard] [hierarchy]
T2 <frequency> [bandwidth] [HP fec] [LP fec] [modulation] [transmission mode] [guard] [hierarchy] [plp id]
For ATSC:
A <frequency> [modulation]

Where every <> parameter is required, [] is optional.
All non specified optional parameter will be considered as specified in AUTO mode.
If one of the optional parameters has to be specified and it has more optional parameters before it,
than all the parameters up to the needed one has to be explicitly specified. For example, if modulation
have to be specified for DVB-S format, while FEC and ROLLOFF are not known, than FEC and ROLLOFF has to
be stated as AUTO:
S 10719000 V 27500000 AUTO AUTO QPSK

S1 entry type will scan the specified frequency only in DVB-S mode.
S2 entry type will scan the specified frequency only in DVB-S2 mode.
If you're an owner of DVB-S card (non-S2), you can use "-D S2" switch to disable DVB-S2 scan mode for 
all frequencies.
S entry type will be scanned for both DVB-S and DVB-S2 on the specified frequency with the following exceptions:
 - "-D" switch specified to disable one of the scan modes.
 - 8PSK modulation specified - in that case only DVB-S2 scan will be used.

Possible values for parameters are:
Polarity: H, V, R, L
FEC: NONE, 1/2, 2/3, 3/4, 3/5, 4/5, 5/6, 6/7, 7/8, 8/9, 9/10, AUTO
Modulation: QPSK, QAM16, QAM32, QAM64, QAM128, QAM256, 8VSB, 16VSB, 8PSK, 16APSK, 32APSK, AUTO
Bandwidth: 5MHz, 6MHz, 7MHz, 8MHz, 10MHz, AUTO
Transmission mode: 1k, 2k, 4K, 8k, 16k, 32k, AUTO
Guard interval: 1/32, 1/16, 1/8, 1/4, 1/128, 19/128, 19/256, AUTO
Hierarchy: NONE, 1, 2, 4, AUTO


NOTE:
Current version was tested with DVB-S/DVB-S2 standard and VDR output only with limited number of options.
Diseqc implementataion tested with 8-to-1 Centurion switch.

usage: scan-s2 [options...] [-c | initial-tuning-data-file]
	atsc/dvbscan doesn't do frequency scans, hence it needs initial
	tuning data for at least one transponder/channel.
	-c	scan on currently tuned transponder only
	-v 	verbose (repeat for more)
	-q 	quiet (repeat for less)
	-a N	use DVB /dev/dvb/adapterN/
	-f N	use DVB /dev/dvb/adapter?/frontendN
	-d N	use DVB /dev/dvb/adapter?/demuxN
	-s N	use DiSEqC switch position N (DVB-S only)
	-S N    use DiSEqC uncommitted switch position N (DVB-S only)
	-r sat  move DiSEqC rotor to satellite location, e.g. '13.0E' or '1.0W'
	-R N    move DiSEqC rotor to position number N
	-i N	spectral inversion setting (0: off, 1: on, 2: auto [default])
	-n	evaluate NIT messages for full network scan (slow!)
	-5	multiply all filter timeouts by factor 5
		for non-DVB-compliant section repitition rates
	-O pos	Orbital position override 'S4W', 'S19.2E' - good for VDR output
	-k cnt	Skip count, will skip every first specified
		messages for every message type (default 0)
	-I cnt	Scan iterations count (default 10).
		Larger number will make scan longer on every channel
	-o fmt	output format: 'vdr' (default) or 'zap'
	-x N	Conditional Access, (default -1)
		N=-2  gets all channels (FTA and encrypted),
		      output received CAID :CAID:
		N=-1  gets all channels (FTA and encrypted),
		      output CA is set to :0:
		N=0   gets only FTA channels
		N=xxx  sets ca field in vdr output to :xxx:
	-t N  Service select, Combined bitfield parameter.
		1 = TV, 2 = Radio, 4 = Other, (default 7)
	-p	for vdr output format: dump provider name
	-e N  VDR version, default 2 for VDR-1.2.x
		ANYTHING ELSE GIVES NONZERO NIT and TID
		Vdr version 1.3.x and up implies -p.
	-l lnb-type (DVB-S Only) (use -l help to print types) or 
	-l low[,high[,switch]] in Mhz
	-u UK DVB-T Freeview channel numbering for VDR

	-P do not use ATSC PSIP tables for scanning
	    (but only PAT and PMT) (applies for ATSC only)
	-A N	check for ATSC 1=Terrestrial [default], 2=Cable or 3=both
	-U	Uniquely name unknown services
	-D s	Disable specified scan mode (by default all modes are enabled)
		s=S1  Disable DVB-S scan
		s=S2  Disable DVB-S2 scan (good for owners of cards that do not
		      support DVB-S2 systems)
	-X	Disable AUTOs for initial transponders (esp. for hardware which
		not support it). Instead try each value of any free parameters.


Example of command line:
scan-s2 -5 -o vdr -x 0 -s 2 -S 0 -v -U -O S19.2E dvb-s/Astra-19.2E > channels.conf

In case you experience random missing channels after several scans of the same frequency,
try adding "-k 3" to command line. Some drivers have a buffer and will dump messages from previously
locked channel that have to be ignored.

For VDR output format type "man 5 vdr"

Special thanks to:
 - Igor M. Liplianin for S2API driver and szap-s2 utility that was used as a reference for scan-s2 utility.
 - Unknown person that posted patch for scan utility that allows sending uncommited diseqc commands.
 - Multistream support from CrazyCat

Enjoy,
Alex Betis <[email protected]>

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published