Discussion:
Can someone verify support for "AzTech Sound Galaxy Nova 16 Extra II-3D - using AZT-2316/R Chipset - FCC-ID:I38-MMSN846" ?
r***@mail.com
2007-05-07 05:46:04 UTC
Permalink
Hello alsa devs,
I have an old "AzTech Sound Galaxy Nova 16 Extra II-3D - using AZT-2316/R
Chipset - FCC-ID:I38-MMSN846" which I know to work on windows 2000
natively and on other windows using drivers from
http://www.aztech.com/support_download_soundcard01.html, however, I was
unsuccessful in using it in linux ( I tried many dists, but my most
recent failure was with xubuntu 7.04 which have the most recent alsa).
I believe the card is unsupported in alsa and I was hoping someone might
be free to help me with this legacy card ?
Since the card is unsupported I figured this should go the devs.

* Their is this piece of code which might be relevant:
http://www.gelato.unsw.edu.au/lxr/source/sound/isa/azt2320.c

21 This driver should provide support for most Aztech AZT2320 based
cards.
22 Several AZT2316 chips are also supported/tested, but autoprobe
doesn't
23 work: all module option have to be set.

* I'm unsure of what it means to configure manually or how to do so...
I do however have the card working currently with windows 2000 so if its
a question of IRQ and DMA, I can find those with relative ease.

* I obviously tried modprobeing the snd-sgalaxy driver/module, with no
success - possibly related ?

Thanks
Ram Kromberg
***@mail.com
Rene Herman
2007-05-07 20:51:24 UTC
Permalink
Post by r***@mail.com
I have an old "AzTech Sound Galaxy Nova 16 Extra II-3D - using AZT-2316/R
Chipset - FCC-ID:I38-MMSN846"
I have a few similar cards. Also a "Nova 16 Extra" in fact, but that one an
older AZT1605 based version (I38-MMSN811). My closest match is probably a
"Sound Galaxy Waverider Pro 32-3D" (I38-MMSN811852) which is a AZT2316R +
CS4231 (+ an AZT3321 wavetable). Have a number of AZT2316A cards as well.
Post by r***@mail.com
I believe the card is unsupported in alsa and I was hoping someone might
be free to help me with this legacy card ?
It's at least "unsupported" in the sense that noone is supporting it yes :-)

As you have noticed, snd-sgalaxy will not work for this card. "sgalaxy" is
actually a really unfortunate name for that driver as Aztech named _all_
their cards "Sound Galaxy" and snd-sgalaxy only drives the couple with a
AZT1605 chip on them. The module should preferably be renamed.

As you also found out, snd-azt2320 will not work as is as that's an ISA-PnP
only driver and the AZT2316A/R is legacy ISA. The drivers are not more than
shells around the cs4231 library though and can be made to work with
relative ease. I was actually working on snd-sgalaxy a while ago and briefly
looked at my azt2316 cards as well but a few other things intervened again.

Let's first see if your card is as expected. It should have a "JMPB0" on it
somewhere that you can use to choose between 0x22x and 0x24x as the base
address. Look which one it's using (the windows driver will also tell).
Then, there should be a "JMPCFG" jumper on the card somewhere where 1-2
means "use EEPROM settings" and 2-3 "use software settings". For use in
Linux, you should (at least for now) set it to EEPROM so that the card will
enable itself and not wait for the driver to do so.

If you have that done, you should already be able to use it in it's basic
Soundblaster Pro mode. Try loading snd-sb8 with:

modprobe snd-sb8 port=0x220 irq=5 dma8=1

This is not unlikely to work (change 0x220 to 0x240 if the jumper is set to
the other one ofcourse). If it's giving you a load "hum" on the speakers
immediately after loading use the DOS mixer application to mute all and save
to the EEPROM.

I can help with getting the rest to work (where "the rest" is the MIDI port
and the cs4231 codec which it offers instead of the sb8 mode as well) in a
few weeks time, but maybe you won't even care greatly -- it's "instead of"
and while the cs4231 is in principle the better chip these days it's all
water under the bridge; they're _both_ old crap. But yes, I'll also want my
2316A/R cards supported again so if you have a while, I'll get to it...

Rene.
Rene Herman
2007-05-10 14:56:07 UTC
Permalink
Post by Rene Herman
As you have noticed, snd-sgalaxy will not work for this card. "sgalaxy"
is actually a really unfortunate name for that driver as Aztech named
_all_ their cards "Sound Galaxy" and snd-sgalaxy only drives the couple
with a AZT1605 chip on them.
Actually, snd-sgalaxy doesn't work for the AZT2316A cards that I've tried it
with (two different types) but it _does_ in fact work for my AZT2316R based
"Sound Galaxy Waverider Pro 32-3D" (I38-MMSN852) that is a very close match
to your "Nova 16 Extra II-3D" (I38-MMSN846).

