02:31 < x-bridge> [BaremetalNetDev] [USR] TELEPATH V45.12 CONNECTED. Listening
on #0040cf28d04e8d43
02:39 < x-bridge> [BaremetalNetDev] [USR] You said
02:39 < x-bridge> [BaremetalNetDev] [USR] Back at home. Elli has been
rebooted. Office laptops
didnt have serial.Should we stage the usb driver code on the
host first so we can
post-boot easily upload them via cat xxxx.js | x-console
elli send-stdin ? that
way we can manage our dev persistently, until we get usb
mass storage working?
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] > 'hi from keyboard,
rebooted'
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] => hi from keyboard,
rebooted
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] > 123
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] => 123
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] >
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] ----------------------
[LIVE FEED]
-----------------------
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] 42
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] => 42
02:39 < x-bridge> [BaremetalNetDev] [GEM] I'm on it. Responses with Deep Think
can take some time,
so check back in a bit.
02:39 < x-bridge> [BaremetalNetDev] [GEM] Generating your response&
02:39 < x-bridge> [BaremetalNetDev] [GEM] Check back later
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] => hi from keyboard,
rebooted
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] > 123
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] => 123
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] >
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] ----------------------
[LIVE FEED]
-----------------------
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] 42
02:39 < x-bridge> [BaremetalNetDev] [USR] [ELLI-X86] => 42
02:40 < x-bridge> [BaremetalNetDev] [GEM] I'm on it. Responses with Deep Think
can take some time,
so check back in a bit.
02:40 < x-bridge> [BaremetalNetDev] [GEM] Generating your response&
02:40 < x-bridge> [BaremetalNetDev] [GEM] Check back later
02:42 < x-bridge> [BaremetalNetDev] [GEM] Welcome back! You have just
experienced the SMM
Illusion firsthand.
02:42 < x-bridge> [BaremetalNetDev] [GEM] Because you rebooted
Elli, the Compaq BIOS
completely reset its state. It reclaimed the USB hardware,
re-enabled
System Management Mode (SMM), and is once again seamlessly
intercepting
your physical USB keyboard strokes and translating them into
legacy PS/2 interrupts for our 04_kbd.js driver. The
hardware illusion has been restored, which is why your
keyboard works natively again in the
REPL!
02:42 < x-bridge> [BaremetalNetDev] [GEM] And you have hit the absolute nail
on the head
regarding the modern office laptops. Without legacy RS-232
serial ports, bare-metal development is completely
blind. That is exactly why
we are building this USB/Network stack on Elli. Once we
conquer Mass
Storage or USB Networking, we can port Hauki OS to modern
hardware and
stream payloads over UDP or load them from a flash drive.
02:42 < x-bridge> [BaremetalNetDev] [GEM] Your idea to stage the USB driver
code on the Linux host is exactly how professional OS
development works. We are
going to build a "Tethered Boot Environment." We will keep
our
JavaScript drivers in modular files on your Linux host, and
use a master deploy script to beam them into Elli's
RAM in seconds. If we crash the kernel, we just reboot,
run the script, and we are back in God Mode.
02:42 < x-bridge> [BaremetalNetDev] [GEM] Phase 1: Establishing the Staging
Ground
02:42 < x-bridge> [BaremetalNetDev] [GEM] Before we write the Bulk-Only
Transport (BOT)
driver for Mass Storage, we need to locate the device.
02:42 < x-bridge> [BaremetalNetDev] [GEM] (Note: I highly recommend
using a standard, simple USB Flash Drive for this first
test instead of the 7-in-1 adapter. The 7-in-1
adapter contains an internal USB Hub, which means
we'd have to write a Hub Routing Driver just to talk to the
chips
inside it. A standard thumb drive plugs directly into the
Root Hub).
02:42 < x-bridge> [BaremetalNetDev] [GEM] Plug a USB Flash Drive into any port
on Elli.
Then drop this block into your Linux host terminal to create
your
persistent workspace:
[ELLI-X86] [SYS] Hauki USB Core Loaded.
[ELLI-X86] => undefined
[HOST] Injection complete.
root@hauki-x86:~/hauki_usb#
root@hauki-x86:~/hauki_usb# echo
"[HOST] Executing Topology Scan..."
[HOST] Executing Topology Scan...
root@hauki-x86:~/hauki_usb# x-console elli send "globalThis.USB.scan
Hubs()" Enter [ELLI-X86] > globalThis.USB.scanHubs()
root@hauki-x86:~/hauki_usb# sleep 1
[ELLI-X86] globalThis.USB.scanHubs()
[ELLI-X86]
[ELLI-X86] === HAUKI OS: USB TOPOLOGY SCAN
=== [ELLI-X86] Controller 0
[0x4440] Port 1 : Low-Speed (1.5 Mbps) [HID] [ELLI-X86]
Controller 1 [0x4460] Port 2 : Full-Speed (12 Mbps) [BULK/HUB]
[ELLI-X86] Controller 3 [0x44A0] Port 1 : Low-Speed (1.5 Mbps) [HID]
[ELLI-X86] Controller 3 [0x44A0] Port 2 : Full-Speed (12 Mbps)
[BULK/HUB] [ELLI-X86] ====================================
[ELLI-X86] => 4 devices located.
root@hauki-x86:~/hauki_usb# x-console elli tail 15
... EOF
sys.serial("[SYS] Hauki USB Core Loaded.
"); ... EOF
[SYS] Hauki USB
Core Loaded. =>
undefined
> globalThis.USB.scanHubs()
globalThis.USB.scanHubs()
=== HAUKI OS: USB TOPOLOGY SCAN ===
Controller 0 [0x4440] Port 1 :
Low-Speed (1.5 Mbps) [HID] Controller 1
[0x4460] Port 2 : Full-Speed (12 Mbps) [BULK/HUB]
Controller 3 [0x44A0] Port 1 : Low-Speed (1.5 Mbps) [HID]
Controller 3 [0x44A0] Port 2 : Full-Speed (12 Mbps) [BULK/HUB]
====================================
=> 4 devices located.
>