upgrading a legacy notebook with a contemporary ssd

screenshot-from-2016-12-18-11-16-40

The Samsung R580 is like the Timex watches of yore, when they “took a lickin’ and kept on ticken’.” Or maybe it should be compared to something more contemporary like the Energizer Bunny. Regardless, the R580 continues to do yeoman duty, what with its ‘mere’ 4GB of memory and now-modest Intel Core i5 m430 processor. It was originally purchased with Windows Vista installed back in 2010. It was upgraded to Windows 7 when that was offered as a free upgrade, and stayed that way until Windows 7 decided to corrupt itself. When that happened I installed Ubuntu 13.10 on it in December 2013. It’s been an Ubuntu workhorse ever since.

When I upgraded the R580 to Ubuntu I replaced the keyboard and put a new 500GB hard drive in it to match the size of the original hard drive. Over the years I started to replace the hard drive, first with a 1TB model, then a second just to make sure that at least the rotating media was kept up to date. I thought about upgrading to 8GB, the highest you could go with this model, but I just never got around to it. This December, I decided to be a bit more drastic with my upgrade.

As you’ll note above, I upgraded the R580 with a 1TB Samsung 850 EVO SSD. The price finally dropped low enough to make installation a no-brainer. I’d already upgraded a Samsung 17″ running Windows 10 with a 1TB Samsung 950 Pro, and I’d purchased a mid-2015 MBP with a 1TB SSD built in. So I was quite appreciative of how an SSD significantly speeds up a computer. It just made more sense to spend the money on the SSD rather than more memory, so when the Christmas sale on the 850 EVO was announced I picked up a copy, along with a Sabrent USB adapter. With Clonezilla on a USB thumb drive, I booted into Clonezilla and proceeded to clone the HDD disk to the SSD. Total time took about two hours, most of which was just waiting for it to finish. Once finished I swapped the HDD out for the SSD, booted the system back up, and here I am writing this blog entry on it.

Before you ask: No, dd is not as good as Clonezilla, at least not for this use case. For example, Clonezilla (for which I have extensive experience) will analyze the drive to be cloned and only copy over what needs to be copied over. dd is blind in that it duplicates the entire drive from one device to another. And in order to make that work you still need to boot into a live version of the OS from a thumb drive, so the amount of prep work is identical. It makes far more sense to use Clonezilla.

Needless to say, everything is so much faster, from startup and shutdown to launching applications. And if it goes to swap, well then, it goes to very, very fast swap. I don’t intend to do any more hard disk upgrades, just as I don’t intend to update the OS beyond Ubuntu 16.04 LTS. I’ll keep using the R580 until it literally dies of something, I’m not sure what. I keep thinking I’ll replace it with another used notebook, but its overall combination of reasonable performance, many ports, and the fact it has a Blueray drive make it hard to find a replacement for, now that everybody and their relative wants to drop ports and repairability and upgradability in the name of convenience, cost cutting, and dare I say it? Lock-in.

Here’s to another five years of drama-free usage.

windows 10 build 14393.10

Windows10Version14393.10It’s been over three weeks since I last wrote about Windows 10 build 14393.0. Note the ‘.0’ at the end. It’s still version 1607 but the point release has bumped to ‘.10’. Based on that bump I’m assuming I’ve picked up all the bits for the Anniversary Update, and so far I haven’t had any issues with using the OS or any of my typical applications. For example, after the updates I used Lightroom 6.6 to edit a series of photos I took in Indiana and posted in the prior blog post. Rather than talk about what I did find, let me lead off about what I didn’t find:

  1. Unlike any number of articles on the web have seemed to document, I did not have Skype re-installed on my system against my will. I uninstalled Skype early on (when it showed up in Windows 8.1) because I had no use for it. It has stayed uninstalled ever since. Whether that non-installation is due to my being on the ‘slow ring’ I can’t say, but I went looking for it and the only thing I found was a ‘Skype Preview’ in the Windows Store. It can stay there for all I care.
  2. I don’t get ads, either on my lock screen or anywhere else for that matter. I do get the occasional question, such as “Would you recommend Windows 10 to your worst enemy?” to statement such as “Too many background apps can drain your battery. Select here to improve battery life.” Little things, but I expect those, because I am running with pre-release code and the coders in particular would like to know how it’s working out.
  3. Unlike Thom Halwerda’s bombastic whining, I don’t find Windows 10 an “incomplete, buggy, slow, broken, and effectively useless mess” (It should be noted he writes the same things about Mac OS X and Linux). Honestly, if you’re that provoked with the current state of desktop environments then get off your lazy duff and write your own. Then present it out to your peers and make sure your underwear is sufficiently fire retardant and bullet proof. Otherwise, kindly STFU.

So, with those points taken care of, let’s meander a bit and see what’s on the system. The most interesting change for me is the Windows Subsystem for Linux, or WSL. Practically speaking it’s Bash plus Ubuntu 14.04 LTS minus the graphical subsystems running on Windows. Here’s what it looks like running on my system:

wsl

There’s a lot going on in that shell, so let’s break it down a bit.

  1. ‘cat /proc/version’ gives us the version of the kernel we’re running with. It’s a fairly current version (greater than 2.6, but not up to the current 4.x releases). It’s the same version underpinning Ubuntu 14.04 LTS.
  2. Since it has a kernel as part of the subsystem, it’s various /proc resources I’ve checked out seem to work. In particular the ‘cat /proc/cpuinfo …’ shows the eight cores of my Samsung notebook (four cores with hyper threading enabled on each core).
  3. Free shows all memory available and in use on my notebook, not a subset.
  4. ‘ll /mnt’ shows it sees my Windows ‘C:’ drive. If I cd down /mnt/c I’ll be able to traverse my entire C drive. Any other drives attached under Windows are equally visible. The problem I’ve run into so far is soft links. I created one from my home to /mnt/c/Develop (C:\Develop), and while it shows up properly under ls, traversing down the link creates a peculiar error condition. I get to the part of the filesystem it points to, but any attempt to traverse deeper leaves me in the top area the link points to. The only way to traverse deeper is to take the full path down /mnt/c. As an alternative I can create bash aliases (alias develop=’cd /mnt/c/Develop’) and move there that way. But other applications that depend on soft links behaving properly may break, so YMMV. Just beware.
  5. ‘gcc -v’ produces a higher GCC version (4.8.4) than that used to build the kernel (4.7). The gcc version also includes the full 14.04 LTS version it was produced from (14.04.3). Unfortunately for me I need a gcc version 5 or 6 for the kind of work I’m interested in, so this version of gcc is something of a non-starter for me.
  6. I can update and upgrade using apt and/or apt-get, and I can install standard Debian/Ubuntu command line applications (such as htop).

Overall WSL is both an impressive tour-de-force as well as an ever-so-slight disappointment. I fully understand basing WSL on a long-term-support version of Linux, but it would have made life a lot better if Microsoft had chosen 16.04 instead of 14.04. Perhaps future versions or the official release will switch. All the tools are locked to the 14.04 baseline, such as Python and Ruby, not just gcc. Overall I consider working in WSL’s bash superior to Cygwin‘s, but then again, Cygwin has more up-to-date tools.

Another mark against WSL is its difficulty in mixing Windows tools at the command line. There are (hackerish) ways to do this currently, but I’m more interested in a clean built-in way to do this. It would be very nice to call a windows executable directly from the WSL bash command line instead of possibly having duplicate tool chains on both Windows and WSL. Currently the only way I see of avoiding this is to have tools on either one or the other, but not both.

Is there a better way than WSL? Possibly; it involves using VirtualBox and installing a full-blown Linux distribution. My recommendation for Linux development on Windows 10 if you can support it is to install Mint 18 in a VirtualBox VM. Linux Mint 18 comes with VB drivers already built and installed (negating the need to mount the Guest Additions and building them from scratch within the running VM), so that all you have to do is download the ISO and install the OS from the ISO in a VM. During VM configuration you can enable file system sharing to any part of the Windows file system (not just at the root of the Windows drives) and have full networking out of the VM and into the world. It is, for all practical purposes, a full graphical Linux installation indistinguishable from one on hardware, except it is more tightly integrated with Windows. And from my own experience, the latest VirtualBox combined with the latest Windows 10 is very fast and smooth. That’s a lot of effort to go through and it consumes non-trivial system resources, so you should think this path through carefully.

Other native Windows applications have no issues with Windows 10. In particular I still have Office 2010 and Visio 2013, and they work just fine. I’d migrate over to my Office 2016 subscription I have running on my MBP, but Office 2016 subscription wants to fully uninstall my Visio 2013, and there is no Visio equivalent for the Mac (although I do have OmniGraffle). For the time being I keep going back to my Samsung/Windows 10 notebook for Visio work that can’t be handled by OmniGraffle (and Lightroom work, to be honest) while the majority of my work is done on the MBP.

If you came here looking for Windows 10 controversy you won’t find it here. Windows 10 is like every other major OS/DE out there; it has its strengths and its weaknesses, but it is overall a very solid environment that works just fine as long as you leave your rabid political leanings concerning certain software companies at the door.

Update 8 August – WSL Is Removed From My System

After reading a few shrill articles on the Interwebs about how WSL is another security “attack surface” to Windows 10, I disabled it completely. Perhaps it is, perhaps it isn’t, but the soft-link problem coupled with these rumblings made me to decide to remove a marginally useful capability. Perhaps I’ll revisit it when it’s finally released, but for the time being I have Linux Mint18 running in VirtualBox, and that’s a far more complete Linux environment for me. The command to do this (in either a command or powershell window) is ‘lxrun /uninstall /y /full’

This is the story that convinced me turn this feature off is: Risk From Linux Kernel Hidden in Windows 10 Exposed at Black Hat

ubuntu 16.04 with cat

luke_computer

I know I’ve written how I’m pretty much into using my Apple MBP as my primary driver. Which has meant that the old Samsung R580 running Ubuntu 15.10 has been sitting, forlorn and ignored in its bag. I hate wasting anything, especially a working computer, even the R580.

So I pulled the R580 out of its bag and updated its 15.10 installation. And then, on a whim, I ran the updater a second time and got the notice to upgrade to 16.04. I figured why not? After about an hour of downloads and installs, the R580 rebooted into 16.04. And following that whim, I downloaded the Vivaldi Browser 1.1 Debian package and installed it as well. Easy peasy using dpkg.

Since before its official 1.0 release Vivaldi had become my BFF browser, surpassing every other browser I’ve used (Firefox, Chrome, Opera, IE and Edge) across all my computers. And just like on Windows 10 and Mac OS X, it’s blazing fast. And I just like the way it works. Even the Gingersnaps, especially Luke, likes it. He’s also something of an Ubuntu fan cat, which is why he’s sitting next to the R580 above.

I don’t know that I’ll dust off the R580 and start using it again like I have in the past. But for the record, I am extremely impressed that the R580 is still usable, and that Ubuntu 16.04 runs on it without any issues that I can see. Even though the R580 was purchased in 2011 with Windows 7 installed, it’s run Ubuntu as long as it’s run Windows, and run Ubuntu with a lot less drama (Ubuntu went on when Windows 7 corrupted itself). For the record this is the last version of Ubuntu Long Term Support I’ll install on the R580. I know I said that with the last LTS (14.04) and when the next Ubuntu release (14.10) came out it went on over 14.04. But I have a sneaking suspicion I’ve pushed my luck with this machine and upgraded Ubuntu as far as I reasonably aught to. It’s still usable and from my brief tour of 16.04, it’s as polished a Linux distro as you could ever want. And Vivaldi is as polished a browser as you could ever want. Especially if you want a Linux computer.

updating ubuntu

ubuntu-logo112I was forced into updating my ancient Samsung R580 notebook from 15.04 to 15.10 today. I didn’t feel the need to update to 15.10 when it was released back in October because it had nothing new I wanted and I was more than satisfied with 15.04. I’d planned to stretch out my use of 15.04 until the next LTS, 16.04, is released in April.

That plan got knocked to the side of the road when I checked with Software Updating to get the latest fixes and updates and it displayed a message that 15.04 would not longer be updated, would I please step up to 15.10. Sort of reminded me of Microsoft’s entreaties to me to update from Windows 8.1 to Windows 10. So I updated the Samsung and everything updated and upgraded without a hitch.

I now have three key notebooks whose native OSes are, respectively, Linux, Mac OS X, and Windows. Because the R580 is as old as it is I’m now in the market for a used notebook that’s current enough to last another 5-10 years to replace the R580. The R580 is old enough that it was originally sold with Vista, then later upgraded to Windows 7. That Win7 install eventually ate itself up, at which point I replaced it with Ubuntu 13.10 right after Christmas 2013. Except for one very brief side track to Fedora/RHEL, it’s been on Ubuntu ever since.

I’m not sure I’ll ever switch to Ubuntu the way Dan Gilmore did, but as soon as I get my finances back in order I intend to never spend as much on computers as I have in 2015. I have my strong business reasons for owning these three machines, but I don’t want to be dependent on any of them. But if I had to, I’d probably pick Ubuntu.

raspberry pi 2: reflections going forward

"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.