Reviving a bitrotted OEM Windows Vista installation on your Linux laptop

June 24th, 2018

If you’re a normal sort of Linux user, when you buy a laptop you probably keep that Microsoft OS partition around, shrinking it to a minimal size and allowing it to coexist with Linux just in case you need it for firmware updates, special Windows-only tools for special situations, or sometimes just for an A/B comparison if you suspect something might be wrong with the Linux driver for a particular device.

So, after not booting that Windows Vista partition for a few years, and possibly having gone through a few disk upgrades and associated disk imaging in the meantime, you try to boot it up only to find:

  • It doesn’t boot via the automatically populated GRUB entry, hanging at a black screen
  • It doesn’t boot via Hiren’s Boot CD or another tool booting the Vista partition directly, with a winload.exe “missing or corrupt” BSOD
  • Third-party software upgrades don’t work
  • Windows Update doesn’t work
  • Anything you try to install manually doesn’t work


Well, here’s how you should be able to fix that mess (steps tested on Windows Vista Home Premium OEM 32-bit SP1).

Read the rest of this entry »

Can LiteOn/Slimtype DS8A1H laptop DVD recorder burn dual layer DVDs?

April 22nd, 2018

Many mid-2000s Compaq/HP laptops which shipped while DVD media was predominant included this unbranded “Slimtype DVD A DS8A1H” DVD recorder, which is actually a rebadged LiteOn drive.  It’s not that great a drive, but it does work to burn double/dual layer (DL) DVDs for use on a console DVD player.  Here is what you need to know to produce DVDs that work on a console player.

Read the rest of this entry »

New directions in dementia reversal

April 15th, 2018

There is no need to restate the impact of dementia on families, institutions, and the social fabric.  Adult-onset dementia is typically diagnosed as Alzheimer’s when one of two conditions is present:

  • Amyloid-beta plaques (amyloidosis; first observed by Alois Alzheimer in 1907 and biochemically profiled by George Glenner in 1984)
  • Hippocampal atrophy in disproportion to global cortical atrophy

The vast majority of research funding to date has been directed at the theory that amyloid-beta plaque and tau tangle formation, consisting respectively of misfolded amyloid-beta and tau proteins, is the root cause of the observable neurodegeneration (neuron death) and symptomatic presentation of dementia.

Two alternative mechanisms to produce misfolded proteins are proposed in this theory: glutamate excitotoxicity, and attacks by reactive oxidative species.  The hypothesis is then that the disease can be stopped by preventing the misfolding from occurring.

I will not address this disease model or hypothesis of treatment as both have been and continue to be thoroughly explored in the literature. However, as no actionable solutions have yet arisen from the depths of this research, and it does not even attempt to address dementias with a non-Alzheimer’s pathology (i.e.: no amyloidosis) I will attempt to redraw the picture on a blank canvas.

(The following is pure conjecture and subject to revision and feedback)

Inflammation and oxidation

Free radicals (molecules which readily oxidize materials with which they come into contact) can be consumed in contaminated or toxic foods, and they can also be produced by the gut flora.  Free radicals are directly toxic to cells through oxidation attacks that produce reactive oxidative species.  Inflammatory cytokines are produced by the actions of free radicals, as well as directly by hostile periodontal and gut bacteria.  Free radicals directly attack the gut lining, while at the same time inflammatory cytokines induce an autoimmune response that misidentifies the gut lining as the source of inflammation and destroys it, causing gut permeability with respect to the blood and to the vagus nerve.

Inflammation and metabolic diseases are linked to Alzheimer’s.  The gut microbiome can contain pathogens which are a source of inflammationFecal transplantation is used in Europe to treat metabolic syndromeIntestinal inflammation is linked to the development of Parkinson’s disease, with the vagus nerve as the suspect vector.

While the immediate neurodegeneration during a stroke event is likely due to glutamate excitotoxicity, a process which is also involved in epileptic seizures and is entirely deactivated by cannabidiol, it seems that the ongoing neurodegeneration and cognitive impairment subsequent to a stroke is actually caused by central nervous system inflammation, possibly due to dormant bacterial infection.  Perispinal etanercept administration scavenges the inflammatory cytokine TNF from the central nervous system and produces rapid improvement in stroke victims.

While steroids have been used to suppress inflammation in Alzheimer’s victims, scavenging of the TNF cytokine itself by perispinal etanercept administration produces rapid improvement in aged dementia victims, documented on video, for whom chronic inflammation rather than neurodegeneration is presumably the immediate cause of cognitive impairment — although TNF itself has also been shown to produce cognitive impairment even in the absence of neurodegeneration.  One could surmise that this could be because mitochondria switch from producing energy to producing toxins during inflammation.  Cannabidiol has a potent anti-inflammatory (including anti-TNF) and immunosuppressive effect as well.

TNF has been proposed as the culprit in chronic brain dysfunction.  Despite persuasive clinical evidence that eliminating TNF and thus TNF-triggered inflammation restores lost cognitive performance, the theory itself remains unsatisfying because it does not propose a causal mechanism for the production of TNF itself.

Vagal nerve stimulation has been shown to inhibit the production of inflammatory cytokines.

Inflammation from environmental pollution causes Alzheimer precursor anomalies to appear in the brains of infants.

