Present Location: News >> Blog


> iPad Air, iOS 7, Jailbreaking, etc.
Posted by prox, from Charlotte, on November 18, 2013 at 23:11 local (server) time

Yes, I have a few things to say about this.  It's not a review of the iPad Air but more of a whiny rant (shocker, I know).

I recently picked up an iPad Air MF018LL/A, which is the white cellular model with 128 GiB of storage.  I use AT&T for carrier diversity with the 3 GiB/mo plan since my phone is on T-Mobile's network.  The iPad Air replaced my iPad 3, which when I owned it was jailbroken and still running iOS 6.  I happened to sell it and all of my accessories to a colleague who is now a first-time iPad owner.

Below: iPad 3 on the left, iPad Air on the right.

iPad 3 and iPad Air

First Impression

My first impression with the iPad Air was awful since it failed at the first thing I asked it to do: install an application.  I got the dreaded "could not connect to iTunes store" error whenever I tried to install an application on Wi-Fi or cellular.

Cannot Connect to iTunes

It turns out this is an iOS 7 issue that some folks got after upgrading from iOS 6 and there was a thread on the Apple Support Communities site about it.  I had to ultimately do a factory reset and wipe of the device to fix it.  I didn't lose anything because it was a brand new iPad and I had not loaded anything back onto it.  It's odd that this hasn't been fixed in iOS 7.0.3, which is what's running on my iPad Air.  I also wonder how iOS 7 was loaded onto the iPad.  I'm almost wondering if iOS 6 was initially running on the iPad Air during development and the first few devices were shipped with a version of iOS 7 that was upgraded from an existing iOS 6 installation.  Curious.

Second Impressions

The iPad Air hardware is good.  The CPU seems fast (Google Earth is smooth as butter) and the shell (+ components) is much lighter and thinner than the iPad 3.  I'm not sure what I think about battery life, yet.  So far, it seems to last slightly less than my iPad 3 but my analysis is most unscientific.

The antennas or cellular radio itself must be better in the iPad Air vs. the iPad 3 because I have five "dots" more often than I had five "bars" on the iPad 3.  I suppose the "dots" could be mapped to different ranges of dBm in iOS 7, now, or the addition of more LTE bands is helping, although I didn't think LTE bands themselves overlapped within an area.

I configured the switch on the side of the iPad Air to control roation lock, since I have volume muted almost all of the time, anyway.  I find that, compared to the iPad 3, it's more difficult to slide the button back & forth with my finger.  The button itself appears to be rounded and the one on the iPad 3 had sharper edges that were easier to "grab" with my finger.

I'm disappointed that the fingerprint reader now being used on the iPhone 5s didn't make its way into the iPad Air.  I guess it doesn't matter to me since I probably wouldn't have used it, anyway.

iOS 7

I don't mind the visual changes in iOS 7, to be honest.  I thought the skeuomorphisms probably needed to go, too.  There are a few things that bug me, though.

The control center is an abomination.  Apple made the decision on what toggles should be available to users and didn't leave any room for customization.  It's infuriating.  I would like to swap out the airplane mode for a toggle that turns cellular data on and off.  If I'm connected to Wi-Fi and want to shut off cellular data to save a little bit of battery life, I have to navigate all of the way to settings.

It appears the text size for items on the status bar at the top of the screen has become smaller.  The text size setting doesn't appear to change the font size of them.  What's weird is the items are larger at the lock screen but shrink when the device is unlocked.  Very odd.

The IPv6 support seems better than in previous versions of iOS.  I didn't have a problem loading all web pages over IPv6 on my dual-stack network at home.  In iOS 6, some of those pages would have loaded over IPv4 due to Apple's odd HE implementation.  DHCPv6 appeared to work on one of my test SSIDs but unfortunately the iPad put the IPv4 DNS servers before the IPv6 one.  More testing is required, apparently.

DHCPv6 Fail?

