Fedora on pcDuino3 Nano

When I got my pcDuino3 Nano, I found that there were no instructions on how to get it to boot into Fedora. I’m writing this so that not only can others know how to do it, but others can hopefully make it easier.

Section 1 – Setup to boot off the micro-sd card

The pcDuino3 Nano is very picky about booting off the micro-sd card.

Required:

  • 4Gig or more, micro-sd card

Steps:

  • Boot in factory installed ubuntu, with micro-sd card in micro-sd card slot.
  • Partway through the boot, it will say to hit F8 to go into machine setup.
    • If you miss this, then get a console window and type “board-config.sh” to bring up the menu.
  • Select “make_mmc_boot”
    • This will take everything that is on the inner 4Gig flash drive and move it onto your SD card.  The SD card will be formated with two partitions.  Partition 1 will have critical boot image on it.  Partition 2 will have the operating system on it.
  • After it is done, you can boot off that sd-card.

Section 2 – Setup to run Fedora on pcDuino

These instructions might seem complicated.  But they are really much simpler than the first few times I did this.  All of these instructions will work on Fedora, RHEL6+, or Scientific Linux 6+.

Required:

  • 4Gig or more, micro-sd card that pcDuino will boot off.  From Section 1
  • USB micro-sd card converter
  • Linux machine

