LinHES Forums
http://forum.linhes.org/

R4V3 on MSI K7T266 Pro2/PV-BT878P+ w/FM/GeForce2 Mx 400
http://forum.linhes.org/viewtopic.php?f=9&t=1740
Page 1 of 1

Author:  Greg Frost [ Tue Jun 15, 2004 6:43 am ]
Post subject:  R4V3 on MSI K7T266 Pro2/PV-BT878P+ w/FM/GeForce2 Mx 400

Quote:
# This is the script that I run once I have done a fresh install of
# KnoppMyth R4V3 to get everything working on my system. If you read some of
# the comments you will see that I did not have an easy time getting all
# things going, but since this script does almost everything that is required
# to take the Auto Install to a working system I hope that it is helpful to
# someone else trying to get the same or a similar thing going.
#
# My system consists of:
# TV Excel PV-BT878P+ w/FM (aka Pixelview Pro or something.)
# MSI K7T266 Pro2 Mobo
# Athlon 1700+ XP processon
# 120Gbyte 8M cache Western Digital HDD
# GeForce2 Mx 400 Graphics Card
#
# I have this script on a USB key drive which I mount from the root account
# using the command:
#
# mount /dev/sda1 /mnt
#
# I then change directory to the directory containing this script and run it
# from the root account.
#
# cd /mnt/GregsStuff
# ./myth_post_install.bash
#
# The following is a list of files that are used by the script that I have
# on the pen drive:
#
# nvtv-0.4.7.tar.gz
# (nvtv didnt seem to be on KnoppMyth which I found a bit mystifying?)
# joe_2.9.8-1_i386.deb
# (an editor that I now like to use)
# tv-icons-au.tar.gz
# (Icons for the tv stations in my area)
# .xawtv
# (Channel info for tv stations in my area for xawtv)
# .lircrc
# (Remote control key mappings for my remote)

# Start by copying the contents of the directory to /tmp.

echo -e "\a"
echo "====================="
echo "Copying stuff to /tmp"
echo "====================="
sleep 1

cp -fv * /tmp
cp -fv .* /tmp

# Also copy .xawtv which defines the channels in my local area for use with
# xawtv. This was the easiest way I could find to check that the tv card
# driver was working properly.

cp -fv /tmp/.xawtv /home/mythtv

# My first problem when I tried to play with things to get them working was
# that I am used to using a modeless editor like emacs. The only editor I
# could find was vi which I am not familiar with and hence not comfortable
# with. I saw a discussion on Slashdot about the joe editor. Most people that
# liked it said it was because they could use it without being familiar with
# it (the instructions for getting help are displayed on the top line yadda
# yadda), so I downloaded it and have used it happily since.

echo -e "\a"
echo "================================="
echo "Installing joe (Joe's own editor)"
echo "================================="
dpkg -i /tmp/joe_2.9.8-1_i386.deb

# My next problem was that the box I am using does not have internet
# connectivity and I live in Australia anyway, so the tv_grab_* scripts are
# not much use. I was a little dismayed to find that unless the channels
# database is correctly setup mythtv doesent work at all. Once I came to grips
# with what the mythtv-setup program was trying to do, and after finding some
# references on the web about manually entering channels into the database I
# set about making a script that would insert the required entries into the
# database for me. This would allow me to re-install my box with as little
# pain as possible (rather than having to mandrolically enter the channel
# data). For the record, I still rip thright the "1. General" section of the
# mythtv-setup manually as this seems to put a fair amount of stuff in the
# database that I didnt want to script (because if the database format changed
# in future versions this would presumably break my script).

echo -e "\a"
echo "============================================"
echo "Entering Channel info in the MythTV database"
echo "============================================"

if ! mysqldump mythconverg | grep "capturecard VALUES" ; then
echo Inserting capture card
echo "INSERT INTO capturecard VALUES (1,'/dev/video','/dev/dsp','/dev/vbi','V4L','Television',0,'mythtv',0,0,0,1,8192,8192);" | mysql mythconverg
fi

if ! mysqldump mythconverg | grep "videosource VALUES" ; then
echo Inserting video source
echo "INSERT INTO videosource VALUES (1,'Television','tv_grab_au','','australia');" | mysql mythconverg
fi

if ! mysqldump mythconverg | grep "cardinput VALUES" ; then
echo Inserting card input
echo "INSERT INTO cardinput VALUES (1,1,1,'Television','',NULL,'N','','10');" | mysql mythconverg
fi

