Problem when run with the newer Bochs software and fixing methods ----------------------------------------------------------------- gohigh@sh163.net, gohigh@gmail.com 2006.08.28 When running the Linux kernel 0.1x in Bochs environment with version number newer or equal to 2.2.6, you may encounter an problem at the bootstrap period with the error message "HD controller not ready". There are two general methods you can use to fix this problem. 1. One way is tricky but easy and without modify the kernel code. you need only copy the harddisk image file to another name and modify the .bxrc file to attach it as a second or slave hd in it. Fox example, if you have a hard disk image file with name is hdc-0.11.img, just copy it to produce another disk image with a name something like hdd-0.11.img. Then modify the corresponding configuration file, for example, bochsrc-hd.bxrc. Add the following line, and the parameters in the line should be the same with your hdc-0.11.img line. Then you can go with the newer bochs system. ata0-slave: type=disk, path="hdd-0.11.img", mode=flat, cylinders=410, heads=16, spt=38 2. The second mothod is to modify the linux/kernel/blk_drv/hd.c file in you Linux kernel 0.11. Change the code at line 163 and 165: 163 int retries=10000; 164 165 while (--retries && (inb_p(HD_STATUS)&0xc0)!=0x40); as following: 163int retries=100000; 164 165while (--retries && (inb_p(HD_STATUS)&0x80)); then rebuild the kernel and write it to the boot floppy image file: dd if=Image of=/dev/fd0 (End)