lspcmcia 是 pcmciautils 软件包的一部分,用于管理和显示PCMCIA(个人计算机存储卡国际协会)设备信息。PCMCIA标准后来演变为PC Card和CardBus标准。
lspcmcia 通常包含在 pcmciautils 包中:
sudo apt update
sudo apt install pcmciautils
sudo yum install pcmciautils
在较新版本的RHEL/CentOS中,可能已废弃或不再包含。
which lspcmcia 或 lspcmcia -v 2>/dev/null || echo "未安装"
lspcmcia [选项]
选项:可选参数,用于控制输出格式和内容| 参数 | 说明 |
|---|---|
-h 或 --help |
显示帮助信息 |
-V 或 --version |
显示版本信息 |
-v 或 --verbose |
详细输出模式 |
-b 或 --brief |
简洁输出模式 |
-c 或 --config |
显示卡的配置信息 |
-s 或 --slots |
显示插槽信息 |
-k 或 --cards |
显示卡信息 |
-d 或 --drivers |
显示驱动信息 |
-m 或 --memory |
显示内存映射信息 |
-i 或 --io |
显示I/O端口信息 |
-r 或 --resources |
显示所有资源信息 |
-p 或 --pci |
显示PCI相关信息(CardBus) |
-f 或 --function |
显示卡的功能信息 |
-S 或 --sysfs |
显示sysfs路径信息 |
-C 或 --class |
显示卡的类型类别 |
显示所有PCMCIA插槽和卡的信息:
sudo lspcmcia
输出示例:
Socket 0:
product info: "Intel", "PRO/100+ CardBus PC Card", "B2", "AB"
manfid: 0x0089, 0x0000
function: 6 (network)
Socket 1:
no product info available
no card inserted
显示详细输出:
sudo lspcmcia -v
输出示例:
Socket 0 Bridge: [pci:0000:06:00.0] (bus ID: 0000:06:00.0)
Socket 0:
CardBus card
product info: "Intel", "PRO/100+ CardBus PC Card", "B2", "AB"
manfid: 0x0089, 0x0000
function: 6 (network)
Configuration 0: (active)
Vcc 3.3V, Vpp1 3.3V, Vpp2 0.0V
CardBus interface
IRQ 11
Memory window 0: 0xe3000000-0xe3000fff (prefetchable)
Memory window 1: 0xe3001000-0xe3001fff (non-prefetchable)
I/O window 0: 0x00003400-0x0000343f
Driver: "yenta_cardbus"
Driver Modules: "yenta_socket"
仅显示插槽信息:
sudo lspcmcia -s
仅显示卡信息:
sudo lspcmcia -k
显示驱动信息:
sudo lspcmcia -d
显示内存映射信息:
sudo lspcmcia -m
显示卡的配置信息:
sudo lspcmcia -c
显示所有资源信息:
sudo lspcmcia -r
显示I/O端口信息:
sudo lspcmcia -i
显示PCI相关信息(针对CardBus卡):
sudo lspcmcia -p
| 类型 | 厚度 | 说明 |
|---|---|---|
| Type I | 3.3mm | 最薄,主要用于内存卡(SRAM、Flash等) |
| Type II | 5.0mm | 最常见,用于I/O设备(网卡、调制解调器、SCSI适配器等) |
| Type III | 10.5mm | 最厚,主要用于硬盘驱动器或无线网卡 |
| CardBus | 5.0mm | 32位PCI总线版本,向后兼容Type II |
| Zoomed Video (ZV) | - | 视频扩展,允许卡直接访问视频RAM |
在lspcmcia输出中,function字段表示卡的功能类型:
| 功能码 | 功能类型 |
|---|---|
0 |
多功能卡 |
1 |
内存卡 |
2 |
串行端口 |
3 |
并行端口 |
4 |
固定磁盘 |
5 |
视频适配器 |
6 |
网络适配器 |
7 |
AIMS(自动识别/安装) |
8 |
SCSI控制器 |
/var/log/messages或dmesg中的PCMCIA相关消息pcmcia服务已启动/etc/pcmcia/目录下/etc/pcmcia/config.opts包含资源选项/etc/pcmcia/中的脚本处理卡的插入和移除cardctl命令手动控制卡的状态#!/bin/bash
# PCMCIA卡状态监控脚本
echo "PCMCIA卡状态监控"
echo "================="
echo "检查时间: $(date)"
echo ""
# 检查PCMCIA服务状态
if systemctl is-active pcmcia >/dev/null 2>&1; then
echo "✅ PCMCIA服务正在运行"
else
echo "❌ PCMCIA服务未运行"
echo "尝试启动服务..."
sudo systemctl start pcmcia
fi
echo ""
# 检查PCMCIA卡状态
echo "PCMCIA卡状态:"
if sudo lspcmcia -k | grep -q "no card inserted"; then
echo " 没有卡插入"
else
SOCKET_COUNT=0
while read -r line; do
if [[ "$line" =~ ^Socket[[:space:]]+([0-9]+): ]]; then
SOCKET_COUNT=$((SOCKET_COUNT + 1))
echo " 插槽 ${BASH_REMATCH[1]}: 有卡插入"
fi
done < <(sudo lspcmcia)
echo ""
echo "检测到 $SOCKET_COUNT 个插槽有卡"
# 显示详细卡信息
echo ""
echo "卡详细信息:"
sudo lspcmcia -v | grep -A10 "product info"
fi
echo ""
echo "监控完成"
# 使用cardctl控制卡状态
sudo cardctl status # 查看卡状态
sudo cardctl suspend # 挂起卡
sudo cardctl resume # 恢复卡
sudo cardctl eject # 弹出卡
sudo cardctl insert # 插入卡(逻辑操作)
# 查看内核模块
lsmod | grep pcmcia
# 查看PCMCIA相关设备
ls -la /sys/class/pcmcia_socket/
cardctl - 控制PCMCIA卡状态cardmgr - PCMCIA卡管理器守护进程pccardctl - 较新系统中的PCMCIA控制工具pcmcia - PCMCIA服务管理lspci - 列出PCI设备lsusb - 列出USB设备lsscsi - 列出SCSI设备dmidecode - 显示DMI/SMBIOS信息PCMCIA技术的演进:
cardctl eject逻辑弹出yenta_socket)