From 59b1cf2bb816501dbd5d9f921749195a86804231 Mon Sep 17 00:00:00 2001 From: Philip Edelbrock Date: Thu, 3 May 2001 21:00:33 +0000 Subject: [PATCH] (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 --- doc/chips/bt869 | 290 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 290 insertions(+) diff --git a/doc/chips/bt869 b/doc/chips/bt869 index 24f029e6..47ec2179 100644 --- a/doc/chips/bt869 +++ b/doc/chips/bt869 @@ -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 + + +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 "" + 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 +