Archives For Raspbian

raspian pixel

December 21, 2016

2016-12-21-135723_1824x984_scrot

Just a quick entry about Raspian Pixel, the latest Debian-based distribution for the Raspberry Pi. In this entry, I have it running off of a 32GB microSDHC card, a Sandisk Ultra Extreme with an 80MB write speed, plugged into the Raspberry Pi 3. The Pixel desktop is something of a minor wonder, a reasonable graphical desktop that isn’t glacially slow. This entry is being written on the Pixel desktop within Chromium “Version 51.0.2704.91 Built on Ubuntu 14.04, running on Raspbian 8.0” according to the about screen. I’ve been dabbling with some of the more current distributions lately, specifically Raspbian and Fedora 25 for ARM.

Raspbian Pixel is a nice, clean, reasonably fast distribution for the Raspberry Pi 3. My only real complaint is that Raspbian, like Arch Linux ARM and Fedora 25, is still compiled for 32-bit ARM, not 64-bit. Other than that I can’t really complain. If anything, I have high praise for Pixel, especially its inclusion of Chromium/Chrome. Everything on the web I’ve attempted to view on Chromium renders as well as a regular Chrome on Windows, macOS, and Ubuntu. It handles multiple tabs, although with the limited memory on the RPi 3 I make sure to have as absolutely few open as possible.

I won’t be able to do anything of significance until after Christmas. But with a decent version of Raspbian on one of my RPi boxen, I now have a reference installation that will allow me to check to see if any of my more esoteric projects failures are due to me or the fact that Arch Linux doesn’t fully support what I’m trying to do.

Unfortunately, Fedora 25 has taken the place of the older versions of Raspian as the slowest, least usable distribution you can install on the Raspberry Pi 3. “Glacial” doesn’t even begin to describe how slow it is. After 30 frustrating minutes of dealing with “did it crash or is it just that slow,” I installed Raspbian Pixel over the top of it and moved on. I’ll admit Fedora looks pretty, but that’s no reason to keep it around. Ugly but highly functional will always beat pretty but slow as molasses in a New England winter. If you’re reading this and trying to make a decision, take my advice, and install Raspbian Pixel. Don’t even waste bandwidth and diskspace on Fedora 25 for ARM.

raspberry pi 3 model b

March 6, 2016
Raspberry Pi 3 Model B

Raspberry Pi 3 Model B

I ordered the latest and greatest Raspberry Pi over the weekend from Amazon, along with a couple of C++ reference books, two Samsung micro SDHC 32GB cards, and a Sunbeam heating pad for my right leg. Everything arrived earlier this evening with a doorbell ring that sent the dogs into their usual barking mode.

Earlier in the day I’d grabbed the latest Raspbian image from the Raspberry Pi foundation and had it uncompressed and ready for use for when the Pi3 arrived. Then, in between getting supper ready, I copied the image to one of the 32GB cards and booted up the Pi3.

Raspbian desktop – Feb 2016 boot image

I used this image rather than the image I could get from Raspian.org. I wanted to play it safe and make absolutely sure I could not only boot it, but be able to bring up the WiFi interface that is now built into the Raspberry Pi 3 board. And I did. Connecting to my wireless router was absolutely dead simple. What I found interesting is that the system booted immediately into the desktop, and didn’t even attempt to resize and use the full 32GB micro SDHC card on first boot. I’ll investigate why later.

I didn’t do much more than power on the board and take a quick peek at some of the features. Since this image is built for 32-bit rather than full 64-bit, I was unable to see if the kernel could identify it as a 64-bit ARM architecture. As far as this Raspbian is concerned it’s still running on a 32-bit machine.

And run it did. I can’t believe how much smoother and faster the Pi3 is over every other earlier release. What I find amazing is that it’s all still just $35 for the board. It now feels like a “real” computer. Everything is very smooth, with no jitters and delays, especially when working on the graphical desktop.

I will be digging deeper going forward, in particular picking up where I left off a good year ago using Node.js to provide control and an interface. A lot has happened and I’ve been giving a lot of thought to so-called Internet of Things devices, of which the Pi3 is a very good example. I want to add solid encryption to the device now, both for data at rest (the file system) as well as data on the wire. I was already headed down a path of locking down all but the absolutely needed ports into the Pi2 when I stopped.

2016 is going to be an extremely interesting year for cheap, powerful itty bitty computers.

"Raspberry Pi 2 Model B v1.1" by Multicherry. Licensed under CC BY-SA 4.0

“Raspberry Pi 2 Model B v1.1” by Multicherry. Licensed under CC BY-SA 4.0

My work with the Raspberry Pi started with the original Raspberry Pi 1 model B, the version that came with just two USB ports and the most amount of RAM at the time, 512MB. I purchased the B+, and then earlier this year, the Raspberry Pi 2 Model B. During all that time I’ve run some distribution of Linux on it; Arch first and for the most amount of time, then Raspbian when Arch suddenly corrupted itself after what turned out to be an ill-advised update on the B+.

If you look at the entries in this blog under Raspberry Pi you’ll note that it’s been for the most part light weight and a way to get to know how the hardware and software work together. I’ve looked up and followed along, making changes necessary for it to work on my end. I’ve not published anything unique that advanced the use of the Raspberry Pi. My excuses boil down to lack of time to really research and then apply what I’ve learned. I’ve got all sorts of big ideas, but just need to figure out how to make them real.

To that end I’ve started to look at the latest releases of operating systems available for the latest Raspberry Pi 2. Before the trip I managed to install the latest Arch, Raspbian, and Windows 10 for IoT. Here’s a quick rundown on what I discovered.

Arch

The latest Arch Linux for ARM has a page devoted to installing Arch directly onto a micro SD card for the Raspberry Pi 2, using Arch Linux as the tool bench. In my case I used my Samsung R580 notebook running Ubuntu 15.04. The only tool I needed to add via apt-get was bsdtar. Otherwise the directions given for the Arch environment worked identically on Ubuntu (taking micro SD card device differences into account).

Once the installation process was finished, I put the micro SD card into the RPi 2 and watched it book into a text console. Nothing out of the ordinary in that, and in a way I prefer text over a GUI. My only complaint with the latest Arch is the lack of out-of-the-box WiFi support for the most common WiFi dongles. I had to install WiFi support after my first initial installation of Arch Linux nearly two years ago. Here I am with the latest and I find I’ve got to do that same all over again. My main reason for looking at Arch is its relatively lean footprint, but lack of WiFi support is just a bit too lean. It’s annoying to fix this issue, especially as WiFi networking on the Raspberry Pi is a big feature, two years since the last time is a long time, and when it’s not there out of the box, it’s a big issue.

Raspbian

The latest Raspbian image was installed using my Ubuntu system and the ‘dd’ method for copying the image onto another micro SD card. Once booted, Raspbian will walk you through an initial configuration and expand the file system, consuming the rest of the card. It now boots immediately into a graphical desktop. This is all well and good, but even with a quad-core ARM processor and 1GB of memory, the GUI still taxes the Raspberry Pi 2. This so-called taxing shows as a jitteriness of the mouse cursor as it moves across the screen, among other issues.

I give points to the distribution for fully recognizing my Apple USB keyboard without having to perform any kernel-level configurations, and it recognized both of my WiFi dongles and thus joined the network at boot. For a distribution where you want the greatest assurance it will come up and be usable by an absolute novice to the Raspberry Pi, the current Raspbian distribution can’t be beat. To quote Apple, “It Just Works.”

But I’m still not quite happy with it…

Windows 10 IoT

This was the most sophisticated, and in the end, the most disappointing of the three. I’m glad I gave it a spin, but I would never use it for my own work nor can I recommend it for anyone else to use.

Microsoft has a page to help you get started here. I chose to download an ISO image and to install the tools necessary to flash a micro SD card with the IoT image that comes bundled with that ISO. Once installed on the Raspberry Pi, the Pi booted into Windows 10 with absolutely no problem. The problems came later when it turned out it wouldn’t work with either of the two WiFi USB dongles I’ve been using with Linux ever since the original Raspberry Pi B was purchased.

I spent more time than I cared to slumming through the forums, but no-one seemed to know how to get WiFi working. After about an hour of trying various so-called solutions I shut it down and deleted everything. Yes, I could have plugged the Pi 2 into an open network port on my home router, but I still had no guarantee I would find the proper drivers to make WiFi work. I know how to get all that to work under various Linux distributions. The bigger issue is the requirement to have a desktop Windows system in order to develop for the Raspberry Pi 2. As I’ve written about here you can do some serious and sophisticated work natively on the Raspberry Pi, reaching back to a desktop/laptop only when the development needs are fairly serious. I don’t want to be forced to do this out of the gate. I lived that development life back in the 1990s with Wind River’s VxWorks. While that was fine back then, I don’t want to go back to that, especially now. Even the Beagle Bone Black, which requires a laptop to bootstrap it’s development tools, has everything local to the BBB, and only requires you use a browser.

Unless it changes drastically I’m done with Windows 10 IoT.

Conclusions

There’s a lot that has happened over the last two years, especially with regards to security and encryption. I knew the Internet had devolved into a dangerous place, but I didn’t know how dangerous until the leaks from Edward Snowden and other’s he’s inspired. That has in turn motivated me to think about best practices for securing an internet-of-things device such as the Raspberry Pi 2, and how best to encrypt data both at rest on the device as well as across the wire into and out of the Pi. I’ll have more to write about later, but for the present, I can’t approach this with the same naivete I did in the beginning.

rpibplusThis weekend I found some time to fire up the Raspberry Pi model B+. I wanted to update the Arch Linux installation on it, and then I wanted to do some NodeJS Javascript programming after the system updates.

Unfortunately for me I couldn’t update Arch. The last time I updated Arch was back in October of 2014. Right after upgrading I created an image, zipped it up, and uploaded it to my Google Drive to share with all. After my failure to upgrade Arch I’ve deleted that image from Google Drive, and I’m now working exclusively with Raspbian Linux released December 2014.

In a way I’m actually glad to now be using Raspbian as opposed to Arch. All my other Linux-powered computers¬†are running some variant of Debian, either Debian directly (Beagle Bone Black) or Ubuntu/Mint Linux (my notebook and virtual machines). While the GUIs might certainly differ, they’re pretty much the same down at the CLI level. Moving between the various machines isn’t as jarring when one of them is as different as Arch is.

The problem came when I tried to update Arch using ‘pacman -Syyu’. The update refused to execute, failing with some sort of version mismatch with pacman itself. After looking on various Arch forums and trying to use Google to find a solution, I decided that perhaps it was time to move over to Raspbian. And so I have. The only minor issues had to do with the Apple keyboard, and I’ve documented how to fix that with Arch. I’d already given an older version of Raspbian a dry run, and found that fixing the Apple keyboard for Arch was also the way to fix it for Raspbian.

I’m now in the process of getting my NodeJS environment rebuilt and getting ready to write some more controller software in Javascript. I’ll have more to post shortly.

rpibplus

Raspberry Pi B+

I spent some time today working with the latest Raspbian, tweaking it to work with my Apple keyboard.

Just as with Arch Linux (see “tweaking arch on the pi” from February) I had to fix the function keys, i.e. make them functional. Before that could happen, I had to fix the key mappings on the Apple keyboard by running ‘sudo dpkg-reconfigure keyboard-configuration’ and selecting English(US) mappings. For whatever reason they’re set for English(UK). Then I had to create the file /etc/modprobe.d/hid_apple.conf and add the line ‘options hid_apple fnmode=2’. Reboot, and I had a full US English Apple keyboard with working function keys.

One feature I fully appreciated in Raspian is its ability to set the time from the network, once the networking was properly configured. I got the wireless network running through the Lxde desktop and the graphical network utility. Once I had the wireless network connection set up, all further reboots set the time on the board. The board doesn’t have a battery-backed clock. With Arch Linux it always sets to 1969 unless I run a simple script to execute ‘ntpd -q -g’ at startup, which I was forced to add myself.

Performance

Performance was a bit of a mixed bag. If I logged into the command line, Raspian seemed to execute faster and smoother than Arch Linux. But run the graphical desktop, first with LXDE and then XFCE4, and things got slower, many times annoyingly so. I did certainly appreciate the update to the Epiphany browser; it worked as well as advertised, but it also slowed considerably when it hit a site with a lot of complex features, such as this WordPress blog. I had hoped to write this update from the Raspian desktop, but I turned back to my workhorse Ubuntu system on the now-five-year-old Samsung R580 notebook to write this.

General Conclusions

Raspbian’s a good distribution for the Raspberry Pi B+, but for my tastes I think I’ll stick with Arch Linux for Arm. I had thought to try and unify all my Linux environments as much as possible around Ubuntu/Debian, but that won’t happen any time soon. My greatest concern outside of performance is drive footprint. Raspbian came out of the box consuming more drive space than Arch Linux, and I’ve been tinkering with Arch Linux since late January. When I installed Xfce, Raspbian’s overall footprint had grown to 2.7 GB, a good .5GB greater than Arch Linux, and that’s even after uninstalling Lxde from Raspbian.