Decisions, decisions…

By 2015-01-27 Buffalo + Plex

The new version of the firmware is going well, it’s time to look at what’s next. As a new year’s resolution I promised my family that I’m doing something creative with my free time that also benefits them. The Buffalo + Plex project will benefit them as soon as they can start using the Linkstation that I’ve been hogging for testing in the past few months. Also, their main goal was to get Plex on it, which I’ve done. This completes the main goal of the project and I’ve also implemented a lot of features I didn’t even think would be needed.

What will the Buffalo + Plex project provide in the future?

I will update the components I’ve implemented with newer versions (Plex, Transmission, FlexGet) as these usually have new cool features that’s worth having. The auto-update feature will also be used to distribute these changes. (If you have upgraded to the Chris version.) Obviously, I’ll try to fix bugs as they surface, however I might not be able to fix the bugs that Buffalo introduces by not updating the firmware with newer versions of applications. (OpenSSL avoided the heartbleed bug by being too old…)

I have uploaded the development/build framework I have created over the months, to GitHub. You can reach it here. If you want to continue implementing things in the same manner, clone the repository and go ahead. (The README.md provides the necessary information to set it up.) If you want to understand how I implemented some features, look up the script and feel free to reuse that knowledge.

What will the Buffalo + Plex project NOT provide in the future?

I will not implement new features in the foreseeable future. I’m looking into a new project that I want to take on and that will require most of my free time. (I’ll introduce that in due time.)

I kept a short list of features that were requested, I’m going to try to list them here together with some guidance on how to implement them. With SSH enabled in the production version of the firmware, you can hack away at your NAS as much as you want.

BE ADVISED, I will NOT be able to provide regular support for hacking your NAS; in the black world of SSH, you’re on your own. (Except there’s a huge community that can help at NAS-Central.) I have put together a FAQ for the most common questions. (Don’t forget to clear your browser cache after upgrade. :))

Features NOT implemented

Torrentexpander

Torrentexpander is neat little script that unzips or unrars your torrents after it has finished downloading. It has been requested by festol, but I never got around to implement it, most probably because as a script, eventually you’ll have to open it and configure it for your liking. Putting it on the admin interface didn’t really help with it, just like I realized the same with FlexGet. (I already implemented that, though.)

To implement it, download the script and unzip it. Set up optware if you want unrar to work and copy the script to somewhere under /opt. (So you keep it after flash upgrades.) Run the script and answer its questions.

Deluge

Deluge is a torrent client, much like Transmission. It might or might not have better features than Transmission but for sure it didn’t have any ARM ports. Even with older ARM ports for Transmission it was hard to compile things from scratch for the latest version, so I didn’t even start with the Deluge source.

To implement it, try this link. The only advantage I see is the socks5 proxy. You can also try the setup-compiler script from the GitHub source of Buffalo + Plex to set up a development environment for yourself.

FlexGet web interface

I tried to set up the FlexGet web interface but it’s too experimental at this point and the “-c” option I use to redirect the config file didn’t seem to work with it. (Also you can edit your config file in your favorite editor through the network share.)

To implement it, enable SSH, log in and run /usr/local/flexget/bin/pip install flexget[webui]

New versions of core components (Twonky, PHP, MySQL, Lighttpd, PHPMyAdmin)

I was thinking for a while to start upgrading some of the new core components of the firmware and objecttothis was also asking for it, but eventually it boils down to this: at one point you have to face the upgrade of the GLIBC library and together with that you have to upgrade the kernel. If you upgrade the kernel, you need to do a complete check of each and every setting of the firmware to make sure you didn’t break anything. Since I only have an LS-WVL, I wouldn’t possibly be able to test some of the firmware’s features, so I won’t do it.

If I want to refrain from upgrading GLIBC and the kernel, I have limited options for upgrade. I can use the optware packages to upgrade MySQL, PHP, etc, but those are also a few versions behind and they are wired to look at /opt for their libraries which I also didn’t want to use. I wanted /opt to be available for anyone to implement their own changes.

