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

Reply via email to