Hello,
I work with Marc Wilson (recent poster here) and we have been trying to get remsim
functional. I got all of the client/server bits to finally talk to each other today along
with the port/slot mapping.
In my setup, the ST2 board is connected to a RPi running the remsim-client, and the PC/SC
card reader is mounted to an Ubuntu VM running the server/bankd components. I am running
the pieces each in their own shell so I can easily get stderr output.
Server VM:
@ubuntu:~$ sudo osmo-remsim-server
35014 DLINP NOTICE input/ipa.c:283 0.0.0.0:9998 accept()ed new link from 127.0.0.1:36289
35087 DSLOTMAP INFO ../slotmap.c:135 Slot Map B(1:0) <-> C(1:0) added
35087 DMAIN INFO rest_api.c:333 Slot Map B(1:0) <-> C(1:0) state change: NEW ->
NEW
35087 DMAIN INFO rest_api.c:339 Slot Map B(1:0) <-> C(1:0) state change: NEW ->
NEW
35014 DMAIN INFO rspro_server.c:716 Event FD arrived, checking for any pending work
35014 DMAIN INFO rspro_server.c:391 Slot Map B(1:0) <-> C(1:0) state change: NEW
-> UNACKNOWLEDGED
35014 DMAIN INFO rspro_server.c:363 Slot Map B(1:0) <-> C(1:0) state change:
UNACKNOWLEDGED -> ACTIVE
@ubuntu:~$ sudo osmo-remsim-bankd -b 1 -n 1
[…cut for clarity]
35019 DBANKDW INFO bankd_main.c:442 [000 CONN_WAIT_ID] Changing state to ACCEPTING
35018 DSLOTMAP INFO ../slotmap.c:135 Slot Map B(1:0) <-> C(1:0) added
35019 DBANKDW INFO bankd_main.c:955 [000 ACCEPTING] Accepted connection from
192.168.70.218:41431
35019 DBANKDW INFO bankd_main.c:442 [000 ACCEPTING] Changing state to CONN_WAIT_ID
35019 DBANKDW INFO bankd_main.c:655 [000 CONN_WAIT_ID] Rx RSPRO connectClientReq(T=0,
N='raspberrypi', SW='remsim-client', VER='1.0.0')
35019 DBANKDW INFO bankd_main.c:442 [000 CONN_WAIT_ID] Changing state to CONN_CLIENT
35019 DBANKDW INFO bankd_main.c:625 [000 CONN_CLIENT] slotmap found: C(1:0) -> B(1:0)
35019 DBANKDW INFO bankd_main.c:450 [000 CONN_CLIENT] Changing state to CONN_CLIENT_MAPPED
(timeout=10)
35019 DBANKDW INFO bankd_pcsc.c:261 [000 CONN_CLIENT_MAPPED] Attempting to open PC/SC
context
35019 DBANKDW INFO bankd_pcsc.c:264 [000 CONN_CLIENT_MAPPED] SCardEstablishContext: OK
35019 DBANKDW INFO bankd_pcsc.c:215 [000 CONN_CLIENT_MAPPED] Attempting to find card/slot
using regex 'OMNIKEY AG CardMan 3121 \(OKCM0012007091219038212815383974\) 00 00'
35019 DBANKDW INFO bankd_pcsc.c:234 [000 CONN_CLIENT_MAPPED] Attempting to open card/slot
'OMNIKEY AG CardMan 3121 (OKCM0012007091219038212815383974) 00 00'
35019 DBANKDW INFO bankd_pcsc.c:198 [000 CONN_CLIENT_MAPPED] SCardStatus: OK
35019 DBANKDW INFO bankd_pcsc.c:200 [000 CONN_CLIENT_MAPPED] Card ATR:
3b9f96c00a3fc7828031e073fe211f65d00209146c810f13
35019 DBANKDW INFO bankd_main.c:442 [000 CONN_CLIENT_MAPPED] Changing state to
CONN_CLIENT_MAPPED_CARD
On the RPi running the client I get:
pi@raspberrypi:~ $ sudo osmo-remsim-client-st2 --usb-vendor 1d50 --usb-product 60e3
--usb-path 1-1.3 --usb-interface 0 --usb-config 1 --usb-altsetting 0 --client-id 1
--client-slot 0 --server-ip 192.168.70.241 --server-port 9999
DRSPRO INFO ../rspro_client_fsm.c:307 RSPRO_CLIENT(server){REESTABLISH}: Creating TCP
connection to server at 192.168.70.241:9999
DLINP NOTICE simtrace2_api.c:271 [0] <=
osmo_st2_cardem_request_config(features=00000001)
DLINP NOTICE input/ipa.c:128 192.168.70.241:9999 connection done
DRSPRO NOTICE ../rspro_client_fsm.c:127 RSPRO_CLIENT(server){REESTABLISH}: RSPRO link to
192.168.70.241:9999 UP
DRSPRO ERROR remsim_client.c:121 RSPRO_CLIENT(server){CONNECTED}: Unknown/Unsupported
RSPRO PDU type: setAtrReq
When I look at
https://git.osmocom.org/osmo-remsim/tree/asn1/RSPRO.asn
I see the setAtrReq PDU, so not sure why we are getting this error.
For completeness here is the pcsc_scan on the VM talking to the Reader+Card that I am
trying to remote:
@ubuntu:~$ pcsc_scan
Using reader plug'n play mechanism
Scanning present readers...
0: OMNIKEY AG CardMan 3121 (OKCM0012007091219038212815383974) 00 00
Thu Apr 21 06:49:01 2022
Reader 0: OMNIKEY AG CardMan 3121 (OKCM0012007091219038212815383974) 00 00
Event number: 2
Card state: Card inserted,
ATR: 3B 9F 96 C0 0A 3F C7 82 80 31 E0 73 FE 21 1F 65 D0 02 09 14 6C 81 0F 13
ATR: 3B 9F 96 C0 0A 3F C7 82 80 31 E0 73 FE 21 1F 65 D0 02 09 14 6C 81 0F 13
+ TS = 3B --> Direct Convention
+ T0 = 9F, Y(1): 1001, K: 15 (historical bytes)
TA(1) = 96 --> Fi=512, Di=32, 16 cycles/ETU
250000 bits/s at 4 MHz, fMax for Fi = 5 MHz => 312500 bits/s
TD(1) = C0 --> Y(i+1) = 1100, Protocol T = 0
-----
TC(2) = 0A --> Work waiting time: 960 x 10 x (Fi/F)
TD(2) = 3F --> Y(i+1) = 0011, Protocol T = 15 - Global interface bytes following
-----
TA(3) = C7 --> Clock stop: no preference - Class accepted by the card: (3G) A 5V B 3V
C 1.8V
TB(3) = 82 -->
+ Historical bytes: 80 31 E0 73 FE 21 1F 65 D0 02 09 14 6C 81 0F
Category indicator byte: 80 (compact TLV data object)
Tag: 3, len: 1 (card service data byte)
Card service data byte: E0
- Application selection: by full DF name
- Application selection: by partial DF name
- BER-TLV data objects available in EF.DIR
- EF.DIR and EF.ATR access services: by GET RECORD(s) command
- Card with MF
Tag: 7, len: 3 (card capabilities)
Selection methods: FE
- DF selection by full DF name
- DF selection by partial DF name
- DF selection by path
- DF selection by file identifier
- Implicit DF selection
- Short EF identifier supported
- Record number supported
Data coding byte: 21
- Behaviour of write functions: proprietary
- Value 'FF' for the first byte of BER-TLV tag fields: invalid
- Data unit in quartets: 2
Command chaining, length fields and logical channels: 1F
- Logical channel number assignment: by the interface device and card
- Maximum number of logical channels: 8
Tag: 6, len: 5 (pre-issuing data)
Data: D0 02 09 14 6C
Tag: 8, len: 1 (status indicator)
LCS (life card cycle): 0F
+ TCK = 13 (correct checksum)
I checked the debug output on the ST2 board and this is all that I see:
=============================================================================
SIMtrace2 firmware 0.8.1.33-9088, BOARD=simtrace, APP=cardem
(C) 2010-2019 by Harald Welte, 2018-2019 by Kevin Redon
=============================================================================
-I- Chip ID: 0x28900960 (Ext 0x00000000)
-I- Serial Nr. 51203220-59393152-33303120-33323033
-I- Reset Cause: general reset (first power-up reset)
-I- USB init...
USBD_Init
SetAddr(8) -W- Sta 0x888A8 [0] -W- _ -W- Sta 0x888A8 [0] -W- _ -W- Sta 0x888A8 [0] -W- _
SetCfg(1) cfgChanged1 -I- calling configure of all configurations...
-I- calling init of config 1...
-I- Modem 0: physical SIM
-I- 0: Use local/physical SIM<CR><LF>-I- entering main loop...
-I- USB is now configured
-W- Sta 0x88828 [0] -W- _
I could really use some help. I am so close to getting this functional but stuck on this
snag.
Thank you,
Paul