if ! mysqldump mythconverg | grep "channel VALUES" ; then
echo "INSERT INTO channel VALUES (2002,'2','46',1,'ABC 2','ABC 2','/usr/share/icons/2.gif',NULL,NULL,'abc.com.au',0,32768,32768,32768,32768,'Default');" | mysql mythconverg
echo "INSERT INTO channel VALUES (2007,'7','49',1,'SAS 7','SAS 7','/usr/share/icons/7.gif',NULL,NULL,'seven.com.au',0,32768,32768,32768,32768,'Default');" | mysql mythconverg
echo "INSERT INTO channel VALUES (2009,'9','52',1,'NWS 9','NWS 9','/usr/share/icons/9.gif',NULL,NULL,'nine.com.au',0,32768,32768,32768,32768,'Default');" | mysql mythconverg
echo "INSERT INTO channel VALUES (2010,'10','55',1,'ADS 10','ADS 10','/usr/share/icons/10.gif',NULL,NULL,'ten.com.au',0,32768,32768,32768,32768,'Default');" | mysql mythconverg
echo "INSERT INTO channel VALUES (2028,'28','43',1,'SBS 28','SBS 28','/usr/share/icons/28.gif',NULL,NULL,'sbs.com.au',0,32768,32768,32768,32768,'Default');" | mysql mythconverg
fi

if ! mysqldump mythconverg | grep "codecparams VALUES" ; then
echo setting vertical resolution of recording profiles to 576/288
echo "INSERT INTO codecparams VALUES (1,'height','576');" | mysql mythconverg
echo "INSERT INTO codecparams VALUES (2,'height','576');" | mysql mythconverg
echo "INSERT INTO codecparams VALUES (3,'height','576');" | mysql mythconverg
echo "INSERT INTO codecparams VALUES (4,'height','288');" | mysql mythconverg
fi

# I have inserted references to channel icons in the database. These are
# little images that are displayed with the channel number when you change
# channels in mythtv. I found these images conveniently packaged by someone
# for download on the web.

echo -e "\a"
echo "========================"
echo "Installing channel icons"
echo "========================"
sleep 1

cd /usr/share/icons
cat /tmp/tv-icons-au.tar.gz | tar xzv

# If you want to look in the /var/log/messages file as user mythtv, the
# permissions need to be changed.

echo -e "\a"
echo "==========================="
echo "Setting permission on files"
echo "==========================="
sleep 1

chmod -v 644 /var/log/messages

# Once I had gotten this far, I found that all I got from the tv card was
# fuzz and it didnt seem to want to change channels.
# Relevant messages from dmesg were as follows:
#
# bttv0: using: *** UNKNOWN/GENERIC *** [card=0,autodetected]
# bttv0: using tuner=-1
# tuner: tuner type not set
# tuner: tuner type not set
# tuner: tuner type not set
#
# After a lot of searching of the web, I found someone saying that for my tv
# card some options needed to be specified in the /etc/modules.conf file. I
# dont know why the card can't be autodetected. Should I submit details to
# someone so that future versions of Bttv or the KnoppMyth installer handle
# this automatically???

echo -e "\a"
echo "===================================="
echo "Setting up BTTV/Tuner Module Options"
echo "===================================="
sleep 1

if ! grep -q "options bttv card=72 radio=1 pll=1" /etc/modules.conf ; then
echo Inserting card and tuner options into /etc/modules.conf
cp -f /etc/modules.conf /etc/modules.conf.pre_card_options
cat /etc/modules.conf.pre_card_options | awk '{print $0}/alias[ \n\t]char-major-81[ \n\t]bttv/{print "options bttv card=72 radio=1 pll=1\noptions tuner type=5"}' > /etc/modules.conf
else
echo Card and tuner options already in /etc/modules.conf
fi

# After a reboot, I could now use xawtv to change channels and display a
# decent tv picture. MythTV could also watch tv and change channels. The next
# problem was that the remote didn't work. The relevant lines from
# /var/log/lircd aftre running irw which exited immediately were as follows:
#
# May 16 16:07:15 mythtv lircd 0.7.0pre4: lircd(hauppauge) ready
# May 16 16:08:42 mythtv lircd 0.7.0pre4: accepted new client on /dev/lircd
# May 16 16:08:42 mythtv lircd 0.7.0pre4: could not open /dev/lirc
# May 16 16:08:42 mythtv lircd 0.7.0pre4: default_init(): No such device
# May 16 16:08:42 mythtv lircd 0.7.0pre4: caught signal
#
# At this point, lircd had crashed. I read somewhere (on the LIRC
# site I think that for remotes that are integrated with TV tuner cards, you
# need to use the lirc_gpio module. The following section makes the required
# changes to /etc/modules.conf to change the lirc device from lirc_i2c to
# lirc_gpio. This was only the start of getting the remote to work, because as
# I later found that LIRC needed to be rebuilt after specifying the device
# type as a pixelview_pro.

