DietPi 试用

烧录镜像

下载镜像。https://dietpi.com/

sudo dd if=./DietPi_RPi-ARMv8-Buster.img of=/dev/mmcblk0 bs=200MB
sudo sync
sudo sync

注意:如果不指定 bs 参数,写入速度非常慢。

配置

  • 使用串口进行登陆,不是很友好。也可能是跟我使用的 extraputty 工具有关系。

  • 首次启动比较慢,要等 3 - 5分钟左右。(我的设备是 raspberry pi 3 model B)

用户名密码: root / dietpi

默认安装了 htop。从下图中可以看到,进程不多,很精简。

基础软件

默认未提供 vim / git 等软件支持。(rpi 跑 apt 有些吃力,每次安装读软件列表搞半天)

apt install vim git

魔法上网

安装经常断流。来吧,开魔法!

安装 privoxy:

apt install privoxy

安装 shadowsocks:

apt install shadowsocks-libev

安装 v2ray-plugin:

宿主机开魔法下载v2ray-plugin。https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.3.1/v2ray-plugin-linux-arm64-v1.3.1.tar.gz

利用 dropbear 上传文件。

# diepi 默认不支持 scp,使用 ssh 代替,如下命令在 host 主机执行

cat v2ray-plugin-linux-arm64-v1.3.1.tar.gz | ssh root@192.168.0.64 "cat > v2ray.tar.gz"

dietpi 下执行:

tar xzf v2ray.tar.gz 
mv ./v2ray-plugin_linux_arm64 /usr/bin/v2ray-plugin

配置 shadowsoks,创建 /etc/shadowsocks-libev/xxx.json,配置需要参考服务端完成。

{
"server":"url.com",
"mode":"tcp_and_udp",
"server_port": 443,
"local_address":"0.0.0.0",
"local_port":1080,
"password":"password",
"method":"aes-256-gcm",
"plugin":"v2ray-plugin",
"plugin_opts":"tls;tls;mux=10;fast-open;host=url.com;path=/s",
"plugin_args": "",
"timeout":60,
"fast_open":true
}

按下图修改 privoxy,开启 http 代理:

配置全局代理

编辑 ~/.profile,追加如下内容。

# Proxy
#PROXY_SERVER=http://192.168.0.10:1080
PROXY_SERVER=http://127.0.0.1:8118

export https_proxy=$PROXY_SERVER
export http_proxy=$PROXY_SERVER
git config --global http.proxy $PROXY_SERVER
git config --global https.proxy $PROXY_SERVER

# for APT package management 
cat << EOF > /tmp/proxy.conf
Acquire {
  HTTP::proxy "$PROXY_SERVER";
  HTTPS::proxy "$PROXY_SERVER";
}
EOF
sudo mv /tmp/proxy.conf /etc/apt/apt.conf.d/proxy.conf
sudo chown root:root /etc/apt/apt.conf.d/proxy.conf

这样在终端中执行诸如 curl 等软件都会自动通过代理网络走,节约生命。部分不支持利用全局变量进行代理的,可能需要手动指定代理端口。

其他

查看本地监听的端口服务

netstat 已不建议使用。可以使用 ss 代替。

ss -atulpn

搭建 vim runtime 环境

git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime && sh ~/.vim_runtime/install_awesome_vimrc.sh

查看 dd 进度

pkill -USR1 -x dd

dietpi 和 raspbian lite 的对比

点击图片查看原链接

SSH / tar / pipe 互相拷贝文件 (不使用 scp)

ssh taget "tar czpf - /some/important/data" | tar xzpf - -C /new/root/directory
tar cpf - /some/important/data | ssh target "tar xpf - -C /some/directory/" 

交叉编译工具链

rpi 官网工具链编译出来的程序需要使用静态编译的方式方能适配 dietpi。否则无法运行并报如下错误提示:

root@DietPi:~# ./util/test/test_hw 
-bash: ./util/test/test_hw: No such file or directory

测试程序采用了 automake 进行构建,可以增加静态编译的选项使其可以工作,修改很简单。编译结果比动态链接增大了 100% (900K - 1.8M)。

参考:https://stackoverflow.com/questions/13997415/how-can-an-autotools-user-specify-a-combination-of-static-dynamic-linking