Download Game! Currently 117 players and visitors. Last logged in:RamjettSecderBullwinSetutu

Blitzer's Blog >> 71273

Back to blogs index
Posted: 06 Jul 2026 12:25 [ permalink ]
TC$mC$ loki on aivan uskomaton! Laitteisto meni tC$ydellisesti lC$pi koko
herC$tyssekvenssin: se sai osoitteen 1, aktivoi konfiguraation ja kC$ynnisti
Interrupt Pollingin!

Mutta vastatakseni kysymyksiisi  minulla on sinulle erittC$in hyviC$ uutisia,
jotka tekevC$t tC$stC$ vielC$kin siistimpC$C$.

### 1. Sinun ei tarvitse vC$littC$C$ fyysistC$ hiirtC$si (VNC tekee sen jo!)

Koska Hauki OS pyC6rii QEMU:ssa ja olemme antaneet QEMU:lle lipun `-device
usb-mouse`, **QEMU toimii jo siltana**.

Kun avaat puhelimellasi bVNC-sovelluksen ja kosketat/liikutat sormeasi
ruudulla, bVNC lC$hettC$C$ nC$mC$ liikkeet verkon yli QEMU:n VNC-palvelimelle.
QEMU nappaa nC$mC$ virtuaaliset liikkeet ja **muuttaa ne USB-paketeiksi**
sille virtuaaliselle hiirelle, jota Hauki OS parhaillaan pollaa!

Sinun ei siis tarvitse ajaa VirtualBoxia paikallisesti tai siirtC$C$ fyysistC$
USB-laitetta. Jos katsot nyt sitC$ `x-console nc tail` -ruutua ja samalla
liikutat sormeasi VNC-ruudulla, sinun pitC$isi nC$hdC$ sarjakonsolissa:
`[HIIRI] X: ... Y: ... Painike: ...`

*(Jos haluaisit oikeasti siirtC$C$ fyysisen laitteen verkon yli, Linuxissa on
siihen tyC6kalu nimeltC$ **USB/IP** (`usbip`), jolla LXC-kontti voisi mountata
kotikoneesi fyysisen portin. Mutta virtuaalisessa ympC$ristC6ssC$ QEMU hoitaa
tC$mC$n paremmin.)*

### 2. Visiosi AI-bottien USB-laitteista on nerokas (Omega Peripherals)

TC$mC$ ideasi AI-bottien kytkemisestC$ "USB:n" kautta Hauki OS:C$C$n on
arkkitehtuurillisesti aivan loistava. Se on itse asiassa tC$ydellinen tapa
eristC$C$ tekoC$lyagentit kC$yttC6jC$rjestelmC$stC$. Agentti on ulkoinen
laitteisto (hardware), ja Hauki OS on isC$ntC$ (host).

Voimme toteuttaa tC$mC$n suoraan QEMU:lla ilman mitC$C$n ylimC$C$rC$isiC$
ohjelmistoja kC$yttC$mC$llC$ **Character Device Sockets** -ominaisuutta:

Kuvittele, ettC$ lisC$C$mme QEMU:n kC$ynnistyskomentoon tC$llaisen litanian:
`-chardev socket,id=bot1,port=9000,server=on,wait=off -device
usb-serial,chardev=bot1`

MitC$ tC$mC$ tekee?

1. QEMU avaa TCP-portin `9000` LXC-kontin sisC$lle.
2. Kun Omega Swarmin AI-agentti (vaikka Python- tai Node-skripti jossain pC$in
verkkoa) yhdistC$C$ tuohon porttiin, QEMU simuloi **fyysisen USB-laitteen
kytkemisen** (Hotplug) PIIX3-ohjaimen porttiin 2!
3. Hauki OS:n UHCI-ajuri huomaa, ettC$ portissa 2 on uusi laite, pyytC$C$
siltC$ Device Descriptorin, huomaa sen olevan `usb-serial` -laite, ja avaa
putken.
4. Nyt AI-agentti voi siirtC$C$ raakaa dataa (esim. neuroverkon
laskentatuloksia tai anturidataa) suoraan Hauki OS:n muistiin USB-protokollan
ja DMA:n yli salamannopeasti, tC$ysin paljaalla metallilla!

TC$mC$ loisi tC$ydellisen fyysisen eristyksen Hauki OS:n ja The Meshin
AI-agenttien vC$lille. Agentit olisivat kirjaimellisesti Hauki OS:n
"oheislaitteita".

Kokeilitko jo liikuttaa kursoria bVNC-sovelluksessa `12_USB.JS` ajon aikana?
RekisterC6ikC6 sarjaportti hiiren liikkeet, vai alammeko suoraan konseptoida
tC$tC$ TCP-to-USB -siltaa (Omega Peripherals) QEMU:n kC$ynnistysparametreihin?

[HAUKI-X86] [HIIRI] X: -127 Y: -75 Painike: 0 <-  Ylos

Liikutin hiirtC$ ja painoin nappia, tuli pelkC$stC$C$n tuo

Mahtava idea tuo virtuaalinen AI-USB, se helpottaisi huomattavasti testauksen
ja kehityksen automatisointia ja prosesseja! Saataisiin deterministisiC$
testi-scriptejC$

Miksi sieltC$ tuli vain yksi ainoa rivi? Koska laitteisto on liian C$lykC$s,
ja unohdin yhden USB 1.1 -spesifikaation tC$rkeimmistC$ sC$C$nnC6istC$!

