0.6.6 - Getting ready for the summer!
CHANGELOG
0.6.6
IMPORTANT: Moved the internal phone number to +22 33 44 55 66 77
Make sure to remove the old chat and send AT+SIMUSMS
once to get a new chat window
Big, enormous thank you to all the people who participate in the development of this firmware, be it by contributing with code, documentation, donations or testing and reporting issues, this firmware gets better on each release thanks to your help and feedback!
New:
- Thermal monitoring and reporting via chat.The modem will send you messages if temperature starts going up, and if temperature is higher than 85C it will automatically shutdown
- Call wait handling. Currently there's a bug in Phosh based distros, in which a second call while there's already one in progress crashes Gnome calls. This new functionality gives you 3 choices: Do nothing (as before), automatically ignore it (sends you a message with the phone number that was calling and avoids informing gnome-calls, which prevents it from crashing) or automatically reject it, which sends you a message and then rejects the call.
If your distro handles call waiting correctly, you don't need to enable anything. If your distro is Phosh based, you might want to either ignore the call or reject it. Note if you ignore it, the call is still "ringing" for the other party, so you won't be able to call them back until they hang up. But for some people it might be a more sensible choice to act like they didn't hear it than hanging up on them, hence the different options. Send either callwait auto hangup
, callwait auto ignore
, or callwait mode default
in the chat, or send help
for a list of commands.
Big thank you to @Alaraajavamma for testing this with me for days
Fixes:
- Temperature limits raised. The modem can handle up to >100C, but we were stopping it at 78C, which was too low. You really need to push the phone to get to 85C so it should be enough, but we'll see if it needs to be raised some more.
- Bugfix: Buffer overflow when attempting to read phone number on active/initiating calls when there are multiple calls in progress (incorrect parsing of QMI call status message)
- Honor the persist flag when dumping QMI messages in debug mode
- Use syscalls to reboot/powerdown via AT command and do poweroff if requested to do so, instead of restarting
- Cleanup of schedule wakeup: Add confirmation, clean up comments and overall tidyup (thank you @bobjrsenior!)
- Mask phone number would first print the full number, then the masked version of it (facepalm)
0.6.5: Click to show / hide
0.6.5New:
- LK2nd bootloader! BIG THANK YOU to
minecrell
for all the help in making this work. Currently we're using a fork to add some specific patches, but hopefully we'll be able get upstream soon! (tm) - Support for enabling/disabling cell broadcast from the chat
- Automatic masking of the phone number in the logs unless you explicitly set it to debug mode
- Moved lots of informational messages in the log to debug mode only
Fixes:
- PPP audio doesn't work when doing a warm boot (there was a regression in the kernel in previous version)
- Fix for SMS interface hogging the usb descriptor, making modemmanager loose packets sometimes
- AT interface blocking while in use by Openqti
- Ghost SMS from the internal chat is no longer receive when the modem receives an MMS
Other:
- Update Yocto to 4.0 Kirkstone (https://docs.yoctoproject.org/dev/migration-guides/release-notes-4.0.html)
0.6.4
New functions:
- Wipe all SMS storage (AT+WIPESMS)
- Persistent storage support
- Use a configuration file for most of openqti's functions
- SMS Logging
- Reminders and wake up alarms (make the modem call you to wake you up or remind you of something)
Fixes:
- Faster audio set up time (no more cutting the first 2 seconds of a call)
- Fix one, two or -2,147,483,648 buffer overflows
- Better time sync handling
- (Testing) More delay between ring in pulse and actual call start attempt
Other:
- Update Yocto to 3.4.4
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
- 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
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
a6e95ddc70228778c2a63781b9a93b2413e37777db868cbe4ae7a76050028e6f23eb4d066050b29cd99910de84ef767a5ec3cc853398d12e9b63f557bf11b846 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)
- ADSP Version 01.002.01.002
- ADSP Version 01.003.01.003
- ADSP Version 30.004.30.004
- ADSP Version 30.006.30.006
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:
- LK2nd fork: https://github.com/Biktorgj/lk2nd/tree/quectel-eg25-timer
- Linux 3.18.140 Kernel: https://github.com/Biktorgj/quectel_eg25_kernel
- Forked meta-qcom layer: https://github.com/Biktorgj/meta-qcom/
- Yocto 4 based rootfs and recovery (https://www.yoctoproject.org/)
Have fun!