-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Create minimal Linux/BusyBox configs for running v86 #213
Comments
Documenting as I go, please correct me if I'm wrong. Based on the cpu definition docs, it seems like buildroot's
See https://github.com/buildroot/buildroot/blob/master/arch/Config.in.x86#L55-L59, which defines x86 with SSE and MMX. |
Good idea! Let me know about your findings. A few thoughts:
|
This is something I've wanted to do, but not really known how, @humphd if you could share the final result that would be great! 😁 |
I spent the weekend on this and got it working and automated within docker, see humphd/next#83. This defines a custom "board" for v86 with the various tweaks I need (I've got most hardware disabled, plan 9 enabled, and customizations to the startup scripts in My build is 4.9M (kernel + rootfs bundled as an ISO), and starts-up with 8M of RAM in use. I'm probably satisfied with this, and won't tweak it too much more, except to research a few of the things you mention above (I did see the Taking what I did for my PR and generalizing it for v86 (i.e., not disabling all the stuff I turned off, or having multiple When I started playing with v86, I didn't know how to use buildroot, and was forced to try different existing images, each of which had some of what I needed, but not the rest. Now that I understand how it works, it seems like you could spec out a bunch of configurations that work well on v86, and then automate their builds so people can use or tweak. If any of this is interesting to you, let me know and I'll help make it happen. |
Continuing to work on this, and it's going well. I've run into an issue, which I suspect might be due to v86 and/or how I'm configuring my kernel to work on v86. I have a package I'm building in buildroot that uses ncurses, and it dies when I run it with
@copy any thoughts on this? |
Solved! Changing from Do you agree that |
Yes, although I'm not an expert with particular Intel CPUs. Could you send me the failing Linux image anyway? My guess is that the problem was a floating point SSE1 instruction, but I want to have a quick look just in case it's something simple to implement.
I think having one or a few fine-tuned configs in this repo would be cool. Preferably in a new directory ( |
Here's the an ISO for the Linux image that crashes. When it boots, run |
Indeed the compiler generates |
Finally got around to splitting out this work into a separate repo, if people want to do their own: https://github.com/humphd/browser-vm |
Also finally finished up the demo that uses all of this stuff:
❤️ v86. Thanks for all the help answering my questions. |
@humphd FYI, there's complete SSE2 support now. I also went ahead and linked the browser-vm repo in the readme. |
I'm trying to build an optimal, minimal kernel and BusyBox command set for using v86 using buildroot. Since the v86 hardware is pretty much set, and since running in the browser means I'm not going to extend it at runtime (i.e., don't need tons of drivers), I'm trying to strip down everything I don't need. I'm also trying to align the hardware/cpu/etc with what I can turn on/off in the kernel config.
I'm aware of the 9p docs, and https://github.com/ysangkok/build-v86-9p-linux. However, if people here have some knowledge of this process, what to enable/disable, it would be great to either document it in this bug, or for a base
v86_defconfig
to get created.The text was updated successfully, but these errors were encountered: