Enable FireFox Hardware Video Acceleration on Ubuntu

Firefox supports hardware video acceleration via VA-API and Wayland. Both Intel and AMD support VA-API. NVIDIA needs to use the open-source Nouveau or nvidia-vaapi-driver.

“Hardware video acceleration” and “Firefox” on ArchLinux are very useful and detail resource.

Most AMD cards earlier than Graphics Core Next (GCN) architecture fails to play YouTube videos with 1080p 60p with the help of UVD. The GPU decoder is just too slow.

Continue reading “Enable FireFox Hardware Video Acceleration on Ubuntu”

Tearing with Intel Graphics in Ubuntu Portrait Mode

I use the portrait mode in Ubuntu 20.04 running wayland on i5-9500. The build-in Intel HD Graphics 530 has tearing issues: refresh slowly while scrolling.

After several testing, the solution is to load the dri3 module and enable the “TearFree” option in 20-intel.conf or 20-intel-graphics.conf:

$sudo nano /etc/X11/xorg.conf.d/20-intel.conf 

Section "Module"
        Load "dri3"

Section "Device"
        Identifier "Intel Graphics"
        Driver "intel"
        Option "TearFree" "true"
        Option "DRI" "3"
Continue reading “Tearing with Intel Graphics in Ubuntu Portrait Mode”

Ubuntu with nVIDIA’s Proprietary Driver won’t Wake Up from Suspend

The Ubuntu 20.04LTS running on my i5-9400F and nVIDIA GT720 won’t wake up from suspend mode. It’s related to the proprietary driver nvidia-driver-470. Disabling nvidia-suspend solves this issue but the authentication dialog will pop up twice from suspend every time.

To disable:

$sudo systemctl disable nvidia-suspend

To check if these related services are still running:

$sudo systemctl status nvidia-suspend nvidia-hibernate nvidia-resume

