f69706c709
The linux4 image on k.copy.sh no longer has Lua. However, Buildroot has it. (Linux 2.6 does too, but it's an older version)
88 lines
2.1 KiB
HTML
88 lines
2.1 KiB
HTML
<!doctype html>
|
|
<title>Serial example</title>
|
|
|
|
<script src="../build/libv86.js"></script>
|
|
<script>
|
|
"use strict";
|
|
|
|
window.onload = function()
|
|
{
|
|
var emulator = new V86Starter({
|
|
wasm_path: "../build/v86.wasm",
|
|
|
|
// Uncomment to see what's going on
|
|
//screen_container: document.getElementById("screen_container"),
|
|
|
|
bios: {
|
|
url: "../bios/seabios.bin",
|
|
},
|
|
vga_bios: {
|
|
url: "../bios/vgabios.bin",
|
|
},
|
|
bzimage: {
|
|
url: "../images/buildroot-bzimage.bin",
|
|
size: 5166352,
|
|
async: false,
|
|
},
|
|
filesystem: {},
|
|
cmdline: "tsc=reliable mitigations=off random.trust_cpu=on",
|
|
autostart: true,
|
|
disable_keyboard: true,
|
|
});
|
|
|
|
// In this example we wait for output from the serial terminal, which
|
|
// should be running busybox. We log in as soon as a prompt appears and then
|
|
// retrieve a directory listing of the root directory
|
|
var data = "";
|
|
|
|
var stages = [
|
|
{
|
|
test: "~% ",
|
|
send: "ls -1 --color=never /\n",
|
|
},
|
|
{
|
|
test: "~% ",
|
|
send: "lua -e 'print(3+4)'\n",
|
|
},
|
|
];
|
|
var stage = 0;
|
|
|
|
emulator.add_listener("serial0-output-char", function(char)
|
|
{
|
|
if(char === "\r")
|
|
{
|
|
return;
|
|
}
|
|
|
|
data += char;
|
|
document.getElementById("terminal").value += char;
|
|
|
|
var current = stages[stage];
|
|
|
|
if(!current)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(data.endsWith(current.test))
|
|
{
|
|
stage++;
|
|
emulator.serial0_send(current.send);
|
|
|
|
var log = "Sending: " + current.send.replace(/\n/g, "\\n") + "\n";
|
|
document.getElementById("log").value += log;
|
|
}
|
|
});
|
|
};
|
|
</script>
|
|
|
|
<textarea readonly rows=25 cols=60 id="log">Waiting for boot ...
|
|
</textarea>
|
|
|
|
<textarea readonly rows=25 cols=60 id="terminal"></textarea>
|
|
|
|
<div id="screen_container">
|
|
<div style="white-space: pre; font: 14px monospace; line-height: 14px"></div>
|
|
<canvas style="display: none"></canvas>
|
|
</div>
|