One difference in the IPv6 support between iOS 6 and 7 is the implementation of RFC 4941 when SLAAC is used.  iOS 6 added temporary addresses with random interface identifiers but always kept the link-local address based on EUI-64 as well as one GUA.  iOS 7 appears to randomize the interface identifiers for both the link-local address and all the GUAs.  I really wish it was possible to disable this.


I really miss the jailbroken functionality I had with iOS 6 on my iPad 3.  Lots of people ask me why I bother to still jailbreak iOS devices—my reasons mostly relate to optimization and performance.  I'll detail them all here.

3G Unrestrictor.  This application works around some of the very annoying and pointless restrictions of iOS itself and many applications.  Podcasts, iTunes, and the App Store won't download anything over 100 MB (I assume MiB) over a cellular connection.

Over 100 MiB (or MB?)

There's no way to disable this and it's infuriating.  TWC TV won't stream live TV over cellular.  The list goes on.  These restrictions are stupid because iOS and the various applications are essentially telling the user that they're too stupid and irresponsible to use their cellular data plan.  If I want to burn up my plan downloading podcasts that is my prerogative!  3G Unrestrictor fixes all of these issues and fools applications into thinking the current network connectivity is via Wi-Fi.

SBSettings.  SBSettings provides functionality similar to iOS' control center but is instead customizable and provides tweaks that allow various things on the status bar to be changed.  Toggles include data, OpenVPN (if installed), 3G Unrestrictor, and more.  The status bar can be configured to show the current Wi-Fi SSID, numeric signal strength indicators for both cellular and Wi-Fi, non-scaled battery percentage, and more other options than I can remember at the moment.

FakeClockUp.  This application speeds up transitions and some animations on iOS.  Although these animations take only a second or so every time, this can add up to minutes and hours of wasted time over the life of a device.  This application is needed because iOS doesn't provide an option to disable these transitions.

Command-line Access.  While most non-geeks do not care about such things, command-line access provides a wealth of flexibility.  Among other things, it allows for network-related diagnostics and troubleshooting as well as the ability to directly back up media and application data that is otherwise inaccessible or only provided by other 3rd party applications.

Hopefully, the above will be usable for iPad Air owners once again when the iOS 7 jailbreak is released.  Until then, we're locked into doing things the way Apple wants us to do them, sans-choice.

Comments: 0
> OS X Mavericks and Boot Media
Posted by prox, from Charlotte, on October 22, 2013 at 16:47 local (server) time

For folks out there, like me, who like to do clean installs of OS X and require boot media to do so, Apple has apparently provided a nifty script in the OS X Mavericks installer.  It's one extra step compared to just writing InstallESD.dmg to a USB flash drive, I guess:

(quark:16:29)% cd /Applications/Install\ OS\ X\
(quark:16:29)% sudo ./createinstallmedia --volume /Volumes/Untitled --applicationpath "/Applications/Install OS X" 
Ready to start.
To continue we need to erase the disk at /Volumes/Untitled.
If you wish to continue type (Y) then press return: Y
Erasing Disk: 0%... 10%... 20%...100%...
Copying installer files to disk...
Copy complete.
Making disk bootable...
Copying boot files...
Copy complete.
(quark:16:41)% df -h
Filesystem      Size   Used  Avail Capacity iused   ifree %iused  Mounted on
/dev/disk0s2    39Gi   17Gi   22Gi    44% 4500660 5775196   44%   /
devfs          189Ki  189Ki    0Bi   100%     658       0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%       0       0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%       0       0  100%   /home
/dev/disk1s2   7.3Gi  5.0Gi  2.3Gi    68% 1307226  615788   68%   /Volumes/Install OS X Mavericks

Yep, it's nice and easy.  The installer takes up roughly 5.0 GiB of space, so an 8 GiB (or GB, in this instance) USB stick is probably required.

Comments: 0
> IPv6 Musings
Posted by prox, from Charlotte, on October 20, 2013 at 20:41 local (server) time

