Difference between revisions of "Flash DRM content"

From ArchWiki
Jump to: navigation, search
(Added See Also, and link to relevant udev page with similar content.)
(Moved content into sections, added information about hal-flash for those who don't want to install all of HAL)
Line 1: Line 1:
 
[[Category:Player]]
 
[[Category:Player]]
If you try to watch Amazon Instant Video, you may see the following error: '''''an error occurred and your player could not be updated'''''
+
If you try to watch Amazon Instant Video, you may see the following error: '''''an error occurred and your player could not be updated'''''. This likely indicates that the video is protected with DRM and that the Flash Player could not perform some of the functions required to securely deliver the protected content.
  
Amazon Instant Video requires the HAL daemon to be running. As it is deprecated, it is not likely to be installed on newer systems. Checking to see if hal is installed is easy, simply run the following command:
+
To deliver DRM-protected content, Flash calls several functions provided by the HAL daemon and its libraries. While Flash-based players remain popular, HAL has been deprecated and is not commonly installed on newer systems. To provide the necessary HAL functionality on such systems, you can either install the full HAL package and run the HAL daemon or install a modified HAL library 'stub' that uses the modern UDisks daemon instead.
  
$ pacman -Qi hal hal-info
+
= Using the HAL package =
 +
To see if the system already has HAL installed, use this command:
  
If hal is not installed, you will need to install [https://aur.archlinux.org/packages.php?ID=51454 hal] and [https://aur.archlinux.org/packages.php?ID=51457 hal-info] from the [[Arch User Repository|AUR]]. hal-info is a dependency of hal and should be installed first.
+
$ pacman -Qi hal
  
 +
== Installing HAL ==
 +
As HAL is deprecated and not part of standard Arch systems, you will need to install it from the [[Arch User Repository|AUR]]. You will need to install [https://aur.archlinux.org/packages.php?ID=51457 hal-info] first as it a dependency for [https://aur.archlinux.org/packages.php?ID=51454 hal].
 +
 +
== Running the HAL daemon ==
 
Once you have confirmed that hal is installed, start the daemon.
 
Once you have confirmed that hal is installed, start the daemon.
  
Line 18: Line 23:
 
You may also wish to enable the daemon at boot, either by adding '''hal''' to your '''DAEMONS''' array in /etc/rc.conf (if using sysvinit), or by running '''systemctl enable hal.service''' as root (if running systemd).
 
You may also wish to enable the daemon at boot, either by adding '''hal''' to your '''DAEMONS''' array in /etc/rc.conf (if using sysvinit), or by running '''systemctl enable hal.service''' as root (if running systemd).
  
Finally, remove some Flash Player cached files:
+
= Using the modified libhal stub =
 +
As an alternative to installing all of HAL, you can install a modified version of the libhal library from the [[Arch User Repository|AUR]] that uses the modern UDisks daemon instead of the deprecated HAL. Note that this libhal provides just enough of the HAL functionality to meet Flash's needs for copy-protected delivery: if you have other programs that require HAL, this stub probably won't satisfy them and you should use the full hal package instead.
 +
 
 +
== Installing UDisks and hal-flash ==
 +
You will need to install [https://aur.archlinux.org/packages/hal-flash/ hal-flash] from the [[Arch User Repository|AUR]], which requires [[udev#udisks|UDisks]] if you don't already have installed. To verify udisks is already installed:
 +
$ pacman -Qi udisks
 +
 
 +
== Running UDisks ==
 +
Since the libhal stub passes its calls to UDisks, UDisks should be running before you attempt to play DRM-protected Flash videos. To verify udisks is running using systemd:
 +
$ systemctl status udisks
 +
 
 +
If it isn't running, run these commands to start UDisks now and enable it on future restarts:
 +
# systemctl start udisks
 +
# systemctl enable udisks
 +
 
 +
= Remove Flash Player cached files =
 +
To get a fresh start after installing the package(s), remove some Flash Player cached files:
  
 
  $ cd ~/.adobe/Flash_Player
 
  $ cd ~/.adobe/Flash_Player
 
  $ rm -rf NativeCache AssetCache APSPrivateData2
 
  $ rm -rf NativeCache AssetCache APSPrivateData2
  
== See Also ==
+
= See Also =
 
* [[udev#Running_HAL]]
 
* [[udev#Running_HAL]]

Revision as of 23:13, 26 December 2013

If you try to watch Amazon Instant Video, you may see the following error: an error occurred and your player could not be updated. This likely indicates that the video is protected with DRM and that the Flash Player could not perform some of the functions required to securely deliver the protected content.

To deliver DRM-protected content, Flash calls several functions provided by the HAL daemon and its libraries. While Flash-based players remain popular, HAL has been deprecated and is not commonly installed on newer systems. To provide the necessary HAL functionality on such systems, you can either install the full HAL package and run the HAL daemon or install a modified HAL library 'stub' that uses the modern UDisks daemon instead.

Using the HAL package

To see if the system already has HAL installed, use this command:

$ pacman -Qi hal

Installing HAL

As HAL is deprecated and not part of standard Arch systems, you will need to install it from the AUR. You will need to install hal-info first as it a dependency for hal.

Running the HAL daemon

Once you have confirmed that hal is installed, start the daemon.

sysvinit:

# /etc/rc.d/hal start

systemd:

# systemctl start hal.service

You may also wish to enable the daemon at boot, either by adding hal to your DAEMONS array in /etc/rc.conf (if using sysvinit), or by running systemctl enable hal.service as root (if running systemd).

Using the modified libhal stub

As an alternative to installing all of HAL, you can install a modified version of the libhal library from the AUR that uses the modern UDisks daemon instead of the deprecated HAL. Note that this libhal provides just enough of the HAL functionality to meet Flash's needs for copy-protected delivery: if you have other programs that require HAL, this stub probably won't satisfy them and you should use the full hal package instead.

Installing UDisks and hal-flash

You will need to install hal-flash from the AUR, which requires UDisks if you don't already have installed. To verify udisks is already installed:

$ pacman -Qi udisks

Running UDisks

Since the libhal stub passes its calls to UDisks, UDisks should be running before you attempt to play DRM-protected Flash videos. To verify udisks is running using systemd:

$ systemctl status udisks

If it isn't running, run these commands to start UDisks now and enable it on future restarts:

# systemctl start udisks
# systemctl enable udisks

Remove Flash Player cached files

To get a fresh start after installing the package(s), remove some Flash Player cached files:

$ cd ~/.adobe/Flash_Player
$ rm -rf NativeCache AssetCache APSPrivateData2

See Also