Due to lack of OSS kernel modules, have to recompile the kernel to enable sound in old games - aoss/padsp do not work

Bug #1434842 reported by yossarian_uk
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Medium
Andy Whitcroft
Vivid
Fix Released
Medium
Andy Whitcroft
Wily
Fix Released
Medium
Andy Whitcroft
Xenial
Fix Released
Medium
Andy Whitcroft

Bug Description

I've had this issue since about 12.10 or whenever the oss modules were disabled in the kernel.

i.e

CONFIG_SND_MIXER_OSS
CONFIG_SND_PCM_OSS
CONFIG_SND_PCM_OSS_PLUGINS

Ubuntu is one of the few distros to take out these module from their kernel builds.

On Debian, Fedora, Arch and Opensuse the modules are in the kernel (you usually have to manually load them (i.e they are present by default wbut disabled - with ubuntu the modules are actually removed.)

There is one game in particular I play, it in an old obscure game called paintball2 - http://digitalpaint.org/

It uses OSS by default - it does have an SDL option too (which works in ubuntu) - but the SDL plugin is buggy.

With all other distros I can just manually load the OSS modules, with Ubuntu I have to recompile the kernel in order to have OSS sound.

Could we not change the policy and include the modules (the size difference will be basically none.) so at least people have the option to use them without the hassle to recompiling the kernel - its a PITA having to do it again each time there is an update.

I know of aoss and padsp - these tools do not work (at least with this game), they never have in multiple machines (all have had intel HDA cards)

i.e

-------------------------------------
aoss ./paintball2

LoadLibrary("./snd_oss.so")
/dev/dsp: Invalid argument
SNDDMA_Init: Could not mmap /dev/dsp.
-------------------------------------

--> no sound

-------------------------------------
padsp ./paintball2

Paintball 2 -- Version 2.0
execing configs/config.cfg
Console initialized.

------- sound initialization -------
LoadLibrary("./snd_oss.so")
SNDDMA_Init: Sorry, but your soundcard doesn't support trigger or mmap. (00005100)
-------------------------------------

--> no sound.

As soon as i recompile the kernel and add the modules it works fine.

How can I get the modules re-added - there is no harm having them in the kernel but disabled on startup...

ProblemType: Bug
DistroRelease: Ubuntu 14.10
Package: linux-generic 3.16.0.31.32
ProcVersionSignature: Ubuntu 3.16.0-31.43-generic 3.16.7-ckt5
Uname: Linux 3.16.0-31-generic x86_64
NonfreeKernelModules: nvidia
ApportVersion: 2.14.7-0ubuntu8.2
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC1: morgan 2477 F.... pulseaudio
 /dev/snd/controlC0: morgan 2477 F.... pulseaudio
CurrentDesktop: KDE
Date: Sat Mar 21 15:24:46 2015
HibernationDevice: RESUME=UUID=c5ec1412-eab8-4557-a6e8-cb6856e167d8
InstallationDate: Installed on 2015-02-11 (37 days ago)
InstallationMedia: Kubuntu 14.10 "Utopic Unicorn" - Release amd64 (20141022.1)
IwConfig:
 eth0 no wireless extensions.

 lo no wireless extensions.
MachineType: MSI MS-7758
ProcFB: 0 EFI VGA
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-3.16.0-31-generic root=UUID=79c952bd-d3f3-4bf7-9039-5260c0217d02 ro
RelatedPackageVersions:
 linux-restricted-modules-3.16.0-31-generic N/A
 linux-backports-modules-3.16.0-31-generic N/A
 linux-firmware 1.138.1
RfKill:

SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
WifiSyslog: Mar 21 14:28:15 morgan-MS-7758 kernel: [ 8449.255485] perf interrupt took too long (2507 > 2500), lowering kernel.perf_event_max_sample_rate to 50000
dmi.bios.date: 03/07/2014
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: V2.13
dmi.board.asset.tag: To be filled by O.E.M.
dmi.board.name: Z77A-G43 (MS-7758)
dmi.board.vendor: MSI
dmi.board.version: 1.0
dmi.chassis.asset.tag: To Be Filled By O.E.M.
dmi.chassis.type: 3
dmi.chassis.vendor: MSI
dmi.chassis.version: 1.0
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrV2.13:bd03/07/2014:svnMSI:pnMS-7758:pvr1.0:rvnMSI:rnZ77A-G43(MS-7758):rvr1.0:cvnMSI:ct3:cvr1.0:
dmi.product.name: MS-7758
dmi.product.version: 1.0
dmi.sys.vendor: MSI

Revision history for this message
yossarian_uk (morgancoxuk) wrote :
summary: - Due to lack of OSS kernel modules, have to recomplie kernel to enable
- sound in old games - aoss/padsp do not work
+ Due to lack of OSS kernel modules, have to recompile the kernel to
+ enable sound in old games - aoss/padsp do not work
Revision history for this message
Brad Figg (brad-figg) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Alberto Salvia Novella (es20490446e) wrote :

@ Canonical Kernel team

If this bug is on purpose, please set its status to "won't fix".

Changed in linux (Ubuntu):
importance: Undecided → Medium
Revision history for this message
Andy Whitcroft (apw) wrote :

@yossarian_uk ok, i've tried re-enabling these as modules but with them automatically blacklisted so they will not load without manual intervention. Could you try the kernels below and let me know if they resolve the issue for you:

    http://people.canonical.com/~apw/lp1434842-vivid/

Please report any testing back here.

Changed in linux (Ubuntu):
status: Confirmed → In Progress
assignee: nobody → Andy Whitcroft (apw)
milestone: none → ubuntu-15.03
Revision history for this message
yossarian_uk (morgancoxuk) wrote :

@Andy Whitcroft Yes that works fine thanks !

I had to modprobe as expected but yes, this is the first time since Ubuntu 10.04 I can play paintball2 (plus OSS sound) without recompiing the kernel .

i.e game now has access to /dev/dsp

-----------------------------------------------------
morgan@morgan-MS-7758:~/games/paintball2$ ./paintball2

Paintball 2 -- Version 2.0
Execing configs/default.cfg.
Console initialized.

------- Sound initialization -------
LoadLibrary("./snd_oss.so")

Initializing OSS Sound System
Buffer size: 65536
Stereo: 1
Samples: 32768
Samplepos: 0
Samplebits: 16
Submission_chunk: 1
Speed: 48000
Sound sampling rate: 48000
-----------------------------------------------------

Revision history for this message
Adam Conrad (adconrad) wrote :

Two minor issues with Andy's test kernel:

1) The modules landed in linux-image, while they should be in linux-image-extra
2) You probably want to move the common* bit after the autogen bit, not before, so the format of the final blacklist file makes more sense to a human reading it.