Chronic inflammation is suspected to be the cause of depression and anxiety disorders.

Studies have shown that blueberry powder and blueberry vinegar relieve mild cognitive impairment.  One anecdote further demonstrated that a strict berry, greens, and sweet potato diet initiated a complete recovery of dementia.  Blueberries, as well as blackberries, raspberries, and blackcurrants, contain anthocyanins that have antioxidant effects through mechanisms that are not fully understood.  However, one thing that is known is that blueberries inhibit the production of TNF.

An anti-inflammatory medical diet fed to mice genetically engineered to develop Alzheimer’s disease completely eliminated the cognitive symptoms while reducing amyloid-beta levels.

Metabolic factors and autophagy

Autophagy impairment is characteristic of Alzheimer’s and other neurodegenerative disorders.  Intermittent fasting has been shown to induce neuronal autophagy.

Insulin resistance is strongly associated with Alzheimer’s and with the underlying amyloid-beta and tau anomaliesInsulin sensitivity (inverse resistance) is increased with high-intensity interval training.  Tying these threads together, as of 2018 regular exercise is officially recommended and drugs considered ineffective in the treatment of cognitive impairment.

Alzheimer’s has recently been unofficially dubbed “type 3 diabetes“.  Alzheimer’s and type 2 diabetes have both been linked to chronic spirochete infection.  Simple carbohydrates such as sugars are the key dietary factors in the insulin resistance model, and it happens that sugars are also the only energy source for most spirochete bacteria.  There is only one spirochete species, Spirochaeta isovalerica which does not use sugars but rather uses the proteinogenic branched-chain amino acids leucineisoleucine, and valine for food.  In this context, it may be of interest to note that athletic supplementation with branched-chain amino acids is suspected to cause an ALS-like syndrome and that individuals diagnosed with ALS have subsequently died of Lyme disease.

Drugs that are commonly prescribed for metabolic issues, such as statins, are known to produce reversible dementia.


Since the early 20th century, periodontal pathogens have been implicated in heart disease, originally due to the observations of dentist Weston Price of heart attacks occurring shortly after root canal work.  Since then, periodontitis has been linked to high blood pressurechronic back pain, and, yes, Alzheimer’s disease.  A C-reactive protein (CRP) test can reveal systemic inflammation rooted in periodontitis.

What’s the connection?  Common periodontal bacteria emit inflammatory cytokines which cause autoimmune destruction of gum and bone tissue and subsequent tooth detachment.  Among those periodontal bacteria are spirochetesOral spirochetes have been shown to migrate through gum tissue into the bodySpirochetes are a key suspect in an infectious model of dementia.


Viruses in the herpes simplex family are implicated in recent research as a root cause of dementia.  In this hypothesis, the formation of amyloid-beta plaques is a protective mechanism rather than an independent pathology.  It has been known for decades that herpes simplex viruses are unable to replicate in the presence of the cannabinoid THCThe outcome of utilizing cannabinoids seems to depend on whether inflammation is beneficial or pathogenic in a specific case.

Separately, increased loads of the human herpesviruses HHV-6 and HHV-7 have been confirmed in the brains of deceased Alzheimer’s patientsImmune systems of Alzheimer’s patients showed a decreased response to HHV-6.  For various reasons, active HHV-6 brain infection is very difficult to test for.

A new theory divides Alzheimer’s victims into three categories, and identifies inhalational mycotoxins as the cause of neurodegeneration in the third category.  Patients in this category are typically younger and healthier and may comprise as much as 10% of the patient population.  A treatment protocol is available to halt the neurodegeneration and reverse the cognitive decline.

Lyme disease, which is caused by the spirochete borrelia burgdorferi, commonly causes a variety of cognitive impairments, and causes severe dementia in a small number of cases – including cerebral infarct (global cortical atrophy), which is reversible by clearing the pathogenSpirochete infection has been characterized as a parasitic symbiotic relationship, in contrast to typical pathogenic bacterial infections.

It should be noted that Lyme disease is notoriously difficult to diagnose because in dormancy it produces false negatives with PCR-based assay, and because many people without active infections carry Lyme antibodies, so the presence of Lyme antibodies in blood serum is also inconclusive.

A new theory of Alzheimer’s pathology is that Lyme and periodontal spirochetes infect the central nervous system and cause the symptoms of Alzheimer’s.  In this theory, these spirochetes are able to hide themselves in neural tissue under a protective biofilm while producing the inflammation and autoimmune response that causes amyloid-beta plaque formation and neurodegeneration.  Lyme biofilms and cystic/granular spirochete configurations were directly observed inside amyloid-beta plaques in 100 out of 100 Alzheimer’s postmortem brain tissue samplesThe presence of microbe biofilms in Alzheimer’s plaques was independently confirmed through staining. Alzheimer’s plaques were found to contain both human-derived and spirochete-derived amyloid-beta proteins. Interestingly, the cannabinoid THC both destroys the amlyoid-beta plaques and inhibits the associated inflammatory response, due to THC’s selective anti-TNF activity. It is worth noting that TNF suppression has been shown to interfere with anti-spirochete antibiotic therapy (another report here); however, that could be a useful property to exploit in identifying a concealed and/or unknown pathogen, as spirochetes are notoriously difficult to culture outside of host tissue. That is, one might conduct an anti-inflammatory protocol with drugs or anti-inflammatory herbs as a ruse to entice the spirochete out of dormancy so that the pathogen could be identified. New testing protocols continue to be developed to meet the diagnostic challenge spirochetes present.

