Parallels 11 and Linux kernel 4.7

September 6th, 2016

Man I hate using a Mac. It's like getting 60% of the configurability I expect from a computer, and then the buttons don't work. Super frustrating. Sadly the company I work for doesn't allow Linux as an actual desktop, for what I'm sure are good reasons. The way I keep productivity and sanity is to run Parallels with a Fedora install and do my work in there.  I ran into a problem though.  What I'm seeing is that on an upgrade from a 4.6 kernel to 4.7 (specifically from 4.6.7 to 4.7.2), parallels-tools cannot install its prl_fs module to make shared folders available. The error message is copied from the log here:

DKMS make.log for parallels-tools-11.2.1.32626 for kernel 4.7.2-201.fc24.x86_64 (x86_64)
Mon Sep  5 18:44:23 CDT 2016
cd prl_eth/pvmnet && make
cd prl_eth/pvmnet && rm -rf .*.cmd .tmp_versions
cd prl_tg/Toolgate/Guest/Linux/prl_tg && rm -rf .*.cmd .tmp_versions
make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[1]: Entering directory '/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_eth/pvmnet'
cd prl_fs/SharedFolders/Guest/Linux/prl_fs && rm -rf .*.cmd .tmp_versions
cd prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze && rm -rf .*.cmd .tmp_versions
make -C /lib/modules/4.7.2-201.fc24.x86_64/build M=/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_eth/pvmnet
make[2]: Entering directory '/usr/src/kernels/4.7.2-201.fc24.x86_64'
  LD      /var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_eth/pvmnet/built-in.o
  CC [M]  /var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_eth/pvmnet/pvmnet.o
  LD [M]  /var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_eth/pvmnet/prl_eth.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_eth/pvmnet/prl_eth.mod.o
  LD [M]  /var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_eth/pvmnet/prl_eth.ko
make[2]: Leaving directory '/usr/src/kernels/4.7.2-201.fc24.x86_64'
make[1]: Leaving directory '/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_eth/pvmnet'
cd prl_tg/Toolgate/Guest/Linux/prl_tg && make
make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[1]: Entering directory '/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_tg/Toolgate/Guest/Linux/prl_tg'
make -C /lib/modules/4.7.2-201.fc24.x86_64/build SUBDIRS=/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_tg/Toolgate/Guest/Linux/prl_tg SRCROOT=/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_tg/Toolgate/Guest/Linux/prl_tg modules
make[2]: Entering directory '/usr/src/kernels/4.7.2-201.fc24.x86_64'
  CC [M]  /var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.o
  LD [M]  /var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_tg/Toolgate/Guest/Linux/prl_tg/prl_tg.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_tg/Toolgate/Guest/Linux/prl_tg/prl_tg.mod.o
  LD [M]  /var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_tg/Toolgate/Guest/Linux/prl_tg/prl_tg.ko
make[2]: Leaving directory '/usr/src/kernels/4.7.2-201.fc24.x86_64'
make[1]: Leaving directory '/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_tg/Toolgate/Guest/Linux/prl_tg'
cp -f prl_tg/Toolgate/Guest/Linux/prl_tg/*.symvers prl_fs/SharedFolders/Guest/Linux/prl_fs ||:
cd prl_fs/SharedFolders/Guest/Linux/prl_fs && make
make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[1]: Entering directory '/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs'
make -C /lib/modules/4.7.2-201.fc24.x86_64/build M=/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs
make[2]: Entering directory '/usr/src/kernels/4.7.2-201.fc24.x86_64'
  LD      /var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/built-in.o
  CC [M]  /var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/super.o
  CC [M]  /var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.o
  CC [M]  /var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.o
/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.c: In function ‘prlfs_write’:
/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.c:282:19: error: ‘struct inode’ has no member named ‘i_mutex’; did you mean ‘i_mode’?
  mutex_lock(&inode->i_mutex);
                   ^~
/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.c:295:21: error: ‘struct inode’ has no member named ‘i_mutex’; did you mean ‘i_mode’?
  mutex_unlock(&inode->i_mutex);
                     ^~
scripts/Makefile.build:289: recipe for target '/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.o' failed
make[3]: *** [/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.o] Error 1
Makefile:1461: recipe for target '_module_/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs' failed
make[2]: *** [_module_/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs] Error 2
make[2]: Leaving directory '/usr/src/kernels/4.7.2-201.fc24.x86_64'
/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/Makefile.v26:13: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/var/lib/dkms/parallels-tools/11.2.1.32626/build/prl_fs/SharedFolders/Guest/Linux/prl_fs'
Makefile.kmods:34: recipe for target 'installme' failed
make: *** [installme] Error 2

 

The important bit is that &inode->i_mutex no longer represents a real thing.  From my glancing through that and comparing commits to the linux kernel, it appears that it's running afoul of http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?h=v4.7&id=9902af79c01a8e39bb99b922fa3eef6d4ea23d69 where i_mutex was replaced with i_rwsem, taking us back to the pre-2.6.16 days of semaphores instead of mutexes. It's a relatively straightforward patch to fix, following generally the steps from https://forum.parallels.com/threads/fix-patch-for-parallel-tools-9-0-23350-to-support-linux-kernel-3-12-ubuntu-14-04.294092/ being sure to find all the places that prl_mod.tar.gz and file.c are cached and fix them up.  The patch is this one:

 

diff -Nru prl_fs/SharedFolders/Guest/Linux/prl_fs/file.c prl_fs_47/SharedFolders/Guest/Linux/prl_fs/file.c
--- prl_fs/SharedFolders/Guest/Linux/prl_fs/file.c      2016-09-06 12:56:24.877155341 -0500
+++ prl_fs_47/SharedFolders/Guest/Linux/prl_fs/file.c   2016-09-06 12:57:49.007411347 -0500
@@ -278,7 +278,9 @@
        struct dentry *dentry = FILE_DENTRY(filp);
        struct inode *inode = dentry->d_inode;
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
+       down_write(&inode->i_rwsem);
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
        mutex_lock(&inode->i_mutex);
 #else
        down(&inode->i_sem);
@@ -291,7 +293,9 @@
        if (inode->i_size < *off)
                inode->i_size = *off;
 out:
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
+       up_write(&inode->i_rwsem);
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
        mutex_unlock(&inode->i_mutex);
 #else
        up(&inode->i_sem);

 

 

svc:/system/filesystem/minimal:default moving data to /var/share

December 2nd, 2013
So it may not be obvious, but during an upgrade from a previous version of Solaris to Solaris Express 11.1, you get a bunch of data moved around. Specifically, /var/share gets re-created as a separate ZFS partition so it can be shared across boot environments. That's fine with one exception: all of the data that was previously in /var/audit, /var/cores, /var/crash, and /var/mail get copied in there, duplicating how much disk space they take up. If you're running a little slim on the root partition but have a bunch of data in those directories, that boot may never work. Even worse is that if you go in through maintenance mode and poke around, it looks like that data is gone. Sadly, when you reboot, it gets copied from *somewhere* and fills up your disk again. That means your box will never come back up from a reboot. There is a workaround. What the docs don't tell you, but if you go through the actual scripts as part of svc:/system/filesystem/minimal:default, you find out there is a hidden directory that you have to clear out at /var/.migrate that holds the data before it's copied. If you delete it from that hidden dir, it won't break your boot.

Election 2012 - How Billy is voting

November 6th, 2012
Election day is upon us. Here's how I'm voting, and I hope you vote as well. We begin with the question of whether I should be voting at all. I'm not sympathetic to the idea that my vote is diluted because of the electoral college, or that I am but a tiny voice crying in the wilderness. That's what happens when you're in a country of 300 million. There's no way around it. I'm a little more sympathetic to the idea that my vote is between candidates that are backed by a single monolithic form of capitalism that will be expanded regardless of my choice. Giving that sort of structure the respect of participation is itself an act of complicity. However, my more revolutionary leanings keep me mindful that there is no subtle protest either with the vote or without that can change that edifice. That, plus the requirement that I take an active stand of some kind (admittedly a weak one) against government doing wrong when I see it means I already have to be voting on state questions, and is a pretty easy link in to voting for people who share my values. So, with that question answered, on the the ballot:

President - Barack Hussein Obama (D) over Willard Mitt Romney (R)

I've supported this guy since the 2006 primaries, and I'm not stopping now. I don't think he's made of magic, but he's a sold, respectable President who has gotten some really good things accomplished. His administration was able to get meaningful health insurance reform passed, something that Democrats have been trying for at least as long as I've been seeing doctors. That means that my brother is still eligible to stay on my parents' insurance while he's in school, and that the waiting room at the ER can be a little less crowded. He ended DADT, and has become a vocal proponent of gay marriage, something I'm entirely certain is the correct thing to do. Credit Card Bill of Rights. Lilly Ledbetter Act. Sonia Sotomayor. Grover. Nationalized student loans. In foreign policy, he wound down Iraq in a way that seems to have worked, and made us look like less of a jerk to the world at large. I don't even need to go into my problems with the intense conservatism Mitt Romney seems to have found after several years of being pleasantly moderate as the Governor of Massachusetts. There's enough for me to be proud of BHO to make this decision easy.

US House OK-4 - Donna Marie Bebo (D) over Tom Cole (R) and RJ Harris (I, mostly R)

This one is a little harder, if only because I really don't hate Tom Cole as a person, I'm just not fond of his policies. He seems like a pretty reasonable guy and a vocal proponent of his constituency. Still, though, his politics are entirely opposite of mine, and that's a big deal. Easy vote based on his stance on ObamaCare (HR 2,HR 6079, et al.), DOMA (H.Con.Res.25), and the Bush-era tax cuts (HR 4853). Bebo has my side on each. RJ Harris calls himself a Constitutional strict constructionist, but seems like a basic Tea Party Libertarian to me. He wants to erase the EPA, Department of Education, ObamaCare, and anything else that represents the idea that we have an actual responsibility to love or care for each other. It's ok, free enterprise will take care of the land. No for-profit entity has ever justified harming anyone in the pursuit of those profits. Clearly.

Court Clerk - Rhonda Hall (D) over Mitchell Slemp (R)

Since 1996 Rhonda Hall has been the clerk, and I've never had a problem with the way she runs the office. Cleveland County keeps its records searchable through OSCN, and I've not seen scandal one. Good enough for me. Slemp does not have any site that I'm able to find with a quick Googling that would tell me how he'd differ from his opponent.

County Sheriff - Joe Lester (R) over Kelly Owings (I)

Yes, I'm voting for the Republican. Go bipartisanship, go. Lester seems like a standard police officer, making me nervous and big on law-and-order. No scandals, and the only run-in I've had with a deputy was quite civil. Kelly is not currently a cop (not sure why not), filed for bankruptcy in 1991 and 2k4, and was sued some number of times after that. Also missing any website, or reason to prefer.

OK Supreme Court Justices - Retaining Noma Gurich, Yvonne Kauger, James Edmondson, Douglas Combs

After several hours combing through OK Supreme Court decisions trying to see if there was anything to these people, I discovered that they have a really boring job. Seriously. They get to determine things like "Is this trailer a horse trailer or a travel trailer?" and "Does this spider bite look infected to you?" Wow. Either way, these people all seemed to be the middle-of-the-road set that vote in ways that can be pretty well justified. Justice Winchester seems a little more squirrely, but he's not on the ballot so I'm not investigating as closely. All nine justices voted to block the Personhood Amendment from showing up on ballots, so that works out. The one decision that I did feel was close was BANK OF BEAVER CITY v. BARRETTS' LIVESTOCK, INC. Basically, the bank got up to some possibly-shady business and as a result, a cattle seller is out several hundred thousand dollars. As my esteemed Esquiress tells me, the decision is a straightforward application of the Uniform Commercial Code, and why you always need to perfect your security interests to guarantee yourself a shot at reclaiming your property if your loan recipient defaults. The justices voted 5-4 to uphold the "UCC sux, sorry brah" interpretation over the "UCC sux, let's ignore it" version. All but Gurich were in the majority. Gurich's dissent was (real) short and a little thin on persuasion, but well-footnoted. I'll give her a pass, based on her on finding applicable case law (just not from Oklahoma) to support protecting the good-faith acts of cattlemen over something that could be real close to loan fraud. Either way, I like where the clash in that decision seemed to be. Without additional clear brightlines (and finding anything but 9-0 decisions is tough), I'll stick with the group of intelligent, articulate people.

OK Court of Criminal Appeals - Retain Clancy Smith, Arlene Johnson, David Lewis

This really doesn't seem to be a fun job. There were only about 15 or so cases decided last year, and they were all unanimous. Suffice it to say that I would not volunteer to listen to these stories. Of the judges, Gary Lumpkin seems to be a little squirrely, but not too bad. He seems like the kind of guy who will write a separate concurring opinion just to be a jerk. But, he's also not on the ballot, and everyone else seems conscientious and capable. Keep 'em.

OK Court of Civil Appeals - Retain all, Thornburgh, Hetherington, Buettner, Bell, Mitchell

This group is also really boring. Everyone concurs with everyone. I'm tempted to vote against Wm C. Hetherington Jr. on "ridiculous name" grounds, but that seems both arbitrary and capricious. With the number of divorce-based property division cases these kids hear, I'm not sure if "Retain" is really the kindest vote I can give. If it's what they want, though...

State Questions

SQ 758 - Cap ad valorem property tax increases at 3% instead of 5% - NO

I'm a homeowner now, so this is the kind of tax that directly affects me. However, I'm wildly against any kind of regressive tax structure, and this is the kind of law that benefits the rich (suburban homeowners) over the poor (rural homeowners), as valuation goes up more quickly in the suburbs than in the country. Easy.

SQ 759 - Block voluntary affirmative action - NO

If a state contractor wants to use diversity to provide a competitive edge, let them. The only non-terribly-racist argument I've heard to this is that it pre-supposes a notion of race that we need to be moving past. That argument holds less and less weight with me as I see more and more in my daily life that race is still a comprehended and motivating factor both in the workplace and in society writ large. You can't just wish it away. One of the best ways to get there is to even the economic playing field first, and this certainly helps. My favorite argument against the SQ is that a diversity of perspectives can honestly improve solutions provided by contractors. I've seen that in my Engineering classes, on programming projects, in meetings, and on my servers. Let it be ok.

SQ 762 - Governor removal from pardon board - YES

We're the only state left where the Governor has to personally authorize all non-violent parolees. Let's streamline this system, and let the Governor get back to...well, something else anyway. I don't see much argument against this.

SQ 764 - Water Resources bonding - YES

Rural water projects are necessary. Having what is effectively an extra co-signer means that the bonds that are issued command a lower interest rate in the market, saving the community money. In the 27 years or so that we've been playing this game, we've had no defaults, so it's likely the money wouldn't ever be touched anyway. I don't see many arguments against this either.

SQ 765 - Abolishes DHS - NO

When I was a younger debater, I used to run a position called "Vagueness." The idea was that if my opponent's position were an actual bill, there would be insufficient information to properly carry it out the way they want to. That's how I feel about SQ 765. The first line tells me that we'll be getting rid of DHS. Later on, apparently the Legislature can rebuild it if it feels like doing so. I'm not entirely convinced that the Legislature can get its collective act together well enough to order a pizza, much less rebuild one of the most complex pieces of state bureaucracy that we have. Assuming that I want DHS to exist, meaning that I think the state has a vested interest in helping the elderly, foster kids, hungry kids, the mentally unwell, etc. have a healthier and more productive life, then I'm not going to risk it on the off-chance that shuffling boards and committees is going to make it somehow better.

SQ 766 - Intangible property taxes - NO

This one was tougher for me, as most of my living is made with intangible products. However, we're in an economy now where manufacturing information is one of our primary drivers, and money flows because of that. We need some way to have our tax system catch up, and more so than the $25 Business Alternative Tax I paid last year. The law as it stands won't tax personal intangible property any more than you would pay property taxes each year on your TV, so most of the horror stories told to me to get me to vote for this law seem farfetched. The groups most affected are companies with central assets (like a couple of the ones I've started), specifically AT&T. The fact that this is being pushed through after AT&T lost a lawsuit on the same question smacks of cronyism and I'm tempted to vote against it just based on that. But, I really do think that entirely blocking intangible property taxes paints Oklahoma into a corner for the duration of the modern economy, and I'm not big on that. Voting against.

Municipal

Moore Parks - YES

I'm always in favor of more green space. It helps keep communities thriving, pretty, and attractive for new members and new investment.

That's everything on my ballot. Let me know on Facebook if you agree, disagree, etc.

In your hoof lies the heartland.

Sonny Bono, eat your heart out

February 9th, 2009

I'm not officially updating again (yet), but this was too good not to mention: the best product I've thus seen out of an expired copyright.

Let's all have another Orange Julius.

DIY Cufflinks

March 27th, 2008

Before I do my standard OMG-it's-been-two-months-since-a-post recap, I just needed to brag a bit.

I'm in Baltimore again. You'd think after traveling this much, I'd have gotten good at packing. Sadly, not so. I have exactly 1 meeting up here, so I packed exactly 1 nice Oxford shirt with French cuffs. Unfortunately, I forgot to pack exactly 1 pair of nice blue Kenneth Cole cufflinks. What's a boy to do?

So at 11 p.m. after flying for 6 hours, I got out and about in Baltimore. As it turns out, the chain of 24 hour cufflink stores appears to only exist in my dreams, so I hit up my standard sources for cheap plastic crap: Target, Wal-Mart (eww) and Wallgreens. Target closed at 10. Wal-Mart doesn't sell cufflinks. Wallgreen's doesn't either. What they do sell, however, is random crap.

After 20 minutes of MacGyver-ish-ness, I procured for myself a pair of needle nose pliers, a picture hanging kit, some super epoxy glue, and a game of Mancala. $26 well spent.

I was able to use the pliers to bend the picture supports into a shape that would keep my cuffs together, and very carefully glued some blue marble pieces from the Mancala set to the ends. 6 hours of drying later, I am in possession of 2 very stylish links, and still have enough Mancala pieces to make a game of it, had it not already been solved.

Red is so passe.