Wednesday, December 19, 2012

Amazon Instant Video on Fedora


These instructions will fix Adobe Flash Player DRM to allow use of Amazon Instant Video on Fedora 20+ or RHEL7.  This works with 32bit or 64bit flash-plugin-11.2+ from Adobe in Firefox.

Update September 9th, 2014:
fakehal-0.5.14-8 below should now automatically work on Fedora 20 or RHEL7 to allow Firefox to play Amazon Instant Video.

Step 1: Install FakeHAL
Adobe Flash Player for some reason uses HAL for its DRM to function, but HAL was removed from the operating system in Fedora 16.  The fakehal packages below contain a stripped down subset of hal necessary to allow this to work on newer versions of Fedora.  If your firefox and flash-plugin are x86_64, then you will want the corresponding x86_64 fakehal and fakehal-libs packages.
Download fakehal: [Fedora 20+[RHEL7] [SRPM]

Step 3: Delete the ~/.adobe and ~/.macromedia Directories
According to this page, you need to delete not just the contents within that directory, but the entire directory tree.  Then kill and restart Firefox.

Step 3: Test Adobe DRM
Follow the instructions here to test it using the demo video player.  Enable the "Show DRM Events" checkbox to see error messages.  If you see the train video then it is working.

Troubleshooting
Sometimes it seems Amazon Instant fails to work.  Repeat the steps of killing Firefox, deleting ~/.adobe and ~/.macromedia, then follow Adobe's instructions to view the train video.  It seems that if the train video works then Amazon Instant will subsequently work.

65 comments:

  1. Thanks for creating fakehal, I was thinking of creating the same thing myself, so I'm glad it has already been done.

    It doesn't work as stands on my F18 machine, however. I get the following:

    Jan 18 23:59:48 localhost dbus-daemon[744]: dbus[744]: [system] Successfully activated service 'org.freedesktop.PackageKit'
    Jan 18 23:59:48 localhost dbus[744]: [system] Successfully activated service 'org.freedesktop.PackageKit'
    Jan 19 00:02:12 localhost systemd[1]: Starting HAL Hardware Manager...
    Jan 19 00:02:12 localhost hald[2068]: Runner started - allowed paths are '/usr/libexec:/usr/libexec/scripts:/usr/bin'
    Jan 19 00:02:12 localhost hald[2068]: ** (process:2068): WARNING **: Failed to add monitor on '/usr/share/hal/fdi/preprobe': No such file or directory
    Jan 19 00:02:12 localhost hald[2068]: ** (process:2068): WARNING **: Failed to add monitor on '/etc/hal/fdi/preprobe': No such file or directory
    Jan 19 00:02:12 localhost hald[2068]: ** (process:2068): WARNING **: Failed to add monitor on '/etc/hal/fdi/information': No such file or directory
    Jan 19 00:02:12 localhost hald[2068]: ** (process:2068): WARNING **: Failed to add monitor on '/etc/hal/fdi/policy': No such file or directory
    Jan 19 00:02:12 localhost hald[2068]: 00:02:12.235 [E] create_cache.c:551: Cannot scan '/usr/share/hal/fdi/preprobe': No such file or directory
    Jan 19 00:02:12 localhost hald[2068]: 00:02:12.235 [E] create_cache.c:709: Error generating fdi cache
    Jan 19 00:02:12 localhost hald[2068]: Usage: udevadm info OPTIONS
    Jan 19 00:02:12 localhost hald[2068]: --query= query device information:
    Jan 19 00:02:12 localhost hald[2068]: name name of device node
    Jan 19 00:02:12 localhost hald[2068]: symlink pointing to node
    Jan 19 00:02:12 localhost hald[2068]: path sys device path
    Jan 19 00:02:12 localhost hald[2068]: property the device properties
    Jan 19 00:02:12 localhost hald[2068]: all all values
    Jan 19 00:02:12 localhost hald[2068]: --path= sys device path used for query or attribute walk
    Jan 19 00:02:12 localhost hald[2068]: --name= node or symlink name used for query or attribute walk
    Jan 19 00:02:12 localhost hald[2068]: --root prepend dev directory to path names
    Jan 19 00:02:12 localhost hald[2068]: --attribute-walk print all key matches while walking along the chain
    Jan 19 00:02:12 localhost hald[2068]: of parent devices
    Jan 19 00:02:12 localhost hald[2068]: --device-id-of-file= print major:minor of device containing this file
    Jan 19 00:02:12 localhost hald[2068]: --export export key/value pairs
    Jan 19 00:02:12 localhost hald[2068]: --export-prefix export the key name with a prefix
    Jan 19 00:02:12 localhost hald[2068]: --export-db export the content of the udev database
    Jan 19 00:02:12 localhost hald[2068]: --cleanup-db cleanup the udev database
    Jan 19 00:02:12 localhost hald[2068]: --help
    Jan 19 00:02:12 localhost hald[2068]: org.freedesktop.Hal.Device.Volume.UnknownFailure
    Jan 19 00:02:12 localhost hald[2068]: Cannot open /media/.hal-mtab
    Jan 19 00:02:12 localhost hald[2068]: in hal-storage-cleanup-all-mountpoints
    Jan 19 00:03:42 localhost systemd[1]: haldaemon.service operation timed out. Terminating.
    Jan 19 00:03:42 localhost systemd[1]: Failed to start HAL Hardware Manager.
    Jan 19 00:03:42 localhost systemd[1]: Unit haldaemon.service entered failed state

    ReplyDelete
  2. Hi - thanks for your work. However, in FC18 I get the same error as Luke. It doesn't matter if I start it manually or at boot. However I found that if I start it without daemonizing it, it works. Sort of. Flash plays for about 30 sec and then freezes. All recent amazon HD and std shows do this. If I only install libhal, flash doesn't play at all (I get "Unable to update player" message). I don't think I had any of these issues in FC17, I might just downgrade.

    ReplyDelete
  3. Thank you for putting this together. I got it to work for me. I now have video streaming on Fedora 18!

    ReplyDelete
  4. After followig your instructions, drm protected movies on amazon.com would start to play but only for 25 seconds. Is there something i am doing wrong? I am using F18.

    ReplyDelete
  5. Thank you! for this. I've been googling few days why some videos wont play. Now I can watch Criminal minds on ruutu.fi :)

    ReplyDelete
  6. Thanks for your work on fakehal.
    Followed your instructions on a 3.7.7-201.fc18.i686 machine- did Step 2 even as selinux=0 was issued at boot option.
    Ending up with the 3322 error code in the Adode drm test page- no train video.

    ReplyDelete
  7. Same problem: works for about 25 seconds then freezes.

    ReplyDelete
  8. I'm still on Fedora 17. So is everyone who has problems using Fedora 18?

    ReplyDelete
    Replies
    1. It works for me and lots of other users on both Fedora 17 and 18. It is not clear why it fails after 25 seconds for some people. Did you follow the directions carefully, including stopping Firefox and deleting the directory entirely as the instructions say?

      Delete
    2. Hi, I did, but I tried again just to make sure:

      [03:38 PM kevin ~/Downloads/hal/]$ sudo yum install fakehal-0.5.14-7.fc18.x86_64.rpm fakehal-libs-0.5.14-7.fc18.x86_64.rpm
      ...
      Installed:
      fakehal.x86_64 0:0.5.14-7.fc18
      fakehal-libs.x86_64 0:0.5.14-7.fc18
      [03:39 PM kevin ~/Downloads/hal/]$ grep SELINUX= /etc/selinux/config | grep -v \# # I rebooted after disabling this
      SELINUX=disabled
      [03:39 PM kevin ~/Downloads/hal/]$ ps -elf | grep firefox
      0 S kevin 26037 25879 0 80 0 - 27295 pipe_w 15:40 pts/1 00:00:00 grep --color=auto firefox
      [03:40 PM kevin ~/Downloads/hal/]$ ps -elf | grep nsplugin
      0 S kevin 26040 25879 0 80 0 - 27295 pipe_w 15:40
      [03:40 PM kevin ~/Downloads/hal/]$ rm -rf ~/.adobe/Flash_Player/
      pts/1 00:00:00 grep --color=auto nsplugin

      # Here I went to the Adobe test site and it just hangs. /var/log/messages shows some problems:

      Mar 11 15:38:21 localhost yum[25961]: Installed: fakehal-libs-0.5.14-7.fc18.x86_64
      Mar 11 15:38:21 localhost dbus-daemon[839]: dbus[839]: [system] Reloaded configuration
      Mar 11 15:38:21 localhost dbus[839]: [system] Reloaded configuration
      Mar 11 15:38:21 localhost dbus-daemon[839]: dbus[839]: [system] Reloaded configuration
      Mar 11 15:38:21 localhost dbus[839]: [system] Reloaded configuration
      Mar 11 15:38:21 localhost dbus-daemon[839]: dbus[839]: [system] Reloaded configuration
      Mar 11 15:38:21 localhost dbus[839]: [system] Reloaded configuration
      Mar 11 15:38:21 localhost dbus-daemon[839]: dbus[839]: [system] Reloaded configuration
      Mar 11 15:38:21 localhost dbus[839]: [system] Reloaded configuration
      Mar 11 15:38:21 localhost systemd[1]: Reloading.
      Mar 11 15:38:21 localhost systemd[1]: Reloading.
      Mar 11 15:38:21 localhost yum[25961]: Installed: fakehal-0.5.14-7.fc18.x86_64
      Mar 11 15:40:59 localhost dbus-daemon[839]: dbus[839]: [system] Activating via systemd: service name='org.freedesktop.Hal' unit='haldaemon.service'
      Mar 11 15:40:59 localhost dbus[839]: [system] Activating via systemd: service name='org.freedesktop.Hal' unit='haldaemon.service'
      Mar 11 15:40:59 localhost systemd[1]: Starting HAL Hardware Manager...
      Mar 11 15:40:59 localhost hald[26126]: Runner started - allowed paths are '/usr/libexec:/usr/libexec/scripts:/usr/bin'
      Mar 11 15:40:59 localhost hald[26126]: ** (process:26126): WARNING **: Failed to add monitor on '/usr/share/hal/fdi/preprobe': No such file or directory
      Mar 11 15:40:59 localhost hald[26126]: ** (process:26126): WARNING **: Failed to add monitor on '/etc/hal/fdi/preprobe': No such file or directory
      Mar 11 15:40:59 localhost hald[26126]: ** (process:26126): WARNING **: Failed to add monitor on '/etc/hal/fdi/information': No such file or directory
      Mar 11 15:40:59 localhost hald[26126]: ** (process:26126): WARNING **: Failed to add monitor on '/etc/hal/fdi/policy': No such file or directory
      Mar 11 15:40:59 localhost hald[26126]: 15:40:59.892 [E] create_cache.c:551: Cannot scan '/usr/share/hal/fdi/preprobe': No such file or directory
      Mar 11 15:40:59 localhost hald[26126]: 15:40:59.892 [E] create_cache.c:709: Error generating fdi cache
      Mar 11 15:40:59 localhost hald[26126]: *** [DIE] mmap_cache.c:di_rules_init():70 : Unable to open cache /var/cache/hald/fdi-cache
      Mar 11 15:40:59 localhost systemd[1]: haldaemon.service: main process exited, code=exited, status=1/FAILURE
      Mar 11 15:40:59 localhost systemd[1]: Failed to start HAL Hardware Manager.
      Mar 11 15:40:59 localhost systemd[1]: Unit haldaemon.service entered failed state
      Mar 11 15:41:24 localhost dbus-daemon[839]: dbus[839]: [system] Failed to activate service 'org.freedesktop.Hal': timed out

      Delete
    3. I restarted my computer and tried the Adobe test site again, and the hal failure is consistent:

      Mar 11 15:58:30 localhost dbus-daemon[874]: dbus[874]: [system] Activating via systemd: service name='org.freedesktop.Hal' unit='haldaemon.service'
      Mar 11 15:58:30 localhost dbus[874]: [system] Activating via systemd: service name='org.freedesktop.Hal' unit='haldaemon.service'
      Mar 11 15:58:30 localhost systemd[1]: Starting HAL Hardware Manager...
      Mar 11 15:58:30 localhost hald[1984]: Runner started - allowed paths are '/usr/libexec:/usr/libexec/scripts:/usr/bin'
      Mar 11 15:58:30 localhost hald[1984]: ** (process:1984): WARNING **: Failed to add monitor on '/usr/share/hal/fdi/preprobe': No such file or directory
      Mar 11 15:58:30 localhost hald[1984]: ** (process:1984): WARNING **: Failed to add monitor on '/etc/hal/fdi/preprobe': No such file or directory
      Mar 11 15:58:30 localhost hald[1984]: ** (process:1984): WARNING **: Failed to add monitor on '/etc/hal/fdi/information': No such file or directory
      Mar 11 15:58:30 localhost hald[1984]: ** (process:1984): WARNING **: Failed to add monitor on '/etc/hal/fdi/policy': No such file or directory
      Mar 11 15:58:30 localhost hald[1984]: 15:58:30.661 [E] create_cache.c:551: Cannot scan '/usr/share/hal/fdi/preprobe': No such file or directory
      Mar 11 15:58:30 localhost hald[1984]: 15:58:30.661 [E] create_cache.c:709: Error generating fdi cache
      Mar 11 15:58:30 localhost hald[1984]: *** [DIE] mmap_cache.c:di_rules_init():70 : Unable to open cache /var/cache/hald/fdi-cache
      Mar 11 15:58:30 localhost systemd[1]: haldaemon.service: main process exited, code=exited, status=1/FAILURE
      Mar 11 15:58:30 localhost systemd[1]: Failed to start HAL Hardware Manager.
      Mar 11 15:58:30 localhost systemd[1]: Unit haldaemon.service entered failed state
      Mar 11 15:58:55 localhost dbus-daemon[874]: dbus[874]: [system] Failed to activate service 'org.freedesktop.Hal': timed out

      Delete
    4. You are missing the point. You do not need to start haldaemon for this to work. Something else is going on here.

      Delete
    5. Hi Warren, I never started haldaemon. It must be starting itself. I've followed all of the directions (pasted above). I only pasted the contents of /var/log/messages since I don't know what else to paste. Do you have any ideas?

      Delete
    6. Just to be clear, in case you only skimmed my posts, I did the following:

      1. Installed fakehal
      2. Disabled SELINUX and restarted
      3. Stopped Firefox
      4. rm -rf ~/.adobe/Flash_Player/
      5. Try the Adobe test site
      6. Fail. Notice messages in /var/log/messages that haldaemon tried to start itself and failed.

      Delete
    7. haldaemon is started by d-bus automatically when you launch a DRM-ed flash movie

      Delete
  9. Here are all files and dirs under paths referenced in the messages:

    [04:01 PM root ~/]$ whoami
    root
    [04:02 PM root ~/]$ find /usr/share/hal /etc/hal /var/cache/hald

    /usr/share/hal
    /usr/share/hal/fdi
    /usr/share/hal/fdi/policy
    /usr/share/hal/fdi/policy/10osvendor
    /usr/share/hal/fdi/policy/10osvendor/20-ntfs-config-write-policy.fdi
    /usr/share/hal/fdi/information
    /usr/share/hal/fdi/information/20thirdparty
    find: `/etc/hal': No such file or directory
    /var/cache/hald

    ReplyDelete
  10. Related software versions:

    [04:05 PM root ~/]$ sudo yum list | grep -e ^firefox -e flash-plugin
    firefox.x86_64 19.0-1.fc18 @updates
    flash-plugin.x86_64 11.2.202.273-release @adobe-linux-x86_64
    [04:05 PM root ~/]$ cat /etc/fedora-release
    Fedora release 18 (Spherical Cow)
    [04:05 PM root ~/]$ sudo yum update
    Loaded plugins: langpacks, presto, refresh-packagekit
    No Packages marked for Update

    ReplyDelete
  11. Sorry about that. I have no idea why it fails for some people but most have no trouble. I don't have time to look into this. Sorry.

    ReplyDelete
    Replies
    1. Warren, no problem, you shared the source code of fakehal, so I'll try to look into it. One thing, can you let us know if fakehal starts itself when you try to play the Adobe test DRM page? If not, maybe that is the difference -- that for whatever reason, the hal daemon is auto-starting itself. If it is starting itself for you as well, then do you see the same errors as above? If not, that could also be a hint that something is different.

      By the way, I'm running an Ubuntu virtual machine on top of Fedora, and it works fine, so I don't think it's my video driver or something like that.

      Thanks.

      Delete
  12. Hi Warren -- I did follow your instructions, and yet still had the issue. I'd be happy to set up an account on my machine if you have a chance to connect remotely and take a look at the problem. My gmail acct name is luke.hutch if you want to set this up. Thanks for your help!

    ReplyDelete
  13. I did some more research and it seems that systemd allows service to start the first time they're accessed (using dbus). This is probably why Warren suggested that haldaemon should not be manually started. However, it appears it is needed, because when I mask the haldaemon.service to completely disable it (ln -s /dev/null /etc/systemd/system/haldaemon.service; systemctl daemon-reload), and I try the Adobe test again, this time it gets farther (past the loading dialogs) but it still fails and /var/log/messages shows that it is still trying to load haldaemon (and of course it doesn't load because it's masked).

    So I think the problem is the fact that haldaemon is not starting. Warren, it will be very interesting to know what messages you get when your haldaemon starts (do a search for org.freedesktop.Hal). I'm guessing you don't see the same errors we do, and this will probably be a key aspect to why it's not working for us (then there's a question of why fakehal behaves differently).

    ReplyDelete
  14. I'm really curious to know what parts of Hal that Adobe DRM depends upon (i.e. what parts are not stripped out in fakehal?), and why haldaemon doesn't need to start...

    ReplyDelete
    Replies
    1. Okay, I got it to work! Following the error messages and some gentoo forum posts:

      sudo mkdir /usr/share/hal/fdi/preprobe
      sudo touch /var/cache/hald/fdi-cache
      sudo ln -s /usr/share/hal/ /etc/hal

      (I think that's all I did). I'll be curious to see if Warren has these files or not?

      Delete
    2. /var/cache/hald/fdi-cache exists here but the other two do not.

      It seems a valid /var/cache/hald/fdi-cache needs to exist, then Adobe DRM works without haldaemon running. If the file is blank, then the DRM test gets stuck at downloading the license. However if I create a blank file there, haldaemon starts successfully and Adobe DRM works. Neither of these two working cases fails after 25 seconds here.

      I suspect my /var/cache/hald/fdi-cache (840408 bytes) came from haldaemon before I stripped seeming extraneous stuff from it. I could add it back, but it seems touching the file and starting the daemon is simpler.

      It seems that we almost have an answer here. If someone wants to do more testing, I'll roll the new rpm this weekend with whatever is the best solution.

      Delete
    3. This solution doesn't work for me.

      -- Ran the three sudo commands listed above, installed fakehal + fakehal-libs, killed firefox, removed .adobe/Flash_Player.

      -- Started Firefox and opened a Google Play movie. It froze at 25sec (the movie won't even start playing before fakehal was installed, for reference).

      -- Rebooted, removed .adobe/Flash_Player again, started Firefox again, still stuck at 25 sec.

      -- Found that /var/cache/hald/fdi-cache was 1111184 bytes. Moved it to /var/cache/hald/fdi-cache-old and ran touch /var/cache/hald/fdi-cache . Killed Firefox again, removed .adobe/Flash_Player again, restarted Firefox again, still gets stuck at 25 sec.

      -- Tried /etc/init.d/haldaemon start for good measure. Got several errors in /var/log/messages, including "[system] Failed to activate service 'org.freedesktop.Hal': timed out". Still can't play more than 25s of movie after restarting Firefox/wiping .adobe.

      Delete
    4. Hey Luke, can you paste the other messages you got before "Failed to activate service?"

      Delete
    5. Also Luke, one other thing to try is after stopping Firefox, dleeting .adobe/Flash_player, and removing and touching fdi-cache, instead of testing things on a Google Play movie, try going to the movie in Warren's step #2 above. That is the first thing I tried after the steps I took, so maybe running that movie first somehow "initialized things" better?

      Delete
  15. This comment has been removed by the author.

    ReplyDelete
  16. Warren, I was able to reproduce your issue when installing a vanilla Fedora 18 in a virtual machine and hitting the same issue even after the three sudo commands above. I must have done something else on my working machine, so I'm trying to retrace my steps. At least we know it's possible :)

    ReplyDelete
  17. If I run strace, the hang is primarily asking for a password, which I don't see on the working system:

    [pid 2116] 18:05:50 stat("/run/systemd/ask-password-block", {st_mode=S_IFDIR|0700, st_size=60, ...}) = 0
    [pid 2116] 18:05:50 mknod("/run/systemd/ask-password-block/136:0", S_IFIFO|0600) = -1 EEXIST (File exists)
    [pid 2116] 18:05:50 open("/run/systemd/ask-password-block/136:0", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_CLOEXEC) = 3
    [pid 2116] 18:05:50 stat("/run/systemd", {st_mode=S_IFDIR|0755, st_size=300, ...}) = 0
    [pid 2116] 18:05:50 gettid() = 2116
    [pid 2116] 18:05:50 open("/proc/self/task/2116/attr/current", O_RDONLY) = 4
    [pid 2116] 18:05:50 read(4, "unconfined_u:system_r:unconfined"..., 4095) = 50
    [pid 2116] 18:05:50 close(4) = 0
    [pid 2116] 18:05:50 mkdir("/run/systemd/ask-password", 0755) = -1 EEXIST (File exists)
    [pid 2116] 18:05:50 stat("/run/systemd/ask-password", {st_mode=S_IFDIR|0755, st_size=40, ...}) = 0
    [pid 2116] 18:05:50 inotify_init1(IN_CLOEXEC) = 4
    [pid 2116] 18:05:50 inotify_add_watch(4, "/run/systemd/ask-password", IN_CLOSE_WRITE|IN_MOVED_TO) = 1
    [pid 2116] 18:05:50 rt_sigprocmask(SIG_SETMASK, [INT TERM], NULL, 8) = 0
    [pid 2116] 18:05:50 signalfd4(-1, [INT TERM], 8, O_NONBLOCK|O_CLOEXEC) = 5
    [pid 2116] 18:05:50 openat(AT_FDCWD, "/run/systemd/ask-password", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 6
    [pid 2116] 18:05:50 getdents(6, /* 2 entries */, 32768) = 48
    [pid 2116] 18:05:50 getdents(6, /* 0 entries */, 32768) = 0
    [pid 2116] 18:05:50 close(6) = 0
    [pid 2116] 18:05:50 poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}], 2, 4294967295


    On the working system, the only reference I see is this:

    [pid 5564] 18:05:25 execve("/usr/bin/systemd-tty-ask-password-agent", ["/usr/bin/systemd-tty-ask-passwor"..., "--watch"], [/* 21 vars */]
    [pid 5563] 18:05:25 <... recvmsg resumed> {msg_name(0)=NULL, msg_iov(1)=[{"l\2\1\0017\0\0\0\4\0\0\0\17\0\0\0\5\1u\0\2\0\0\0\10\1g\0\1o\0\0"..., 2048}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 87

    ReplyDelete
  18. I think the password stuff is a red herring. If I try to manually start with sudo systemctl --no-ask-password haldaemon.service, it also hangs, here's the end of the strace:

    18:43:38 recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"l\2\1\1\10\0\0\0\4\0\0\0\17\0\0\0\5\1u\0\3\0\0\0\10\1g\0\1v\0\0"..., 2048}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 40
    18:43:38 recvmsg(3, 0x7fff2cc2f1b0, MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable)
    18:43:38 poll([{fd=3, events=POLLIN}], 1, 4294967295

    Strace comparison here:

    http://pastebin.com/Gn4yLrdy

    ReplyDelete
  19. Okay I learned how to ask hald to output verbose debug:

    Edit /lib/systemd/system/haldaemon.service
    Add --verbose=yes to ExecStart

    vi /etc/rsyslog.conf
    # Update the line
    *.info;mail.none;authpriv.none;cron.none;hald.debug /var/log/messages
    # Then
    sudo systemctl restart rsyslog

    Then in comparing the two outputs it becomes clear that hald is not completing startup in the bad case because hotplug events are not created and processed. When hald/linux/hotplug.c : hotplug_event_process_queue is called, the hotplug_event_queue is NULL and so it just returns.

    ReplyDelete
    Replies
    1. I might have ripped out too much of hal. Compare the fakehal.spec to the final version of Fedora hal.spec to see the things I removed. Sorry I don't have time to work on this in the next month.

      Delete
  20. Okay, got it to work! Here's the patch. I still have no idea why my virtual machine has a different behavior in the hotplug than my host machine.

    $ cat ../../SOURCES/hal-hack.patch
    diff -uNrp hal-0.5.14.orig/hald/linux/hotplug.c hal-0.5.14.new/hald/linux/hotplug.c
    --- hal-0.5.14.orig/hald/linux/hotplug.c 2013-03-12 19:53:45.445429300 -0700
    +++ hal-0.5.14.new/hald/linux/hotplug.c 2013-03-12 22:46:13.374644193 -0700
    @@ -460,8 +460,11 @@ hotplug_event_process_queue (void)
    GList *lp, *lp2;
    static gboolean processing = FALSE;

    - if (G_UNLIKELY (hotplug_event_queue == NULL))
    + if (G_UNLIKELY (hotplug_event_queue == NULL)) {
    + HAL_ERROR (("hotplug_event_queue NULL, trying early finish"));
    + hotplug_queue_now_empty();
    return;
    + }

    if (processing)
    return;

    ReplyDelete
    Replies
    1. Is there an rpm for this patch?

      Delete
    2. Hey MrErr, Warren built one but it had problems on his machine (although myself and Andrei do not have problems). Warren can you post the RPMs with the patch in a separate folder please? Or if you can provide instructions for creating an RPM from an rpmbuild environment (I've never done that), I can build one and post it on some upload site, but that might be sketchy for some people.

      Delete
  21. I should note that this is probably not the best solution, and I really don't know what the impact to HAL is. The correct solution would be to understand why the hotplug events are not being queued, but this patch seems to work okay enough.

    ReplyDelete
    Replies
    1. Tried your patch. As I have been unable to reproduce your failure, I can't confirm that it helps anything. It does seem to however cause a new problem. Now haldaemon fails to start with a blank /var/cache/hald/fdi-cache with the following error visible in journal.

      Mar 12 20:28:24 pegasus hald[19831]: 20:28:24.685 [E] create_cache.c:551: Cannot scan '/usr/share/hal/fdi/preprobe': No such file or directory
      Mar 12 20:28:24 pegasus hald[19831]: 20:28:24.685 [E] create_cache.c:709: Error generating fdi cache
      Mar 12 20:28:24 pegasus hald[19831]: *** [DIE] mmap_cache.c:di_rules_init():79 : Couldn't mmap file '/var/cache/hald/fdi-cache', errno=22: Invalid argument
      Mar 12 20:28:24 pegasus systemd[1]: haldaemon.service: main process exited, code=exited, status=1/FAILURE
      Mar 12 20:28:24 pegasus systemd[1]: Failed to start HAL Hardware Manager.

      If the file exists but blank, the error is different.

      Mar 12 20:30:09 newcaprica hald[25090]: *** [DIE] mmap_cache.c:di_rules_init():70 : Unable to open cache /var/cache/hald/fdi-cache

      No AVC denial in /var/log/audit/audit.log, so this is yet more internal HAL stuff we would need to figure out.

      Delete
    2. "Unknown": here are my verbose logs, as requested. (Part 1/2)

      systemd: Starting HAL Hardware Manager...
      [I] hald.c:673: hal 0.5.14
      [I] hald.c:674: using child timeout 250s
      [I] hald.c:739: Will not daemonize
      [I] hald_dbus.c:5444: local server is listening at unix:abstract=/var/run/hald/dbus-zmj3VaNsnQ,guid=25cdf64333666cb6e5b4972c514044fd
      [I] hald_runner.c:304: Runner has pid 15020
      Runner started - allowed paths are '/usr/libexec:/usr/libexec/scripts:/usr/bin'
      [I] hald_runner.c:184: runner connection is 0xa545e0
      [I] mmap_cache.c:278: cache mtime is 1363083302
      [I] mmap_cache.c:83: preprobe: offset=00000018, size=0
      [I] mmap_cache.c:85: information: offset=00000018, size=0
      [I] mmap_cache.c:87: policy: offset=00000018, size=872
      [I] osspec.c:818: got 8086:162 as primary videocard
      [I] hald_dbus.c:1371: power_management.can_suspend -> True
      [I] hald_dbus.c:1371: power_management.can_suspend_hybrid -> True
      [I] hald_dbus.c:1371: power_management.can_hibernate -> True
      [I] osspec.c:797: In computer_probing_pm_is_supported_helper_done
      [I] osspec.c:774: got DMI from files
      [I] osspec.c:483: Check if the machine is may a laptop ...
      [E] acpi.c:762: Couldn't open /proc/acpi/battery: Error opening directory '/proc/acpi/battery': No such file or directory
      [E] acpi.c:762: Couldn't open /proc/acpi/button/lid: Error opening directory '/proc/acpi/button/lid': No such file or directory
      [I] osspec.c:493: Synthesizing sysfs events...
      Usage: udevadm info OPTIONS
      --query= query device information:
      name name of device node
      symlink pointing to node
      path sys device path
      property the device properties
      all all values
      --path= sys device path used for query or attribute walk
      --name= node or symlink name used for query or attribute walk
      --root prepend dev directory to path names
      --attribute-walk print all key matches while walking along the chain
      of parent devices
      --device-id-of-file= print major:minor of device containing this file
      --export export key/value pairs
      --export-prefix export the key name with a prefix
      --export-db export the content of the udev database
      --cleanup-db cleanup the udev database
      --help

      Delete
    3. Hi Warren, Hmm, ok. My suspicious is that this is all timing related (because I compared my working and non-working systems with a fine toothed comb). So maybe my bad system (on a virtual machine) is slow enough that everything finishes by the time the hotplug check is done, but maybe in your case your system is fast enough that we finish too early and that causes problems. I have one more idea to update the patch and if that doesn't work then we'll have to conclude this patch is not the right way to go and figure out why the hotplug events are not queueing.

      Delete
  22. (Part 2/2)

    [E] coldplug.c:176: /sbin/udevadm returned 512
    [E] coldplug.c:583: Unable to get sysfs to dev map
    [I] osspec.c:496: Synthesizing powermgmt events...
    [E] acpi.c:762: Couldn't open /proc/acpi/battery: Error opening directory '/proc/acpi/battery': No such file or directory
    [E] acpi.c:762: Couldn't open /proc/acpi/processor: Error opening directory '/proc/acpi/processor': No such file or directory
    [E] acpi.c:762: Couldn't open /proc/acpi/fan: Error opening directory '/proc/acpi/fan': No such file or directory
    [E] acpi.c:762: Couldn't open /proc/acpi/ac_adapter: Error opening directory '/proc/acpi/ac_adapter': No such file or directory
    [E] acpi.c:762: Couldn't open /proc/acpi/button/lid: Error opening directory '/proc/acpi/button/lid': No such file or directory
    [E] acpi.c:762: Couldn't open /proc/acpi/button/power: Error opening directory '/proc/acpi/button/power': No such file or directory
    [E] acpi.c:762: Couldn't open /proc/acpi/button/sleep: Error opening directory '/proc/acpi/button/sleep': No such file or directory
    [I] acpi.c:841: Processing sonypi display
    [I] osspec.c:498: ACPI capabilities found
    [I] osspec.c:506: Done synthesizing events
    [I] osspec.c:461: Add callouts completed udi=/org/freedesktop/Hal/devices/computer
    [I] hald.c:108: Added device to GDL; udi=/org/freedesktop/Hal/devices/computer

    [...hangs here for 90 seconds...]

    systemd: haldaemon.service operation timed out. Terminating.
    [I] hald.c:372: Caught SIGTERM, initiating shutdown
    systemd: Failed to start HAL Hardware Manager.
    systemd: Unit haldaemon.service entered failed state

    ReplyDelete
    Replies
    1. Hey Luke, that looks very similar to my bad system, specificallly in the fact that there are no messages from hotplug.c

      Delete
  23. The patch works for me too! Thank you, thank you, thank you!!! Now I can watch Doctor Who, yay! Funny thing though, hald is not even running.

    ReplyDelete
    Replies
    1. Hey Andrei, that's great, do you mean the patch to hotplug.c?

      Delete
    2. Yes, before the patch I had the 25 sec freeze. I had real hal installed and it was failing to start. I removed it and installed fakehal with patched hotplug. Two observations:
      1) starting a movie past the 25sec freezepoint just worked and dbus didn't even try to start hald (i.e. I resumed one of the shows that froze earlier)
      2) starting a movie from 0 causes hald to start immediately and it starts properly now. Movie plays past freezepoint. I can post hald output if you think it would be useful.

      Delete
    3. That's great! Good to hear my patch was not a fluke on my machine. I don't think the output is necessary -- we know what we'll see -- the hotplug and subsequent events. I still don't understand why the hotplug events don't come in, I didn't get into the code that much, I only put in enough fprintf's to see where it "stopped."

      Delete
  24. I guess we still never figured out the difference between systems that work with fakehal and those that don't? Is it possible to instrument fakehal with some debug output so we can see exactly what the difference is between working and non-working systems?

    ReplyDelete
    Replies
    1. Hey Luke, I couldn't reproduce Warren's problem when he installed my patch, so I think our situation is:

      1. Warren's original fakehal worked on some systems but not others (including mine and yours). On these systems, it seems fakehal gets "stuck" starting because the hotplug events do not fire correctly.
      2. I was able to get my main Fedora 18 system working with:
      sudo mkdir /usr/share/hal/fdi/preprobe
      sudo touch /var/cache/hald/fdi-cache
      sudo ln -s /usr/share/hal/ /etc/hal
      3. However, you reported that this didn't help you. I was able to reproduce your problem in a virtual machine. I then was able to get things working with my patch above to hotplug.c. However, this broken Warren's system, but it seemed to fix Andrei's system. So I recommend that you try my patch on your system. Let me know if you need help applying the patch (you'll need to do all the rpmbuild goodness).

      Finally, I suspect the issue might be timing related (thus perhaps why it happened on my virtual machine and not host machine). So also try temporarily reducing your CPU speeds to like 512MHz when starting hald:

      for i in `ls /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq`; do sudo bash -c "echo 500000 > $i"; done

      Delete
    2. Hi Unknown,
      I have tried your patch on my system and it still does not work. I do not get any hotplug messages. Here is my the first part of my output

      Mar 22 22:03:42 Salem systemd[1]: Starting HAL Hardware Manager...
      Mar 22 22:03:42 Salem hald[2564]: 22:03:42.963 [I] hald.c:673: hal 0.5.14
      Mar 22 22:03:42 Salem hald[2564]: 22:03:42.963 [I] hald.c:674: using child timeout 250s
      Mar 22 22:03:42 Salem hald[2564]: 22:03:42.963 [I] hald.c:739: Will not daemonize
      Mar 22 22:03:42 Salem hald[2564]: 22:03:42.963 [I] hald_dbus.c:5444: local server is listening at unix:abstract=/var/run/hald/dbus-76s4AXjYLO,guid=cc5f0b9d93fbd3f6d42a09b7514d1b8e
      Mar 22 22:03:42 Salem hald[2564]: 22:03:42.967 [I] hald_runner.c:304: Runner has pid 2565
      Mar 22 22:03:42 Salem hald[2564]: Runner started - allowed paths are '/usr/libexec:/usr/libexec/scripts:/usr/bin'
      Mar 22 22:03:42 Salem hald[2564]: 22:03:42.970 [I] hald_runner.c:184: runner connection is 0x233a7d0
      Mar 22 22:03:42 Salem hald[2564]: 22:03:42.972 [I] mmap_cache.c:278: cache mtime is 1364005019
      Mar 22 22:03:42 Salem hald[2564]: 22:03:42.972 [I] mmap_cache.c:83: preprobe: offset=00000018, size=0
      Mar 22 22:03:42 Salem hald[2564]: 22:03:42.972 [I] mmap_cache.c:85: information: offset=00000018, size=0
      Mar 22 22:03:42 Salem hald[2564]: 22:03:42.972 [I] mmap_cache.c:87: policy: offset=00000018, size=-4
      Mar 22 22:03:42 Salem hald[2564]: 22:03:42.973 [I] osspec.c:818: got 10de:240 as primary videocard
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.058 [I] hald_dbus.c:1371: power_management.can_suspend -> True
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.058 [I] hald_dbus.c:1371: power_management.can_suspend_hybrid -> True
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.059 [I] hald_dbus.c:1371: power_management.can_hibernate -> True
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.060 [I] osspec.c:797: In computer_probing_pm_is_supported_helper_done
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.061 [I] osspec.c:774: got DMI from files
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.061 [I] osspec.c:483: Check if the machine is may a laptop ...
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.062 [E] acpi.c:762: Couldn't open /proc/acpi/battery: Error opening directory '/proc/acpi/battery': No such file or directory
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.062 [E] acpi.c:762: Couldn't open /proc/acpi/button/lid: Error opening directory '/proc/acpi/button/lid': No such file or directory
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.062 [I] osspec.c:493: Synthesizing sysfs events...
      Mar 22 22:03:43 Salem hald[2564]: Usage: udevadm info OPTIONS
      Mar 22 22:03:43 Salem hald[2564]: --query= query device information:
      Mar 22 22:03:43 Salem hald[2564]: name name of device node
      Mar 22 22:03:43 Salem hald[2564]: symlink pointing to node
      Mar 22 22:03:43 Salem hald[2564]: path sys device path
      Mar 22 22:03:43 Salem hald[2564]: property the device properties
      Mar 22 22:03:43 Salem hald[2564]: all all values
      Mar 22 22:03:43 Salem hald[2564]: --path= sys device path used for query or attribute walk
      Mar 22 22:03:43 Salem hald[2564]: --name= node or symlink name used for query or attribute walk
      Mar 22 22:03:43 Salem hald[2564]: --root prepend dev directory to path names
      Mar 22 22:03:43 Salem hald[2564]: --attribute-walk print all key matches while walking along the chain
      Mar 22 22:03:43 Salem hald[2564]: of parent devices
      Mar 22 22:03:43 Salem hald[2564]: --device-id-of-file= print major:minor of device containing this file
      Mar 22 22:03:43 Salem hald[2564]: --export export key/value pairs
      Mar 22 22:03:43 Salem hald[2564]: --export-prefix export the key name with a prefix
      Mar 22 22:03:43 Salem hald[2564]: --export-db export the content of the udev database
      Mar 22 22:03:43 Salem hald[2564]: --cleanup-db cleanup the udev database

      Delete
    3. part 2 of output

      Mar 22 22:03:43 Salem hald[2564]: --help
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.066 [E] coldplug.c:176: /sbin/udevadm returned 512
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.066 [E] coldplug.c:583: Unable to get sysfs to dev map
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.066 [I] osspec.c:496: Synthesizing powermgmt events...
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.066 [E] acpi.c:762: Couldn't open /proc/acpi/battery: Error opening directory '/proc/acpi/battery': No such file or directory
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.066 [E] acpi.c:762: Couldn't open /proc/acpi/processor: Error opening directory '/proc/acpi/processor': No such file or directory
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.066 [E] acpi.c:762: Couldn't open /proc/acpi/fan: Error opening directory '/proc/acpi/fan': No such file or directory
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.067 [E] acpi.c:762: Couldn't open /proc/acpi/ac_adapter: Error opening directory '/proc/acpi/ac_adapter': No such file or directory
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.067 [E] acpi.c:762: Couldn't open /proc/acpi/button/lid: Error opening directory '/proc/acpi/button/lid': No such file or directory
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.067 [E] acpi.c:762: Couldn't open /proc/acpi/button/power: Error opening directory '/proc/acpi/button/power': No such file or directory
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.067 [E] acpi.c:762: Couldn't open /proc/acpi/button/sleep: Error opening directory '/proc/acpi/button/sleep': No such file or directory
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.067 [I] acpi.c:841: Processing sonypi display
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.067 [I] osspec.c:498: ACPI capabilities found
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.075 [I] osspec.c:506: Done synthesizing events
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.076 [I] osspec.c:461: Add callouts completed udi=/org/freedesktop/Hal/devices/computer
      Mar 22 22:03:43 Salem hald[2564]: 22:03:43.077 [I] hald.c:108: Added device to GDL; udi=/org/freedesktop/Hal/devices/computer
      Mar 22 22:04:07 Salem dbus-daemon[837]: dbus[837]: [system] Failed to activate service 'org.freedesktop.Hal': timed out
      Mar 22 22:04:07 Salem dbus[837]: [system] Failed to activate service 'org.freedesktop.Hal': timed out

      Delete
    4. Hi Unknown.

      If you have other patches you want me to try put, let me know.

      Delete
  25. MrErr how did you apply the patch? I was new to this and it took me some time to figure it out. Run strings /usr/sbin/hald | grep "hotplug_event_queue NULL, trying early finish" to be sure the patch worked correctly. Did you modify the fakehal.spec?

    ReplyDelete
  26. OK looks i did not apply the patch properly. All i did was include the patch file in the SOURCES directory. I did not change the fakehal.spec file. I tried making changes to fakehal.spec file and the rpmuild it, but i get the following errors.

    Patch #102 (hal-exclude-addons.patch):
    + /usr/bin/patch -p1 -b --suffix .exclude-addons --fuzz=0
    + /usr/bin/cat /root/rpmbuild/SOURCES/hal-exclude-addons.patch
    patching file hald/linux/addons/Makefile.am
    + echo 'Patch #103 (hal-hack.patch):'
    Patch #103 (hal-hack.patch):
    + /usr/bin/patch -p1 -b --suffix .hal-hack.patch --fuzz=0
    + /usr/bin/cat /root/rpmbuild/SOURCES/hal-hack.patch
    patching file hald/linux/hotplug.c
    /usr/bin/patch: **** malformed patch at line 5: GList *lp, *lp2;

    error: Bad exit status from /var/tmp/rpm-tmp.uhtIcH (%prep)


    RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.uhtIcH (%prep)
    (10:24 root@Salem SPECS) >

    Any ideas what to do different?

    ReplyDelete
    Replies
    1. Hi MrErr,

      I see you're using a "root" rpmbuild, that's not recommended. Here is a step-by-step that I reproduced this morning on a Fedora 18 x64 virtual machine:

      # sudo vi /etc/sudoers
      %wheel ALL=(ALL) NOPASSWD: ALL
      :wq!

      http://get.adobe.com/flashplayer/

      # sudo yum install -y adobe-release-x86_64-1.0-1.noarch.rpm
      # sudo yum install -y flash-plugin
      # sudo yum install -y firefox wget

      Test http://drmtest2.adobe.com:8080/Content/anonymous.f4v at http://drmtest2.adobe.com:8080/SVP/SampleVideoPlayer_FP.html#

      Fail

      # sudo yum install -y http://wtogami.fedorapeople.org/fakehal/Fedora/18/x86_64/fakehal-0.5.14-7.fc18.x86_64.rpm http://wtogami.fedorapeople.org/fakehal/Fedora/18/x86_64/fakehal-libs-0.5.14-7.fc18.x86_64.rpm
      # sudo yum install -y policycoreutils-devel
      # wget http://togami.com/~warren/archive/2012/adobedrm.te
      # checkmodule -M -m -o adobedrm.mod adobedrm.te
      # sudo semodule_package -o adobedrm.pp -m adobedrm.mod

      Close Firefox

      # rm -rf ~/.adobe/Flash_Player/

      Test http://drmtest2.adobe.com:8080/Content/anonymous.f4v at http://drmtest2.adobe.com:8080/SVP/SampleVideoPlayer_FP.html#

      Fail

      Close Firefox

      # rm -rf ~/.adobe/Flash_Player/
      # sudo touch /var/cache/hald/fdi-cache

      Test http://drmtest2.adobe.com:8080/Content/anonymous.f4v at http://drmtest2.adobe.com:8080/SVP/SampleVideoPlayer_FP.html#

      Fail

      Close Firefox

      # sudo yum install -y rpmdevtools yum-utils
      # rpmdev-setuptree
      # wget http://wtogami.fedorapeople.org/fakehal/Fedora/18/src/fakehal-0.5.14-7.fc18.src.rpm
      # sudo yum-builddep fakehal-0.5.14-7.fc18.src.rpm
      # rpm -Uvh fakehal-0.5.14-7.fc18.src.rpm
      Warnings normal here
      # cd ~/rpmbuild/SPECS
      # rpmbuild -bp --target=$(uname -m) fakehal.spec

      If you wanted to create the patch "normally,"
      # cp -r ~/rpmbuild/BUILD/hal-0.5.14 ~/rpmbuild/BUILD/hal-0.5.14.orig
      # cp -r ~/rpmbuild/BUILD/hal-0.5.14 ~/rpmbuild/BUILD/hal-0.5.14.new
      # cd ~/rpmbuild/BUILD
      # vi hal-0.5.14.new/hald/linux/hotplug.c
      Go to line 463 and replace those two lines with

      if (G_UNLIKELY (hotplug_event_queue == NULL)) {
      HAL_ERROR (("hotplug_event_queue NULL, trying early finish"));
      hotplug_queue_now_empty();
      return;
      }

      Then create the patch with

      # diff -uNrp hal-0.5.14.orig hal-0.5.14.new > ../SOURCES/hal-hack.patch

      Or you can just download the patch from the blog into ~/rpmbuild/SOURCES/hal-hack.patch

      # cd ~/rpmbuild/SPECS
      # vi fakehal.spec
      Go to line 63 and insert
      Patch103: hal-hack.patch
      Go to line 141 and insert
      %patch103 -p1 -b .hack
      # rpmbuild -bb --target=`uname -m` fakehal.spec
      # cd ../RPMS/*/
      # sudo yum reinstall -y fakehal-0.5.14-7.fc18.x86_64.rpm fakehal-libs-0.5.14-7.fc18.x86_64.rpm
      # rm -rf ~/.adobe/Flash_Player/
      # sudo mkdir /usr/share/hal/fdi/preprobe
      # sudo touch /var/cache/hald/fdi-cache
      # sudo ln -s /usr/share/hal/ /etc/hal

      Test http://drmtest2.adobe.com:8080/Content/anonymous.f4v at http://drmtest2.adobe.com:8080/SVP/SampleVideoPlayer_FP.html#

      Works!

      Delete
    2. Thank you unknown for all the detailed instructions. It works now for all 3 of my failing computers. Of course with was the last method with the patch that worked.

      I know there others on an amazon discussion thread that are looking for solutions because of getting stuck at 25s mark. Maybe you could post it for them, because that is what people might look at first.

      Delete
  27. The instructions from Unknown worked for me on Fedora 3.8.12-100.fc17.i686.PAE. The patched rpms and instructions were spot on. Thanks to Warren and Unknown for this.

    ReplyDelete
  28. worked on my fedora 18 also. great comment from Unknown. One line missing is the "sudo semodule -i adobedrm.pp" but I think I remember seeing that back at the top of the post anyways...

    ReplyDelete
  29. Hi, is there any way one of you could prove a compiled rpm with that patch applied? I'm repackaging for Arch Linux, and I don't know how .spec builds work.

    ReplyDelete
  30. here are my built rpms with the fakehal patch.

    https://www.dropbox.com/sh/afbrtsi9cwc2ahj/OHVai3uelV

    ReplyDelete
  31. Progress! Thanks Allison, Adobe DRM was hanging partway through initializing, but now with your fakehal RPMs, it fully initializes, but I get an error:

    Starts to get video metadata at Fri Jul 26 23:35:31 GMT-0700 2013
    DRMContentData received on Fri Jul 26 23:35:31 GMT-0700 2013
    authenticationMethod = anonymous
    ServerURL = http://drmtest2.adobe.com:8080
    license ID = 43345AEF-52FF-3F20-90FF-ABDC98A2E3E4

    DRMErrorEvent dispatched by DRMManger received on Fri Jul 26 23:35:31 GMT-0700 2013
    event type = drmError
    Error Code = 3322 [DeviceBindingFailed]
    Sub Error Code = 1107296263
    Error Details =
    drmUpdateNeeded = false
    systemUpdateNeeded = false


    I followed the steps in Unknown's comment, until the patching steps, then just used Allison's RPMs, and additionally added the "sudo semodule -i adobedrm.pp" step. Did I miss anything?

    In particular, SELinux is disabled on my machine, do I need to be running in Permissive mode or something for fakehal to work, given the SELinux commands?

    (BTW I have another solution for several media sources at least. It's a cop-out, but I just bought a ChromeCast device to plug into a spare HDMI port on my monitor... :) )

    ReplyDelete
  32. Spoke too soon, after another "rm -rf ~/.adobe/Flash_Player/", it's working! My setup seemed to be the most stubborn and resistant to being fixed in earlier discussions, so this is amazing. Thank you everybody for the tips and solutions!

    Allison, do your RPM packages include all the necessary selinux commands in the setup scripts, so that all the user has to do is issue "rm -rf ~/.adobe/Flash_Player/"?

    ReplyDelete
  33. (As far as I know, the only difference with Allison's RPMs is that she applied all the patches in "Unknown"'s comments, and rolled new RPMs?)

    ReplyDelete
  34. I got this to work (on a local Australian catchup service) - had to start haldaemon then when it failed looked at the error message and created the directories it was looking for (owned by haldaemon:haldaemon. Also chmod'd them a+rx, although that may not have been needed)

    /usr/share/hal/{information,policy,preprobe} were needed, (This was a new laptop that started with F19, so never had HAL installed)

    ReplyDelete
  35. In addition to the steps above, I had to remove the ~./macromedia directory in Fedora 17 32-bit to get protected content to play.

    ReplyDelete
  36. Thanks - I built and installed fakehal (f20), restarted Firefox (f35) and video played right away. No need to create nor delete any directories.

    ReplyDelete