Even when the spirochete is eradicated, inflammation can persist long afterwards. Eradication of spirochetes poses two more problems: animals whose spirochete infections were measurably eradicated were still able to pass active infections to ticks (1, 2, 3), and material from destroyed spirochetes is still able to trigger inflammation. However, levels of inflammatory cytokines are lower in chronically infected individuals (>6 mo.). This may be because the biofilm morphology of spirochetes allows the bacteria to persist in a state that does not activate the host immune system, nor respond to typical long-term antibiotic treatment often utilized against “chronic Lyme”. An antibiotic protocol based on daptomycin has been found to destroy biofilms in vitroTraditional herbal medicine such as cinnamon oil, clove bud oil, oregano/thyme oil, ethyl alcohol tinctures of stevia leaf (and — one might surmise — agents which are capable of dissolving amyloid-beta plaques such as cannabinoids) are demonstrated to be capable of destroying spirochete biofilms in vitro and in tissue samples.  Agents which are known to destroy other microbial biofilms may be of particular service: cinnamon oil was found to destroy Candida and MRSA (1, 2) biofilms, while thyme oil was also found to destroy MRSA biofilmsEpsilon-polylysine, a peptide that is used as a natural food preservative, was found to destroy Pseudomonas aeruginosa and aspergillosis biofilms.  While liposomal encapsulations of oils are typically required to cross the blood-brain barrier, oregano oil has psychoactive effects in its default stateA universal protocol remains elusive; however, Alzheimer’s plaques have been attacked with varying success with the antibiotics clioquinol (2001), doxycycline and rifampin (2003), ceftriaxone (2016), and an antibiotic cocktail (2016).

There is a hypothesis that the root cause of the devastating immune syndrome known as AIDS is actually the spirochete that causes syphilis, and that HIV is merely comorbidThe syphilis spirochete is also capable of causing neurodegeneration and dementia that mimics Alzheimer’s. Treatment with the antibiotic doxycycline reduced the number of Alzheimer’s plaques and relieved cognitive impairment in mice. The Lyme spirochete is present in semen and vaginal secretions, raising implications for non-tick-centric epidemiology.  Intestinal spirochete infection is endemic in homosexual men and HIV-infected individuals.

Celebrity Kris Kristofferson suffered dementia for years and was misdiagnosed with Alzheimer’s before the root cause was found to be Lyme diseaseCommentators rejected the diagnosis of chronic Lyme as facially invalid, but failed to propose an alternative (non-iatrogenic) pathogenesis that fit the same facts. Several cases of reversible dementia rooted in Lyme infection have been documented.

To weave an even more intriguing web, Lyme-infected tick-borne nematode parasites have been found in the brains of multiple sclerosis, brain cancer, and Lewy body dementia victimsDoxycycline, which is also the primary antibiotic used in treating Lyme disease, kills filarial nematodes by killing the symbiotic bacterium generally required in their reproductionA filarial Acanthocheilonema nematode infects around 30% of lone star ticks; however, Acanthocheilonema is one of the few filarial nematodes lacking the symbiont.

Schizophrenia has been linked to endogenous retrovirus infection. Intriguingly, treatment with the antibiotic minocycline was found to reverse schizophrenic symptoms in multiple studies in 2010, 2014, and 2017Minocycline was also found to halt the progression of multiple sclerosis.  Although minocycline is most commonly used as an acne medication, it is in the same tetracycline family as doxycycline, the most commonly used antibiotic in treating Lyme disease.  For some reason, the theorized mechanism of effect of minocycline is primarily anti-inflammatory rather than primarily anti-microbial, even though spirochetes have been stained and cultured from the cerebrospinal fluid of MS patients for nearly a century.

The Lyme spirochete has been documented to cause new-onset panic disorder (1, 2).  Panic disorder comorbidity with schizophrenia has enough distinct features from other schizophrenia manifestations that it has been suggested this comorbidity should be recharacterizedModerate to severe cognitive impairment is characteristic of schizophrenia, while schizophrenia medications are implicated in brain atrophy.  However, recent research demonstrates that at-risk individuals who later develop full psychosis have a steeper rate of gray matter loss; the authors posit that the missing link between schizophrenia and brain atrophy is neuroinflammation rather than medication.

A presentation of stroke which turns out to be rooted in infection with the Lyme spirochete is documented again and again in the literature (1, 2, 3).

(Is there further evidence for spirochete-viral coinfections in various chronic neurological diseases?)

Stem cell neurogenesis

A stem cell treatment has been approved in Japan for Alzheimer’s.  A phase I trial is underway in the U.S. with observed restoration of cognitive performance and hippocampal volume subsequent to injection with neural stem cells derived from waist fat.

However, neuroplasticity and mitochrondrial health may be important factors limiting the success of these treatments.

Neuroplasticity and mitochondria

