0.6.3 Fixes, fixes, more fixes
Pre-releaseCHANGELOG
0.6.3
Fixes on bugs found while debugging issue #81:
- Bugfix: Proxy wrongfully uses uint8_t for file descriptors in some functions
- Bugfix: Internal call handling: Make sure we reset the call state after automatically disconnecting the call (fixes only-one-call if we let the call die)
- Bugfix: Remove buggy response to ALL_CALL_INFO packet type (created a buffer underrun in openqti leading up to a modem forced reboot, introduced in 0.6.2)
- Bugfix: When disconnecting a call, also send up a hang-up signal (oFono doesn't like not getting that)
- More descriptive message when a simulated call is getting no commands
- Remove hacky code to handle automatic call disconnect on no answer from the user, let the proxy handle it instead of spawning another thread and risk writing from two places at the same time to the USB port. Timing won't be as exact when hanging up but it's not really an issue
This release may still have some issues, if you run into a problem downgrade to 0.6.1
0.6.2: Click to show / hide
0.6.2- Fix transaction_id types when moving them around in internal calls and SMS (fixes oFono support for messages, calls is still a WIP)
- Calculate signal strength from the reported "bars" indication
- Use AT+CIND to check if we're roaming, signal quality or if we're on a call
- Stop spamming the host with a bogus established call notification while we're in a simulated call
- Initial support for gsm network data reporting and change notification
- Make sure we re-set ALSA controls for I2S and sampling rate each time we're setting up audio
- Only request AT+CIND when tracking is enabled (for testing, in package-alt.tar.gz)
0.6.1
- Unify the phone number used in calls and sms with the modem. Remember you can trigger the first SMS with the command AT+SIMUSMS, and a call trigger sending "call me" in that chat
- The correct phone number now will be +01 555 0199 999 for both calls and messages
- TTS Support: Send a message to the modem while in a call and it will reply with voice instead of text
- Stop using misc partition to set bootloader flags
- Cell Broadcasting Support: ModemManager doesn't have Cell Broadcasting support, but now this firmware can forward CB messages as normal SMS, so you can receive emergency alerts. You can enable all Cell broadcasting messages with AT+CSCB=0,"0-6000"
Power key monitoring: reduces shutdown time in some distros from >30 seconds to ~3. It also allows you to restart the modem by restarting eg25-manager - BUGFIX: Make sure we destroy all TTS memory allocation after use (pointers weren't correctly freed in 0.6.0)
- Try to sync time from network first, and if it fails, try to use whatever CCLK has (so you can set time and date via a script from the PinePhone if your carrier sends an invalid date)
- Reenable debug serial port (for those using Quectel EG25 in a EVB)
- Remove Quectel's modifications to the audio driver. This seems to fix different issues, most notably, fixes an issue in the PPP where static noise would be heard in approximately 1/4 calls. As a result of this change, runtime switching of PCM sampling rate is not possible anymore, and the modem will use 8KHz sampling rate for the PinePhone and 16KHz for the PinePhone Pro
0.6.0
- Internal test release
0.5.9
- Kernel:
- USB (Remote wakeup): Getting '1' at pm_runtime_get_sync isn't an error, so don't let functionFS drivers think something went wrong when we get it.
- RT5616 Codec: Ensure the registers are synced before we use it (PPP fix voicecall on resume)
- Small cleanup of some unused Quectel functions in the audio driver
- Stop complaining about calibration data missing in the AFE driver (we don't use them)
- System:
- Send a pulse ring_in when generating a call
- Allow for more than 999 seconds of wait time
- Send a call disconnect request when it's been more than 60 seconds and the user didn't pick up
0.5.8
- Outgoing & Incoming call support for the modem
- Set the correct time zone in the message PDU, so users who don't live in GMT+1 have correct timestamps
- oFono: Fix receiving internal SMS (outgoing and calls still not working)
- Added new commands for the chat:
- Poweroff (off) and reboot (reboot) the modem from the chat
- Get GSM signal status (gsm signal)
- Call support: "call me" to make the modem call you immediately, "call me in X" to make it call you after X seconds
- Set modem name and username: You can give the modem a name now, and you can tell it yours
- "get reconnects": Get number of ModemManager dirty reconnects (when a USB reset happens or modemmanager is killed)
- Send "help" to get the full list of commands
0.5.7
- Internal test release for matrix room users and LVFS
0.5.6
- Internal test release for matrix room users and LVFS
0.5.5:
- Update Yocto to 3.4.1
- Fixed a bug that would make openqti use 95% of the available CPU doing nothing
- Better handling of outgoing SMS, now it doesn't block the usb interface while sending them to the phone
- SMS queue: Allow pushing up to 100 messages at one, so you can request things like getting logs and it will split the contents across different messages
- More fixes on handling messages sent from the Pinephone to the modem. There's probably some case still where the contents are not correctly decoded (please open an issue if you still get a "command not found" when sending something
- More detailed help command
- Allow to 'get log' and 'get dmesg' to get Openqti's log or kernel log via SMS
0.5.4: [Test release unpublished]
0.5.3:
- Allow OpenQTI to write to USB even while suspend when a QMI message from the Voice or Messaging service is waiting
- When an incoming SMS notification arrived via QMI and USB was suspended, send a ring in pulse to wake the Pinephone up, wait a second, and resend the notification (this should get rid of the issue where sometimes SMS aren't received until reboot -testing!-)
0.5.2:
- Fixed a bug where the modem would end up in recovery mode if GPS was left on and the phone suspended
- Rebuilt rmnet proxy function to be able to discard, pass trhough, or skip certain types of QMI messages
- Added a function to trigger a new message notification in case it got stuck by ModemManager
- OpenQTI now can intercept and send SMS messages to the Pinephone!
- The firmware will listen and intercept messages going to the phone number +1 555 0199 999
- To start the chat for the first time, you can send the "AT+SIMUSMS" AT command and it'll reply through your chat app with a "Hello world"
- After that, simply send a message with the command you want to run and it'll reply. You can send "help" to get the list of available commands.
- The current command list is very limited right now, more functions will be implemented as needed or requested by you! Commands in this release are:
name
: Dummy, returns the modem nameuptime
: System uptimeload
: Current load averageversion
: Current firmware versionmemory
: Free / Used / Shared memory and running processesnet stats
: Get packet statistics for the RMNET interface (where ModemManager/oFono communicate with the modem)gps stats
: Get packet statistics for the GPS function (both usb port and QMI calls)caffeinate
: Block USB from entering suspenddecaff
: Allow USB to suspendenable adb
: Turn on ADB and reset the USB portdisable adb
: Turn off ADB and reset the USB porthelp
: Show the command list
- The current command list is very limited right now, more functions will be implemented as needed or requested by you! Commands in this release are:
NOTE: This function will only work with an active SIM installed, and unlocked
Compatibility:
- Pinephone
- Pinephone Pro
- Quectel EG25 based MiniPCIe cards (make sure you enable USB audio if you want to make a call)
Known issues
- SMS Timestamps will be wrong if the modem can't manage to sync the date from the carrier. If this happens all messages will have a date of 2022-01-01 (+- timezone offset)
- You tell me!
NOTES:
- Make sure to check out the Recommended settings to get the best experience
SHA512 Sum of the package file
cf394e2c1926f9adcd5e70f216d52ab59ea146cce2c0784c45362d74b5d1fe1c030e1cb8f81c1b0dea5f406bfed3baebc19a00e6093e909f31dcec416f9469a7 package.tar.gz
Inside the compressed tar file there's a file containing the SHA sums for the files in it.
Installation instructions:
- Get required tools: you need adb and fastboot
- Run the
flashall
script bundled in the package as root. If something fails, flash manually
After you flashed everything, the modem should come back automatically after 14-18 seconds.
If you want to go back to stock, check the recovery repo
WARNING: Make sure you have a recent enough baseband version before installing the firmware, or some things won't work as expected. You can check your current ADSP firmware by sending the command AT+QGMR
when running stock, or AT+GETADSPVER
when using this firmware. Below you can find the latest ADSP firmware blobs we have found (all of them will work):
ADSP Firmware:
Depending on your carrier, some firmware versions will work better than others. You can check your current ADSP firmware version by sending the "AT+QGMR" AT command. If in doubt, version 01.002.01.002 is the default if you used the recovery repo. I've been using version 003 for months without issues (and improvements in data handling) but some users have reported problems making VoLTE calls with it, so pick whatever works best for you (or don't change it at all if it worked fine before)
Flashing it:
- Open a root terminal and run:
echo -ne "AT+QFASTBOOT\r" > /dev/ttyUSB2
to enter fastboot mode - Run
fastboot flash modem NON-HLOS.ubi && fastboot reboot
Something went wrong?
Feel free to check the troubleshooting section. If you don't manage to fix it, feel free to open an issue and I'll do my best to help you out
This release is a flashable package based on the following repos:
- Unlocked Bootloader (LK): https://github.com/Biktorgj/quectel_lk/releases
- Linux 3.18.140 Kernel: https://github.com/Biktorgj/quectel_eg25_kernel
- Forked meta-qcom layer: https://github.com/Biktorgj/meta-qcom/
- Yocto 3.4 based rootfs and recovery (https://www.yoctoproject.org/)
Have fun!