Please first make sure the EEPROM on the card contains sensible values for
which you'll unfortunately need the DOS utilities (once). They can be had from:

ftp://ftp.aztech.com/download/sg/NOV16EII

After installation, C:\FOO\UTILITY\ contains CONFIG.EXE, HWSET.EXE,
VOLSET.EXE, DIAGNOSE.EXE, ...

Running "HWSET /MR /MS" (and "VOLSET /MR /MS") will restore factory default
values to the EEPROM which means SB = 0x220, irq 5, dma 1 and WSS = 0x530.

The DOS utilities use IRQ 10 as the WSS IRQ but that one didn't work under
Linux for me. Too many possible reasons why not though, so try it. The WSS
part can be configured on IRQ 7, 9, 10 and 11 and 7 worked for me. Make sure
you also set your BIOS to reserve this IRQ and the SB IRQ and DMA (which the
WSS part shares) for "legacy ISA".

When you've done that (or they were sensible to start with) you should both
be able to load snd-sb8 as adviced in the previous message:

modprobe snd-sb8 port=0x220 irq=5 dma8=1

and snd-sgalaxy for access to the WSS part:

modprobe snd-sgalaxy sbport=0x220 wssport=0x530

The sgalaxy driver will grab IRQ7 when it's free.

But...

Before I noticed that sgalaxy would in fact work on my 2316R I had already
done most of a new "azt2316" driver. Filling in the hardware details showed
that sgalaxy actually worked for the 2316R (again, not for my 2316A cards).

snd-sgalaxy is not a nice driver so I did complete it and renamed it to
snd-azt1605. It's attached as a patch against kernel 2.6.21. If you don't
know what that means or what to do with it, never mind, both sb8 and sgalaxy
should as said also work.

The attached driver is a bit better in so far that it keeps the SB part
reserved after switching to WSS (we don't want anyone resetting our bus
interface out from under us while we're happily playing MP3s), provides
access to the onboard MPU-401 (MIDI port) and OPL3 (FM synthesis chip) and
allows to tell the driver where you want the wss_irq yourself. If you want
to try it out, it should be loaded as:

modprobe snd-azt1605 port=0x220 irq=5 dma=1 wss_port=0x530 wss_irq=7

Also specify mpu_port=0x330 (and possibly mpu_irq=9) and fm_port=0x388 if
you want MPU-401 and OPL3 enabled.

It's been only quickly tested on AZT1605 and AZT2316R and I'm not submitting
this or anything. AZT2316A not working is probably something small but it's
going to need trial & error and/or poking around in the DOS utilities and I
don't have time for either at the moment.

It does show promise for eventually having one unified snd-galaxy driver (I
hate that s!) with AZT2320 folded back in as well...

Hope this helps.

Rene.
r***@mail.com
2007-05-10 18:24:09 UTC
Permalink
I already installed dos + the drivers and ubuntu, So I'll try working
with that.
As far as I can tell from the win95 driver name, the "AzTech Sound Galaxy
Nova 16 Extra II-3D - using AZT-2316/R Chipset - FCC-ID:I38-MMSN846" is
full-duplex : In :
http://www.aztech.com/support_download_soundcard01.html :
2316FD95.ZIP 90,526 Windows 95 Full Duplex Audio Driver Version 4.8.0
Build 1128

I will try working with the software first, then probably either the
epprom or the jumper (since I have dos + drivers working I'm tempted to
try the epprom first ;-) )

