1. 查看 PCI 接口设备
使用 lspci 查看设备是否已经安装
| 1
2
3
 | lspci |grep storage
d8:00.0 Mass storage controller: Shannon Systems Device 2275
 | 
这里发现了一块 Shannon Systems 的设备,说明已经安装了 SSD。
| 1
2
3
4
5
6
7
8
 | lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                         8:0    0 893.8G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0     1G  0 part /boot
└─sda3                      8:3    0 892.8G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0 892.8G  0 lvm  /
 | 
但 lsblk 中并没有看到对应的设备,说明驱动没有安装或者安装错误。
2. 检查是否已安装驱动
这一步骤很关键,如果安装了版本不对、内核版本不匹配的驱动,在 lsblk 中也可能看不到对应的设备。如果安装了两个版本的驱动,可能会导致系统无法正常启动,一直 rebooting。
| 1
2
3
 | dpkg -l | grep shannon
ii  shannon-module-5.4.0-164-generic      3.4.3.1                           amd64        Driver for PCIe SSD of Shannon Systems
 | 
3. 卸载 SSD 驱动
需要注意的是,如果 lsblk 已经能看到设备,那么代表着驱动已经正确安装,同时很有可能已经在使用中,如果此时卸载驱动,会导致系统故障。
| 1
 | dpkg -r shannon-module-5.4.0-164-generic
 | 
4. 安装驱动
| 1
2
3
 | ls -alh Shannon_Linux_Driver_Package_3.4.3.1.tar.gz
-rw-r--r-- 1 root root 11M Nov  8 07:57 Shannon_Linux_Driver_Package_3.4.3.1.tar.gz
 | 
| 1
2
 | tar xvf Shannon_Linux_Driver_Package_3.4.3.1.tar.gz
cd Shannon_Linux_Driver_Package_3.4.3.1
 | 
| 1
2
 | tar xvf shannon-source_3.4.3.1.tar.gz
cd shannon-source_3.4.3.1
 | 
| 1
 | apt-get install -y make gcc debhelper linux-headers-$(uname -r) libtinfo5 libncurses5
 | 
| 1
 | apt-get install -y dpkg-dev
 | 
| 1
 | dpkg-buildpackage -us -uc
 | 
得到 DEB 包
| 1
 | dpkg-deb: building package 'shannon-module-5.4.0-164-generic' in '../shannon-module-5.4.0-164-generic_3.4.3.1_amd64.deb'.
 | 
| 1
 | dpkg -i ../shannon-module-5.4.0-164-generic_3.4.3.1_amd64.deb
 | 
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
 | lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                         8:0    0 893.8G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0     1G  0 part /boot
└─sda3                      8:3    0 892.8G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0 892.8G  0 lvm  /
dfa                       252:0    0   2.2T  0 disk
└─dfa1                    252:1    0     2T  0 part
 | 
5. 格式化并挂载到目录
使用 fdisk 对 dfa 进行分区
会有提示输入参数:
command (m for help):n
Select (default p): p
Partition number(1-4):1
First cylinder (1-22800,default 1):Enter
command (m for help):w
| 1
 | mount -t ext4 /dev/dfa /data
 | 
在 /etc/fstab 中添加一条记录,设置开机自动挂载:
| 1
 | /dev/dfa  /data  ext4  defaults  0  0
 | 
6. 验证磁盘正常挂载
重新挂载分区,如果没有报错,说明配置正确
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
 | lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                         8:0    0 893.8G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0     1G  0 part /boot
└─sda3                      8:3    0 892.8G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0 892.8G  0 lvm  /
dfa                       252:0    0   2.2T  0 disk /data
└─dfa1                    252:1    0     2T  0 part
 | 
7. 磁盘测试
| 1
2
 | proxy=""
curl -sfL "$proxy"https://raw.githubusercontent.com/shaowenchen/ops/main/getcli.sh |VERSION=latest sh -
 | 
| 1
2
3
4
5
6
7
8
 | opscli task -f .ops/tasks/get-diskio-byfio.yaml
Rand_Read_Testing: (groupid=0, jobs=1): err= 0: pid=21980: Thu Nov  9 07:05:26 2023
  read: IOPS=113k, BW=441MiB/s (462MB/s)(100MiB/227msec)
Rand_Write_Testing: (groupid=0, jobs=1): err= 0: pid=22027: Thu Nov  9 07:05:27 2023
  write: IOPS=103k, BW=403MiB/s (423MB/s)(100MiB/248msec); 0 zone resets
 | 
8. 宝存驱动下载
https://github.com/shaowenchen/demo/tree/master/driver
相关的文件主要有三个:
- driver/Shannon_Linux_Driver_Package_3.4.3.1.tar.gz , 驱动源码包
- driver/shannon-utils_3.4.3.2_amd64.deb, 驱动工具包
- driver/UG201Direct-IO_PCIe_SSD用户手册_user_manual_rv2.6.docx, 用户手册