Warning: Soapbox.

It's almost the end of 2013.  World IPv6 Launch was over 15 months ago.  However, it appears we still have some organizations and protocols that just aren't getting with the program.  Even more shocking, we still have some that are taking measures to indirectly inhibit IPv6 development.

I've made a short list.

Get With The Program!

MPLS.  draft-george-mpls-ipv6-only-gap goes over many of the problems that need to be overcome to operate an MPLS network that is free of IPv4.  The short story is that it may be awhile before this is possible.  I can see many new ISPs deplying RFC 6598 (possibly erroneously) or RFC 1918 space on their backbones just to meet the IPv4 requirements for MPLS, in the short term, unfortunately.

Twitter.  Twitter owns 2620:fe::/40 but has not announced it into BGP, yet.  The least they could do is provide something like on a proxy server to show their interest in keeping up with technology.

Debian GNU/Linux bug #592539 for isc-dhcp-server.  The isc-dhcp-server package has both IPv4 and IPv6 functionality but the init scripts to start the IPv6 version of the daemon don't exist.  Yes, this means that you can't use DHCPv6 on Debian without writing your own init script or starting it manually.  The bug was opened in August of 2010 and has yet to be resolved.  Get with the program, folks!

Amazon EC2.  This is a sore subject.  The only AWS service that supports IPv6 is ELB, unfortunately.  EC2 doesn't support it in any region or availability zone, at the moment.  This is preventing lots of organizations from correctly deplying IPv6.

Google Compute Engine.  GCE is a very poor competitor to Amazon EC2 for a variety of reasons.  Google could have actually made one feature more attractive than EC2 by offering IPv6 on it.  Unfortunately, they didn't.  Fail.

Skype.  We all know about this one, so let's just move on.

Why do you hate IPv6?

FreeBSD.  A change in the defaults for the IPv6 address selection algorithm in FreeBSD 9.x leaves users with an OS that always prefers IPv4 connectivity when both A and AAAA RRs exist for a particular label.  There are two knobs that can be put in /etc/rc.conf that change this behavior (ipv6_activate_all_interfaces and ip6addrctl_policy).  That being said, versions of FreeBSD prior to 9.x defaulted to always preferring IPv6 over IPv4 when both RRs exist.  It's very backward-thinking of the FreeBSD folks to introduce such a drastic change in the operating system's defaults after supporting IPv6 for so long.  Apparently, FreeBSD 4.0 introduced support for IPv6 back in 2000.

