My Rambling Thoughts

Botched Raspbian Buster upgrade

It is very simple to upgrade in-place from Raspbian Stretch to Buster.

In /etc/apt/sources.list and /etc/apt/sources.list.d/raspi.list, replace stretch with buster.


sudo apt-get update
sudo apt-get dist-upgrade

Of course, this is not recommended at all, because things can go wrong. And when they do, you may need fairly arcane knowledge to recover. (Tip: you can always google.)

Well, it failed halfway for me cos my 64 MB /boot partition (from Jessie) was too small.

The firmware-misc-nonfree package deleted /boot, but did not install anything (maybe out of space), and stopped the upgrading process. O_O

Luckily, we could resume with

sudo apt --fix-broken install

And this time, firmware-misc-nonfree passed and apt went on to upgrade the rest of the packages.

(/boot has 8% space free. :phew:)

Lastly, issue

sudo apt autoremove

and reboot.

It would have been an happy ending if we stopped here. :lol:

But the small /boot nagged at me. It could be a potential issue in the future. If you install a fresh Buster now, the boot partition is 256 MB.

I googled and found that /boot has to be the first partition, but it does not have to be in front physically.

So, instead of,

  • Shrink root (aka data) partition by 128 MB
  • Move it to the right (this will take a really long time)
  • Resize boot partition to 128 MB

I decided to:

  • Copy boot files out
  • Shrink root (aka data) partition by 128 MB
  • Delete boot partition
  • Create new 128 MB FAT16 boot partition at the end
  • Copy boot files back

It did not work. The Pi green LED flashed 7 times on startup, meaning it was unable to find the boot partition.

Let me revert my changes?

  • Delete boot partition
  • Create 64 MB FAT16 boot partition at original location
  • Copy boot files back

Pi still could not find the boot partition.

Either gparted did not put boot as the first entry in the partition table or I did not configure it properly (label or flags?).

I decided to cheat. :devil:

  • Backup entire root parition using tar (10+ mins for 11 GB)
  • Install fresh Buster using Raspberry Pi Imager on Windows 10 (5 mins)
  • Delete everything in boot and root partitions
  • Resize root partition (default was only 4+ GB)
  • Restore boot and root partitions (10+ mins)
  • Edit /boot/cmdline.txt to use new PARTUUID
  • Edit /etc/fstab to use new device id (mmcblk0p1 and mmcblk0p2)

This must be done on another Linux machine, of course. I'm installing a fresh Buster to get the correct partition structure.

It works. :lol:

Botched Raspberry kernel upgrade

My Raspberry Pi was still running Stretch and kernel 4.19.66.

I had thought of upgrading it to Buster because Chromium was stuck at v72 for Stretch.

I wanted to upgrade Chromium as I thought it might help with YouTube playback. CPU usage is very high. It's like there is no h/w video acceleration. There is also massive memory leak for each video. Free memory drops to 30+ MB after just a few videos and the system becomes extremely unresponsive to the verge of hanging.

So I decided to upgrade the kernel first. The cutting edge kernel is 5.10, released just a few days ago. I decided to upgrade to 5.4.83, the latest in the 5.4 branch, using rpi-update.

It was unable to boot. Black screen after logo screen.


There was no option to revert to the older kernel.

I thought there was no other option but to reinstall. I did not want to reformat my existing SD card (there is un-backed-up data inside!), so I went out to buy a new SD card. I also had to buy a SD card reader as I did not have one.

On the way, I found that there is a way to recover. You need to download a Raspberry Pi kernel image, then copy these dirs over to the non-booting SD card:

  • /boot (in its own partition)
  • /opt/vc
  • /lib/modules

In any case, since I already bought a SD card, I installed a fresh Raspbian Buster on it. I then mounted the original SD card and copied these dirs over.

For /boot, I copied everything. I used rsync to copy dir and preserve file permissions (could have used cp -pr).

For /opt/vc, looking at the timestamps, I only copied bin and lib.

For /lib/modules, I copied 5.4.79-v7+, 5.4.79-v7l+ and 5.4.79-v8+ (the kernel that comes with the current Buster). I left the existing dirs, including 5.4.83+, alone.

Because I copied from an installed kernel, cmdline.txt was overwritten. It could not boot as root was pointing to the wrong PARTUUID. But this was unlike before as there was still a blinking cursor. I changed root and it booted! :phew:

(It helps to remove quiet from cmdline.txt to see what's going on.)

As a bonus, I find that there is no more memory leak in YouTube! CPU usage is low. I believe h/w video acceleration is now working. I don't think it is due to the newer kernel, but maybe some settings in /boot?


  • Transcend USB 3.0 SD card reader, $18.90
  • SanDisk Extreme 32 GB A1 UHS-1 micro-SD card, $18

(It turns out I don't really need to use the SD card.)

Replacement dinnerware at last

The dinnerware I used at home are the Nikko Patra brand. I originally bought them at OG in ~2011, then they stopped carrying it. I bought a few more from Tangs, then they stopped carrying it. (See a pattern?) It did not matter to me, cos I had bought everything that I needed. Until some were inadvertently broken over the years.

I like Nikko Patra cos it has the plain timeless look.

A few years later, I found that Sia Huat carried them, but I ended up not buying cos... I thought I could pick the sizes easily. Turned out they have two overlapping series, so exact measurement was needed.

Six years later.

I finally visited Sia Huat again. They are still there (in Chinatown). And they still carry Nikko Patra.

I bought three 20.5cm raised-edge plates to make a total of seven at home, plus one that is chipped off (due to dropping). This one is particularly tricky because there is a 20cm plate as well.

I bought two 23cm curved-edge plates to make a total of five at home. Used to have five, but two broke. One was dropped. The other developed a line along its half (it was cracked internally). It was usable for a long time, but it suddenly broke into two-halves one day.

When I brought these home, I found they were slightly bigger than my plates! Did I buy wrongly? I measured all my plates. One was 22.8cm, two were 23.0cm. The new plates were 23.2cm.

I also bought two 13cm soup spoons to make a total of five at home. Used to have five, but two were dropped and broke. I remember Sia Huat used to have two sizes, so I weren't sure which to buy.

Finally, I can open my dinnerware drawer and not wonder if I have enough suitable-sized plates. (I found that I needed more 20.5cm plates cos they are used to serve cakes/deserts. Otherwise five per type is usually enough.)


In another news, I finally got rid of my three Corelle 27cm dinner plates. I bought them (a pack of three) from FairPrice after exchanging 8 bonus points around 3 years ago. It was either a soup bowl or these plates, I don't know why I went with the plates when I already had nine 26.6cm dinner plates (five curve-edge and four raised-edge from who else but Nikko Patra). I can't resist big plates, I guess. I never used them.

It is listed on Carousell for $28. I was considering listing it for $15 to $20, but I wonder if it'll sell at all. In the end, my nanny said she wanted them, so I gave them to her.

Returning Talisman 2nd ed to its owner

After 30 years. :-O

This was owned by a friend of a friend. I borrowed it from the friend 30 years ago, but lost contact with him over the years. I didn't think I would find the rightful owner, but recently, I found another friend who knew him, so he would help me return it. :lol:

(I never knew the owner.)

This consists of:

  • The base game
  • Expansion set
  • The Adventure
  • Dungeon
  • City
  • Timescape

Basically, the entire 2nd ed game except for Dragons.

Sadly, I have only played it a handful of times.

I have inventoried the cards:

  • Base game: missing Cursed by Hag event card, Healing spell card
  • City: missing Valkyrie char card

Not bad, I must say.

I bought a used 2nd ed in very-good condition around 15 years ago. It was still affordable then. (I couldn't afford the excellent condition ones.)

A game like Talisman would not fly with modern board game audience. For one, it is too long. A normal game clocks in at around 4 hours. This is usually due to four reasons:

  • Losing focus; keep moving around the board rather than advancing to inner region
  • Negative encounters that kill or lose all items (e.g. frog)
  • Too many adventure cards, deck recycles slowly
  • Too many boards (e.g. Dungeon, City)

The base game has 104 adventure cards. The Expansion set adds 36. The Adventure set adds another 37. (Dungeon, City and Timescape add only a couple of cards to the main adventure deck.) It is best to use just the base game or add just one of the expansions.

Some suggested house rules (never tested):

  • You may carry up to 6 objects (from 4). You are limited to 8 lives and 6 followers at a time.
  • Horse-n-cart is a follower and may hold up to 8 objects. You may only have one horse-n-cart at a time.
  • You may drop one object or gold to +/-1 square per movement. The object/gold is left on the square you avoided. (It can be hard to land on a square that you want.)
  • You may drop one gold on the square to avoid an encounter.
  • You may teleport from the village to the city and vice-versa as part of your movement. You must end your move immediately and encounter the square.
  • You may discard up to three followers for one gold each at the city. (There are not many ways to earn gold.)
  • You may discard three followers for one craft at the village. (It is hard to increase craft. There is no such thing as discarding 7-craft worth of defeated spirits for craft.)
  • Poltergeist: you lose it after crossing a river or rolling a 6 on your turn.
  • If you become a frog, you keep your stats, objects and followers. You may not use any items, but may use spells and followers. Your movement is restricted to one per turn. You go back to normal after three turns or if you roll a 6 on your turn.
  • If you die, you drop all your objects and gold on the square, but keep your improved stats and followers. You must choose a new character and restart at the character's starting square with 4 lives and 4 gold.

The intention is to reduce play time to 2 hours or shorter.

No good news in Nov

Evil wins because Evil is scheming.