New(er) linux tracing tools

Came across an interesting video on reddit about some newer linux tracing tools. I think I’ve mentioned perf before, but this also covers ftrace (which apparently has been around for years) and the newer bpf.


C++ and machine architecture

I was reading some stuff on game design and stumbled upon a stack overflow of cache friendly code, which then lead to this great video on C++ and machine architecture. Lots of very interesting stuff about architecture, optimizations (both compiler and cpu), cache and other stuff. Well worth a look.


Vsphere console on linux

The web console wasn’t working for me today. I downloaded the vmrc bundle, but that didn’t seem to install either. After a bit of messing around I brute forced it

  1. Looking at /tmp/vmware-root/vmware-vmis-10550.log showed the install was failing trying to load /usr/lib/vmware-installer/1.6/sopython/ . /usr/lib/vmware-installer didn’t exist.
  2. Ran the script to find the commands to get the binary data.
    bash -x VMware-Remote-Console-9.0.0-4288332.x86_64.bundle
  3. Decompressed the binary data with the commands from above
    dd if=VMware-Remote-Console-9.0.0-4288332.x86_64.bundle ibs=15156 obs=1024 skip=1 of=1.gz
    gzip -d 1.gz
    tar xvf 1
  4. Move the resulting directory to the right place
    mkdir -p /usr/lib/vmware-installer/1.6
    mv ~rjb/tmp/install/vmware-installer /usr/lib/vmware-installer/1.6
  5. Run installer
    bash ~rjb/tmp/VMware-Remote-Console-9.0.0-4288332.x86_64.bundle --console

Changing audio pitch in a video

I managed to end up with a few videos that had incorrect audio pitch. At first I thought the video speed was incorrect, but the time and play rate of the video seemed fine. After a little searching I came across a solution.

  1. Split source into separate video and audio files (various distros use ffmpeg or avconv)
    ffmpeg -i  -vcodec copy -an 1.mp4
    ffmpeg -i  1.wav
  2. Change audio pitch (install rubberband-cli, could also use audacity or similar). Experiment with the pitch shift (-p option), negative shifts down, positive up.
    rubberband -p -2 1.wav 1a.wav
  3. Recombine into a single file
    ffmpeg -i 1.mp4 -i 1a.wav -vcodec copy -strict experimental out.m4v


for i in *.m4v
 do avconv -i "$i" -vcodec copy -an 1.mp4
 avconv -i "$i" 1.wav
 rubberband -p -2 1.wav 1a.wav
 avconv -i 1.mp4 -i 1a.wav -vcodec copy -strict experimental out/"$i"
 rm -f 1.mp4 1.wav 1a.wav

Davmail and o365

So, we’re moving to office 365 soon. Due to various political issues, they’re going to have imap disabled, but ews will be on, so I should be able to use davmail. The following worked with my test account

  • davmail settings
Protocol = EWS
  • mutt settings
set imap_user=test-incloud@<domain>
set folder=imap://test-incloud@<domain>@localhost:1143
set spoolfile=imap://localhost:1143/INBOX
set record=imap://localhost:1143/Sent
set postponed=imaps://localhost:1143/Drafts

set smtp_url=smtp://test-incloud@<domain>@localhost:1025

ipmi security (or lack thereof)

Great talk by Matthew Garrett on the insecurity of ipmi. A number of security issues including

* Upgrade your BMC firmwares!
* Ensure cipher 0 is disabled on all BMCs (only requires valid username, not password!)
* Filter all incoming ipmi on the network (if BMC nic is unplugged ipmi will dhcp on the main interface)


Some notes on strace

I’ve been meaning to write a little on strace for a while. I use it fairly often, but as with everything it seems that there’s always a lot more to learn.


I was reading about a new perl module, Devel::Trace::Syscall which can be used as a perl debugger module to print stack traces when certain syscalls occur (perl -d:Trace::Syscall=$ARGS $SCRIPT).

There are a few more nice strace blogs posts by Julia Evans. One of the ideas I’d not thought of before is using the -c option (count call time) to assist with troubleshooting performance (which is mentioned here among other places.