lrzsz 套件提供 rz/sz 兩支 ZModem 協定傳輸工具。大多數桌面/伺服器發行版可直接用套件管理器安裝;嵌入式開發板則需**交叉編譯**並部署至目標板檔案系統。本文涵蓋三種安裝路徑:RPM/DEB 套件、原始碼編譯、ARM 交叉編譯完整流程。
# RHEL/CentOS/Fedora/Rocky/Alma
yum install lrzsz -y
# 或 dnf install lrzsz
# Debian/Ubuntu
apt update && apt install lrzsz
# Arch/Manjaro
pacman -S lrzsz
# openSUSE
zypper in lrzsz
安裝後直接可用 rz、sz。
# 1. 下載
wget https://down1.chinaunix.net/distfiles/lrzsz-0.12.20.tar.gz
# 或官方: https://github.com/UweH/lrzsz (較新)
# 2. 解壓編譯
tar zxvf lrzsz-0.12.20.tar.gz
cd lrzsz-0.12.20
./configure --prefix=/usr/local/lrzsz
make
make install
# 3. 建立系統路徑連結
ln -sf /usr/local/lrzsz/bin/lrz /usr/bin/rz
ln -sf /usr/local/lrzsz/bin/lsz /usr/bin/sz
# 4. 驗證
rz --version
sz --version
arm-linux-gcc (3.4.1)/mnt/nfs# 1. 下載舊版源碼 (rzsz-3.48.tar.gz)
wget https://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz
tar zxvf rzsz-3.48.tar.gz
cd rzsz-3.48/src
# 2. 修改 Makefile 指定交叉編譯器與註冊宏
# CC = arm-linux-gcc
# OFLAG = -O -DREGISTERED # 避免 "UNREGISTERED COPY" 提示
# 3. 編譯 (非 GNU autotools,直接 make 目標系統)
make posix # POSIX 相容系統 (Linux)
# 輸出: rz, sz, rb, rx, rc, sb, sx, zcommand, zcommandi
# 4. 部署至開發板
# 4.1 複製執行檔至 NFS
cp rz sz rb rx rc sb sx zcommand zcommandi /mnt/nfs/
# 4.2 開發板掛載 NFS 並複製至 /usr/bin
# cp /mnt/nfs/rz /mnt/nfs/sz ... /usr/bin/
# 4.3 複製交叉編譯器 runtime 庫
# 宿主機: /usr/local/arm/3.4.1/arm-linux/lib/* → 開發板: /lib/
# 4.4 設定環境變數 (關鍵:指定串口裝置)
export RZSZLINE=/dev/modem # 或 /dev/ttySAC0 等實際串口
# 寫入 /etc/profile 或 ~/.bashrc 永久生效
# 開發板串口終端 (SecureCRT/Putty)
rz -be # 彈出上傳視窗
sz -be test.txt # 下載至 PC
| 錯誤 | 原因 | 修正 |
|---|---|---|
| undefined reference to `crc32' | 缺少 zlib | 安裝 zlib-devel / zlib1g-dev,或 Makefile LIBS 加 -lz |
| signal.h: No such file | 缺少核心標頭檔 | 安裝 linux-headers / kernel-devel |
| 執行時 "Warning: Missing environment variable 'RZSZLINE'" | 未設定串口裝置 | export RZSZLINE=/dev/ttyS0 |