Spice for Mac (not yet)

Today I’ll try to see the state of the Spice for Mac work that Christophe Fergeau did a while back.

Administrative stuff

Finished a number of administrative tasks, e.g. subscription to a number of mailing lists.

Updated my .gitconfig to use my Red Hat address.

Shuttle host

After I re-plugged everything in the shuttle, it turned out to be much noisier, with a noise that depends heavily on the load. So I suspect the hangs I had yesterday were due to a disconnected fan and over-temperature. Crossing fingers.

But the noise also means I may not be able to defer much automation to this machine without first moving it to a place where it won’t affect my kids’ sleep.

Endless crash of Gnome Shell

Shuttle KVM Fedora 25 workstation guest runs into some kind of endless loop where the Gnome shell crashes before the end of the installation. I’m now in a state where I see the “Live System User” screen, but nothing else. Is there a way to change display drivers? Can’t even get as far as selecting Xorg or Wayland…

Install CD needs to be manually re-inserted if install fails

Also, when you reboot the VM, if the installation did not complete, it fails to re-mount the installation CD at the next boot, so you have to do that manually. I guess it’s a bit complicated to figure out that the guest is done with the setup.

Maybe getting an “eject CD” command from the guest could be the real signal, but that can also validly be sent during a regular shutdown.

Also, I noticed that if you change settings and then change tabs without clicking on “Apply”, it lets you do it happily, but of course, the changes are not applied. Took me three bots to understand why my change in boot order did not stick.

Keyboard, again

Now trying an install in “Basic graphic mode”, will see if that helps… I’m going further, but I run into a peculiar issue: keyboard mapping seems to be wrong for the guest at least during the installation.

I selected a basic US English keyboard layout, nothing fancy like French AZERTY or something. But when I try to select the “advanced user configuration” options to manually set user ID and groups to match my NFS server (see earlier posts), I can’t type a parenthesis through VNC (macOS Screen Sharing, really).

The syntax is something like users(100) to specify that I want to be part of group users with numeric ID 100. I can type this locally on the Shuttle PC, though. Some issue with keycode mapping?

At long last, the installation succeeded…

Another thing that is a bit annoying is that the “Alt” key used by Gnome to start applications is not passed down the whole chain. macOS Screen Sharing is blocking it, apparently. Maybe I’ll have better luck with Spice 😉

Time for a bit of compared performance testing.

Things to install for a Linux build

dnf install emacs ncurses-devel openssl elfutils-libelf-devel

Hard hang again…

Well, apparently the fans are not the only issue. The machine hung again. Each time it does, I’m reminded of the folks complaining about “crappy Apple hardware”. This is just a regular PC, with nothing special to it, except that it dies for no good reason from time to time.

This time, the hang is not so hard. I can ping the machine, but not ssh into it. Working with an uptime of 4 hours between reboots is  not going to make it. Will probably have to switch to my other PC. We will see if I can make the Vive run within a virtual machine (I seriously doubt it).

MacBook Partition VM

I would like to manage the VMs on the Shuttle from the partition VM on the Mac laptop. It’s a way to test this configuration, but also to bring keyboard and mouse in a single place.

Setting up Virtual Machines Manager for remote use

Trying to setup Virtual Machines Manager, I get a message that it needs additional software, specifically libvirt-daemon-network-config and libvirt-daemon-kvm. I don’t remember seeing that on the shuttle or the other VMs. More surprising yet, it complains that Software does not find them. Strange, because dnf finds them.

I can’t make bridged networking work either. Not sure why, but I lose all network connectivity whenever I activate this option.

Polkit issues

Running remotely requires additional packages. The software notification popup shows up again and again, like crazy. Again, Software does not find anything but dnf does. Next, I get a message complaining that

No polkit agent available to authenticate action.

and suggesting that it may be because libvirtd is not running on the remote host, when in reality, that message comes directly from libvirtd on the remote host, if I read the output of systemctl status libvirtd correctly. Apparently, this is a known issue if you try to connect as a non-root user.

Well, I will use the “Go ahead, root, do what you want” school of system security for now, one problem at a time. Then, it shows me the state of the VM all right, but I need to enter my root password repeatedly to see the screen. I stopped at 8 times, it’s possible there is no end to it. Makes the polkit approach sound like fun by comparison. Also, connecting to the remote VM disconnected the local viewer. Intentional?

Trying to add the following piece of Javascript to my /etc/polkit-1/rules.d/80-libvirt-manage.rules, check that I’m in wheel

polkit.addRule(function(action, subject) {
  if (action.id == "org.libvirt.unix.manage" && subject.local && subject.active && subject.isInGroup("wheel")) {
      return polkit.Result.YES;

Well, that did not work either (the e-mail above hinted as much). The page that is supposed to work in that e-mail is now dead.

Shuttle is really unstable

But then, the Shuttle has hung again. Going to the BIOS, disable TurboMode and Intel Speed Step, we’ll see if it makes it more stable. If that works, I’ll try with just Intel Speed Step but no Turbo Mode.

Debugging using the systemd journal

I’m trying to investigate the authorization issue for libvirt. Time to learn a bit about polkit.  So now I’m testing the example as indicated, using a call to polkit.log(). But that does not show anything anywhere.

Under systemd, /var/log/messages is gone, which is OK with me, but the intended replacement, journalctl, fails with

Journal file /var/log/journal/[blah] uses an unsupported feature, ignoring file.

Known bug. “Working on it” as of yesterday. It’s somewhat annoying, that. And I just updated my system and rebooted it, so I don’t have any more recent version of journalctl to pick, short of compiling it myself.

So far, Shuttle has not crashed. Writing this should help jinx it 🙂 [Two minutes later] It worked, I jinxed it. Giving up on this machine for now.

Kernel boot issue in VMware

Finished a complete cycle of bisecting the kernel. All failed with the build sequence consisting of a make deepclean && make defconfig && make.

[ddd@localhost linux]$ git bisect log 
git bisect start
# good: [69973b830859bc6529a7a0468ba0d80ee5117826] Linux 4.9
git bisect good 69973b830859bc6529a7a0468ba0d80ee5117826
# bad: [557ed56cc75e0a33c15ba438734a280bac23bd32] Merge tag 'sound-4.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
git bisect bad 557ed56cc75e0a33c15ba438734a280bac23bd32
# bad: [72cca7baf4fba777b8ab770b902cf2e08941773f] Merge tag 'staging-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
git bisect bad 72cca7baf4fba777b8ab770b902cf2e08941773f
# bad: [b8d2798f32785398fcd1c48ea80c0c6c5ab88537] Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
git bisect bad b8d2798f32785398fcd1c48ea80c0c6c5ab88537
# bad: [ea3349a03519dcd4f32d949cd80ab995623dc5ac] mlx4: xdp: Reserve headroom for receiving packet when XDP prog is active
git bisect bad ea3349a03519dcd4f32d949cd80ab995623dc5ac
# bad: [54dbf3a57731da6e21c6e65bd1a7f9ee009708ca] Merge branch 'nway-reset'
git bisect bad 54dbf3a57731da6e21c6e65bd1a7f9ee009708ca
# bad: [0c288c86928e50d6d8d2efa4ca23dca58d28543e] tipc: create TIPC_LISTEN as a new sk_state
git bisect bad 0c288c86928e50d6d8d2efa4ca23dca58d28543e
# bad: [e1da71ca88170d1a6232951294b44dc0c824e464] i40e: Drop code for unsupported flow types
git bisect bad e1da71ca88170d1a6232951294b44dc0c824e464
# bad: [0f524a80ff35af8a7664d7661d948107da142e04] net: Add warning if any lower device is still in adjacency list
git bisect bad 0f524a80ff35af8a7664d7661d948107da142e04
# bad: [f9dbd5a343eeb3e8bf8853256d05188dd27c1ecf] Merge branch 'ila-cached-route'
git bisect bad f9dbd5a343eeb3e8bf8853256d05188dd27c1ecf
# bad: [687d911466774808ed4926edadb20cc4f0153bed] Merge branch 's390-net'
git bisect bad 687d911466774808ed4926edadb20cc4f0153bed
# bad: [b07bf5fa32e0991b2634444652de56066fe311f2] Merge branch 'xgene-gpio'
git bisect bad b07bf5fa32e0991b2634444652de56066fe311f2
# bad: [86e3a04002378610d77d3941f45ebbf531cf605e] net: ti: netcp_ethss: use new api ethtool_{get|set}_link_ksettings
git bisect bad 86e3a04002378610d77d3941f45ebbf531cf605e
# bad: [d6d50c7ea42d3659782695bfebf4ae6548d00db5] net: stmmac: use phydev from struct net_device
git bisect bad d6d50c7ea42d3659782695bfebf4ae6548d00db5
# bad: [a54e1612bc3dd4a3974b69a6043dd4ddbab14e6d] net: mv643xx_eth: use new api ethtool_{get|set}_link_ksettings
git bisect bad a54e1612bc3dd4a3974b69a6043dd4ddbab14e6d
# bad: [1e8a655db2f4dd8777eda08c2af7d1381b9eecca] net: mv643xx_eth: use phydev from struct net_device
git bisect bad 1e8a655db2f4dd8777eda08c2af7d1381b9eecca
# first bad commit: [1e8a655db2f4dd8777eda08c2af7d1381b9eecca] net: mv643xx_eth: use phydev from struct net_device

So maybe the issue is only with make defconfig? Will attempt again with the slower make menuconfig where at least some of the builds did work.


Author: Christophe de Dinechin

I try to change the world, but that's work in progress. If you want to know me, google "Christophe de Dinechin". Keywords: concept programming, virtualization, OS design, programming languages, video games, 3D, modern physics. Some stuff I did that I'm proud of: the first "true" 3D game for the PC, HP's big iron virtualization, real-time test systems for car electronics, some of the best games for the HP48 calculator, a theory of physics that makes sense (at least to me).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s