UbuntuThis forum is for the discussion of Ubuntu Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
First some background. My 7.1 Ubuntu worked fine on my AMD/VIA chipset machine and them I updated to 8.04 and all hell broke loose. My machine got super slow and the key was a message during boot saying disk dma was turned off. Sure enough, hdparm showed dma was turned of and I could not turn it on with hdparm. Further investigation revealed that the Ubuntu kernel maintainers had decided nobody should use VIA chipsets and disabled the building/loading of the via82cxx.ko module.
I first tried building a new kernel, I have been building kernels for Slackware distros for over 10 years, and had nothing but trouble with the Ubuntu debian based system. Hell, even building one WITHOUT modifying the original config file from /boot wouldn't boot. Stopping at a usb config line until I turned off the printer and then stopping at a line stating:
Uniform CD-ROM driver Revision: 3.2
I gave up.
I then tries just building and installing the via82cxxx.ko module using
make drivers/ide/pci/via82cxxx.ko
which built. I then did an insmod via82cxxx.ko, which worked. But, hdparm still said dma was disabled. So, I executed
hdparm -d 1 /dev/hdb
which gave a HDIO_SET_DMA failed: Operation not permitted
and yes, I did it s root.
lsmod shows via82cxxx is installed, etc.
S, what the hell do I need to do to get this Ubuntu 8.04 to use the damn disk dma?
Plus, another thing i noticed, The makeconfig no longer allowed you to build the via82cxxx into the kernel, it only allowed none or as a module.
I had much the same problem with an older GA-8TRS350MT board on FC3 a while ago. The stock FC3 kernel had no support for the DMA chip this board had come out with.
I solved it in exactly the way you are trying to, e. g. I got a newer kernel that had support for the chip (I think it was a VIA chip too, come to think of it), I compiled that kernel with support for that chip and it worked - on-board DMA was enabled, as well as disk DMA.
HOWEVER
I think your approach is sound, but you are trying to do this with Ubuntu - which, IMO, is not know as a very hands-on distro. E. g. anything and everything install or kernelwise must be done with... erm... "Synaptic", isn't it? E.g. Ubuntu as a distro does not "like" you poking and compiling stuff yourself, it is designed for everything being done package-wise, much like .deb and .rpm for Debian and Fedora distros.
I'd suggest getting another distro, your approach and logic looks 100% correct.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.