Linux - NOTE: In all cases you MUST install a 32-bit OS (Either CentOS, Fedora, or Ubuntu)
The Linux build environment documented on this page is based on a basic Fedora Core 15 installation CD. There are CentOS 6- and Ubuntu-specific notes below. It should also be possible to use a previously existing Linux installation, assuming that you have all of the required packages described below. The following section describes how to set up a machine from scratch.
...
Install Fedora Core 15 i386 CD or CentOS 6.x or Ubuntu 12.04 LTS (64 bit not currently supportedsupported. Note specific platform notes below, and at bottom.)
- #!* Choose and make note of the root password
- Create your user (remember the password)
- Update the software on the system
- System->Administration->Update System
- If you get the following error "Transaction error could not add package update for <distro info>". The work around is typing the following on the command line:
$su -
$yum update
- If you get the following error "Transaction error could not add package update for <distro info>". The work around is typing the following on the command line:
- System->Administration->Update System
- Convert your user to a "sudoer"
- Get a terminal window (Applications->System Tools->Terminal)
- Type '
su -
' (no quotes) - Enter root passwordvim /etc/sudoers
- Fedora, CentOS
- visudo
- add the following line toward the end of the file (assuming your user name was steve)
%steve ALL=(ALL) ALL
- Ubuntu
- Add user to "sudo" group in /etc/group in 12.04 LTS, or "admin" group in earlier versions, e.g.
sudo:x:27:steve
admin:x:25:steve
- Add user to "sudo" group in /etc/group in 12.04 LTS, or "admin" group in earlier versions, e.g.
- Install all the required Linux packages (CentOS, Fedora. See bottom for Ubuntu).
- cut and paste these to the terminal window:
- Fedora only
sudo rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm - CentOS 6 only
sudo rpm -ivh http://mirrors.servercentral.net/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
sudo rpm -ivh http
- cut and paste this to the terminal window:
- sudo yum install gcc gcc-c++ make gettext patch bison flex liboil liboil-devel zlib zlib-devel libxml2 libxml2-devel doxygen libX11-devel libXext libXext-devel mesa-libGLU-devel atk atk-devel pango pango-devel cairo cairo-devel libjpeg libjpeg-devel libtiff libtiff-devel man-pages perl-Net-Telnet perl-Digest-SHA1 svn ant ant-jdepend
- sudo rpm -ivh http/fedorastable
install vlcsudo yum
- sudo yum install mozilla-vlc
clean all
(remove "RPMDB altered outside of yum" warning, if necessary)Install necessary packages
Code Block sudo yum install gcc gcc-c++ make gettext patch bison flex liboil liboil-devel zlib zlib-devel libxml2 libxml2-devel doxygen libX11-devel libXext libXext-devel mesa-libGLU-devel atk atk-devel pango pango-devel cairo cairo-devel libjpeg libjpeg-devel libtiff libtiff-devel man-pages perl-Net-Telnet perl-Digest-SHA1 svn vlc mozilla-vlc
- Check the RI Code out to populate your machine
- Start in your home directory ('cd ')
mkdir CableLabsRI
cd CableLabsRI
svn co https://community.cablelabs.
- Start in your home directory ('cd ')
- mkdir CableLabsRI
- cd CableLabsRI
- svn co https://community.cablelabs.
com/svn/OCAPRI/trunk
- Enter your credentials when prompted, then wait as it checks out the trunk. You now have the majority of the tree for Linux on your machine under /home/<user>/CableLabsRI/trunk
- Ensure SELinux is disabled disabled (CentOS, Fedora. Ubuntu does not install and enable SELinux by default.)
- Activate menu by selecting System->Administration->SELinux Management
- Enter root password
- In Status Tab, set System Default Enforcing Mode to Disable
- For Fedora 15 and CentOS:
sudo vi /etc/sysconfig/selinux
change SELINUX=enforcing to SELINUX=disabled
:wq (save and quit).
You have to reboot the system for this to take effect.wq (save and quit).
You have to reboot the system for this to take effect.
- Install the Sun 1.6 Java Development Kit (Java SE JDK 6 Update XX)
- Note: Installation of Sun's JDK is not necessary - the Open JDK has already been installed (and works).
However, the Open JDK developer tools must be installed (i.e. the full JDK, not just the JRE):
For CentOS:yum install java-1.6.0-openjdk java-1.6.0-openjdk-devel
For Ubuntu:
See full apt-get command at bottom. For Sun JDK:
- Installation of Sun's JDK is not necessary - the Open JDK has already been installed (and works).
- Go to http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u31-download-1501634/index.html
- Select latest JDK 6 Update 13 Download
- Select Platform: Linux Language: Multi-language, select checkbox accepting the License agreement
- Select jdk_6u136uxx-linux-rpm.bin, and "Save File" when prompted
- in ~/Download, do '
chmod +x jdk-
6u136uxx-linux-i586-rpm.bin
' (no quotes) sudo ./jdk-
6u136uxx-linux-i586-rpm.bin
- Accept the license, and watch the jdk get installed
- Ignore the registration
- Note: Installation of Sun's JDK is not necessary - the Open JDK has already been installed (and works).
- Get ant 1.8 or later
- ANT is already installed. However, DO NOT SET ANT_HOME
- Download http://ant.apache.org/bindownload.cgi
- in home directory do do '
gtar -xvf Download/apache-ant-1.8.
24-bin.tar.gz
'
- Edit your environment to get ready to build
- Edit .bashrc in your home directory
- Add the following lines to the end, replacing "steve" with your user name
Code Block | ||||
---|---|---|---|---|
| ||||
############################################################ # Env variables required for building the OCAP Stack and JVM # # Notice the use of "forward slashes" in all paths. This is # required for the Cygwin build system. ############################################################## # The root of the stack source tree export OCAPROOT=~steve/CableLabsRI/trunk/ri/RI_Stack # Identifies the host development platform. See $OCAPROOT/hostconfig export OCAPHOST=Linux #export OCAPHOST=wxWidgets # Stack build target export OCAPTC=CableLabs/simulator/Linux/debug # Ant and Java Home directories export JAVA_HOME=/usr/java/jdk1.6.0_13 export ANT_HOME=~/apache-ant-1.8.24 # Add Java, Ant, and Doxygen bin directories to the path. Notice the use of # Cygwin drive designations instead of Windows export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH:~/atelite/bin: ############################################################## # Env variables required for building the RI Platform # # Notice the use of "forward slashes" in all paths. This is # required for the Cygwin build system. ############################################################## # The directory root of the RI platform source tree export PLATFORMROOT=~steve/CableLabsRI/trunk/ri/RI_Platform # Identifies the host development platform. See $PLATFORMROOT/hostconfig export PLATFORMHOST=Linux # Platform build target export PLATFORMTC=Linux/debug # For the Manufacturers Enviornement export MFGROOT=c:/CableLabsRI/Subversion/MfgEnv export MFGTC=Win32/debug export RICOMMONROOT=~steve/CableLabsRI/trunk/common export HE4RIROOT=~steve/CableLabsRI/trunk/emu/HeDri/Emulator |
...
- Build the platform (the support code for the OCAP stack)
- Start a new terminal session to pick up the environment changes you just made
cd $PLATFORMROOT
make clean purge build
- Build the OCAP stack (the Java VM and support libraries)
cd $OCAPROOT
ant clean
ant purge
(this will may fail due to a bug in the build script for now - ignore)ant build
- This should build the stack - Yahoo! Wait for complete with no errors
- From this point forward, '
ant purge
' should work, so you can do a super-clean build using 'ant clean purge build
'
Subsequent Builds
- Building the platform (assuming you did not change the support libraries)
- From $PLATFORMROOT do 'build source'
Required Linux Packages
You should first install all of the recommended additional packages that the Fedora system manager directs you to.
...
Add your user group to sudoers file
*(Fedora/CentOS-only) In order to run ATE tests, the RI Platform must be able to connect to certain network ports that are only available to processes running as root. To facilitate this, we have modified the runPlatform_linux.sh startup script to always execute the RI process as root. On Linux systems, non-root users must add their user group to a list of groups that are allowed to gain root privileges. The list of these groups is found in the /etc/sudoers file. Edit this file and add your user group to one of the two sections
Code Block | ||||
---|---|---|---|---|
| ||||
## Next comes the main part: which users can run what software on ## which machines (the sudoers file can be shared between multiple ## systems). ## Syntax: ## ## user MACHINE=COMMANDS ## ## The COMMANDS section may have other options added to it. ## ## Allow root to run any commands anywhere root ALL=(ALL) ALL ## Allows members of the 'sys' group to run networking, software, ## service management apps and more. # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS ## Allows people in group wheel to run all commands # %wheel ALL=(ALL) ALL ----------------> Add your group using this syntax if you want to be required to enter a password each time ## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL %myusergroup ALL=(ALL) NOPASSWD: ALL ---------------> Add your group using this syntax if you DO not want to be required to enter a password each time ## Allows members of the users group to mount and unmount the ## cdrom as root # %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom |
Selecting a User Interface Target
On the Linux platform, there are currently two user interface targets:
- Native libX11 Windows
- wxWidgets Windows (default)
To build the native X11 Windows UI target, uncomment the line
UI_TARGET = Linux
in the target/Linux/debug/defs.mk file. To build for the cross-platform wxWidgets UI target, uncomment the line
UI_TARGET = wxWidgets
in the target/Linux/debug/defs.mk/ file. Make sure that the target you are NOT interested in is also commented out.
Ubuntu Specific Notes
to mount and unmount the
## cdrom as root
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
|
...
Selecting a User Interface Target
On the Linux platform, there are currently two user interface targets:
- Native libX11 Windows
- wxWidgets Windows (default)
To build the native X11 Windows UI target, uncomment the line
UI_TARGET = Linux
in the target/Linux/debug/defs.mk file. To build for the cross-platform wxWidgets UI target, uncomment the line
UI_TARGET = wxWidgets
in the target/Linux/debug/defs.mk/ file. Make sure that the target you are NOT interested in is also commented out.
Ubuntu Specific Notes
Ubuntu 10.04.01 LTS, 10.10, the following command will install all prerequisite packages.
Code Block | ||
---|---|---|
| ||
sudo apt-get install gcc make gettext patch bison flex liboil0.3 liboil0.3-dev libxml2 libxml2-dev doxygen libX11-dev libxext6 libxext-dev libglu1-mesa-dev libatk1.0-0 libatk1.0-dev libpango1.0-common libpango1.0-dev libcairo2 libcairo2-dev libtiff4 libtiff4-dev manpages libnet-telnet-perl libdigest-sha1-perl subversion ant1.8 libjdepend-java openjdk-6-jdk vlc
|
...
Ubuntu 11.04, 11.10 Using a default install of Ubuntu 10.10, the following command will install all prerequisite packages.
Code Block | ||
---|---|---|
| ||
sudo apt-get install gcc make gettext patch bison flex liboil0.3 liboil0.3-dev libxml2 libxml2-dev doxygen libX11-dev libxext6 libxext-dev libglu1-mesa-dev libatk1.0-0 libatk1.0-dev libpango1.0-common libpango1.0-devlibpango* libcairo2 libcairo2-dev libtiff4 libtiff4-dev manpages libnet-telnet-perl libdigest-sha1-perl subversion ant1.8ant libjdepend-java openjdk-6-jdk vlc xsltproc |
...
Using a default install of Ubuntu 1112.04 , 11.10 the following command will install all LTS prerequisite packages.
Code Block | ||
---|---|---|
| ||
sudo apt-get install gcc make gettext patch bison flex liboil0.3 liboil0.3-dev libxml2 libxml2-dev doxygen libX11-dev libxext6 libxext-dev libglu1-mesa-dev libatk1.0-0 libatk1.0-dev libpango* libcairo2 libcairo2-dev libtiff4 libtiff4-dev manpages libnet-telnet-perl libdigest-sha1-perl subversion ant libjdepend-java openjdk-6-jdk vlc xsltproc telnet-perl libdigest-sha-perl subversion ant libjdepend-java openjdk-6-jdk vlc xsltproc |
fix SHA1.pm renaming issue
Code Block |
---|
sudo cpan Digest::SHA1 |
If you do a fresh install of 12.04 (as opposed to an upgrade from 11.x) and need build CTP test streams run:
Code Block |
---|
sudo cpan HTTP::Request
sudo cpan LWP::UserAgent.pm
|
All Ubuntu
Add these lines to ~/.bashrc:
export
...
JAVA_HOME=/usr/
...
lib/jvm/java-6-openjdk
export PATH=$PATH:~/atelite/bin
export ANT_HOME=/usr/share/ant
OR
export ANT_HOME=~/apache-ant-1.8.4
If you have scripts or other that use /bin/sh, configure to use bash instead of dash:
Code Block |
---|
sudo dpkg-reconfigure dash |
...and answer No
lib/jvm/java-6-openjdk
export PATH=$PATH:~/atelite/bin