ie: right now, it looks like:

#Autogen
#common
common.ko
autogen.ko

You probably wanted:

#Autogen
autogen.ko
#common
common.ko

Revision history for this message
Andy Whitcroft (apw) wrote :

Fixed up the exclusion list so that it is clear where each bit is coming from:

  # Kernel supplied blacklist for linux 3.19.0-10-generic amd64
  # modprobe.d/common.conf
  # LP:1434842 -- disable OSS drivers by default to allow pulseaudio to emulate
  blacklist snd-mixer-oss
  blacklist snd-pcm-oss
  # Autogenerated watchdog blacklist
  blacklist acquirewdt
  blacklist advantechwdt
  [...]

Also added new support to the module inclusion scripting to allow these two OSS modules to be excluded, and use this to move them out to linux-image-extra.

Changed in linux (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
yossarian_uk (morgancoxuk) wrote :

Really thank you so much for this.

I know im a 'rare case' and really appreciate your time to do this change.

This is where (IMO) opensource wins, if this were closed source it would have been likely the change would not have been committed as not 'financially viable'

Will the change just turn up in a future kernel upgrade for 15.04

(ps i'm testing kubuntu 15.04 now and really liking it - note : aoss/padsp still fail on 15.04, the kernel you made works fine with oss)

Cheers

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 3.19.0-11.11

---------------
linux (3.19.0-11.11) vivid; urgency=low

  [ Andy Whitcroft ]

  * [Config] add nvme to linux-virtual as this is now used in GCE to expose
    disks
    - LP: #1415580
  * [Packaging] module-inclusion -- commonise copy code and simplify
  * [Packaging] module-inclusion -- add manual command entries
  * [Packaging] module blacklists -- add support for manual blacklists
  * [Config] re-enable OSS support and blacklist
    - LP: #1434842
  * [Config] exclude oss modules from linux-image
    - LP: #1434842
  * [Config] CONFIG_DEFAULT_MMAP_MIN_ADDR needs to match on armhf and arm64
    - LP: #1418140
  * rebase to v3.19.3

  [ Leann Ogasawara ]

  * Release Tracking Bug
    - LP: #1438852

  [ Paolo Pisati ]

  * [Config] armhf: JUMP_LABEL=y
  * [Config] armhf: ARM_KERNMEM_PERMS=y && DEBUG_RODATA=y

  [ Upstream Kernel Changes ]

  * powercap / RAPL: handle domains with different energy units
  * x86/platform, acpi: Bypass legacy PIC and PIT in ACPI hardware reduced
    mode
  * cpuidle: powernv: Read target_residency value of idle states from DT if
    available
    - LP: #1435951
  * cpuidle: powernv: Avoid endianness conversions while parsing DT
    - LP: #1435951
  * tick/broadcast-hrtimer : Fix suspicious RCU usage in idle loop
    - LP: #1435951
  * tick/hotplug: Handover time related duties before cpu offline
    - LP: #1435951
  * Input: synaptics - split synaptics_resolution(), query first
    - LP: #1414930
  * Input: synaptics - log queried and quirked dimension values
    - LP: #1414930
  * Input: synaptics - query min dimensions for fw v8.1
    - LP: #1414930
  * Input: synaptics - remove obsolete min/max quirk for X240
    - LP: #1414930
  * Input: synaptics - support min/max board id in min_max_pnpid_table
    - LP: #1414930
  * Input: synaptics - skip quirks when post-2013 dimensions
    - LP: #1414930
  * Input: synaptics - fix middle button on Lenovo 2015 products
    - LP: #1414930
  * Input: synaptics - handle spurious release of trackstick buttons
    - LP: #1414930
  * Input: synaptics - do not retrieve the board id on old firmwares
    - LP: #1414930
  * Input: synaptics - retrieve the extended capabilities in query $10
    - LP: #1414930
  * Input: synaptics - remove TOPBUTTONPAD property for Lenovos 2015
    - LP: #1414930
  * Input: synaptics - re-route tracksticks buttons on the Lenovo 2015
    series
    - LP: #1414930
  * Input: synaptics - remove X1 Carbon 3rd gen from the topbuttonpad list
    - LP: #1414930
  * Input: synaptics - remove X250 from the topbuttonpad list
    - LP: #1414930
  * ARM: 8311/1: Don't use is_module_addr in setting page attributes
  * kernel/module.c: Update debug alignment after symtable generation
  * arm64: Don't use is_module_addr in setting page attributes
  * rebase to v3.19.3
 -- Leann Ogasawara <email address hidden> Tue, 31 Mar 2015 11:48:41 -0700

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
yossarian_uk (morgancoxuk) wrote :

Thank you !

description: updated
Andy Whitcroft (apw)
Changed in linux (Ubuntu Xenial):
milestone: ubuntu-15.03 → ubuntu-15.11
status: Fix Released → In Progress
Changed in linux (Ubuntu Wily):
importance: Undecided → Medium
status: New → In Progress
assignee: nobody → Andy Whitcroft (apw)
Changed in linux (Ubuntu Vivid):
assignee: nobody → Andy Whitcroft (apw)
importance: Undecided → Medium
status: New → Fix Released
Andy Whitcroft (apw)
Changed in linux (Ubuntu Xenial):
status: In Progress → Fix Committed
Luis Henriques (henrix)
Changed in linux (Ubuntu Wily):
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (32.9 KiB)

This bug was fixed in the package linux - 4.2.0-19.23

---------------
linux (4.2.0-19.23) wily; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1515157

  [ Andy Whitcroft ]

  * [Config] re-enable OSS support and blacklist
    - LP: #1434842

  [ dann frazier ]

  * Revert "[Config] CONFIG_ARM64_ERRATUM_843419=n"
    - LP: #1502946

  [ Paolo Pisati ]

  * [SRU] [Config] armhf: LEDS_TRIGGER_HEARTBEAT=y
    - LP: #1510165

  [ Tim Gardner ]

  * [Config] Add iscsi_ibft and iscsi_boot_sysfs to generic inclusion list
    - LP: #1511006
  * [Config] CONFIG_AUFS_EXPORT=y
    - LP: #1121699

  [ Upstream Kernel Changes ]

  * Revert "KVM: x86: apply guest MTRR virtualization on host reserved
    pages"
    - LP: #1509886
  * Revert "KVM: SVM: use NPT page attributes"
    - LP: #1509886
  * Revert "KVM: SVM: Sync g_pat with guest-written PAT value"
    - LP: #1509886
  * Revert "cgroup: simplify threadgroup locking"
    - LP: #1509886
  * Revert "sched, cgroup: replace signal_struct->group_rwsem with a global
    percpu_rwsem"
    - LP: #1509886
  * Revert "ARM64: unwind: Fix PC calculation"
    - LP: #1514889
  * Revert "serial: 8250_dma: don't bother DMA with small transfers"
    - LP: #1514889
  * Revert "md: allow a partially recovered device to be hot-added to an
    array."
    - LP: #1514889
  * arm64: Change memcpy in kernel to use the copy template file
    - LP: #1508471
  * arm64: copy_to-from-in_user optimization using copy template
    - LP: #1508471
  * Input: elan_i2c - enable ELAN0600 acpi panels
    - LP: #1439111
  * e1000e: Fix tight loop implementation of systime read algorithm
  * arm: KVM: Fix incorrect device to IPA mapping
    - LP: #1509886
  * KVM: vmx: fix VPID is 0000H in non-root operation
    - LP: #1509886
  * kvm: don't try to register to KVM_FAST_MMIO_BUS for non mmio eventfd
    - LP: #1509886
  * kvm: fix zero length mmio searching
    - LP: #1509886
  * kvm: factor out core eventfd assign/deassign logic
    - LP: #1509886
  * kvm: fix double free for fast mmio eventfd
    - LP: #1509886
  * arm: KVM: Disable virtual timer even if the guest is not using it
    - LP: #1509886
  * kvm: svm: reset mmu on VCPU reset
    - LP: #1509886
  * KVM: x86: trap AMD MSRs for the TSeg base and mask
    - LP: #1509886
  * KVM: PPC: Book3S: Take the kvm->srcu lock in
    kvmppc_h_logical_ci_load/store()
    - LP: #1509886
  * KVM: PPC: Book3S HV: Pass the correct trap argument to
    kvmhv_commence_exit
    - LP: #1509886
  * time: Fix timekeeping_freqadjust()'s incorrect use of abs() instead of
    abs64()
    - LP: #1509886
  * target/iscsi: Fix np_ip bracket issue by removing np_ip
    - LP: #1509886
  * scsi: fix scsi_error_handler vs. scsi_host_dev_release race
    - LP: #1509886
  * target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess
    - LP: #1509886
  * target: Fix PR registration + APTPL RCU conversion regression
    - LP: #1509886
  * iser-target: remove command with state ISTATE_REMOVE
    - LP: #1509886
  * iser-target: Put the reference on commands waiting for unsol data
    - LP: #1509886
  * toshiba_acpi: Fix hotkeys registration on some toshiba models
    - LP: #1509886
  *...

Changed in linux (Ubuntu Xenial):
status: Fix Committed → Fix Released
Revision history for this message
Luis Henriques (henrix) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-wily' to 'verification-done-wily'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-wily
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (32.9 KiB)

This bug was fixed in the package linux - 4.2.0-19.23

---------------
linux (4.2.0-19.23) wily; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1515157

  [ Andy Whitcroft ]

  * [Config] re-enable OSS support and blacklist
    - LP: #1434842

  [ dann frazier ]

  * Revert "[Config] CONFIG_ARM64_ERRATUM_843419=n"
    - LP: #1502946

  [ Paolo Pisati ]

  * [SRU] [Config] armhf: LEDS_TRIGGER_HEARTBEAT=y
    - LP: #1510165

  [ Tim Gardner ]

  * [Config] Add iscsi_ibft and iscsi_boot_sysfs to generic inclusion list
    - LP: #1511006
  * [Config] CONFIG_AUFS_EXPORT=y
    - LP: #1121699

  [ Upstream Kernel Changes ]

  * Revert "KVM: x86: apply guest MTRR virtualization on host reserved
    pages"
    - LP: #1509886
  * Revert "KVM: SVM: use NPT page attributes"
    - LP: #1509886
  * Revert "KVM: SVM: Sync g_pat with guest-written PAT value"
    - LP: #1509886
  * Revert "cgroup: simplify threadgroup locking"
    - LP: #1509886
  * Revert "sched, cgroup: replace signal_struct->group_rwsem with a global
    percpu_rwsem"
    - LP: #1509886
  * Revert "ARM64: unwind: Fix PC calculation"
    - LP: #1514889
  * Revert "serial: 8250_dma: don't bother DMA with small transfers"
    - LP: #1514889
  * Revert "md: allow a partially recovered device to be hot-added to an
    array."
    - LP: #1514889
  * arm64: Change memcpy in kernel to use the copy template file
    - LP: #1508471
  * arm64: copy_to-from-in_user optimization using copy template
    - LP: #1508471
  * Input: elan_i2c - enable ELAN0600 acpi panels
    - LP: #1439111
  * e1000e: Fix tight loop implementation of systime read algorithm
  * arm: KVM: Fix incorrect device to IPA mapping
    - LP: #1509886
  * KVM: vmx: fix VPID is 0000H in non-root operation
    - LP: #1509886
  * kvm: don't try to register to KVM_FAST_MMIO_BUS for non mmio eventfd
    - LP: #1509886
  * kvm: fix zero length mmio searching
    - LP: #1509886
  * kvm: factor out core eventfd assign/deassign logic
    - LP: #1509886
  * kvm: fix double free for fast mmio eventfd
    - LP: #1509886
  * arm: KVM: Disable virtual timer even if the guest is not using it
    - LP: #1509886
  * kvm: svm: reset mmu on VCPU reset
    - LP: #1509886
  * KVM: x86: trap AMD MSRs for the TSeg base and mask
    - LP: #1509886
  * KVM: PPC: Book3S: Take the kvm->srcu lock in
    kvmppc_h_logical_ci_load/store()
    - LP: #1509886
  * KVM: PPC: Book3S HV: Pass the correct trap argument to
    kvmhv_commence_exit
    - LP: #1509886
  * time: Fix timekeeping_freqadjust()'s incorrect use of abs() instead of
    abs64()
    - LP: #1509886
  * target/iscsi: Fix np_ip bracket issue by removing np_ip
    - LP: #1509886
  * scsi: fix scsi_error_handler vs. scsi_host_dev_release race
    - LP: #1509886
  * target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess
    - LP: #1509886
  * target: Fix PR registration + APTPL RCU conversion regression
    - LP: #1509886
  * iser-target: remove command with state ISTATE_REMOVE
    - LP: #1509886
  * iser-target: Put the reference on commands waiting for unsol data
    - LP: #1509886
  * toshiba_acpi: Fix hotkeys registration on some toshiba models
    - LP: #1509886
  *...

Changed in linux (Ubuntu Wily):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.