Neuroplasticity refers to the generation of new synapses, the connections between neurons in the brain’s neural network.  A synapse requires a physical point of contact between two neurons.  A typical synapse occurs at the point where a dendrite of one neuron contacts the dendrite of another neuron.  When neuroplastic conditions are present, new connections are being made through a combination of neurogenesis (increasing neuron density) and dendritic outgrowth.

While neuroplasticity is known to decrease with age, loss of existing dendritic spines is characteristic in Alzheimer’s.  Dendrite loss may be an effect of out-of-control synaptic pruning – an otherwise normal process that is mediated by inflammatory cytokines ‘tagging’ a synapse for destructionLoss of dendrites does not necessarily destroy memories embedded in the neural network, but rather prevents access to them, which can be restored.  It has been found that serotonergic psychedelic drugs, commonly referred to as entheogens, stimulate dendritic outgrowth.

Entheogens as a family are non-specific serotonin receptor agonists, but primarily bind to 5-HT2 receptors5-HT2 receptor loss is characteristic of Alzheimer’s patients and is implicated in the behavioral and psychological symptoms of dementia.  However, 5-HT2 receptor loss precedes the associated neurodegeneration.  The 5-HT2 receptor loss could be due to downregulation subsequent to serotonin misregulation by a third factor.  One study posits a connection between chronic stress and hyperserotonism which then causes the development of a serotonin resistance. Another study showed that low levels of serotonin transporter protein (SERT) is correlated with dementia, implying that impaired serotonin transport is associated with serotonin receptor loss. If impaired serotonin transport and subsequent serotonin resistance is the mechanism by which 5-HT2 receptor loss follows, a supportive therapy is conceivable in which natural serotonin production is suppressed and simultaneously, a non-monoamine 5-HT2 agonist such as LSD is administered to activate 5-HT2 receptors in its place.

Since the sensory-altering effects of entheogens are caused by their binding to the 5-HT2A serotonin receptor, if psychoactive side effects of entheogen administration are too severe, the side effects can be selectively attenuated with a 5-HT2A blocker.  Curiously, it has been shown that activation of the same 5-HT2A receptor with microdose quantities of a drug similar to LSD potently blocks TNF-alpha induced inflammation in the whole body.

Where synaptic paths are present, proper synaptic function is dependent on healthy mitochondriaMitochondrial dysfunction is a precursor to Alzheimer’sThe vitamin NR (nicotinamide riboside) has been shown to restore neural mitochrondria function, destroy amyloid plaques, and restore cognitive performance.

Mitochondrial transplants have been effective in reviving degenerated muscle tissue; the healthy mitochondria need not even be injected directly into the degenerated tissue to find their ‘home’.  One could surmise that neural mitochondrial transplant would have a similar safety profile.

Meditation has been shown to increase the proportion of the hippocampus and areas of the frontal cortex relative to other brain regions.  One could surmise that neurons can thus be recruited to different networks according to utilization, important in the context of mental illness.

Mental illness and sleep quality

Moderate to severe anxietydepression, and chronic stress are independent risk factors for dementia.  Pseudodementia is cognitive impairment that is caused by such mental illness rather than an organic process.  Pseudodementia can be treated.  However, it is unclear whether pseudodementia is a separate process from the observable organic processes in dementia.  What we know is that depression and anxiety are comorbid with dementia, with 54% of dementia patients exhibiting both depression and anxiety.  While cause and effect is unclear, untreated anxiety and depression is detrimental to quality of life, whether or not dementia is present or would otherwise follow.

One could surmise that the ineffectiveness of SSRIs in reversing dementia-related depression and anxiety is due to the aforementioned low levels of serotonin transporter protein (SERT) and serotonin receptor loss that are implicated in dementia, and the resulting inference that serotonin itself is critically low or absent such that the SSRI has no effect.

Furthermore, SSRIs are known to disrupt sleep in the elderly, and poor sleep quality is a risk factor for dementia.  The latter study inexplicably excluded REM sleep as an object of study.  A later study found that REM sleep anomalies are indeed a predictor of dementia.  While several mechanisms for the connection of sleep quality to dementia have been explored, the most promising link is an observed increased flow of cerebrospinal fluid (CSF) due to neuron contraction during sleep.

If SSRIs are inappropriate for people experiencing dementia, what else could terminate anxiety and depression?

A variant of cognitive-behavioral therapy called PATH was successful in reducing depression in a population with cognitive impairment and treatment-resistant depression.

Hypnosis has been shown to be effective in reducing cognitive impairment and improving quality of life in dementia patients.

Transcranial magnetic stimulation has been demonstrated to halt Alzheimer’s-related cognitive decline and is currently in a FDA trial.  While TMS is known to alleviate depression and anxiety in non-Alzheimer’s patients, whether that effect maps to Alzheimer’s patients with their differing serotonin configuration is unknown.

The dissociative anesthetic ketamine has recently been shown to be the most powerful and fastest-acting antidepressant in existence, confirming widespread anecdotes of its efficacy against treatment-resistant depression and relatively minor side effects.  Interestingly, ketamine is also a NMDA calcium channel blocker; under the glutamate excitotoxicity theory of dementia, it therefore serves the same purpose as the widely prescribed Alzheimer’s drug, memantine, in blocking the calcium ion channel that – the theory holds – excessive levels of glutamate would otherwise overactivate.  However, cannabidiol prevents glutamate excitotoxicity with a much better safety profile and fewer side effects than agents acting on NMDA receptors.

