I recently bought a PineTime watch on a whim. And I’m still not sure what I’m going to do with it, but it runs an open source operating system (InfiniTime based on FreeRTOS) so I’m lured by the thought of customizing or contributing in some way no matter how small.
The first thing I noticed when booting my watch for the first time is the battery indicator didn’t seem to be working despite the fact that I was actively charging it.
I recently purchased a Dell Mini 1012 on Ebay and wanted to ensure it had the latest BIOS update from 2011. Dell’s website provides an exe, but I rarely boot into Windows. I managed to find a Linux-only workaround.
What I Tried It was a bit of a journey. If you want the TL;DR, go to the next section.
According to Ubuntu’s Dell BIOS page you can flash the BIOS using FreeDOS and a USB stick.
For the past year I’ve been using a TP-Link WDR4300 wireless router. I tried installing OpenWrt on it but it became unusable so I reverted back to stock. Last month I decided to build my own wireless router out of the beagleboard-xM I bought three years ago.
What are the benefits of building my own router?
It could provide network attached storage via a USB drive or MicroSD card. Could use something more robust than the FAT filesystem too.
Been powering through Embedded Linux Primer. A few high-level things I’ve learned:
initrd is old, initramfs is new initramfs uses a CPIO image (a type of archive that was new to me) to hold the initial filesystem contents Using TFTP to boot from a remote kernel and ramdisk sounds like fun, not to mention provides great flexibility for debugging. It’s not so hard to add extra items to the kernel config menu Learned some ins and outs of Das U-boot, and that support for using RAM has to be initialized by the bootloader otherwise you can only use stack memory.
Didn’t expect to find any books on our outing yesterday, but I had a pleasant surprise. Last week I finished my previous book on embedded Linux, which was a great case-study-esque intro, and Embedded Linux Primer will likely be a wonderful follow-up. Some of the chapters that caught my eye:
Storage Considerations Systems on Chip Bootloaders Device driver basics Filesystems Busybox Development tools beyond gdb: cscope, strace (and others) Kernel Debugging Techniques Open Source Build Systems udev Test-Driven Development for Embedded C was a surprise as well.
What follows are thoughts while reading Embedded Linux - Hardware, Software and Interfacing. Really enjoyed it.
It walks through planning for an automation system for a winter resort. Currently at chapter 6 and there’ve been a few things I’ve not done before.
Right away I discovered you could use gdb remotely with gdbremote. Great for remote debugging of cross-compiled applications.
I’ve done cross-compilation, albeit indirectly using buildroot, but I was still aware of what went on behind the scenes, aka: compiling gcc and glibc multiple times, the first being a way to bootstrap and create a more “pure” versions tailed specifically for the target platform.