PLEX ドライバを Ubuntu22.04 にインストール

公式ページの通りインストールするだけなのだけど、念の為記録。

## 環境

- Ubuntu22.04
- PX-Q3PE4

他のPLEXカードも同様なはず。

## 作業内容
https://github.com/nns779/px4_drv

より

```
1. ファームウェアの抽出とインストール
2. ドライバのインストール
3. 確認
```
を進めていきます。

## DKMS の設定

今回、

2. ドライバのインストール

では

「DKMSを使用する場合」

を選択したたため、以下の追加作業を行っています。





```
/etc/apt/source.list 
```
の

```
# newer versions of the distribution.
deb http://jp.archive.ubuntu.com/ubuntu/ jammy main restricted
# deb-src http://jp.archive.ubuntu.com/ubuntu/ jammy main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://jp.archive.ubuntu.com/ubuntu/ jammy-updates main restricted
# deb-src http://jp.archive.ubuntu.com/ubuntu/ jammy-updates main restricted
```
↓

```
# newer versions of the distribution.
deb http://jp.archive.ubuntu.com/ubuntu/ jammy main restricted
deb-src http://jp.archive.ubuntu.com/ubuntu/ jammy main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://jp.archive.ubuntu.com/ubuntu/ jammy-updates main restricted
deb-src http://jp.archive.ubuntu.com/ubuntu/ jammy-updates main restricted
```

変更して
```
$sudo apt update
```
してから

```
$ sudo apt-get source linux-image-$(uname -r)
$ sudo apt install linux-headers-$(uname -r)
```
とします。

## インストール後の確認

```
$ lsmod | grep -e ^px4_drv
```
で何も表示されなかったので再起動したら認識しました。

```
$ lsmod | grep -e ^px4_drv
px4_drv               192512  0
```

デバイスファイルもできています。

```
$ ls /dev/px4video*
/dev/px4video0  /dev/px4video2  /dev/px4video4  /dev/px4video6
/dev/px4video1  /dev/px4video3  /dev/px4video5  /dev/px4video7
```
# recpt1 を新たにインストール

recpt1 PLEX版、SZ版などがあるらしい。
SZ版を使用。

事前に automake をインストールしておきます。

```
$ sudo apt install automake

```
https://github.com/stz2012/recpt1
からクローン
```
$ git clone https://github.com/stz2012/recpt1.git
$ cd recpt1/recpt1
$ ./autogen.sh
$ ./configure --enable-b25
$ make
$ sudo make install
```

# pcsc インストール
```
$ sudo apt install pcscd pcsc-tools libpcsclite-dev
```
B-CASカードを刺して、以下のようになればOK
```
$ pcsc_scan
Using reader plug'n play mechanism
Scanning present readers...
0: NTT Communications Corp. SCR3310-NTTCom USB SmartCard Reader [Vendor Interface] 00 00
 
Sun Oct  1 00:51:51 2023
 Reader 0: NTT Communications Corp. SCR3310-NTTCom USB SmartCard Reader [Vendor Interface] 00 00
  Event number: 0
  Card state: Card inserted, 
  ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99

ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99
+ TS = 3B --> Direct Convention
+ T0 = F0, Y(1): 1111, K: 0 (historical bytes)
  TA(1) = 12 --> Fi=372, Di=2, 186 cycles/ETU
    21505 bits/s at 4 MHz, fMax for Fi = 5 MHz => 26881 bits/s
  TB(1) = 00 --> VPP is not electrically connected
  TC(1) = FF --> Extra guard time: 255 (special value)
  TD(1) = 91 --> Y(i+1) = 1001, Protocol T = 1 
-----
  TA(2) = 81 --> Protocol to be used in spec mode: T=1 - Unable to change - defined by interface bytes
  TD(2) = B1 --> Y(i+1) = 1011, Protocol T = 1 
-----
  TA(3) = 7C --> IFSC: 124
  TB(3) = 45 --> Block Waiting Integer: 4 - Character Waiting Integer: 5
  TD(3) = 1F --> Y(i+1) = 0001, Protocol T = 15 - Global interface bytes following 
-----
  TA(4) = 03 --> Clock stop: not supported - Class accepted by the card: (3G) A 5V B 3V 
+ Historical bytes: 
+ TCK = 99 (correct checksum)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99
	Japanese Chijou Digital B-CAS Card (pay TV)

```