The Making of a Shirt – Part 1

I’ve decided it’s time to document my latest hobby. Making my ultimate shirt.

Casual Tux and Penguins

Many people might think this is my ultimate shirt. After all, it’s got Casual Tux on it, it’s purple, and to be honest, it looks awesome. But it is only my phase one shirt. My brother, who ran Kokopelli Shirts, made this for me. His friend created the design, my brother bought the fabric, his seamstress sewed the shirt. Vola’, an awesome shirt.

Shirt and Tie Even looks good with a tie.

But I have a picture in my head of my ultimate shirt. The front will be a nice Hawaiian shirt, and the back will have a large Casual Tux sitting in the middle.

These series of blogs will step you through my process of creating that shirt. It’s still not finished, so at some point we’ll go on the journey together.

Part1
Part 2 – Flowers
Part 3 – Leafs
Part 4 – Patterns
Part 5 – Fabric

Yor Linux – Shutting Down

I’m going to mothball Yor Linux.  I’ve backed up everything.  At the beginning of May I’m going to start cleaning up the repo’s and websites.

There are three main reasons that I’m doing this.

1 – I’ve proved to myself (and hopefully others) that a single person can still create their own RHEL Clone.  I’ve had a blast.  It was fun figuring out everything from infrastructure to building problem packages.  I feel that I’ve met all my goals that I set for myself.

2 – I looked at my user and website stats.  To say they were low would be exaggerating.  I believe I had one other user, and I’ve already talked to him.  My Hawaiian shirt reviews on my blog get about 1000% more visits than then entire yorlinux.org site.

3 – Bad hackers.  yorlinux.org has somehow gotten into some hacking database and gets hundreds (sometimes thousands) of hack attempts every day.  It’s really juts a matter of time before something happens like what happened to Mint.  I need to either constantly keep up the security fight, or bring everything down.  I can’t just leave my stuff up for others.

I want to thank everyone for their encouraging words as I’ve worked on Yor Linux over the years.  Like I said, I had a blast.  It was fun.  But it’s time to say good bye for now.

This is a repost from the Yor Linux blog.

Yor Linux

I must apologize for the delays in my Hawaiian shirt reviews.  I’ve been working on a project called Yor Linux that has been taking more time than I anticipated.

Yor Linux is another Red Hat Enterprise Linux (RHEL) recompiled distribution.  That means that I take the source code from Red Hat Enterprise Linux, and recompile it.  I can then use the resulting binaries any way that I want to. It’s the same thing I was doing (with others) to create Scientific Linux.

Why am I doing it.  For several reasons, but the biggest is that I really enjoy doing it.  It’s fun for me.  I’m also doing things a bit different, because it’s mine and I can.  One thing that will be different with be the 64 bit build (x86_64).  RHEL has always have a combination of 64 and 32 bit binaries in the same distribution, but only a select few 32 bit binaries.  Mine will be just 64 bit by itself, and 32 bit by itself.  If you want 32 bit binaries in your 64 bit installation, you will be able to set that up, but you will get all of the 32 bit binaries, not just a handful.

Anyway, I’m finding Yor Linux taking more of my time than I expected, and my hawaiian shirt reviews were one of the things suffering because of it.

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.

UPDATE – December 21, 2015

Due to alot of effort of many people, PCDuino3 Nano is now supported in the main uboot and kernel.  Because of that, it is now supported, out of the box on Fedora 23

These new instructions have also been tested on the new PCDuino3 Nano Lite

NEW INSTRUCTIONS

You can now follow the generic Fedora instructions. If you are doing the installation manually (which I recommend) you should follow the instructions for AllWinner A20.

Because I don’t like just putting links in, here are the instructions.

Choose a disk image.

http://download.fedoraproject.org/pub/fedora/linux/releases/23/Images/armhfp/

Write the image to your media

TYPE=  # options include KDE, LXDE, XFCE, SoaS, Mate and Minimal
MEDIA= #/dev/<location-of-your-media>
       # for example /dev/sdc, /dev/sdg, ...
       # read /var/log/messages to learn which device was assigned to your media
xzcat Fedora-$TYPE-armhfp-23-10-sda.raw.xz | sudo dd of=$MEDIA; sync

After writing the image, read the new partition table and mount the root partition

partprobe $MEDIA
PART=  #/dev/<location-of-your-media><partition-number>
       # this needs to be the root partition on the written media
       # for example /dev/sdc3, /dev/sdg3, /dev/mmcblk0p3, ...
mkdir /tmp/root; sudo mount $PART /tmp/root

Follow theses steps to write the appropriate U-Boot for your Hardware.

TARGET= # Linksprite_pcDuino3_Nano
        # Use the same target for normal or lite
MEDIA= #/dev/<location-of-your-media>
       # for example /dev/sdc, /dev/sdg, ...
       # read /var/log/messages to learn which device was assigned to your media
sudo dd if=/tmp/root/usr/share/uboot/$TARGET/u-boot-sunxi-with-spl.bin of=$MEDIA bs=1024 seek=8 conv=fsync,notrunc

Media should now be ready to boot, insert into the device and boot.

OLD INSTRUCTIONS

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 or Fedora 21 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.

