News aggregator

Monthly Meeting 30th May

West Yorkshire LUG News - Fri, 27/05/2016 - 17:48

This coming Monday 30th May,the wylug monthly meeting will be in The Lord Darcy at 7:30pm, roughly, as usual. Join us for computer related chit chat. I (Darren) will be bringing a sony vaio with slackware half-installed on it. Find out how lvm is supposed to work and how it works in practice. Or bring your own conundrum!

Steve Engledow (stilvoid): Eurodivision

Planet ALUG - Sat, 21/05/2016 - 15:14

I'm going to a Eurovision party tonight because I'm not the only person of impeccable taste who was away last week :)

I really don't know what it is about Eurovision that makes for such a fun evening but I've had a fantastic Eurovision party every year since I was at uni.

For the next 5 weeks, I'm at home alone as my wife and child are staying with family in Turkey. In order to make sure I won't be bored, I appear to have overfilled my calendar and now I find myself worrying I won't have a moment to myself. Ah well, busy is better than leaving myself open to the temptation of sitting in front of the telly for evenings on end.

I've ordered a Raspberry Pi 3 with the intention of setting it up as a retro gaming machine. I want something that can live permanently attached to my telly so that I can just pick up a controller and have a 10 minute blast on Sonic or Mario at the drop of a hat. I tried doing this before with my original Pi but it was just too slow.

In other news, I posted this on Facebook a while ago and decided it might as well live here too:

I'll be voting that we stay in thanks very much. I know the EU is far from perfect but I hate the idea of slumping backward into a world of tribes. Hating the other guy because he’s on the other side of a fence or believes in a particular magical sky man is ridiculous and childish and exactly the kind of thing we in the west deride and see as the cause of conflicts in the east.

I’m proud of my country. And like any prized possession, I want to show it off to everyone. I want free movement so that I can visit (and maybe one day live and work in) some of the wonderful places that other people are proud of.

I'm married to a foreigner; I frequently meet, work with, and have many friends who are foreign; I love travelling and being the foreigner. I’d love to be in a world where this post doesn’t make any sense because “foreign” and “country” don’t mean anything any more. It’s one planet, guys.

Try this one weird trick to help you realise why I think your ideas about borders are daft: You want tighter border control in the UK... Why the UK? Why not Great Britain? Make the Irish need visas to get in. Why not individual countries? Who wouldn’t enjoy a nice driving break while you queue for passport control at the Welsh border? In fact, why stop there; we could do this regionally! The great wall of East Anglia? County? District? City? Neighbourhood? Street? Why do you draw the line where you draw it?

If you must have a border, draw it around the planet for now. I wouldn’t mind working as a passport officer aboard the ISS.

Be excellent to each other and party on dudes.

Categories: LUG Community Blogs

Steve Kemp: Accidental data-store .. is go!

Planet HantsLUG - Thu, 19/05/2016 - 19:38

A couple of days ago I wrote::

The code is perl-based, because Perl is good, and available here on github:

..

TODO: Rewrite the thing in #golang to be cool.

I might not be cool, but I did indeed rewrite it in golang. It was quite simple, and a simple benchmark of uploading two million files, balanced across 4 nodes worked perfectly.

https://github.com/skx/sos/

Categories: LUG Community Blogs

Jonathan McDowell: First steps with the ATtiny45

Planet ALUG - Wed, 18/05/2016 - 22:25

These days the phrase “embedded” usually means no console (except, if you’re lucky, console on a UART for debugging) and probably busybox for as much of userspace as you can get away with. You possibly have package management from OpenEmbedded or similar, though it might just be a horrible kludged together rootfs if someone hates you. Either way it’s rare for it not to involve some sort of hardware and OS much more advanced than the 8 bit machines I started out programming on.

That is, unless you’re playing with Arduinos or other similar hardware. I’m currently waiting on some ESP8266 dev boards to arrive, but even they’re quite advanced, with wifi and a basic OS framework provided. A long time ago I meant to get around to playing with PICs but never managed to do so. What I realised recently was that I have a ready made USB relay board that is powered by an ATtiny45. First step was to figure out if there were suitable programming pins available, which turned out to be all brought out conveniently to the edge of the board. Next I got out my trusty Bus Pirate, installed avrdude and lo and behold:

$ avrdude -p attiny45 -c buspirate -P /dev/ttyUSB0 Attempting to initiate BusPirate binary mode... avrdude: Paged flash write enabled. avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude: Device signature = 0x1e9206 (probably t45) avrdude: safemode: Fuses OK (E:FF, H:DD, L:E1) avrdude done. Thank you.

Perfect. I then read the existing flash image off the device, disassembled it, worked out it was based on V-USB and then proceeded to work out that the only interesting extra bit was that the relay was hanging off pin 3 on IO port B. Which led to me knocking up what I thought should be a functionally equivalent version of the firmware, available locally or on GitHub. It’s worked with my basic testing so far and has confirmed to me I understand how the board is set up, meaning I can start to think about what else I could do with it…

Categories: LUG Community Blogs

Steve Kemp: Accidental data-store ..

Planet HantsLUG - Wed, 18/05/2016 - 19:49

A few months back I was looking over a lot of different object-storage systems, giving them mini-reviews, and trying them out in turn.

While many were overly complex, some were simple. Simplicity is always appealing, providing it works.

My review of camlistore was generally positive, because I like the design. Unfortunately it also highlighted a lack of documentation about how to use it to scale, replicate, and rebalance.

How hard could it be to write something similar, but also paying attention to keep it as simple as possible? Well perhaps it was too easy.

Blob-Storage

First of all we write a blob-storage system. We allow three operations to be carried out:

  • Retrieve a chunk of data, given an ID.
  • Store the given chunk of data, with the specified ID.
  • Return a list of all known IDs.

 

API Server

We write a second server that consumers actually use, though it is implemented in terms of the blob-storage server listed previously.

The public API is trivial:

  • Upload a new file, returning the ID which it was stored under.
  • Retrieve a previous upload, by ID.

 

Replication Support

The previous two services are sufficient to write an object storage system, but they don't necessarily provide replication. You could add immediate replication; an upload of a file could involve writing that data to N blob-servers, but in a perfect world servers don't crash, so why not replicate in the background? You save time if you only save uploaded-content to one blob-server.

Replication can be implemented purely in terms of the blob-servers:

  • For each blob server, get the list of objects stored on it.
  • Look for that object on each of the other servers. If it is found on N of them we're good.
  • If there are fewer copies than we like, then download the data, and upload to another server.
  • Repeat until each object is stored on sufficient number of blob-servers.

 

My code is reliable, the implementation is almost painfully simple, and the only difference in my design is that rather than having an API-server which allows both "uploads" and "downloads" I split it into two - that means you can leave your "download" server open to the world, so that it can be useful, and your upload-server can be firewalled to only allow a few hosts to access it.

The code is perl-based, because Perl is good, and available here on github:

TODO: Rewrite the thing in #golang to be cool.

Categories: LUG Community Blogs

Debian Bits: Imagination accelerates Debian development for 64-bit MIPS CPUs

Planet HantsLUG - Wed, 18/05/2016 - 08:30

Imagination Technologies recently donated several high-performance SDNA-7130 appliances to the Debian Project for the development and maintenance of the MIPS ports.

The SDNA-7130 (Software Defined Network Appliance) platforms are developed by Rhino Labs, a leading provider of high-performance data security, networking, and data infrastructure solutions.

With these new devices, the Debian project will have access to a wide range of 32- and 64-bit MIPS-based platforms.

Debian MIPS ports are also possible thanks to donations from the aql hosting service provider, the Eaton remote controlled ePDU, and many other individual members of the Debian community.

The Debian project would like to thank Imagination, Rhino Labs and aql for this coordinated donation.

More details about GNU/Linux for MIPS CPUs can be found in the related press release at Imagination and their community site about MIPS.

Categories: LUG Community Blogs

Debian Bits: New Debian Developers and Maintainers (March and April 2016)

Planet HantsLUG - Mon, 16/05/2016 - 23:10

The following contributors got their Debian Developer accounts in the last two months:

  • Sven Bartscher (kritzefitz)
  • Harlan Lieberman-Berg (hlieberman)

Congratulations!

Categories: LUG Community Blogs

Steve Engledow (stilvoid): Today's discoveries

Planet ALUG - Sun, 15/05/2016 - 23:47
  1. Dorock have opened a new bar in Kadıköy and it's good :)

  2. A home win for Beṣiktaṣ means a crazy street party with fireworks, marching, and a lot of shouting.

    Uber thankfully provided us a taxi so we didn't have to walk through it all with our sleeping 4 year old.

  3. When all of your podcasts are on a server somewhere and you want to copy them to your mp3 player but all you have to hand is a Chromebook, you're in for some fun.

    Really. There's not enough internal storage to download it all and then copy over. There's no scp client. No command line from which to cd to the mp3 player and wget everything.

  4. rclone is badical!

    Really! rclone config holds your hand through setting it up and then it was a simple rclone sync ./podcasts google:/podcasts to get my podcasts folder copied into Google Drive. Once that was done, I could use the file manager to copy from Drive over to the mp3 player. Simples. Ish.

  5. Autocorrect helpfully invented my new catchphrase: Weird up!

Categories: LUG Community Blogs

Debian Bits: What does it mean that ZFS is included in Debian?

Planet HantsLUG - Sun, 15/05/2016 - 21:55

Petter Reinholdtsen recently blogged about ZFS availability in Debian. Many people have worked hard on getting ZFS support available in Debian and we would like to thank everyone involved in getting to this point and explain what ZFS in Debian means.

The landing of ZFS in the Debian archive was blocked for years due to licensing problems. Finally, the inclusion of ZFS was announced slightly more than a year ago, on April 2015 by the DPL at the time, Lucas Nussbaum who wrote "We received legal advice from Software Freedom Law Center about the inclusion of libdvdcss and ZFS in Debian, which should unblock the situation in both cases and enable us to ship them in Debian soon.". In January this year, the following DPL, Neil McGovern blogged with a lot of more details about the legal situation behind this and summarized it as "TLDR: It’s going in contrib, as a source only dkms module."

ZFS is not available exactly in Debian, since Debian is only what's included in the "main" section archive. What people really meant here is that ZFS code is now in included in "contrib" and it's available for users using DKMS.

Many people also mixed this with Ubuntu now including ZFS. However, Debian and Ubuntu are not doing the same, Ubuntu is shipping directly pre-built kernel modules, something that is considered to be a GPL violation. As the Software Freedom Conservancy wrote "while licensed under an acceptable license for Debian's Free Software Guidelines, also has a default use that can cause licensing problems for downstream Debian users".

Categories: LUG Community Blogs

Steve Engledow (stilvoid): s3cmd ls

Planet ALUG - Fri, 13/05/2016 - 22:22

I'm currently having a very enjoyable holiday with my family in Bodrum. We're staying in an all-inclusive hotel by the beach. This is the first time either of us have ever had such a holiday; we usually like to go rushing around seeing as many sights as we can cram in to a few days before moving on to another place. It's the final night of our time here and I feel like I'm just settling in to it. Next time, we'll do two weeks. (By way of compromise, we had decided to do a week in Bodrum followed by a week in Istanbul/Adapazarı.)

The good

In what feels like a very short week of doing very little, here are some of my highlights:

Bodrum Castle

The castle doesn't look much from the outside and it advertises itself as "Museum of Underwater Archaeology" but once you get through the doors you realise it's a magnificent ruined castle with beautiful gardens and a smattering of museum about the place. We barely stopped to look at the museum pieces (mostly shipwrecks and amphora dredged up from the Aegean) and it took us a good couple of hours to walk around the castle. Do not make the mistake we made in a parallel universe by deciding we didn't fancy a museum that day!

Boat tour

There are a lot of places offering boat tours and I can only vouch for the one we took: Gencel Water Sports. The boat tour takes a full day (ours was 10:30 to 16:30) and stops off at a number of interesting locations around Bodrum. The highlights for me were Aquarium Bay: snorkeling with thousands of fish around; and the place that I can't recall the name of where I ticked off an ambition (I don't know why): to swim to shore. OK it was only 50 metres or so but it was in proper sea and I'm hardly an olympic swimmer ;)

In all, I did a lot of swimming that day.

Tent bar, Gümbet

This bar is hardly a tourist hot spot but it was a short walk from the hotel and we had a really good evening sitting and chatting with the barman (whose name is either Ricardo or Bora depending on which language you ask him in).

Spending a day doing not very much

This really was a revelation! One such day went like this: wake, breakfast, steam room, swim, turkish bath, beer by the pool, lunch, swimming, lazing around by the pool with a beer, swimming, lazing, beer, swimming, lazing, beer, beer and lazing, dinner, rakı, sleep.

As I said, neither of us had ever had a holiday that didn't involve loads of walking and sightseeing. I'm amazed at how much I enjoyed just relaxing.

The bad

On the somewhat less positive side I lost a filling and the hole is really annoying.

The unrealised

Next week: Istanbul, second only to Bruges in my favourite places list :)

Categories: LUG Community Blogs

A Probably Inaccurate History Of LibVirt, KVM and QEMU

Planet SurreyLUG - Mon, 09/05/2016 - 18:38

A while ago I was explaining the difference between QEMU, KVM and LibVirt, and I ended up by emailing this nonsense. I don’t claim it’s accurate, it certainly isn’t. It’s probably not even funny. Enjoy :).

In the beginning there was QEMU, but it was slow and the people grieved.

Then KVM was forked from QEMU with a kernel module to use the CPU’s virtualisation features to work much faster and there was much rejoicing. Linus also rejoiced and welcomed KVM’s kernel module into the mainline kernel.

But the people did not rejoice, as they were mostly using Sun’s VirtualBox (also forked from QEMU).

QEMU awoke from its slumber and joined with KVM and their union caused almost no rejoicing, in fact I am not convinced anyone really noticed.

But the System Administrators were still dissatisfied and complained that there should be standardisation of commands across different hypervisors. And thus LibVirt was born and the System Administrators rejoiced.

Yet still the people used VirtualBox. But lo! The evil Oracle slew the Sun and VirtualBox moved into darkness, and there was much gnashing of teeth and wearing of sackcloth; although this was generally considered a step forwards from the t-shirts that they usually wore.

But still the people could not use QEMU-KVM, without issuing complex incantations, and so Virt-Manager was born and finally the people rejoiced, with much clicking of mice.

The End.

Categories: LUG Community Blogs

Andy Smith: Using a TOTP app for multi-factor SSH auth

Planet HantsLUG - Fri, 06/05/2016 - 17:34

I’ve been playing around with enabling multi-factor authentication (MFA) on web services and went with TOTP. It’s pretty simple to implement in Perl, and there are plenty of apps for it including Google Authenticator, 1Password and others.

I also wanted to use the same multi-factor auth for SSH logins. Happily, from Debian jessie onwards libpam-google-authenticator is packaged. To enable it for SSH you would just add the following:

auth required pam_google_authenticator.so

to /etc/pam.d/sshd (put it just after @include common-auth).

and ensure that:

ChallengeResponseAuthentication yes

is in /etc/ssh/sshd_config.

Not all my users will have MFA enabled though, so to skip prompting for these I use:

auth required pam_google_authenticator.so nullok

Finally, I only wanted users in a particular Unix group to be prompted for an MFA token so (assuming that group was totp) that would be:

auth [success=1 default=ignore] pam_succeed_if.so quiet user notingroup totp auth required pam_google_authenticator.so nullok

If the pam_succeed_if conditions are met then the next line is skipped, so that causes pam_google_authenticator to be skipped for users not in the group totp.

Each user will require a TOTP secret key generating and storing. If you’re only setting this up for SSH then you can use the google-authenticator binary from the libpam-google-authenticator package. This asks you some simple questions and then populates the file $HOME/.google_authenticator with the key and some configuration options. That looks like:

T6Z2KSDCG7CEWPD6EPA6BICBFD4KYKCSGO2JEQVII7ZJNCXECRZPJ4GJHD3CWC43FZIKQUSV5LR2LFFP " RATE_LIMIT 3 30 1462548404 " DISALLOW_REUSE 48751610 " TOTP_AUTH 11494760 25488108 33980423 43620625 84061586

The first line is the secret key; the five numbers are emergency codes that will always work (once each) if locked out.

If generating keys elsewhere then you can just populate this file yourself. If the file isn’t present then that’s when “nullok” applies; without “nullok” authentication would fail.

Note that despite the repeated mentions of “google” here, this is not a Google-specific service and no data is sent to Google. Google are the authors of the open source Google Authenticator mobile app and the libpam-google-authenticator PAM module, but (as evidenced by the Perl example) this is an open standard and client and server sides can be implemented in any language.

So that is how you can make a web service and an SSH service use the same TOTP multi-factor authentication.

Categories: LUG Community Blogs

Mick Morgan: raid performance

Planet ALUG - Mon, 02/05/2016 - 16:46

I have recently been building a new NAS box (of which, possibly, more later). In fact the build is really a rebuild because I initially built the server about three years ago in order to consolidate a bunch of services I was running on assorted separate servers into one place. That first build was a RAID 1 array of two 2 TB disks (to give me a mirrored setup with a total of 2 TB store). At the time that was sufficient to hold all my important data (backed up both to other networked devices and to standalone USB disks for safety). But I have just upgraded my main desktop machine to a nice shiny new core i7 Skylake box with 16 GB of DDR4 and a 3 TB disk. That disk is already two thirds full (my old machine had a rather full 2 TB disk). This meant that my NAS backup storage requirements exceeded the capacity of my RAID 1 setup. Adding disks wouldn’t help of course because all that would do is add mirror capability rather than capacity. So I decided to upgrade the NAS and bought a bunch of new 2 TB disks with the intention of setting up a RAID 5 array of 4 disks, thus giving a total storage capacity of 6 TB (8 TB minus 2 TB for parity). Furthermore I initially looked at using FreeNAS rather than my usual debian or ubuntu server with software RAID simply because it looked interesting and, with plugins, could probably meet most of my requirements. But I could not get the software to install properly and after three abortive attempts I gave up and decided that I didn’t really like freeBSD anyway….

So I opted to go back to mdadm on linux – at least I know that works. Better still I would be able to retain all my old setup from the old RAID 1 system without having to worry about finding plugins to handle my media streaming requirements, or owncloud installation, for example.

My previous build was on debian (which is by far my preferred server OS) but ubuntu server has recently been released in a LTS version at 16.04 and I thought it might be fun to try that instead. So I did. (For any readers who have not tried installing linux on a RAID system there are plenty of sites offering advice, but the official ubuntu pages are pretty good). During the build I hit what I initially thought was a snag because the installation seemed to get stuck at around the 83% level when it was apparently installing the linux kernel image and headers. Indeed I confess that on the first such installation I pulled the plug after about three hours of no apparent activity because I was beginning to think that there might be something wrong with my hardware (the earlier FreeNAS failures worried me). My on-line searches for assistance were initially not particularly helpful since none of the huge number of sites advising on software RAID installation bothered to mention that initial RAID 5 build (or rebuild) using large capacity disks takes a very long time because of the need to calculate the parity data. Incidentally, it is this parity data and its layout that gives RAID 5 its write performance penalty.

One useful outcome of my research about RAID 5 build times (which in my case eventually took just over 6 hours) was my discovery of the wintelguy’s site providing an on-line calculator (and much more besides) for RAID performance and capacity. There is even a very useful page allowing you to compare two separate configurations side by side – thoroughly recommended. More worrying, and thought provoking, is the reclaime.com calculator for RAID failure. That site suggests that the probability of successfully rebuilding a RAID 5 array of 4 * 2 TB disks after a failure is only 52.8%.

That is why you need to keep backups…….

Categories: LUG Community Blogs

Chris Lamb: Free software activities in April 2016

Planet ALUG - Sat, 30/04/2016 - 23:20

Here is my monthly update covering a large part of what I have been doing in the free software world (previously):

  • Added Python 3 support to django-template-tests, a tool to perform simple static analysis on Django templates. (#1)
  • Corrected my Chrome extension for the FastMail web interface to not disable the CTRL+Enter keyboard shortcut when authoring emails. (#3)
  • Corrected a subtle bug in my django-staticfiles-dotd "staticfiles" library where the Content-Length HTTP header was calculated incorrectly in the presence of Unicode characters resulting in truncated output. (#2)
  • Various fixes to django-slack, a library to easily post messages to the Slack group-messaging utility from projects using the Django web development framework:
    • Don't require an explicit backend import when using the Celery task queue backend. (#41)
    • Actually generate and send messages asynchronously when using the Celery backend. (#44)
  • Fixed an issue with my local-debian-mirror tool where the option to disable DEP-11 mirroring wasn't working. (#1)
  • Fixed an issue in django-hipchat, a library to easily post messages to the Hipchat group-messaging utility from projects using the Django web development framework where the templates were not includes when installing via PyPI. (#1)
  • Created a quick-and-dirty tool to scrape a Squarespace blog and convert it to a PDF so I can read them on my Kindle e-reader. (tree)
  • Updated django-keyerror — a library to post exceptions to the KeyError.com error tracking service — to silence an AttributeError exception in some error-reporting edge-cases. (commit)
  • Suggested an improvement to the documentation for the upcoming Twitter Bootstrap version for the deprecated .hidden and .show CSS classes. (#19789)
  • Submitted a documentation update to the Ansible sever configuration tool's ufw firewall module. (commit)
  • I also blogged about parsing Jenkins CI output to determine job success or failure.
Debian

My work in the Reproducible Builds project was covered in our weekly reports. (#48, #49, #50, #51 & #52)

Uploads
  • redis (2:3.0.7-3) — Adding, amongst some other changes, systemd LimitNOFILE support to allow a higher number of open file descriptors.
RC bugs

I filed 58 FTBFS bugs against agg, basex, c++-annotations, camera.app, cl-babel, cl-lparallel, collab-qa-tools, diagnostics, enjarify, enscript, felix-main, girara, gnome-shell-pomodoro, golang-github-spf13-viper, gst-plugins-base0.10, gstreamer0.10, guessnet, htslib, ifrit, indicator-session, jackson-module-afterburner, kamera, lgogdownloader, libbde, libmlx4, libsqlite3-0:, libykneomgr, nifti2dicom, node-starttls, nuitka, oath-toolkit, pdf-presenter-console, perlbal, poker-engine, pycountry, pysycache, python-oslo.privsep, python-shade, r-cran-tgp, raincat, rapache, resteasy, ruby-crb-blast, ruby-email-reply-parser, ruby-gollum-lib, samtools, sipwitch, sooperlooper, tomcat-maven-plugin, transmission, trivial-features, tuskar-ui, twinkle, twisted-web2, uclmmbase, workrave, xlog & yafc.

FTP Team

As a Debian FTP assistant I ACCEPTed 135 packages: aptitude, asm, beagle, blends, btrfs-progs, camitk, cegui-mk2, cmor-tables, containerd, debian-science, debops, debops-playbooks, designate-dashboard, efitools, facedetect, flask-testing, fstl, ganeti-os-noop, gnupg, golang-fsnotify, golang-github-appc-goaci, golang-github-benbjohnson-tmpl, golang-github-dchest-safefile, golang-github-docker-go, golang-github-dylanmei-winrmtest, golang-github-hawkular-hawkular-client-go, golang-github-hlandau-degoutils, golang-github-hpcloud-tail, golang-github-klauspost-pgzip, golang-github-kyokomi-emoji, golang-github-masterminds-semver-dev, golang-github-masterminds-vcs-dev, golang-github-masterzen-xmlpath, golang-github-mitchellh-ioprogress, golang-github-smartystreets-assertions, golang-gopkg-hlandau-configurable.v1, golang-gopkg-hlandau-easyconfig.v1, golang-gopkg-hlandau-service.v2, golang-objx, golang-pty, golang-text, gpaste, gradle-plugin-protobuf, grip, haskell-brick, haskell-hledger-ui, haskell-lambdabot-haskell-plugins, haskell-text-zipper, haskell-werewolf, hkgerman, howdoi, jupyter-client, jupyter-core, letsencrypt.sh, libbpp-phyl, libbpp-raa, libbpp-seq, libbpp-seq-omics, libcbor-xs-perl, libdancer-plugin-email-perl, libdata-page-pageset-perl, libevt, libevtx, libgit-version-compare-perl, libgovirt, libmsiecf, libnet-ldap-server-test-perl, libpgobject-type-datetime-perl, libpgobject-type-json-perl, libpng1.6, librest-client-perl, libsecp256k1, libsmali-java, libtemplates-parser, libtest-requires-git-perl, libtext-xslate-perl, linux, linux-signed, mandelbulber2, netlib-java, nginx, node-rc, node-utml, nvidia-cuda-toolkit, openfst, openjdk-9, openssl, php-cache-integration-tests, pulseaudio, pyfr, pygccxml, pytest-runner, python-adventure, python-arrayfire, python-django-feincms, python-fastimport, python-fitsio, python-imagesize, python-lib389, python-libtrace, python-neovim-gui, python3-proselint, pythonpy, pyzo, r-cran-ca, r-cran-fitbitscraper, r-cran-goftest, r-cran-rnexml, r-cran-rprotobuf, rrdtool, ruby-proxifier, ruby-seamless-database-pool, ruby-syslog-logger, rustc, s5, sahara-dashboard, salt-formula-ceilometer, salt-formula-cinder, salt-formula-glance, salt-formula-heat, salt-formula-horizon, salt-formula-keystone, salt-formula-neutron, salt-formula-nova, seer, simplejson, smrtanalysis, tiles-autotag, tqdm, tran, trove-dashboard, vim, vulkan, xapian-bindings & xapian-core.

Categories: LUG Community Blogs

Jonathan McDowell: Notes on Kodi + IR remotes

Planet ALUG - Tue, 26/04/2016 - 21:32

This post is largely to remind myself of the details next time I hit something similar; I found bits of relevant information all over the place, but not in one single location.

I love Kodi. These days the Debian packages give me a nice out of the box experience that is easy to use. The problem comes in dealing with remote controls and making best use of the available buttons. In particular I want to upgrade the VDR setup my parents have to a more modern machine that’s capable of running Kodi. In this instance an AMD E350 nettop, which isn’t recent but does have sufficient hardware acceleration of video decoding to do the job. Plus it has a built in fintek CIR setup.

First step was finding a decent remote. The fintek is a proper IR receiver supported by the in-kernel decoding options, so I had a lot of flexibility. As it happened I ended up with a surplus to requirements Virgin V Box HD remote (URC174000-04R01). This has the advantage of looking exactly like a STB remote, because it is one.

Pointed it at the box, saw that the fintek_cir module was already installed and fired up irrecord. Failed to get it to actually record properly. Googled lots. Found ir-keytable. Fired up ir-keytable -t and managed to get sensible output with the RC-5 decoder. Used irrecord -l to get a list of valid button names and proceed to construct a vboxhd file which I dropped in /etc/rc_keymaps/. I then added a

fintek-cir * vboxhd

line to /etc/rc_maps.cfg to force my new keymap to be loaded on boot.

That got my remote working, but then came the issue of dealing with the fact that some keys worked fine in Kodi and others didn’t. This seems to be an issue with scancodes above 0xff. I could have remapped the remote not to use any of these, but instead I went down the inputlirc approach (which is already in use on the existing VDR box).

For this I needed a stable device file to point it at; the /dev/input/eventN file wasn’t stable and as a platform device it didn’t end up with a useful entry in /dev/input/by-id. A ‘quick’

udevadm info -a -p $(udevadm info -q path -n /dev/input/eventN)

provided me with the PNP id (FIT0002) allowing me to create /etc/udev/rules.d/70-remote-control.rules containing

KERNEL=="event*",ATTRS{id}=="FIT0002",SYMLINK="input/remote"

Bingo, a /dev/input/remote symlink. /etc/defaults/inputlirc ended up containing:

EVENTS="/dev/input/remote" OPTIONS="-g -m 0"

The options tell it to grab the device for its own exclusive use, and to take all scancodes rather than letting the keyboard ones through to the normal keyboard layer. I didn’t want anything other than things specifically configured to use the remote to get the key presses.

At this point Kodi refused to actually do anything with the key presses. Looking at ~kodi/.kodi/temp/kodi.log I could see them getting seen, but not understood. Further searching led me to construct an Lircmap.xml - in particular the piece I needed was the <remote device="/dev/input/remote"> bit. The existing /usr/share/kodi/system/Lircmap.xml provided a good starting point for what I wanted and I dropped my generated file in ~kodi/.kodi/userdata/.

(Sadly it turns out I got lucky with the remote; it seems to be using the RC-5x variant which was broken in 3.17; works fine with the 3.16 kernel in Debian 8 (jessie) but nothing later. I’ve narrowed down the offending commit and raised #117221.)

Helpful pages included:

Categories: LUG Community Blogs

Debian Bits: Debian welcomes its 2016 summer interns

Planet HantsLUG - Sun, 24/04/2016 - 20:00

We're excited to announce that Debian has selected 29 interns to work with us this summer: 4 in Outreachy, and 25 in the Google Summer of Code.

Here is the list of projects and the interns who will work on them:

Android SDK tools in Debian:

APT - dpkg communications rework:

Continuous Integration for Debian-Med packages:

Extending the Debian Developer Horizon:

Improving and extending AppRecommender:

Improving the debsources frontend:

Improving voice, video and chat communication with Free Software:

MIPS and MIPSEL ports improvements:

Reproducible Builds for Debian and Free Software:

Support for KLEE in Debile:

The Google Summer of Code and Outreachy programs are possible in Debian thanks to the effort of Debian developers and contributors that dedicate part of their free time to mentor students and outreach tasks.

Join us and help extend Debian! You can follow the students weekly reports on the debian-outreach mailing-list, chat with us on our IRC channel or on each project's team mailing lists.

Congratulations to all of them!

Categories: LUG Community Blogs

Jonathan McDowell: Going to DebConf 16

Planet ALUG - Mon, 18/04/2016 - 14:12

Whoop! Looking forward to it already (though will probably spend it feeling I should be finishing my dissertation).

Outbound:

2016-07-01 15:20 DUB -> 16:45 LHR BA0837 2016-07-01 21:35 LHR -> 10:00 CPT BA0059

Inbound:

2016-07-10 19:20 CPT -> 06:15 LHR BA0058 2016-07-11 09:20 LHR -> 10:45 DUB BA0828

(image stolen from Gunnar)

Categories: LUG Community Blogs

Jonathan McDowell: Going to DebConf 16

Planet ALUG - Mon, 18/04/2016 - 14:12

Whoop! Looking forward to it already (though will probably spend it feeling I should be finishing my dissertation).

Outbound:

2016-07-01 15:20 DUB -> 16:45 LHR BA0837 2016-07-01 21:35 LHR -> 10:00 CPT BA0059

Inbound:

2016-07-10 19:20 CPT -> 06:15 LHR BA0058 2016-07-11 09:20 LHR -> 10:45 DUB BA0828

(image stolen from Gunnar)

Categories: LUG Community Blogs

Debian Bits: DPL elections 2016, congratulations Mehdi Dogguy!

Planet HantsLUG - Sun, 17/04/2016 - 17:40

The Debian Project Leader elections finished yesterday and the winner is Mehdi Dogguy! Of a total of 1023 developers, 282 developers voted using the Condorcet method.

More information about the result is available in the Debian Project Leader Elections 2016 page.

The new term for the project leader starts today April 17th and expire on April 17th 2017.

Categories: LUG Community Blogs

Bring-A-Box, Saturday 11 June 2016, All Saints, Mitcham

Surrey LUG - Fri, 15/04/2016 - 19:54
Start: 2016-06-11 12:00 End: 2016-06-11 12:00

We have regular sessions on the second Saturday of each month. Bring a 'box', bring a notebook, bring anything that might run Linux, or just bring yourself and enjoy socialising/learning/teaching or simply chilling out!

This month's meeting is at the All Saints Centre, Mitcham, Surrey.  CR4 4JN

New members are very welcome. We're not a cliquey bunch, so you won't feel out of place! Usually between 15 and 30 people come along.

Categories: LUG Community Blogs
Syndicate content