I can't at the moment compile in that machine (My poor little xubuntu is
barely working as it is, I don't even dare installing samba let alone a
dev-env of any sorts..., maybe when I'll get everything working I'll
install slackware, I decided gentoo is not a good idea ;-) ) so I won't
be testing your drivers any time soon :-( , I do however hope you'll
submit your drivers cause a non PnP driver can't hurt and waiting for
confirms on such old hw will be point-less...

When I'll have results I'll let you know...

Also, I'm CCing the mailing list now as pair request...

Thanks Rene,
Ram Kromberg
***@mail.com
r***@mail.com
2007-05-10 20:57:06 UTC
Permalink
Well, it didn't take long so here's the results :
"sudo modprobe snd-sb8 port=0x220 irq=5 dma8=1" gave no errors, and
"lsmod" later gave:
Module Size Used by
snd_sb8 9216 0
snd_sb8_dsp 12288 1 snd_sb8
snd_sb_common 17792 2 snd_sb8,snd_sb8_dsp
snd_opl3_lib 11520 1 snd_sb8
snd_hwdep 9988 1 snd_opl3_lib
snd_pcm_oss 44544 0
snd_pcm 79876 3 snd_sb8,snd_sb8_dsp,snd_pcm_oss
snd_mixer_oss 17408 1 snd_pcm_oss
snd_seq_dummy 4740 0
snd_seq_oss 32896 0
snd_seq_midi 9600 0
snd_rawmidi 25472 2 snd_sb8_dsp,snd_seq_midi
snd_seq_midi_event 8448 2 snd_seq_oss,snd_seq_midi
snd_seq 52592 6
snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
snd_timer 23684 3 snd_opl3_lib,snd_pcm,snd_seq
snd_seq_device 9100 6
snd_opl3_lib,snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
snd 54020 13
snd_sb8,snd_sb8_dsp,snd_sb_common,snd_opl3_lib,snd_hwdep,snd_pcm_oss,snd_pcm,snd_mixer_oss,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore 8672 1 snd
snd_page_alloc 10888 1 snd_pcm
nfs 240876 0
nfsd 218992 17
exportfs 6912 1 nfsd
lockd 64904 3 nfs,nfsd
sunrpc 161340 12 nfs,nfsd,lockd
apm 22752 1
ppdev 10116 0
cpufreq_stats 7360 0
cpufreq_ondemand 9228 0
cpufreq_powersave 2688 0
freq_table 5792 2 cpufreq_stats,cpufreq_ondemand
cpufreq_conservative 8200 0
cpufreq_userspace 5408 0
nls_iso8859_1 5120 1
nls_cp437 6784 1
vfat 14208 1
fat 53916 1 vfat
ext2 66824 1
lp 12452 0
parport_pc 36388 1
parport 36936 3 ppdev,lp,parport_pc
pcspkr 4224 0
ipv6 268704 8
tsdev 8768 0
evdev 11008 1
ext3 133128 1
jbd 59816 1 ext3
mbcache 9604 2 ext2,ext3
8139too 27648 0
ide_cd 32672 0
cdrom 37664 1 ide_cd
ide_disk 17024 5
floppy 59524 0
ehci_hcd 34188 0
8139cp 25088 0
mii 6528 2 8139too,8139cp
uhci_hcd 25360 0
usbcore 134280 3 ehci_hcd,uhci_hcd
piix 10756 0 [permanent]
generic 5124 0 [permanent]
ata_generic 9092 0
libata 125720 1 ata_generic
scsi_mod 142348 1 libata
fbcon 42656 0
tileblit 3584 1 fbcon
font 9216 1 fbcon
bitblit 6912 1 fbcon
softcursor 3200 1 bitblit
vesafb 9220 0
capability 5896 0
commoncap 8192 1 capability


But when I try to play an ogg gxine crushes an xmms
ignores, when trying an mp3 gxine again crushes and
xmms gives the soundcard no configured error...

Just a recap: I verifyed using dos the settings
(hwset and volset - default and save), and used the bios
to set "IRQ 5" as "ISA Legacy".

I didn't use the jumper as I see no need since the epprom
already does the job.

So I'm stuck,
What do you think I should do now ?
Ram Kromberg
***@mail.com
Rene Herman
2007-05-10 21:06:20 UTC
Permalink
Post by r***@mail.com
Just a recap: I verifyed using dos the settings
(hwset and volset - default and save), and used the bios
to set "IRQ 5" as "ISA Legacy".
I didn't use the jumper as I see no need since the epprom
already does the job.
I don't understand what you mean here. You need to set the JMPCFG jumper to
the EEPROM setting so that the card will configure itself at poweron using
the values stored in its EEPROM and not wait for a driver to configure and
enable it (which the Linux driver does not do).

Rene.
r***@mail.com
2007-05-11 16:44:09 UTC
Permalink
o, I thought the epprom settings are default until the
driver kicks in...

So I set the jumpers accordingly and still no luck:
IDESEL: 1-2 (Disabled - Its the CD IDE ON\OFF)
JMPCFG: 1-2 (EPPROM ON)
JMPB0: 1-2 (22XH)
IDEIRQ: 1 (IRQ 15 - shouldn't make a different)
JX1: 2-3 (Carbon MIC - again just letting you know though it shouldn't
make a different)

This should make sense with the picture I sent earlier...
I also removed another card I had connected - ISA Modem, Just making sure
their are no conflicts...

Here's the grim results:

sudo modprobe snd-sb8 port=0x220 irq=5 dma8=1
FATAL: Error inserting snd_sb8
(/lib/modules/2.6.20-15-generic/kernel/sound/isa/sb/snd-sb8.ko): No such
device

P.S: Also an interesting note is that I now installed Win98 on top of
that Dos and it worked too -
It did also mention to use IRQ 11 so I also reserved in the bios, but
again to no avail.

Maybe I'm missing something ?
Ram Kromberg
***@mail.com
Rene Herman
2007-05-11 21:42:48 UTC
Permalink
Post by r***@mail.com
o, I thought the epprom settings are default until the
driver kicks in...
Only if you set the JMPCFG jumper to EEPROM; otherwise the card's just dead
in the water until software enables it (by writing to some specific I/O
port; not sure which).
Post by r***@mail.com
IDESEL: 1-2 (Disabled - Its the CD IDE ON\OFF)
JMPCFG: 1-2 (EPPROM ON)
JMPB0: 1-2 (22XH)
IDEIRQ: 1 (IRQ 15 - shouldn't make a different)
JX1: 2-3 (Carbon MIC - again just letting you know though it shouldn't
make a different)
This should make sense with the picture I sent earlier...
I also removed another card I had connected - ISA Modem, Just making
sure their are no conflicts...
sudo modprobe snd-sb8 port=0x220 irq=5 dma8=1
FATAL: Error inserting snd_sb8
(/lib/modules/2.6.20-15-generic/kernel/sound/isa/sb/snd-sb8.ko): No such
device
Okay, that's unfortunate. It works fine here with my AZT2316R and AZT1605 cards.

1. Did you restore the default settings to the EEPROM with "HWSET /MR /MS"?

If an "EEPROM.SYS" is being loaded from your CONFIG.SYS in the DOS setup
also try that HWSET after rebooting with that line commented out. maybe it's
interfering (EEPROM.SYS is the "software" that takes on the role of the
physical EEPROM when you have the JMPCFG jumper set to "software").

2. What do the last few lines of "dmesg" say after the modprobe?

3. Both my AZT2316A cards actually needed the JMPCFG jumper set to the
"software" setting to even have the DSP show up at 0x220 which seems like it
just might be a strange fluke. But if it really won't work, try the HWSET
and loading of the snd-sb8 driver also with the JMPCFG jumper switched again...

Don't seem to have more bright ideas...

Rene.
r***@mail.com
2007-05-13 10:17:57 UTC
Permalink
EPPROM ON:

OK, I formated that dos partition and simply sys a: c:,
then I installed the driver (copying them to the partition from the linux
install),
in theinstall I selected the defaults settings (220 irq5 dma1...) and
rebooted,
now in dos again I used diagnose to test the audio and hwset /mr /ms to
reset and save the epprom.

now I rebooted and loged to linux:

sudo modprobe snd-sb8 port=0x220 irq=5 dma8=1
FATAL: Error inserting snd_sb8
(/lib/modules/2.6.20-15-generic/kernel/sound/isa/sb/snd-sb8.ko): No such
device

dmesg last lines (
[ 319.827327] Sound Blaster soundcard not found or device busy

-reboot-

EPPROM OFF (SOFTWARE ON):

in dos: diagnose works,
reboot and back to lin: sudo modprobe snd-sb8 port=0x220 irq=5 dma8=1

no error, no mention in dmesg, but xmms gives the usual error...

Heres lsmod just for kicks:

Module Size Used by
snd_sb8 9216 0
snd_sb8_dsp 12288 1 snd_sb8
snd_sb_common 17792 2 snd_sb8,snd_sb8_dsp
snd_opl3_lib 11520 1 snd_sb8
snd_hwdep 9988 1 snd_opl3_lib
snd_pcm_oss 44544 0
snd_pcm 79876 3 snd_sb8,snd_sb8_dsp,snd_pcm_oss
snd_mixer_oss 17408 1 snd_pcm_oss
snd_seq_dummy 4740 0
snd_seq_oss 32896 0
snd_seq_midi 9600 0
snd_rawmidi 25472 2 snd_sb8_dsp,snd_seq_midi
snd_seq_midi_event 8448 2 snd_seq_oss,snd_seq_midi
snd_seq 52592 6
snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
snd_timer 23684 3 snd_opl3_lib,snd_pcm,snd_seq
snd_seq_device 9100 6
snd_opl3_lib,snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
snd 54020 13
snd_sb8,snd_sb8_dsp,snd_sb_common,snd_opl3_lib,snd_hwdep,snd_pcm_oss,snd_pcm,snd_mixer_oss,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore 8672 1 snd
snd_page_alloc 10888 1 snd_pcm
nfs 240876 0
nfsd 218992 17
exportfs 6912 1 nfsd
lockd 64904 3 nfs,nfsd
sunrpc 161340 12 nfs,nfsd,lockd
apm 22752 2
ppdev 10116 0
cpufreq_stats 7360 0
cpufreq_ondemand 9228 0
cpufreq_powersave 2688 0
freq_table 5792 2 cpufreq_stats,cpufreq_ondemand
cpufreq_conservative 8200 0
cpufreq_userspace 5408 0
nls_iso8859_1 5120 1
nls_cp437 6784 1
vfat 14208 1
fat 53916 1 vfat
ext2 66824 1
lp 12452 0
parport_pc 36388 1
parport 36936 3 ppdev,lp,parport_pc
pcspkr 4224 0
ipv6 268704 8
tsdev 8768 0
evdev 11008 1
ext3 133128 1
jbd 59816 1 ext3
mbcache 9604 2 ext2,ext3
ide_disk 17024 5
8139too 27648 0
ide_cd 32672 0
cdrom 37664 1 ide_cd
floppy 59524 0
ehci_hcd 34188 0
8139cp 25088 0
mii 6528 2 8139too,8139cp
uhci_hcd 25360 0
usbcore 134280 3 ehci_hcd,uhci_hcd
piix 10756 0 [permanent]
generic 5124 0 [permanent]
ata_generic 9092 0
libata 125720 1 ata_generic
scsi_mod 142348 1 libata
fbcon 42656 0
tileblit 3584 1 fbcon
font 9216 1 fbcon
bitblit 6912 1 fbcon
softcursor 3200 1 bitblit
vesafb 9220 0
capability 5896 0
commoncap 8192 1 capability

So now atleast we know its not the jumpers ;-)
Is their the slight chance xmms is the problem ? gxine crushs too...
Is their something like "beep" only for the sound card ?
Maybe droping some data to /dev/### to produce a beep ?

Ram Kromberg
***@mail.com
j t
2007-05-13 11:00:55 UTC
Permalink
Post by r***@mail.com
Is their something like "beep" only for the sound card ?
Maybe droping some data to /dev/### to produce a beep ?
Perhaps
cat /dev/urandom | aplay -f cd
or
cat /dev/urandom | aplay -Dhw:0,0 -f cd

HTH...
Rask Ingemann Lambertsen
2007-05-14 09:07:01 UTC
Permalink
Post by r***@mail.com
in dos: diagnose works,
reboot and back to lin: sudo modprobe snd-sb8 port=0x220 irq=5 dma8=1
no error, no mention in dmesg, but xmms gives the usual error...
Also check what /proc/asound/cards says and check dmesg again after
trying to use the card.
--
Rask Ingemann Lambertsen
Rene Herman
2007-05-14 21:53:18 UTC
Permalink
Post by r***@mail.com
in dos: diagnose works,
reboot and back to lin: sudo modprobe snd-sb8 port=0x220 irq=5 dma8=1
no error, no mention in dmesg, but xmms gives the usual error...
Yep. The DSP is there but the IRQ isn't firing.

I now understand what the difference between our boards is; we both have a
jumper that can be set to EEPROM, but only I actually have an EEPROM...

It's amazing the things some manufacturers choose to save a penny on but
both your and my (formerly) non-working AZT2316A boards do not have an
actual EEPROM. It should be on that spot marked UX2 close to the clock (the
shiny metal thing in the lower left corner).

This also means your board is simply not supported by any driver currently
available in the tree. The driver needs to "play EEPROM" and upload the
configuration values to the AZT2316 before the card will work and current
drivers don't do this (under DOS, it's the job of that EEPROM.SYS DOS device
driver that's executed from CONFIG.SYS).

Attached is a new snd-galaxy driver that _does_ do the enabling. It's not
final yet, but works nicely for my EEPROM-less boards. It took quite a bit
of grovveling around but it's completely documented now.

I want to test it with more cards first, with and without EEPROMS and with
the JMPCFG jumper set to either position, need to figure out full-duplex on
cards with a CS4231 (as opposed to a half-duplex CS4248), want to see if
there are any cards among them that allow _both_ the SB and the WSS part to
be active, and will finally merge in snd-azt2320 as well for one unified
snd-galaxy driver.

Thought I'd post it now though. You already said you can't compile new
drivers for that machine anyhow so consider this just for educational
purposes. In the next message I'll post a small userspace program to do the
enabling from userspace so that you can use that for now and then just use
either snd-sb8 or snd-sgalaxy to drive the card.

Rene.
Rene Herman
2007-05-14 22:22:03 UTC
Permalink
Post by Rene Herman
In the next message I'll post a small userspace program to do the
enabling from userspace so that you can use that for now and then just
use either snd-sb8 or snd-sgalaxy to drive the card.
As said. If you execute this as root it should enable the card. You can pick
the base address (the one JMPB0 is set to) with "-p 0x220|0x240". Default is
0x200 if you don't specify one.

You can supply a configuration value yourself; you'd want the same value as
the parameter to EEPROM.SYS in CONFIG.SYS under your DOS install. However,
if you do not supply a a value the card will just be enabled using a default
value (same default value DOS uses) and this should work fine assuming you
have those default resources free/reserved.

so:

sudo ./eeprom
sudo modprobe snd-sb8 port=0x220 irq=5 dma8=1

or

sudo ./eeprom
sudo modprobe snd-sgalaxy sbport=0x220 wssport=0x530

Once you have the card set to wss mode (ie, have loaded snd-sgalaxy) you
can't unload snd-sgalaxy again and start using snd-sb8; the card would have
to be reset to SB mode first again.

After that sudo ./eeprom, the drivers should not only load but in fact work.
Remember to increase/unmute the volumes in a mixer...

The program needs to talk to I/O ports and therefore needs root priviliges.
It's generally a fairly bad idea to run root programs you haven't compiled
yourself, but if compiling this userspace program is also a problem for you
currently, there's a binary at:

http://members.home.nl/rene.herman/eeprom

was compiled on slackware 11.0, staticly linked.

If this still doesn't work you... I'm going to be sad.

Rene.
Rene Herman
2007-05-14 22:25:52 UTC
Permalink
Post by Rene Herman
As said. If you execute this as root it should enable the card.
(oh, compilation instructions just "gcc -W -Wall -o eeprom eeprom.c")

Rene.
Rask Ingemann Lambertsen
2007-05-15 10:12:59 UTC
Permalink
Post by Rene Herman
As said. If you execute this as root it should enable the card. You can
pick the base address (the one JMPB0 is set to) with "-p 0x220|0x240".
Default is 0x200 if you don't specify one.
^^^^^
0x220 or 0x240?

Do you think there is any point in trying any of this configuration stuff
on an NXPro?
Post by Rene Herman
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
It is not often that I see other people use standards compliant return
values from main().
--
Rask Ingemann Lambertsen
Rene Herman
2007-05-16 23:35:59 UTC
Permalink
Post by Rask Ingemann Lambertsen
Post by Rene Herman
As said. If you execute this as root it should enable the card. You can
pick the base address (the one JMPB0 is set to) with "-p 0x220|0x240".
Default is 0x200 if you don't specify one.
^^^^^
0x220 or 0x240?
0x220.
Post by Rask Ingemann Lambertsen
Do you think there is any point in trying any of this configuration stuff
on an NXPro?
Probably not. The oldest Sound Galaxy I have is a NX Pro 16 (I38-MMSN803)
and I haven't yet tested on that either. That one does have an EEPROM but
the jumper doesn't select between EEPROM and software but between EEPROM and
"factory setting" which probably implies it's not software configurable.

(other than by writing to the EEPROM and rebooting the card with the jumper
set to EEPROM; writing to the EEPROM is yet another fun little project for a
future HWDEP interface in the driver but it's not an important feature).

Does your NX Pro have an EEPROM? It should be a small 8-pin chip marked with
something close to "X24C00", near a clock chip and probably near an Intel
8051 microcontroller. And does it have a jumper that sounds like it has
anything to do with things?
Post by Rask Ingemann Lambertsen
Post by Rene Herman
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
It is not often that I see other people use standards compliant return
values from main().
0 and !0 are as standards compliant... :-)

Rene.
Rask Ingemann Lambertsen
2007-05-17 13:08:11 UTC
Permalink
Post by Rene Herman
Does your NX Pro have an EEPROM? It should be a small 8-pin chip marked
with something close to "X24C00", near a clock chip and probably near an
Intel 8051 microcontroller. And does it have a jumper that sounds like it
has anything to do with things?
I've found the X24C00 chip, a 12 MHz crystal or oscilator (I'm not sure
which) and an Intel S-80C51FANM chip. The uncommented jumpers J1 and J2 are
my best bet, although they are connected to the AZTSSPT0592 chip.
--
Rask Ingemann Lambertsen
Rene Herman
2007-05-19 02:55:12 UTC
Permalink
Post by Rask Ingemann Lambertsen
I've found the X24C00 chip, a 12 MHz crystal or oscilator (I'm not sure
which) and an Intel S-80C51FANM chip. The uncommented jumpers J1 and J2
are my best bet, although they are connected to the AZTSSPT0592 chip.
Right, so you also have that one. Also the AZT-NXPMIX0592? If so, then your
NX Pro is just my NX Pro 16 minus the AD1848 codec it seems.

If J1 and J2 are connected to pin 17 and 18 at the top (the side which is
"up" when you can read the markings) of the AZTSSPT0592 then those will be
my J4/J5. Also unmarked, but I have the booklet!

If they're the same, then you should have a "virtual parallel port" at 0x278
when they're closed for "Disney Sound Source" compatibility.

If I find out this NX Pro 16 is software configurable, I'll send you test
code for your NX Pro...

Rene.
Rask Ingemann Lambertsen
2007-05-20 12:23:49 UTC
Permalink
Post by Rene Herman
Post by Rask Ingemann Lambertsen
I've found the X24C00 chip, a 12 MHz crystal or oscilator (I'm not sure
which) and an Intel S-80C51FANM chip. The uncommented jumpers J1 and J2
are my best bet, although they are connected to the AZTSSPT0592 chip.
Right, so you also have that one. Also the AZT-NXPMIX0592?
Yes.
Post by Rene Herman
If J1 and J2 are connected to pin 17 and 18 at the top (the side which is
"up" when you can read the markings) of the AZTSSPT0592 then those will be
my J4/J5. Also unmarked, but I have the booklet!
They are. I also have J4/J5 labelled PC SPKR, do you happen to know what
they are for?
Post by Rene Herman
If they're the same, then you should have a "virtual parallel port" at
0x278 when they're closed for "Disney Sound Source" compatibility.
I do.
--
Rask Ingemann Lambertsen
Rene Herman
2007-05-23 20:03:58 UTC
Permalink
Post by Rask Ingemann Lambertsen
Post by Rene Herman
If J1 and J2 are connected to pin 17 and 18 at the top (the side which is
"up" when you can read the markings) of the AZTSSPT0592 then those will be
my J4/J5. Also unmarked, but I have the booklet!
They are. I also have J4/J5 labelled PC SPKR, do you happen to know what
they are for?
I seem to have misplaced this message; am replying through gmane hoping it will
keep the thread intact...

Those will be my J1/J2. Mine are next to the CD-ROM audio connector (and next to
a waveblaster header).

My J2 is the one actually labeled "PC SPK" and is not a jumper but a two pin
connector; with my NX Pro 16 comes a one-wire cable with a 4-pin connector that
you plug onto the motherboard speaker-out connector and a 2-pin connector that
you stick on J2, after which the soundcard fills the role of the PC speaker.

J1 is the "speaker amplification jumper". To quote the manual:

"PCs from various manufacturers may have different internal PC speaker loudness.
Thus, the function of the Speaker Amplification Jumper (J1) is to compensate for
this differing internal PC speaker loudness among PCs."

Open is low amplification, closed is high.

(my Nx Pro 16 by the way also has an additional 4-pin "PHONE1" connector that
can be used to again attach the PC speaker to)

Rene.

Rask Ingemann Lambertsen
2007-05-15 10:16:07 UTC
Permalink
--- a/sound/isa/Kconfig
+++ b/sound/isa/Kconfig
@@ -177,6 +177,19 @@ config SND_ES18XX
To compile this driver as a module, choose M here: the module
will be called snd-es18xx.
+config SND_GALAXY
+ tristate "Aztech Sound Galaxy Driver"
+ depends on SND
+ select SND_CS4231_LIB
+ select SND_MPU401_UART
+ select SND_OPL3_LIB
+ select SND_PCM
+ help
+ Say Y here to include support for Aztech Sound Galaxy cards.
+
+ To compile this driver as a module, choose M here: the module
+ will be called snd-galaxy.
+
config SND_GUS_SYNTH
tristate
Like you said yourself, there are a lot of different Sound Galaxy cards,
not all of which are CS42xx compatible. Perhaps be a bit more specific as to
which ones are expected to work (or not work) with the driver.
--
Rask Ingemann Lambertsen
Rene Herman
2007-05-16 23:47:24 UTC
Permalink
Post by Rask Ingemann Lambertsen
Like you said yourself, there are a lot of different Sound Galaxy cards,
not all of which are CS42xx compatible. Perhaps be a bit more specific as to
which ones are expected to work (or not work) with the driver.
It's starting to look like I'll be able to support all sound galaxies with
this one driver (pnp provides for a different set of entry points so merging
azt2320 is also not going to be a problem) where only the very, very first
(including your NX pro) would only allow SBB mode. Yes, it then makes more
sense to just use snd-sb8, but hey...

