mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-11-07 16:01:34 +00:00
(Phil) Added a 'how-to' document from Tomi Ollila to the end for
instructions on how to use the BT869 driver with a PAL TV, an X windows server, and kernel 2.4.4. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@1083 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
1 parent
4af866b0bf
commit
59b1cf2bb8
1 file changed
+290
+290
@@ -92,3 +92,293 @@ connected but you monitor not, may force the video card to configure and
|
||||
use the BT869 as your primary output device (all bets are off once X is
|
||||
started). Let me know if you have problems which you can't figure out
|
||||
(phil@netroedge.com).
|
||||
|
||||
|
||||
--------------------------------
|
||||
|
||||
On May 3rd, 2001 (My birthday, as it happens to be :') Tomi Ollila sent me
|
||||
a how-to from a user's perspective on using the BT869 with a 3Dfx card.
|
||||
It should also provide insight for other video card users who have a
|
||||
BT869 on board. Here is his document:
|
||||
|
||||
|
||||
How-To
|
||||
------
|
||||
|
||||
|
||||
This text describes my successful attempt to eventually get the TV-Out
|
||||
feature of 3DFX Voodoo 3 3000 (PAL) working in a Linux environment.
|
||||
I've successfully configured the 800x600 mode -- And currently I am
|
||||
not interested in 640x480 -- hardware scaling rules in all cases
|
||||
I need the tv-out. My monitor works much less worse w/ 800x600PAL...
|
||||
|
||||
All the information is based on my best knowledge but there might be
|
||||
some mistakes. In any case, THE ENTIRE RISK OF USING THIS INFORMATION
|
||||
IS WITH YOU, AND NO ONE ELSE IS LIABLE OF ANY PROBLEMS ENCOUNTERED.
|
||||
Please fix any mistakes, inaccuracies, writing errors, etc. you
|
||||
notice in this document.
|
||||
|
||||
I was about to write briefly, but sorry due to limited resources
|
||||
I did not have time to write briefly (too much thinking ;).
|
||||
Well, browse through the text and skip all irrelevant parts
|
||||
to proceed...
|
||||
|
||||
Tomi Ollila <too@iki.fi>
|
||||
|
||||
|
||||
The first time I got the the tv-out working I was working w/ Linux kernel
|
||||
2.4.3. Now I am redoing the work w/ Linux 2.4.4 and recording the steps
|
||||
in this document. Description of my system and software used is as follows:
|
||||
|
||||
RedHat 7.0 linux distribution (probably any distribution will do, since
|
||||
all of the needed software is compiled from packages that are not RH-pagkaged)
|
||||
(maybe if anything is important, are modutils-2.3.14-3 and kernel-headers-2.4.0-0.26)
|
||||
|
||||
XFree-4.0.3. I don't see any reason anyone uses any older. HW acceleration
|
||||
of Voodoo3 3000 works out of the box with this. Also Windowed!!!
|
||||
|
||||
lm_sensors-2.5.5: Get this or newer. I have not used any older.
|
||||
|
||||
i2c-2.5.5: Probably 2.4.x -kernel distributions has recent enough version
|
||||
of i2c. Since I also have IOmega BUZ and it's (working) versions require
|
||||
i2c-old, I cannot use the one's kernel provided. Since I cannot say anything
|
||||
about not using this i2c as separate package I suggest you do the same
|
||||
and compile this also.
|
||||
|
||||
I have used kgcc that comes in RedHat 7.0 -distribution to compile all
|
||||
stuff. Probably all other recent gcc -compilers will produce good results
|
||||
also: kgcc -v outputs:
|
||||
Reading specs from /usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/specs
|
||||
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
|
||||
|
||||
--
|
||||
|
||||
1) The work starts w/ kernel compilation (or skip to step 2, I quess it will
|
||||
work w/ any recent 2.2 and 2.4 -kernels)
|
||||
|
||||
# run make config, make menuconfig or make xconfig (I suggest 'xconfig')
|
||||
|
||||
For sure you need kernel module support and /proc -filesystem support
|
||||
(XXX add more absolute requirements)
|
||||
|
||||
Now I cannot say for sure, if following things needs to be compiled
|
||||
at kernel compilation time or does i2c-2.5.5 bring all these:
|
||||
character devices->i2c support->i2c support
|
||||
character devices->i2c support->i2c bit-banging interfaces (*)
|
||||
character devices->i2c support->i2c devices (**)
|
||||
character devices->/dev/agpart support
|
||||
character devices->Direct Rendering Manager (XFree86 DRI support) (+)
|
||||
character devices->3dfx banshee/Voodoo3+
|
||||
|
||||
make above as modules.
|
||||
|
||||
(*) I already forgot why I wanted some special attention for this
|
||||
(**) It seems I never need this
|
||||
(+) Hmm, It seems I have compiled this as part of the kernel binary
|
||||
|
||||
There is of course lot of other options you need to choose but these
|
||||
are probably the ones needed...
|
||||
|
||||
# run make dep
|
||||
# run make bzImage
|
||||
# run make modules
|
||||
# run make modules_install (as root)
|
||||
# copy arch/i386/boot/bzImage to /boot/vmlinuz-2.4.4 (as root)
|
||||
# edit /etc/lilo.conf and run lilo (as root)
|
||||
|
||||
2) In order to (the most easiest way) compile separate i2c and lm_sensors
|
||||
-package, symlink your linux source tree to /usr/src/linux (unless it is
|
||||
there already) and do the following
|
||||
|
||||
# tar zxvf i2c-2.5.5.tar.gz
|
||||
# cd i2c-2.5.5
|
||||
# make
|
||||
# make install (as root)
|
||||
# cd ..
|
||||
# tar zxvf lm_sensors-2.5.5.tar.gz
|
||||
# cd lm_sensors-2.5.5
|
||||
# make
|
||||
# make install (as root)
|
||||
# cd ..
|
||||
|
||||
Now you have all necessary modules installed on the system (and
|
||||
/usr/local/bin/sensors and /usr/local/sbin/sensors-detect).
|
||||
|
||||
But there is some configuration missing in order to activate
|
||||
the needed functionality of the modules...
|
||||
|
||||
3) Now, before going any further, let's take a look the modifications that
|
||||
is required in XFree86 -configuration so that X is ready for the
|
||||
tv-out functionality next time it is started.
|
||||
|
||||
XFree86-4.x uses the configuration file /etc/X11/XF86Config-4. Older
|
||||
configuration files needed "ModeLine"s for all display resolutions
|
||||
that are needed, but XFree86 version 4 can figure out those by itself.
|
||||
But what it cannot figure out, are some special ModeLines that may
|
||||
be reguired in various cases... and this is one of these.
|
||||
|
||||
For Voodoo 3 3000 TV out feature, special modelines are needed for
|
||||
the supported resolutions, 640x480 and 800x600 (there might be others
|
||||
but I don't know enough of the issue. In this document, I only
|
||||
activate the 800x600 mode.
|
||||
|
||||
Make backup copy of your /etc/X11/XF86Config-4 in case you accidentally
|
||||
screw something up so you can then reuse the old file if this happens.
|
||||
|
||||
Open /etc/X11/XF86Config-4 in your favourite editor and find line
|
||||
that contains `Section "Monitor"'. At the end of that section,
|
||||
just before line `EndSection', add the following lines:
|
||||
|
||||
ModeLine "640x480PAL" 29.50 640 675 678 944 480 530 535 625
|
||||
ModeLine "800x600PAL" 36.00 800 818 820 960 600 653 655 750
|
||||
|
||||
Then, find lines that starts with something like:
|
||||
|
||||
Section "Screen"
|
||||
Identifier "Screen0"
|
||||
Device "3Dfx Interactive, Inc.|Voodoo 3"
|
||||
Monitor "<Your monitor>"
|
||||
DefaultDepth 16
|
||||
...
|
||||
Subsection "Display"
|
||||
Depth 16
|
||||
# Modes "1024x768" "640x480" "800x600" "800x600PAL" #"400x300"
|
||||
Modes "1024x768" "800x600PAL"
|
||||
EndSubSection
|
||||
|
||||
Make sure that `DefaultDepth' is set 16 (I don't know if any other works)
|
||||
Then you notice there my resolutions as `Modes' -lines. I have outcommented
|
||||
the first `Modes' -line so that testing is easier. You can do what
|
||||
you widh here, just make sure to add that `"800x600PAL"' -line there.
|
||||
Save the file and exit editor.
|
||||
|
||||
|
||||
4) It's is time to reboot (with new kernel), that is the easiest way to
|
||||
continue.
|
||||
|
||||
5) After rebooting, and X startup `lsmod' in my machine output following:
|
||||
Module Size Used by
|
||||
tdfx 54536 1
|
||||
es1371 28500 0
|
||||
ac97_codec 8808 0 [es1371]
|
||||
|
||||
tdfx -module was loaded by X, and sound module by some RH -startup script.
|
||||
|
||||
Now you could run /usr/local/sbin/sensors-detect. After that was run in
|
||||
my PII class -machine it suggested I add the following:
|
||||
|
||||
to /etc/modules.conf
|
||||
alias char-major-89 i2c-dev
|
||||
|
||||
to some startup script (i choose append to /etc/rc.local)
|
||||
# I2C adapter drivers
|
||||
/sbin/modprobe i2c-piix4
|
||||
/sbin/modprobe i2c-voodoo3
|
||||
# I2C chip drivers
|
||||
/sbin/modprobe w83781d
|
||||
/sbin/modprobe eeprom
|
||||
|
||||
(you run the prg and add the stuff it suggests)
|
||||
|
||||
Let's now /sbin/modprobe -v i2c-voodoo3. Now I have:
|
||||
|
||||
Module Size Used by
|
||||
i2c-voodoo3 3012 0 (unused)
|
||||
i2c-algo-bit 7796 2 [i2c-voodoo3]
|
||||
i2c-core 12844 0 [i2c-algo-bit]
|
||||
tdfx 54536 1
|
||||
es1371 28500 0
|
||||
ac97_codec 8808 0 [es1371]
|
||||
|
||||
I think this is the only one of the above that is required for the task.
|
||||
(If that is not true, I'll revise this text and you never know I though
|
||||
such a thing)
|
||||
|
||||
Now, turn on your TV set (unless it is already open) and make sure it
|
||||
is getting (either s-video or composite... I personally have only
|
||||
tested composite) input from your voodoo3 card. Don't change any
|
||||
screen resolution just yet...
|
||||
|
||||
You notice the tv set screen is still blank. Changing screen resolutions
|
||||
won't do any change on that, don't bother trying.
|
||||
|
||||
So, how to continue from there. The answer was found looking through
|
||||
all the files that are found with zsh command line in lm_sensors dir:
|
||||
grep -i voodoo3 **/*(.) | less
|
||||
The file doc/chips/bt869 contains interesting information, with it
|
||||
and some other information I found somewhere else, don't remember
|
||||
either, I did:
|
||||
|
||||
modprobe -v bt869 (or insmod /lib/modules/2.x.x/misc/bt869)
|
||||
|
||||
NOW! you should see some noise on your TV-Set screen.
|
||||
|
||||
and `lsmod' returns (on my machine)
|
||||
|
||||
Module Size Used by
|
||||
bt869 5392 0 (unused)
|
||||
i2c-voodoo3 3012 0 (unused)
|
||||
sensors 6140 0 [bt869]
|
||||
i2c-algo-bit 7796 2 [i2c-voodoo3]
|
||||
i2c-core 12844 0 [bt869 sensors i2c-algo-bit]
|
||||
tdfx 54536 1
|
||||
es1371 28500 0
|
||||
ac97_codec 8808 0 [es1371]
|
||||
|
||||
If you now try to change mode to `800x600PAL' The noise pattern just
|
||||
changes. That's because there are various parameters for bt869 to
|
||||
make it operate in different systems.
|
||||
|
||||
The configuration entries for bt869 live somewhere in `proc' filesystem
|
||||
and since it is so hard to remember, the following commands helps out:
|
||||
|
||||
# find /proc -name "bt869*" -print
|
||||
|
||||
In my system that output: /proc/sys/dev/sensors/bt869-i2c-0-44. Since
|
||||
the last few characters may be different on your system I'll use...
|
||||
|
||||
# ls /proc/sys/dev/sensors/bt869* ... and this outputs:
|
||||
|
||||
colorbars: Output colorbars instead of display data. Default `0'.
|
||||
depth: Display depth. Seems to be `16' on my system.
|
||||
half: No idea. Default `0'.
|
||||
ntsc: 1: use NTSC, 0: use PAL. Default: `1'.
|
||||
res; Screen resolution to use. Defaut: `640 480'.
|
||||
status: Outputs some status info I do not know what that is.
|
||||
|
||||
For me, in order to get TV sync with incoming signal (or is it Voodoo3
|
||||
that needs syncing), I first put colorbars on, and when I get colorbars
|
||||
visible I shut colorbars off -- and then I have part of my 1024x768
|
||||
displayed on TV-screen. Normal WIMP screen doesn't look so nice, but
|
||||
games, pictures, etc. Looks just fine. And HW acceleration rules.
|
||||
|
||||
Do the following to achieve this:
|
||||
|
||||
# echo 1 > /proc/sys/dev/sensors/bt869*/colorbars
|
||||
# echo 0 > /proc/sys/dev/sensors/bt869*/ntsc
|
||||
# echo 800 600 > /proc/sys/dev/sensors/bt869*/res
|
||||
|
||||
Press ctrl-alt-num_keypad_+
|
||||
|
||||
Now you should see vertical colorbars on your TV-Set
|
||||
|
||||
# echo 0 > /proc/sys/dev/sensors/bt869*/colorbars
|
||||
|
||||
Now (part of) your computer display should be visible on your TV-Set.
|
||||
|
||||
|
||||
... Ok, I did just that... after ctrl-alt-num_keypad_+ I did not get
|
||||
synchronized colorbar output visible on my TV. So, at this time I
|
||||
re-did...
|
||||
|
||||
# echo 1 > /proc/sys/dev/sensors/bt869*/colorbars
|
||||
|
||||
... and got colorbars, and ...
|
||||
|
||||
# echo 0 > /proc/sys/dev/sensors/bt869*/colorbars
|
||||
|
||||
... got my computer display visible on my TV.
|
||||
|
||||
|
||||
#EOF
|
||||
|
||||
Reference in new issue
Block a user