site  contact  history  index

Nexus 5 updated to Android 8.1.0

March 24, 2018 — BarryK

I originally purchased the Nexus 5 to be able to play with MaruOS:

The most recent version of MaruOS is 0.4.1. This evening, decided to install a recent vanilla-flavoured Android. This is how it was done...

Download MaruOS image, to get the 'adb' and 'fastboot' binaries:

...get them out of the zip file.

Download Android 8.1.0 image for Nexus 5:

Download TWRP for Nexus 5:

How to install TWRP:

Place 'adb', 'fastboot', 'twrp.img' and the Android zip file in the same folder, open a terminal.

Plug USB cable from computer to phone. On the phone, turn on "USB debugging", as explained here:

Type "lsusb" in terminal to verify that computer sees phone.

What I did to install TWRP, in computer terminal:

# ./adb reboot bootloader
# ./fastboot flash recovery twrp.img

Reboot the phone in Recovery mode:

# ./adb reboot recovery

On phone, press Up-Volume physical button, until "Recovery" appears on phone screen, then press Power physical button.

On phone, press "Advanced" button, then "ADB Sideload" button. There are a couple of checkboxes, "Wipe Dalvik cache" and "Wipe cache", tick those. Then there is a slider to start the sideload.

Back on the computer, type:

# ./adb sideload

This will install the Android image file from the computer to the phone. Then there will be a button on phone to reboot. Yay, it worked!

Tags: tech

Module-loading options fixed

March 20, 2018 — BarryK

The BootManager, /usr/sbin/bootmanager, which is in all pups going back many years, has three options for choosing which modules to load at bootup. There is "blacklist", "add" and "preference".

The "blacklist" option manages a list of modules that are blacklisted, that is, will not be loaded. This list is in variable 'SKIPLIST' in file /etc/rc.d/MODULESCONFIG, which is written to /etc/modprobe.d/blacklist.conf by /etc/rc.d/rc.sysinit at bootup.

One qualification though, a blacklisted module can still be loaded manually, using the 'modprobe' utility, and will also be loaded if it is a dependency of another module that is loaded. Note, if you want to absolutely blacklist a module, including the above two, a line like this  in a .conf file will do it: "install <module name> /bin/false"

The "add" option is a list of modules that will be loaded, that would not have done so automatically. This is variable 'ADDLIST' in /etc/rc.d/MODULESCONFIG, and they are loaded by /etc/rc.d/rc.sysinit

The "preference" option is to give one module preference over another, in the situation where two (or more) are contenders for the same hardware. This  was variable 'PREFLIST' in /etc/rc.d/MODULESCONFIG, and was loaded by 'pup_event_backend_modprobe'. However, this script has been removed, see earlier blog post:

Also, variable 'PCI_OVERRIDES' is no longer supported, now removed. The "preference" option is removed from BootManager.

It's ok, the "preference" option is redundant anyway, blacklisting suffices.

Tags: easy, quirky

Linux kernel 4.14.27 compiled

March 16, 2018 — BarryK

I have compiled this in EasyOS Pyro64 0.8.1. That release came with kernel 4.14.23, which I compiled with the 'nvm' driver builtin, following advice from forum member scsijon:

  Device drivers
<*> NVM express block device

Yesterday, scsijon advised on the forum about the new very fast 'ufs' flash memory. Previously, I had the driver for this as a module. However, for the 4.14.27 compile, I have changed it to builtin:

  Device drivers -->  SCSI device support
SCSI low-level drivers
<*> Universal flash storage controller driver core
<*> PCI bus based ufs controller support
<m> Platform bus based ufs controller support

The intention is to support computers with these very new flash memory architectures at bootup.

Tags: easy, quirky

EasyOS Pyro64 0.8.1 released

March 14, 2018 — BarryK

Upgraded SeaMonkey, now at 2.49.2. New Inkscape 0.92.2, included in the build -- I like a good selection of graphics apps builtin, so this joins Gimp, LibreOffice-Draw, Dia, and mtPaint.

The Intel Xorg driver, 'xf86-video-intel' has been upgraded to a recent out of git. We are trying to find out why EasyOS is troublesome on some hardware. It is Intel GPU related.

The Xorg Wizard now has an option to switch between 'sna' and 'uxa' video acceleration, the latter suiting older hardware (I think).


We are discussing the stability issue on the Puppy Forum:

"Unfortunately", EasyOS is completely stable on my PCs, and all four of them have Intel video! So, I can't reproduce the problems myself.

Tags: easy

Euro Glider caravan

March 12, 2018 — BarryK

How about this, a 9ft caravan with ensuite!


These are made in Poland, brand name Niewiadow, and imported into Australia as the Euro, and the UK as the Freedom.

What got me thinking about this, is last time that I went camping with my tent, it took almost an hour to set everything up. Put up the tent, unpack everything from the car. Hunt around in various boxes, "where did I put that?", etc.

Wouldn't it be nice, I thought, just to stop the car, get out, open the caravan door, and that's it. Have an arvo snooze if I want, whatever.

Maybe I'm getting lazy.

Anyway, it is quite incredible what can be fitted into 9ft. I haven't seen inside this one, just pictures and videos, but I have looked inside the next-up model, 10ft long. I am 5ft 10inches, 178cm, and ceiling height on both of these is about 180cm, so I just make it.

I think that 180cm is with the popup hatch down, so with it up, a taller person would fair better. This video shows a tall person inside the UK variant:

...that's the 3-berth, without ensuite. Here is a video of the one with ensuite, UK variant again:

The Australian distributor for the Euro is here:

UK distributor for the Freedom:

Note, comparing the Euro Glider and Freedom Microlite, the models with ensuite are slightly different layout. Fridge and clothes-closet are on opposite sides. I reckon the Euro is a better choice, with fridge on door-side.

I think that something like the Glider is a much better choice than a tear-drop caravan or camper-trailer, where you have outside kitchen, in fact have to do most things outside, just go inside to sleep.
But, I guess that depends on your preferences, some would say that going camping means being outside a lot.

Anyway, it is fun to look at this kind of stuff!

Tags: light

Aboriginal Linux 1.2.0.x resuscitated

March 09, 2018 — BarryK

Over the years, developing Puppy and derivatives, I have had a need to compile some utilities statically.

It has been ad-hoc, using different uClibc and Musl filesystems. Now, I am making it more formal, and reproducable and useable by anyone.

Rob Landley's Aboriginal Linux is an archived project. I am bring it back, specifically the uClibc based version.

Introduction is here:

Download (228MB):

And what to do after downloading:

if anyone is interested, you are welcome to play!

Forum feedback:

Have fun!

Tags: linux

Finally, success with OpenADK

March 06, 2018 — BarryK

I wanted the 'dmsetup' utility compiled statically, for use in initramfs. This is in the LVM2 package. It turned out to be a saga of many many hours...

Unfortunately, both OpenEmbedded and Landley Aboriginal dropped support for uClibc, going over to musl. What is really odd, is the developers on both of these projects gave the same reason, that uClibc is a dead project. That is very odd, as uClibc-ng is very active. Were they ignorant of the existence of uClib-ng? -- incredible if so.

Anyway, musl. have used it many time, just don't like it. uClibc is far more glibc-compatible, and hence far easier to compile source packages.

I did attempt to compile 'dmsetup' in an Alpine Linux x86_64 musl rootfs, but finally used Landley's Aboriginal x86_64 uClibc rootfs, version 1.2.0 -- very old, but it works great. year 2012 in fact.

However, uClibc does not have the fmemopen() function, so I had to compile an older LVM2 that does not require that function -- version 2.02.119. Success, compiled it statically, about 500KB stripped.


I ruminated on what other rootfs's and toolchains there are out there, that will have a recent version of uClibc. One of them is OpenADK, that I have tried a few times over the years, always failed, see these reports:

Decided to have another go!

Downloaded the latest snapshot, ran "make menuconfig" and then "make", hit some failures, fixed them, but finally gcc compile failed with "unable to determine size of (long long)".

Scratched my head for sometime over that, but then it occurred to me that my host system might not support "long long". That does not seem to good, but anyway. My host is EasyOS Pyro64, the packages were compiled in OpenEmbedded, targeting embedded systems, and perhaps this is one compromise.

So, went over to Quirky Xerus64 8.5, which is built with Ubuntu 16.04.4 DEBs. This time success:

# make distclean
copy DOTconfig to .config
# make menuconfig
# make
copy /usr/bin/autom4te to openadk/host_x86_64-oe-linux/usr/bin/
# make you can see above, a couple of little tricks were required, the "export FORCE_UNSAFE_CONFIGURE=1", and coreutils wanted a "autom4te" file.

It finished, and built a toolchain. Now I need to study the docs, see how to compile packages, and built a development rootfs.

Tags: linux

Revisiting device-mapper

March 05, 2018 — BarryK

I investigated device-mapper, for Quirky, back in 2016:

As Quirky does not have an initramfs (well, the live-CD does, but not the full installation), I was interested in the kernel patch created by Chrome OS developers, to setup device-mapper direct from the kernel commandline.

The problem is, it only seems to allow specifying devices by name, example "sda1" or by major:minor device node numbers. However, this is not satisfactory, as these assignments are subject to change. The above link contains a link to a post from me to the "linux-lvm" mail-list about this, but noone replied,

Note, that patch was v5, and and there is now a v8 (May 2017):

As the patch is not suitable, I need to run 'dmsetup' in an initramfs. My interest is to setup COW (Copy On Write), as a replacement for aufs/overlayfs layered filesystems.

First step, compiling kernel 4.14.24, with the drivers builtin:

Device Drivers --> Multiple devices driver support
    <*> Device mapper support (CONFIG_BLOCK_DEV_DM, was dm-mod.ko)
    <*> Crypt target support (CONFIG_DM_CRYPT, was dm-crypt.ko)
    <*> Snapshot target (CONFIG_DM_SNAPSHOT)
    [*] DM uevents (CONFIG_DM_UEVENT)
That last one is very interesting, will be able to use pup_event to pickup device-mapper changes. The crypt option is also very interesting.

Tags: easy, quirky