Skip to content

Limbo for Tensor is a QEMU-based Hypervisor for Tensor-based Google Pixel devices such as Pixel 6 & 7 & 8 series.

License

Notifications You must be signed in to change notification settings

wasdwasd0105/limbo_tensor

 
 

Repository files navigation

QEMU KVM (Limbo) For Tensor-based devices

Discord: https://discord.gg/4hWgR6tpb7

Limbo for Tensor is a QEMU-based hypervisor for KVM-enabled AArch64 devices such as Google Pixel 6,7,8 series.

Need more test/verification on Pixel 8

Limbo leverages the Kernel KVM feature from the Exception Level 2 hypervisor privilege level.

Currently, Google Tensor SoC supports this feature. ROOT access is REQUIRED to access Kernel KVM.

please consider becoming a ❤️ Sponsor via PayPal or support us via ☕ Ko-fi.

Many MTK Dimensity(天玑) phones can run this program if KVM modules are compiled into the kernel. See here

Flash Unlock KVM Magisk module can run Windows 11 on ARM See guide here

CPU-Z x64 scores over 900 on Google Pixel 7.

Limbo running Ubuntu ARM64 VM

Passmark CPU & Mem test on Google Pixel 7

USB Passthrough Demo: Sharing Netgear USB Wi-Fi to Ubuntu VM.

USB Passthrough Speed: Transferring a large file to

Ubuntu VM

Windows 11 VM

Features

User Interface

  1. Display: Can be output via VNC on port 5900 for both LAN and local connections.
  2. Serial Out: can be out via telent:
    • none
    • local only on port 8021 (telnet:127.0.0.1:8021)
    • local and LAN on 8021 (telnet:0:8021)
  3. Mouse:
    • usb-tablet (good on VNC)
    • usb-mouse

Board

  1. Machine Type: use virt
  2. CPU Model: use max or host
  3. CPU Core: up to 8
  4. RAM Momory: up to 8192MB
  5. Enable UEFI:
    • Enable: can boot generic Linux ISO image
    • Disable:can only boot via linux Kernel and Initrd
  6. Enable KVM:
    • Enable: can use KVM virtualization solution
    • Disable: disable virtualization mode
  7. Full UEFI:
    • Enable: Loads a full version UEFI firmware that can save EFI variables to NVRAM pflash. Requires unlock pKVM.
    • Disable: Loads a modified version that bypasses NVRAM write. Can run on protected KVM mode.
  8. 100% Success Mode:
    • Enable: Will run Qemu only on CPU 0-3 to avoid boot failure. You can click 🚀 icon after UEFI loaded to enable all CPU cores
    • Disable: Use all cores on Qemu start. May have stack overflow error on UEFI firmware

Disks: used to store data drive

Removeable

  1. CDROM: can be used to install OS. Disable it after installation

Boot (Do not modify if UEFI is enabled)

Graphics

  1. Video Display
    • virtio-ramfb: UTM's ramfb driver, can be used to run Windows and Linux
    • virtio-gpu-pci: Linux only
    • nographic: disable display

Network

  1. Network: None or User Mode works
  2. Network Card: Choose virtual network card (use virtio)
  3. DNS Server: Current is 8.8.8.8 (may not work, need more test)
  4. Host Forword: working now (eg tcp:4444:3389)

USB

  1. Can Passthrough USB 3.0 Device to VMs
  2. Input device path follows (BusID).(DeviceID) You can use 3rd APPs eg (https://play.google.com/store/apps/details?id=usbdevicem.indvel.app.usbdevicemanager) to find out.
  3. If the Device Path is "/dev/bus/usb/003/004", You input is "3.4"
  4. You need to connect the device before the VM starts. You can disconnect devices while running the VMs.

Todo List

  • KVM support
  • UEFI support
  • USB passthrough
  • Windows on ARM
  • virtio-ramfb for Windows (from UTM)
  • FIX network options
  • FIX nvram write option
  • GL support
  • Add Audio options
  • DNS passthrough (current hardcoded under /data/data/com.limbo.emu.main.arm/cache/limbo/resolv.conf)
  • Support contorl qemu
  • Spice

About

Limbo for Tensor is a QEMU-based Hypervisor for Tensor-based Google Pixel devices such as Pixel 6 & 7 & 8 series.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 57.0%
  • C 39.4%
  • Makefile 3.4%
  • C++ 0.2%