My I38-MMSN803 already includes an AD1848 (AZT-NXPMIX0592 and AZTSSPT0592 as
the other chips) and I know it drives AZT1605, AZT2316A and AZT2316R...

If it's "all Sound Galaxies except maybe some of the very first 8-bit cards"
then I feel snd-galaxy is an okay name (snd-aztech isn't, since aztech has
since then also made PCI cards) but yes, I need to do some further testing
and probing on different cards before it's final.

Rene
r***@mail.com
2007-05-14 13:21:04 UTC
Permalink
Since the only successful modprobe is done with the jumper on SOFTWARE
instead of EPPROM, I'll only tested the following:

Jumper: Software:

sudo modprobe snd-sb8 port=0x220 irq=5 dma8=1
without an error,
dmesg - gives no hint, verbose, mention...

cat /proc/asound/cards:
0 [Pro ]: SB Pro - Sound Blaster Pro
Sound Blaster Pro at 0x220, irq 5, dma 1

So I did the following:
cd /proc/asound/
cat *

cat: Pro: Is a directory
cat: card0: Is a directory
0 [Pro ]: SB Pro - Sound Blaster Pro
Sound Blaster Pro at 0x220, irq 5, dma 1
2: : timer
3: : sequencer
4: [ 0- 0]: raw midi
5: [ 0- 0]: hardware dependent
6: [ 0- 0]: digital audio playback
7: [ 0- 0]: digital audio capture
8: [ 0] : control
00-00: OPL3 FM
0 snd_sb8
cat: oss: Is a directory
00-00: SB8 DSP : DSP v3.1 : playback 1 : capture 1
cat: seq: Is a directory
G0: system timer : 4000.000us (10000000 ticks)
P0-0-0: PCM playback 0-0-0 : SLAVE
P0-0-1: PCM capture 0-0-1 : SLAVE
Advanced Linux Sound Architecture Driver Version 1.0.14rc1 (Tue Jan 09
09:56:17 2007 UTC).

