1 加 5T 刷 PostmarketOS

2025年4月17日 · 693 字 · 2 分钟

postmarketos on oneplus

📡 网络相关操作(NetworkManager)

安装必要组件

sudo apk add --no-check-certificate --no-interactive \
    networkmanager networkmanager-cli modemmanager \
    linux-firmware-ath10k linux-firmware-ath11k \
    wireless-regdb wpa_supplicant
sudo rc-service networkmanager start
sudo rc-update add networkmanager default

Wi-Fi 驱动加载(OnePlus 8 Pro)

sudo modprobe -r ath11k_pci  # 卸载已加载驱动
sudo modprobe ath11k_pci     # 重新加载

nmcli 命令

nmcli device status
nmcli device wifi list
nmcli device wifi list --rescan yes
nmcli connection show
nmcli device set wlan0 autoconnect yes   # 启用自动连接
nmcli device set wlan0 autoconnect no    # 禁用自动连接
nmcli radio wifi on                      # 打开 Wi-Fi
nmcli radio wifi off                     # 关闭 Wi-Fi

Wi-Fi 连接与静态 IP 设置

# 自动连接
sudo nmcli device wifi connect 2103 password [xxxxxxxx]
sudo nmcli device wifi connect 'LC-R&D Center' password [xxxxxxx]

# 设置静态 IP
sudo nmcli connection modify "2103" \
    ipv4.method manual \
    ipv4.addresses "192.168.1.188/24" \
    ipv4.gateway "192.168.1.66" \
    ipv4.dns "192.168.1.66"
sudo nmcli connection down 2103 && sudo nmcli connection up 2103

# 切换回自动获取
sudo nmcli connection modify 2103 ipv4.method auto

🔧 网络调试与 DNS 配置

禁用 dnsmasq

sudo vim /etc/NetworkManager/conf.d/51-disable-dnsmasq.conf
# 添加以下内容:
# [main]
# dns=none
echo nameserver 223.5.5.5 > /etc/resolv.conf

使用 DHCP 获取 IP

sudo udhcpc -i wlan0

🛜 USB 网络共享

手机端设置

sudo su
ip route add default via 172.16.42.2 dev usb0
echo nameserver 223.5.5.5 > /etc/resolv.conf

主机端设置

sysctl net.ipv4.ip_forward=1
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 172.16.42.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.16.42.0/24 -j MASQUERADE
iptables-save

🔥 关闭网络防火墙

sudo service nftables stop
sudo rc-update del nftables

🐳 Docker 配置

安装与启动

sudo apk add --no-check-certificate --no-interactive docker docker-compose openssh-client rsync
sudo rc-update add docker default
sudo service docker start
sudo dockerd --debug

添加用户组权限

sudo groupadd docker
sudo adduser $(whoami) docker
sudo usermod -aG docker $USER

检查内核支持

wget https://github.com/moby/moby/raw/master/contrib/check-config.sh
chmod +x check-config.sh
./check-config.sh

🔥 iptables(兼容 Docker)

使用 legacy 模式

sudo apk add --no-check-certificate --no-interactive iptables-legacy
sudo ln -sf /usr/sbin/iptables-legacy /usr/sbin/iptables
sudo ln -sf /usr/sbin/iptables-legacy /usr/sbin/iptables-save
sudo ln -sf /usr/sbin/iptables-legacy /usr/sbin/iptables-restore
sudo iptables --version

🛠 内核模块与系统信息

zcat /proc/config.gz | grep -E 'CGROUP|BPF'
zcat /proc/config.gz | grep -E 'CONFIG_NF_NAT|CONFIG_NETFILTER_XT_MATCH_ADDRTYPE'
zcat /proc/config.gz | grep -E 'CONFIG_IP_ADVANCED_ROUTER|CONFIG_CGROUP_HUGETLB|CONFIG_SECURITY_APPARMOR'
sudo rc-service cgroups start

⏱ 时间同步

sudo apk add --no-check-certificate --no-interactive chrony
sudo rc-service chronyd start
sudo rc-update add chronyd default
sudo chronyc -a makestep

vim /etc/chrony/chrony.conf
# 添加:
# server ntp.aliyun.com iburst

🧪 Unixbench 跑分

sudo apk add unixbench
sudo ubench whets dhry

🐚 Shell 配置(zsh & bash)

安装 zsh 与配置

sudo apk add zsh git curl wget
chsh -s /bin/zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 插件 & 主题
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k

.zshrc 中配置:

ZSH_THEME="powerlevel10k/powerlevel10k"
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

切换为 bash 默认 shell

sudo apk add bash
sudo vim /etc/passwd
# 修改:
# root:x:0:0:root:/root:/bin/ash
# 为:
# root:x:0:0:root:/root:/bin/bash

🌐 apk 代理配置

/etc/apk/proxy.conf

http_proxy="http://127.0.0.1:7890"
https_proxy="http://127.0.0.1:7890"

🔧 一加 8 Pro 刷机流程(pmbootstrap)

pmbootstrap install
pmbootstrap flasher flash_dtbo
pmbootstrap flasher flash_rootfs
pmbootstrap flasher flash_kernel

⚙️ Clash 启动服务(OpenRC)

/etc/init.d/clash

#!/sbin/openrc-run
name="Clash"
description="Clash Service"
command_background="yes"
command="/home/ban/clash/clash"
command_args="-d /home/ban/clash"
pidfile="/tmp/clash.pid"
output_log="/home/ban/clash/info.log"
error_log="/home/ban/clash/err.log"