Giter Site home page Giter Site logo

Comments (6)

nepx avatar nepx commented on August 26, 2024

Hi,

The mem parameter controls the amount of emulated RAM (i.e. http://localhost:8080/index.html?cda=tinycore&mem=128 for 128 MB of RAM). Some options are in runtime.js

TinyCore Linux won't boot because of some problems with ATAPI sector caching. I think it's the same bug that makes Ubuntu crash if it's booted with a CD-ROM attached.

Browser stack trace:

Error: abort(undefined). Build with -s ASSERTIONS=1 for more info.
abort@http://localhost:8080/halfix.js:84259:9
_abort@http://localhost:8080/halfix.js:86680:7
util_abort@http://localhost:8080/halfix.js:82401:2
ide_atapi_read@http://localhost:8080/halfix.js:68074:2
ide_pio_read_callback@http://localhost:8080/halfix.js:46805:22
ide_pio_readd@http://localhost:8080/halfix.js:66650:24
insd32@http://localhost:8080/halfix.js:61758:66
op_insd32@http://localhost:8080/halfix.js:80372:7
cpu_execute@http://localhost:8080/halfix.js:80515:44
cpu_run@http://localhost:8080/halfix.js:65216:4
pc_execute@http://localhost:8080/halfix.js:60772:8
emscripten_run@http://localhost:8080/halfix.js:82127:7
Module._emscripten_run@http://localhost:8080/halfix.js:87101:42
run_wrapper@http://localhost:8080/runtime.js:544:21

Browser message:

[IDE] Error trying to fetch already-fetched ATAPI data

Native log:

[I/O] readb: port=0x03f6 res=0x58
[I/O] readb: port=0x01f1 res=0x00
[I/O] readb: port=0x01f2 res=0x02
[I/O] readb: port=0x01f3 res=0x00
[I/O] readb: port=0x01f4 res=0x00
[I/O] readb: port=0x01f5 res=0x10
[I/O] readb: port=0x01f6 res=0xa0
[IDE] Reading sector 9727 - 2 left - frame 2048/4096 [res: 2048], sectsize=2048
[IDE] pio length: 2048
[IDE] Finished current frame : str=1 btt=2048 50
[PIC] Raising IRQ 14
[APIC] Received bus message: vector=22 type=0 trigger=0
[IDE]    atapi read sector=9728
Unable to read 512 bytes from image file

from halfix.

nepx avatar nepx commented on August 26, 2024

With the latest commits TinyCore Linux boots, and the mouse works. I found that 64 MB of RAM and 4 MB of VGA RAM works well.

TinyCore Linux

For some reason, the desktop icons don't render in the WebAssembly version, but you can still open the terminal and a few other apps by bringing the right-click menu.

from halfix.

ARyaskov avatar ARyaskov commented on August 26, 2024

Hi, sorry for late reply!
Thank you very much for fixes have been done!
I've recompiled Halfix from latest commit.
But I'm still no reach my goal -- run any modern Linux-based OS (with v3 or v4 kernel) in browser relatively smoothly (it's not possible to run it in browser at full speed at the moment of course :) ), not in a native app.

Here is my journey for run various OSes in browser wasm (node makefile.js emscripten --enable-wasm release):

dsl-4.11.rc2 from cd

index.html?cda=dsl-4.11.rc2&mem=256

Screenshot 2020-04-08 at 18 05 57

tinycore from v3 to v11 from cd (booting in command-line only mode)

index.html?cda=tcos&mem=128

does not work

while booting the kernel stage:

RuntimeError: abort(undefined) at Error at jsStackTrace (http://localhost:5001/halfix.js:1:21255) at stackTrace (http://localhost:5001/halfix.js:1:21423) at abort (http://localhost:5001/halfix.js:1:16864) at _abort (http://localhost:5001/halfix.js:1:76158) at wasm-function[28]:0x1cf8 at wasm-function[112]:0xf040 at wasm-function[1152]:0x6b15f at wasm-function[349]:0x48b8a at wasm-function[391]:0x4cb7f at wasm-function[865]:0x5f9e4 RuntimeError: abort(undefined) at Error at jsStackTrace (http://localhost:5001/halfix.js:1:21255) at stackTrace (http://localhost:5001/halfix.js:1:21423) at abort (http://localhost:5001/halfix.js:1:16864) at _abort (http://localhost:5001/halfix.js:1:76158) at wasm-function[28]:0x1cf8 at wasm-function[112]:0xf040 at wasm-function[1152]:0x6b15f at wasm-function[349]:0x48b8a at wasm-function[391]:0x4cb7f at wasm-function[865]:0x5f9e4 at abort (http://localhost:5001/halfix.js:1:16895) at _abort (http://localhost:5001/halfix.js:1:76158) at wasm-function[28]:0x1cf8 at wasm-function[112]:0xf040 at wasm-function[1152]:0x6b15f at wasm-function[349]:0x48b8a at wasm-function[391]:0x4cb7f at wasm-function[865]:0x5f9e4 at wasm-function[324]:0x44a5d at wasm-function[470]:0x4f25a

tinycore v2 from cd

🔥 works, load bash, successfully execute any terminal command, but it has old 2.6 kernel

slitaz 4 linux base live from cd

while booting:

(yes, this trace quite useless, but jfyi)

RuntimeError: abort(undefined) at Error at jsStackTrace (http://localhost:5001/halfix.js:1:21255) at stackTrace (http://localhost:5001/halfix.js:1:21423) at abort (http://localhost:5001/halfix.js:1:16864) at _abort (http://localhost:5001/halfix.js:1:76158) at wasm-function[28]:0x1cf8 at wasm-function[112]:0xf040 at wasm-function[1152]:0x6b15f at wasm-function[349]:0x48b8a at wasm-function[391]:0x4cb7f at wasm-function[865]:0x5f9e4 RuntimeError: abort(undefined) at Error at jsStackTrace (http://localhost:5001/halfix.js:1:21255) at stackTrace (http://localhost:5001/halfix.js:1:21423) at abort (http://localhost:5001/halfix.js:1:16864) at _abort (http://localhost:5001/halfix.js:1:76158) at wasm-function[28]:0x1cf8 at wasm-function[112]:0xf040 at wasm-function[1152]:0x6b15f at wasm-function[349]:0x48b8a at wasm-function[391]:0x4cb7f at wasm-function[865]:0x5f9e4 at abort (http://localhost:5001/halfix.js:1:16895) at _abort (http://localhost:5001/halfix.js:1:76158) at wasm-function[28]:0x1cf8 at wasm-function[112]:0xf040 at wasm-function[1152]:0x6b15f at wasm-function[349]:0x48b8a at wasm-function[391]:0x4cb7f at wasm-function[865]:0x5f9e4 at wasm-function[324]:0x44a5d at wasm-function[470]:0x4f25a

alpine linux 3.3.3 x86 from cd

index.html?cda=alpine-3.3.3-x86&mem=256

while booting:

RuntimeError: function signature mismatch at wasm-function[865]:0x5f9e4 at wasm-function[324]:0x44a5d at wasm-function[470]:0x4f25a at wasm-function[536]:0x519a4 at Module._emscripten_run (http://localhost:5001/halfix.js:1:86980) at run_wrapper (http://localhost:5001/runtime.js:544:21) runtime.js:562 Uncaught RuntimeError: function signature mismatch at wasm-function[865]:0x5f9e4 at wasm-function[324]:0x44a5d at wasm-function[470]:0x4f25a at wasm-function[536]:0x519a4 at Module._emscripten_run (http://localhost:5001/halfix.js:1:86980) at run_wrapper (http://localhost:5001/runtime.js:544:21)

ReactOS-0.4.12 from cd

/index.html?cda=ReactOS-0.4.12&mem=512

Enter into setup mode, failed while 'Select HardDrive for install' stage (No harddrives are available)

FreeDOS 1.2 from hd (preinstalled with qemu https://github.com/palmercluff/qemu-images/tree/master/freedos-1.2)

🔥 boots and it's possible to run any command in command line

KolibriOS 0 7 4 from hd (preinstalled with qemu https://github.com/palmercluff/qemu-images/tree/master/test-images/kolibri-os)

🔥 works with GUI, but very slowly (about 5 seconds for its notepad version opening)

MenuetOS preinstalled with qemu

Hangs while booting (I can not enter any number from keyboard in order to specify
the variant of OS loading, pressed keys got no response from OS)

from halfix.

nepx avatar nepx commented on August 26, 2024

@ARyaskov MenuetOS (from the original floppy disk) seems to work fine, I downloaded the floppy from M32-086B.ZIP and it runs perfectly. A recent commit has fixed floppy drive emulation in the browser.

http://localhost:8080/halfix/index.html?fda=disks/menuet&mem=64

Screenshot_2020-04-27 Halfix x86 Emulator -  800 x 600  - Press ESC to release mouse

During boot, I chose 24 BPP 800x600, use preset, no MTRR accleration, PS/2 mouse, 64 MB RAM, and image from floppy.

Screenshot_2020-04-27 Halfix x86 Emulator -  720 x 400  - Press ESC to release mouse

Thanks for the bug reports, they're helping me fix a lot of issues.

from halfix.

nepx avatar nepx commented on August 26, 2024

ReactOS LiveCD works well in the browser.

http://localhost:8080/home/jkim13/Desktop/halfix/index.html?cda=disks/reactos&mem=128

Screenshot_2020-04-27 Halfix x86 Emulator -  640 x 480  - Press ESC to release mouse

There are some VGA glitches (no icons), but they happen on the native version too. They go away if you enable PCI VGA.

I haven't tried installing it, but it should work, in theory, if you attach a blank hard drive image (http://localhost:8080/halfix/index.html?cda=reactos&hdb=300Mempty. All the changes to the image will be erased on the next page refresh, however.

from halfix.

nepx avatar nepx commented on August 26, 2024

Somewhere in the last few commits, major bugs preventing TinyCore and Damn Small Linux from booting in the browser have been fixed. I'm not sure how exactly I fixed these bugs, but I guess that all that matters is that they're gone.

Anyways, I revamped index.html by making it prettier and easier to configure. If you know of any other operating systems that don't work, please let me know.

from halfix.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.