Thanks for your help,
Ram Kromberg,
***@mail.com
Rene Herman
2007-05-14 14:53:19 UTC
Permalink
Post by r***@mail.com
Since the only successful modprobe is done with the jumper on SOFTWARE
Hang on a bit guys, I now understand the problem. Will have something for
Ram to test in a bit.

Rene.
r***@mail.com
2007-05-15 08:50:16 UTC
Permalink
You did it Rene !!!
Post by Rene Herman
sudo ./eeprom
sudo modprobe snd-sgalaxy sbport=0x220 wssport=0x530
It's working now !!
I downloaded the binary (i didn't compile the code), chmod it, sudo it
and the sgalaxy worked !!!
the sb8 didn't work but I don't really care for that anyhow :-)

For the record, I tested it on xubuntu 7.04 with xmms.

Are you now planning to implement the code to the driver itself ?
If you want me to test anything, let me know.

i'm also considering installing slackware 11 since I need the
preformance...

THANKS !!!
Ram Kromberg
***@mail.com
Rene Herman
2007-05-16 23:23:56 UTC
Permalink
Post by r***@mail.com
You did it Rene !!!
Post by Rene Herman
sudo ./eeprom
sudo modprobe snd-sgalaxy sbport=0x220 wssport=0x530
It's working now !!
Great. Thanks for testing/reporting.
Post by r***@mail.com
I downloaded the binary (i didn't compile the code), chmod it, sudo it
and the sgalaxy worked !!!
the sb8 didn't work but I don't really care for that anyhow :-)
Mmm. That was probably then since the card was already in WSS mode. If you'd
boot straight into Linux (from a hardware reset/machine off state certainly)
and run that "eeprom" tool as the first thing you do, then:

modprobe snd-sb8 port=0x220 irq=5 dm8=1

should work. If not, I have some further figuring to do. I did figure out
how to switch the card back to SB mode from WSS mode already, but am seeing
some trouble with where (and how often...) to reset the DSP to have it back
again after that.
Post by r***@mail.com
For the record, I tested it on xubuntu 7.04 with xmms.
Are you now planning to implement the code to the driver itself ? If you
want me to test anything, let me know.
Yes, this will find it's way into an ALSA driver shortly. Since I'm seeing
some trouble again with putting the card back in SB mode from WSS mode I'm
giving it a bit of a rest for now while I continue the things I actually
_should_ have been doing right now (...) but I will make sure a new driver
gets submitted that supports our EEPROM-less Sound Galaxies...

Rene.
r***@mail.com
2007-05-17 08:48:47 UTC
Permalink
Yes, its like you said Rene, sb8 works although the sound is distorted
and the module can't be removed...
Later I can modprobe sgalaxy too, and the sound works without a hitch.

Also since now I can compile some code - your "eeprom.c" compiles and
works - I'm available for further testing...
I also noticed that the binary you sent was 506kb while my compilation is
9kb, maybe you sent an early/later version with some additional includes
for verbose ?
I compiled it with "gcc -W -Wall -o eeprom eeprom.c" like you said (on my
xubuntu 7.04 with build-essentials deb package installed).
See attachment...


