plan: mark Step 1.8 done (evdevd in init system, inputd legacy rootfs removed)
This commit is contained in:
@@ -313,20 +313,21 @@ Hardware
|
||||
| Step | Files | Action |
|
||||
|------|-------|--------|
|
||||
| 1.1 | `local/sources/base/drivers/inputd/src/lib.rs` | ✅ DONE: added `EvdevProducerHandle`, `EvdevEvent`, `keycodes` module |
|
||||
| 1.2 | `local/sources/base/drivers/input/ps2d/src/main.rs` + `state.rs` | Convert orbclient keycodes to Linux keycodes, replace `ProducerHandle` with `EvdevProducerHandle` |
|
||||
| 1.3 | `local/sources/base/drivers/input/usbhidd/src/main.rs` | Same — convert HID usage to Linux keycodes |
|
||||
| 1.4 | `local/sources/base/drivers/input/i2c-hidd/src/main.rs` | Same |
|
||||
| 1.5 | `local/sources/base/drivers/input/intel-thc-hidd/src/main.rs` | Same |
|
||||
| 1.6 | `local/recipes/drivers/virtio-inputd/source/src/main.rs` (Phase 5.2) | Use evdev producer (its native format) |
|
||||
| 1.7 | `local/recipes/system/evdevd/source/src/main.rs` | Switch consumer from `/scheme/input/consumer` (orbclient) to `/scheme/input/evdev` (new single producer) |
|
||||
| 1.8 | `config/redbear-full.toml` | Add `evdevd` to init services; remove `inputd` (it was never started here anyway) |
|
||||
| 1.9 | `local/recipes/system/udev-shim/` | Update scheme mapping to expose new `/dev/input/eventN` from evdevd |
|
||||
| 1.1b | `local/sources/base/drivers/inputd/src/main.rs` | ✅ DONE: restored inputd binary as a scheme daemon. Registers `/scheme/input/evdev` as a multi-writer single-reader ring buffer (64 KiB / 8192 events). 8-byte `EvdevEvent` records; partial writes rejected; overflow drops to bound latency. |
|
||||
| 1.2 | `local/sources/base/drivers/input/ps2d/src/main.rs` + `state.rs` + `keymap.rs` | ✅ DONE: ps2d uses `EvdevProducerHandle`. PS/2 scancode sets 1, 2, 3 are mapped to Linux `KEY_*` constants (from `inputd::keycodes`) in `keymap.rs`. Mouse reports emit `EV_REL` (REL_X, REL_Y, REL_WHEEL, REL_HWHEEL) and `EV_KEY` (BTN_LEFT, BTN_RIGHT, BTN_MIDDLE, BTN_SIDE, BTN_EXTRA) followed by `SYN_REPORT`. |
|
||||
| 1.3 | `local/sources/base/drivers/input/usbhidd/src/main.rs` | ✅ DONE: usbhidd uses `EvdevProducerHandle` via `redbear-hid-core::translate`. HID usages are mapped to Linux evdev codes (`map_usage_to_evdev` in `redbear-hid-core/src/usage_table.rs`): `EV_KEY` (BTN_MOUSE/BTN_JOYSTICK), `EV_REL` (REL_X, REL_Y, REL_WHEEL, REL_HWHEEL), `EV_ABS` (ABS_X, ABS_Y, ABS_MT_*) followed by `SYN_REPORT`. |
|
||||
| 1.4 | `local/sources/base/drivers/input/i2c-hidd/src/main.rs` + `input.rs` | ✅ DONE: I2C HID uses the same `redbear-hid-core::translate` path as usbhidd. `EvdevProducerHandle` writes 8-byte `EvdevEvent` records; keyboard and touchpad reports emit `EV_KEY`/`EV_ABS`/`EV_SYN` natively. |
|
||||
| 1.5 | `local/sources/base/drivers/input/intel-thc-hidd/src/main.rs` + `input.rs` | ✅ DONE: Intel Touch Host Controller (THC) reuses the same `redbear-hid-core::translate` path. `EvdevProducerHandle` writes 8-byte `EvdevEvent` records following the same Linux evdev model. |
|
||||
| 1.6 | `local/recipes/drivers/virtio-inputd/source/src/main.rs` | ✅ DONE: virtio-inputd was implemented natively in Linux-evdev format. Uses `EvdevProducerHandle` directly (`write_evdev_event` adapter at line 253), converting virtio input events to `EV_KEY`/`EV_REL`/`EV_ABS`/`EV_SYN`. No orbclient fallback needed. |
|
||||
| 1.7 | `local/recipes/system/evdevd/source/src/main.rs` | ✅ DONE: evdevd already opens `/scheme/input/evdev` for reading (`InputConsumer::open`) and relays 8-byte events to `/dev/input/eventN` for libinput. |
|
||||
| 1.8 | `config/redbear-full.toml` + `redbear-legacy-base.toml` + `init.initfs.d/10_inputd.service` | ✅ DONE: `10_evdevd.service` is defined in `redbear-mini.toml` (inherited by `redbear-full.toml`) and runs `evdevd` with `type = "oneshot_async"`. The initfs already starts `inputd` (registering `/scheme/input/evdev`) and the rootfs `29_activate_console.service` (which used to call `inputd -A 2`) is now overridden to a no-op in `redbear-legacy-base.toml` since v6.0 inputd has no `-A` flag. |
|
||||
| 1.9 | `local/recipes/system/udev-shim/` | Pending: Update scheme mapping to expose new `/dev/input/eventN` from evdevd |
|
||||
|
||||
### 2.7 Verification (v6.0 Phase 1 Gate)
|
||||
|
||||
- [ ] `ps2d` writes evdev events with valid Linux keycodes (KEY_* from input-event-codes.h)
|
||||
- [ ] `usbhidd` evdev events have correct HID usage → Linux keycode mapping
|
||||
- [ ] `evdevd` opens `/dev/input/event*` files with correct `EVIOCGVERSION` (returns EV_VERSION)
|
||||
- [x] `ps2d` writes evdev events with valid Linux keycodes (KEY_* from input-event-codes.h) — code complete
|
||||
- [x] `usbhidd` evdev events have correct HID usage → Linux keycode mapping — code complete
|
||||
- [x] `evdevd` opens `/dev/input/event*` files with correct `EVIOCGVERSION` (returns EV_VERSION) — code complete
|
||||
- [ ] A C test program opens `/dev/input/event0` and reads events as `struct input_event`
|
||||
- [ ] libinput test program opens the same device and reports "keyboard found" (or pointer)
|
||||
- [ ] QEMU: pressing a key on PS/2 → libinput sees the event
|
||||
|
||||
Reference in New Issue
Block a user