From laforge at gnumonks.org Tue Apr 6 22:49:57 2021 From: laforge at gnumonks.org (Harald Welte) Date: Wed, 7 Apr 2021 00:49:57 +0200 Subject: WIP / RFC for pysim 'next generation;' aka pysim-shell In-Reply-To: References: Message-ID: Dear Osmocom community, two months later, a lot of work has been going into pySim-shell. The following features are now available from pysim.git master: * we now have a 'tree' command to list the filesystem hierarchy * you can now select arbitrary files by FID, even those not specified in 3GPP * there is now an 'export' command, which will iterate over all records in all files and dump them in an output format that can be used by pySim-shell itself to restore the data * we have the start of a user manual including a reference to the various pySim-shell comamnds. A preview is available at https://people.osmocom.org/laforge/tmp/pysim-doc-test/html/ * you can now use python setuptools to build and install dependencies, etc. * pySim-shell can retriev the card-specific ADM PIN from a CSV file in your home The latest invention (just pushed to gerrit for review) is the integration of JSONpath support, wich allows you to specify certain parts of a decoded file or record[s] to be updated. If you've never heard of JSONpath: It is to JSON what XPath is to XML. First example on how to use this: ------------------------------------------ pySIM-shell (MF/ADF.USIM/EF.FPLMN)> read_binary_decoded [ { "mcc": 262, "mnc": 42 }, { "mcc": 262, "mnc": 42 }, { "mcc": 262, "mnc": 42 }, { "mcc": 262, "mnc": 42 } ] pySIM-shell (MF/ADF.USIM/EF.FPLMN)> update_binary_decoded --json-path [*] null pySIM-shell (MF/ADF.USIM/EF.FPLMN)> read_binary_decoded [ null, null, null, null ] pySIM-shell (MF/ADF.USIM/EF.FPLMN)> update_binary_decoded --json-path [2] '{"mcc":"262", "mnc":"42"}' pySIM-shell (MF/ADF.USIM/EF.FPLMN)> read_binary_decoded [ null, null, { "mcc": 262, "mnc": 42 }, null ] ------------------------------------------ Second example, illustrating its use in more complex JSON types: ------------------------------------------ pySIM-shell (MF/ADF.USIM/EF.AD)> read_binary_decoded { "ms_operation_mode": "normal", "specific_facilities": { "ofm": true }, "len_of_mnc_in_imsi": 2 } pySIM-shell (MF/ADF.USIM/EF.AD)> update_binary_decoded --json-path specific_facilities.ofm false pySIM-shell (MF/ADF.USIM/EF.AD)> read_binary_decoded { "ms_operation_mode": "normal", "specific_facilities": { "ofm": false }, "len_of_mnc_in_imsi": 2 } ------------------------------------------ Stay tuned for more pySim developments coming up. Any feedback is welcome - as is help with writing encoder/decoder methods for all the files that don't have any yet. Regards, Harald -- - Harald Welte http://laforge.gnumonks.org/ ============================================================================ "Privacy in residential applications is a desirable marketing option." (ETSI EN 300 175-7 Ch. A6) From mychaela.falconia at gmail.com Wed Apr 7 00:40:54 2021 From: mychaela.falconia at gmail.com (Mychaela Falconia) Date: Tue, 6 Apr 2021 16:40:54 -0800 Subject: WIP / RFC for pysim 'next generation;' aka pysim-shell In-Reply-To: References: Message-ID: Harald Welte wrote: > * we now have a 'tree' command to list the filesystem hierarchy And just how do you get the card to tell you what selectable file IDs exist? I haven't seen anything like an ls operation in either the classic GSM 11.11 SIM protocol or the UICC protocol, thus the only way (that I know of) to find out what selectable file IDs exist is to do a brute force search of the 16-bit file ID space at every directory level. First select MF, then try selecting every possible 16-bit file ID from 0000 to FFFF (only skipping 3F00 for MF itself), and note which return something other than "not found" error. Follow up with a GET RESPONSE command for every SELECT which succeeded, parse the response, and report the findings. For all found file IDs which turn out to be DFs when the response is parsed, note those DF file IDs, and then repeat the brute force search inside every found DF - and then in any found nested DFs too. This brute force search is implemented in fc-simtool and fc-uicc-tool programs in my fc-sim-tools suite, my competitor to pySim: https://www.freecalypso.org/hg/fc-sim-tools/ As one would naturally expect, such brute force searches are painfully slow - IIRC, bfsearch-mf of sysmoISIM-SJA2 (just the MF tree, ADF trees have to be searched separately with bfsearch-adf) took about an hour, using HID Omnikey 3121 card reader, same model as the one currently sold in Sysmocom webshop - using an o'scope, I observed that it clocks the card at 4.8 MHz, almost up to the spec limit of 5 MHz. Because these brute force searches are so slow, I collect the captures and check them into my source repository under the data directory - so if you are curious to see what undocumented proprietary files exist on both Sysmocom and Grcard SIMs (whose existence cannot be discovered in any other way than this bfsearch), just look in the repository linked above. :-) I am not able to run pySim-shell on my Slackware system without expending more effort than I can currently justify, but I have glanced at the Python code, and I don't see anything like the just described brute force search - nor do I see it issuing any kind of secret undocumented ls-type APDU commands to the card - thus I am guessing that this 'tree' command displays nothing more than the tool's hard-coded knowledge of what files "should" exist at each given directory level, rather than what is actually found to exist. If I got this part wrong, then someone please explain what this command *actually* returns, and how it obtains this knowledge - I don't know of any way other than a brute force search. M~ From domi at tomcsanyi.net Wed Apr 7 07:23:18 2021 From: domi at tomcsanyi.net (Tomcsanyi, Domonkos) Date: Wed, 7 Apr 2021 09:23:18 +0200 Subject: WIP / RFC for pysim 'next generation;' aka pysim-shell In-Reply-To: References: Message-ID: <3A92FCC2-1F38-4F67-AA2A-ADC5AAD304BB@tomcsanyi.net> Hi Mychaela, Without looking at the code I assume the way it works is that based on the service table the tool knows what files are supposed to be on the card and queries for them - just like an ?ordinary phone? does. The point of the ST is exactly to avoid unnecessary bruteforcing/lookups of files that don?t exist. However it is correct to say that finding a file hidden on purpose (i.e. missing entry from the ST) could only be done via bruteforce imho. In case I am wrong sorry, didn?t mean to mislead anybody. Cheers, Domi > 07.04.2021 d?tummal, 2:41 id?pontban Mychaela Falconia ?rta: > > ?Harald Welte wrote: > >> * we now have a 'tree' command to list the filesystem hierarchy > > And just how do you get the card to tell you what selectable file IDs > exist? I haven't seen anything like an ls operation in either the > classic GSM 11.11 SIM protocol or the UICC protocol, thus the only way > (that I know of) to find out what selectable file IDs exist is to do a > brute force search of the 16-bit file ID space at every directory > level. First select MF, then try selecting every possible 16-bit file > ID from 0000 to FFFF (only skipping 3F00 for MF itself), and note > which return something other than "not found" error. Follow up with a > GET RESPONSE command for every SELECT which succeeded, parse the > response, and report the findings. For all found file IDs which turn > out to be DFs when the response is parsed, note those DF file IDs, and > then repeat the brute force search inside every found DF - and then in > any found nested DFs too. > > This brute force search is implemented in fc-simtool and fc-uicc-tool > programs in my fc-sim-tools suite, my competitor to pySim: > > https://www.freecalypso.org/hg/fc-sim-tools/ > > As one would naturally expect, such brute force searches are painfully > slow - IIRC, bfsearch-mf of sysmoISIM-SJA2 (just the MF tree, ADF trees > have to be searched separately with bfsearch-adf) took about an hour, > using HID Omnikey 3121 card reader, same model as the one currently > sold in Sysmocom webshop - using an o'scope, I observed that it clocks > the card at 4.8 MHz, almost up to the spec limit of 5 MHz. > > Because these brute force searches are so slow, I collect the captures > and check them into my source repository under the data directory - so > if you are curious to see what undocumented proprietary files exist on > both Sysmocom and Grcard SIMs (whose existence cannot be discovered in > any other way than this bfsearch), just look in the repository linked > above. :-) > > I am not able to run pySim-shell on my Slackware system without > expending more effort than I can currently justify, but I have glanced > at the Python code, and I don't see anything like the just described > brute force search - nor do I see it issuing any kind of secret > undocumented ls-type APDU commands to the card - thus I am guessing > that this 'tree' command displays nothing more than the tool's > hard-coded knowledge of what files "should" exist at each given > directory level, rather than what is actually found to exist. If I > got this part wrong, then someone please explain what this command > *actually* returns, and how it obtains this knowledge - I don't know > of any way other than a brute force search. > > M~ From laforge at osmocom.org Wed Apr 7 15:10:47 2021 From: laforge at osmocom.org (Harald Welte) Date: Wed, 7 Apr 2021 17:10:47 +0200 Subject: Announcement of "OsmoDevCall" on April 9, 2021 Message-ID: Dear Osmocom community, It's my pleasure to announce the next OsmoDevCall at April 9, 2021 at 20:00 CET at https://meeting4.franken.de/b/har-xbc-bsx-wvs This meeting will have the following schedule: 20:00 meet + greet 20:15 presentation: pySim-shell - the next generation of pySim 21:00 USSE: unstructured supplementary social event [*] 22:00 close of call Presentation Abstract: For more than a decade, pySim-prog has been the tool to configure/program SIM cards in research/lab/private cellular networks. Originally designed for very simplistic GSM-only SIM Cards, it was extended again and again to cover more use cases and parameters. There is a limit as to how far one can go with stuffing everything into command line arguments. In 2021, pySim-shell was created as the next generation tool. It features interactive navigation around the file system, editing capabilities, backup and restore of all [known] files, ... Attendance is free of charge and open to anyone with an interest in Osmocom. More information about OsmoDevCall, including the schedule for further upcoming events can be found at https://osmocom.org/projects/osmo-dev-con/wiki/OsmoDevCall Looking forward to meeting you on Friday. Best regards, Harald [*] this is how we started to call the "unstructured" part of osmocom developer conferences in the past, basically where anyone can talk about anything, no formal schedule or structure. -- - Harald Welte http://laforge.gnumonks.org/ ============================================================================ "Privacy in residential applications is a desirable marketing option." (ETSI EN 300 175-7 Ch. A6) From laforge at osmocom.org Sun Apr 18 17:23:13 2021 From: laforge at osmocom.org (Harald Welte) Date: Sun, 18 Apr 2021 19:23:13 +0200 Subject: Announcement of "OsmoDevCall" on April 23, 2021 Message-ID: Dear Osmocom community, It's my pleasure to announce the next OsmoDevCall at April 23, 2021 at 20:00 CEST at https://meeting4.franken.de/b/har-xbc-bsx-wvs This meeting will have the following schedule: 20:00 meet + greet 20:15 presentation by horiz0n: "YIG & YANG (Yet ANother yiG driver)" 21:00 USSE: unstructured supplementary social event [*] 22:00 close of call Presentation Abstract: This talk will briefly introduce the working principles of YIG (Yttrium Iron Garnet) microwave circuits, their applications and finally conclude with a presentation of a recently developed driver circuit. Attendance is free of charge and open to anyone with an interest in Osmocom. More information about OsmoDevCall, including the schedule for further upcoming events can be found at https://osmocom.org/projects/osmo-dev-con/wiki/OsmoDevCall Looking forward to meeting you on Friday. Best regards, Harald [*] this is how we started to call the "unstructured" part of osmocom developer conferences in the past, basically where anyone can talk about anything, no formal schedule or structure. -- - Harald Welte http://laforge.gnumonks.org/ ============================================================================ "Privacy in residential applications is a desirable marketing option." (ETSI EN 300 175-7 Ch. A6) From lists at digitaldissidents.org Wed Apr 28 17:18:34 2021 From: lists at digitaldissidents.org (Niels ten Oever) Date: Wed, 28 Apr 2021 19:18:34 +0200 Subject: pySim ModuleNotFoundError: No module named 'construct' Message-ID: <4509e0a5-872e-6ebd-c982-acfc50e788a4@digitaldissidents.org> Hi all, I am a happy user of pySim - thanks a lot for the work on it. Unfortunately, I think something broke during recent updates that might have to do with software versions. I went through a full reinstall and have done all the software installations mentioned in the README.md, but when I do: $ ./pySim-read.py -p0 I get: Traceback (most recent call last): File "./pySim-read.py", line 31, in from pySim.ts_51_011 import EF, DF, EF_SST_map, EF_AD File "/home/gagarin/Data/pysim/pySim/ts_51_011.py", line 324, in from construct import * ModuleNotFoundError: No module named 'construct' I tried: $ sudo pip3 install construct Requirement already satisfied: construct in /usr/local/lib/python3.8/dist-packages (2.10.67) But that did not solve the issue. Any pointers are very welcome. All the best, Niels PS FYI: $ cat /proc/version Linux version 5.8.0-50-generic (buildd at lgw01-amd64-051) (gcc (Ubuntu 10.2.0-13ubuntu1) 10.2.0, GNU ld (GNU Binutils for Ubuntu) 2.35.1) #56-Ubuntu SMP Mon Apr 12 17:18:36 UTC 2021 $ lsusb | grep OMNI Bus 001 Device 033: ID 076b:3031 OmniKey AG OMNIKEY 3x21 Smart Card Reader -- Niels ten Oever, PhD Postdoctoral Researcher - Media Studies Department - University of Amsterdam Research Fellow - Centre for Internet and Human Rights - European University Viadrina Associated Scholar - Centro de Tecnologia e Sociedade - Funda??o Get?lio Vargas https://nielstenoever.net - mail at nielstenoever.net - @nielstenoever - +31629051853 PGP: 2458 0B70 5C4A FD8A 9488 643A 0ED8 3F3A 468A C8B3 Read my latest article on Internet infrastructure governance in New Media & Society here: https://journals.sagepub.com/doi/full/10.1177/1461444820929320 From laforge at osmocom.org Wed Apr 28 19:36:46 2021 From: laforge at osmocom.org (Harald Welte) Date: Wed, 28 Apr 2021 21:36:46 +0200 Subject: pySim ModuleNotFoundError: No module named 'construct' In-Reply-To: <4509e0a5-872e-6ebd-c982-acfc50e788a4@digitaldissidents.org> References: <4509e0a5-872e-6ebd-c982-acfc50e788a4@digitaldissidents.org> Message-ID: Hi Niels, On Wed, Apr 28, 2021 at 07:18:34PM +0200, Niels ten Oever wrote: > I am a happy user of pySim - thanks a lot for the work on it. Unfortunately, I think something broke during recent updates that might have to do with software versions. pySim has recently been extended heavily, which introduced some new dependencies, and those should all be documented in the README, but also > > I went through a full reinstall and have done all the software installations mentioned in the README.md, but when I do: > > $ ./pySim-read.py -p0 which python version are you using to execute pySim? > $ sudo pip3 install construct > Requirement already satisfied: construct in /usr/local/lib/python3.8/dist-packages (2.10.67) so it is installed for python3.8. > But that did not solve the issue. I suspect you installed 'construct' for python3.8 but you are executing pySim-reads by some other version of python? What does the following command tell you: /usr/bin/env python3 --version I would assume it shows something else than python 3.8.x ? -- - Harald Welte http://laforge.gnumonks.org/ ============================================================================ "Privacy in residential applications is a desirable marketing option." (ETSI EN 300 175-7 Ch. A6) From lists at digitaldissidents.org Fri Apr 30 09:56:01 2021 From: lists at digitaldissidents.org (Niels ten Oever) Date: Fri, 30 Apr 2021 11:56:01 +0200 Subject: pySim ModuleNotFoundError: No module named 'construct' In-Reply-To: References: <4509e0a5-872e-6ebd-c982-acfc50e788a4@digitaldissidents.org> Message-ID: Hi Harald, Thanks for your quick response, please find my reply below in-line: On 28-04-2021 21:36, Harald Welte wrote: > Hi Niels, > > On Wed, Apr 28, 2021 at 07:18:34PM +0200, Niels ten Oever wrote: >> I am a happy user of pySim - thanks a lot for the work on it. Unfortunately, I think something broke during recent updates that might have to do with software versions. > > pySim has recently been extended heavily, which introduced some new dependencies, and those > should all be documented in the README, but also >> >> I went through a full reinstall and have done all the software installations mentioned in the README.md, but when I do: >> >> $ ./pySim-read.py -p0 > $ /usr/bin/env python3 --version Python 3.8.5 > which python version are you using to execute pySim? See above > >> $ sudo pip3 install construct >> Requirement already satisfied: construct in /usr/local/lib/python3.8/dist-packages (2.10.67) > > so it is installed for python3.8. > $ sudo pip3 install construct Requirement already satisfied: construct in /usr/local/lib/python3.8/dist-packages (2.10.67) Indeed >> But that did not solve the issue. > > I suspect you installed 'construct' for python3.8 but you are executing pySim-reads by some other > version of python? What does the following command tell you: > > /usr/bin/env python3 --version > > I would assume it shows something else than python 3.8.x ? > Unfortunately not, but all other suggestions are welcome! Best, Niels -- Niels ten Oever, PhD Postdoctoral Researcher - Media Studies Department - University of Amsterdam Research Fellow - Centre for Internet and Human Rights - European University Viadrina Associated Scholar - Centro de Tecnologia e Sociedade - Funda??o Get?lio Vargas Affiliated Factulty - Digital Democracy Insitute - Simon Fraser University https://nielstenoever.net - mail at nielstenoever.net - @nielstenoever - +31629051853 PGP: 2458 0B70 5C4A FD8A 9488 643A 0ED8 3F3A 468A C8B3 Read my latest article on Internet infrastructure governance in New Media & Society here: https://journals.sagepub.com/doi/full/10.1177/1461444820929320 From nhofmeyr at sysmocom.de Fri Apr 30 11:54:43 2021 From: nhofmeyr at sysmocom.de (Neels Hofmeyr) Date: Fri, 30 Apr 2021 13:54:43 +0200 Subject: pySim ModuleNotFoundError: No module named 'construct' In-Reply-To: References: <4509e0a5-872e-6ebd-c982-acfc50e788a4@digitaldissidents.org> Message-ID: Your report seems really odd and not related to pysim but rather some unfortunate mixup of python library installation. Hard to tell from the distance. Have you tried maybe running 'python3' (or 'ipython3') and entering import construct on the prompt? Is there maybe some discrepancy between /usr/local/lib, /usr/lib and your ~/.local/lib python library locations? Maybe try running from a different user account, just in case your user's python config is somehow confused? ~N From laforge at gnumonks.org Fri Apr 30 12:57:45 2021 From: laforge at gnumonks.org (Harald Welte) Date: Fri, 30 Apr 2021 14:57:45 +0200 Subject: pySim ModuleNotFoundError: No module named 'construct' In-Reply-To: References: <4509e0a5-872e-6ebd-c982-acfc50e788a4@digitaldissidents.org> Message-ID: Hi Niels, On Fri, Apr 30, 2021 at 11:56:01AM +0200, Niels ten Oever wrote: > $ /usr/bin/env python3 --version > Python 3.8.5 > > > which python version are you using to execute pySim? strange. Unfortuantely I'm not a python expert, and I'm not sure why the 'construct' you installed using pip3 is not import-able by python. All I can say is that I tested the new imports on Debian 9, 10 and unstable, and it worked on those platforms. There certainly are other people on this list who have a much deeper python knowledge than I do. -- - Harald Welte http://laforge.gnumonks.org/ ============================================================================ "Privacy in residential applications is a desirable marketing option." (ETSI EN 300 175-7 Ch. A6) From lists at digitaldissidents.org Fri Apr 30 13:57:21 2021 From: lists at digitaldissidents.org (Niels ten Oever) Date: Fri, 30 Apr 2021 15:57:21 +0200 Subject: pySim ModuleNotFoundError: No module named 'construct' In-Reply-To: References: <4509e0a5-872e-6ebd-c982-acfc50e788a4@digitaldissidents.org> Message-ID: Thanks Neels, I got one step further by running: $ sudo apt install python3-construct and felt kinda stupid when that worked. Unfortunately that did not solve all my issues, because then I got: ./pySim-read.py -p0 ? 1 ? ? ? ? 1061 ? 15:38:08 Traceback (most recent call last): File "/home/gagarin/.local/lib/python3.8/site-packages/qtpy/__init__.py", line 204, in from PySide import __version__ as PYSIDE_VERSION # analysis:ignore ModuleNotFoundError: No module named 'PySide' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "./pySim-read.py", line 31, in from pySim.ts_51_011 import EF, DF, EF_SST_map, EF_AD File "/home/gagarin/Data/pysim/pySim/ts_51_011.py", line 329, in from pySim.filesystem import * File "/home/gagarin/Data/pysim/pySim/filesystem.py", line 31, in import cmd2 File "/home/gagarin/.local/lib/python3.8/site-packages/cmd2/__init__.py", line 30, in from .cmd2 import Cmd File "/home/gagarin/.local/lib/python3.8/site-packages/cmd2/cmd2.py", line 73, in from .clipboard import ( File "/home/gagarin/.local/lib/python3.8/site-packages/cmd2/clipboard.py", line 14, in _ = pyperclip.paste() File "/home/gagarin/.local/lib/python3.8/site-packages/pyperclip/__init__.py", line 680, in lazy_load_stub_paste copy, paste = determine_clipboard() File "/home/gagarin/.local/lib/python3.8/site-packages/pyperclip/__init__.py", line 582, in determine_clipboard import qtpy # check if qtpy is installed File "/home/gagarin/.local/lib/python3.8/site-packages/qtpy/__init__.py", line 210, in raise PythonQtError('No Qt bindings could be found') qtpy.PythonQtError: No Qt bindings could be found So I sought to install PySide: sudo pip3 install -U PySide --no-cache-dir Collecting PySide Downloading PySide-1.2.4.tar.gz (9.3 MB) |????????????????????????????????| 9.3 MB 5.1 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-eea4ncap/PySide/setup.py'"'"'; __file__='"'"'/tmp/pip-install-eea4ncap/PySide/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-lu1h2k1z cwd: /tmp/pip-install-eea4ncap/PySide/ Complete output (1 lines): only these python versions are supported: [(2, 6), (2, 7), (3, 2), (3, 3), (3, 4)] ---------------------------------------- ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. and it then turned out PySide only support Python up to 3.4. - which was quite surprising to me. So I thought to set up an anaconda envuronmentwith Python 3.4, but the oldest Python3 version that is support by anaonconda is Python 3.5.4 argh. My intermediate hypothesis is that things broke with recent Ubuntu update to a more recent Python version? Thanks for the help and comments that might help me get on my way. Best, Niels On 30-04-2021 13:54, Neels Hofmeyr wrote: > Your report seems really odd and not related to pysim but rather some > unfortunate mixup of python library installation. Hard to tell from the > distance. > > Have you tried maybe running 'python3' (or 'ipython3') and entering > import construct > on the prompt? > > Is there maybe some discrepancy between /usr/local/lib, /usr/lib and your > ~/.local/lib python library locations? > > Maybe try running from a different user account, just in case your user's > python config is somehow confused? > > ~N > -- Niels ten Oever, PhD Postdoctoral Researcher - Media Studies Department - University of Amsterdam Research Fellow - Centre for Internet and Human Rights - European University Viadrina Associated Scholar - Centro de Tecnologia e Sociedade - Funda??o Get?lio Vargas Affiliated Factulty - Digital Democracy Insitute - Simon Fraser University https://nielstenoever.net - mail at nielstenoever.net - @nielstenoever - +31629051853 PGP: 2458 0B70 5C4A FD8A 9488 643A 0ED8 3F3A 468A C8B3 Read my latest article on Internet infrastructure governance in New Media & Society here: https://journals.sagepub.com/doi/full/10.1177/1461444820929320 From vyanitskiy at sysmocom.de Fri Apr 30 13:51:56 2021 From: vyanitskiy at sysmocom.de (Vadim Yanitskiy) Date: Fri, 30 Apr 2021 15:51:56 +0200 Subject: pySim ModuleNotFoundError: No module named 'construct' In-Reply-To: References: <4509e0a5-872e-6ebd-c982-acfc50e788a4@digitaldissidents.org> Message-ID: <5975ee65-401f-c74f-e4f3-a25741e02ca8@sysmocom.de> Hi Niels, > Requirement already satisfied: construct in /usr/local/lib/python3.8/dist-packages (2.10.67) you need to make sure that '/usr/local/lib/python3.8/dist-packages' is in the Python's search path (similar to LD_LIBRARY_PATH): $ python3 >>> import sys >>> sys.path Here is the output from my system: ['', '/usr/lib/python39.zip', '/usr/lib/python3.9', '/usr/lib/python3.9/lib-dynload', '/home/fixeria/.local/lib/python3.9/site-packages', '/usr/lib/python3.9/site-packages'] If '/usr/local/lib/python3.8/dist-packages' is not there, then indeed importing will not work. You will need to re-configure pip to use a proper directory, or add this path to PYTHONPATH. Good luck! P.S. So now we have Niels and Neels in the thread ;) Best regards, Vadim. -- - Vadim Yanitskiy http://www.sysmocom.de/ ======================================================================= * sysmocom - systems for mobile communications GmbH * Alt-Moabit 93 * 10559 Berlin, Germany * Sitz / Registered office: Berlin, HRB 134158 B * Geschaeftsfuehrer / Managing Director: Harald Welte From lists at digitaldissidents.org Fri Apr 30 14:20:58 2021 From: lists at digitaldissidents.org (Niels ten Oever) Date: Fri, 30 Apr 2021 16:20:58 +0200 Subject: pySim ModuleNotFoundError: No module named 'construct' In-Reply-To: <5975ee65-401f-c74f-e4f3-a25741e02ca8@sysmocom.de> References: <4509e0a5-872e-6ebd-c982-acfc50e788a4@digitaldissidents.org> <5975ee65-401f-c74f-e4f3-a25741e02ca8@sysmocom.de> Message-ID: <48af8e1b-ab2c-3609-a83f-420605fb8561@digitaldissidents.org> Thanks all, I got things working again - thanks again very much for the help! Best, Niels On 30-04-2021 15:51, Vadim Yanitskiy wrote: > Hi Niels, > >> Requirement already satisfied: construct in /usr/local/lib/python3.8/dist-packages (2.10.67) > > you need to make sure that '/usr/local/lib/python3.8/dist-packages' is in the Python's search path (similar to LD_LIBRARY_PATH): > > $ python3 >>>> import sys >>>> sys.path > > Here is the output from my system: > > ['', '/usr/lib/python39.zip', > ???? '/usr/lib/python3.9', > ???? '/usr/lib/python3.9/lib-dynload', > ???? '/home/fixeria/.local/lib/python3.9/site-packages', > ???? '/usr/lib/python3.9/site-packages'] > > If '/usr/local/lib/python3.8/dist-packages' is not there, then indeed importing will not work.? You will need to re-configure pip to use a proper directory, or add this path to PYTHONPATH.? Good luck! > > P.S. So now we have Niels and Neels in the thread ;) > > Best regards, > Vadim. > -- Niels ten Oever, PhD Postdoctoral Researcher - Media Studies Department - University of Amsterdam Research Fellow - Centre for Internet and Human Rights - European University Viadrina Associated Scholar - Centro de Tecnologia e Sociedade - Funda??o Get?lio Vargas Affiliated Factulty - Digital Democracy Insitute - Simon Fraser University https://nielstenoever.net - mail at nielstenoever.net - @nielstenoever - +31629051853 PGP: 2458 0B70 5C4A FD8A 9488 643A 0ED8 3F3A 468A C8B3 Read my latest article on Internet infrastructure governance in New Media & Society here: https://journals.sagepub.com/doi/full/10.1177/1461444820929320 From lists at digitaldissidents.org Fri Apr 30 19:55:29 2021 From: lists at digitaldissidents.org (Niels ten Oever) Date: Fri, 30 Apr 2021 21:55:29 +0200 Subject: comparison of open source 4G and 5G implementations Message-ID: <4cf11b7b-f22b-ce9c-e94c-3e1508da09a5@digitaldissidents.org> Hi all, Slightly inspired by the excellent responses I got today on this list on another problem I wanted to ask a question about the comparison of open source 4G and 5G implementations. While there are several lists that provide overviews of said open source software for 4G and 5G networks [0], I have not found a paper, blogpost, or table that compares the implementations in a meaningful manner. Does such an overview exist, if so, could you point me to it, or if it doesn't exist, do you think such an overview would be helpful? Have a great weekend. Niels PS If this is the wrong list to post this (kind of) question to, feel free to tell me so :) [0] for instance https://github.com/ravens/awesome-telco and https://github.com/calee0219/awesome-5g -- Niels ten Oever, PhD Postdoctoral Researcher - Media Studies Department - University of Amsterdam Research Fellow - Centre for Internet and Human Rights - European University Viadrina Associated Scholar - Centro de Tecnologia e Sociedade - Funda??o Get?lio Vargas Affiliated Factulty - Digital Democracy Insitute - Simon Fraser University https://nielstenoever.net - mail at nielstenoever.net - @nielstenoever - +31629051853 PGP: 2458 0B70 5C4A FD8A 9488 643A 0ED8 3F3A 468A C8B3 Read my latest article on Internet infrastructure governance in New Media & Society here: https://journals.sagepub.com/doi/full/10.1177/1461444820929320