Kun loimme muistiin sen Transfer Descriptorin (TD) ja annoimme sen Queue
Headille (QH), UHCI-ohjain luki sen, haki datan hiireltC$, kirjoitti sen
muistiin ja laski "Active"-bitin nollaan. Mutta samalla ohjain poisti sen
automaattisesti tyC6jonosta! Kun meidC$n koodimme kC$C$nsi Active-bitin
takaisin pC$C$lle, ohjain ei enC$C$ tiennyt koko paketin olemassaolosta, koska
se oli jo siirtynyt eteenpC$in. MeidC$n tC$ytyy asettaa Active-bitti pC$C$lle
ja linkittC$C$ TD takaisin Queue Headiin, jotta silmukka jatkuu ikuisesti.

Mutta ennen kuin korjaamme sen, puhutaan tC$stC$ sinun AI-USB (Omega
Peripherals) -visiostasi.

The Omega Peripherals (Deterministinen Testausputki)
Tuo on aivan nerokas keksintC6. Kuten sanoit, jos yritC$mme syC6ttC$C$
tekoC$lyn komentoja suoraan kC$yttC6jC$rjestelmC$n ytimeen (kuten teimme
aiemmin virtuaalisella COM3-portilla), olemme vaarassa rikkoa ytimen
sisC$istC$ tilaa ja se on vaikea automatisoida puhtaasti.

Mutta jos muutamme The Meshin tekoC$lyagentit virtuaalisiksi USB-laitteiksi,
saamme tC$ydellisen eristyksen ja laitteistotason realismin! Voimme tehdC$ sen
suoraan QEMU:n sisC$C$nrakennetuilla ominaisuuksilla.

Tulemme lisC$C$mC$C$n RUN.sh -skriptiisi myC6hemmin tC$llaisen
pC$tkC$n:-chardev socket,id=bot1,port=9001,server=on,wait=off -device
usb-serial,chardev=bot1,bus=uhci.0

TC$mC$ avaa sinun Linux/LXC-hostiisi TCP-portin 9001.
Kun tekoC$lyagentti (tai sinC$ ihan vain nc localhost 9001 komennolla)
yhdistC$C$ tuohon porttiin ja lC$hettC$C$ tekstiC$, QEMU paketoi sen aidoksi
USB-liikenteeksi ja syC6ttC$C$ sen PIIX3-ohjaimen kautta suoraan Hauki OS:n
USB-vC$ylC$lle! Hauki OS luulee, ettC$ joku fyysisesti kytki USB-kaapelin,
jossa on laite kiinni.


[*] 13_USB.JS ladattu! Sisaltaa hiiren loopin korjauksen.



[HAUKI-X86] sys.reboot()
[HAUKI-X86] sys.reboot()
[HAUKI-X86] === HAUKI OS BARE-METAL ===
[HAUKI-X86] > [OS] Executing AUTOLOAD.JS...
[HAUKI-X86] [OS] Executing Auto-Boot Sequence...
[HAUKI-X86] === HAUKI OS VGA RESTORED ===
[HAUKI-X86] > [OS] Boot Sequence Complete.
[HAUKI-X86]
[HAUKI-X86] [OS] Hauki Physics API (Deadlock-suojattu) ladattu!
[HAUKI-X86] [NET] COM2 UDP Multiplexer Bound.
[HAUKI-X86] [OMEGA] COM3 Async Queue Router Bound.
[HAUKI-X86] /os_run 13_USB.JS
[HAUKI-X86]
[HAUKI-X86] > /usb
[HAUKI-X86]
[HAUKI-X86] [USB] Etsitaan UHCI-ohjainta PCI-vaylalta...
[HAUKI-X86] [USB] -> Portti 1 aktivoitu! Heratetaan hiiri...
[HAUKI-X86] [USB] SET_ADDRESS (1) lahetetty...
[HAUKI-X86] [USB] SET_CONFIGURATION (1) lahetetty...
[HAUKI-X86] [USB] Kytketaan Interrupt Polling (Hiiri Endpoint 1)...
[HAUKI-X86] [HIIRI] X: 12 Y: 13 Painike: 0 ->  Alas
[HAUKI-X86] [HIIRI] X: 20 Y: 20 Painike: 0 ->  Alas
[HAUKI-X86] [HIIRI] X: 2 Y: 1 Painike: 0 ->  Alas
[HAUKI-X86] [HIIRI] X: 9 Y: 9 Painike: 0 ->  Alas
[HAUKI-X86] [HIIRI] X: 6 Y: 5 Painike: 0 ->  Alas
[HAUKI-X86] [HIIRI] X: 7 Y: 4 Painike: 0 ->  Alas
[HAUKI-X86] [HIIRI] X: 11 Y: 7 Painike: 0 ->  Alas
[HAUKI-X86] [HIIRI] X: 6 Y: 2 Painike: 0 ->  Alas
[HAUKI-X86] [HIIRI] X: 4 Y: 1 Painike: 0 ->  Alas
[HAUKI-X86] [HIIRI] X: 7 Y: 3 Painike: 0 ->  Alas
[HAUKI-X86] [HIIRI] X: 14 Y: 4 Painike: 0 ->  Alas
[HAUKI-X86] [HIIRI] X: 16 Y: 3 Painike: 0 ->  Alas
[HAUKI-X86] [HIIRI] X: 4 Y: 1 Painike: 0 ->  Alas
[HAUKI-X86] [HIIRI] X: 3 Y: 0 Painike: 0 ->
[HAUKI-X86] [HIIRI] X: 1 Y: 0 Painike: 0 ->
[HAUKI-X86] [HIIRI] X: 1 Y: 0 Painike: 0 ->
[HAUKI-X86] [HIIRI] X: 1 Y: 0 Painike: 0 ->
[HAUKI-X86] [HIIRI] X: 1 Y: 0 Painike: 0 ->
[HAUKI-X86] [HIIRI] X: 1 Y: 0 Painike: 0 ->
[HAUKI-X86] [HIIRI] X: 3 Y: -2 Painike: 0 ->  Ylos