echo -e "\a"
echo "==================================="
echo "Setting up IR Remote Module Options"
echo "==================================="
sleep 1

if ! grep -q "lirc_gpio" /etc/modules.conf ; then
echo Inserting card and tuner options into /etc/modules.conf
cp -f /etc/modules.conf /etc/modules.conf.pre_ir_remote_option
cat /etc/modules.conf.pre_ir_remote_option | sed 's/lirc_i2c/lirc_gpio/g' > /etc/modules.conf
else
echo IR Remote option already in /etc/modules.conf
fi

# Rebuilding LIRC was not as easy as one might expect. I tried extracting
# the LIRC sources from /usr/src/lirc-0.7.0pre4.tar.bz2 which came with the
# KnoppMyth distribution but it would not build properly. In desparation, I
# tried rebuilding the Kernel first and that seemed to help. The steps to
# follow to rebuild the kernel and LIRC are shown below.

echo -e "\a"
echo "============================="
echo "Extracting the Kernel Sources"
echo "============================="

if [ -d /usr/src/linux-2.4.25-chw ] ; then
echo Kernel sources already extracted. Kernel must have been built.
else
sleep 1

cd /usr/src
cat /usr/src/linux-2.4.25-chw.tar.bz2 | tar xjv

echo -e "\a"
echo "======================================="
echo "Setting up the Kernel Sources and links"
echo "======================================="
sleep 1

if [ -d /usr/include/asm ] ; then
rm -Rvf /usr/include/asm
fi

if [ -d /usr/include/linux ] ; then
rm -Rvf /usr/include/linux
fi
rm /usr/src/linux
ln -svf linux-2.4.25-chw /usr/src/linux
ln -svf /usr/src/linux/include/asm-i386 /usr/include/asm
ln -svf /usr/src/linux/include/linux /usr/include/linux
cd /usr/src/linux
make mrproper

echo -e "\a"
echo "============================="
echo "Configuring the Kernel Build"
echo "============================="
sleep 1

cp /usr/src/kernel-headers-2.4.25-chw/.config /usr/src/linux
cd /usr/src/linux
make oldconfig

echo -e "\a"
echo "================"
echo "Doing 'make dep'"
echo "================"
sleep 1
cd /usr/src/linux
make dep

echo -e "\a"
echo "===================="
echo "Doing 'make bzImage'"
echo "===================="
sleep 1
cd /usr/src/linux
make bzImage

echo -e "\a"
echo "===================="
echo "Doing 'make modules'"
echo "===================="
sleep 1
cd /usr/src/linux
make modules

echo -e "\a"
echo "============================"
echo "Doing 'make modules_install'"
echo "============================"
sleep 1
cd /usr/src/linux
make modules_install

echo -e "\a"
echo "================="
echo "Installing Kernel"
echo "================="
sleep 1
cp -fv /boot/vmlinuz-2.4.25-chw /boot/vmlinuz-2.4.25-chw.old
cp -fv /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.25-chw
cp -fv /etc/lilo.conf /etc/lilo.conf~
sed 's@vmlinuz.old@boot/vmlinuz-2.4.25-chw.old@g' /etc/lilo.conf~ > /etc/lilo.conf
/sbin/lilo
fi

echo -e "\a"
echo "==========================="
echo "Extracting the LIRC Sources"
echo "==========================="

if [ -d /usr/src/lirc-0.7.0pre4 ] ; then
echo LIRC sources already extracted. LIRC must have been built already.
else
sleep 1
cd /usr/src
cat lirc-0.7.0pre4.tar.bz2 | tar xjv
fi

echo -e "\a"
echo "=============================================================="
echo "Copying the config file for the remote that comes with my card"
echo "=============================================================="
sleep 1

cp -fv /usr/src/lirc-0.7.0pre4/remotes/pixelview/lircd.conf.playtv_pro /etc/lircd.conf

# I havent had time to work out how to configure the LIRC build from this
# script. The call to /usr/src/lirc-0.7.0pre4/configure will run an
# interactive program from which I have to select the tv card and then
# request it to exit and run configure.

