From: Bill C. R. <do...@fr...> - 2009-03-02 23:46:49
|
As a follow-up, I figured out a better way to debug and traced the problem in NetworkManager. It occurred to me I could run anaconda in a chroot environment. It seems that NetworkManager will ignore any device without an associated driver. e.g. an info.linux.driver entry for the net.originating_device. I will try patching NetworkManager to by-pass this limitation, and see where that gets us. Bill On Sun, Mar 1, 2009 at 11:46 PM, Bill C. Riemers <do...@fr...> wrote: > I spent a number of hours this weekend attempting to get Anaconda to > work with coLinux. coLinux has come a long way, and even the Live CD > almost works. I would like to briefly describe some of the problems I > found, some of the solutions, and where I am stuck right now. > > The biggest problem I've had so far is debugging. I can find no way > to scroll in the console window. So tracebacks, and errors quickly > appear on the screen and disappear. Is there anyway to redirect the > console output to a log file or such? If so, it would make life much > easier. For now, I've just been entering print statements in code, > and sleep commands to give me time to read the output. It doesn't > always tell me where it crashed, but it does help me figure out where > it didn't crash. > > The first problem I found is anaconda needs the driver modules. I > found simply appending the modules to the initrd.img file works just > fine to fix this: > gunzip -c initrd.img > initrd.cpio > tar xfz vmlinux-modules.tar.gz > find lib/modules |cpio -o -H newc -A -F initrd.cpio > gzip -c initrd.cpio > initrd.img > > The first code problem I found is the capacity for cobd devices is > listed as 16. As none removable devices, anaconda expect the size > value to be valid. However, the size is always read as 0, so anaconda > skip past the devices. On a hunch, I added a open command into the > code, and found once a cobd device has been opened, the size value is > nolonger 0, so anaconda will recognize it. So the solution is coLinux > either needs to mark all cobd devices as removable, or it needs to > initialize the size parameter. > > The next problem I came across is that anaconda expects CD's to have > the cd capacity set. Since coLinux treats all cobd devices the same, > none are marked as CD. So again, I did a quick hack and modified my > build of anaconda to consider all coLinux devices as both CD's and > hard disks. > > Next, for some reason NetManager in the initrd.img is unable to > initialize the network for slirp network, even when I explicitly > specify the networking parameters. I've had similar problems in the > past with qemu, and managed to get around it by using a different > networking setup. I will try the same for coLinux, but for now this > problem stopped me dead in my tracks. > > Now, you might think as I did, that we don't need networking. Just > specify an ISO image and install from that. However, the problem is > the only headless option for anaconda is to use vnc. But in order to > use vnc, we need networking. Otherwise anaconda consistently crashes > trying to set-up graphical display. I am not certain that having > networking, and thus vnc will avoid this crash, but I am certain it > can not work without networking for a headless install. > > The last sticker is going to be the partitioning. In that there seems > to be no capacity in anaconda to deal with hard disks of type 16. > However, once I get past the networking problem I will try and add > this capability to anaconda. > > Any insight others have, especially in the NetworkManager problem and > how to debug this code would be greatly appreciated. > > Bill > |