Escolar Documentos
Profissional Documentos
Cultura Documentos
x
This document is meant as a guide for integrating the Amino STB into an iTVMGR 2.x
system. It will try to explain configuration requirements/options and what happens
during various boot up cycles for the Amino STB. The following also assumes the
use of the Minerva Mini-Flash (MMF) software installed on the iTVMGR Boot/App
server.
For those familiar with the standard Amino flashing station software, the MMF
software is a streamlined, user-friendly version of Aminos software. This package
enables the initial stb software load and also allows for upgrades to be directed
to a single Amino stb or to all Amino stbs.
One of the major enhancements introduced in iTVMGR 1.6.1 was the ability to use a
generic Amino signed stb image instead of one that needs to be customized for each
individual system installation. This further eases and simplifies the stb upgrade
process as new Amino images become available. The same methodology continues with
iTVMGR 2.x.
This implementation makes use of DHCP and an additional set of multicast addresses.
It is important to work closely with your network administrator to make sure that
the additional network traffic is routed correctly throughout your network.
There are other supporting documents (AminoFlashREAME.txt and AminoREADME.txt)
available on the 2.xFCS, distribution that deals with the installation of the MMF
software and its use.
Assuming a server and STB configuration setup as shown below:
- iTVMgr 2.x Boot/App/MMF server (IP = 192.168.5.165)
- iTVMgr 2.x DB server ( IP = 192.168.6.100 )
- DHCP server (ISC based)
- Amino Model 110 STB
You need to do the following setups:
1. On the Boot/App server, copy the following pair of files from the noted
directory and place them in the /images directory (refence the appropriate
installation documentation as the details may be different for your version
of ITVMGR):
itvmgr/stb/amino/signed_images/A110/signed.telnet/noencrytion/bootstrap.110
itvmgr/stb/amino/signed_images/A110/signed.telnet/noencrytion/mc.think110.mcfs
OR
- itvmgr/stb/amino/signed_images/A110/signed/noencrytion/bootstrap.110
- itvmgr/stb/amino/signed_images/A110/signed/noencrytion/mc.think110.mcfs
The difference between the above pair of files is whether or not they
allow the ability to telnet into the stb. Use of the signed.telnet enabled
image is certainly useful during testing, but it is up to the customer to
decide if they want to deploy that image to the field.
2. On the Database server, check the window System Setup -> Configuration ->
dispatcher_config", and confirm that the following lines contains the correct
IP entries that point to the desired Boot/App server (wherever the ITVMGR
dataservices process is running):
........
itvmanager.appserver.ip
dispatcher.listen.ip
dispatcher.datatype.14.datafetchlocation
Example:
itvmanager.appserver.ip
dispatcher.listen.ip
dispatcher.datatype.14.datafetchlocation
192.168.5.165:7780
192.168.5.165
-ip=192.168.5.165:7780
-eip=192.168.5.165:8500
-asr=/dataservices -stbm=Amino -nnvb=0
........
(The correct IP values should be in place as a result of the 2.x
installation. If you are using a A120 it must be defined separately.)
The contents of the above Configuration page is included with the multicast
stream that the STB will start listening to during boot up. That is how the
STB knows what iTVMgr server it needs to communicate with.
3. In the ITVMgr Admin UI, go to 'IP Headend -> Setup: Multicast Server':
a. Define a new multicast address for 'STB 2 Boot Stream' (see step
#4). Check with your network vendor to make sure the address
selected will be passed across the network correctly.
b. Set the transfer rate (kilobits/sec) for 'STB 2 Boot Stream'. Make
sure your network will handle the rate selected.
c. In the 'Module' pull-down menu for the corresponding 'STB2 Boot
Stream', select "Amino". The A110/A110H/A500 all use the same
stream. If you are using a A120 it must be defined separately.
d. If using one of the numbered Boot Stream choices, be sure to click
the corresponding 'Activate' box.
e. Click on the 'Submit' button on the bottom of the screen to commit
your changes.
4. On the DHCP server, as part of the /etc/dhcpd.conf configuration file,
include the following (the multicast address used must match the one selected
for 'STB Boot Stream' in the previous step):
.....SAMPLE..dhcpd.conf...
## To define the Amino 110 STB to get multicast resources from 239.255.5.6
## define the 'middleware' parameter accordingly
# Aminet11x - response when booting
class "aminet11x fisys"
{
match if (option vendor-class-identifier="Aminoaminet110fisys") or
((substring( option vendor-encapsulated-options,2,9)="aminet110")
and (substring( option vendor-encapsulated-options,13,5)="fisys"));
vendor-option-space AMINO;
option AMINO.middleware 239.255.5.6;
option AMINO.mw_port 4545;
}
................
[Filesystem mc.think110H]
MulticastIPAddress=225.50.50.45
MulticastUDPPort=11111
ImageName=mc.think110H
Description=mc2 filesystem
SerialNumber=819
DataRate=256
[Image bootstrap.120]
MulticastIPAddress=225.50.50.56
MulticastUDPPort=11111
FileName=bootstrap.120
Description=linux boot image
ImageType=1
SerialNumber=46
PacketSize=1456
CycleTime=0
[Filesystem mc.think120]
MulticastIPAddress=225.50.50.57
MulticastUDPPort=11111
ImageName=mc.think120
Description=mc2 filesystem
SerialNumber=819
DataRate=256
[Image bootstrap.500]
MulticastIPAddress=225.50.50.64
MulticastUDPPort=11111
FileName=bootstrap.500
Description=linux boot image
ImageType=1
SerialNumber=45
PacketSize=1456
[Filesystem mc.think500]
MulticastIPAddress=225.50.50.65
MulticastUDPPort=11111
ImageName=mc.think500
Description=mc2 filesystem
SerialNumber=505
DataRate=256
NOTE: If only using the Amino 110 stb, the sections referring to the 103
or 500 model may be commented out as shown above. This will prevent
unneeded multicast streams from using up network bandwidth.
Be sure to adjust the MulticastTTL parameter accordingly for your network.
If necessary, the addresses may be changed to avoid conflicts on the
network, but the addresses referenced by both the mcastbootd.conf and
dhcpd.conf configuration files must match. The corresponding section of
the dhcpd.conf is shown below:
.........SAMPLE...dhcpd.conf...................
# -------------------------------------------------------------------------------
# bootstrap image definition - defines the image which an Amino 110 will
# use if it is multicast aware and starts up with a blank flash.
# Note: This IP address must match the bootstrap.110 IP address defined
# in mcastbootd.conf
# ------------------------------------------------------------------------------class "AMINET11x mboot"
{
match if (option vendor-class-identifier="aminoAMINET11xmboot") or
((substring( option vendor-encapsulated-options, 2, 9)="AMINET11x")
and (substring( option vendor-encapsulated-options, 13, 5)="mboot"));
vendor-option-space AMINO;
option AMINO.address 225.50.50.54;
option AMINO.port 11111;
}
# ------------------------------------------------------------------------------# multicast file - defines the complete image (OS + think) for an Amino 110
# Note: This IP address must match the IP address associated with the
# mc.think110.mcfs image defined in mcastbootd.conf
# ------------------------------------------------------------------------------class "aminet110 multicast image"
{
match if (option vendor-class-identifier="Aminoaminet110upgrd") or
((substring( option vendor-encapsulated-options,2,9)="aminet110")
and (substring( option vendor-encapsulated-options,13,5)="upgrd"));
vendor-option-space AMINO;
option AMINO.address 225.50.50.55;
option AMINO.port 11111;
}
.............................
Complete the DHCP configuration and start the DHCP daemon. If using
the DHCP package from ISC (http://www.isc.org/sw/dhcp) the command would
look like:
/usr/sbin/dhcpd -cf /etc/dhcpd.conf &
NOTE: If the '-cf <file>' parameter is left off, it will may not serve
addresses properly.
You may also wish to refer to the following for additional information on
setting up DHCP:
http://www.tldp.org/HOWTO/DHCP/index.html
http://www.redhat.com/mirrors/LDP/HOWTO/DHCP/index.html
5. On the Boot/App server, open a new window and start the multicast process:
# cd /images
# mcastbootd -D
ping t 8 c 4 225.10.10.10
This will cause a series of 4 packets to be sent out across the
network and trigger the routers to establish the routes needed for
the upgrade process. What you should get back is multiple responses
from each of the Amino stbs on the network. Refer to the ping man
page for further details and options.
If you prefer, you can redirect the output into a file for further
review:
*******************************************
How to handle pre-flashed units
*******************************************
To convert an Amino STB that was configured with a static address or was previously
flashed with a server specific iTVMgr 1.x compatible Amino image, to a DHCP STB
with a server generic 2.x image, use the following steps.
1. If you are upgrading from iTVMgr 1.x to iTVMgr 2.x, you cannot use the
sendflashcommand to upgrade the Amino stbs. Instead, you must use the
native Amino STBremoteconf command with the REFLASH option as shown in
the STBremoteconf info section below. Failure to do so, will still
leave the 1.x mc.think image on the stb which is not compatible with the
2.x system.
Unicast: - reflash the boot & mc.think for a single 110 stb
STBremoteconf 10.1.6.2 REFLASH 225.50.50.54 11111
-- or Multicast: - totally reflash all 110 stb's
STBremoteconf 225.10.10.10 REFLASH 225.50.50.54 11111
2. On the DHCP server, monitor /var/log/messages for DHCP lease info to
identify the STB by IP or MAC address.
Another option, per Amino, is to telnet into the STB and 'cd /mnt/nv' directory
and 'rm *' then reboot the STB which will then download new software. This assumes
the stb is multicast aware.
**************************************
USING THE sendflashcommand UTILITY
**************************************
Once the mcastbootd process is streaming the image, the command for the Amino STBs
to reflash themselves must be sent over the network. This is done with the
"sendflashcommand" utility. For those familiar to the flashing process,
"sendflashcommand" is a wrapper for the Amino utility "STBremoteconf" and uses the
UPGRADEMCAST option. The sendflashcommand may be sent as a multicast (to all
Amino STBs) or as a unicast (to one specific IP) message.
Execute this script in any other terminal window that is not running the
mcastbootd command. The syntax for the command is shown below.
Description:
sendflashcommand {multicast or unicast} {stb_model}
Usage:
sendflashcommand [(m)ulticast|(u)nicast] [103|110]
A multicast option will send the reflash command to ALL STBs on the network
A unicast option will send the reflash command to ONE STB on the network, thus the
IP address of the targeted STB is required.
Example 1: Amino 110 multicast reflash message
[root@flash root]# sendflashcommand m 110
=
=
=
11111
Explanation:
STBremoteconf
Examples:
Unicast: - reflash the boot & mc.think for a single 110 stb
STBremoteconf 10.1.6.2 REFLASH 225.50.50.54 11111
Multicast: - totally reflash all 110 stb's
STBremoteconf 225.10.10.10 REFLASH 225.50.50.54 11111
******************************************
DHCP Example
******************************************
###############################################################################
# Global configurations
###############################################################################
ddns-update-style ad-hoc;
default-lease-time 10000000;
max-lease-time 20000000;
allow bootp;
# Set this to your domain name
option domain-name "minervanetworks.com";
# Enter your DNS servers separated by commas ','
option domain-name-servers 10.6.1.10, 10.6.1.11;
# Extra stuff for multicast booting
option space AMINO;
option AMINO.address
code 1 = ip-address;
option AMINO.port
code 2 = integer 16;
option AMINO.product
code 3 = text;
option AMINO.option
code 4 = text;
option AMINO.version
code 5 = text;
option AMINO.middleware code 6 = ip-address;
option AMINO.mw_port
code 7 = integer 16;
###############################################################################
# Amino Bootstrap image definition
# -------------------------------# Defines the image which an Amino 103/110/500 will use if it is multicast
# aware and starts up with a blank flash.
#
# Note: This IP address must match the bootstrap IP address defined for the
# particular STB model (bootstrap.XXX) in /etc/mcastbootd.conf
###############################################################################
# Amino 103
class "AMINET103 mboot"
{
match if (option vendor-class-identifier="aminoAMINET103mboot") or
((substring( option vendor-encapsulated-options, 2, 9)="AMINET103")
and (substring( option vendor-encapsulated-options, 13, 5)="mboot"));
vendor-option-space AMINO;
option AMINO.address 225.50.50.51;
option AMINO.port 11111;
}
# Amino 110
class "AMINET11x mboot"
{
match if (option vendor-class-identifier="aminoAMINET11xmboot") or
((substring( option vendor-encapsulated-options, 2, 9)="AMINET11x")
and (substring( option vendor-encapsulated-options, 13, 5)="mboot"));
vendor-option-space AMINO;
option AMINO.address 225.50.50.54;
option AMINO.port 11111;
# Amino 500
class "AMINET5xx mboot"
{
match if (option vendor-class-identifier="aminoAMINET5xxmboot") or
((substring( option vendor-encapsulated-options, 2, 9)="AMINET5xx")
and (substring( option vendor-encapsulated-options, 13, 5)="mboot"));
vendor-option-space AMINO;
option AMINO.address 225.50.50.64;
option AMINO.port 11111;
# 120
class "Aminet120 mboot"
{
match if (option vendor-class-identifier="aminoAMINET120mboot") or
((substring( option vendor-encapsulated-options, 2, 9)="AMINET120")
and (substring( option vendor-encapsulated-options, 13,
5)="mboot"));
vendor-option-space AMINO;
option AMINO.address 225.50.50.56;
option AMINO.port 11111;
}
###############################################################################
# Amino signed image definition
# ----------------------------# Defines the complete signed image which an Amino 103/110/500 will listen for
# when it is sent the upgrade command.
#
# Note: This IP address must match the bootstrap IP address defined for the
# particular STB model (mc.thinkXXX) in /etc/mcastbootd.conf
###############################################################################
# Amino 103
class "aminet103 multicast image"
{
match if (option vendor-class-identifier="Aminoaminet103upgrd") or
((substring( option vendor-encapsulated-options,2,9)="aminet103")
and (substring( option vendor-encapsulated-options,13,5)="upgrd"));
vendor-option-space AMINO;
option AMINO.address 225.50.50.52;
option AMINO.port 11111;
}
# Amino 110
class "aminet110 multicast image"
{
match if (option vendor-class-identifier="Aminoaminet110upgrd") or
((substring( option vendor-encapsulated-options,2,9)="aminet110")
and (substring( option vendor-encapsulated-options,13,5)="upgrd"));
vendor-option-space AMINO;
option AMINO.address 225.50.50.55;
# Amino 500
class "aminet500 multicast image"
{
match if (option vendor-class-identifier="Aminoaminet500upgrd") or
((substring( option vendor-encapsulated-options,2,9)="aminet500")
and (substring( option vendor-encapsulated-options,13,5)="upgrd"));
vendor-option-space AMINO;
option AMINO.address 225.50.50.65;
option AMINO.port 11111;
# 120
class "aminet120 multicast image"
{
match if (option vendor-class-identifier="Aminoaminet120upgrd") or
((substring( option vendor-encapsulated-options,2,9)="aminet120")
and (substring( option vendor-encapsulated-options,13,5)="upgrd"));
vendor-option-space AMINO;
option AMINO.address 225.50.50.57;
option AMINO.port 11111;
}
###############################################################################
# Amino response when booting
# --------------------------# Defines the iTvManager multicast resource IP the STB will listen for when it
# has been successfully flashed.
#
# The multicast IP address (option AMINO.middleware) must match the
# STB Boot stream for the Amino Module setting which is configured in the
# IP HEADEND->Setup page of the Admin application. It is likely that all three
# STB models (103/110/500) will point to the same multicast resource IP.
#
# This section is only reached when the STB is/has been successfully flashed.
###############################################################################
# Amino 103
class "aminet103 fisys"
{
match if (option vendor-class-identifier="Aminoaminet103fisys") or
((substring( option vendor-encapsulated-options,2,9)="aminet103")
and (substring( option vendor-encapsulated-options,13,5)="fisys"));
vendor-option-space AMINO;
option AMINO.middleware 239.192.113.25;
option AMINO.mw_port 4545;
}
# Amino 110
class "aminet11x fisys"
{
match if (option vendor-class-identifier="Aminoaminet110fisys") or
((substring( option vendor-encapsulated-options,2,9)="aminet110")
and (substring( option vendor-encapsulated-options,13,5)="fisys"));
vendor-option-space AMINO;
option AMINO.middleware 239.255.5.6;
###########################################################################
# Thomson Copperhead multicast TFTP boot
# -------------------------------------# filename = path to copperhead.vxWorks.bin (at the TFTP root)
# option extensions-path = path to mload.copperhead.txt (at the TFTP root)
# option root-path = points to the iTvManager boot server running tftp_tmm
###########################################################################
filename "copperhead.vxWorks.bin";
option extensions-path "mload.copperhead.txt";
option root-path "192.168.5.21";
# Thomson Viper
if substring ( option vendor-class-identifier,0,13) = "Thomson_Viper"
{
###########################################################################
# Thomson Viper unicast boot
# ------------------------------# filename = path to vxWorks
# options extensions-path = path to load.txt
# next-server = points to the iTvManager boot server
###########################################################################
#filename "/itvmgr/stb/thomsonboot/bootable/viper/vxWorks";
#option extensions-path "/itvmgr/stb/thomsonboot/bootable/viper/load.txt";
#next-server 192.168.5.21;
###########################################################################
# Thomson Viper multicast TFTP boot
# -------------------------------------# filename = path to viper.vxWorks.bin (at the TFTP root)
# option extensions-path = path to mload.viper.txt (at the TFTP root)
# option root-path = points to the iTvManager boot server running tftp_tmm
###########################################################################
filename "viper.vxWorks.bin";
option extensions-path "mload.viper.txt";
option root-path "192.168.5.21";
# This should always point to the iTvManager boot server
next-server 192.168.5.21;
}
# Amino 110
if substring (
{
filename
}
if substring (
{
filename
}
}
#END