Buffalo+Plex firmware 1.71-3.65 Andimaginary released

By 2015-09-11 Buffalo + Plex

Long time no see and lots have changed. My second project has taken interesting turns and it needs to remain private for now and both BuffaloTech and the team at Plex have been working hard on features for their products. A new release of the Buffalo + Plex project is overdue and here it is, at last for both Windows and Mac. (Download at the bottom of the project page.) The codename of this version is Andimaginary. I would like to thank Andimaginary Graphics for their support in the website design and hosting.

Changes:

  • Buffalo firmware 1.71
  • Plex Media Server 0.9.12
  • FlexGet 1.2.349
  • NASNavi 2.82
  • The skins for transmission Web-control and Shift were updated
  • Auto-update feature fix and minor bugfixes

Known issues:

  • Sometimes Transmission or Plex didn’t want to start up automatically right after the upgrade for some reason. Clicking “Restart service” or rebooting your Linkstation will resolve that issue and it didn’t surface afterwards.

Most of the users must have waited for the Plex update as it introduces some interesting new features. The Buffalo update is something new, this time they went the extra length to update some of their libraries properly. (Or maybe that was version v1.70 but I didn’t check that.) This means that the optware transmission package didn’t work out of the box, I had to rebuild both versions from scratch. (They would work from /opt because optware has the right openSSL 0.9.8v library but the firmware is upgraded to OpenSSL v0.9.8ze.)

I found an issue with the internal auto-updater so upgrading from version “Chris” is not going to work this time. You have to download the new package from the site and install it the regular way. The reason for this is that I’m hosting the auto-update firmware at DropBox and they changed their certificate authority (their certificate provider). The auto-update is downloaded through HTTPS and I’m checking the validity of the certificate. This is for security reasons and I’m not planning to change it. The issue is that the Linkstation doesn’t have an up-to-date version of valid certificate authorities hence when DropBox changed their provider your Linkstation thinks that the certificate is not valid. I’ve added the new provider’s details into the firmware so this should be OK for the foreseeable future.

Oxygen8 gave a set of bugs to fix back in the day. Some turned out to be “features”, others I could fix. Since he’s such a regular contributor, I’m going to address his concerns here in the blog post.

  1. settings.json issue with Transmission

Oxygen8 mentioned that when he overwrites settings in the Transmission config file they get reverted back to the original settings upon shutdown or reboot. As it turns out the config file is read during Transmission startup and written at Transmission shutdown so if you change anything in it while Transmission is running, those changes will get lost. You have two options to work around this: either change your settings within the Transmission webpage or – for the settings that are not available on the web interface – shut down Transmission and then do your change. It will pick up downloading/seeding where it left off so no harm there.

Because of this there’s no point in creating a “default” settings,json, you can set it up for yourself without issue. Also, if you remove the settings.json file (while Transmission is shut down), on the next start Transmission will create a default file for you.

  1. Transmission spamming into /var/log/messages

That was a real concern that was pointed out by Oxygen8. I changed the startup settings of Transmission to always set “message-level” to 0, so nothing is written into /var/log/messages anymore. This is the second enforced setting for Transmission, the first one being “umask” set to 0 so you can read/write your files through SMB. I’m not planning to enforce any other settings for now.

The FAQ page was also updated to the v1.71 of the rollback firmware if someone wants to roll back to the original Buffalo Linkstation firmware. The source code for the new version was uploaded to the usual place on GitHub.

Apologies for the long silence, I bet Oxygen8 already figured out all this before and the comments I received might be out-of-date already. I’m still not planning to do major modifications to the firmware but I’ll keep an eye out for new Plex releases more frequently.

