Permanently reversing patches

July 24th, 2020

As simple as patchutils:

interdiff -q file.patch /dev/null

Overclocking your Sun Ultra 5 / 10?

March 24th, 2020

ok> also hidden
ok> d# 480 at-speed

ok> nvstore
ok> setenv use-nvramrc? true
ok> reset-all

ok> .speed
ok> .version

Auto reconnect Bluetooth devices on Linux

December 17th, 2019

If you were wondering why your Bluetooth devices, such as keyboard and mouse, (…) do not automatically reconnect when you reboot / start your Linux desktop, … It is not enough to just have the bluetooth deamon running. You also need to power it up:

bluetoothctl power on

You obviously had to pair and connect the device, before but you also need to trust (because obviously “pairing” is not trusting) …

bluetoothctl scan on
bluetoothctl pair MM:AA:CC:..
bluetoothctl connect MM:AA:CC:..
bluetoothctl trust MM:AA:CC:..

You also need to enable AutoEnable, in /etc/bluetooth/main.conf


Certainly would be too easy in 2019 for stuff to work without reading some freaking manual pages, and internet re-searching the topic a bit, … :-/

Fujitsu ScanSnap and Canon DR w/ macOS Catalina

October 4th, 2019

With this years of Apple’s macOS 10.15 aka “Catalina”, Apple removed support for 32-bit applications, as well as deprecated and removed a log of other stuff as usually. The consequence is that lots of old, and not further maintained software and drivers do not work anymore. One very popular one are Fujitsu scanners, such as the ScanSnap ix500, 1500, and Canon P-215 or other DR series devices.

However, you do not need to obsolete and recycle or sell the scanner, nor buy new ones! ExactScan does include some 500 built-in drivers for scanners like this, including those Fujitsu ScanSnap ix500, 1500, and even many much older ones, such as other popular models like the fi-5110EOX.

ExactScan does not only allow to continue using all these scanners, it even has some more, advanced image processing options and enhancements, and the Pro version includes blazing fast OCR, that is up to 10 times faster than what most vendors use in their scan software.

Don’t delay and try ExactScan or ExactScan Pro for free today!

Made in Berlin; Germany.

Enabling SSH on a head-less Raspberry Pi

September 25th, 2019

in the usually FAT boot partition create (e.g. touch) a file name “ssh”, and just place your wpa configuration file onto it as well, like:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

Some websites suggest a shorter, more minimal file without the country=YOUR-LOCATION, however the last time I checked that will not enable the wireless network interface, maybe intentionally due to regulatory concerns.

[self note: @”tcpdump”];

July 13th, 2019

tcpdump -i eth0 udp port 18194 -vv -X

Let’s talk micro kernels

February 14th, 2019

Over four years ago I wrote about Why monolithic kernels are fail and last night I live streamed some talk about micro kernels:

And in my famous prior art patent voiding serious I wanted to formerly disclose a potentially novel system call implementation detail idea: In multi server micro kernels context switches happen more frequent than in simple, shared address space monolithic kernel (such as Linux). This is due to device drivers (and filesystem, network stacks and hopefully everything else, ..!) hopefully running in regular, isolated processes. This is obviously great for security and stability, but naturally requires way more context switches that can hurt performance. Now slim and lightweight micro kernels (such as L4) are usually quite optimized and often require less instruction cycles for inter address space context switches, however such a horde of multiple servers will execute multiple times more of those. Now my (novel?) idea to further minimize the costs of context switches is to bundle system calls in batches (or molecules? ;-) so that an application (or device driver, after all they should now be regular processes, …!) only context switch once for a couple of system calls. The exact ABI calling convention and format has to be defined by the implementor and implementation, for simplicity let’s assume some kind of “protocol buffer”, so a open, read, seek, read sequence could look like:

syscallnr | arg0 | arg1 | arg2 | …
read | fd | buffer | 128
seek | fd | -128 | SEEK_END
read | fd | buffer | 128

The same concept obviously applies to all kind of similar operations, and is somewhat similar to the existing Unix concept of writev(), and it’s iovec structure – just way more generic and flexible.

As a bonus point for more flexibility, one could either implement it so, that the syscalls are executed one-by-one until the first error, or optional –for a little more flexibility– introduce flags / tags of groups to execute until and error occurs or not. E.g. the operations might be related to two different file descriptors, so the other tagged group could still be executed, even when one of them failed. Obviously error checking for the calling application becomes a multi return value operations, instead of just a single if (!read/write/…) {} block.

Nice rsync progress?

January 23rd, 2019

Rsync -v (–verbose) is too verbose, scrolls too much text on your slow Linux graphic terminal? Then maybe this tip is for you ;-)


Still searching for the perfect laptop…

January 14th, 2019

Over a decade, 12 years (!!!) ago I wrote about who designs this crap (this millenniums laptops). And here we are the Apple MacBooks became even more unusable, with soldered in RAM, SSD, really crappy keyboards, that get stuck by mere dust. And while I would love a nice generic quality PC, there is always something wrong with each and every model. Thermal throttling, crappy keyboards, too. You name it. It is no wonder that PC sales are declining when users can not find a good and matching device:

Linux on macOS w/ Xhyve & Hypervisor.framework

December 8th, 2018

Just the usual quite note for myself ;-)

xhyve -A -m 512m -c2 -f kexec,~/Downloads/boot64/vmlinuz_4.19.4-dist,initrd2,”earlyprintk=serial console=ttyS0 root=/dev/vda1″ -s 0:0,hostbridge -s 31,lpc -l com1,stdio -s 2,virtio-blk,~/Downloads/linux-vm.img -s 4:0,virtio-net -s 5,fbuf,tcp=,w=1024,h=768