If you want to use a pci device in a vm, you first have to detach it from the host. List the devices and look for the one you want to use in the vm:
virsh nodedev-list --tree
In my case (CentOS7) I needed to enable iommu in order for this to work. This involves adding a kernel parameter:
grubby --update-kernel=$kpath --args="intel_iommu=on”
After the reboot, /proc/cmdline should now include the iommu flag. Also check whether all the needed modules are loaded, in my case these are:
You can then detach the pci device:
virsh nodedev-dettach pci_0000_05_00_1
I then used virt-manager, powered off the vm, and added the “Physical Host Device”.
trying to start virt-manager as a normal user will yield a “Unable to open a connection…” message. To fix this, we need to change access permissions for libvirtd.
echo "unix_sock_group = \"libvirt\"
unix_sock_rw_perms = \"0770\"
auth_unix_rw = \"none\"
We also jneed to create the group “libvirt” we just set:
groupadd -g $GID libvirt; usermod -a -G libvirt $USER
Be sure to set $GID and $USER correctly.
A restart of the daemon should then do the trick:
service libvirtd stop; service libvirtd start
if virt-manager the shows only squares instead of letters, install the necessary fonts:
yum -y groupinstall "Fonts"
I laught very hard at this:
“The usual algorithm is to give the newly created row a ROWID that is one larger than the largest ROWID in the table prior to the insert. If the table is initially empty, then a ROWID of 1 is used. If the largest ROWID is equal to the largest possible integer (9223372036854775807) then the database engine starts picking positive candidate ROWIDs at random until it finds one that is not previously used. If no unused ROWID can be found after a reasonable number of attempts, the insert operation fails with an SQLITE_FULL error.”
Enough word already on all channels, here’s a short one-liner to check which procs are still using the vulnerable old libs after the upgrade:
sudo lsof -n | grep ssl | grep DEL
Oh, and if you want to test wether a site is still vulnerable: https://gist.github.com/takeshixx/10107280
Time to revoke all those lingering server certs . . .
the pasteboard tools do not work in tmux on a mac. But there is a tool to fix this (of course ^^):
brew install reattach-to-user-namespace
Then, in your .tmux.conf, add this:
set-option -g default-command "reattach-to-user-namespace -l zsh"
- more info on how to configure can be fiound here: https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/blob/master/Usage.md
After restarting your tmux server, pbcopy and pbpaste should work again.
As many others I have to sync my contacts and calendar between several systems. Since I have no Apple products and don’t want to donate my private data to Google, I found owncloud as the best solution covering my needs. Debian and Gnome have been allies for a long time now so I coupled the Evolution mail client with my owncloud instance. The last weeks were a little tricky due to several issues in my mail client (damaged encrypted mails, hung ups, excessive ressource consumption…) on Debian Jessie. After reaching peak annoyance level, it was time for a change.
Part I – The Mail Client
The only useful alternative known to me is Thunderbird. In the past I got to know Thunderbird as a very nice, fast, and powerful piece of software. Debian re-brands it to Icedove which can be installed using APT. To me as a Chromium user it looks quite familiar and exhibits a huge performance increase towards Evolution. Nice…
Next thing was to get my calendar into Icedove. Usually, I don’t like bloated software and prefer small, fast tools one for each task. The Exceptions to me are development suits and mail clients. Having all the important information bundled in on place is a nice thing. Thunderbird got the Lightning plugin, a great ‘little’ helper to manage dates within Thunderbird. Unfortunately, the integrated plugin interface of Icedove doesn’t work with (all?) Thunderbird plugins, so beware of using the integrated Extensions/Add-Ons menu! My first attempt lead to a crashing mail client on it’s startup with the following error message (when startet on the console) and seems to be a known Bug:
…version xul24.0 not defined in file libxul.so with link time reference…
On Debian one has to install Iceowl-extension, which basically is the Lightning plugin for Icedove, via APT and all is fine.
Part II – Owncloud and Remote Address Books
Getting Icedove and Owncloud to cooperate wasn’t that easy as expected (and as it should be!). First Problem, there is no way to enter a remote location for an address book (except LDAP) or calendar server. To ‘fix’ this one you need the Inverse SOGo Connector. The available software of the Debian repository does not include this frontend (just a sogo server and common files, as far as I can see) which helps to connect collaborative applications. So just download it from the website and install it. This time, the Thunderbird plugin works fine with Icedove. The SOGo Connector adds the entry Remote Address Book in the address book’s menu which can be found in File->New in your address book view. In the appearing wizard you can enter your owncloud address book link and your done.
Same thing for the calendar. Create a new calendar, choose On the Network and CalDAV and enter your proper owncloud link. When the sync seems not to work, and you get a message on startup (vie console) saying the calendar location seems to be a CalDAV collection and therefore is in the wrong format, you have entered the wrong link. If this is the case, log into your owncloud account, choose calendar and spot the button to get the personal link. This should include your login as an directory level in the URL. Use this link for your calendar location in Icedove.
The migration assistant only offers the option to inherit an old time machine backup during the os installation. I had to wipe and reinstall my macbook 4 weeks ago (tinkered to much with os-dependent services ^^) and now wanted to incorporate my old time machine backups so that I have access to old file as i started with a clean mac not using the migration stuff (as this would most probably have recreated some of the issues i wanted to evade in the first place). Turns out the time machine has a command line interface tmutil that make this task very easy:
sudo tmutil inheritbackup /Volumes/BACKUPDISK/Backups.backupdb/OLDMACHINENAME
The actual Netbeans 7.4 is showing some really annoying behaviour. In fullscreen mode, menus disappear on releasing the mouse button and/or selections seem to have an offset to the mouse position. Due to several threads in the Internet, this problem is caused by the JDK, is independent from the software (Netbeans in my case) and the JDK version, and exists for several years now. A miscalculation of the mouse position after window resizing (or something related) seems to be responsible.
Workaround (Works with Netbeans, have no idea if too with other applications):
- Netbeans should start in non-fullscreen mode by default
- Move the window to the upper left corner of your screen (probably your window manager will have some snap-on functionality there)
- Now maximize the window
This seams to work for oracle- and openJDK v7 and Debian/Gnome3 and according to the Web for several other Linux distributions and desktop environments.
Please insert excessive Java rant here.
some Linux distributions are using a symlink-based method to manage multiple versions of the same binary. For example one could have several Java VM version installed on the same system. Usually typing the java command will start one of them … but which one? The command update-alternatives manages a set of symlinks, located in /etc/alternatives by default, which refer to the correct binary. In the case of java, /etc/alternatives/java will refer to the binary somewhere in /usr/lib/jvm (for Debian). To change this link just call:
sudo update-alternatives –config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
* 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode
1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode
Press enter to keep the current choice[*], or type selection number:
The command’s output will show a list of installed alternatives for this binary, which will be configured by the packet manager. Selecting a number will change the symlink.
To add a custom alternative, update-alternatives –install is used. The description of this command can be found in it’s manpage, but I think an example will make it more clear. Let’s say we got JDK7 from the oracle website and want to add it. First install/copy it do a useful destination. I’ve chosen /usr/lib/jvm/java-7-sunjdk-amd64/jdk/.
update-alternatives –install /usr/bin/java java /usr/lib/jvm/java-7-sunjdk-amd64/jdk/bin/java 1072
The first parameter (excluding –install) is the path of the symlink your system will use to find the binary. Therefore, it has to be at a location listed in your PATH environment variable. Thereafter, the name of the group is specified followed by the absolute location of the binary. A group is an alias which assorts the similar binaries. Finally, a priority value is set. The result looks like this:
update-alternatives –config java
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
0 /usr/lib/jvm/java-7-sunjdk-amd64/jdk/bin/java 1072 auto mode
* 1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode
3 /usr/lib/jvm/java-7-sunjdk-amd64/jdk/bin/java 1072 manual mode
are nothing special anymore – but this one will (hopefully) hit you in the guts: