Archive for the 'Software' Category

Setting Sun SPARC video mode in OpenFirmware

Wednesday, August 19th, 2020

Some, older video drivers specific to proprietary Sun video boards such most of their early once but also one of the last of it’s kinds Creator / Elite 3d do not have a mode-setting open source Linux driver. To set another video mode for those you “currently” need to do so from the OBP / OpenFirmware, such as:

setenv output-device screen:r1600×1000x66

Unfortunately usually the cards open firmware glue does not support any arbitrary mode with this so you need to check against a list of officially Sun supported modes, … :-/ However, you can at least test what you set with

install-console

though ;-)

Permanently reversing patches

Friday, July 24th, 2020

As simple as patchutils:

interdiff -q file.patch /dev/null

Auto reconnect Bluetooth devices on Linux

Tuesday, 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:

libexec/bluetooth/bluetoothd
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

[Policy]
AutoEnable=true

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, … :-/

Enabling SSH on a head-less Raspberry Pi

Wednesday, 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:

country=FR
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid=”NETWORK”
psk=”PASSWORD”
}

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.

Let’s talk micro kernels

Thursday, 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?

Wednesday, 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 ;-)

–info=progress2

AHCI PCIe SSDs

Sunday, October 7th, 2018

I thought we went from SATA connected (to AHCI board controllers) straight to PCIe connected NVMe protocol. Turns out there was a short time of PCIE connected SSDs with an AHCI controller. And of course Apple used them:

One can never have enough dongles^W proprietary connectors to lock users out, ..! :-/

Apache redirect except well known acme challenge?

Sunday, October 7th, 2018

Sure, here we go:

RedirectMatch 301 ^(?!/\.well-known/acme-challenge/).* https://example.com$0

Finally the first AMD ThinkPad!

Friday, September 21st, 2018

For decades fans of AMD, the inventor of x86-64, GPU infused APUs, and avoiders of a 100% Intel x86 monopoly where longing for a really high end quality machines, like IBM^W Lenovo ThinkPads. The dream came finally true, with AMD Ryzen w/ Vega gfx ThinkPads A285 and A485 this year.

This is a developing story, we will update with a review in a day or two.

Secret vintage Windows setup.exe options

Saturday, September 8th, 2018

So when you install some outdated, unsupported and vintage Windows, e.g. 95, for some retro fun or reverse engineering (of old VGA acceleration) the setup.exe was hanging for me in pcem scanning the (emulated) system for problems and such. Turns out the setup.exe has quite some option to skip things, … like:

/IS do not run ScanDisk
/IM skip the memory check
/ID skip the disk-space check
/iw skip Microsoft EULA licensing dialogs