Skip to content

Instantly share code, notes, and snippets.

View douglarek's full-sized avatar

douglarek

View GitHub Profile
@douglarek
douglarek / Gentoo 使用系列之精简linux-firmware.md
Last active November 19, 2024 13:28
Gentoo 使用系列之三:精简 linux-firmware

书接上文[^1],相对于定制内核来说,精简 linux-firmware[^2] 还是简单很多却是收益最大的。 在 Gentoo 中,如果不把 linux-firmware 编译进内核(有许可问题),那么运行系统除了 Linux 内核之外还是需要安装这个包的, 但是这个包包含的是 Linux 目前的所有私有固件相关的二进制[^3],大小达 1.2G 之巨,但是一个桌面系统运行起来需要的也不过其中 3、5 个文件。 下面让我们来精简它。

确认当前系统加载的固件

(root)$: dmesg | grep -i 'Loading firmware'
[ 4.763489] Loading firmware: regulatory.db
@douglarek
douglarek / chromium-irc-chats.txt
Created November 18, 2024 08:04
这个是在 gentoo IRC 群维护者回复 Chromium 为什么会给 ~arch 用户默认升级到 beta
[2024年11月17日星期日] [GMT+8 19:51:10] <douglarek> Why does the recent update of the chromium package include beta and dev without setting them as masked? Do ~amd users have to use dev by default? https://packages.gentoo.org/packages/www-client/chromium
[2024年11月17日星期日] [GMT+8 19:52:02] <douglarek> s/dev by default/beta by default
[2024年11月17日星期日] [GMT+8 20:03:25] <sam_> ~amd64 users have always had beta exposed to them
[2024年11月17日星期日] [GMT+8 20:03:32] <sam_> dev is unkeyworded (so functionally the same as masked)
[2024年11月17日星期日] [GMT+8 20:03:33] <sam_> cc kangie
[2024年11月17日星期日] [GMT+8 20:03:43] <sam_> i.e. nothing has functionally changed
[2024年11月18日星期一] [GMT+8 00:49:40] <Kangie> douglarek_: what sam_ said. You can select the 0/stable subslot if you don't want beta
[2024年11月18日星期一] [GMT+8 10:10:29] <douglarek_> Kangie: I know I have a choice, I just don't understand why ~amd users are expected to upgrade to beta by default.
[2024年11月18日星期一] [GMT+8 10:11:13] <Kangie> because you're EXPLICITLY OPTING INTO IT
[2
@douglarek
douglarek / Gentoo 使用系列之定制内核.md
Last active November 20, 2024 06:12
Gentoo 使用系列之二:定制内核

Warning

当你开始定制内核的时候,你将会有大把时间用来浪(xué)费()。

本文灵感来自 reddit[^0] 上一位使用 Gentoo 的老哥,根据他提供的链接一路追到了他在 Gentoo wiki 上的文章[^1],他这篇文章比较简洁,只是其中一些东西没说太清楚,另外文中的 gentoo-sources 似无必要,直接使用 gentoo-kernel 即可,这两个的唯一区别是如果你需要手动编译那么使用前者即可,如果是使用常规的 emerge 安装,并且享受系统安装带来的各种便利(如各种 portage 钩子),那么使用 gentoo-kernel 即可。

本文并不打算深入内核定制的细节(目前这方面我也是新手),主打一个清晰明了的流程走通,享受定制内核带来的编译时间的极大缩短(我的测试是大约能节省 2 倍左右的编译时间)。另外亦不介绍定制后内核的引导问题,毕竟这些无论是 Grub 还是 Systemd-boot 都有相关的 portage 钩子可做,假设你已经配置(否则需要手动处理)。

本文以 gentoo-kernel-bin(如果安装的是 gentoo-kernel 也可以) 已安装内核为例,分为以下几个步骤。

确认当前的内核

@douglarek
douglarek / Gentoo 使用系列之 systemd-boot.md
Last active November 16, 2024 02:53
Gentoo 使用系列之一
  • 我现在正在使用 Grub,我想使用 systemd-boot,应该怎么做

    答:如果你是正在装系统,那么按手册走的时候直接在配置内核[^1]和启动项[^2]的时候选 systemd-boot 就可以了。如果是已经安装完系统就是想换到 systemd-boot,那么可以分以下几步[^3]走(以下假设 ESP 分区在 /efi,用的 init 系统是 systemd,如果不是根据实际调整):

    1. 编辑 /etc/portage/packages.use/installkernel(一般在这个 use 文件,如果你放到了其他的地方编辑即可),移除所有 grub 相关,加入如下的 systemd-boot:

      sys-apps/systemd boot # 添加 systemd boot 支持
      sys-kernel/installkernel systemd-boot dracut # 内核编译的时候自动生成启动项
      
@douglarek
douglarek / gentoo-package-built-time-20241112.qlog
Last active November 15, 2024 10:03
I am using an AMD Ryzen 9 3950X processor with parallel build settings (MAKEOPTS="--jobs 16 --load-average 17"). Build time statistics can be monitored using sudo qlop -vHt | pbcopy.
2024-10-29T12:51:19 >>> app-portage/cpuid2cpuflags-14: 8 seconds
2024-10-29T12:54:35 >>> x11-themes/sound-theme-freedesktop-0.8-r1: 3 seconds
2024-10-29T12:54:38 >>> media-libs/alsa-topology-conf-1.2.5.1: 3 seconds
2024-10-29T12:54:41 >>> media-libs/alsa-ucm-conf-1.2.12: 3 seconds
2024-10-29T12:54:44 >>> acct-group/pipewire-0-r2: 3 seconds
2024-10-29T12:54:47 >>> media-libs/libfreeaptx-0.1.1-r1: 7 seconds
2024-10-29T12:54:54 >>> sys-libs/zlib-1.3.1-r1: 4 seconds
2024-10-29T12:54:58 >>> dev-db/sqlite-3.46.1: 4 seconds
2024-10-29T12:55:02 >>> media-libs/alsa-lib-1.2.12: 4 seconds
2024-10-29T12:55:06 >>> media-libs/libogg-1.3.5-r1: 3 seconds
@douglarek
douglarek / mihomo-for-openwrt.md
Last active November 17, 2024 02:49
Mihomo for OpenWrt, don't use the hearse anymore! 在 OpenWrt 中运行原神,不要再使用灵车脚本啦!

Prerequisites

  • OpenWrt/ImmortalWrt 23.05+
  • Assume your routing system is arm64 architecture

NOTE Unless otherwise specified, all the following commands are executed in the router terminal.

Update: 2024-07-20 Packaged: https://github.com/douglarek/mihomo-openwrt

Install deps

package main
import (
"fmt"
"math"
"os"
"unsafe"
)
// ----------------------------------------------------------------------------
@douglarek
douglarek / a-dae-init.sh
Last active August 20, 2024 15:12
Regarding how to better use DAE in OpenWRT, use `a-dae-init.sh -> /etc/init.d/dae` and `config.dae -> /etc/dae/config.dae`. For DAE version 0.5.1 or higher, you need to install kmod-veth additionally.
#!/bin/sh /etc/rc.common
# Copyright (C) 2023 Tianling Shen <cnsztl@immortalwrt.org>
USE_PROCD=1
START=99
CONF="dae"
PROG="/usr/bin/dae"
LOG_DIR="/var/log/dae"
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.schema.output_parser import StrOutputParser
import requests
from bs4 import BeautifulSoup
from langchain.schema.runnable import RunnablePassthrough, RunnableLambda
from langchain.utilities import DuckDuckGoSearchAPIWrapper
import json
RESULTS_PER_QUESTION = 3
#!/bin/sh
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
SKYBLUE='\033[0;36m'
PLAIN='\033[0m'
BrowserUA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36"
function Next() {