● nvidia-suspend.service - NVIDIA system suspend actions
     Loaded: loaded (/lib/systemd/system/nvidia-suspend.service; disabled; vend>
     Active: inactive (dead)

● nvidia-hibernate.service - NVIDIA system hibernate actions
     Loaded: loaded (/lib/systemd/system/nvidia-hibernate.service; enabled; ven>
     Active: inactive (dead)

● nvidia-resume.service - NVIDIA system resume actions
     Loaded: loaded (/lib/systemd/system/nvidia-resume.service; enabled; vendor>
     Active: inactive (dead)


  1. nVidia: [FIXED] Suspend / Resume issues with the driver version 470
  2. nVidia: Ubuntu 20.04 with nvidia-460 driver freezes randomly after resume from suspend/hibernate
  3. askUbuntu: Ubuntu 20.04 doesn’t wake up after suspend

Enable Hardware Video Acceleration in Chrome / Chromium / Firefox on Ubuntu 20.04

This post keep tracking my test enabling video hardware acceleration on Ryzen 2200g and Intel i5-6500 using integrated graphic card.

Table of Contents

  1. Table of Contents
  2. Quick Guide
  3. Testing Video Hardware Acceleration on Chrome/Chromium
    1. GPU Supported Video Codec
    2. Use CloudReady to Test
    3. Test Procedure
    4. CloudReady Test Result
      1. i5-6500 with Intel HD Graphics 530
      2. i5-9400f with nVidia gt720
      3. J3455
      4. Ryzen 2200g
  4. Monitor Hardware Video Acceleration
    1. Intel
    2. AMD
    3. NVIDIA
  5. Terminology
    1. Vulkan, VA-API, & VD-PAU
    2. ANGLE
  6. Installation & Configuration
    1. GPU Drivers
    2. Chrome & Chromium
    3. Firefox
      1. VA-API
      2. Extra Codecs
      3. Firefox Configurations
      4. Verify
  7. Final Thoughts
    1. Chrome
    2. Firefox
  8. Reference

Quick Guide

  1. No huge performance advantage when hardware accelerated video decode has been enabled in Chomre/chromium on i5-6500 and J3455. The CPU usage is still high to me.
  2. Fail to enable hardware accelerated video decode with Ryzen 2200g
  3. It’s easier to test using CloudReady to know if the hardware accelerated video decode feature in Chrome/Chromium is supported.
  4. Some video issues if hardware accelerated video decode is enabled on Ubuntu 20.04LTS.
Continue reading “Enable Hardware Video Acceleration in Chrome / Chromium / Firefox on Ubuntu 20.04”

Realme Band and Samsung Galaxy Fit 2 Reviews

Last updated: 2022/3/25

I bought two smart bands to monitor sleep and heart rate. It’s interesting to know which sensor is usedI bought two smart bands to monitor sleep and heart rate. It’s interesting to know the sensors and medical theories behind them.

After using them for more than 10 months, I realize alarms, timers, sleep, and exercise trackers are the most frequently used features to me. The latter two are good at recording durations but not accurate on sleep stages and heart rate. I also found the gyroscope helps to detect motions more precisely than a single accelerometer.

In conclusion, smart bands are good at time management but not heart rate or sleep stages. The sensors and theories are not as accurate to medical equipment.

Continue reading “Realme Band and Samsung Galaxy Fit 2 Reviews”

Turn Off LED on msi Motherboard

Table of Contents

  1. Quick Guide
  2. Install msi-rgb
  3. Turn Off Immediatedly
  4. Turn Off on Start
  5. Turn Off After Resume
  6. Reference

Quick Guide

  1. Get and install nagisa’s msi-rgb utlity for msi motherboards.
  2. OpenRGB is an alternative solution and supports more motherboards.
  3. Turn off by running ‘sudo /home/amigo/msi-rgb/target/release/msi-rgb -x 00000000 00000000 00000000‘.
  4. Use crontab to turn off after boot.
  5. Create a shell script in /lib/systemd/system-sleep/ to turn off after resume.
Continue reading “Turn Off LED on msi Motherboard”

How to Use AdGuard Protected Public DNS on Routers and Mobile Devices

Table of Contents

  1. Quick Guide
  2. Feedback from Communities
  3. How it works
  4. AdGuard Home and AdGuard DNS
  5. Use in a Router
  6. Use in Asus RT-AC1200G+
  7. Use in Huawei B311As-853
  8. Use in Android Devices
  9. Use in iOS Devices
  10. Reference

Quick Guide

  1. AdGuard Protected DNS:,
  2. AdGuard Protected DNS-over-TLS: dns.adguard.com
  3. The WAN DNS is the DNS used by the router.
  4. The DHCP DNS is the DNS assigned to the DHCP client.
  5. SSH login and run ‘nvram set dhcp_dns1_x= ; nvram set dhcp_dns2_x= ; nvram commit ; service restart_dnsmasq‘ to change the DHCP DNS in RT-AC1200G+
  6. On Android, create a Private DNS with the DNS-over-TLS in Android 9 and newer.
  7. On iOS, assign the DNS SERVERS in the WiFi connection.
Continue reading “How to Use AdGuard Protected Public DNS on Routers and Mobile Devices”

Style Guide


[reference number]Source links are managed in the reference section
[icon, button, and menu item name]Clickable or selectable items
“field and label name, messages”Fixed text strings
‘input string, code, command, command parameters, and url’User-editable text strings
command name, script name, application, file/folder name, and post/article sectionName of a command,  option, and item
highlightKey items and conclusion
<?php echo'';>
PHP color coding with line numbers
$ls -la
bash in colors


Next➞ U+279E
Arrow Key→U+2192
Do not disturb
Dot in the middle

The Max Power for an ATX 4-Pin CPU Power Connector is 108W

Because the i5-9400F consumes 80W at-wall while loading 300 tabs in Chrome, which is a huge jump from 30W at idle, I want to know if it is safe using the only 4-pin CPU power connector on Gigabyte H310M S2V 2.0 (rev. 1.0).

I checked the +12V CPU Power Connector (Required) in Single Rail Power Supply ATX12VO Design Guide and +12V Power Connector in Power Supply Design Guide for Desktop Platform Form Factors. Molex 39012040 and 444761112 are used on the PSU and 39299042 on the motherboard.

The maximum current can be found in the Part DetailsElectricalCurrent – Maximum per Contact on their datasheet respectively:

  1. molex 39012040: 13.0A
  2. molex 444761112: 11.0A
  3. molex 39299042: 9.0A

Because the voltage is 12V and the minimum curent of the above parts is 9.0A, the maximum power is 12V x 9.0A = 108W.

Style Guide

The Style used in AmigoTechNotes


  1. Intel: Single Rail Power Supply ATX12VO Design Guide
  2. Intel: Power Supply Design Guide for Desktop Platform Form Factors
  3. molex: 39012040
  4. molex: 444761112
  5. molex: 39299042