Did you try to run strace on it? It is a longshot, since most other alterations change the behavior, but it is worth a try. When the seg fault 'goes away', is the hardware still initialized correctly?
To me:
if ($CustomHardware && $ErraticSegFaultBasedOnConditions) {
checkTimingConditionsConcerningHardware();
}