-
Notifications
You must be signed in to change notification settings - Fork 116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ELKS on Book 8088 #1619
Comments
One more thing. The BIOS of the device can be found here https://github.com/skiselev/8088_bios. The unknown Chinese manufacturer of the Book 8088 just took the Sergey Kiselev's BIOS and modified it a little. He back ported the changes to the master branch recently. As far as I can see the changes mainly concern Turbo mode and keyboard INT 09h. |
Hello @Vutshi, Looks like some new fun on your shiny new 8088 laptop! I will read more about it, thanks for the links.
The You might also try booting the
It is a contradiction that the ELKS MBR says no bootable partition, while the mbr-analyzer recognizes a boot partition. I don't yet know the reason for this, we will have to investigate further. I would suggest using MINIX rather than FAT boot images, and don't use an MBR image, just a flat image, and see what else we find. This reduces the complexity of the boot and ELKS will boot non-MBR HD images as though they were large floppies, as long as the CHS values are correct. The ELKS HD image CHS values can be changed by editing Thank you! |
Hi @ghaerr
We tried Minix versions as well, they give exactly same results as FAT images.
Then what values should I write there? The same as reported by DOS disk which boots well? Note, that I use physically different CF cards for DOS and ELKS. Best |
You mean that MINIX images showed
You mean that the CF card is a different size? I'm not sure what the CHS values should be to correct this at this point, I am hoping that the multi-sector reads desribed above help. However, the FAT boot loader doesn't use FAST_READ and it's still broken. So it likely won't work. We have had other issues in the past related to the BIOS not handling disk reads after BIOS DISK RESET calls. I don't recall the exact details. I am also a bit confused with the MBR analyzer showing start sector 0, as sector 1 is the default numbering scheme. Also, ELKS MBR when you typed We have others running ELKS on Sergey's BIOS. Do you have more information on the changes made required for your laptop? Will it run with the original unmodified Sergey 8088 BIOS? |
Ah, I was in error in my last reply: a For MINIX non-MBR disks, the first sector (physical sector 1) would be read by the boot loader, then the ELKS MINIX boot loader (when #undef FAST_READ is not defined so no multi-sector reads), the second sector of the 1K book block is read (physical sector 2), producing the first What brand floppy emulator are you using with the CF cards? IIRC we have had some issues with floppy emulators as well. |
I have read about that 8088 book article before. Very interesting. Does the book have floppy emulation from the USB port? (Maybe no?) |
Does it make sense that unlike minix, the FAT image didn't manage to produce the three dots?
I don't really know. The IO chip seems to be realized on a programmable logic device ATF1508-XT IO: The arstechnica article says that "Hard disk functionality is provided by an integrated XTIDE controller". It uses XTIDE BIOS extension. |
Hi @tyama501
It seems the USB port can be used for storage devices only after booting into DOS and loading CH375DOS.SYS driver |
〉This reduces the complexity of the boot and ELKS will boot non-MBR HD images as though they were large floppies, I am not sure the BIOS can handle the disk without MBR. Is it possible? I think CHS values of the whole disk depends on CF cards and the IDE emulater so it might be better to use the same CF card with the MS-DOS. |
Oh easier way. If you can load the MS-DOS partition image and elks floppy imge on qemu, may be you can install (Although in this case you need to format the MS-DOS first.) |
The BIOS disk read functions don't know or care about the MBR itself, as the disk contents are accessed solely though C/H/S parameters. As long as the filesystem starts in the sector following the boot block(s) (1 for FAT, 2 for MINIX), this shouldn't be an issue.
I am not aware of how CF cards calculate CHS, but if H/S varies with CF card size, this could definitely be an issue. Perhaps try this instead of rebuilding MINIX image with below option:
That's a very good idea - the MINIX ELKS floppies and HD images require the max head and sector value to be stored near the end of the boot sector, and this must match the HD emulator-expected CHS. For FAT ELKS floppies, the max head and sector values are stored in the DOS BPB block at the beginning of the boot sector. |
@ghaerr |
I had thought that you were already running the updated BIOS with XTIDE support... my latest theory based on your new evidence is that the drive controller isn't fully IDE compliant (thus the errors with DOS diagnostics programs) but that it still works with some boot programs, possibly the result of timing interactions with the existing likely deficient BIOS when booting DOS. The default ELKS hd32 images are built with heads:16 and sectors:63. The max cylinders doesn't matter at boot time (since without partitions will always be 0), and is only an issue later if it conflicts with the filesystems internal size spec. Even if the HD sector size is 61 not 63, that difference should not produce the results seen in the boot screens, so I'm still thinking that this issue has something to do with the way the drive controller is being accessed by the BIOS. I haven't yet dug into the XTIDE universal BIOS, although your supplied link lists some interesting information in the Known problems section, especially with CF cards and their MBR requirements (!). |
I read the Ars Technica article on the Book 8088, very interesting! I don't know if you happen to have read the MinusZeroDegrees website about issues relating to XTIDE, I found this particular link interesting: https://minuszerodegrees.net/xtide/XT-IDE%20-%20Problems.htm That page details some issues with XTIDE and the sometimes requirement for the CF card to have an MBR boot block, or the boot fails. I am guessing the reason might be that the XTIDE controller firmware/software requires the MBR in order to otherwise setup the CHS for the emulated drive (even though the MBR doesn't technically specify the drive CHS values). It is also possible that XTIDE w/CF may require a FAT formatted disk and not work with ELKS MINIX filesystems. We will have to wait and see what is learned with the updated BIOS from Sergey. Finally, it could be the case that there is a problem with ELKS' MBR tables that render it incompatible with XTIDE, although I suppose that unlikely. I have some seen some BIOS code that handles reading and writing of the boot sector (MBR in this case) specially, and that could be happening here. The proposed solution to this problem is to run Here is another page of interesting information on XTIDE: https://minuszerodegrees.net/xtide/XT-IDE%20-%20Basics.htm |
https://github.com/jbruchon/elks/wiki/Installing-HD-image-on-physical-media There are some comments at the bottom of the page that might be important. |
Do you mean the issue with boot sometimes failing when IDE probing is turned on? I fixed that a while ago, if configured ON, it will now time out rather than hang if an IDE isn't present. The current Book 8088 boot problem is occurring during the time the boot loader is reading in the kernel, so kernel configuration isn't an issue (yet). |
I see. @Vutshi is using stock images of the 0.6 release, right. Maybe using the current code base 0.7 will yield better results. |
Agreed, there's been lots of progress since 0.6. I think we should push out v0.7, since there has been not so much activity and lots of changes? |
That would be cool as I have some problems currently with my Linux computer which I usually use to build ELKS. |
@Vutshi It seems a minix image of 0.7 works as pointed in #1370 (comment) |
@Vutshi You should try hd64-minix.img of 0.7 with Rufus. |
Hello @Vutshi, here's the latest hd64-image.img (soon to be v0.7.0) for you to try, as discussed in #1370 (comment). It's a non-MBR image, I can't remember exactly why ELKS isn't creating an MBR version. We'll likely have to figure out why the 32MB FAT image won't boot after v0.7.0, but hopefully this image will work for you as it did for @tt1542. |
Thank you @ghaerr, I’ll try it asap! |
@Vutshi, as per @tt1542's 360k FAT floppy boot working OK described in #1625 (comment), here's a current version for that as well for your testing: |
@ghaerr The small fd360 image is tested using two different CF card (32Mb and 256Mb) with the same results. This was done because we noticed a strange behaviour of the 256Mb card. Namely, we cloned a working CF card containing DOS onto this 256Mb card using dd and the cloned version didn't boot at all. The ELKS at least tries to boot from this card... |
Btw, can |
I thought it was already incredibly fast, completing the listing of a 360K ELKS disk in just 20 seconds. :) |
Running We do have executable compression that can shrink every executable by 30+%, but some people complained about the decompression speed, especially on slow systems. I have on my list of things to do to possibly compress less-used programs - there isn't a way to do that now, only all programs on disk or none using the image build system.
Looking at the I also notice that
I can see that the delay processing (for sl, matrix and others) needs to calculate the time per display cycle first and possibly not delay at all on slow systems. Let see how fast the intercity train is, and then see what makes sense to work on speeding up. What we need is a kernel profiler, actually. |
Right. I forgot that I like to switch off unused features like FAT and Ethernet. Then I have both more space for fun stuff and more troubles like unbootable FAT ELKS ) |
At last, the train has evolved into the true era of steam power, ready to conquer the 8088 tracks:
Since now it is so fast we can probably restore pause after each frame, at least with UPDATE: |
In the past |
Good to know that the timing function is working properly in MartyPC. When you test again on real hardware, that will be interesting to see whether Book 8088 and Schneider also work properly, as I've been suspecting some possibly timer related discrepancies on either of them. I think what is needed for both Given that, for research purposes, I can see a need for
What?! Did you actually type There's actually four options: -a for there's been a train accident, -F for fly mode, -l for logo, and -c for C51 train (vs D51 normal). You better get out and try these, conductor. Especially -F, since you've probably not yet seen a train fly. |
Interesting new blogpost about Book8088. The author of the MartyPC emulator also acquired Book8088 and noticed it was slightly faster than the original IBM XT due to faster static memory. He fixed this difference with a hardware hack, enabling the machine to run the tricky 8088MPH demo. |
Hi @ghaerr, The railway system has resumed operations, now operating more efficiently than ever: Even the slowest train is now over twice as fast as the original, preventing tests of It took some time to discover how to feed a shell script to Best |
Hello @Vutshi, Thanks for your follow up testing and screenshots. Glad to see we now have timely train service, and that
What?! Geez. I'm testing that over here and no problem. I would guess you're probably running |
I think I was unclear. What doesn’t work is |
Oh, I see now. It looks like We could change this to internally call Overall, I'm not sure if an attempted fix buys us very much... what do you think? |
@ghaerr I think it is better to keep it simple; leave it as it is. |
I think now we can close this issue given that there are no more issues with Book8088. |
Sounds good @Vutshi! |
I want to buy a Book 8088 to run ELKS on bare metal. Which version should I buy? |
Hi @rafael2k, Sounds fun! I wasn't aware that Book had a VGA version, but for the extra $20 its probably worth it. Although the VGA version hasn't been tested, I'm pretty sure it should work out of the box. If not, we'll be able to get it running for you. ELKS supports EGA/VGA out of the box, and the console will run in whatever monitor mode the BIOS has been setup to use. I'm less sure about the ISA adaptor, it should work with a NIC but we've seen some compatibility issues with 8- vs 16-bit NICs and ISA busses, depending on the NIC and chip used. |
Cool! I'll give to myself as birthday a VGA version. NIC would be just a bonus for me indeed, but I'll try to find some different ones to test. Any problem I let you know. Cheers and thanks for the wonderful work on ELKS! |
Very cool @BasileusErwin! Thanks for the picture. I hadn't heard of the Pocket 8086, but its great to hear that ELKS installed and ran out of the box with no changes! :) Looks like its got a hard drive in there too. |
As far as I can read about, it has a XT-IDE with a 512MB CF, ISA 8-bit, serial and parallel port! Very cool! |
Yes, I thought about an ethernet NIC. Maybe I'll try to make one, with Arduino or Raspberry Pi using the serial port, and be able to transfer files on my local network. It looks like an interesting project, challenging, but interesting. |
Indeed! Hopefully just a NE2k chip on the board would do the deal. |
Description
I have a new and shiny laptop based on the 8088 processor. You can read about the Book 8088 on arstechnica. It's a fascinating device that allows for easy CPU changes. I've already tried the V20, Intel 8088, and a Soviet clone of the 8088, and they all work well in DOS. However, I'm currently having trouble getting it to boot ELKS out of the box.
UPDATE: About hardware details see the blogpost in the comment #1619 (comment)
UPDATE2: More hardware details from Sergey Kiselev:
Configuration
Version (commit or release): ELKS v0.6.0 release image hd32-fat.img and hd32mbr-fat.img. Minix versions give identical results.
Screenshot(s):
hd32-fat.img starts to boot a little bit:
hd32mbr-fat.img doesn't boot:
Additional information
ELKS gives me parameters which are different:
The text was updated successfully, but these errors were encountered: