Subject Change

Just making a small change to the site.  Instead of just sys admin stuff, I want to also start sharing information about how tech had also been changing my hobby in model railroading.  And possibly just model railroading stuff in general.

 

Nabi 2

Image

It’s been a while.  Life as usual gets in the way.  What I am going to post today is the adventures that I am going through with my son’s Nabi 2.  Back at his last birthday, we got him a Nabi 2.  This an outstanding tablet that is made for kids.  The UI is nice and simple and the company has gone through great efforts to provide good content and a very good job selecting kid safe apps and activities.

What really got my attention as a geek is that under the hood, it is a 7″ Android 4.0 tablet that is using a Tegra3.  Basically, it is a Nexus 7 with a lower resolution screen.  Kid’s by default do not have access to the Android UI.  They are kept in the kid sake mode.  But in the menu is the option to flip back and forth when needed between the kid mode and the mommy/daddy mode which is the full Android.  But from the daddy perspective, there where a few road blocks.

  1. Not a Google services enabled devices.  There are no Google services, including access to the Play Store.  Nabi provides their own app store which is kid safe.  After all, this was supposed to be meant for kids.  But I had an investment already in kid apps for Android and wanted to get them on there.
  2. Storage limitations.  It has 8GB of internal storage and also has a micro SD slot, which I put a 32GB card in for videos that I’ll have in there for the long car trips.  The big problem for me was that it didn’t properly support and ‘SD card’ in the manner that it didn’t support apps2sd.  Everything you downloaded went to the internal storage, including any extra app data.  And when you try and download Asphalt 7 (1.6GB of data), the internal storage was not sufficient.
  3. Many Play Store apps are listing an not compatible.  Not sure what is happening here, but apps like Angry Birds and even Google apps like Maps show as not compatible.  Weird.

So off I went in search of a way to get some of my apps installed onto the Nabi.  Good news is that the Nabi fully supports side loading.  So I didn’t have to do any rooting.  There were a few options like installing alternative app stores like Amazon, but since I do not live in the US, I don’t have access to that.  Then I found this great post for installing using Air Droid.  This worked great.  I didn’t have to root.  All I needed was another Android device to transfer the apps from.

Using Air Droid worked great, but it eventually became a pain since I had to transfer whenever any apps were updated.  So I decided to go the full root and install the Google apps with Play Store.  Took a bit of searching, but I finally found a great post for rooting and installing Gapps that worked perfect. Yes, these instructions are for using Ubuntu Linux, but I am finding that Linux seems to be a great tool for Android hacking.  One warning and gotcha that I ran into is that you really need to have a micro SD card added into your Nabi.  When I first tried to following the instructions, the installation tried to do a backup of the current ROM, but I didn’t have enough space on the internal storage.  But once I got the 32GB SD card and installed it, it worked perfectly.  So how I have problem #1 solved.  Between the Air Droid and now having Play Store access.  He could get the he wants.

But I ran into problem #2 above when I tried to install some larger apps.  Fortunately, I found another post that did some funny mount point manipulation so that app data was saved to the external card.  It’s was simple to do since you only had to install an app and make a few settings.  Later that night I installed Asphalt 7 on the Nabi and all the 1.6GB of extra data was stored on the external card.  One note to mention, that people might complain about, is that the apps are still installed on the internal storage.  I don’t see that as a problem since there is a few GB of space and I’m not going to have that many apps on this tablet.  Problem #2 from above solved.

++++++++++

Update(Dec. 1,2013): Small update on my usage of the ‘Directory Bind’ application.  It still works great, but my list of directory mappings is now a bit different.  The first thing I did was create a separate directory on the external sdcard.  I don’t like how the post made you put everything on top of each other.  So below is the pattern I have found to be most effective.

Source Target
/mnt/sdcard2/storage/Android/ /sdcard/Android/
/mnt/sdcard2/storage/data/ /sdcard/data/
/mnt/sdcard2/storage/games/ /sdcard/games/
/mnt/sdcard2/storage/onemobile_download/ /sdcard/onemobile_download/

++++++++++

So that’s how far I am currently.  I haven’t solved problem #3 yet, but that is just a matter of free time.  Just wanted to share what I have gotten done so far.  If someone knows an easy way to fix this last problem, please pass it along.

Update(Dec. 1,2013): For finding the apps I can’t get in the Play Store, I get them from an app called 1Mobile Market.  Not my kids can get Angry Birds.

 

ZFS Server Greatness

As I mentioned previously, I like to run a PC as a server in my home to centralize all the files instead of having documents, pictures, videos, etc., spread out on various PCs.  But as time goes on, and the amount of files being collected grows, you really start to panic about losing files.  Especially when you have years of digital photos.  So I went in search of a solution for safe storage.  For a while, I used a first generation Drobo.  Great product.  You can swap in and out new drive to easily grow the amount of space available.  But as I was running Linux and trying to use it in a server setup for a year or so, it just wasn’t working for me. Then I found the breakthrough of a lifetime, which is ZFS file system.  It make traditional hardware Raid look like a joke for ease of setup, especially for what I needed.

If you haven’t heard of ZFS, watch this great video I found that explained it all good and got me up and going in no time at http://blogs.oracle.com/video/entry/becoming_a_zfs_ninja.  But when it comes to ZFS, you’re limited by the options for operating systems. ZFS, a technology in then Sun Microsystems Solaris, now Oracle Solaris.  When I first started using it, I started with OpenSolaris as the operating system.  A great operating system with a great community.  Since then, I have migrated to Oracle Solaris 11 Express.

Setup of a ZFS file system was really easy.  What I needed was to have a pair of drives act as a mirror so I have a complete copy of the files on each drive.  As an example, here is how easy it was.

1. First, you’ll need to figure out what Solaris calls your drive. You can find this out by using the format command.

root@nas:~# format
Searching for disks...

AVAILABLE DISK SELECTIONS:
       0. c11d0 < cyl 19454 alt 2 hd 255 sec 63>
          /pci@0,0/pci-ide@11/ide@0/cmdk@0,0
       1. c11d1 <ST320082-         3ND2FLA-0001-186.31GB>
          /pci@0,0/pci-ide@11/ide@0/cmdk@1,0
       2. c12d1 <WDC WD20-  WD-WMAZA339211-0001-1.82TB>
          /pci@0,0/pci-ide@11/ide@1/cmdk@1,0
       3. c13d0 <ST320082-         5ND0KM1-0001-186.31GB>
          /pci@0,0/pci-ide@14,1/ide@0/cmdk@0,0
       4. c13d1 <WDC WD20-  WD-WMAZA320422-0001-1.82TB>
          /pci@0,0/pci-ide@14,1/ide@0/cmdk@1,0

2. Look at the output and you will see at the start of each entry, an ID like c13d1. This is the name to remember.  So to create my mirror with disks c13d1 and c12d1, I did the following.

zpool create files mirror c13d1 c12d1

That’s it.  A new ZFS pool was created called ‘files’ using the two disks in a mirrored setup.  It also automatically mount the pool as /files in the file system and is “formated” as a ZFS file system.  How easy was that?

Now that other part of ZFS that I like, but is hard to explain is a ZFS dataset.  It’s kind of like a partition, but not bound to a particular size, but easiest to think of it like a partition.  The reason I wanted this was to keep track of the amount of space certain files were taking up. So within my ‘files’ zpool, I created several datasets such as one for photos, another for videos, another for general files, etc.  Each dataset within a zpool can take up as much disk space as it needs but needs to share the space with the other datesets in the zpool.

So to create one of these datasets, as an example, I will create a dataset for my videos under the files zpool.

zfs create files/video

Now I have a new dataset within ‘files’ for videos.  What’s really interesting is that you can nest these datasets. So as I mentioned, I created several datasets for my different data.

root@nas:~# zfs list
NAME               USED  AVAIL  REFER  MOUNTPOINT
files             1.09T   715G    34K  /files
files/Audio       3.66G   715G  3.66G  /files/Audio
files/Pictures    23.1G   715G  23.1G  /files/Pictures
files/files       34.8G   715G  34.8G  /files/files
files/gallery     1.92G   715G  1.92G  /files/gallery
files/home        28.1G   715G  28.1G  /files/home
files/mail        3.26G   715G  3.26G  /files/mail
files/video       865G    715G   865G  /files/video

As you can see, you will notice that the AVAIL space is identical for each dataset.  This is because they are all sharing the space within the zpool ‘files’.  So they look like partitions but aren’t fixed to a size.  Now I can see that my photos are taking up 23.1 GB of space.

Well, this is the first post of my adventures with ZFS.  If you haven’t had a chance, watch the video that I linked to above about how fun and easy it is to use.