Planet Linux Australia

Syndicate content
Planet Linux Australia - http://planet.linux.org.au
Updated: 55 min 45 sec ago

Sridhar Dhanapalan: Twitter posts: 2014-11-24 to 2014-11-30

Mon, 2014-12-01 01:27

Andrew McDonnell: Running FreeBSD on the carambola2

Sun, 2014-11-30 23:26

The carambola2 is a small module built around the Atheros AR9330 SOC. Manufactured by 8devices, it has 64MB RAM, 16MB flash, two Ethernet ports and a host of GPIO pins, some of which can be configured as i2c, SPI or i2s. The carambola2 is shipped with OpenWRT a Linux distribution targeted at small devices and as a replacement firmware for consumer routers.

I have previously presented on using the carambola2 at the Sysadmin Miniconference at LCA2014 (slides here, video here)

To try something different, I thought I’d take FreeBSD for a run on this board. This became an extensive learning exercise as I knew absolutely nothing about any of the *BSD distributions other than their unix heritage and that they use BSD type licenses instead of GPL for the kernel and most of the userland.

Preparation

As with any of these things, there are a bunch of perceived or actual pros/cons between OpenWRT and FreeBSD.

Some of these I only discovered during this process.

My requirements included:

  • Being able to do a complete firmware build from source, which is possible for both OpenWRT and FreeBSD
  • Easy access to LED and GPIOs
  • Run the image from a RAM filesystem

Some pros/cons of either include:

  • The build system used is actually the standard build system for FreeBSD. You could probably build OpenWRT under OpenWRT but you usually dont.
  • The build system when used for cross compiling is functional but not as elegant as OpenWRT
  • OpenWRT builds actually take significantly longer from scratch for some reason
  • FreeBSD may be regarded as more secure under some circumstances, for some definition of security. But see below…
  • FreeBSD ships with two firewalls: pf, and ipfw. This adds quite a learning curve when doing a bottom up build like this.
  • Many common packages (the BSD “ports” system) do not cross-build correctly for mips under FreeBSD
  • FreeBSD 10.x ships with llvm as the default compiler but falls back to gcc for cross-building mips. But the gcc supplied with FreeBSD is only 4.2      O_o      Apparently this is for licensing reasons. This can be worked around  but I haven’t had time to try it yet. Ramifications of this likely include weaker security.

The carambola2 and the mips platform in general is actually reasonably well supported by FreeBSD, although it is treated as a ‘beta’. As to be expected, to build a firmware for FreeBSD requires a host FreeBSD system (at least this would be the path of least resistance!)

I built a virtual machine using kvm and was able to install FreeBSD 10.0 with minimum of hassle. I was pleasantly surprised at how easy it was to get up and running to OpenBox. FreeBSD has ‘pkg’ as a binary package manager and it worked similarly enough to ‘apt-get’, or ‘yum’ that I had a build machine up in about half an hour.

I did need to install bash and vim and gedit, some things are just too hard to give up!

Build Process

There appeared to be more than one way to cross-build, including the use of qemu as a build host inside FreeBSD, but rather than chasing turtles on this occasion I went with a tool called ‘freebsd-wifi-build‘. This was actually quite straightforward and produced me a working firmware out of the box, with some caveats. The firmware includes only binaries from the FreeBSD base userland, and only a limited subset at that. Initially it also wanted to build as the root user, which was both an annoyance and a shock to discover, although I soon resolved that problem; I hope to soon have patches accepted into the project to change the default to build as user!

In general, constructing a firmware using FreeBSD is more manual than OpenWRT, as it lacks the all-encompassing configuration of packages and the packaging infrastructure provided by OpenWRT opkg. It is more  similar to the Linux buildroot or even Gentoo.

The end result is a build script that automates the process I used to customise things, this is published at https://github.com/pastcompute/carambola2-freebsd-userbuild , for use as you see fit.

To flash the firmware, I used scp to copy the image to my host machine then using minicom to connect to the board, flash via tftp.

freebsd-wifi-build produces separate kernel and filesystem images, I was able to combine them into one file to simplify flashing.

Easy Wins
  • Network worked, with caveats
  • I was able to toggle the LED using ‘/dev/led’, although overall Linux has much better access to GPIO / LED hardware
Tweaking required along the way
  • FreeBSD swaps the ethernet ports relative to OpenWRT, and also by default configured them in switched mode instead of independently routed. I resolved this by rebuilding the firmware with the latest FreeBSD kernel from -CURRENT, which made the ethernet PHY configuration configurable.
  • As part of resolving that, I by chance discovered I could built the FreeBSD-release-10.1.0 userland and the bleeding edge FreeBSD-CURRENT kernel and have them cooperate together!
  • Only some of the FreeBSD ports easily build with the default cross compiler configuration. This limits the software that can be installed (at least, if built using the ports infrastructure)
  • Defaulting to gcc-4.2 means various important security measures, such as -fstack-protector, are disabled
  • I also had to tweak the default FreeBSD kernel configuration provided for the carambola2, to turn on the FAT filesystem (for USB transfer) and to enable additional GPIO
  • FreeBSD ignores uboot environment and arguments on the ar71xx platform, I managed to patch the kernel to support that