21 Comments

  • R3DMVN says:

    Thanks for the update.
    LS-WVL/R1

  • Net7 says:

    Thanks for the continuing updates!

    Any chance you can take a look at “fixing” the firmware for the newer LinkStations? (can provide)

    • garyt says:

      Hi Net7,

      The newer Linkstations have a different firmware. I could download them and open them up but without testing it’s all a shot in the dark. Even if I manage to put something together, I wouldn’t know if it has any bugs. If someone comes back and says I bricked their Linkstation, there’s no way for me to debug.

      I’m planning to buy one of the LS220 or LS420 series from the money I get as donation. Currently 15% of this money has come together since last November so it’s going to take some time… Until then, try to ask a friend who understands BASH, Speedy (or Perl) and the Linux kernel (glibc dependencies are enough) to look at the “source code” I put together (link on the FAQ page). If you have a specific Linkstation and a friend like that, you should be able to create your own firmware.

      – GaryT

  • mapuo says:

    Feature Request:
    Can you compile IPv6 module for the next version? 🙂

    • garyt says:

      Hi Mapuo, what an interesting request. 🙂

      I’m a great advocate of IPv6, but the Buffalo Linkstation doesn’t support it on the web interface or in the kernel at all. (At least I didn’t find any clues.) It could maybe be hacked as a kernel module if you can compile a Linux kernel for the ARM with similar settings as the current Buffalo kernel or you could compile a fully built brand new kernel. Then you only have to integrate it onto the web interface…

      The idea is an interesting project, but I can’t add it to the current one. The current project focuses on adding Plex as a feature to the Linkstation firmware and fixing a few issues with the original firmware.

      At one point I was leaning toward overhauling the whole firmware (new kernel, new web interface, etc) but that would have been an enormous undertaking, especially with my limited amount of time. Buffalo solves this by selling newer and newer versions of their NASes with updated web interfaces and new features. I usually don’t have that kind of money so I hack away in my free time. 🙂

      – GaryT

      • mapuo says:

        I understand that you have limited time and do the work on the firmware for free (on donations).
        I have looked into the possibilities to add IPv6 support before and I saw that it should be a matter of compiling the linux kernel with the same settings as the Buffalo did it (and adding the userspace tools for IPv6). But I don’t know how actually to do that.
        I really don’t care for administration of the IPv6 in the web interface, I think it should be doable in the console (as you kindly already provide SSH access!).
        I have two (already very old) devices from Buffalo – LS-CHLv1 and LS-WXL and I’m sure when the time comes to retire them I won’t be going to Buffalo again. Most of my concerns with the devices are with the restrictions Buffalo applied to the software on them – no ssh, no way to install transmission or other applications. That is why I admire your effort for adding some more apps and fixing some of the stuff they left. And for the moment that is the only way to prolong the lifetime of those devices and adding IPv6 to the mix would be great.
        As I can’t do it myself I can only thank you for the current effort!
        So, thank you! 🙂

  • Manish says:

    Hello There

    Its been two days I running with this new firmware and today transmission stopped suddenly and won’t start. Switched back to stock bittorrent.

    No severity issue, but still I m surprised what happened to transmission all of a sudden.

    Any clue.

    Regards
    Manish

    • garyt says:

      Hi Manish,

      If stock BitTorrent works for you, that’s a good workaround.

      It’s worth trying to reset the Transmission settings (Initialize BitTorrent on the webpage or just remove the settings.json file) and start Transmission to see if the settings file gets recreated. There’s also a debug log option on the web interface that gives you additional output in the log file (under _config/_transmission_logs). If none of that helps in any way, it’s possible that I missed something during compiling the new transmission and it SEGFAULTs after a while. I’ll try to test that because that usually doesn’t leave any trace in the log file.

      – GaryT

      • mapuo says:

        It seams that I have a problem with Transmission too…
        It does not start at all. Here is a `strace -f ./transmission-daemon -g /mnt/array1/share/transmission/_config 2> ~/transmission.log` output:
        https://onedrive.live.com/redir?resid=BBFC1A271C0DDD!2700&authkey=!APMdtPUQa1gzogA&ithint=file%2clog

        • garyt says:

          Hi Mapuo,

          Thanks for the trace. Could you rerun with a few additions? This one only tells me that it segfaulted after a while.
          strace -ff (this will create multiple files for the different threads)
          ./transmission-daemon -f (it will run the daemon in the foreground)

          My testing didn’t yield any results yet, the client is up and running. (Although it only seed some Daily Show episodes.)

          – GaryT

          • mapuo says:

            Here are the log files: https://onedrive.live.com/redir?resid=BBFC1A271C0DDD!2706&authkey=!AJqoyQCMfE3x7pc&ithint=folder%2c
            The strace cmd was: `strace -o transmission -ff /usr/local/transmission/latest/bin/transmission-daemon -f -g /mnt/array1/share/transmission/_config`

          • garyt says:

            Thanks mapuo. I’ve checked the four files, the second process (PID 20846) is the one faulting. It’s peacefully reading and writing a socket than at one point it just dies. Unfortunately the file descriptor for the socket (6) was not opened in any of the processes you sent so I can’t tell what it was trying to read/write.

            It’s a shot in the dark, but could you please try something? Rename your “transmission” folder and try to restart transmission. It will create the folder structure again but with default settings so your blocklist and torrents are not loaded. See if that segfaults transmission or not. If it works that way, copy over your torrent (and change any settings that you deem fit) and see if it works.

            If that doesn’t help, I’m a bit clueless. Another long shot we can do is run an “lsof” before, during and after the strace so I also understand which file descriptor was open when the segfault happened. If that doesn’t help either, we have to call in the cavalry. Do you know how to install optware and gdb for debugging purposes? (I’m not very familiar with gdb but it’s worth a shot. Like the movie “Inception”, we’ll have to go deeper.)

            Thank you for the kind words about the project. I agree, if you want something more advanced, you should buy one of the NASs with package managers. Buffalo must be saving a lot of money by not maintaining packages or implementing a package manager so that’s the cost for a cheap NAS. 🙂

            – GaryT

      • Jorel says:

        my default uTorrent works, but i’d like to use Transmission, it has remote app and (very important for me) allows to choose download location.
        First, transmission worked, then I added a torrent, and another one. When I added the 3rd torrent, it stopped responding, and I never managed to access it again.

        • garyt says:

          Hi Jorel,

          I’ve had a report that the new Transmission seems to have issues. You can delete your settings.json file (and maybe your files with .torrent extension) and a restart should fix it. I don’t know the reason yet, look out for updates on the blog.

          – GaryT

          • Jorel says:

            Hi Garyt,
            I tried deleting settings.json file, all the torrent files, and even formatted the HDD and reflashed the firmware. Doesn’t work 🙁

  • nuwonda says:

    Nice to see an update! Got to check it out, my trusted LS-XHLEE1 has been running on 1.69chris merrily thus far. since I am running Openelec on a RBerry 2 this update would only be for a newer transmission though in my case. have been updating pip/flexget etc via ssh ever since. thanks for the release!

    • garyt says:

      Hi nuwonda,

      it’s good you mention it, I didn’t update pip in this release… (I forgot.) FlexGet is the newest.

      People started reportin transmission issues (it’s a freshly built transmission because of changes in the firmware), give it a few days and check for blog posts so I can fix it.

      – GaryT

  • Nicholas says:

    Great work in extending the life of my LS-WXL. Thank you!

  • Jorge says:

    Hi Gary,

    First of all congratulation for your great work!!! Thanks for this update, I used to had my linkstation properly working with the Chris version I updated to the new version and Tramission is not working anymore I’m not to tech savy , I tried to look for the download link for “Chris” but I could not find it, is there a way you can post the link for this?? To go back in the meantime you and the hackers fix this new version?

    • garyt says:

      Hi Jorge,

      The Chris version is at http://bit.ly/buffaloplexchris but I’d rather wait a bit more if I were you. I’m just about to post a “hackers-only” fix that I’d like them to test. (I still can’t reproduce the issue.) If that doesn’t work, I’ll have to release a v1.69 version of the firmware with the newest Plex client. (The v1.69 firmware had the right libraries.)

      – GaryT