Ram Kromberg
***@mail.com
Rene Herman
2007-05-17 09:22:56 UTC
Permalink
Post by r***@mail.com
Yes, its like you said Rene, sb8 works although the sound is distorted
and the module can't be removed...
Later I can modprobe sgalaxy too, and the sound works without a hitch.
Okay, don't know what the trouble is with that distortion (if you haven't
set the volumes to 100, that is) but not too important right now.
Post by r***@mail.com
Also since now I can compile some code - your "eeprom.c" compiles and
works - I'm available for further testing...
I might want you to test some mode-resetting code later; will be sure to ask
if needed.
Post by r***@mail.com
I also noticed that the binary you sent was 506kb while my compilation
is 9kb, maybe you sent an early/later version with some additional
includes for verbose ?
I compiled it with "gcc -W -Wall -o eeprom eeprom.c" like you said (on
my xubuntu 7.04 with build-essentials deb package installed).
Now try it with "gcc -static -W -Wall -o eeprom eeprom.c". I compiled the
binary I provided with that "-static" flag which means the program includes
all library code directly inside the binary and doesn't link to the library
code you already have on your system.

I did this to avoid any version problems that may exist between different
distributions. Essentially you're only guaranteed that a dynamic executable
will work on the system on which it was compiled (rather, on a system with
the same versions of the libraries installed as on the system on which it
was compiled). In this case the program only links to the system C library
and did nothing weird so it wasn't much of an issue, but I don't even want
to deal with any _possible_ problems of that nature...

Yes, with a normal (ie, dynamic) link that 9k is correct.

Rene.
Loading...