The serotonergic psychedelics psilocybin, LSD, and MDMA have all been shown to alleviate treatment-resistent depression and/or PTSD.  Since they bind directly to serotonin receptors, they can be effective even in individuals with low and/or misregulated serotonin.

Nicotine has been shown to control depression, and its use is widely observed in mentally ill populations as a suspected form of self-medicationNicotine use has been shown to be preventive of Alzheimer’s and Parkinson’s and improves cognitive performance, with studies still ongoing in the areaNicotine is also a known anti-inflammatory and immunosuppressant.  One could surmise that since an autoimmune process triggered by chronic inflammation is implicated in various forms of dementia, nicotine’s benefits are in that it is suppressive of the autoimmune reaction as well as the underlying inflammatory cytokines.

Delivery problems

While several agents like curcumin, resveratrol, cannabidiol, and the steroid etanercept are known to have, variously, effective amyloid-beta destruction and inflammatory cytokine scavenging effects as well as anti-oxidant effects, delivering those agents to the central nervous system poses a challenge because of the blood-brain barrier.  While active systemic inflammation increases the permeability of the blood-brain barrier, and an agent can be engineered to cross a healthy blood-brain barrier, an ingested agent still has to be either properly absorbed by the gut or leak through the gut lining to enter the blood in the first place.

The “Longvida” formulation of curcumin is an example of a liposomal encapsulation.  It is able to deliver curcumin, a powerful antioxidant, anti-inflammatory, amyloid-beta plaque inhibitor, and autophagic stimulator, to the central nervous system via the BBB.  Liposomal encapsulation is also used with resveratrol, a polyphenol found in red wine.  When delivered to the central nervous system across the BBB, liposomal resveratrol is a potent antioxidant and amyloid-beta scavenger.

The vagus nerve is an important nerve that connects the brain stem to the heart, lungs, and gut in order to exercise control of involuntary body functions such as bowel motility.  Constipation is extremely common in older individuals and dementia patients, and one could surmise that neurodegeneration of the vagus nerve or the brain stem is the root cause.  The carotid sheath is a conduit for the vagus nerve.  Topical application of essential oils to the ganglia of the vagus nerve behind the ears is anecdotally effective in delivery of those oils to the nerve.  Since the vagus nerve connection to the gut is also implicated in the development of Parkinson’s disease, with direct observation of Parkinson’s proteins being transported from the gut to the brain, one could reason that beneficial agents could traverse the vagus nerve as well, perhaps via the carotid sheath as a conduit.

As discussed above, etanercept is a steroid, immunosuppressant, and potent TNF scavenger.  Perispinal administration of etanercept is performed via injection into the external vertebral venous plexus, after which it diffuses through the cerebrospinal venous system.  Historically, cocaine was administered in a similar manner.  Perispinal administration can be roughly considered a lower-risk and less complicated form of an epidural injection.

Aromatherapy has seen a variety of applications, with mostly anecdotal results and not much in the way of peer-reviewed, double-blind studies.  However, a plausible mechanism for the delivery of aromatherapy agents to the central nervous system comes in the unlikely form of the brain-eating amoeba, a freshwater pathogen that enters the central nervous system via the nasal olfactory nervous passageways.  One could reason that a vaporized aromatherapy agent could enter the central nervous system in the same manner.

Google Pixel Phones With Android Oreo Repeatedly Disconnect From Wi-Fi

February 28th, 2018

There is a long thread in the Google support forums which links to several other long threads regarding Google Pixel phones with Android Oreo 8.0 or 8.1 repeatedly disconnecting from WiFi access points that work for other users.  There are multiple causes, some of which were fixed in the January security patch, so here’s the TL;DR.  (As you can see, factory resetting should be a last resort rather than a first resort in this case.)

  • Delete Verizon “Security & Privacy” app, or at least turn off WiFi security, on branded phones.
  • Disable all Chromecast devices on the network to prevent a flood condition when the phone first comes online.  This problem was fixed in the January security patch.
  • Disable 5GHz on a dual-band wireless access point.
  • Set a static IP for the phone in the router DHCP configuration.
  • Use WPA to secure your wireless access point instead of the obsolete WEP standard.
  • Turn on Bluetooth.
  • Disable IPv6 in the router configuration.
  • Reboot in ‘safe mode’, then disable and re-enable WiFi and see if it stays connected.  If it does, reboot normally and then:
    • Force-stop the Google Home app, disable and re-enable WiFi.
    • Force-stop the Waze app, disable and re-enable WiFi. (This was the fix for my phone on Oreo 8.1, as improbable as it may be.)


1990 Honda Accord radiator fan is not running, overheating in traffic

July 16th, 2017

This summer has been a hot one and I noticed that my 1990 Honda Accord began to overheat while crawling along in traffic. A quick triage revealed that the radiator fan was no longer running at all. In the end, the fix was to bypass a broken wire in the main wiring harness. More details below.
Read the rest of this entry »

Install Linux on an Android-Based Lenovo Yoga Book (YB1X90F)

April 28th, 2017

Having a Linux distribution installed on an Android netbook can be the best of both worlds. Leveraging the Linux kernel already running on any Android device, a Linux userspace will be native and fast and come with many tools power users will appreciate. Here are some ways to get the most out of the Linux on Android experience.