I could check the OPKG project which has newer versions of these items, but I’m afraid eventually I’d run into the GLIBC misery.

I could have tried rebuilding these packages to run from elsewhere but I didn’t see the benefit. I am a security freak but to secure this device, it would take a lot more than to rebuild a few packages.

If you want a newer MySQL, PHP, or lighttpd version, install optware and use ipkg to install the latest there is or check if you can run the OpenWRT version of OPKG. Or say goodbye to the web interface and install Debian ARM on the device. That has some better features, newer GLIBC and new kernel.

Older/different versions of Transmission

I will only support the latest version of Transmission with the latest version of the previous branch. (2.84 and 2.77 at this time.) Festol was asking for transmission 2.03 for a a specific need, now with SSH you can do it for yourself. Optware has 2.03 in its repository, it shouldn’t be hard to upgrade. (Be aware that you need an older version of libevent as oxygen8 mentioned in a thread.)

CrashPlan

One of my dreams was to have CrashPlan on the Linkstation so I have an archive in the cloud. The first issue is that you have to install java which is not impossible, but not very easy either. Then you have to face that CrashPlan has a requirement of 512Mb of RAM to run, while the Linkstation (LS-WVL) only has 256Mb. So I didn’t even try. If you’re interested head over here and read about it.

 

24 Comments

  • nuwonda says:

    for what it’s worth 169-chris suits my needs more than enough, so I would never use any of what you mentioned above but that’s just me. I dont even use plex or any media server on it, just storage really and transmission/flexget. I use a rasp pi with openelec for media needs. Which is why I wanted to try NFS on the LS-LHX but I could not get it to work and all examples I found didn’t really lead anywhere. Maybe you could do a little FAQ on how to set NFS up once enabled?

    Updating to newer versions of flexget/transmission if possible is about the only thing I would be keen on being able to do myself, i.e. probably already possible via ssh but when I tried to update flexget it killed the daemon and I could not get it back up and now I have two PIDs in the status file while only one applies to the config.yml…

    Maybe an option on the web interface to update the components (flexget / transmission) without having to flash the firmware. would also save you the hassle of pushing firmware updates out and rather use pip or easy_install in the background for a single component “on demand” update so to speak. Don’t know if that is actually doable via webinterface though….

    BTW I tried posting to the previous entry but the website returned an error each time.
    Cheers!

    • garyt says:

      Hi nuwonda,

      There were some issues with the hosting company earlier, hopefully it’s fixed now. It’s ok to post to new entries, more people will likely read it.

      If there is a new version of FlexGet, you can update it through SSH with the command “/etc/init.d/transmission.sh updateflexget”. I didn’t put it on the web interface because if something breaks during the upgrade, you won’t know and less-tech savvy users can’t really fix it for themselves. (I don’t control what gets into the new version of FlexGet.) Restart your NAS so the PIDs get back to normal, stop FlexGet on the web interface, then do the upgrade and start FlexGet again. During development 1.2.248 was the latest version of Flexget but then 1.2.249 came out and I was able to upgrade without a hitch before creating the production package.
      As for Transmission, since I had to compile it from scratch and then make sure it works properly, I don’t think I’ll set up any updates through SSH. The source of the whole project is on GitHub already, when the new files get uploaded you can download them manually and unzip them so you don’t have to do firmware upgrades.

      I’m not planning to do firmware upgrades with each new version of FlexGet, because it’s quite often updated. New Transmission and Plex versions are more likely as they were the main points for most of the users. There is a fix on the way for the transmissionrpc package though, that will be part of the next version.

      If you want to do totally different packages, you can always install optware and do it yourself, you might need to rewrite /etc/init.d/transmission.sh to point to your optware files and that’s it.

      As for NFS, it was implemented because of a request, but just like SSH, you’re mostly on your own using it. You need to know NFS properly before you start using it on the Linkstation. The only test I did with it was a basic setup like this:
      Enable NFS, set the network address. Network address is the “fix” part of your IP address. For example if your IP is 192.168.100.100 and your netmask is 255.255.255.0 (or “24” in short), your network address is “192.168.100.0”. The first three numbers are the same, the last one is zeroed out. “Subnet mask” is the netmask.

      After you set this up, you have to add NFS folders for sharing. Just click the folders in the dropdown table that you want to share.

      On the client side you have to mount the NFS shared folders. In linux you can use mount -t nfs -o nfsvers=3 192.168.100.100:/mnt/array1/myshare /mnt. This will mount your “myshare” into /mnt. In other operating systems you have to find out how to mount NFSv3 shares.

      – GaryT

      • nuwonda says:

        Fair points regarding updating! Re NFS I was silly… I don’t need to mount anything as it turns out nfs://192.168.1.48/mnt/disk1/share just works from OSX or Openelec (.48 = Linkstation)
        Browsing for “nfs://” alone just doesn’t work on it’s own as the folder is not broadcast on the network I guess.
        One thing though, it seems any USB disk connected to the Linkstation does not show up on the NFS tab and hence cannot be shared via NFS? (e.g. /mnt/usb_disk1/)

        Oh yeah and as I replied to one of your older blog entries, your form here doesn’t like copy pastes with certain keywords in it I guess (etc // path maybe?)…

        Keep up the good work! Cheers!

        • garyt says:

          The NFS on USB got me thinking. The problem with USB is that any time you attach or remove a USB disk, all the services that access them will restart. (Including SSH for some reason.) So my guess is that the original implementation didn’t consider USB disks for NFS because then all NFS connections would get dropped each time you add or remove a USB drive.

          For now, you can go into /etc/exports through SSH and modify it to your liking. Obviously if you change it on the web interface afterwards, it will get overwritten so change what you can on the web interface and then head over to /etc/exports and modify it.

          I’ll look into the comment problem (this is the standard WordPress comment window), thanks for raising it.

          • nuwonda says:

            I switched back to smb cause kodi library seems to have problems maintaining just one link for the media entries and with both smb (usbdisk) and nfs (nas disk) I ended up having all entries double… arf.

            On a second note, I updated flexget as described above. However, something seems to be amiss with the daemon. flexget.log throws an Error: Daemon already running for this config.
            Any means of getting to reload the config file does not show up in the log and seems to go nowhere. Restarting the NAS, transmission, flexget etc, didn’t fix it either.

            Maybe I need to reinitialize the daemon?

          • nuwonda says:

            hmm I think the flexget update might have reset the loglevel for the daemon, since flexget.log is still logging critical stuff but e.g. doesn’t show anything when you reload the config.yml from the webinterface, it does reload it though, just doesn’t log anything if it passes without errors.

            I tried to set the loglevel via ssh: /usr/local/flexget/bin/flexget -c /mnt/disk1/share/transmission/_config/_flexget/config.yml execute -L verbose daemon reload

            but it doesn’t change the loglevel for the flexget.log, rather just on screen in the terminal.
            No biggie, just wondering how to set it so the daemon writes info stuff to the .log file again.

  • massimo says:

    your work is great !
    next release can you integrate some features like:
    – eXtplorer, php browser
    – aria2 with webgui
    – ddclient WEB INTERFACE

    thanks.

    • garyt says:

      Thanks Massimo. Unfortunately I will not have the time to implement new features, I will stick to upgrading the current feature set for now. If you want to try it yourself, go over to GitHub for the sources I put together (https://github.com/GaryTomato/buffaloplex) and knock yourself out.

      – GaryT

  • bartman says:

    Is anyone doing any hacking on the new Linkstation 400 series nas? I can find next to nothing about my 421e….

    • garyt says:

      The LS400 series with it’s newer processor has less resources online. A lot of the older NASs use packages from the Optware repository which is not available for the newer firmwares. Optware makes life relatively easy. Maybe with the RaspberryPI there will be easier way to get things done, if I remember correctly they have a very similar processor to the LS400.

  • Will says:

    Is this firmware compatible for Buffalo Terastation TS/XEL682???? Purchased NAS in hopes of using plex but unfortunately after storing all files on this unit the Plex site only offers a limited amount of devices. Im aware that this firmware has been developed for linkstation but not sure it will suit my needs.

    • garyt says:

      Hi Will,

      The bad news is that this custom firmware is absolutely 100% NOT compatible with your Terastation. Someone tried it earlier and broke the Terastation, so DO NOT ATTEMPT.

      The better news is that if your NAS has the Marvell 88E6281 CPU as I suspect (Terastation ES on the BuffaloTech webpage), then I think Plex is compatible with that processor. You just need someone with that NAS to hack the firmware and add Plex onto it.

      Unfortunately I didn’t get enough donations to buy another NAS device so you’ll have to look around on the buffalo.nas-central.org website, maybe someone has already done it.

  • Shane says:

    Any chance this is compatable with a TS-8VHL system?

    • garyt says:

      No, Terastations get bricked with this NAS. They need a different firmware.

  • Chris says:

    Thanks for your effort and I’m currently running 1.69-Chris with Plex 9.11.7 on my LS-QVL
    and also viewing it through Samsung TV Plex.
    However, Plex just upgraded the samsung app to v2.0 which requires 0.9.11.7.803-87d0708.
    Is there any way I have it upgraded?

    Thanks for your advice.

    • garyt says:

      Hi Chris,

      I wasn’t aware of the upgrade (I have an older Samsung TV). A new version of the firmware is coming soon. It would be interesting to do upgrades of the Plex app specifically too, I’ll see what I can do.

  • nuwonda says:

    I think since a few versions of flexget (1.2.28+) the reload config doesnt work anymore, maybe something in the transmission.sh needs updating but don’t know what. stopping and starting flexget from the web console works though and changes in the config.yml then get picked up.

    the reload config button or the shell command flexgetreload do no longer work it seems with newer versions of flexget.

    • garyt says:

      I’ll check it, but the web console uses the same start/stop command of the transmission.sh so it’s definitely interesting…

  • M568 says:

    Is this comparable with the LS 441D series? I used plex with freenas but my server crashed so I purchased the LS441DE-EU

    • garyt says:

      Hi M568,

      Apologies for getting back to you so late. The LS441D series use a different firmware and a newer (better) ARM processor. Unfortunately both means that this firmware is not compatible with the LS441. Read the FAQ I’d really like to get my hands on one of those.

      – GaryT

  • Francesco says:

    What about new 1.70 firmware? Any hope to get an update based on new firmware? Well.. Finger crossed..

    • garyt says:

      Sorry Francesco, I was too busy to give an update. The good news is that after skipping the 1.70 firmware, I’ve just updated everything, including the base firmware to 1.71.

      You can download the “Andimaginary” release from the project page. Here‘s a blog entry with all the changes.

      – GaryT

  • hostet says:

    [img]http://i57.tinypic.com/2qm28uc.png[/img]

    Hi,

    I have installed 1.69-3.59 Chris onto my LS-WVL/R1 and whenever I try to check for firmware update, I’m receiving this error. Also on Plex, after installing channel video etc. Youtube or CNN, and play it on my Samsung TV, I’m getting error “Check your network” It does seem like Plex or the firmware update can’t access the internet. I have check my internet access by using webac

    • garyt says:

      Hi hostet,

      The auto-upgrade feature has a glitch in the “Chris” release. You can find more information about it on my blog entry where I announce the new “Andimaginary” version which should fix the issue.
      You can download the “Andimaginary” release from the project page. Here‘s a blog entry with all the changes.

      I’m not sure if Plex on NAS supports channels at all, search around on other forums and ask if Synology users can use channels on their NAS. I’ve never used that feature but I’ll try when I get a chance. (My TV is still in a box after my move…)

      – GaryT