Commit Graph

7 Commits

Author SHA1 Message Date
e62b1ee087 fix(kernel): DTS patch 004 — route SerDes lane 5 to USB3 SuperSpeed on mPCIe slot (closes #463)
Hardware modification has retargeted SerDes lane 5 of the MOCHAbin
mPCIe slot J5 from PCIe x1 to USB 3.0 SuperSpeed on the mPCIe USB pins.
The DTS must reflect that :

  - cp0_pcie2 disabled (no SerDes left, was on comphy5)
  - cp0_usb3_1 binds cp0_comphy5 mode 5 (PHY_TYPE_USB3_HOST1) + UTMI
    (UTMI from patch 003 kept for USB 2.0 baseline)

The mod aligns the slot with the Globalscale block diagram intent
("2x2 WiFi 802.11/ax BT5.1" card) — MT7921-class USB3 cards can now
enumerate at full 5 Gbps in J5.

Pattern mirrors cp0_usb3_0 (USB3 HUB on comphy1 mode 4
PHY_TYPE_USB3_HOST0). For stock MOCHAbin boards without the mod,
patch 003 alone is sufficient — this patch supersedes 003's
configuration only on hardware-modded boards.

Will trigger a kernel rebuild as 4secubox after merge ; deploy on gk2
to validate that the M.2-style USB3 WiFi card plugged in J5 enumerates
on Bus 003.
2026-06-02 16:54:06 +02:00
CyberMind
8d9b012c6e
feat(kernel-build): add CONFIG_ZRAM=m with zstd default (closes #295) (#296)
gk2 board runs 15+ LXCs on 8 GiB without swap; the stock kernel ships
`# CONFIG_ZRAM is not set` so zram-tools can't activate. Adding zram
as a module with zstd as the default compressor lets userspace create
/dev/zram0, mkswap, and swapon at ~25% of RAM for safe compressed
RAM-backed swap (no plaintext on disk — CSPN-friendly).

* board/mochabin/kernel/config-6.12.85-secubox-zram.fragment (new):
  CONFIG_ZRAM=m, CONFIG_ZRAM_DEF_COMP_ZSTD=y, CONFIG_ZSMALLOC=y +
  zstd/lz4/lzo crypto for runtime swap of compressor.
* kernel-build/build-kernel.sh: merge the zram fragment into the
  kernel config alongside the OpenWrt-merged base.

Follow-up (separate issue): ship a minimal /usr/lib/systemd/system/
zramswap.service that does `modprobe zram; mkswap /dev/zram0;
swapon -p 100 /dev/zram0` so we don't need apt outbound for
zram-tools.

Co-authored-by: CyberMind-FR <gandalf@Gk2.net>
2026-05-21 08:37:09 +02:00
CyberMind
b1ebae2d58
kernel-build: add DTS patch for MOCHAbin mPCIe USB PHY (ref #255) (#258)
The MOCHAbin DTS (armada-7040-mochabin.dts) enables cp0_usb3_1 — the
mPCIe slot's USB 2.0 controller — with `status = "okay"` but assigns
no PHY. Result: the xhci driver registers the controller but it has
no signaling path; USB devices plugged into the mPCIe slot do not
enumerate.

This patch assigns the UTMI PHY (cp0_utmi1) to cp0_usb3_1, matching
the upstream armada-7040-db reference design for that controller.

After the patch, both USB3 host controllers bind at boot (was 1):
  xhci-hcd f2500000.usb: cp0_usb3_0 (SMSC hub)
  xhci-hcd f2510000.usb: cp0_usb3_1 (mPCIe slot, new)

The 6 SerDes (comphy) lanes are all allocated to other peripherals
(eth0=SFP+, eth1=Topaz, usb3_0=SMSC, sata0×2, pcie2=mPCIe). No lane
is available for USB 3.0 SuperSpeed on the slot, but the slot's USB
pins are USB 2.0 only by design — UTMI alone is correct.

Board-validated 2026-05-20 on gk2 (MOCHAbin):
  Before patch: lsusb shows 2 buses (cp0_usb3_0)
  After  patch: lsusb shows 4 buses (cp0_usb3_0 + cp0_usb3_1 = 4)

NOTE: this patch is necessary but not sufficient for cellular modems
in the mPCIe slot to actually enumerate. The slot's W_DISABLE# /
power-enable sequencing also needs investigation. The Quectel EP06-E
plugged into J5 on gk2 still doesn't enumerate after this patch
(lspci shows the PCIe bridge with `[disabled]` memory window — modem
is electrically dark on both USB and PCIe interfaces). See #255 for
the remaining hardware investigation.

Ref #255

Co-authored-by: CyberMind-FR <gandalf@Gk2.net>
2026-05-20 16:44:31 +02:00
00766234d2 feat(kernel): Add complete nftables support + busybox rescue docs
Kernel nftables fix (issue #64):
- Added CONFIG_NF_TABLES_INET, CONFIG_NF_TABLES_IPV4/IPV6
- Added NFT_CT, NFT_LOG, NFT_LIMIT, NFT_REJECT, NFT_COUNTER
- CrowdSec firewall bouncer now works correctly

Build script safety:
- Added deploy_to_device() with safe module extraction
- Prevents /lib symlink overwrite disaster

Documentation:
- FAQ-BUSYBOX-RESCUE.md: Emergency recovery when libc inaccessible
- PROMPT-BUSYBOX-TECHTIP.md: Gemini prompt for visual tech tip
- QUICKSHEET: Added emergency recovery section

Sidebar v2.32.0:
- Per-LED tooltips (Hardware/Services/Security)
- Fixed tooltip positioning for sidebar elements

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-08 18:27:30 +02:00
8bc3159439 feat(led): Add kernel rebuild preparation and initramfs support
- Add build-kernel.sh for cross-compiling kernel 6.6.x LTS with LED as module
- Add secubox-led-reset tool for I2C recovery via rmmod/modprobe
- Add initramfs modules.d configs for LED (leds-is31fl319x) and USB network
- Update debian/rules to install initramfs configs and led-reset tool
- Fix .gitignore to track build-kernel.sh

LED driver as module (=m) allows recovery from I2C bus hang without reboot:
  rmmod leds_is31fl319x && modprobe leds_is31fl319x

USB network modules (usbnet, cdc_ether, cdc_ncm, rndis_host) added for
Eye Remote gadget support at early boot.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-08 10:21:23 +02:00
5c3afdd521 feat(kernel): Add I2C timing patches for LED driver reliability
Created kernel patches to fix I2C timing issues with IS31FL319X LED
controller on Marvell Armada platforms (errata FE-8471889):

- 001-leds-is31fl319x-add-i2c-delays.patch: Adds 1ms delays between
  I2C register writes in LED driver to prevent bus errors
- 002-i2c-mv64xxx-increase-errata-delay.patch: Increases mv64xxx
  errata delay from 5µs to 50µs for more reliable operation

Updated .gitignore to track kernel-build/patches/ while still
ignoring build outputs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-08 09:21:21 +02:00
af1f9b441a docs(kernel): Switch to kernel 6.6.x LTS for I2C/LED compatibility
Kernel 6.12.x has mv64xxx I2C driver timing issues causing LED write
failures (-EIO). OpenWrt kernel 6.6.119 works perfectly with the same
IS31FL3199 LED chip.

Updated build instructions to use kernel 6.6.137 LTS (same generation
as OpenWrt) for reliable I2C/LED support on MOCHAbin.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-08 08:47:30 +02:00