Steps:

  1.  Get a VFAT Fedora image from the Fedora 20 arm download area.  I suggest the minimal version.
  2. decompress the image
    • unxz Fedora-Minimal-VFAT-armhfp-20-1-sda.raw.xz
  3. Insert micro-sd card into linux machine.
  4. If you have auto-mounting turned on, unmount the partitions, but do not “Safely Remove”
  5. Repartition the micro-sd card, I suggest fdisk.
    • Do not touch partition 1
    • Add swap as partition 3, but the blocks must be right after partition 1.  I suggest a 200M swap partition.
    • / must be on partition 2.  The blocks should start right after the swap partition.  Have it fill the rest of the disk.  (If you want more partitions, go ahead, but these instructions won’t work very well.
    • The partitions should look something like this
      Device Start End Blocks Id System
      /dev/sdc1 33 544 16384 83 Linux
      /dev/sdc2 6946 242560 7539680 83 Linux
      /dev/sdc3 545 6945 204832 82 Linux swap / Solaris
  6. Format the new parititions
    • mkswap /dev/sdc3
    • mkfs.ext4 /dev/sdc2
    • (optional) e2label /dev/sdc2 sdroot
  7. mount drives
    • For me, easiest to just remove then put back in sd card, it gets auto-mounted
    • For these instructions, we will say partition 2 is mounted on /media/sdroot
  8. As root, install  libguestfs-tools
    • yum -y install libguestfs-tools
  9. As root, extract the / filesystem from your decompressed download on Step 2, and put it onto partition 2
    • virt-tar-out -a Fedora-Minimal-VFAT-armhfp-20-1-sda.raw / – | (cd
      /media/sdroot/ && tar xvf -)
  10. sync
  11. Fix fstab so that it mounts correctly
    • Hint, find the UUID with “ls -lh /dev/disk/by-uuid/”
    • vi /media/sdroot/etc/fstab
    • Before:
      UUID=cbb10846-9a6d-4fa4-97c0-d313eebe2f8f / ext4 defaults,noatime 0 0
      UUID=DEC2-ACAF /boot/uboot vfat defaults,noatime 0 0
      UUID=194c1589-9624-43e7-8278-41b0d5a9a76e swap swap defaults,noatime 0 0
    • After:
      UUID=600a6d0f-93cb-4a96-b02d-48d36003f0ba / ext4 defaults,noatime 0 0
      UUID=9d676914-2eeb-44da-be8c-3596bcee8fd5 swap swap defaults,noatime 0 0
  12. Setup root account so you can login without a password
    • There is a bug in initial-setup. It crashes when it runs, so you have no way of logging in unless you setup logging in as root with no password.  Just remember to set the root password first thing after logging in.
    • vi /media/sdroot/etc/passwd
      • Remove the ‘x’ from the line beginning with ‘root’
  13. sync
  14. Unmount micro-sd-card partitions again, or select “Safely Remove” and remove from your linux machine.
  15. Put, micro-sd card in your pcDruino, hook up an hdmi monitor to it, and power your pcDruino on.
  16. It should go to the login prompt.
  17. Login as root, with no password, then set the password, first thing.

Section 3 – How to reset to factory settings

I managed to overwrite the build in flash, install fedora onto the built in flash with no way of logging in, and a few other fun things.  Resetting to factory settings isn’t as easy as it sounds, but they do have instructions.  Here is the video that takes you through the steps.

In the future, I hope to be able to do this on a Linux machine.

Required:

  • 2Gig or more, micro-sd card
  • USB micro-sd card converter
  • USB flash drive, normal format (msdos or vfat), with at least 2Gig of free space.
  • Windows Machine

Steps:

  1. Get kernel and ubuntu image from here - http://www.pcduino.com/image-pcduino3-nano/
  2. Install PhoenixCardv309 (From image page) or PhoenixCardv310 (From here).  I found that I had to use version 310 on Windows 7.  (Yes, that’s right, you have to run windows to reset your linux machine. Even worse, they recommend windows xp)
  3. Put 2Gig (or larger) micro-sd card in USB converter (not SD card converter), put it into your windows machine, run PhoenixCard, make sure it’s looking at the right drive, select your downloaded kernel, then select “Burn”.  When it’s done, safely remove your micro-sd card from the computer.
  4. Get a normally formatted usb flash drive, with at least 2Gig of free space.  Extract the ubuntu stuff from the zip file you downloaded in step 1, and put it (both the script, directory, and image file) on the bottom directory of the flash drive.
  5. Put the 2Gig micro-sd card in your pcDuino and power cycle it.  Nothing should come on the screen, but the green lights should slowly blink.  After it is done blinking, let it sit for another 10-30 secionds, just to be sure, then power off the pcDuino and take out the micro-sd card.
  6. Power on the pcDuino, with a monitor hooked up it.  It will set things up, then start asking to put in a USB drive with setup.sh on it.  At that time, put in the USB drive from step 4.  It wil lthen dd the ubuntu image onto the 4th partition of the built in flash drive.  Wait until it is done.
  7. Reboot and enjoy the machine back to the way it was from the factory.

pcDuino3 Nano review

I got a pcDuino3 this past week. After doing some pretty extensive testing over the weekend I feel like I’m up for a review.
I now have 3 small arm devices. I’m pretty limited for space, so these little things are great for me. They take almost no room, and use very little power. I have:

pcDuino3 Nano – vs – Raspberry Pi

Let’s be honest, there is no comparison.  Spend the extra $5 and get the pcDuino3 unless you need something very specific to the Raspberry pi.
Not only are you getting double the memory, 10x the network speed, a SATA port, dual cores that run almost 2 times faster, but you get the ARMv7 based CPU instead of the ARMv6.  I found that the the floating point processing in the ARMv7 made the difference on what I could use the board for.
Also, you can run Fedora, without modification, on ARMv7 boards.

pcDuino3 Nano – vs – BeagleBone Black

This is a much better comparison.  Both boards are running the AllWinner A20.  Both boards can run Fedora, unmodified.  Both boards have 4 Gig of storage onboard, with a micro-sd slot.

pcDuino3 Nano bonus points:

  • 1 GB DRAM (512M on BBB)
  • 1 Gbps ethernet (100M on BBB)
  • SATA port (none on BBB)
  • Full size HDMI video port (micro-hdmi on BBB)

BeagleBone Black bonus points:

  • Boot off micro-sd card with no extra setup (pcDuino takes tweaking to boot off sd-card)
  • Boot into normal kernel (have to use pcDuino kernel for pcDuino)

Summary:
HARDWARE: pcDuino3 Nano wins.
SOFTWARE: BeagleBone Black wins.

My thoughts on the Red Hat / CentOS partnership

It’s been six months since Red Hat announced they were joining forces with CentOS. I think things have settled down enough for me to make a post without controversy. I’ll use my usual question and answer format to answer the most common questions I’ve gotten.

Q: Did you know about the plans for the merger?
Yes. I was in the loop as a “consultant” for about 8 months.

Q: Why CentOS and not Scientific Linux?
There were pro’s and con’s for each distribution. I personally thought that Scientific Linux’s workflow and desire for others to create “spins” would have fit better with Red Hat’s goals. But the complications associated with working with goverment funded labs far outweighed the work that would have been saved by using Scientific Linux.

Q: What is Red Hat’s real agenda? Are they trying to get rid of RHEL clones?
If you read Red Hat’s press releases about why they wanted to do this, then you know what their real agenda is.
They are not trying to get rid of the RHEL clones.
Red Hat needed a way to be able to let people try their products that layer on top of RHEL. But how can you let people try them without giving away RHEL for free.
My best example is from OpenShift, the product I work on. We had OpenShift Origin that worked on Fedora, and we had OpenShift Enterprise, that works on RHEL6. But we had no official way for users who didn’t already have RHEL subscriptions to try OpenShift on an enterprise OS. After the team up with CentOS we are able to have users try OpenShift Origin on CentOS.

Q: Do I think the whole joining of forces thing will work?
Yes. I think there is still going to be some rough patches. But I think as the months turn into years, those rough patches will be worn smooth.

Q: How does this affect Scientific Linux?
I am unable to comment on this question at the present time. Not because anyone is silencing me. But because currently I don’t know. There are multiple paths that Scientific Linux can take, and they are proceeding with caution and due diligence.

Hepix Dinner

Gallery

This gallery contains 20 photos.

The Hepix Dinner was help at the Henry Ford Meusium. It was a casual buffet style with different tables having different cultural foods. All of it was very good.

Hepix 2013

Gallery

This gallery contains 4 photos.

Hepix 2013 was held in Ann Arbor, Michigan, USA. It was from Monday October 28 to Friday November 1, 2013. These are a few of the general pictures taken there.

Two Years at Red Hat

Do you still enjoy working at Red Hat?
Has the enviroment changed after the novelty wore off?

Yes, I still love working at Red Hat.
I no longer wake up, surprised to find myself working at Red Hat, so in that sense, the novelty has worn off.
But, even after two years, the Red Hat culture still feels like a custom fit to me.

Do you still like working on OpenShift?

Yes.
The team has grown quite a bit, but it is still an awesom team to work with. There is the occasional disagreement over an issue here or there. But everyone looks at the real goal, and works out the best way to do it.
Besides the great people to work with, I really like that OpenShift has transformed into a three pronged project. OpenShift Origin has all the source code out there if you want to set up your own OpenShift infratructure on your own. OpenShift Enterprise let’s you setup up your own OpenShift instrastructure with our help and support. And then OpenShift Online, for those who just want to use it, ready made.

Any interesting stories to tell?

It’s always interesting having people from Sales contact me, asking for the inside scoop on RHEL clones. Even though I work for Red Hat, I still feel the same about RHEL clones. I feel RHEL should be used in your production enviroments and/or when you need support. But you should use Scientific Linux in your testing and/or development enviroments. They never like to hear that, and they rarely contact me again. My Red Hat is off to the one sales guy who not only contacted me again, but allowed me to speak to their customer.

Open WebOS on Fedora 17

The Open WebOS team is hard at work. As soon as I finished my post to build OpenWebOS on Fedora 16, they had already updated the build script to include more items, particularly the web browser. The browser required libraries that were only found in Fedora 17.

I had been looking for an excuse to update to Fedora 17, and now I found one.

Unfortunatly they aren’t prepared for a bleeding edge distribution like Fedora. The library pbnjson that they want to build, doesn’t like the yajl version 2.0.4. Fedora 16, and all of the supported Ubuntu versions, have yajl 1.0.x. And this library builds just fine with all the 1.x version.

So, to make a long story short, I’m working on putting things into rpm’s, so that I can build these packages on my terms. It will take me longer than using their script, but I will have more control, and it will be more reproduceable.

So far, I am using the system cmake, and I have made the cmake-modules-webos rpm.

cmake-modules-webos-0.9-1.fc17.src.rpm
cmake-modules-webos-0.9-1.fc17.noarch.rpm

As I work my way through each module, I’ll see if I can just use the system version instead of the Open WebOS version. Hopefully that will make things more system independant.