Comments (6)
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.
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.
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.
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
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.
@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
During boot, I chose 24 BPP 800x600, use preset, no MTRR accleration, PS/2 mouse, 64 MB RAM, and image from floppy.
Thanks for the bug reports, they're helping me fix a lot of issues.
from halfix.
ReactOS LiveCD works well in the browser.
http://localhost:8080/home/jkim13/Desktop/halfix/index.html?cda=disks/reactos&mem=128
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.
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)
- Native build on osx has missing color channels? HOT 5
- Disk Image documentation update
- Emulator/JS communication - stdin, stdout, stderr? HOT 3
- Options handling HOT 1
- Failing to compile HOT 3
- Windows XP not working in halfix-demo HOT 8
- Can't compile for termux HOT 7
- out of memory HOT 3
- Visual Studio project? HOT 6
- x86-64 and some upgrade? HOT 3
- mobile rendering
- Add networking support HOT 1
- how do i port this app to uwp Universal Windows HOT 3
- how would this work on replit HOT 1
- Can't increase ram? (192mb limit on browser) HOT 4
- how do you run the os in the app version HOT 4
- sorry but the os crashes when i run it
- Is it possible to build on windows? or i need linux?
- Node.js error HOT 2
- ./halifix does not work HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from halfix.