Update 2015-01-12: Added link to Fedora 21 images, update link to pcDuino3 Nano kernel images.

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.

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.

Open WebOS on Fedora 16

Relavent Links:
https://github.com/openwebos – Source code for Open WebOS
https://github.com/openwebos/build-desktop – Scripts to get it built and working on your desktop

Notes:

  • Open WebOS instructions and scripts are still in a state of being updated, this is a beta after all. So it’s possible my fixes aren’t needed, or possibly might not work.
  • This is on Fedora 16. Your milage may vary on anything else.

Steps:
We are going to be following the from Open WebOS, but only modifying them to work on Fedora. When in doubt, follow the official instructions.

1 – Install Packages

  • yum -y install git git-core make autoconf libtool tcl unzip curl qt-dev gcc-c++ yajl-devel yajl qt-devel sqlite-devel pkgconfig
  • yum -y install gperf bison flex glib2-devel openssl-devel libXi-devel libXrandr-devel libXfixes-devel libXcursor-devel freetype-devel libXinerama-devel mesa-libGL-devel gstreamer-devel gstreamer-plugins-base-devel libicu-devel
  • yum -y install boost-devel boost-devel uriparser-devel c-ares-devel libsigc++-devel glibmm24-devel db4-devel libcurl-devel

2 – Setup

  • mkdir webos
  • cd webos
  • git clone git://github.com/openwebos/build-desktop.git
  • cd build-desktop
  • *patch build-webos-desktop.sh*
  • *edit install-webos-desktop.sh*

    You need to replace ${HOME} with the full path for your home. The reason for this is because you need to “sudo” this script, and when you do, it replaces ${HOME} with /root/. This is ok if you are doing all these steps as root, but if you are a normal user, you have broken links all over the place.

3 – Build and Install
From this point on, our steps are the same as the official instructions. But I will put them here so you just have one page.

  • ./build-webos-desktop.sh
  • sudo ./install-webos-desktop.sh

    Be sure to replace ${HOME} with the path for your home area.

3 – Start and Run
Again, this part is straight from the official instructions.

  • ./service-bus.sh start
  • ./service-bus.sh services
  • ./service-bus.sh init
  • ./run-luna-sysmgr.sh
  • *When you are done, close things down with*

    ./service-bus.sh stop

Patch:

--- build-webos-desktop.sh.original	2012-09-08 09:08:02.573439051 -0500
+++ build-webos-desktop.sh	2012-09-07 22:49:51.403333099 -0500
@@ -892,8 +892,12 @@
     do_fetch openwebos/db8 $1 db8 submissions/
 
     ##### To build from your local clone of db8, change the following line to "cd" to your clone's location
-    cd $BASE/db8
+    #cd $BASE/db8
+    cd $BASE/db8.local/db8
+    #sed -i 's/TEST_TARGETS := libmojocore libmojodb/TEST_TARGETS := libmojodb/' build/Makefile.inc
+    #sed -i 's|/usr/local/lib|/usr/lib|' build/Makefile.inc
     make $JOBS -e PREFIX=$LUNA_STAGING -f Makefile.Ubuntu install BUILD_TYPE=release
+    #make $JOBS -e PREFIX=$LUNA_STAGING -f Makefile.Ubuntu install BUILD_TYPE=debug
     # NOTE: Make binary findable in /usr/lib/luna so ls2 can match the role file
     cp release-linux-x86/mojodb-luna "${ROOTFS}/usr/lib/luna/"
     # TODO: remove after switching to cmake
@@ -914,6 +918,7 @@
 
     ##### To build from your local clone of configurator, change the following line to "cd" to your clone's location
     cd $BASE/configurator
+    sed -i 's|-llunaservice -lmojo|-llunaservice /lib/libglib-2.0.so.0 -lmojo|' Makefile.inc
     ARCH_LDFLAGS="-Wl,-rpath-link $LUNA_STAGING/lib" make $JOBS -f Makefile.Ubuntu
     # NOTE: Make binary findable in /usr/lib/luna so ls2 can match the role file
     cp debug-linux-x86/configurator "${ROOTFS}/usr/lib/luna/"

Six months at Red Hat

I’ve been working at Red Hat for six months.  I want to answer the two questions I’m asked the most.  Is working for Red Hat what you expected it to be?  Do you regret leaving Fermilab and Scientific Linux to work on OpenShift for Red Hat?

Is working for Red Hat what I expected it to be?

Yes, and more so.

Their dedication to Linux and open source was one of the main reason’s I wanted to work for Red Hat, so I was glad to find out how pervasive it is through the whole company..  They try to have the whole company open to all the employee’s as much as possible.   They try to support not only open source, but openness in all things, such as open hardware and open government.

Do I regret leaving Fermilab and Scientific Linux to work on OpenShift for Red Hat?

Although I loved working at Fermilab, and I loved making and maintaining Scientific Linux, t I also love working on OpenShift.  It is fast paced, great co-workers, I’m learning a lot, and I am working on a project that I think will help alot of people.

One thing I’ve been learning, is how to work with a large team of people.  I’ve had to learn that I don’t have to do everything myself.  It is a little scary letting others do what you could do, but it’s also very refreshing once you get used to it.