2023–09–02: Linux
repository changes
Github sent me an e-mail ultimatum to enroll to 2FA or my access to github
will be blocked in the near future. I have no use for 2FA, so github will have
to block my account in October.
So in preparation for this, I completed my move off github that I started
after the takeover by Microsoft years ago.
Last few years I used github for nothing else but my Linux repository
mirror, because it's somewhat hard to host this huge repo on my own. I'd move
to gitlab, but that's just another company that tends to block me from
accessing their website via their use of Cloudflare on the login page.
I can't host Linux repository for clonning/fetching. GIT is too inefficient
for running clone/fetch via either smart or dumb GIT HTTP protocol. Dumb
protocol just downloads 3–4GiB of data for each clone/fetch, so
that's useless. Smart protocol takes too much CPU time repacking/recompressing
things on the fly for each fetcher (minutes of 100% CPU load just to start
sending data).
I switched to using incremental GIT bundles to distribute my kernel
branches/tags. The bundle contains select tags/branches from my local git tree
and all necessary data so that when applied to Linus Torvalds's Linux
repository, it will recreate everything as is in my local tree, without me
having to host the entire Linux GIT history.
Bundles can be fetched from just like you'd fetch from a normal GIT
repository with git fetch
. Bundle for my last 3 kernel releases
has the size of only ~10 MiB. The only snag is that git fetch can't fetch
bundles from a HTTP URL, so the bundle needs to be downloaded first via
wget
or curl
.
If you have a Linux tree already, fetching my latest branches would be done
like this:
wget https://xff.cz/kernels/git/orange-pi-active.bundle
git fetch orange-pi-active.bundle '+refs/heads/*:refs/remotes/megi/*'
Or you can add alias to .git/config:
[alias]
fetch-megi = !curl -o /tmp/megi.bundle https://xff.cz/kernels/git/orange-pi-active.bundle && git fetch /tmp/megi.bundle '+refs/heads/*:refs/remotes/megi/*'
And update just by running git fetch-megi
On the positive side, bundles are signed, so you can be sure that the
branches contain what's in my repository if you verify the detached signature
in the .asc
file after the download. This was not the case with
fetching from github.
If you don't have the Linus's tree cloned, you'd need to clone
it first:
git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
orange-pi-6.5 release
will be delayed or skipped
I have not tagged my orange-pi-6.5 branch yet, because some of the 14 ARM
devices that I support in my kernel branches were either not yet tested, or are
known to have serious issues with this kernel version.
I've tested all of these:
pc Orange Pi PC
one Orange Pi One
pc2 Orange Pi PC 2
pi3 Orange Pi 3
opi5 Orange Pi 5 Plus
qp64 Quartz Pro 64
q64a Quartz64-A
pb PocketBook Touch Lux 3
tbs TBS A711 Tablet
pt2 PineTab 2 (*)
But did not manage to resolve all known issues with some portables that
I support:
pp0 PinePhone 1.0
pp1 PinePhone 1.1
pp2 PinePhone 1.2
pbp Pinebook Pro
ppp Pinephone Pro
(*) I don't really support PineTab 2. I just have some of the
Segfault's patches in my tree to make it easier to try to support the BES2600
WiFi chip with upstream CW1200 driver. Do not use my kernel tree for this
device.