Read the rest of this entry »

APC AP9584 USB Conversion Kit and APC Serial Smart-UPS

April 26th, 2017

The AP9584 serial-to-USB conversion kit for older APC UPS models with a serial host interface is the manufacturer-endorsed solution for interfacing such older UPS units with a USB-based host computer. However, it is specified on the label for “use with APC Back-UPS and Back-UPS Pro only”. Will it work with a Smart-UPS unit?

Initially, it would seem so – all the variables are read properly. However, after a period of 30 days or so, and generally unnoticed to the operator, the “LB” (Low Battery”) status flag is flipped on, while nothing is actually wrong with the battery. This does not cause an immediate problem. However, the next time the UPS does a periodic self-test, the “OB” (“On Battery”) status flag will be temporarily set as is expected during a self-test cycle. However, from the perspective of UPS monitoring software, the combination of LB and OB means “The UPS is nearly dead, so shut down the system cleanly”. As a result, every system listening to the UPS monitoring software would immediately (and cleanly) shut down, and then dutifully wait for a UPS power-cycle that never came!

  • I thought at first this was an anomaly with the particular UPS (Smart-UPS 1500), so I switched to a Smart-UPS 1000. Same result.
  • I thought then that I had just gotten a defective cable, and bought another AP9584 to test. Same result.
  • I then replaced the AP9584 with a good old APC 940-0024C and a Kawamall USB to DB9 (male) serial converter. After months, the problem never happened again!

The Kawamall USB to serial converter has USB vendor:device 1a86:7523 corresponding to a QinHeng Electronics HL-340. Others have noted that Prolific converters also seem to work.

In any case, don’t bother trying to use the APC AP9584 on a Smart-UPS – there seems to be a bug that will cause your systems to be powered off unexpectedly. Just use a normal USB-to-serial converter with the APC 940-0024C or similar smart monitoring cable.

ACPI Warning: SystemIO range X conflicts with OpRegion Y error

April 23rd, 2017

On a Linux system, you might be trying to use a utility like decode-dimms to read the SPD EEPROM of your system’s RAM DIMM modules.

But it does not work, and checking the kernel messages, you see:

[    1.457863] i801_smbus 0000:00:1f.3: enabling device (0001 -> 0003)
[    1.457945] ACPI Warning: SystemIO range 0x0000000000000400-0x000000000000041F conflicts with OpRegion 0x0000000000000400-0x000000000000040F (\SMRG) (20160831/utaddress-247)
[    1.458063] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver

In this case, the Intel 82801 SMBus driver is attempting to load, finding that the ACPI SMRG (System Management Region) has already claimed part or all of the SMBus I/O range, and failing due to strict ACPI resource enforcement. (In the general case, this will be true of whatever driver is attempting enablement immediately preceding the ACPI messages.)

To work around this and accept the risk of system instability, add the acpi_enforce_resources=lax parameter to your kernel command line and reboot.

Afterwards you will see two extra lines in the output:

[    1.457863] i801_smbus 0000:00:1f.3: enabling device (0001 -> 0003)
[    1.457945] ACPI Warning: SystemIO range 0x0000000000000400-0x000000000000041F conflicts with OpRegion 0x0000000000000400-0x000000000000040F (\SMRG) (20160831/utaddress-247)
[    1.458031] ACPI: This conflict may cause random problems and system instability
[    1.458063] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    1.458110] i801_smbus 0000:00:1f.3: SMBus using PCI interrupt

The third line is new and appears advisory, but it is actually advising that the device is being enabled despite the risk of instability posed by two kernel drivers owning the same I/O region. The fifth line is from the driver that was attempting to load and its appearance means that it has proceeded to load.

While this parameter might bypass SMBus conflicts in particular, allowing a utility like decode-dimms to offer functionality not offered by the ACPI BIOS that first claimed that I/O region, it will also bypass this conflict for any device affected by ownership by the ACPI BIOS that would prevent a driver from loading.

How to use fio to stress test a hard drive

April 23rd, 2017

So you’ve a got a disk in your hand that’s new, used, or questionably refurbished, and you want to give it a thorough thrashing to see how it holds up before trusting your data to it. How? SMART tests and badblocks are the usual tools, but you really want to simulate a workload instead of just doing a linear once-over.

Fortunately, the fio benchmarking tool has a randrw module that can do exactly this. Run this and it will scribble all over a disk and check the results. You should then have a good idea whether that disk is a winner or a dud for a real world workload.

Example, assuming we will stress-test the disk for 1 day (86400 seconds), we have 4 CPU threads, and the disk to be tested is /dev/sdg (WARNING: all data on this disk will be randomly trashed):

# fio --name=randrw --time_based --runtime=86400 --ioengine=libaio --iodepth=64 --rw=randrw --bs=4k --direct=1 --numjobs=4 --filename=/dev/sdg

Asus P5B-E: Limited to 3GB RAM, or fourth DIMM slot appears not working

April 21st, 2017

