Flashing Dell H200 to LSI 9211-8i

The guide misses the step for flashing the SBR, someone in comment section pointed out the necessary step:

Latest firmware can be found on Broadcom’s web site.


How to open h264 files from VStarcam IP camera

You’ll find some files with extension .h264 if you pull the SD card from your VStarcam IP camera; these are supposedly the most recent videos on rotation. They should be in h.264 format but most player, even VLC, wouldn’t play it.

A thread on VStarcam’s discussion board points to that you need to enable h264 demuxer in VLC Player. I confirm VLC playing the files after enabling h264 demuxer.

NFS “noac" option and its alternatives

In a previous occasion when trying to resolve a “file not found" error when running clustered application over NFS, “noac" was added to the NFS mount option. This disables all file and directory metadata caching; and there’s also a side effect of making all writes synchronous. I thought I could get away with it as we were running NFS over IPoIB. Its performance impact was not obvious initially as those clustered applications were batch jobs with large file IO; until a user loads up their emacs and notice significantly longer startup time compared with running emacs locally on the NFS server.

Some basic profiling with perf record shows that a lot of time were spent on IO wait, so it’s very likely the NFS was the bottleneck.

Forgetting that the “noac" option would cause explicit “async" option to be ignored and “sync" option to be always added, it took me a little while to figure out why the mount comes up with “sync" even if I specify “async".

After taking out the “noac" option, launch emacs achieved almost local performance; but we still have to take care of the “file not found" issue we had encountered before.

Looking around the man 5 nfs and I found the following options that seems to be useful (listing shows default values):

  1. actimeo=
  2. acregmin=3
  3. acregmax=60
  4. acdirmin=30
  5. acdirmax=60
  6. lookupcache=all

Setting “actimeo" without setting 2-5 would cause them to be set to value of “actimeo".

“lookupcache=all" would cause a negative file lookup (file missing) to be cached in the directory entry as well.

For our application, setting “acregmin=0″ and “acdirmin=0″ seems to counter the effect of omitting the “noac" option.

We ended up using the following options: acregmin=1,acdrimin=1,lookupcache=positive


Lustre mount error on nodes with multiple fabrics

On a node with both Mellanox Infiniband and Intel Omni-path adapter installed, one might encounter the following error while mounting Lustre (most probably when Lustre is served over o2ib using Infiniband).

Error logged on client:

LustreError: 15c-8: MGC10.1.4.64@o2ib: The configuration from log 'lustre-client' failed (-5). This may be the result of communication errors between this node and the MGS, a bad configuration, or other errors. See the syslog for more information.
Lustre: Unmounted lustre-client
LustreError: 52174:0:(obd_mount.c:1505:lustre_fill_super()) Unable to mount  (-5)

Error logged on mgs:

LNetError: 1079:0:(o2iblnd_cb.c:2325:kiblnd_passive_connect()) Can't accept conn from, queue depth too large:  128 (<=8 wanted)
LNetError: 1079:0:(o2iblnd_cb.c:2325:kiblnd_passive_connect()) Skipped 6 previous similar messages
LNet: 1079:0:(o2iblnd_cb.c:2352:kiblnd_passive_connect()) Can't accept conn from (version 12): max_frags 32 incompatible without FMR pool (256 wanted)
LNet: 1079:0:(o2iblnd_cb.c:2352:kiblnd_passive_connect()) Skipped 11 previous similar messages

This was due to modprobe script ko2iblnd.conf applying a different set of tuning with the presence of OPA interface.

To skip applying OPA tunings, you just need to comment out the line starting with “options ko2iblnd-opa".

Restarting lnet service should cause ko2iblnd to be reloaded with default settings and restores connectivity to mgs.

Distributing autofs maps through NIS

auto.master and auto.home maps are by default excluded from the Makefile in /var/yp

If you want to use NIS (ypserv) to handout autofs maps, add auto.master and auto.home to “all:" section:

all: auto.master auto.home passwd group hosts rpc services netid protocols mail \
# netgrp shadow publickey networks ethers bootparams printcap \
# amd.home auto.master auto.home auto.local passwd.adjunct \
# timezone locale netmasks

A side note for difference between CentOS 6 & 7 on using autofs:
On CentOS 7, when the mount points are not yet mounted by autofs, mount command would print those mount points with a dummy mount of type autofs.
On CentOS 6, output from mount command omits those dummy mount, tho those dummy mount can see be seen in /proc/mounts.

Using ThinkPad USB keyboard on a Mac

I love using my ThinkPad USB keyboard, so much that I use it on my Mac as well. The trackpoint just helps keep my keyboard tray so clean. But there had been some issue with the trackpoint scroll.

Trackpoint scroll is initiated by pressing the scroll button and pushing the trackpoint. Problem is that the scroll button is registered as middle click on button down, and depending on macOS version and foreground application, that could mean triggering the paste action in any X11 application or Terminal.app (seems to be the case since Mavericks)

But thanks to this thread on AskDifferent, I come across this wonderful app Karabiner, which allows me to disable the middle click entirely. Solving a lingering old and some new problem.