Carrier Grade NAT.  Unlike traditional NAT, CGN is often deployed on residential networks as a second layer of NAT (the customers' home routers being the first layer).  This second layer of NAT breaks end-to-end connectivity even worse than a single layer of NAT, rendering a variety of peer-to-peer applications useless.  Even though the problems with CGN are numerous, it helps ISPs push back the deployment of IPv6 for a little while longer, unfortunately.

Comments: 0
> Junos 12.1X44/45, 13.2X50
Posted by prox, from Pineville, on September 15, 2013 at 10:49 local (server) time

If any of you are thinking of running Junos 12.1X44 or 12.1X45 on the SRX branch series, think again.  My SRX100H at home running 12.1X45-D10 runs out of memory every 3-4 days and reboots:

einstein (ttyu0)

login: Sep 14 16:50:46 init: low_mem_signal_processes: send signal 16 to  routing
Sep 14 18:23:43 init: low_mem_signal_processes: send signal 16 to  routing
init died (signal 4, exit 0)
panic: Going nowhere without my init!
cpuid = 0
KDB: stack backtrace:
0x4af834+0x20 (0x6,0,0x3f7eef10,0x4bec10) ra 0x4af7fc sz 0
0x4af7c0+0x3c (0x6,0,0x3f7eef10,0x4bec10) ra 0x4ae114 sz 32
0x4ae090+0x84 (0x6,0,0x3f7eef10,0x4bec10) ra 0x445094 sz 56
0x445020+0x74 (0x6,0,0x3f7eef10,0x4bec10) ra 0x445110 sz 40
0x445020+0xf0 (0x6,0,0x3f7eef10,0x4bec10) ra 0x44625c sz 40
0x4461d4+0x88 (0x6,0,0x3f7eef10,0x4bec10) ra 0x446978 sz 64
0x446944+0x34 (0x6,0,0x3f7eef10,0x4bec10) ra 0x4b03f4 sz 32
0x4b03b4+0x40 (0x6,0,0x3f7eef10,0x4bec10) ra 0x4b06b8 sz 40
0x4b05d8+0xe0 (0x6,0,0x3f7eef10,0x4bec10) ra 0x4926b4 sz 32
0x492630+0x84 (0x6,0,0x3f7eef10,0x4bec10) ra 0x48d6b4 sz 48
0x48d588+0x12c (0x6,0,0x3f7eef10,0x4bec10) ra 0x4039a4 sz 3512
0x403968+0x3c (0x6,0x4d22b4,0x3f7f0060,0x4bec10) ra 0x403e40 sz 40
0x403d60+0xe0 (0x6,0x4d22b4,0x3f7f0060,0x4bec10) ra 0x3ffeefe0 sz 32
VA 0x3ffdefdc: not in user area or heuristics failed
_start+0xbfeeef00 (0x6,0x4d22b4,0x3f7f0060,0x4bec10) ra 0 sz 0
pid 1, process: init
Uptime: 4d1h54m46s
Cannot dump. No dump device defined.
Automatic reboot in 15 seconds - press a key on the console to abort
cpu_reset: Stopping other CPUs

It doesn't bother me too much except I'm worried that eventually I'm going to start seeing some things in lost+found.

Also, my EX2200-C running Junos 13.2X50-D10.2 dies every week or two, too.  I don't have a persistent console on it, though, so I'm not sure what's happening.  The RE goes unreachable but the PFE still keeps on going (although possibly not learning additional MACs).

While it's neat to run the latest and greatest code, I'm glad I'm not running any of the mentioned X releases on any production gear at work.  Yes, JTAC recommends certain releases for a reason.

Comments: 3
> Fish Oil
Posted by prox, from Charlotte, on September 07, 2013 at 16:27 local (server) time

A few weeks ago I posted a blog entry about cholesterol, specifically the lack of my HDLs.  One of the suggestions I read about to increase HDLs involved taking fish oil.  So, I've been trying this.

I picked up some Barlean's Fish Oil and have been taking two teaspoons of it per week (Monday and Thursday, usually).  There was some question of whether it should be refrigerated so I decided to keep it in chilled.

I was going to give it six (6) months and see if it made any impact on my HDLs.  I figured it wouldn't have any other effect on my health but it looks like it might be giving me more energy while swimming.  Check out this graph of my swim times:


My times have slightly improved.  I feel like I have more energy than I did before taking the fish oil, oddly enough.  However, correlation does not imply causation so I can't be sure that the reason I have more energy is solely because of the fish oil.  However, I will be continuing with it!

Comments: 0
> Junos and SLAX Stupidity
Posted by prox, from Charlotte, on July 31, 2013 at 21:28 local (server) time

Well, it's official.  I suck at SLAX.  I managed to find myself in a small situation at work where I needed to create an op script that's called by some conditions under event-options.  Anyway, I always get stuck on the most simplest of things with SLAX and today was no different.

I couldn't figure out how to activate and deactivate portions of the Junos configuration, of all things.  I'm talking about stuff like this:

prox@enterprise# show protocols 
bgp {
    group foobar {
        peer-as 64512;

prox@enterprise# deactivate protocols bgp group foobar 

prox@enterprise# show protocols                           
bgp {
    inactive: group foobar {
        peer-as 64512;

prox@enterprise# activate protocols bgp group foobar      

prox@enterprise# show protocols                         
bgp {
    group foobar {
        peer-as 64512;

For some reason, this was not easily searchable on Google or Bing.  I did manage to figure it out, though.  To deactivate a piece of the configuration, do the following:

var $config-change = <configuration> {
     <protocols> {
          <bgp> {
               <group inactive="inactive"> {
                    <name> foobar;
var $connection = jcs:open();
var $results := { call jcs:load-configuration( $connection, $configuration = $config-change ); }
if( $results//xnm:error ) {
     for-each( $results//xnm:error ) {
          <output> message;
var $close-results = jcs:close($connection);

The above was easily found by just doing something like "show configuration protocols bgp | display xml" on the CLI.  However, what I wasn't able to find was how to activate the section, again:

var $config-change = <configuration> {
     <protocols> {
          <bgp> {
               <group active="active"> {
                    <name> foobar;
var $connection = jcs:open();
var $results := { call jcs:load-configuration( $connection, $configuration = $config-change ); }
if( $results//xnm:error ) {
     for-each( $results//xnm:error ) {
          <output> message;
var $close-results = jcs:close($connection);

The active="active" piece was all that was needed.

I really would prefer to code op scripts in Perl or Python but I don't think I have much of an option when calling them from event-options.  Oh well.

Comments: 2
> Cholesterol
Posted by prox, from Charlotte, on July 25, 2013 at 21:50 local (server) time

I'm a little puzzled.  Every year or two (uh, or three) I have a physical and get my cholesterol taken.  It's constantly going down, which I suppose is a good thing and an indication my diet is not horrible:

Cholesterol Plot

This year, though, my HDL levels are lower than they should be.  According to my doctor, they should be 40 mg / dL for men.  Mine is now 38 mg / dL.

I've heard people say I should quit smoking, exercise, and keep my mass down.  I can't quit smoking because I never started.  I swim 2,600 yards ~3 three times per week and, at least according to Garmin Swim, burn 500+ calories every time.  I jog 45-50 minutes every 2-3 weekends.  I suppose I could improve on this, since I used to swim 4-5 times per week.  I think my mass is fine.

Other folks have told me to start taking fish oil.  To be honest, I thought taking fish oil was intended to lower cholesterol for folks who are in the severe red.  I eat fish once or twice a week (mmm.. salmon and tuna), but apparently even if I ate fish every day it wouldn't be sufficient.

What does everyone else think?  I'll have to admit I have done very little empirical research on this topic.

Comments: 0
> FreeBSD 9.0 and VirtualBox
Posted by prox, from Charlotte, on July 15, 2013 at 01:30 local (server) time

I finally decided to upgrade dax from FreeBSD 8.3-RELEASE to 9.1-RELEASE while stepping through 9.0-RELEASE.  As alawys, I hit a snag.

When stepping through 9.0-RELEASE to get to 9.1-RELEASE (I'm not sure if this is really required but I figured it wouldn't hurt) I ran into a nasty situation with the VirtualBox kernel modules.  Specifically, the kernel module vboxnetflt.ko in the 4.2.16 version of VirtualBox causes the FreeBSD kernel to panic before it's even mounted the root file system:

[.. output trimmed ..]
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
coretemp0: <CPU On-Die Thermal Sensors> on cpu0
coretemp1: <CPU On-Die Thermal Sensors> on cpu1
coretemp2: <CPU On-Die Thermal Sensors> on cpu2
coretemp3: <CPU On-Die Thermal Sensors> on cpu3
Timecounters tick every 1.000 msec

Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address    = 0xc
fault code          = supervisor read data, page not present
instruction pointer = 0x20:0xffffffff80cb2717
stack pointer          = 0x28:0xffffffff80d17ab0
frame pointer          = 0x28:0xffffffff80d17ad0
code segment        = base 0x0, limit 0xfffff, type 0x1b
               = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags    = interrupt enabled, resume, IOPL = 0
current process          = 0 (swapper)
trap number         = 12
panic: page fault
cpuid = 0
KDB: stack backtrace:
#0 0xffffffff804d752e at kdb_backtrace+0x5e
#1 0xffffffff804a20e7 at panic+0x187
#2 0xffffffff806e9140 at trap_fatal+0x290
#3 0xffffffff806e9489 at trap_pfault+0x1f9
#4 0xffffffff806e994f at trap+0x3df
#5 0xffffffff806d3def at calltrap+0x8
#6 0xffffffff80c94c52 at supdrvCleanupSession+0x52
#7 0xffffffff80c94ee1 at supdrvCloseSession+0x11
#8 0xffffffff80c9622b at supdrvIDC+0x10b
#9 0xffffffff80cf3ee6 at supR0IdcNativeCall+0x16
#10 0xffffffff80cf40a0 at SUPR0IdcClose+0xa0
#11 0xffffffff80cf3809 at vboxNetFltInitIdc+0x79
#12 0xffffffff80cf3857 at vboxNetFltInitGlobalsAndIdc+0x27
#13 0xffffffff80cf312b at vboxnetflt_modevent+0x3b
#14 0xffffffff80cfb634 at ng_mod_event+0x44
#15 0xffffffff804912c8 at module_register_init+0xb8
#16 0xffffffff80456ac7 at mi_startup+0x77
#17 0xffffffff8027177c at btext+0x2c
Uptime: 2s
Automatic reboot in 15 seconds - press a key on the console to abort
--> Press a key on the console to reboot,
--> or switch off the system now.

As a result, dax was stuck in an endless reboot for 15-20 minutes as I drove home, since I did the upgrade while mobile.  It also took me awhile to figure out how to not load the vboxnetflt.ko at boot since I only had access to the loader prompt.  The disable-module directive didn't seem to work:

OK lsmod
 0x200000: /boot/kernel/kernel (elf kernel, 0xa46fb0)
  modules: x86bios.1 io.1 ufs.1 kernel_mac_support.4 [.. trimmed ..] 
 0xc47000: /boot/kernel/linux.ko (elf obj module, 0x45078)
  modules: linux.1 
 0xc8d000: /boot/kernel/accf_http.ko (elf obj module, 0x17d0)
 0xc8f000: /boot/kernel/coretemp.ko (elf obj module, 0x29e0)
 0xc92000: /boot/modules/vboxdrv.ko (elf obj module, 0x59c40)
  modules: vboxdrv.1 
 0xcec000: /boot/modules/vboxnetadp.ko (elf obj module, 0x5bf0)
  modules: vboxnetadp.1 
 0xcf2000: /boot/modules/vboxnetflt.ko (elf obj module, 0x7568)
  modules: vboxnetflt.1 
 0xcfa000: /boot/kernel/netgraph.ko (elf obj module, 0x15440)
  modules: netgraph.12 
OK disable-module vboxnetflt
vboxnetflt was not found
OK disable-module /boot/modules/vboxnetflt.ko
/boot/modules/vboxnetflt.ko was not found
OK disable-module vboxnetflt.1
vboxnetflt.1 was not found

It would always load vboxnetflt.ko, for some reason.  Apparently the trick was to unload all modules, load the kernel manually, and then boot.  These steps got the system up and running again.  The first thing I did was rename vboxnetflt.ko, of course.

I'm hoping this problem is fixed in 9.1-RELEASE, which I don't have time to mess with now but I'll probably get to tomorrow evening.  I wasn't able to find much via web searching related to this type of problem, unfortunately.  I can't be the only one encountering this, can I?

Update: It looks like taking the vbox* modules out of loader.conf and loading them after the OS is started fixes the problem.  For some reason vboxnetflt.ko freaks out when loaded at boot.  Instructions here are good to follow, too.

Comments: 0

Previous PageDisplaying page 2 of 116 of 927 results Next Page