From: Bill C. R. <do...@fr...> - 2009-03-02 04:46:11
|
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 |