Re: bus-master DMA error (was: stability of Cobalt Qube 2)
[email protected] Tue, 24 Apr 2012 18:48:48 +0200 (CEST)
| Newsgroups | gmane.os.netbsd.ports.cobalt |
|---|---|
| Message-ID | <[email protected]> |
OMG, you guys are so helpful and compiling a netbsd kernel using below instructions is even easier than compiling linux :) I think I found the culprit. The 320 GB drive is fairly new and is probably not telling the kernel which modes / DMA it supports. So I disabled DMA and PIO modes alltogether (based on GENERIC config): wd* at atabus? drive ? flags 0x0ff0 Now it boots just fine (great!). Thank you very much for your help. ----- Original Message ----- From: "Andy Ruhl" <[email protected]> To: "kenneth westelinck" <[email protected]> Cc: "Mike Hebel" <[email protected]>, "Erik Berls" <[email protected]>, [email protected], [email protected] Sent: Tuesday, April 24, 2012 4:58:39 PM Subject: Re: bus-master DMA error (was: stability of Cobalt Qube 2) On Tue, Apr 24, 2012 at 5:34 AM, <[email protected]> wrote: > Yes, I can imagine you can strip a lot of things from the kernel and make it small. When I was young, I used to strip Linux kernels to run on a 486, but creating a custom kernel for a netbsd machine seems a little more difficult. > I think I have 2 problems: > 1) I don't have another BSD machine, so I would need to build the new kernel on the Qube. For this to work, I need some more space and I don't have a lot of free space left on the CF (the CF is only 1 GB). I also think this might take a long time (?). > 2) Suppose I manage to build a custom kernel, will this solve my "bus-master DMA error". As far as I know, the GENERIC kernel is similar to a Linux kernel with all of the modules compiled in it (right?). So, even if I strip stuff out, I am not sure if this will make my problems disappear. > Since there are some people on this list owning a Qube 2, would it be possible to "borrow" a kernel (kernels seem quite small), just to try if my problems go away? > I am now running 5.1.3, also tried 6.0_BETA, still same issue :( You can build a kernel on Linux. Cross builds are no problem. Go somewhere on the Linux machine, and do this: mkdir src tools obj cvs -d :pserver:[email protected]:/cvsroot checkout -PA -rnetbsd-5 src This will get you the latest 5.x source tree. From there you need to cross build a kernel. I'm short on time, so briefly: go to src/sys/arch/cobalt/conf/ copy GENERIC to some other name, and edit it and save it. go back to src ./build.sh -m cobalt -T ../tools -O ../obj kernel=GENERIC (but not GENERIC, whatever you called it) After a while it will end up in the obj/sys/..... path called netbsd. Put it in / on the cobalt, and rename the old kernel netbsd.old Have your serial cable ready for when it doesn't boot. You can interrupt the netbsd bootloader and tell it to boot the old kernel something like: boot hd0a:netbsd.old Andy