I have decided to finally upgrade my eight years old x86-64
desktop. Will stay with same architecture,
just change CPU vendor from Intel to AMD.
This move was delayed few times with “who knows, maybe finally there will be
some affordable AArch64 desktop systems”. But time to say the ugly truth:
There have never been, nor will be AArch64 desktop systems
No one makes them because no one buys them. No one buys because there is no
hardware to buy.
Or we got to the point where most of people just need a phone? And developers
are expected to use remote machines for everything?
What is desktop system?
For me desktop system is a computer in a box somewhere under desk. With some features:
fast storage (like m.2 NVME),
option for more than 16GB of RAM,
onboard audio able to handle 5.1/7.1 speaker set,
several USB ports,
gigabit Ethernet,
some PCI Express slots for potential upgrades.
For example my eight years old x86-64 desktop has 256GBNVME in m.2 adapter
(occupying PCIe x4 slot), 32GB of memory, additional USB 3.0 controller in the
other PCI Express slot (as onboard Etron EJ168 one has issues with some
devices). And SoundBlaster Live audio card in PCI slot. And some 1GbE port
onboard (BCM57781 this time). And some SSDs attached.
But those Avantek systems???
Someone can say that there are AArch64 desktop systems on market. Avantek sells
them. But are those machines
desktop class systems?
NO. Those are server mainboards in tower cases. And you basically have no idea
what exactly you are going to buy as there is only graphics of case. No internal
photos, no back photo, no user manual to download.
Avantek 32 core Cavium ThunderX ARM Desktop
No onboard audio. No mention about USB ports, two PCI Express slots (x16 + x8),
no 1GbE network port. No mention about m.2 slot for NVME storage.
Ampere eMAG 64bit Arm Workstation
Specification may change without notice.
Product may differ from images shown.
In other words: “we have no idea what we sell”. Features listed put system a bit
closer to desktop class as there are USB ports (just two), there is 1GbE network
port. Just onePCI Express port (x8).
Avantek ThunderX2 ARM Workstation - ThunderXStation
4U rack/tower case sounds clearly like “we know it is server but will try to
sell it as a desktop”. No m.2, no audio, no mention about USB ports, no 1GbE network.
Other vendors
So maybe there are other vendors? Depends on how much you are on “has to be SBBR
compliant” side.
Windows on Snapdragon
Yay! Mobile chips based laptops! Sure, they have their niche. I know people who
use them as daily laptops. For normal use and for development.
But my work requires 16GB+ of RAM and working virtualization.
Linaro Synquacker
Or Synquacer or Linaro DeveloperBox or whatever you call that box filled with
Cortex-A53 cpu cores. Where you have to choose “working graphics or
working virtualization”.
Macchiatobin
There are people using it as a desktop. 16GB ram is the limit. One PCIe slot.
Lot of network interfaces would make it nice router probably.
HoneyComb LX2K
Looks interesting. Will see how it ends once get on market (preliminary
version on sale now). Still requires USB audio dongle.
Friend suggested that as CPU is on SoM card then other carrierboard can be
designed. Sure, but not gonna happen probably.
I have seen it already
About four years ago I had that funny project: APM Mustang as a
desktop (day
1, day
2, day
3). That system was kind of
Frankenstein’s monster. Audio over some USB stereo-only dongle, all USB devices
plugged into hubs due to only two ports on mainboard I/O panel.
FOSDEM. Free Open Source Developers European Meeting. Every first weekend of
February. In Brussels. At Université libre de Bruxelles.
I used to say that FOSDEM is a week long conference in two days. I don’t think
it is valid any longer. Should say two weeks now as last time it was something
about 700 talks. Still during two days.
I also used to say that I can not afford not being at FOSDEM. It is probably the
easiest way to meet developers from all those projects I worked with or was
interested in.
But how to survive FOSDEM? Food. Logistics. Clothes. Logistics. Mobile app.
Logistics
Yes, logistics is one of key factors when it comes to this conference.
Lectures take place in several buildings (AW, H, J, K, U). At same time.
Getting from one to another takes time. You can meet people on a way and decide
to discuss something rather than go for talk.
Since few years ago there is even online navigation
tool to show you which way to go from one place to
another. Very handy especially if you have some mobility issues.
Sometimes it is worth to be in some room session before just to have a seat.
Limits are taken seriously and when info on door says “room full” then do not
even try to sneak in. You may find some spot and watch live
streaming — just remember about
good headphones to not interrupt people around you.
If you need a place to sit for a bit with your laptop then you can go to
cafeteria in F building (crowded, noisy) or sit in hacking room (quiet) in the
middle of H building (if provided — 2024 edition lacked it).
Hotel
Get place to sleep in city centre. “Crawling distance from Delirium Café” is
perfect as this is where lot of people spend Friday’s and Saturday’s
evening/night. Also several places to get various food, some grocery stores
(just check opening times), pharmacies, GSM shops etc.
Public transport
Use whatever you normally use (Google Maps or so) to check for it. If possible
avoid bus 71 if you go on popular time and not from the first stop. It gets full
right on start and keeps that way until FOSDEM stop.
One of options is getting to Etterbeek railway station (about 1.5 km walk) and
then travelling wherever you need. This is my favourite way to go from FOSDEM to
BRU airport on Sunday evening.
IMPORTANTNOTE: Up to 2023 edition there were free buses from ULB to
Brussels South (Midi) railway station on Sunday afternoon (15:30 - 19:30). It
gave an easy way to get to BRU airport. They are not provided any more.
Nowadays (2023+) it looks like using bank card is easiest way. Just enter
bus/metro/tram and tap to pay.
Note that there are some single use tickets still in use if you prefer not to
use bank card.
Mobile application
As long as your phone is able to run applications check Mobile schedule
apps page at conference website and
choose one. I use ‘FOSDEM Companion’ on my Android phone.
Install application at least week before the event. Sync schedule and start
checking which sessions to attend. Ignore fact that some will overlap. It is
always better to have more listed than less — sometimes you sacrifice one due to
being in wrong building or room will be full so you can take a quick look at
list and go somewhere else.
Internet access
Once you reach FOSDEM there is no problem — conference area provides you fast
wireless network access.
If you are from one of EU countries then your GSM operator probably provides you
with some data limit for “Roaming Like At Home” functionality.
If you are from outside of EU then I suggest reading prepaid with
data wiki page. GSM
operators stores are in several places in city centre. Or you may even manage to
find some at airport but easier to just grab one once you reach centre.
Food
Eat proper breakfast. Not “just a fruit and coffee” but some proper one. You
may not have a time to stand in a queue for some FOSDEM food. It is not worth
your time.
Better option is to just have something with you. Get fruits, nuts, energy
bars, chocolate. Some kind of quick calories.
Or spend half an hour (or more) waiting for fast food. Still good opportunity to
chat with people.
Social events/gatherings during evenings
There are several social events/gatherings organized by different groups and
organizations during Friday/Saturday evenings.
In past there was beer event on Friday evening. Since 2008 it took place in
Delirium Café pub (later on whole street leading to it). Many people still go
there on Friday. Can be hard to get there due to number of people. It was an
easy way to meet far too many familiar faces. And get beer (once you managed to
reach bar). Nowadays many people avoid it due to crowd.
Beer
Remember that Belgian beer can be stronger than your normal one. Do not drink
too much or you will suffer and be too wasted during conference.
Clothes
FOSDEM is in February. Which means winter. So it may mean snow but it is
Brussels so usually it is either nice or rainy. And you will go into building
and out of building several times per day. Be prepared for it.
Proper shoes to walk on concrete, steps but also snow, mud and grass. Winter
cap, scarf, maybe even gloves. Do not have to be thick ones like for some Arctic
winter. Assume few degrees above 0°C.
Small backpack and bottle of water. Do not throw away once get empty. You are at
university. You can refill your bottle at several places. Tap water is drinkable.
Trash
Do not put your trash in random places. Use trashcans, inform organizers and
volunteers if you see full ones. Put bottles into places for bottles.
If you can then stay after ending session and help to clean up. It is free
event so help those who organized it for you.
Swag
FOSDEM is a free event. But there is swag. You can go to organizers’ desk and
donate money to keep the event going. For 25€ you can get the official t-shirt.
Several projects have their own stands — mostly in K building but there are also
other ones in AW (mostly related to embedded space).
If you are stickers fan (or your new laptop still have some space on case) then
go on a tour, discuss with developers, see what they present. Grab leaflets,
stickers, donate some money (usually in exchange to more premium swag) etc.
Or some funny one like this license for VLC I got in 2019:
Fiancé(e) or family
If your companion is not interested in FOSDEM you may sign them to free
tour(s). My wife came with me to
conference once, went for tour each day and enjoyed them.
Other events
There are several meetings taking place right before and/or after FOSDEM.
CentOS Project has event before FOSDEM. It is a nice opportunity to meet
developers working on this distribution.
After FOSDEM you can attend OpenEmbedded workshop or Buildroot developers meeting.
Several other projects are having own meetings, developer days etc. You can
check list at FOSDEM Fringe page.
After FOSDEM
During FOSDEM all sessions are recorded. If you are speaker then you will get an
email with link to the system where you can accept recording to be published.
My page about FOSDEM videos
lists all talks given at FOSDEM since 2012. With links to slides and video
recordings (if available). Provides an easy way to check all those sessions
where you were not present or want to watch them again.
I am on demoscene since 1997 when I attended “Intel Outside 4” party in
Włocławek, Poland. But I have never released anything. Until Xenium 2019 party
where I presented my first 8K intro. Written for Atari 2600 game console. In
some kind of BASIC language…
The idea
The idea for it came about year ago during Riverwash demoscene party. Most of PC64KB intros started with some kind of progress bar as code was generating
textures, instruments and other stuff requiring calculations. I joked that it
would be great to make something similar for Atari 2600 VCS.
The fun is that Atari 2600 lacks any usable memory. It has 128 bytes (bytes, not
kilobytes) of RAM. The only storage is cartridge with 4KB of ROM space
(expandable by bankswitching to 32KB). So there is no point in any generating at
other phase than development.
batari Basic
During July I took a look at available options and found ‘batari
Basic’. It is BASIC-like language developed in
2005-2007 by Fred X. Quimby.
At start of “oldchool intro” competition I told to friend sitting next to me
that I hope for at least four entries. He asked “why?” so I pointed him to the
screen saying “because of it”:
There were six entries so I though that I am safe and will have 5th entry maximum.
Intro
Thanks to Xenium organizers I have my intro recorded as video:
As you can see it has two parts. First one is playfield with one line changing
every 30 frames (first version was for NTSC). Result is simple progress bar.
Second part uses “titlescreen
kernel” to
display dino graphics. I used one provided by Xenium organizers (rescaled
to 96x91 pixels). I used rainbow colours to have some colours on screen.
Results
Imagine my surprise during voting results announcement next day. My intro took
3rd place!
Amazing for production without any effects, without any audio. And written in
BASIC-like language without using any knowledge of 6502 assembly.
My work in this cycle was more reviews, less code. And lot of planning how to handle Python 3 migration for Debian/Ubuntu based images. At some point we decided that this stuff will be postponed to ‘train’ cycle. You can read more about it my previous post: Moving Kolla images to Python 3.
Why so late
Usually we release Kolla ‘two weeks’ after official OpenStack release. This allows us to switch to final release code of other projects, do some testing etc. This time it took us far more time :(
Due to several issues (some core developers got more occupied with work, distributions changed dependencies in packages) it took us longer than ‘two weeks’ after official OpenStack ‘stein’ release. We added more tests for CI, handled partial Python 3 migration in Ubuntu Cloud Archive and more.Several fixes were made in ‘train’ and backported to ‘stein’.
Now it is your turn — build, deploy, test, report ;D
I have built my current desktop 7.5 years ago. Since then I did not had a need for a big hardware changes.
Upgrades
Machine (called ‘puchatek‘ (Winnie the Pooh in Polish)) had several upgrades in meantime:
got maxxed at 32GB of memory
60GB Corsair SSD for / was installed 8 years ago
250GB Samsung Evo for /home was added 3 years ago
graphic cards were changed from Radeon HD5450 via Radeon R7 240 to Nvidia GTX 1050 Ti
Issues
Size of system drive became an issue when I needed to build hundreds of container images. All that Kolla stuff…
One of solutions was replacing system drive with bigger one. So I tried to use PCI Express to m.2 adapter card and realised that x8 slot stopped working.
New mainboard
It was a time to replace motherboard. And it is impossible to find a brand new one with 1155 socket. So I went through used ones and found nice replacement — Asrock Z68 Extreme4.
What’s nice in it? PLX chip. It is PCI Express switch. So mainboard can have x16/x8+x8 slots, x4 slot, some x1 slots and several onboard components despite of only 24 pcie lanes available (16 from cpu, 8 from chipset).
This way I can have graphics card working in x16 slot (it goes with x8 anyway) and NVME drive in x4 slot. If I decide to go into SLI (two graphics cards) or 10GbE I have a slot for it.
PCI tree
PCI tree looks a bit different now:
cpu
x16 slot with graphics card
x8 slot (empty)
chipset
x4 slot with nvme
x1 link to Marvell SATA controller (disabled in firmware setup)
x1 link to Etron USB 3.0 host controller
x1 link to Etron USB 3.0 host controller
x1 link to PLX switch
PLX switch
x1 slot with Renesas USB 3.0 host controller
x1 link to FireWire controller (disabled in firmware setup)
Latest available firmware was from 2012 and lacked any support for NVME boot. Thanks to other hackers it was not an issue. Only had to follow “how to add NVME booting into BIOS” instruction. After flashing modified firmware I could boot directly from NVME drive.
Final result
System boots from NVME now. 256GB of fast storage available for / and my container images. Spare PCIe x8 slot for future upgrades.
USB. Protocol which replaced random keyboard connectors, PS/2, ADB, gameport, serial and parallel ports (and many more). Sometimes expanded to “USB Sucks Badly“.
Five years ago buying USB 3.0 hub was a task as it was not so popular thing. Nowadays I have three SuperSpeed ones. One in LG monitor (webcam, phone, Bluetooth dongle), one on desk (watch charging/adb, Yubikey, card reader, pendrives etc) and that 7 port one from five years ago with random dongles in it.
Yesterday I replaced Gigabyte P67X-UD3-B3 mainboard with AsRock Z68 Extreme4 one. This gave me extra PCIe x4 slot where I can plug NVME storage. Built system, booted into Fedora and started using.
At some moment I had to login into one of systems with two factor authorization. I use Yubikey for it. Pressed the button and nothing was outputed…
Then I realized why previous configuration had that extra USB 3 controller:
usb 3-2.2: new full-speed USB device number 12 using xhci_hcd
usb 3-2.2: New USB device found, idVendor=1050, idProduct=0110, bcdDevice= 3.33
usb 3-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 3-2.2: Product: Yubikey NEO OTP
usb 3-2.2: Manufacturer: Yubico
usb 3-2.2: Not enough bandwidth for new device state.
usb 3-2.2: can't set config #1, error -28
Yay, USB!
Plugged Renesas uPD720201 PCIe USB 3.0 host controller, moved all hubs to it and it works just fine:
usb 7-3.2: new full-speed USB device number 11 using xhci_hcd
usb 7-3.2: New USB device found, idVendor=1050, idProduct=0110, bcdDevice= 3.33
usb 7-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 7-3.2: Product: Yubikey NEO OTP
usb 7-3.2: Manufacturer: Yubico
input: Yubico Yubikey NEO OTP as /devices/pci0000:00/0000:00:1c.7/0000:05:00.0/0000:06:01.0/0000:07:00.0/usb7/7-3/7-3.2/7-3.2:1.0/0003:1050:0110.0008/input/input30
hid-generic 0003:1050:0110.0008: input,hidraw6: USB HID v1.10 Keyboard [Yubico Yubikey NEO OTP] on usb-0000:07:00.0-3.2/input0
Then checked which USB 3.0 host controller is on mainboard:
11:29 (0s) hrw@puchatek:~$ lspci |grep -i usb
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
03:00.0 USB controller: Etron Technology, Inc. EJ168 USB 3.0 Host Controller (rev 01)
04:00.0 USB controller: Etron Technology, Inc. EJ168 USB 3.0 Host Controller (rev 01)
07:00.0 USB controller: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller (rev 03)
Argh, Etron EJ168 again…
So if your mainboard has Etron EJ168 then consider adding Renesas card. Works just fine. Nevermind how slow/fast your USB devices are.
Nine years ago at 11:00 a group of developers gathered in a small room. I was
one of them and did not knew anyone from a group before entering the room.
The meeting took place in Dolce La Hulpe Hotel and Resort in a village close
to Brussels, Belgium. It was on first day of UDS-M.
This was the first meeting of NewCo developers. The organization now known as Linaro.
I do not remember who exactly was at that meeting so will not provide a list.
We introduced ourselves, got some knowledge of who is who’s boss and what we
will do from now. I just told “I’ll do what my boss (pointing to Steve
Langasek) orders me to” as I was tired after whole night train
trip.
For me this was the real beginning of Linaro. Not June 2010 when (at Computex)
it was announced to the world. Neither 26th April 2010 — a day when I started
working for Canonical as NewCo engineer.
I had some kind of personal website since started using Internet in 1996. First it was set of hand edited Lynx bookmarks, then were experiments with wikis. Finally in 2005 I started using WordPress. And it was in use for those 14 years. Until now…
WordPress is nice platform but I got tired of it. More and more plugins and themes became demo versions of commercial products. Also amount of JavaScript and CSS added to website made it harder and harder to maintain. At some point I said myself that it is enough. And started looking for alternatives.
Pelican
Here came Pelican — static site generator written in Python. I had few attempts to switch to it and finally managed to find some time and sorted out all issues.
Someone my ask why Pelican? Why not Jekkyl, Gatsby, Hexo, Wintersmith or other. For me reason is simple — it is Python. Language which I already know. So in case of need I can read source code and know how to change it (already sent one change and it got merged).
Conversion
The good side is import from WordPress went nice. As I used Markdown most of posts required changes. Implementation in Pelican differs from old Markdown Extra + SmartyPants I had in my blog.
Images
Then came images. Copied whatever I had on previous website and removed all thumbnails. Then decided to go with 700px wide ones and to not link to original photos. Boring work as almost every image in every post needed change. Some entries got pictures removed (most of time due to their low resolution).
This also shown how my blog was changing through all those years. Over 10 years ago adding 300x300px picture into blog post was normal thing. Now such graphics got either removed or replaced with 700px wide one.
Some posts had galleries inserted instead of pictures. This took a bit more time as I was grabbing filenames from database to replace gallery with set of photos. And removed some of them during.
Look and feel
When I was collecting ideas for a new platform I had few ideas:
static generator
no JavaScript
minimal CSS
similar look to WordPress version
Pelican solved first point. Handling rest was harder.
I took a look at existing Pelican themes and tried several ones. Finally decided to make own one — like WordPress “Spacious” one.
As a base I used “Simple” theme. Typical template with header, content, sidebar and footer. Elements put in CSS grid for most of screens and once screen width goes under 70em layout switches to “flex”. This allowed for simple responsive web design. All in ~2.5KB of CSS (plus some code for webfonts).
Archives
One of big changes (compared to WordPress) is a way of presenting archive posts. You can go into archives to see the list of all my blog posts like it was before. But if you go for a list of posts in a tag (like AArch64, Red Hat, Zaurus) then instead of posts with pagination you get list of posts presented in archive form.
This should make old content easier to find.
Comments
As you may notice there is no way to comment posts anymore. Amount of comments was lower every year so I decided to not bother with them in new website. I could add Disqus for example but is it worth for just a few entries per year?
To Do
There are some things I need to take care of still. Page about my fridge magnets collection is missing, some entries may get some formatting changes or small contents edit. No big edits of old posts as they show how awful my English was in past (not that it got any better).