echo -e "\a"
echo "============================================="
echo "Configuring LIRC for the Pixelview Pro Remote"
echo "============================================="

if [ ! -f /usr/src/lirc-0.7.0pre4/.setup.config ] ; then
echo Configuring for LIRC compile.
cd /usr/src/lirc-0.7.0pre4
/usr/src/lirc-0.7.0pre4/configure
fi

echo -e "\a"
echo "==========================="
echo "Building LIRC for my remote"
echo "==========================="
sleep 1

cd /usr/src/lirc-0.7.0pre4

if [ ! -f ./drivers/lirc_dev/lirc_dev.o ] ; then
echo Compiling LIRC.
make
make install
fi

# Phew... After all of that, I can run irw and see the remote codes being
# displayed as I press buttons on my remote. mythtv however still seems to be
# blissfully unaware that I am trying to change channels or do anything else.
# A quick look at the howto indicates that if lirc isn't compiled in to myth
# you need to run irxevents in the background to pass the IR codes to
# mythtv. To get irxevents to run in the background, I modified the
# /home/mythtv/.fvwm/.fvwm2rc (where there was already a commented line to
# run irxevents - I just uncommented it.)

echo -e "\a"
echo "======================================"
echo "Getting irxevents to run automatically"
echo "======================================"
sleep 1

if grep -q "#exec irxevents &" /home/mythtv/.fvwm/.fvwm2rc ; then
echo uncommenting irxevents line
cp -f /home/mythtv/.fvwm/.fvwm2rc /home/mythtv/.fvwm/.fvwm2rc.no_irxevents
cat /home/mythtv/.fvwm/.fvwm2rc.no_irxevents | sed 's/#exec irxevents &/exec irxevent \&/g' > /home/mythtv/.fvwm/.fvwm2rc
else
echo No commented irxevents line fiound
fi

# The irxevents program uses /home/mythtv/.lircrc to define the remote
# control keymappings. I have created a file to work with my remote.

echo -e "\a"
echo "==========================================="
echo "Copying .lircrc remote control confiog file"
echo "==========================================="
sleep 1

cp -fv /tmp/.lircrc /home/mythtv/.lircrc

# The next problem is that my tv out isnt enabled. After some web searches,
# It seems that I need to use something called nvtv to control the tv out of
# my GeForce2 Mx 400. I couldn't find reference to it on my KnoppMyth
# distribution, so I downloaded it and built it as follows

echo -e "\a"
echo "============="
echo "Building nvtv"
echo "============="
sleep 1

if [ ! -d /usr/src/nvtv-0.4.7 ] ; then
cd /usr/src
tar xzvf /tmp/nvtv-0.4.7.tar.gz
cd /usr/src/nvtv-0.4.7
./configure
make
make install
fi

# You need superuser privileges to run nvtv but it can also be run by an
# unprivileged user if the nvtvd daemon is running. The following commands
# configure the system so that nvtvd is activated at boot time.

echo -e "\a"
echo "==============================="
echo "Get nvtvd to start at boot time"
echo "==============================="
sleep 1

if [ ! -x /etc/init.d/nvtvd ] ; then
echo Creating nvtv daemon startup script in /etc/init.d
echo "#!/bin/bash" > /etc/init.d/nvtvd
echo /usr/local/bin/nvtvd >> /etc/init.d/nvtvd
chmod 755 /etc/init.d/nvtvd
fi

if [ ! -h /etc/rc5.d/S99nvtvd ] ; then
ln -svf ../init.d/nvtvd /etc/rc5.d/S99nvtvd
fi

# Now ntvtd runs at boot time, we want the nvtv command that enables the
# tv output to be run when the machine boot too. The best place I could find
# for this was in the /home/mythtv/.fvwm/.fvwm2rc file just before it executes
# the KnoppMyth-run command. You can play with the parameters to nvtv to get
# the image to fit on your TV screen better.

echo -e "\a"
echo "=========================================================="
echo "Use nvtv at x startup to enable tv out on GeForce 2 MX 400"
echo "=========================================================="
sleep 1

if ! grep /usr/local/bin/nvtv /home/mythtv/.fvwm/.fvwm2rc ; then
cp -fv /home/mythtv/.fvwm/.fvwm2rc /home/mythtv/.fvwm/.fvwm2rc~
cat /home/mythtv/.fvwm/.fvwm2rc~ | awk '/exec KnoppMyth-run/{print "exec /usr/local/bin/nvtv -S PAL -r 800,600 -s Large -t"}{print $0}' > /home/mythtv/.fvwm/.fvwm2rc
fi

# Well, I thought I had things pretty well setup now, but I found that
# whenever I went to watch live TV, there was no sound until I changed
# channels for the first time. This would not be too much of a problem but I
# found that any scheduled recording also has no sound. This is a big
# problem. I searched the myth forums for ages until I finally in desparation
# started playing with the bttv card= settings in /etc/modules.conf. I
# couldn't work out how to properly remove and re-load the driver so I was
# rebooting each time I changed modules.conf. I tried the cards in
# /usr/src/linux/Documentation/video4linux/bttv/CARDLIST that has PV-BT or
# /Pixelview in the name. This included cards 16, 37, 50, 70 and 72. 72 was
# /the one that I found recommended somewhere and that I have been using
# /with some success to date. When I tried 16, the channel would not change
# /at all. When I tries 37, the channel would not change but I got audio
# when entering live TV. When I tried 70, everything seemed to work! I had
# /sound immediately on entering Live TV and my recordings also has sound. I
# /have left this section here rather than setting the correct card above in
# /the hope that it might be a helpful for someone to see a problem that can
# occur with the wrong card= parameter.

echo -e "\a"
echo "==================================================="
echo "Chosing a better match for the bttv card= parameter"
echo "==================================================="
sleep 1

if grep "options bttv card=72 radio=1 pll=1" /etc/modules.conf ; then
echo Changing card=72 to card=70
cp -f /etc/modules.conf /etc/modules.conf.wrong_card_option
cat /etc/modules.conf.wrong_card_option | sed 's/bttv card=72/bttv card=70/g' > /etc/modules.conf
else
echo Correct card=option already in /etc/modules.conf
fi

Author:  fitech [ Tue Nov 04, 2008 8:25 am ]
Post subject:  Can't seem to get this to work

Hi Greg,

I'm still not able to get the NVTV command that fixes my display to run at startup. It is in the .fluxbox/apps script, but it still doesn't seem to run.

I ran the following segment of your script...
Quote:
echo -e "\a"
echo "==============================="
echo "Get nvtvd to start at boot time"
echo "==============================="
sleep 1

if [ ! -x /etc/init.d/nvtvd ] ; then
echo Creating nvtv daemon startup script in /etc/init.d
echo "#!/bin/bash" > /etc/init.d/nvtvd
echo /usr/local/bin/nvtvd >> /etc/init.d/nvtvd
chmod 755 /etc/init.d/nvtvd
fi

if [ ! -h /etc/rc5.d/S99nvtvd ] ; then
ln -svf ../init.d/nvtvd /etc/rc5.d/S99nvtvd
fi

# Now ntvtd runs at boot time, we want the nvtv command that enables the
# tv output to be run when the machine boot too. The best place I could find
# for this was in the /home/mythtv/.fvwm/.fvwm2rc file just before it executes
# the KnoppMyth-run command. You can play with the parameters to nvtv to get
# the image to fit on your TV screen better.

echo -e "\a"
echo "=========================================================="
echo "Use nvtv at x startup to enable tv out on GeForce 2 MX 400"
echo "=========================================================="
sleep 1

if ! grep /usr/local/bin/nvtv /home/mythtv/.fvwm/.fvwm2rc ; then
cp -fv /home/mythtv/.fvwm/.fvwm2rc /home/mythtv/.fvwm/.fvwm2rc~
cat /home/mythtv/.fvwm/.fvwm2rc~ | awk '/exec KnoppMyth-run/{print "exec /usr/local/bin/nvtv -S PAL -r 800,600 -s Large -t"}{print $0}' > /home/mythtv/.fvwm/.fvwm2rc
fi


The second part regarding .fvwm just returns an error because I don't have that component installed.

I thought that by having the line
Quote:
[startup] {/usr/bin/nvtv -S NTSC -t -r 800,600 -s Huge}


in the...
/home/mythtv/.fluxbox/apps
would work, if I had the nvtvd running, but it doesn't seem to be.

I am an inexperienced linux user, so I was wondering if you could provide me with some additional explicit instructions about how I might be able to get the display to show up properly on boot.

Thank You.

Author:  Greg Frost [ Tue Nov 04, 2008 4:39 pm ]
Post subject:  Re: Can't seem to get this to work

Does running as the mythtv user:
Code:
/usr/bin/nvtv -S NTSC -t -r 800,600 -s Huge

from an xterm work?
Did nvtvd actually start and is it running?

Page 1 of 1 All times are UTC - 6 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/