Each pcDuino3 comes with a specific version of Linux kernel and Ubuntu Operating System pre-installed on its NAND storage. You can check the version currently installed on your pcDuino3 by opening a terminal and executing:
$ uname -a
The date on the output refers to the release date of that kernel. For example, the following output indicates that this pcDuino3 is running the kernel released on 21st July 2014 ( the latest version as of this writing ):
Linux ubuntu 3.4.79+ #12 SMP PREEMPT Mon Jul 21 13:05:42 CST 2014 armv7l armv7l armv7l GNU/Linux
You can also read up more about it here
From time to time, the pcDuino team will release new kernel and Ubuntu rootfs images that contain new features or bugfixes, and it is a good practice to keep your pcDuino up to date (however, please ensure that all important data on your current nand storage has been backed up elsewhere, since the update will overwrite the nand storage). You can find the latest kernel and rootfs images for pcDuino3 on:
Updating is a two-stage process – first we update the kernel, and then the Ubuntu rootfs. We will use a Windows application called PhoenixCard to update the kernel, followed by plugging in a USB thumbdrive (or an SD card) containing the Ubuntu rootfs image and a shell script with special instructions.
Before You Begin
You will need the following to perform an update:
- A computer running Windows Vista or Windows 7
- A power supply adaptor outputting 5V 2Amps (it’s important to have uninterrupted power throughout the process, so don’t use a powerbank or power your pcDuino3 via the computer’s USB port)
- Two microUSB cables – one for connecting the pcDuino3 to the power supply, and the other for connecting the pcDuino3 to the Windows machine ( via the microUSB OTG port, located at the opposite side from the microUSB power port ).
- A USB thumbdrive, OR an SD card with capacity of 4GB or more, for transferring the Ubuntu rootfs image
- A USB hub (only needed if you are using a USB thumbdrive, since the pcDuino3 only has one USB port and you will need to plug in keyboard+mouse and the USB thumbdrive)
Also take note of the locations of two buttons on the pcDuino3 board: the “upgrade” button, located beside the short Arduino header, at the edge of the board; and the “reset” button, located beside the black SATA connector and power LED.
On earlier versions of the board, the “reset” button was located between the HDMI port and the Ethernet port (newer boards now has a big capacitor sitting on that spot, for increased power stability)
There’s also a video showing the whole process which was released some time ago. However, there has been some changes to the board layout as well as the kernel/rootfs images. This article aims to complement it with more details. You can find the video here.
To update, simply do the following (in order):
WARNING: Make sure you have all of your data backed up and kept elsewhere. This will remove all of your data. Current settings will also be reset to defaults.
- Download and install PhoenixSuit v1.0.6 on a Microsoft Windows Vista / Win7 machine (it MUST be v1.0.6, please do not accept invitation to upgrade).
- Download kernel image file (e.g. pcduino3_a20_kernel_livesuit_20140721.img)
- Download Ubuntu rootfs compressed file (e.g. pcduino3_ubuntu_20140430.7z) and extract it, you will get a folder named ubuntu, which contains two files:
- Copy these two files to the USB thumbdrive (or SD card) main folder ( not in any subfolders ). NOTE: If the Ubuntu rootfs download link gives you a file with an earlier date (e.g. …20140430.7z), its OK, it simply means that there has not been any changes to the rootfs since the one released that date, what you are downloading is the latest version.
- Power up pcDuino3 with a 5V 2A power supply via microUSB power port (the one beside the HDMI port)
- Connect the powered pcDuino3 to the Windows machine using a microUSB cable. Plug the cable into the microUSB OTG port located on the opposite end of the board, beside the USB2.0 port. If Windows asked you to install drivers, just accept and install them.
- Run PhoenixCard. Check that pcDuino3 is powered and is still connected to Windows machine via microUSB cable. PhoenixCard will show “No Device Connected”, don’t worry about the inaccurate message, as long as your pcDuino3 is powered and is connected to the Windows machine it will be OK.
- Click “Firmware” (top center), point PhoenixCard to the downloaded kernel image file and click “Upgrade Firmware”.PhoenixCard will say “No Device Connected”, and show a popup with 6 items in it. Again ignore the inaccurate messages and just follow the steps below.
- Now press and hold the “upgrade” button on the pcDuino3 board ( beside the short Arduino header, at the edge of the board ). Keep holding that button and press the “reset” button ( beside the black SATA connector and the powerLED, OR, between HDMI port and Ethernet port for earlier version of the board ). PhoenixCard will ask if we would like to perform force-upgrade by showing a popup with the following message: “Tips: Does mandatory format?” Confirm the upgrade by clicking on “Yes” on PhoenixCard’s popup window. This will trigger the kernel update process.
- Dismiss any open notification popups, a progress bar will show the burning progress, followed by a notification when completed:
"Upgrade Firmware Succeeded!"
- At this point, the first stage of the update process is completed. Disconnect pcDuino3 from the Windows machine but leave the 5V2A power plugged in. It will do some processing and when it reaches a certain point, it will pause. There will be a message blinking on the screen…
"Searching update.sh from usb disk..." "Searching update.sh from sd card..."
- pcDuino3 is waiting for the USB thumbdrive (or SD card) containing the Ubuntu rootfs and shell script that we prepared in step 3 earlier. Plug that USB thumbdrive in (use a USB hub so that you can also connect keyboard and mouse). Or, if using SD card, insert it into the microSD card slot under the board ( copper terminals on the microSD card facing up ).
- it will find the update.sh immediately and proceed to execute it. The monitor will show messages like the following:
mount udisk succeeded update.sh found, updating rootfs from udisk, please wait.... writing pcduino3_ubuntu_20140430.img to nand flash it will take about 6 minutes to finish...
- On the board, 2 LEDs (RX TX) will blink together one sec on one sec off. This could take a while, just wait until you get something like:
400+0 records in 400_0 records out .... update finished
- Now unplug USB drive and restart the pcDuino3 by powering off and then powering on again. After successful boot up, open terminal and execute:
$ uname -a
and verify that the date matches with the pcDuino3 Ubuntu rootfs release date.
- Congratulations, you have updated your pcDuino3! 🙂
Awesome! What’s Next?
Now that your NAND storage is loaded with the latest images, you may want to create bootable SD cards for use with your pcDuino3.
We will continue this on a separate article, stay tuned!