Hi,

Hope this info is useful.  (It includes instructions
for using the alsa kernel patch for 2.5 kernels with 
2.4.18 pre1 and some comments on what is likely to
be a bug in the YMFPCI driver code.  Also a comment
on the Neomagic 256XL+ as implemented in the sony
PCG-F570 laptop.)

I am starting to maintain Alsa for internal use
and was uncertain about the ongoing maintenence 
on the alsa-driver tarball (beta10) used to make 
modules for earlier kernels. (This file is about 
2 months old.)

Most of the current work seems to be focused on
getting Alsa into the kernel. (Seems like a 
good idea to me!)  Unfortunatly for me this means
that it will (perhaps) be more work for me to keep
things working with the 2.4 kernels.

The stratigy I used was to make a kernel tree
based on 2.5.2p10 and then apply the Alsa patch
alsa-2002-01-06-1-linux-2.5.2pre9.patch.gz

I made a tarball of the new sound directory and the
include/sound directory from inside the 'linux' dir.

  tar jcvf alsa-2002-01-06-1.tar.bz2 include/sound sound
  
I unzipped the patch and edited it leaving only what I will call
the 'core' files. In other words I deleted all the patches
against 'drivers/sound', 'include/sound', and 'sound'
directories.  Fortunatly the files we want to keep are
all at the front of the patch file.  This leaves a 
patch that is about 9K in length.

Note: It might be nice to maintain this part of the 
alsa patch separately to aid doing this in the future.

I prepared a kernel source directory for 2.4.18-pre1 
sources and then applied the alsa-kernel-core.patch
and etc like this...
   cd linux-2.4.18-pre1
   gzip -dc alsa-kernel-core.patch.gz | patch -p1
   tar jxvf alsa-2002-01-06-1-linux-2.5.2pre9.patch.gz
   rm -rf drivers/sound

This is the point I started at.  I found that the change
from using MINOR, MAJOR, and MKDEV  to minor, major and
mk_kdev caused a problem.  I hand edited the file
linux-2.4.18-pre1/include/linux/kdev_t.h  making duplicates
of the definitions noted above and renaming them as
shown above.

At this point the kernel can be compiled.

I was doing this on a Sony laptop with a NV256XL+ which
does not seem to be supported.  (But in the attempt
to compile for the NV256 with a number of interesting 
items in my kernel config (read: I have no idea which
parameter caused this) I found that 'sound/core/rawmidi.c
needs one of the definitions for major/minor but did not
include an appropriate header.  I added 
 #include <linux/kdev_t.h>
to fix this.  I then found that the nv256 does not work
on my laptop.  A look in /proc/pci
reveals that Sony provides a YMF744B on this laptop.
(perhaps the NV256XL+ has the sound core stripped out?
Or perhaps Sony thought that adding a better supported 
chip was a good idea?)

I recompiled for the YMF744 and found the following bugs.
at link time in routine snd_card_ymfpci_probe 
the following are undefined: snd_opl3_create and snd_opl3_hwdep_new

This is fixed by adding a line to 'sound/drivers/opl3/Makefile'

obj-$(CONFIG_SND_YMFPCI) += snd-opl3-lib.o

I don't know if we need an equivelent line for += snd-opl3-synth.o
for these chips.

The Makefile in sound/core  also is missing the inclusion of a .o file
for YMFPCI, add  'snd_hwdep.o' to the line for the YMFPCI chip

After recompiling the dsp device seems to work fine. (more testing
to follow on several platforms.)

Thanks for the great work, Alsa is looking very good!

Regards,

Curtis

-- 

Curtis Veit                    email: [EMAIL PROTECTED]
Lineo Inc.                     Where Open Meets Smart
390 South 400 West             phone: 801.426.5001 
Lindon, Utah, USA  84042       fax:   801.852.8071


Attachment: alsa-kernel-core.patch.gz
Description: Binary data

Reply via email to