If you have an Asus P5B-E or other motherboard with AMI BIOS that was manufactured during the Windows Vista era, you might find, especially after replacing the battery or resetting BIOS settings, that the BIOS will only count 3GB (3008MB) of memory, and only 3GB is made available to the operating system. Swapping DIMMs has no effect, lending an appearance if utilizing a 4x1GB DIMM configuration, that the fourth DIMM slot is bad. However, launching memtest86 or a DMI decoder tool clearly shows via reading the SPD EEPROM that the fourth DIMM is in fact installed and accessible.

Fortunately, the fix is simple: enable the Memory Remap setting in the BIOS ‘North Bridge Chipset Configuration’ menu:


Why does this setting exist?  The chipset is capable of remapping RAM that conflicts with PCI MMIO regions to addresses above 4GB; this feature is useful when the operating system supports accessing that RAM, such as a 64-bit operating system or a 32-bit operating system with PAE support.  For more information, see here and here.

However, what is less comprehensible is why the default behavior is to unmap RAM between 3GB and 4GB entirely.  While it is true that disabling physical addresses that conflict with PCI MMIO regions is more costly than necessary due to poor granularity of the disabled regions, it would seem that allowing the remaining memory to at least be counted and allocated to the extent possible would be a reasonable default behavior.  Instead, the system pretends that RAM between 3GB and 4GB does not exist at all.  Is there a reason for this?  Inquiring minds want to know!

Edit: It appears that enabling this setting remaps the physical region from 2GB-4GB to be addressible starting at 4GB instead (only accessible by a 64-bit OS). With it disabled, the OS will be able to use up to 4GB of RAM that is not covered by PCI MMIO address space. In the case of this system, I had forgotten about the GPU RAM! So with Memory Remap turned off, more than 1GB of PCI address space was overlapping physical memory and rendering it unusable to the system. Mystery solved!

CPU upgrade note

The fastest CPUs available for the P5B-E are the Core 2 Extreme ‘Kentsfield XE’ series.  These are quad-core processors with a 130W TDP.  The QX6800 and QX6850 are very similar; the only difference is the FSB (1066MHz and 1333MHz respectively).  However, the Intel P965 platform limits the FSB to 1066MHz, which makes the QX6800 the fastest available processor for the P5B-E.  This processor can now be obtained on eBay for $50 or less.

Another reason the QX6800 is a good choice for the P5B-E is because the clock multiplier is unlocked.  The reason this is a beneficial feature in a non-overclocking scenario is a bit obscure.

The Intel P965 chipset does not allow a downward memory multiplier.  In effect, this means that the memory cannot run at a slower clock speed than the CPU FSB.

The fastest RAM the P5B-E supports is DDR2-800 (PC2-6400).  To use DDR2-800 RAM at 400MHz, the CPU FSB must thus be set at 400MHz (1600MHz).

However, to run a multiplier-locked 1066MHz CPU at a 1600MHz FSB would become more difficult with higher multipliers due to the leveraging effect.  If the QX6800 were multiplier-locked, its 11X multiplier would cause it to be clocked at 4.4GHz, which is at the very top end of what is possible on the Core 2 platform.  (There are other considerations for scaling the FSB upwards such as the how the manufacturer implemented northbridge strapping: see here and here.)

Fortunately, since the QX6800 is multiplier-unlocked, it can be run at at a close-to-stock 7x or 8x multiplier to yield a 2.8Ghz or 3.2GHz clock speed.  This will not require special cooling considerations for the CPU, but will allow DDR2-800 RAM to operate at its rated speed.  This would otherwise be impossible with a high-end, multiplier-locked Core 2 CPU!

P5B-E board revision and CPU FSB

There are at least two revisions of the P5B-E mainboard. Rev. 1.02G adds the ability to adjust the northbridge, southbridge, and ICH voltages:


The northbridge voltage is the most important; it is difficult to attain a CPU FSB above 350MHz on the P5B-E without being able to increase the P965 NB Vcore from the default 1.25V, although the very similar P5B has possibly seen some better results.  Therefore, if you have a Rev. 1.01G P5B-E, don’t bother trying to increase the CPU FSB beyond 350MHz or so.

At a 350MHz CPU FSB, you have two choices for the RAM speed: 700MHz and 875MHz.  If DDR2-800 RAM is not stable at 875MHz, options are to loosen the timings or increase memory voltage.  For example, if the memory is rated for 4-4-4-12, try 5-5-5-15 instead.  Increasing the memory voltage may help stability, but the tradeoff is greater heat generation; RAM with small heat spreaders is often rated up to 2.1V, and RAM with large heat spreaders can likely tolerate more.  If neither of these options result in a stable system, or the system will not boot at all at 875MHz regardless of timings, then the final option is to decrease the RAM clock to 700MHz.

At a 350MHz FSB, the closest CPU multiplier to stock will be 9x, to run the QX6800 at 3.15Ghz.  Again, the unlocked multiplier helps here in keeping the CPU close to stock speed, and thereby reducing the number of experimental variables in customizing for maximum speed.

In my case, I was able to initially run the QX6800 (SLACP) at a 320MHz FSB and 10X multiplier (3.2GHz) with air cooling and BIOS automatically-determined voltages.  The DDR2-800 RAM was then able to operate at its native speed (at a 4:5 FSB:RAM clock ratio) and 4-4-4-12 timings.  Increasing the FSB even to 333MHz began necessitating tradeoffs: the RAM was then nonfunctional at CL4 and had to be bumped to 5-5-5-15 or reduced to a 1:1 FSB:RAM clock ratio to even successfully POST. As for the CPU, an 11X multiplier for the CPU (3.55GHz) proved unstable in memtest86+ under air cooling.

