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 could really use some help. I am so close to getting this functional but stuck on this snag.

 

Thank you!

Paul Nederveen

Paul Nederveen
Director of Technical Consulting
t: +1 484 935 3130
 | 
m: +19196496363
 | 
w: eseye.com
LinkedIn
 | 
Twitter
 | 
YouTube
 | 
Blog
Get your free copy of the Future of IoT Report
This email is from Eseye
. Address: 
2880 Zanker Rd, Suite 203
San JoseCalifornia95134United States. Registered in England and Wales ‑ number 06397669. VAT: GB921298326. ISO 27001: 2013 Certified.
If you are not the intended recipient, please notify the sender and delete this email and any attachments. Eseye, AnyNet, AnyNet Secure and Eseye Logos are registered trademarks.  2020 Eseye Limited. All rights reserved.