From owner-freebsd-ports Wed May 24 04:23:32 1995 Return-Path: ports-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id EAA10472 for ports-outgoing; Wed, 24 May 1995 04:23:32 -0700 Received: from sirius.brunel.ac.uk (root@sirius.brunel.ac.uk [134.83.128.62]) by freefall.cdrom.com (8.6.10/8.6.6) with SMTP id EAA10433 for ; Wed, 24 May 1995 04:21:13 -0700 Received: from mishmash.brunel.ac.uk by sirius.brunel.ac.uk with SMTP (PP) id <07037-0@sirius.brunel.ac.uk>; Wed, 24 May 1995 12:17:53 +0100 From: Nik Clayton Message-Id: <15746.9505241117@mishmash.brunel.ac.uk> Subject: Re: nv and vat. To: smace@crash.ops.neosoft.com (Scott Mace) Date: Wed, 24 May 1995 12:17:44 +0100 (BST) Cc: ports@FreeBSD.org In-Reply-To: <199505240304.WAA00353@crash.ops.neosoft.com> from "Scott Mace" at May 23, 95 10:04:39 pm X-Mailer: ELM [version 2.4 PL21] Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 10191 Sender: ports-owner@FreeBSD.org Precedence: bulk > has anyone gotten nv or vat to sucessfully work on freebsd? > sd work ok. My current documentation on this. If someone wants to put this up with the main docs then be my guest. N $Id: vat-on-FreeBSD,v 1.2 1995/04/19 20:01:16 nik Exp $ Introduction I have been attempting to run the multicast program 'vat' on FreeBSD 2.0 for some time. During this time I have posted several messages to Usenet asking for information. Response has been patchy, but I have had many messages essentially saying "Me too. Can you pass on any information you have?" I've finally managed to get it working, and this document explains what I did to do this. I haven't been able to find any of this information written down anywhere else. Hopefully some of you will find it useful. Acknowledgements I am indebted to Amancio Hasty (hasty@netcom.com) for his advice and source code. Also (in no particular order) Gareth Stoney for the sound card, Janet, Pat and Hadi at Brunel Computer Centre for their patience, TriGem Computers UK Ltd. for the loan of the computer, and the Executive of B-1000 Brunel Radio for putting up with me for the past seven or so weeks, Oh, and Jordan Hubbard of the FreeBSD team for explaining that FreeBSD can kernel panic on 486/DX4s, but works fine on everything else. If I've missed anyone from this list, apologies. It wasn't intentional. Equipment and configuration What follows runs successfully on an i486 DX/66, w/ 16Mb RAM and a 1Gb EIDE HD. In addition, I'm using a WD8013 net card, PCI graphics system and a Gravis Ultrasound rev 2.2 with cheap speakers and microphone. I understand that 'vat' has also been tested on a GUS rev 3.6., and is believed to work on PAS16 cards. I have no direct experience of this however. If the instructions below don't work you then there's not a lot I can do about it. In particular, I have no clue about configuring BSD for a PAS16. I also don't know if this will work with a GUS MAX. I've also assumed that your local Computer Center/service provider has some sort of multicast routing software working and is putting multicast packets across whichever subnet you are located on. Without this, multicasting is not going to work. Software FreeBSD 2.0-RELEASE as the operating system. Being in the UK I got it from unix.hensa.ac.uk, but any SunSite mirror or Walnut Creek mirror should have it. The main FAQ lists FTP sites for FreeBSD. This is not an installation document for FreeBSD, there are many fine FAQs which make this task relatively simple. XFree86-3.1 - The X system for FreeBSD. Both 'sd' and 'vat' are X programs. At a minimum, the "kerndist" source code distribution, which allows you to compile a new kernel. If you want it, get the entire "srcdist" as well, although it's not mandatory. sd - Session directory. This shows existing MBONE sessions and allows you to create your own. Get this from ftp://ftp.ee.lbl.gov/conferencing/sd/i386-sd.tar.Z or archie search for a site closer to you that has it. vat - Visual Audio Tool. The bit that actually records and replays the sound over the net. I got my copy from ftp://ftp.ee.lbl.gov/conferencing/vat/i386-vat.tar.Z tcl7.3 - The interfaces to 'sd' and 'vat' can be reconfigured with Tcl/Tk. While not essential, you might want to acquire this. It is available as a FreeBSD 'package' from anywhere that archives FreeBSD packages. Installation - First install FreeBSD and X and confirm that they work. Use the GENERIC kernel. A tip when installing X. If you are using a serial mouse, use /dev/cua00 for COM1:, and /dev/cua01 for COM2: (you might need to create these with the /dev/MAKEDEV script). - Now, you have to compile a new kernel with support for the Gravis Ultrasound (GUS) and 'vat'. To do this you are going to need some source code patches. I've placed these patches in ftp://ftp.brunel.ac.uk/studentsoft/sys-vat.tar.gz and ftp://b1000.brunel.ac.uk/pub/sys-vat/sys-vat.tar.gz Acquire the file, uncompress it, and put it somewhere handy. I used /usr/incoming. Note that these are not 'patches' in the true sense of the word. They actually directly replace some files. This means that they are only guaranteed to work on FreeBSD 2.0. Not -SNAP, not -current, just plain 2.0. They might of course, but I can't guarantee it. Now, do this, % su [root password] # cd /usr/src # tar xvf /usr/incoming/sys-vat.tar [This replaces some files in /usr/src/sys/i386/isa/sound for vat] # cd sys/i386/conf [This is where kernel configuration files are stored] # cp GENERIC name [where 'name' is the name you want for your kernel. In what follows, "name" means whatever name you used for your kernel. I used "B1000"] You now have to edit the file 'name'. At the very least, make sure that the following two lines are present somewhere, device snd4 at isa? port 0x220 irq 15 drq 6 vector gusintr pseudo-device vat_audio The first of these configures a GUS on port 0x220 using irq 15. If you use different ports or irqs then use these instead. The second prepares the kernel for vat. You will also need to make sure you don't delete the options MROUTING line. If you get stuck, make a copy of the file 'LINT' and work from that rather than 'GENERIC'. This contains just about every configuration option there is. Just comment out the ones that don't apply to you. Now, go and look at the file "/usr/src/sys/i386/isa/sound/sound_config.h." Look for lines that start "#define GUS_". These set the default GUS_BASE, GUS_IRQ and so on. On my machine, sound_config.h contains (amongst other things) #define GUS_BASE 0x220 #define GUS_IRQ 15 #define GUS_MIDI_IRQ GUS_IRQ #define GUS_DMA 6 (in the real thing, these are wrapped in #ifndef...#endif pairs). I'm not sure if this step is absolutely required, but it doesn't hurt to make sure that these values are the same as the ones you used in the "device" line in the kernel. When you have a kernel config file you're happy with, # /usr/sbin/config name and then # cd ../../compile/name # make depend # make Tip: The first time I compiled a kernel it complained about libkern.a. You might need to do # rm /usr/src/sys/libkern/libkern.a to have the kernel library rebuilt before you issue the 'make depend' line above. - After anywhere between 15 minutes (on a 486DX 66) and 1hr (on a 486SX 25) the make should finish. You will find a file called 'kernel' in the current directory. This is the new kernel file. To use it, do the following, # mv /kernel /kernel.generic # cp kernel /kernel.gus.vat # cd / # ln kernel.gus.vat kernel Now reboot the machine. - With a bit of luck, your machine will reboot correctly. You should see a message at bootup that looks like this: snd4 at 0x220 irq 15 drq 6 on isa snd4: MIDI: Successfully attached ProAudioSpectrum MV101 If you do, then your GUS has been recognised. If you don't, something's gone wrong. Unfortunately, I don't know what. - At this point, it's time to make the device files that make all this possible. Once again, login and then # su [root password] # cd /dev # ./MAKEDEV snd4 # ./MAKEDEV vat # mv /dev/vatio /dev/audio This last line in particular is quite important, and not doing it caused me no end of hassle. Apparently, vat on FreeBSD doesn't use the /dev/vatio device, it uses /dev/audio. So we move it onto /dev/audio to get everything working. - OK, assuming everything has gone OK by now, start up X (startx). You might want to change to a regular userid before doing that. - Take the tar files containing sd and vat and uncompress them somewhere on your path. I put them in a users bin/ directory whilst testing, and did % setenv PATH ~/bin:$PATH Make sure that the "sd" and "vat" executables are in the path. You might also need to "rehash" to make sure the shell's path hash table is up to date after doing this. - And now for the moment of truth. % sd Should pop up an sd window. From this, click the "new" button to create a new channel. Choose a name and description, and make sure it's site local. After you've done this and hit "create", vat should pop up. At this point, make sure your speakers and microphone are plugged on. Click on the microphone icon (to that it is "regular colour", not "inverted") and say something. You should see level bars going up and down next to the mic slider. If you don't, then again, something has gone wrong. Make sure all the sound stuff is plugged in the right way around. If everything's worked correctly, go and find someone else who can listen to you to make sure send and receive works OK. But it should. Hopefully. And that's it. Once again, this document is basically a list of everything I've had to do to get multicasting w/ vat working on FreeBSD. Your mileage may vary. I'm releasing this in the hope that it saves someone all the hair pulling I've gone through to get this working. If it does, great, if it doesn't, sorry. If anyone has got vat working on other equipment, why not e-mail me with what you did, and I'll add it in. Maybe this could become a complete "Multicasting on FreeBSD FAQ". Eventually, I will ensure that this document and *all* the software mentioned in it are available for FTP from some site. I'll post when this happens. Nik Clayton (Nik.Clayton@brunel.ac.uk) =-[Opinion, n: See the above text for an example]=-=[Kibo #: e]-[RYRYRY]=-= =-[The Silly Sod Society: To perfect and to swerve]=-[beable]-=[TP U BG]=-= And today will go down in history as January 17 1991.