I am late again for posting the next weeknote - it's been a mostly-work week and I am struggling to find time to write. Sans Tech Thindi Walk Fenil invited me to a thindi walk last saturday with one of his friends. Thindi walks are a couple hour long walks where you explore a locality's eateries and if lucky - also its history. This time we went to BDA Complex Banashankari . Unfortunately we…
Sans Tech IndiaPost Remember the mail I sent to Parul ? Yes the one I sent two weeks ago, trusting IndiaPost to deliver it in "3-5 days". Still shows 3-5 days btw It finally reached her. In 2 weeks. Safe to say, I am not going to recommend IndiaPost for urgent couriers. House of the Dragon Season 3 House of the Dragon's Season 3 is has been airing for 2 weeks now, and I was lazily delaying…
Sans Tech NiKo finally got his major It finally happened!! Last sunday, Team Falcons won the Cologne Major , giving NiKo his first major. I have been waiting for this event for years. If you don't realise why I am making a big deal out of this, you probably don't follow the professional scene in Counter Strike (CS); and if so, allow me to take you through a thread from the tapestry of CS history.…
Preface I am an avid selfhoster, and I follow the gitops pattern with ArgoCD for controlling the state of my Kubernetes (k3s) cluster. Something which I probably do different than most folks is that I vendor charts by helm pull -ing and --untar -ring them in-tree - # in the gitops repo root $ tree charts - L 3 charts ├── cert-manager │ └── 1.19.1 │ ├── Chart.yaml │ ├── templates │ └── values.yaml…
A lot has happened in my life since I last wrote. Casually eliding all of it, I am starting to write my first weeknote while I'm attending my first IndieWebClub session in Bangalore. I was introduced to IndieWebClub about two weeks ago when Fenil told me about this niche community of people who are very enthusiastic about the art of writing blogs. Sans Tech Some day in the last week, I realised I…
nixos-anywhere is a cool tool which can be used to installed nixos on: an existing linux installation using kexec a baremetal machine and both of those options remotely using ssh It is a part of the nix-community suite, and works well with nixos-facter for specifying the hardware configuration and disko for declarative disk layout management. It is meant to run once and if successful you are left…
I am done with setting up darwin machines now, and look forward to expand our nix files to declare state for linux hosts as well. The linux landscape is vast though, I could be logging into a work server, an embedded device, a server I rent, my personal workstation, etc. There is different amounts of state I want similar in these machines. And so it warrants for a better file structure. . ├──…
Lets expand on our flake from before and also make system level changes like KeyInputDelay : This is the new flake.nix : flake.nix { description = " Home Manager configuration of gunwant.jain1 " ; inputs = { nixpkgs . url = " github:nixos/nixpkgs/nixos-unstable " ; darwin = { url = " github:lnl7/nix-darwin/master " ; inputs . nixpkgs . follows = " nixpkgs " ; } ; home-manager = { url = "…
I am going to start hacking nix code on my macbook first. Home Manager is a unobstrusive entry-point to the nix world. You need to first install nix with flakes. Use the determinate installer . Once thats done, create a new directory in your development folder, lets say nixhome , and create a flake.nix : flake.nix { description = " Home Manager configuration " ; inputs = { nixpkgs . url = "…
I have been maintaining a set of cloud servers, for the purpose of selfhosting a ton of software, VPNs, and random experimentation. Recently, I bought a Dell Optiplex 3040 for Rs. 5000 ($60), and I am planning to revamp all my scattered scripts and make orchestration easy for a one person team. Tradeoffs I have a pragramtic approach to selfhosting. Until now, I have only used traefik 2.0,…
Building Once again, I hate to use docker for automating VM purposes, but I acknowledge it as an ad-hoc method for this instance. We will be compiling natively for arm64 in a qemu image which is running inside a docker container. # Import info for 64-bit Qemu based build FROM balenalib/raspberrypi4-64-python:latest-bullseye-build ARG LMDB_REPO=https://github.com/deephacks/lmdbjni ARG…
Building I hate to use docker for automating VM purposes, but I acknowledge it as an ad-hoc method for this instance. We will be compiling natively for arm64 in a qemu image which is running inside a docker container. Dockerfile # Import info for 64-bit Qemu based build # There are also raspberry pi 4 and 64-bit images available so adjust as required FROM…
Preface At FlowDrive, we do not have the luxury of travelling heavy. Everything has to be the fastest it can, every millisecond counts in a single loop. Which is why we turned to ZeroMQ for handling all the networking between different services. ZeroMQ is battle-tested, extremely fast and supports a whole variety of platforms. ZMQ has a Java implementation, JeroMQ which is a complete rewrite of…
Its almost 3 months since I have been officially working with the SharkBait team at Gentoo. A lot of ground has been covered, a lot is still left. In this blog, I will explain the scope of SharkBait right now and how I plan its future. Work Covered Porting SharkBaitOS When KireinaHoro started working on SharkBait, the latest Android version of that time was 8 or Android Oreo. Sharkbait at that…
So you've successfully compiled AOSP. But you are still not entertained and rather inquisitive about how things worked under the hood after you hit make bacon or brunch on your Lineage tree. I am too and so I decided to take a look under the myriad that AOSP is. In this blog, I would share what I have learned so far, also being relevent to my GSoC obligations and therefore prepping hand by hand…
As I progress in my GSoC journey, my next task is to boot System-As-Root based Android in an LXC container inside Gentoo. As the name suggests, SAR devices use /system as their rootdir instead of /boot. SharkBait was based on the older booting mechanism. If you would want to know more about Android's Booting mechanism, I would recommend to have a look at this blog . Basically if you own a device…
As you would know from my previous blog , I couldn't make the UART work for my phone. Since without a serial console, the boot-up process is no less than a black-box, I decided to use some hacky debugs for finding out what went wrong with the original preinit . If you're not in for the process of going through it and just want to cut to the chase, jump onto this section . Circumventing…
This blog is a short sequel to my previous blog where I discussed why I needed to access a serial console on Redmi Note 7 (I'll refer to it using its codename, lavender here onwards). I should give a disclaimer that this blog is one dead-end in the GSoC2020 series. But it could always help newcomers and other curious souls. The Need of a Serial Console My first attempt at porting SharkBait for SAR…
Presently, SharkBait aims at devices launching with Android version lower than 9. I will discuss few ways we could the port this setup to newer devices, whose boot mechanisms are different. We shall also address the boot process of SharkBait and what System-As-Root actually is. The Boot process of present-day SharkBait Swapping the Android's init with preinit We swapped the init executable present…
I am tired of re-installing gentoo (from an chroot approach) on my phone by connecting parts from different resources and so here is the guide to do it all in a go. This guide assumes the prerequisite of a rooted phone. Just fire up an adb shell / termux and follow this : First we proceed with downloading the correct stage3 tarballs . Copy it in your phone's storage. Then we make a folder for the…