DEV Community

Weather Clock Dash
Weather Clock Dash

Posted on

Firefox on Raspberry Pi: Performance, Setup, and Kiosk Mode (2024)

Running Firefox on a Raspberry Pi works better than most people expect. Here's the current state of Firefox on ARM/Raspberry Pi hardware.

Firefox Availability on Raspberry Pi

Raspberry Pi OS (Debian-based): Firefox is available in the official repositories.

sudo apt update
sudo apt install firefox-esr
Enter fullscreen mode Exit fullscreen mode

This installs Firefox ESR (Extended Support Release) — the maintained, stability-focused version. For the latest release:

# Add Mozilla's deb repository
sudo install -d -m 0755 /etc/apt/keyrings
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | \
  sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | \
  sudo tee /etc/apt/sources.list.d/mozilla.list > /dev/null
sudo apt update
sudo apt install firefox
Enter fullscreen mode Exit fullscreen mode

Performance on Different Pi Hardware

Raspberry Pi 5 (2023)

The Pi 5 with 8GB RAM runs Firefox adequately for regular browsing:

  • YouTube 1080p: manageable with hardware acceleration
  • General web browsing: responsive
  • Dev.to, GitHub: fine
  • Gmail/Google Docs: usable, some lag on complex operations

The Pi 5 is the first Pi where Firefox feels like a real browser rather than a slower-than-ideal one.

Raspberry Pi 4 (2GB/4GB/8GB)

Firefox works. Comfortable for:

  • News reading, documentation
  • Light web app use
  • Web development testing

Not comfortable for:

  • Multiple heavy tabs simultaneously
  • WebGL-heavy pages
  • Complex JavaScript applications

8GB variant is significantly better than 2GB.

Raspberry Pi 3/Zero

Firefox runs but is noticeably slow. Chromium/Chromium-based browsers may perform better on Pi 3 due to Google's ARM optimization work. Firefox ESR is more practical than release on Pi 3.

Hardware Acceleration on Pi

Firefox on Raspberry Pi can use the GPU for video decoding:

Check if hardware acceleration is working:
about:support → Search for "HW_COMPOSITING" — should show "Available, blocked by default" or "Available, enabled"

Enable VA-API (Video Acceleration API) on supported Pi hardware:

about:config → media.ffmpeg.vaapi.enabled → true
about:config → layers.acceleration.force-enabled → true
Enter fullscreen mode Exit fullscreen mode

Then restart Firefox. Check about:support → Media section to verify acceleration is active.

For Pi 4 with KMS/DRM video output, VA-API can meaningfully improve YouTube performance.

Memory Usage

Firefox is more memory-hungry than Chromium on Pi. With 4 tabs open:

  • Firefox: ~800MB–1.2GB
  • Chromium: ~500MB–800MB

On Pi with 4GB+ RAM, this is fine. On 2GB Pi 4, be conservative with open tabs.

Firefox's about:performance shows per-tab memory usage — useful for monitoring on memory-limited hardware.

Firefox Lightweight Configuration for Pi

Reduce resource usage in about:config:

browser.cache.disk.capacity → 51200 (limit disk cache to 50MB)
network.http.max-persistent-connections-per-server → 4 (reduce connections)
layers.acceleration.disabled → false (keep acceleration on if available)
Enter fullscreen mode Exit fullscreen mode

And in Settings:

  • Disable hardware acceleration if it causes visual glitches (Settings → Performance → uncheck "Use hardware acceleration when available")
  • Close unused tabs (each tab consumes memory)

Kiosk Mode

Firefox on Pi is good for kiosk displays (dashboards, signs):

firefox --kiosk https://grafana.local/d/your-dashboard
Enter fullscreen mode Exit fullscreen mode

Combined with --private-window for no session persistence, and autorandr or xrandr for display setup.

For headless use (no display):

firefox --headless --screenshot output.png https://example.com
Enter fullscreen mode Exit fullscreen mode

Useful for automated screenshots or testing from Pi without a monitor attached.

Firefox Profiles on Pi

Firefox profile storage can fill up Pi's SD card. Manage profile location:

about:profiles → Create a New Profile → Store on external drive
Enter fullscreen mode Exit fullscreen mode

Or set MOZ_PROFILE_DIR environment variable to a USB drive location.

Regularly clear cache: about:preferences#privacy → Clear Data.

Comparison: Firefox vs Chromium on Pi

Firefox Chromium
Default on Raspberry Pi OS ESR Sometimes bundled
Memory Higher Lower
Extensions Full AMO Chrome Web Store (limited on ARM)
Video acceleration VA-API Good VA-API support
Privacy defaults Better Worse
Performance feel Pi 4: decent, Pi 5: good Pi 3+: generally faster

Bottom line: On Pi 4 with 4GB+ RAM, Firefox is a legitimate daily browser. On Pi 3 or for resource-constrained setups, Chromium may be more practical. On Pi 5, Firefox is fully viable.

NightOwl Dark Mode on Pi

If you're using Firefox on a Pi connected to a low-brightness display (common for embedded/kiosk setups), NightOwl dark mode extension reduces the brightness burden. Install from AMO as you would on any Firefox install.

The extension works identically on ARM Firefox as on x86 — Firefox extensions don't have architecture dependencies.

Top comments (0)