Summary

I’ll keep using OpenWRT on most of my devices for the forseeable future. But I will have a couple of FreeBSD gadgets thrown into the mix, just so I can keep learning new things, and also because ironically FreeBSD supports another router I have, the dir-632 ( I blogged about this device previously) which is not officially supported in the mainline OpenWRT and probably wont be anytime soon, but does work in a FreeBSD fork, zrouter.

It will also be interesting to compare the performance of pf against iptables.

Potential future exploration ideas: running Debian kFreeBSD on the carambola2.

Andrew Pollock: [life] Day 303: Baking, Tumble Tastics and TuKindergarten Christmas party

Sun, 2014-11-30 21:25

I've left this post too long, and I can't remember how Zoe slept.

We did some baking in the morning, and made our first batch of Christmas mince pies. As usual, the shortbread pastry dough is going to require some tweaking to be workable enough for my liking, but I was fairly happy with the first batch.

We made a quick foray at the supermarket for more baking ingredients before it was time to leave for Tumble Tastics.

The weather was looking a bit dubious, so we walked to Tumble Tastics, and Zoe did lots of puddle jumping with her rain boots.

After lunch we made another batch of mince pies, and then headed over early to Zoe's Kindergarten Christmas party, as I'd said I'd help with set up.

The party went really well. I got roped into doing emcee duties with the local politicians for the raffle draw, before the kids performed.

The kids' performance was very cute. Zoe went home with Sarah and I stayed behind to help with the pack up. It's hard to believe Zoe only has 5 more days of Kindergarten. The year has gone by so quickly.

Ben Martin: FingerTech Mecanum meets Actobotics

Sat, 2014-11-29 10:20
Sparkfun sell some nice little omniwheels made by FingerTech Robotics. These come with a grub screw mount for a 3mm axle. While it is said around the webs that one might drill out the mount to accept up to a 6mm axle, I wanted a more flexible solution for mounting these wheels onto an Actobotics structure. It turns out that the four screw mounts (using what I think are x-40 screws) are in an extremely close location to the four screws on the Actobotics hub mount. Unfortunately it was a tad hard for me to get a hold of longer x-40 screws to attach the hub mount, so I ended up taking the wheel apart and replacing the standoffs with the Actobotics ones. The result is shown below:





The below shows the mecanum wheel taken apart. The three standoffs you see vertical in the image are the original ones from the wheel. These are about 1 inch long, so you'll be wanting some 1 inch actobotics standoffs to replace them with. When you unscrew the original standoffs then the hub mount part (centre of the red alloy), will be able to fall out and be removed. This lets you screw the Actobotics standoffs on and then on the other side use slightly longer bolts to attach the hub mount to the wheel to get the assembly shown above.





Apart from a clean 6mm hookup for the stepper motors that I plan to use, this is a handy modification allowing the 1/4 inch hub mount or other sizes to be substituted in instead. This is handy if you want to switch from 6mm to 6.35mm (1/4 inch) axles as you can easily change your mind just by changing the actobotics hub mounts.



Andrew Pollock: [life] Day 302: Playdate, swim class and a supercell storm

Fri, 2014-11-28 23:25

Zoe managed to sleep all night for a change, and instead, I had Smudge going mental on the doormat outside my room at around 2am. It's a conspiracy to not give me a solid night's sleep, I swear.

I'd organised another play date with Chloe, this time at our place. They were a bit late arriving, so we just hung out and watched some DVDs until they arrived.

The girls had a good time playing together, and I made some breadrolls for lunch and gave Kelley a bit of a one on one Thermomix demonstration.

They hung around after lunch until it was almost time for Kelley to pick up her older daughter from school, and we biked over not long after that to go to swim class.

Hampton Swim School was having their SwimSAFER week this week, and instead of normal classes, they had a bunch of different stations set up around the pool where they did different safety activities. It seemed pretty cool.

Unfortunately not long into her class, Zoe came over to me complaining of ear pain at the top of her ear. On quick inspection, it turned out that somehow a large ant had gotten trapped in her ear (fortunately it wasn't the ear canal) and had bitten her. I have no idea how it got in there.

I managed to fish it out with one of my keys, but it must have been hurting a lot, as she was very upset, and didn't want to go back to her class. I tried using some Stingose from Hampton's impressive first aid kit, but she was done and wanted to go home, so we did.

We biked back home, and I gave her some ibuprofen and a more surgical application of Stingose. Our downstairs neighbour, Deana, popped up with her baby daughter for a chat, and I think that served as a good distraction as well.

Meanwhile, a massive storm rolled in, with some very impressive thunder and lightning, and also what was possibly Zoe's first hailstorm.

It was a crazy loud storm, and Zoe handled it pretty well. She initially thought the hailstones were Mentos. I managed to catch some of storm on my phone, and I've uploaded a video to YouTube. I've never heard anything quite like an approaching hailstorm on nearby tin roofs before it hit locally.

The storm passed pretty quickly, as it was moving pretty fast, but with all the excitement dinner was a bit late.

Tridge on UAVs: Learning the ArduPilot codebase

Fri, 2014-11-28 14:56
I've put together a wiki page on learning the ArduPilot code base. Perhaps you are a ArduPilot user who is looking for something to occupy them while recovering from too much turkey this weekend? Try some of the exercises on this wiki page as a sure fire cure for the effects of overindulging: Best wishes for a great weekend from the ArduPilot team

Ian Wienand: rstdiary

Fri, 2014-11-28 13:26

I find it very useful to spend 5 minutes a day to keep a small log of what was worked on, major bugs or reviews and a general small status report. It makes rolling up into a bigger status report easier when required, or handy as a reference before you go into meetings etc.

I was happily using an etherpad page until I couldn't save any more revisions and the page got too long and started giving javascript timeouts. For a replacement I wanted a single file as input with no boilerplate to aid in back-referencing and adding entries quickly. It should be formatted to be future-proof, as well as being emacs, makefile and git friendly. Output should be web-based so I can refer to it easily and point people at it when required, but it just has to be rsynced to public_html with zero setup.

rstdiary will take a flat RST based input file and chunk it into some reasonable looking static-HTML that looks something like this. It's split by month with some minimal navigation. Copy the output directory somewhere and it is done.

It might also serve as a small example of parsing and converting RST nodes where it does the chunking; unfortunately the official documentation on that is "to be completed" and I couldn't find anything like a canonical example, so I gathered what I could from looking at the source of the transformation stuff. As the license says, the software is provided "as is" without warranty!

So if you've been thinking "I should keep a short daily journal in a flat-file and publish it to a web-server but I can't find any software to do just that" you now have one less excuse.

Linux Australia News: Declaration of election and call for nominations

Fri, 2014-11-28 08:26

Dear Linux Australia Community,

Pursuant to clause (15) of the Linux Australia constitution [1] we

hereby declare an election open and call for nominations to the Linux Australia

Council for the term January 2015 to January 2016.

All office bearer and ordinary committee member positions are open for

election.

* Nominations will open from 19 November until 17 December

* Voting will open 17 December until 13 January 2015

* Results will be announced at the AGM in Auckland at linux.conf.au on or

after 14 January

The election can be viewed here:

https://www.linux.org.au/membership/index.php?page=view-election&id=21

What do I need to do?

First of all, make sure your details are correct in MemberDB [2]

If you wish to nominate, identify the positions you wish to nominate for

and get an understanding of what they involve. Think about what you

might bring to the role and prepare a short pitch. Then, accept the

nomination you've been given by clicking the 'Accept nomination' link.

If you wish to nominate another person for a position, you may wish to

contact them first and have a chat to make sure they're happy being

nominated. Then follow the 'Nominate' link to nominate them.

Once voting is open, you will be able to vote for candidates. Results

will be announced at the AGM at linux.conf.au.

Why should I nominate?

Being a member of Linux Australia Council is a fun way to meet new

people, work on exciting projects and expand your skill base. It gives

you excellent transferable skills to help build your career, and allows

you to grow your professional network. It looks great on a CV, and is

also a chance to give back to the vibrant Linux and open source

ecosystem in Australia and globally. If you're passionate about Linux

and open source, it's a great opportunity to help drive and steer

Australia's contribution in this field.

The roles do require a time commitment - generally around 2-3 hours per

week - so please consider this with your nomination.

[1]http://www.linux.org.au/constitution

[2]http://www.linux.org.au/membership

As always, your feedback and questions are warmly welcomed. If you'd

like to have a chat with anyone on Council around what it involves,

please do make contact.

With kind regards,

Kathy

--

Kathy Reid

Secretary

Linux Australia

secretary at linux.org.au

http://linux.org.au

Linux Australia Inc

GPO Box 4788

Sydney NSW 2001

Australia

ABN 56 987 117 479

linux.conf.au News: Student's Competition

Fri, 2014-11-28 07:28

We want you to have an opportunity to demonstrate your skills, not to us - to the sponsors (your potential new employer).

Send us a piece of work that you have achieved in the last year - something that you are proud of and you think would make a prospective employer very interested in talking to you.

We will pass your submissions directly to the sponsors so that they get to see all of them.  Your submission may interest a sponsor even if you don't win and sponsors are always looking for talent.

Prizes will include upgrading your ticket to Professional (which means attending the Professional Delegates Networking Session and the Penguin Dinner) and possibly hardware prizes.

Note: We know that this will be something that you have worked very hard on, so it will be treated with care and your copyright will be respected.

Why should you, as a student, attend LCA 2015?

LCA 2015 provides an amazing experience and opportunity to rub shoulders with some of the best in the industry. The talks span many categories providing insights into places where Open Source technologies are being utilized - from deployments of systems after the Christchurch earthquakes to the phone currently in your pocket. LCA 2015 will provide an awesome opportunity to get to know people involved in the Open Source industry, companies who are currently hiring!!

What does it cost?

The heavily-subsidised ticket cost available to students is NZ$149, all that’s required is a valid student ID. (Lasts year's one for new graduates is fine.)

Limited funding for students otherwise unable to attend is available, please see below.

Can you receive help with funding?

LCA 2015 and Internet NZ are proud to support diversity.

The Internet NZ Diversity Programme is one way we ensure that LCA 2015 continues to be an open and welcoming conference for everyone. The programme assists Open Source contributors to attend linux.conf.au from across New Zealand and the Pacific region.

You can apply for the Internet NZ Diversity Programme funding here.

What do you need to do?
  • Register and pay for your ticket.
  • Fill out the form and submit.
  • Attend the conference, meet people and have fun!
Looking for more information?

For information about anything else, including accommodation, a great place to start is the wiki.

Andrew Pollock: [life] Day 301: Kindergarten, self-care, errands galore

Thu, 2014-11-27 22:25

Yesterday felt like a bit of a blur, probably because I had a late night the night before.

I was up pretty early. I had my chiropractic adjustment and did some tidying up before the cleaners arrived.

I popped out to OfficeWorks to do a test print of my Christmas card while the cleaners were here, and then went straight to my massage appointment.

From there, I went straight to the Kindergarten to chair the last PAG meeting of the year. It's hard to believe there's only a couple of weeks of Kindergarten left. The year has flown by.

We popped over to Bunnings and the pet shop to get some more kitty litter, before dropping in at Hannah Photography to pick up the photo on canvas from our photo shoot. Zoe had fun playing with Hannah's cat, Charlie.

Sarah dropped in to spend a bit of quality time with Zoe, and I used the time to tweak my Christmas card a little bit. After Sarah left, we did another run to OfficeWorks to get them printed.

After that, it was time for a late dinner and off to bed.

linux.conf.au News: Speaker Feature: Jeremy Kerr, Paul McKenney, Michael Kerrisk

Thu, 2014-11-27 07:30
Jeremy Kerr OpenPOWER: Building an open-source software stack from bare metal

2:15pm Thursday 15th January 2015

Jeremy Kerr is a Power platform architect at IBM's Linux Technology Center. His background is in Linux development (specialising in Linux bringup on new hardware), and operating systems research.

Jeremy has been hacking on open source software development for over 14 years. As well as the kernel, Jeremy has contributed to a range of other open source projects, including petitboot (a Linux-based bootloader), K42 (a research operating system), patchwork (a web-based patch-tracking system) and nfsim (the netfilter simulation environment).

For more information on Jeremy and his presentation, see here. You can follow him as @jeremymeep and don’t forget to mention #lca2015.



Paul McKenney Bare-Metal Multicore Performance in a General-Purpose Operating System (Adventures in Ubiquity)

3:40pm Thursday 15th January 2015

Paul E. McKenney has been coding for more than four decades, more than half of that on parallel hardware, where his work has earned him a reputation among some as a flaming heretic. Over the past decade, Paul has been an IBM Distinguished Engineer at the IBM Linux Technology Center.

Paul maintains the RCU implementation within the Linux kernel, where the variety of workloads present highly entertaining performance, scalability, real-time response, and energy-efficiency challenges. Prior to that, he worked on the DYNIX/ptx kernel at Sequent, and prior to that on packet-radio and Internet protocols (but long before it was polite to mention Internet at cocktail parties), system administration, business applications, and real-time systems. His hobbies include what passes for running at his age (AKA "hiking") along with the usual house-wife-and-kids habit.

For more information on Paul and his presentation, see here.



Michael Kerrisk An introduction to Linux namespaces

10:40am Thursday 15th January 2015

Michael Kerrisk is the author of the acclaimed book, "The Linux Programming Interface", a guide and reference for system programming on Linux and UNIX. He contributes to the Linux kernel primarily via documentation, review, and testing of new kernel-user-space interfaces. In Auckland, he will be celebrating having recently passed 10 years as the maintainer of the Linux man-pages project.

Michael is New Zealander, working as a trainer and consultant in Munich, Germany.

For more information on Micheal and his presentation, see here.

Francois Marier: Hiding network disconnections using an IRC bouncer

Wed, 2014-11-26 22:00

A bouncer can be a useful tool if you rely on IRC for team communication and instant messaging. The most common use of such a server is to be permanently connected to IRC and to buffer messages while your client is disconnected.

However, that's not what got me interested in this tool. I'm not looking for another place where messages accumulate and wait to be processed later. I'm much happier if people email me when I'm not around.

Instead, I wanted to do to irssi what mosh did to ssh clients: transparently handle and hide temporary disconnections. Here's how I set everything up.

Server setup

The first step is to install znc:

apt-get install znc

Make sure you get the 1.0 series (in jessie or trusty, not wheezy or precise) since it has much better multi-network support.

Then, as a non-root user, generate a self-signed TLS certificate for it:

openssl req -x509 -sha256 -newkey rsa:2048 -keyout znc.pem -nodes -out znc.crt -days 365

and make sure you use something like irc.example.com as the subject name, that is the URL you will be connecting to from your IRC client.

Then install the certificate in the right place:

mkdir ~/.znc mv znc.pem ~/.znc/ cat znc.crt >> ~/.znc/znc.pem

Once that's done, you're ready to create a config file for znc using the znc --makeconf command, again as the same non-root user:

  • create separate znc users if you have separate nicks on different networks
  • use your nickserv password as the server password for each network
  • enable ssl
  • say no to the chansaver and nickserv plugins

Finally, open the IRC port (tcp port 6697 by default) in your firewall:

iptables -A INPUT -p tcp --dport 6697 -j ACCEPT Client setup (irssi)

On the client side, the official documentation covers a number of IRC clients, but the irssi page was quite sparse.

Here's what I used for the two networks I connect to (irc.oftc.net and irc.mozilla.org):

servers = ( { address = "irc.example.com"; chatnet = "OFTC"; password = "fmarier/oftc:Passw0rd1!"; port = "6697"; use_ssl = "yes"; ssl_verify = "yes"; ssl_cafile = "~/.irssi/certs/znc.crt"; }, { address = "irc.example.com"; chatnet = "Mozilla"; password = "francois/mozilla:Passw0rd1!"; port = "6697"; use_ssl = "yes"; ssl_verify = "yes"; ssl_cafile = "~/.irssi/certs/znc.crt"; } );

Of course, you'll need to copy your znc.crt file from the server into ~/.irssi/certs/znc.crt.

Make sure that you're no longer authenticating with the nickserv from within irssi. That's znc's job now.

Wrapper scripts

So far, this is a pretty standard znc+irssi setup. What makes it work with my workflow is the wrapper script I wrote to enable znc before starting irssi and then prompt to turn it off after exiting:

#!/bin/bash ssh irc.example.com "pgrep znc || znc" irssi read -p "Terminate the bouncer? [y/N] " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]] then ssh irc.example.com killall -sSIGINT znc fi

Now, instead of typing irssi to start my IRC client, I use irc.

If I'm exiting irssi before commuting or because I need to reboot for a kernel update, I keep the bouncer running. At the end of the day, I say yes to killing the bouncer. That way, I don't have a backlog to go through when I wake up the next day.

Linux Users of Victoria (LUV) Announce: LUV Main December 2014 Meeting: A vain attempt to rescue Australian democracy with a little JavaScript / holiday gifts

Wed, 2014-11-26 17:29
Start: Dec 2 2014 19:00 End: Dec 2 2014 21:00 Start: Dec 2 2014 19:00 End: Dec 2 2014 21:00 Location: 

The Buzzard Lecture Theatre. Evan Burge Building, Trinity College, Melbourne University Main Campus, Parkville.

Link:  http://luv.asn.au/meetings/map

Speakers:

• Paul Foxworthy: A vain attempt to rescue Australian democracy with a little JavaScript

• Andrew Pam: Holiday gift suggestions for Linux lovers

The Buzzard Lecture Theatre, Evan Burge Building, Trinity College Main Campus Parkville Melways Map: 2B C5

Notes: Trinity College's Main Campus is located off Royal Parade. The Evan Burge Building is located near the Tennis Courts. See our Map of Trinity College. Additional maps of Trinity and the surrounding area (including its relation to the city) can be found at http://www.trinity.unimelb.edu.au/about/location/map

Parking can be found along or near Royal Parade, Grattan Street, Swanston Street and College Crescent. Parking within Trinity College is unfortunately only available to staff.

For those coming via Public Transport, the number 19 tram (North Coburg - City) passes by the main entrance of Trinity College (Get off at Morrah St, Stop 12). This tram departs from the Elizabeth Street tram terminus (Flinders Street end) and goes past Melbourne Central Timetables can be found on-line at:

http://www.metlinkmelbourne.com.au/route/view/725

Before and/or after each meeting those who are interested are welcome to join other members for dinner. We are open to suggestions for a good place to eat near our venue. Maria's on Peel Street in North Melbourne is currently the most popular place to eat after meetings.

LUV would like to acknowledge Red Hat for their help in obtaining the Buzzard Lecture Theatre venue and VPAC for hosting, and BENK Open Systems for their financial support of the Beginners Workshops

Linux Users of Victoria Inc., is an incorporated association, registration number A0040056C.

December 2, 2014 - 19:00

read more

Michael Still: The Human Division

Wed, 2014-11-26 12:29






ISBN: 9780765369550

LibraryThing

I originally read this as a series of short stories released on the kindle, but the paperback collation of those has been out for a while and deserved a read. These stories are classic Scalzi, and read well. If you like the Old Man's War universe you will like this book. The chapters of the book are free standing because of how they were originally written, and that makes the book a bit disjointed. The cliff hanger at the end is also pretty annoying given the next book hasn't been released.



So, an interesting experiment that perhaps isn't perfect, but is well worth the read.



Tags for this post: book john_scalzi combat aliens engineered_human old_mans_war age colonization human_backup cranial_computer personal_ai

Related posts: The Last Colony ; Old Man's War ; The Ghost Brigades ; Old Man's War (2); The Ghost Brigades (2); Zoe's Tale Comment Recommend a book

Andrew Pollock: [life] Day 300: Kindergarten, startup stuff, errands

Wed, 2014-11-26 12:26

I started the day nice and early courtesy of the sun.

I finished off the unit of assessment that I should have finished last week, and get it into the mail. I made a start on the next unit, but was feeling a bit unmotivated, so I walked down to the post office to mail off the previous unit.

My current unit is all about the different styles of homes in Queensland since pre-Federation, and it's actually really interesting. I could spend a lot more time reading the course notes than I really should. It did cause me to look at the homes I walked pass with a new eye.

It was pretty hot again, and I didn't feel up for picking up Zoe from Kindergarten by bike, so I drove over.

I wanted to head out to the Brisbane City Council's regional business centre at Yeerongpilly to see if they had any plans for my apartment building. It turns out it was a bit of a wasted trip, because I could have requested the archive retrieval over the phone if the call centre person I'd spoken to had have known better. Zoe enjoyed collecting brochures from the counter anyway.

The return journey took us close enough to West End, that I decided to make a side trip over there to grab a few things from the food wholesaler I like over there. Zoe had a milkshake, so she was happy.

We got home from that trip and didn't have a lot of time left until Sarah arrived to pick up Zoe.

linux.conf.au News: Speaker Feature: Donna Benjamin, Dave Chinner, Paul Mackerras

Wed, 2014-11-26 07:28
Donna Benjamin Drupal8 outta the box

3:40pm Thursday 15th January 2015

Donna Benjamin has a collection of brightly coloured open source hats.

She currently chairs the Drupal community working group, sits on the board of the Drupal Association, and works as community engagement director with PreviousNext. She's also been an advisor to councils of Linux Australia, and was conference director for LCA2008 in Melbourne. Donna has also served as President of Linux Users of Victoria, and as a Director of Open Source Industry Australia.

Donna Benjamin is also our Community Leadership Summit Organiser.

For more information on Donna and her presentation, see here. You can follow her as @kattekrab and don’t forget to mention #lca2015.



Dave Chinner Programming Considered Harmful

4:35pm Thursday 15th January 2015

Dave is the current XFS maintainer. He is currently employeed by Red Hat and spends most of his time developing new filesystem and storage features. He has been a XFS developer since 2004, and worked on the linux kernel since 2005. He has worked on machines of all sizes - from 2000 CPU machines used in the HPC environment to tiny, highly networked embedded systems in the industrial control industry.

In his spare time, Dave builds and races cars and tries to teach his dogs not to bark at the postman....

For more information on Dave and his presentation, see here.



Paul Mackerras KVM on IBM POWER8 servers

1:20pm Wednesday 14th January 2015

Paul Mackerras works in IBM's Linux Technology Center, where he leads a group of people whose mission is to bring open-source virtualization to IBM's Power systems. Previously he was the Linux kernel maintainer for the PowerPC architecture. He is also the author of the "gitk" commit visualization tool and the maintainer of the PPP package.

For more information on Paul and his presentation, see here.

Tridge on UAVs: APM:Plane 3.2.0 released

Tue, 2014-11-25 14:23
The ardupilot development team is proud to announce the release of version 3.2.0 of APM:Plane. This is a major release with a lot of new features.



The changes span a lot of different areas of the code, but arguably the most important changes are:
  • automatic stall prevention code
  • PX4IO based RC override code on FMU failure
  • I2C crash bugfix
  • new autoland code from Michael Day
  • compass independent auto takeoff


I'll go into each of these changes in a bit more detail.



Automatic Stall Prevention



The automatic stall prevention code is code that uses the aerodynamic load factor (calculated from demanded bank angle) to adjust both the maximum roll angle and the minimum airspeed. You can enable/disable this code with the STALL_PREVENTION parameter which defaults to enabled.



When in stabilised manual throttle modes this option has the effect of limiting how much bank angle you can demand when close to the configured minimum airspeed (from ARSPD_FBW_MIN). That means when in FBWA mode if you try to turn hard while close to ARSPD_FBW_MIN it will limit the bank angle to an amount that will keep the speed above ARSPD_FBW_MIN times the aerodynamic load factor. It will always allow you at bank at least 25 degrees however, to ensure you keep some maneuverability if the airspeed estimate is incorrect.



When in auto-throttle modes (such as AUTO, RTL, CRUISE etc) it will additionally raise the minimum airspeed in proportion to the aerodynamic load factor. That means if a mission demands a sharp turn

at low speed then initially the turn will be less sharp, and the TECS controller will add power to bring the airspeed up to a level that can handle the demanded turn. After the turn is complete the minimum airspeed will drop back to the normal level.



This change won't completely eliminate stalls of course, but it should make them less likely if you properly configure ARSPD_FBW_MIN for your aircraft.



PX4IO based RC override code



This releases adds support for PX4IO based RC override. This is a safety feature where the stm32 IO co-processor on the PX4 and Pixhawk will give the pilot manual control if the main ArduPilot micro-controller fails (or the autopilot code crashes). This is particularly useful when testing new code that may not be stable.



As part of this new RC override support we also have a new OVERRIDE_CHAN parameter, which allows you to specify a RC input channel which can be used to test the RC override support. See the documentation on OVERRIDE_CHAN for details.



I2C bugfix



This release fixes another I2C bug in NuttX which could cause the Pixhawk to lock up under high I2C load with noise on I2C cables. This bug has caused at least two aircraft to crash, so it is an important fix. I hope this will be the last I2C crash bug we find in NuttX! An audit of the code was done to try to confirm that no more bugs of this type are present.



New Autoland code



This release incorporates some new autoland capabilities contributed by Michael Day. The key new feature is the ability to trigger an automatic landing when a RTL completes, which for the first time allows a user to setup their aircraft to land using only transmitter control.



The way it works is there is a new parameter RTL_AUTOLAND. If that is set to 1 and the aircraft reaches its target location in an RTL it will look for DO_LAND_START mission item in the mission. If that is found then the aircraft will switch to AUTO starting at that section of the mission. The user sets up their land mission commands starting with a DO_LAND_START mission item.



There is more to do in this autoland support. We have been discussing more advanced go-around capabilities and also better path planning for landing. The code in this release is an important first step though, and will be a good basis for future work.



Compass independent takeoff code



The auto-takeoff code has been changed to make it more independent of compass settings, allowing for reliable takeoff down a runway with poor compass offsets. The new takeoff code uses the gyroscope as the

primary heading control for the first part of the takeoff, until the aircraft gains enough speed for a GPS heading to be reliable.



Many thanks to all the contributors, especially:



  • Paul and Jon for EKF and TECS updates
  • Bret and Grant for stall prevention testing
  • Michael for all his autoland work
  • all the work on NavIO, PXF and Zynq by John, Victor, George and Siddarth
  • The PX4 team for all the PX4 updates
  • Flaperon updates from Kirill


More complete list of changes:



  • allow GCS to enable/disable PX4 safety switch
  • make auto-takeoff independent of compass errors
  • report gyro unhealthy if calibration failed
  • added support for MAV_CMD_DO_LAND_START
  • added RTL_AUTOLAND parameter
  • disable CLI by default in build
  • new InertialSensor implementation
  • added landing go around support
  • enable PX4 failsafe RC override
  • added OVERRIDE_CHAN parameter
  • changed default AUTOTUNE level to 6
  • changed default I value for roll/pitch controllers
  • added CAMERA_FEEDBACK mavlink messages
  • use airspeed temperature for baro calibration if possible
  • added STALL_PREVENTION parameter
  • fixed handling of TKOFF_THR_MAX parameter
  • added ARSPD_SKIP_CAL parameter
  • fixed flaperon trim handling (WARNING: may need to retrim flaperons)
  • EKF robustness improvements, especially for MAG handling
  • lots of HAL_Linux updates
  • support wider range of I2C Lidars
  • fixed fallback to DCM in AHRS
  • fixed I2C crash bug in NuttX
  • TECS prevent throttle undershoot after a climb
  • AP_Mount: added lead filter to improve servo gimbals
  • Zynq and NavIO updates
  • fixed preflight calibration to prevent losing 3D accel cal
  • perform a gyro calibration when doing 3D accel cal
  • added DO_CONTINUE_AND_CHANGE_ALT mission command
  • added support for DO_FENCE_ENABLE mission command
  • allow gyro calibration to take up to 30 seconds
  • improved health checks in the EKF for DCM fallback


Note: If you use flaperons you may need to re-trim them before you

fly due to the change in flaperon trim handling.



I hope that everyone enjoys flying this new APM:Plane release as much as we enjoyed producing it!



Happy flying!

David Rowe: OpenRadio Part 3 – Filters

Tue, 2014-11-25 13:30

Over the past week I’ve built my own OpenRadio prototype, using the construction notes Mark has put together as a guide.

To help others I measured a few DC voltages and recorded them. I found one small bug in my assembly: one of the flip-flop pins was not soldered correctly, leading to erratic signals. After that I set the LO to receive a 14 MHz signal and managed to receive a carrier from my FT-817, via about 60dB of in-line attenuation. At the moment I am using SpectraView running under Wine as the SDR software, however we really should get a Linux/Open Source SDR program running for the mini-conf. I only have a mono input sound card in my laptop so I’m getting a mirror image of the received spectrum. Still, good enough to get started.

I connected the radio to an external antenna and tuned to a local AM station on 1310 kHz. This sounded very strong but distorted. When I tuned to 7.150 MHz I could still hear AM radio signals, which suggests very strong local signals overloading the mixer. I tested this idea by inserting a 20dB attenuator in line with the antenna and sure enough the AM signal on 1310 kHz became clear and I could no longer hear AM stations on 7.150 MHz.

I could even see the AM signal on my oscilloscope – it measures 1Vrms (20mW) on the antenna terminals! That’s enough to light a LED (10mA at 2V).

However an attenuator is not ideal, so using the tables from my trusty copy of RF Circuit Design I built a simple High Pass Filter to attenuate broadcast signals by about 20dB, but pass other HF signals above 3 MHz. This consists of a 1nF capacitor and two 4.5uH inductors (21 turns on a 7mm diameter pencil) in a “Pi” arrangement. This worked well, the AM signals sound fine and no break through on other HF frequencies.

I also tested Mark’s 27 MHz Low Pass transmit filter, this cleaned up the PSK31 tx signal nicely, 2nd harmonic at least 30dB down with about 1Vrms into 50 ohms (20mW) transmit power. Here is a photo of my OpenRadio with both filters on the right. The larger coils at the top are part of the 3 element 3MHz high pass filter, which then connects to the 7 element 27MHz low pass filter.

Mark and I even had a OpenRadio to OpenRadio PSK31 QSO on the 40m Ham Band! I had about 40mW transmit power on 40m. This was actually NVIS propagation so 100km up and down to the ionosphere and 10km across Adelaide!

So our #2 prototype helps us confirm that the design is working. I’ve followed Mark’s construction notes and made some of my own, and obtained experience in setting up the Arduino and Spectraview software. The broadcast HPF design may be useful for others who experinece strong local interference.

Well done Mark on a fine job designing OpenRadio and writing the support Arduino software. He has put in a tremendous amount of work to develop and test the hardware, written a lot of software, and carefully documented everything on the OpenRadio Wiki. This is a great resource that will be useful to many others. Next step is the kit production. Right on schedule for linux.conf.au in January.

Peter Hardy: Building an arduino-based video game controller

Mon, 2014-11-24 23:25

I play a lot of Kerbal Space Program because sandbox games in space is pretty much the greatest idea ever. So in an attempt to enhance the game and build something pretty cool, I’ve spent the last several months working towards building a console to control the game and display telemetry.

My final design is going to be fairly large, but to start with, I wanted to knock up a few of the simpler panels. That gave me a chance to work out how to make the panel hardware, and get the basics sorted out for interfacing with the game through the KSPSerialIO plugin. It’s taken quite a few months on and off to get this far, but this week I finally got the first few panels finished and working.

Basically, you take an Arduino Mega2560, a Mux Shield, and a bunch of switches and knobs and buttons. And then you wire it all up and write some code to make it talk a simple serial protocol over USB. And then, honestly, you giggle gleefully while sliding a throttle lever up and down and watching your rocket change speed like magic.

Now that I’ve sorted out most of the major obstacles for this, I’ve started working on additional panels. There’s still a lot of important controls missing. I’ve got some ideas for translational RCS controls, in addition to the Logitech joystick I usually use. And I’m almost ready to get some PCBs manufactured for a number of seven segment LED displays. In the meantime, this is already pretty fun to mess around with.

I’ve got a few more pictures of the current setup in imgur. And, of course, everything is open source. My ksky repository has all of the source code, panel design files, and a bunch of notes on how it’s put together.

Andrew Pollock: [life] Day 299: Kindergarten and a demo

Mon, 2014-11-24 22:25

We had another bad night's sleep last night, with Zoe waking up at 1:30am. Her bedroom was 27-28°C all night. I've got a pretty good amount of data on her sleep habits now, and it's pretty safe to say that if her room is over 25°C, she's going to wake up between 1:30am and 3am. Time to get some more quotes for air-conditioning I think.

Zoe did have a bit of a sleep in this morning, which allowed me to get ready for the day before she got up. Given I had a Thermomix demonstration to get to, that worked out well.

I half-packed the car for the demo and dropped Zoe to Kindergarten by car, and returned home to finish preparing and practice before I headed over.

I was fairly happy with my delivery, given it's been a little while since I've done one. My main goal today if not a sale was to get a booking for another demo, as I've been weak in that area, and I was successful in the latter, so that was good.

Timing worked out well that I got to Kindergarten right for pick up time. We drove home, and I unpacked the car and got changed into something cooler, and we headed out to try and get some more whole wheat grains from the Indian supermarket that Anshu had shown me. As luck would have it, they were out of stock, so it was a bit of a wasted trip.

We headed home and Zoe watched a bit of TV until Sarah picked her up.