Author Topic: Updated Uniaud32 build  (Read 370516 times)

Mike Kölling

  • Full Member
  • ***
  • Posts: 130
  • Karma: +6/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #45 on: May 13, 2020, 11:37:47 am »
Hi Paul,

Please find attached the logs for v3.5 and v3.1.9.
As expected both give only distorted sound on my Thinkpad X250.

Greetings form Potsdam/Germany,
Mike

David McKenna

  • Hero Member
  • *****
  • Posts: 742
  • Karma: +24/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #46 on: May 13, 2020, 12:16:40 pm »
Paul,

  Can't get the computer to boot with either the debug or release version of 3.1.9 - after the disk check there is a long pause, then a bunch of messages flash by and end with 'Not enough memory to run PMShell.exe on the Protshell = statement in Config.sys' (I have 8GB). Never saw that before!

Regards,

« Last Edit: May 13, 2020, 12:45:01 pm by David McKenna »

OS4User

  • Sr. Member
  • ****
  • Posts: 406
  • Karma: +10/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #47 on: May 13, 2020, 12:20:34 pm »
'Not enough memory to run PMShell.exe on the Protshell = statement in Config.sys' (I have 8MB). Never saw that before!

It possible that new Uniaud32 consumes more system memory - try to decrease VAL.

OS4User

  • Sr. Member
  • ****
  • Posts: 406
  • Karma: +10/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #48 on: May 13, 2020, 12:29:38 pm »
http://smedley.id.au/tmp/uniaud32-linux-3.5.zip - release & debug builds included.

3.5 works ok on my CA0106/CA0111 [SB Live!/Audigy/X-Fi Series]

David McKenna

  • Hero Member
  • *****
  • Posts: 742
  • Karma: +24/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #49 on: May 13, 2020, 01:03:55 pm »
 OS4User - Tried decreasing VAL in increments of 512 down to 1024, but always the same result - 'Not enough memory...'.

Regards,

Pete

  • Hero Member
  • *****
  • Posts: 1281
  • Karma: +9/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #50 on: May 13, 2020, 10:21:58 pm »
Hi David

I seem to recall seeing a similar message many years ago but am struggling to remember details: I think it was either a failing PSU or a choked up CPU cooling fan.

Might be worth checking inside the system case...


Regards

Pete

David McKenna

  • Hero Member
  • *****
  • Posts: 742
  • Karma: +24/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #51 on: May 13, 2020, 10:41:06 pm »
Pete,

 System case is fine, the official UniAud works fine, and Paul's builds before 3.1.9 work fine. I'll upload a 'testlog generic' in case anyone is interested. Must be something else...

Regards,
« Last Edit: May 13, 2020, 10:44:12 pm by David McKenna »

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #52 on: May 13, 2020, 10:53:58 pm »
Try running lxlite on uniaud32.sys...

David McKenna

  • Hero Member
  • *****
  • Posts: 742
  • Karma: +24/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #53 on: May 13, 2020, 11:18:51 pm »
Hey Paul,

  Tried 'lxlite uniaud32.sys' on both the debug and release versions of 3.1.9 and it made them much smaller, but both still result in 'Not enough memory...' at boot. I am now running the new official version released at http:\\trac.netlabs.org\uniaud (20200506.exe) with no trouble...

Regards,

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4786
  • Karma: +99/-1
    • View Profile
Re: Updated Uniaud32 build
« Reply #54 on: May 14, 2020, 02:05:57 am »
Try reducing the THREADS number in config.sys, perhaps 768 or 512.
There's also a related one which I'm having trouble remembering, PROCESSES I think that needs adding to change.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #55 on: May 14, 2020, 07:12:50 am »
progress! I copied hda_intel.c from linux 3.1.9 into my linux 3.2.0 source tree, rebuilt the driver and got sound. Now to review the changes and work out which change is the breaking one..

It's in the attached somewhere :)
« Last Edit: May 14, 2020, 07:26:44 am by Paul Smedley »

Lars

  • Hero Member
  • *****
  • Posts: 1271
  • Karma: +65/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #56 on: May 14, 2020, 03:35:30 pm »
As a test can you undefine CONFIG_X86 (only for the given file if possible) and rebuild?
Somebody has tried to mark memory ( sound data ? DMA accessed memory...) as "write combined". I guess that is flawed and would also explain the weird stuff with PMSHELL.EXE not having enough memory (which is obviously not true).
« Last Edit: May 14, 2020, 03:38:06 pm by Lars »

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #57 on: May 14, 2020, 11:26:08 pm »
Hi Lars,

As a test can you undefine CONFIG_X86 (only for the given file if possible) and rebuild?
Somebody has tried to mark memory ( sound data ? DMA accessed memory...) as "write combined". I guess that is flawed and would also explain the weird stuff with PMSHELL.EXE not having enough memory (which is obviously not true).

99.9% certain that CONFIG_X86 is not defined for us... That's a new define in newer linux builds - our config.h is manually created.

I will double check a little later.

My guess at the moment is that it's the changes around buffer sizes that break things for us in 3.2.0.

More to come later today.

Cheers,

Paul

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #58 on: May 15, 2020, 12:40:55 am »
Hi All,

My guess at the moment is that it's the changes around buffer sizes that break things for us in 3.2.0.

Well I was wrong - it was actually these chunks that broke things:
Code: [Select]
--- hda_intel.c 2020-05-13 14:27:46.000000000 +0930
+++ hda_intel.c.32 2020-05-14 14:47:24.000000000 +0930
@@ -378,7 +398,7 @@
  */
  unsigned char stream_tag; /* assigned stream */
  unsigned char index; /* stream index */
- int device; /* last device number assigned to */
+ int assigned_key; /* last device# key assigned to */
 
  unsigned int opened :1;
  unsigned int running :1;
@@ -1582,6 +1673,9 @@
 {
  int dev, i, nums;
  struct azx_dev *res = NULL;
+ /* make a non-zero unique key for the substream */
+ int key = (substream->pcm->device << 16) | (substream->number << 2) |
+ (substream->stream + 1);
 
  if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
  dev = chip->playback_index_offset;
@@ -1593,12 +1687,12 @@
  for (i = 0; i < nums; i++, dev++)
  if (!chip->azx_dev[dev].opened) {
  res = &chip->azx_dev[dev];
- if (res->device == substream->pcm->device)
+ if (res->assigned_key == key)
  break;
  }
  if (res) {
  res->opened = 1;
- res->device = substream->pcm->device;
+ res->assigned_key = key;
  }
  return res;
 }

Reverting these gets me sound in Virtualbox with both the linux 3.2 and linux 3.5 code.

New builds (each containing debug and release builds):
http://smedley.id.au/tmp/uniaud32-linux-3.2.zip
http://smedley.id.au/tmp/uniaud32-linux-3.5.zip

Feedback appreciated!

Cheers,

Paul

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: Updated Uniaud32 build
« Reply #59 on: May 15, 2020, 03:41:51 am »
...and for good measure, a build based on linux 3.2.102 - http://smedley.id.au/tmp/uniaud32-linux-3.2.102.zip