[[https://github.com/estkme-group/lpac|lpac]] is a command line utility that can be used to manage eSIMs on a compatible device through a smart card reader. This page will summarize the main steps needed to use it with a JMP eSIM Adapter. == Getting Started == You'll need a smart card or SIM reader that is detected by your computer. Windows may require installation of a driver. While most such readers should work, users have reported that https://www.amazon.com/dp/B0CKQ8SSB4 in particular works well. === Linux === You can use {{{pcsc_scan}}} on Linux to view the reader and see if it registers the card when inserted. Some desktop Linux distributions such as [[https://fedoraproject.org/atomic-desktops/silverblue/|Fedora Silverblue]] come with pcscd installed, otherwise you'll need to install that such as with {{{apt}}} on Debian and derivatives: {{{ sudo apt install pcscd }}} Unless building with source, it's probably quickest to download and extract {{{lpac-linux-x86_64.zip}}} from [[https://github.com/estkme-group/lpac/releases]]. Assuming you extracted the zip to {{{~/Downloads/lpac}}}, open a terminal and run: {{{ cd ~/Downloads/lpac }}} == Managing Profiles == You'll want to make sure you can see the eSIM adapter along with its test profile (**do not delete the default profile**): {{{ ./lpac profile list }}} === Downloading an eSIM === From the LPA activation code you receive when purchasing an eSIM, such as {{{LPA:1$example.tld$XX-YYYYYY-ZZZZZZZ}}}: {{{ ./lpac profile download -s example.tld -m "XX-YYYYYY-ZZZZZZZ" }}} === Enabling an eSIM profile === Only one profile can be enabled at a time. You can obtain the ICCID from the {{{profile list}}} command. {{{ ./lpac profile enable [ICCID] }}} === Nicknaming an eSIM profile === {{{ ./lpac profile nickname [ICCID] "My new eSIM" }}} == Troubleshooting == If you get an error involving * SCardEstablishContext() * APDU **driver** init failed Try installing a possible missing dependency {{{ccid}}}. Also enable the systemd `pcscd.socket` with a command like {{{ systemctl enable --now pcscd.socket }}}