Unfortunately, the G.Skill F2-6400CL4S-1GBPK RAM that came with the system — despite being marked 4-4-4-12 — proved unstable at 4-4-4-12 during kernel compilation, but worked at the SPD default CL5. Increasing the DIMM voltage to 1.9V as indicated on the G.Skill website — but not the DIMM label itself — provided stability sufficient to complete a multicore Linux kernel build. (One point of interest revealed by using decode-dimms to dump the SPD EEPROM data is that the tRC and tRFC timings differ between DIMMs that, while being marked with identical G.Skill model numbers, are via visual differences obviously sourced from different manufacturing batches.) Also, a consistently bad address was found in repeated memtest86+ runs on one of the DIMMs; this was disappointing in terms of quality, but the GRUB_BADRAM configuration to exclude the small bad region saved the day at least.

The P5B-E has at least two minor annoyances in an overclocking configuration. The smaller of these is that depending on various settings, RAM speed is sometimes reported incorrectly by the BIOS: for example, RAM running at DDR2-800 speed will be incorrectly reported as PC2-5300. (Using memtest86+ or a DMI tool will report the correct configured speed.)

The larger annoyance is that to compensate for increasing the CPU FSB speed without running the CPU itself at an infeasibly high speed, it is only possible in the P5B-E BIOS (even the last version 1807) to set a lower fixed multiplier, rather than to set a maximum multiplier.  But by setting a fixed multiplier, SpeedStep dynamic clocking is disabled entirely by the BIOS.  Not being able to utilize dynamic clocking results in even hotter operation and more power consumption at idle for this already-hot 65nm process CPU.  A better option would have been to allow the user to set a maximum multiplier and for the BIOS to regenerate appropriate ACPI _PSS tables.

Alternatively, if it were possible to boot Linux at the minimum CPU speed (perhaps by defaulting to the powersave cpufreq governor), then the maximum speed could be limited through tunables for the ondemand cpufreq governor after boot. Unfortunately, the default governor is a compile-time option and is chosen as performance, at least on Debian kernels, so pursuing this option would necessitate maintaining a locally customized kernel.

initrd hacking

A compromise is available that could allow increasing the FSB clock while leaving SpeedStep enabled, which would normally produce an infeasible top CPU speed.  If your system is stable enough at the otherwise-infeasible top CPU speed to at least boot an initrd, the initrd script can immediately replace the cpufreq governor with the powersave governor, which will set the CPU to its minimum speed.  After the system is booted, a local init script such as /etc/rc.local can set the maximum stable CPU speed, before once again enabling the ondemand governor as in normal operation.

I made the following modifications to my system to change the governor as early as possible (it does not seem to be possible to change it any earlier, such as in early-boot where CPU microcode is loaded from the initrd):

Create /etc/initramfs-tools/scripts/init-premount/overclock (chmod +x):

# Force all cores to lowest speed as soon as possible during boot
        echo "$PREREQ"

case $1 in
        exit 0

. /scripts/functions
# Begin real processing below this line
for cpu_policy in /sys/devices/system/cpu/cpufreq/policy*; do echo 'powersave' > ${cpu_policy}/scaling_governor; done

In /etc/initramfs-tools/modules:

# List of modules that you want to include in your initramfs.
# Syntax:  module_name [args ...]
# You must run update-initramfs(8) to effect this change.
# Examples:
# raid1
# sd_mod

Create /etc/default/cpufrequtils:


In /etc/rc.local (add this later after successfully booting at least once):

for cpu_policy in /sys/devices/system/cpu/cpufreq/policy*; do echo 3000 > ${cpu_policy}/scaling_max_freq; echo 'ondemand' > ${cpu_policy}/scaling_governor; done

And then finally, update the initrd:

# update-initramfs -k all -u

Unfortunately, the results were pathetic. Above 300MHz FSB, Linux would not even completely boot through the initrd, regardless of CPU or FSB voltage settings. Between 280MHz and 300MHz, the initrd would finish, effectively removing the CPU as an experimental variable. However, Linux would crash as the normal system init scripts were running, indicating a remaining problem with the FSB clock. Only once the FSB clock was lowered to 280MHz could I successfully compile a kernel. The QX6800 CPU itself had no problem operating at 3.2GHz there, but without the ability to increase the northbridge voltage, it was impossible to get system stability above 280MHz FSB. Unfortunately, lowering the FSB this low also meant the RAM clock would be lowered with it in a massive tradeoff, since the RAM could not operate at any higher FSB:RAM clock multiplier. The result was that a kernel compilation in the overclocked configuration was only 4% faster than that in the nominal configuration, making this all mostly a mental exercise.


In the end, I left the CPU at the default 266MHz FSB so that SpeedStep could be utilized; I used a 2:3 FSB:RAM clock ratio to run the RAM at DDR2-800 speed; and set the RAM timings to 4-4-4-12 and the DIMM voltage to 1.9V.  Trying to squeeze any more performance from the CPU and increasing the FSB speed both involved unacceptable tradeoffs.