Skip to content

Basic setup code fails with inotify on gamepad on Linux (ubuntu 24.04) #3304

@dolanor

Description

@dolanor

Ebitengine Version

v2.8.8

Operating System

  • Windows
  • macOS
  • Linux
  • FreeBSD
  • OpenBSD
  • Android
  • iOS
  • Nintendo Switch
  • PlayStation 5
  • Xbox
  • Web Browsers

Go Version (go version)

go version go1.24.6 linux/amd64

What steps will reproduce the problem?

create main.go

main.go

package main

import (
	"log/slog"
	"os"

	"github.com/hajimehoshi/ebiten/v2"
)

func main() {
	g := NewGame()
	ebiten.SetWindowResizingMode(ebiten.WindowResizingModeEnabled)
	ebiten.SetWindowTitle("Roublard")

	err := ebiten.RunGame(g)
	if err != nil {
		slog.Error("run game", "error", err)
		os.Exit(1)
	}
}

type Game struct{}

func NewGame() *Game {
	return &Game{}
}

func (g *Game) Update() error {
	return nil
}

func (g *Game) Draw(screen *ebiten.Image) {

}

func (g *Game) Layout(w, h int) (int, int) {
	return 1280, 800
}

What is the expected result?

A black window pops up

What happens instead?

2025/08/21 16:32:44 ERROR run game error="gamepad: InotifyAddWatch failed: no space left on device"

Anything else you feel useful to add?

I just updated to ubuntu 24.04 and was trying to use ebiten from a tutorial, but previous tries of ebiten games/app were doing OK in my ubuntu 20.04 a few months back.

So maybe the new way to handle /dev/input in ubuntu has changed, and maybe it doesn't allow to use inotfy for checking for inputs anymore?

I try to bisect to previous version of ebiten which could work. But even v2.0.0 doesn't work.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions