diff options
Diffstat (limited to 'www/content/notes')
-rw-r--r-- | www/content/notes/_index.md | 16 | ||||
-rw-r--r-- | www/content/notes/cheat-sheet.md | 132 | ||||
-rw-r--r-- | www/content/notes/hurd/_index.md | 15 | ||||
-rw-r--r-- | www/content/notes/hurd/cheat-sheet.md | 68 | ||||
-rw-r--r-- | www/content/notes/hurd/links.md | 88 | ||||
-rw-r--r-- | www/content/notes/hurd/todos.md | 58 |
6 files changed, 377 insertions, 0 deletions
diff --git a/www/content/notes/_index.md b/www/content/notes/_index.md new file mode 100644 index 0000000..3f96f73 --- /dev/null +++ b/www/content/notes/_index.md @@ -0,0 +1,16 @@ +--- +title: "Notes" +date: 2025-06-14T21:24:00+08:00 +lastmod: 2025-06-14T21:24:00+08:00 +layout: single +--- + +- [Cheat Sheet](/notes/cheat-sheet) + +- [Hurd](/notes/hurd) + + - [Cheat Sheet](/notes/hurd/cheat-sheet) + + - [Todos](/notes/hurd/todos) + + - [Useful Links](/notes/hurd/links) diff --git a/www/content/notes/cheat-sheet.md b/www/content/notes/cheat-sheet.md new file mode 100644 index 0000000..aba8e18 --- /dev/null +++ b/www/content/notes/cheat-sheet.md @@ -0,0 +1,132 @@ +--- +title: "Cheat Sheet" +date: 2025-04-01T23:09:53+08:00 +lastmod: 2025-06-12T01:09:39+08:00 +--- + +goto: [Hurd Cheat Sheet (in a separated page)](/notes/hurd/cheat-sheet) +{class="mono"} + +## GRUB + +Update GRUB after `grub` package is updated. Replace `/boot` with your mount +point of the EFI partition in `--efi-directory=/boot`. Replace `GRUB` with your +bootloader id in `--bootloader-id=GRUB`. + +```sh +grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB +grub-mkconfig -o /boot/grub/grub.cfg +``` + +## (Private) My Service Infrastructure Management + +All commands should be run at the project root path. + +### Install Deno + +Script from <https://docs.deno.com/runtime/getting_started/installation/> + +```sh +curl -fsSL https://deno.land/install.sh | sh +``` + +### Add Git Server User / Set Password + +```sh +docker run -it --rm -v "./data/git/user-info:/user-info" httpd htpasswd /user-info [username] +``` + +### Certbot + +A complete command is `[prefix] [docker (based on challenge kind)] [command] [challenge] [domains] [test] [misc]` + +| part | for | segment | +| :-: | :-: | --- | +| prefix | * | `docker run -it --rm --name certbot -v "./data/certbot/certs:/etc/letsencrypt" -v "./data/certbot/data:/var/lib/letsencrypt" certbot/certbot` | +| docker | challenge standalone | `-p "0.0.0.0:80:80"` | +| docker | challenge nginx | `-v "./data/certbot/webroot:/var/www/certbot"` | +| command | create/expand/shrink | `certonly` | +| command | renew | `renew` | +| challenge | standalone | `--standalone` | +| challenge | nginx | `--webroot -w /var/www/certbot` | +| domains | * | `[-d [domain]]...` | +| test | * | `--test-cert --dry-run` | +| misc | agree tos | `--agree-tos` | +| misc | cert name | `--cert-name [name]` | +| misc | email | `--email [email]` | + +For example, **test** create/expand/shrink with standalone server: + +```sh +docker run -it --rm --name certbot \ + -v "./data/certbot/certs:/etc/letsencrypt" \ + -v "./data/certbot/data:/var/lib/letsencrypt" \ + -p "0.0.0.0:80:80" \ + certbot/certbot \ + certonly \ + --standalone \ + --cert-name crupest.life \ + -d crupest.life -d mail.crupest.life -d timeline.crupest.life \ + --test-cert --dry-run +``` + +## System Setup + +### Debian setup + +#### Setup SSL Certificates and Curl + +```sh +apt-get update +apt-get install ca-certificates curl +install -m 0755 -d /etc/apt/keyrings +``` + +### Docker Setup + +#### Uninstall Packages Provided by Stock Repo + +```bash +for pkg in docker.io docker-doc docker-compose \ + podman-docker containerd runc; do + apt-get remove $pkg; +done +``` + +#### Install Certs From Docker + +Remember to [setup ssl and curl](#setup-ssl-certificates-and-curl) first. + +```sh +curl -fsSL https://download.docker.com/linux/debian/gpg \ + -o /etc/apt/keyrings/docker.asc +chmod a+r /etc/apt/keyrings/docker.asc +``` + +#### Add Docker Repos + +```bash +echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \ + https://download.docker.com/linux/debian \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null +``` + +#### Install Docker Packages + +```sh +apt-get update +apt-get install docker-ce docker-ce-cli containerd.io \ + docker-buildx-plugin docker-compose-plugin +``` + +#### Start And Enable Docker + +Remember to log out and log back to let user group change take effects. + +```sh +systemctl enable docker +systemctl start docker +groupadd -f docker +usermod -aG docker $USER +``` diff --git a/www/content/notes/hurd/_index.md b/www/content/notes/hurd/_index.md new file mode 100644 index 0000000..8faf70b --- /dev/null +++ b/www/content/notes/hurd/_index.md @@ -0,0 +1,15 @@ +--- +title: "Hurd" +date: 2025-03-03T15:34:41+08:00 +lastmod: 2025-06-12T01:09:39+08:00 +layout: single +--- + +This is the gateway page for various notes about +[GNU/Hurd](https://www.gnu.org/software/hurd/) written by me. + +- [Cheat Sheet](/notes/hurd/cheat-sheet) + +- [Todos](/notes/hurd/todos) + +- [Useful Links](/notes/hurd/links) diff --git a/www/content/notes/hurd/cheat-sheet.md b/www/content/notes/hurd/cheat-sheet.md new file mode 100644 index 0000000..6fe5ccd --- /dev/null +++ b/www/content/notes/hurd/cheat-sheet.md @@ -0,0 +1,68 @@ +--- +title: "Hurd Cheat Sheet" +date: 2025-06-12T00:59:16+08:00 +lastmod: 2025-06-14T20:34:06+08:00 +--- + +## Mirrors + +The mirror has to be `debian-ports`, not `debian`, and many mirror sites do not +provide it. Following is aliyun mirror: + +```txt +/etc/apt/sources.list +--- +deb https://mirrors.aliyun.com/debian-ports/ unstable main +deb https://mirrors.aliyun.com/debian-ports/ unreleased main +deb-src https://mirrors.aliyun.com/debian/ unstable main +``` + +The hurd-amd64 deb-src seems to not work. + +## Use QEMU Virtual Machine + +For i386, use + +```sh +qemu-system-x86_64 -enable-kvm -m 4G \ + -net nic -net user,hostfwd=tcp::3222-:22 \ + -vga vmware -drive cache=writeback,file=[...] +``` + +For x86_64, use + +```sh +qemu-system-x86_64 -enable-kvm -m 8G -machine q35 \ + -net nic -net user,hostfwd=tcp::3223-:22 \ + -vga vmware -drive cache=writeback,file=[...] +``` + +GRUB in the image seems to use hard-coded path of `/dev/*` block file as the +root partition in the kernel command line rather than GUID, so if the hard disk +bus is changed in QEMU and the path is changed accordingly, the system can't +boot on. + +QEMU cli arguments `-machine q35` enables AHCI and SATA, and is **required for +official x86_64 image to boot**. As for i386, I haven't checked now. + +There is [a Deno script](https://github.com/crupest/crupest/blob/dev/deno/tools/manage-vm.ts) +written by me to help define and build QEMU cli arguments of VMs. + +## Inside Hurd + +Configure/Setup network + +```sh +settrans -fgap /servers/socket/2 /hurd/pfinet \ + -i /dev/eth0 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0 +fsysopts /servers/socket/2 /hurd/pfinet \ + -i /dev/eth0 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0 +fsysopts /server/socket/2 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0 +``` + +Setup apt + +```sh +apt-get --allow-unauthenticated --allow-insecure-repositories update +apt-get --allow-unauthenticated upgrade +``` diff --git a/www/content/notes/hurd/links.md b/www/content/notes/hurd/links.md new file mode 100644 index 0000000..1e966d4 --- /dev/null +++ b/www/content/notes/hurd/links.md @@ -0,0 +1,88 @@ +--- +title: "Hurd Useful Links" +date: 2025-06-14T20:34:06+08:00 +lastmod: 2025-06-14T20:34:06+08:00 +--- + +## links + +| name | link | +| --- | --- | +| kernel-list-archive | <https://lists.gnu.org/archive/html/bug-hurd/> | +| debian-list-archive | <https://lists.debian.org/debian-hurd/> | +| irc-archive | <https://logs.guix.gnu.org/hurd/> | +| kernel-home | <https://www.gnu.org/software/hurd/index.html> | +| debian-home | <https://www.debian.org/ports/hurd/> | + +refs: + +| name | link | +| --- | --- | +| c | <https://en.cppreference.com/w/c> | +| posix latest | <https://pubs.opengroup.org/onlinepubs/9799919799/> | +| posix 2013 | <https://pubs.opengroup.org/onlinepubs/9699919799.2013edition/> | +| posix 2008 | <https://pubs.opengroup.org/onlinepubs/9699919799.2008edition/> | +| glibc | <https://sourceware.org/glibc/manual/2.41/html_mono/libc.html> | + +## mailing lists / irc + +| name | address | +| --- | --- | +| hurd | <bug-hurd@gnu.org> | +| debian | <debian-hurd@lists.debian.org> | +| irc | librechat #hurd | + +## *_MAX patch + +See [this](posts/c-func-ext.md) + +## git repos + +Clone all at once: + +```sh +# glibc is too big, so not clone here. +for repo in hurd gnumach mig web; do + if [ ! -d $repo ]; then + git clone "https://crupest.life/git/hurd/$repo.git" + pushd $repo + git remote add upstream "https://git.savannah.gnu.org/git/hurd/$repo.git" + popd + fi +done +``` + +{{< link-group >}} +hurd +cru: <https://crupest.life/git/hurd/hurd.git> +upstream: <https://git.savannah.gnu.org/git/hurd/hurd.git> +debian: <https://salsa.debian.org/hurd-team/hurd> +{{< /link-group >}} + +{{< link-group >}} +gnumach +cru: <https://crupest.life/git/hurd/gnumach.git> +upstream: <https://git.savannah.gnu.org/git/hurd/gnumach.git> +debian: <https://salsa.debian.org/hurd-team/gnumach> +{{< /link-group >}} + +{{< link-group >}} +mig +cru: <https://crupest.life/git/hurd/mig.git> +upstream: <https://git.savannah.gnu.org/git/hurd/mig.git> +debian: <https://salsa.debian.org/hurd-team/mig> +{{< /link-group >}} + +{{< link-group >}} +glibc +cru: <https://crupest.life/git/hurd/glibc.git> +upstream: <git://sourceware.org/git/glibc.git> +debian: <https://salsa.debian.org/glibc-team/glibc> +mirror: <https://mirrors.tuna.tsinghua.edu.cn/git/glibc.git> +{{< /link-group >}} + +{{< link-group >}} +web +cru: <https://crupest.life/git/hurd/web.git> +upstream: <https://git.savannah.gnu.org/git/hurd/web.git> +{{< /link-group >}} diff --git a/www/content/notes/hurd/todos.md b/www/content/notes/hurd/todos.md new file mode 100644 index 0000000..2dbded3 --- /dev/null +++ b/www/content/notes/hurd/todos.md @@ -0,0 +1,58 @@ +--- +title: "Hurd Todos" +date: 2025-03-03T21:22:35+08:00 +lastmod: 2025-06-14T20:34:06+08:00 +params: + css: + - todos +--- + +## Porting + +### hurd-fs4 {class="todo working"} + +<https://salsa.debian.org/rust-team/debcargo-conf/-/merge_requests/872> + +### pam {class="todo give-up"} + +{{< link-group >}} +git +cru: <https://crupest.life/git/love-hurd/pam.git> +debian: <https://salsa.debian.org/vorlon/pam> +upstream: <https://github.com/linux-pam/linux-pam> +{{< /link-group >}} + +{{< link-group >}} +mail +<https://lists.debian.org/debian-hurd/2025/02/msg00018.html> +{{< /link-group >}} + +### abseil {class="todo working"} + +{{< link-group >}} +git +cru: <https://crupest.life/git/cru-hurd/abseil.git> +upstream: <https://github.com/abseil/abseil-cpp> +debian: <https://salsa.debian.org/debian/abseil> +{{< /link-group >}} + +{{< link-group >}} +mail +<https://lists.debian.org/debian-hurd/2025/02/msg00011.html> +<https://lists.debian.org/debian-hurd/2025/02/msg00035.html> +{{< /link-group >}} + +### libgav1 {class="todo done"} + +{{< link-group >}} +git +my: <https://crupest.life/git/love-hurd/libgav1.git> +debian: <https://salsa.debian.org/multimedia-team/libgav1> +upstream: <https://chromium.googlesource.com/codecs/libgav1/> +{{< /link-group >}} + +{{< link-group >}} +misc +mail: <https://lists.debian.org/debian-hurd/2025/02/msg00016.html> +gerrit: <https://chromium-review.googlesource.com/c/codecs/libgav1/+/6239812> +{{< /link-group >}} |