Mini2440 sound issue on kernel 2.6.31 with UDA134x driver

mgalemin
Hi all, 

Could please anyone confirm that on Mini2440 on linux kernel 2.6.31 with
sound driver UDA134x sound works normally? I'm really need to know as I
need to continue my development but I have this sound issue unresolved. I
need to know if this is a bug in driver (as I described here
http://www.friendlyarm.net/forum/topic/35) or I have to find another
solution. Just say if you can hear something in your headphones with 2.6.31
kernel. Thanks.

imayoda
Ok.. i'll do a try to audio tonight.. hope emdebian has something to try it
with

imayoda
Nothing.. muted audio here.. ideas?

mgalemin
I described my solution here
http://www.friendlyarm.net/forum/topic/35?lang=en#455. Could you please try
to patch your /sound/soc/codecs/uda134x.c file and check sound once more?
Thanks.

AndyW
I have never, on any distribution managed to get duplex audio working on
Mini2440!

It sort of stopped my VOIP development in it's tracks...

Please could you let me know if you can get it to work?

Thanks

Andy

mgalemin
Hi Andy, 

I described my solution in my previous message. Now I have sound working on
my Mini2440, both mic input and earphones output. If you use new kernel
2.6.31 you can try to patch it as I described above and check you sound
using alsa utils (arecord + aplay or speaker-test). Or describe your steps
to get sound working.

Andy
Hi Mgalemin

But have you tried it duplex and have you tried duplex in OSS mode?

Would be very interested to hear the results.

The test I did is below :-

// testdev.c
#include <sys/ioctl.h>
#include <sys/time.h>
#include <fcntl.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int fd;

  fd=open(argv[1], O_RDWR|O_NONBLOCK);

  if (fd<0)
    { 
      perror("error opening opening AUDIO device");
      exit(1);
    }
  printf("open ok\n");
  exit(0);
}
===========
./testdev /dev/dsp

If you get ok then you can open it for rw but none of the distributions
have so far!

If you have fixed it then can you get you patch into the main distribution?

mgalemin
I used Alsa only, I haven't tried OSS yet. Thus, I compiled kernel without
CONFIG_SND_PCM_OSS setting and there is no /dev/dsp device in my system.
Maybe I'll try OSS later.

Andy
Would appreciate you trying it.

Thanks

Andy.

mgalemin
I tried to open /dev/dsp in read/write mode but without success. I also
tried to open it in two separated calls for reading and writing with the
same result.

I think it is good idea to dig into /sound folder in linux kernel and trace
permissions for /dev/dsp for UDA134x driver. Or you can try to use Alsa
audio API instead of using raw OSS device in your project.

Andy
Thanks for trying... when I last tried I could open for read or write but
not RW.

Can you let me know when/if your fix is incorporated into the main
distribution?

Thanks

Andy.

mgalemin
I don't know, I added bug to bugzilla.kernel.org and I'm waiting for
response from kernel developers.

andrea
Excuse me, mgalemin i have a problem: i want add the d-link wireless usb,
but i have a problem with the module.how can i do? i tried to re compile
the kernel but i don't know how doing to insert the module.
plz help me!!!

mgalemin
Hi andrea, 

Well, I have no idea what chip is in your usb wireless adapter. I think you
should begin with googling about your chip and about linux drivers for it.
Also it is good idea to search in kernel parameters 'Device Drivers' ->
'Network device support' -> 'Wireless LAN'.

What about inserting the module - just compile kernel with '<*>' (build in)
checked driver instead of '<M>' (build as a module) or '< >' (exclude
feature). Or set corresponding driver as '=y' instead of '=m' or 'is not
set' in .config kernel file.

Regards, 
Maksim.

andrea
thank's Maksim for your soon answare.
I have the D-link G122 of Ralink. I have already included the module in the
kernel configuration beacuse there is an specific field. The problem is how
add a new version of this module in the kernel.
I use an kernel 2.6.29-4 Friendly ARM.
Another question: that you know, in the kernel there is wpa_supplicant
support??

thank you very much.
Andrea

mgalemin
I can't understand you, did you include the module in the kernel? If so
then what do you mean "how add a new version of this module in the kernel"?
Did you add an old version of the module? What module you talk about (what
its name)?

Kernel doesn't support WPA supplicant, you should build it and add to your
rootfs. You may try to use this one
http://hostap.epitest.fi/wpa_supplicant/.

P.S. I think you should start new topic as not all forum members read this
one.

andrea
ok...I have sterted new topic:D-Link in wpa network.You could answer me
here or there, what you want.
However, the kernel that I use has a old module (rt73usb) and I would
update with new version.
But I would first try to include WPA support: after I downloaded the source
code from http://hostap.epitest.fi/releases/wpa_supplicant-0.6.9.tar.gz
what should I do?how can i use the rootfs??

I'm sorry, but I m a new programmer, nevice.
Thank you.
Andrea

mgalemin
Well, first of all please read the book "Building Embedded Linux Systems"
By Karim Yaghmour. This is minimal base requirement for you to understand
what to do next. Sorry.

andrea
you have perfectly right, but I need only this procedure for my project, by
chance you know any tutorial?
Sorry for my presumption,
thank you very much for your willingness.
Andrea

Maksim Galemin
This procedure is not so trivial as I don't have such D-Link usb adapter.
The easiest way to build rootfs is using buildroot. Try these options
http://www.friendlyarm.net/forum/topic/79?lang=en#609. And set
wpa_supplicant in "Package Selection for the target" ---> "Networking" --->
"[*] wpa_supplicant" section in buildroot configuration menu.

Sincerely, 
Maksim.

andrea
Hi Maksim, I have a problem.
I have done what you told me, but i have an error when copy my rootfs in
mini2440. I have tried with

[v] Download vivi 

[k] Download linux kernel 

[y] Download root_yaffs image

usind u-boot,uImage and roofs.arm.jffs2 build by buildroot.
I followed this procedure http://narnia.cs.ttu.edu/drupal/node/131.

One time, I tried to use uImage_N35 and the results are these ones:

RPC: Registered tcp transport module.
lib80211: common routines for IEEE802.11 drivers
s3c2410-rtc s3c2410-rtc: setting system clock to 2009-11-11 12:40:40 UTC
(1257943240)
VFS: Cannot open root device "mtdblock3" or unknown-block(31,3)
Please append a correct "root=" boot option; here are the available
partitions:
1f00             384 mtdblock0 (driver?)
1f01            2048 mtdblock1 (driver?)
1f02           63104 mtdblock2 (driver?)
1f03           65536 mtdblock3 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on
unknown-block(31,3)

While, if I use uImage, the same that they use in the
http://narnia.cs.ttu.edu/drupal/node/131, I have:

jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x001dc018:
0x1a93 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x001dc01c:
0xbb62 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x001dc020:
0x7cbe instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x001dc024:
0x3cdf instead
Further such events for this erase block will not be printed
VFS: Mounted root (jffs2 filesystem) on device 31:3.
Freeing init memory: 132K
Kernel panic - not syncing: Attempted to kill init!

Could you help me, please?

Thank you