-
Notifications
You must be signed in to change notification settings - Fork 0
comps/ehci-mdac
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
DISCLAIMER: I don't use Ubuntu, this is just for the poor people that do The Audiolab MDAC (an audio device) has some problems with recent Linux kernel versions due to split transaction scheduling in the ehci-hcd driver. I'm going to investigate it further and push for a proper fix, but in the meantime, there's this workaround. It basically just patches ehci-sched.c with a reverting patch and rebuilds the kernel image, since Ubuntu compiles ehci-hcd with the kernel, NOT as a standalone module. The offending commits are e3420901eba65b1c46bed86d360e3a8685d20734 and 811c926c538f7e8d3c08b630dd5844efd7e000f6 This tool was created for "ordinary folk", and therefore, for Ubuntu. If you're a skilled kernel programmer who maintains his own kernel, then by all means revert the aforementioned commits and forget about this simple Makefile "tool". == How to use == === Preparation === 1) download a tarball/zip from Github's Tags page, https://github.com/comps/ehci-mdac/tags 2) extract it and "cd" into the directory All temporary files will reside in this directory, so you can easily remove it once all is done. 3) make sure to have "make" installed, $ sudo apt-get install make 4) make sure to have at least 11GB of free disk space and several spare hours of computer time (ie. not running on battery) - the kernel+modules rebuild takes about 10GB of temporary files, which can be removed afterwards, see cleanup below - on dualcore Intel i5 CPU it took about 2 hours === Execution === If you don't mind the script building the modules with root privileges, then by all means run "sudo make debpkg install". This is the recommended way for most people. As an alternative (or for debugging purposes), you can run each step manually: 1) download, and upstream-patch the kernel source $ make source 2) install build dependencies (with minimal other deps), $ sudo make builddep 3) patch the ehci-sched.c source, $ make patch 4) build the kernel, including modules, create .deb packages, $ make build 5) install the new .deb packages with kernel image and headers, $ sudo make install 6) (optional) hold the linux-image package, so the newly installed kernel doesn't get replaced by a stock updated one - this is potentially a bad idea as the updates might contain important changes a) if you prefer less future hassle, do this step, b) if you really want the future kernel fixes/features, skip this step, you can simply re-run this entire tool when the kernel gets updated in the future (untested, not dangerous, but might just not work) $ dpkg --get-selections | grep linux-image | awk '{print $1}' | xargs apt-mark hold === Cleanup === And that's about it! Feel free to remove the unzipped directory and the downloaded zip/tarball.
About
ehci-hcd.c automatic patch + rebuild, working around kernel bugs affecting the Audiolab MDAC
Resources
Stars
Watchers
Forks
Packages 0
No packages published