There is a new pull request by jjsullivan5196 against master on the void-packages repository https://github.com/jjsullivan5196/void-packages pinephone-qol https://github.com/void-linux/void-packages/pull/25084 pinephone: add support for modem setup and audio routing. This pull adds the necessary components for 4G modem usage, with the following use-cases in mind: - Configure audio setup to and from modem - Make and receive calls - Send and read SMS - Use mobile broadband/cellular data - Wake-on-modem (for calls and texts) For now I've tested this with ModemManager+NetworkManager, but this also provides the groundwork for environments that use `ofono` (or just plain AT commands with `atinout`, if you feel clever :^) ) To get started, you first need to run `pinephone-modem-setup` once as root to do the initial modem configuration. (chances are postmarketOS already did this if you booted the phone once, but this might need to be done again incase of potential data loss) Some use-cases might require further configuration of software (eg specific to NetworkManager) but the setup script should do most of the needed work. Some examples of usage that I've tested below: Read sms with `mmcli` ``` $ mmcli -s '/org/freedesktop/ModemManager1/SMS/2' ----------------------------------- Content | number: '+5555555555' | text: 'Test' ----------------------------------- Properties | PDU type: 'deliver' | state: 'received' | storage: 'me' | smsc: '+919810051829' | timestamp: '160808142935+05' ``` Sample script for answering calls, using ModemManager dbus interface. Audio is setup thru `alsaucm` ``` #!/bin/bash MM_IFACE="org.freedesktop.ModemManager1" MATCH_CALLS="type='signal',sender='${MM_IFACE}',interface='${MM_IFACE}.Modem.Voice',member='CallAdded'" do_accept() { while read TYPE TIME SENDER HEADER do if [[ "$HEADER" = *"Modem.Voice"* ]]; then read TYPE _P OBJ OBJ=$(echo "${OBJ}" | tr -d '"') echo "Pickup ${OBJ}" alsaucm \ open sun50i-a64-audio \ set _verb 'Voice Call' \ set _enadev 'Mic' \ set _enadev 'Earpiece' dbus-send \ --system \ --dest="${MM_IFACE}" \ --print-reply \ "${OBJ}" \ "${MM_IFACE}.Call.Accept" else read fi done } dbus-monitor --system "${MATCH_CALLS}" | do_accept ``` Add a NetworkManager connection for LTE `$ nmcli c add type gsm ifname '*' con-name LTE apn ` fwiw: these examples are only good for making sure the hardware/software interface works. More work still needs to be done to get some telephony front-end software in the repo, like #24538 A patch file from https://github.com/void-linux/void-packages/pull/25084.patch is attached