The latest stable Vivaldi for ARM (32bit with hardware floating point) can found here:

Download Vivaldi for Linux ARM

Below are some tips to make the most of it.

Increasing the size of the swap file

For smooth running of Vivaldi on Raspberry Pi, we recommend to increase swap space. Open the configuration file in a “Terminal” (command line) using the following command:

sudo nano /etc/dphys-swapfile

By default Raspbian has 100MB of swap. Please change it to 2048MB in the following line of the configuration file:


Press Ctrl+X and hit Enter to save the changes. Then restart the swap service to apply the changes:

sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
Making this change may diminish the the life of your SD card.

Running Vivaldi for ARM on non-Debian based distros

We are only producing one package type (.deb). If you are running ARM on a distro that does not support this, you can extract the contents with:

ar p vivaldi-stable_1.13.1008.40-1_armhf.deb data.tar.xz | tar Jx ./opt/vivaldi --strip 2

You can run it as follows:


Playing a wider range of audio and video

You may find that some audio and video sites do not work because they use HTML5 “proprietary” media—MP4 (H.264/AAC) and MP3. If you are using Ubuntu for ARM, refer to this article to enable these.

On Raspbian, a suitable library is not available from the default repositories, however you can manually download an Ubuntu package and install this. Go to this directory and find an armhf “chromium-codecs-ffmpeg-extra” package from a recent Ubuntu version, save it locally and install it via the following command:

sudo dpkg -i chromium-codecs-ffmpeg-extra_*_armhf.deb
The dependencies listed in the .deb meta-data should prevent you from installing something that will not work. Do not use “–nodeps” to force installation!

If you use a non-Debian based distro, you can extract the lib out manually and place it in a location where Vivaldi will find it, like so:

ar p chromium-codecs-ffmpeg-extra_*_armhf.deb data.tar.xz | tar Jx ./usr/lib/chromium-browser/ --strip 4
install -Dm644 "$HOME/.local/lib/vivaldi/"

After restarting Vivaldi you should have working support for proprietary media. You can test video support on this page and audio support on this page.

Widevine and Flash

Need to access websites using Encrypted Media Extensions (.e.g. Spotify) or sites that use Flash (e.g. Tidal)? You can extract Widevine and Flash binaries for Linux armhf from ChromeOS recovery images via the following steps.

To use Spotify and Tidal, you will first you will need to get proprietary media working.
If you are using x86 or x86_64 Linux refer to these instructions instead.

Open a “Terminal” (command line).

Find a URL to a suitable armhf ChromeOS recovery image:

CHROMEOSR=$(wget -qO- | grep -A11 CB5-312T | sed -n 's/^url=//p')

Download the recovery image (around 1Gb in size):


Uncompress the image (2Gb+ uncompressed):

unzip $(basename $CHROMEOSR)

Find a free loop device:

LOOPD=$(losetup -f)

Associate all the partions on the disk image with loop devices:

sudo losetup -P $LOOPD $(basename $CHROMEOSR .zip)

Make a directory to be used for mounting:

mkdir chromeos

Mount the third partion of the disk image onto that directory:

sudo mount -o ro ${LOOPD}p3 chromeos

If you are doing this from the Raspberry Pi itself, you can now install the libs as follows:

sudo install -Dm644 chromeos/opt/google/chrome/ /opt/google/chrome/
sudo install -Dm644 chromeos/opt/google/chrome/pepper/ /opt/google/chrome/PepperFlash/

Alternatively, if you are doing this from another machine, simply copy the libs out of the image now, so that you can transfer them to the Rasperry Pi later (the locations where they should be placed are listed in the previous command):

cp chromeos/opt/google/chrome/ .
cp chromeos/opt/google/chrome/pepper/ .


sudo umount chromeos
rmdir chromeos
sudo losetup -d ${LOOPD}
rm -vi $(basename $CHROMEOSR) $(basename $CHROMEOSR .zip)


To make this work you will need to have already configured proprietary media and installed Widevine. Additionally, you will need to alter the browser’s User Agent. To change your User Agent, install the extension User-Agent Switcher for Google Chrome, open the “Options” and configure a new “Custom User-Agent”, like so:

  • New User-agent name: Netflix
  • New User-Agent String:
    Mozilla/5.0 (X11; CrOS armv7l 9901.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.97 Safari/537.36
  • Group: Chrome
  • Append?: Replace
  • Indicator Flag: NFX

Enable this User Agent and then proceed to logging into Netflix.

Whilst it is possible to play videos this way, it is not recommended on any recent Raspberry Pi, other than for a bit of fun. The resolution is very poor and you will most likely get a lot of dropped frames.

Stopping the “hiss” when using analog out (Raspberry Pi 3)

If you are using Raspbian on a Raspberry Pi 3 and hear a his when listening to music or watching videos, open “/boot/config.txt”:

sudo nano /boot/config.txt

And add the following line to the very end:


Press Ctrl+X and hit Enter to save the changes, then restart the Raspberry Pi.