在树莓派上配置 Clash 代理

编译 clash 源码

1git clone https://github.com/Dreamacro/clash.git
2cd clash
3go build
4sudo cp clash /usr/bin

在没有网络的环境下配置 VS Code SSH Remote

VS Code SSH Remote 连接时需要在远程主机上下载 VS Code Server,没有网络时无法自动下载,需要手动下载并复制到正确的路径中去。

点击 VS Code菜单栏 Help->About ,查看当前客户端版本的 <Commit-ID>:

help-about

1Version: 1.73.1

查看和修改可执行文件的 RPATH

查看:

1readelf -d $EXEC | grep runpath

修改:

退出进程的常用信号

参考: GNU libc

1$ kill -l
2 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
3 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
411) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
516) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP

通过systemd service启动的程序无法写文件

编译安装 NetworkManager 之后,网络功能瘫痪。提示 read-only file system:

1$ nmcli device wifi rescan
2$ nmcli device wifi connect HBC-WiFi
3Error: Failed to add/activate new connection: failure adding connection: 
4error writing to file '/usr/etc/NetworkManager/system-connections/HBC-WiFi.nmconnection': 
5failed to create file /usr/etc/NetworkManager/system-connections/HBC-WiFi.nmconnection.QZNRI1:read-only file system

通过 systemd service 控制 x11vnc

创建 /usr/lib/systemd/user/x11vnc.service 文件,写入以下内容:

1[Unit]
2Description=X11 VNC Server
3Requires=graphical-session.target
4After=graphical-session.target
5
6[Service]

配置 SSH 免密登录及别名

免密登录

将 A 主机上的公钥(~/.ssh/id_rsa.pub)保存到 B 主机上的 ~/.ssh/authorized_keys 文件中,即可在 A 主机上免密登录 B 主机。

别名

1Host xxxx                                       # 主机别名

配置命令提示符

通过环境变量 PS1 配置命令提示符,以 Ubuntu 24.04 的默认值为例:

1\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 

它分为两个部分。

QAudioOutput 无法播放声音的问题

在 Windows 上使用 MSVC 编译的 Qt 程序,无法播放声音,QAudioDeviceInfo::availableDevices 返回空列表。

这是因为没能正确加载 Qt 插件。需要将 Qt\msvc2017_64\plugins 目录下的 audio 目录复制到可执行文件所在目录。

使用 windeployqt 部署后即可正确运行。

插件加载正确后,仍然发生无声音的问题,且 Qt 无任何报错。通过 QAudioDeviceInfo 查看支持的音频格式为:

QCustomPlot 启用 OpenGL

编译时添加预编译宏 QCUSTOMPLOT_USE_OPENGL,用绘图的 QCustomPlot 子类调用 setOpenGl(true),并链接 OpenGL32

在 Windows 上使用 OpenGL32 存在很严重的性能问题,可以改为使用 freeglut

图像错乱问题

修改 QCPPaintBufferGlFbo::draw,添加上下文切换的代码。