Motorola Droid Bionic
Status
Feature | Leste supported | Notes |
---|---|---|
Kernel version | 5.9.0 | Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux |
Serial | Yes | On MicroUSB port, requires special cable |
Charging | Yes | |
Wireless | Yes | |
Ethernet | N/A | |
Micro USB | Yes | OTG and USB network |
Keyboard | N/A | |
Screen | Yes | |
3D Acceleration | Yes | PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |
Touchscreen | Yes | Capacitive |
Audio | Yes | Switch around in alsamixer to get the right outputs working ('Speaker Right' set to 'HiFi' and 'HiFi' set to above 0 gets you output) |
2G/3G data | Yes | Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |
4G data | No | Needs kernel work |
SMS | Yes | Works with ofono. Needs Leste UI |
Phone calls | WIP | Untested |
Bluetooth | Yes | Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded |
FM Transmitter | No | Apparently exists, and will need serdev kernel modules/drivers |
FM Receiver | No | |
Accelerometer | Yes | |
Compass | Yes | Available in /sys (after loading ak8975 module. No Leste integration) |
Gyro | No | needs kernel work |
Proximity sensor | Yes | |
Ambient Light Sensor | Yes | |
Vibration Motor | Yes | |
HDMI-out | Yes | No UI integration |
TV-out | N/A | |
GPS | Yes | Works with gpsd but is not integrated yet, see GPS |
Infrared | N/A | Missing in hardware |
Camera | No | |
Idle power consumption | ~70mW |
Installation
Hardware requirements:
- Droid Bionic with fully charged battery
- MicroUSB cable
- MicroSD card
Software requirements:
- Host Linux system
- Android Tools: fastboot adb
- Flashing tools:
- XZ Utils and coreutils for Linux
- Etcher[1] for Windows
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
- Latest maemo-leste-1.0-armhf-bionic-*.img.xz
Download from https://github.com/tmlind/droid4-kexecboot.git
- droid4-kexecboot.img
Download or clone https://github.com/IMbackK/bionic-clown-boot
Follow the instructions in bionic-clown-boot's readme to install kexecboot on your device.
Now, flash the Maemo Leste image to your sdcard:
On Linux:
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE sync
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.
Updating
Normaly you can just apt update && apt dist-upgrade to update to the latest version. I for some reason this fails:
- Poweroff device, grab the SD card
- Backup any important files
- Grab latest image from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/
- Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE
Notes
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices. Blacklisting the module may help if you have such problems:
echo "blacklist hci_uart" >> /etc/modprobe.d/blacklist.conf
Also see Motorola_Droid_4/Modem Motorola_Droid_4/PowerVR
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/
Serial Cable
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/
Unlocking the modem for usage in Europe
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.
apt install build-essential git clone https://github.com/tmlind/tcmdrw cd tcmdrw make ./tcmdrw 1877=8703E80400000200 ./tcmdrw 6850=05
Tony also writes:
22:34 < tmlind> hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak 22:43 < tmlind> Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us
Stuff to try
Make Audio Automaticaly set up (Temporary Solution)
Adding this in /etc/rc.local above the exit 0 to make audio work from boot.
amixer cset numid=22 HiFi #set left speaker to HiFi amixer cset numid=21 HiFi #set right speaker to HiFi amixer cset numid=26 HiFi #set left headset to HiFi amixer cset numid=25 HiFi #set right headset to HiFi amixer cset numid=1 50% #set HiFi volumes to 50%
Wifi
The WL1271 Wifi chip in the Bionic has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.
Install necessary tools:
apt-get install ti-utils-wilink6 droid4-wlanconfig
Run calibration:
sudo maserati-calibrate
3G Internet
22:12 < pave1> qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz 22:12 < pave1> route del default 22:12 < pave1> sudo ifconfig wwan0 up 22:12 < pave1> dhclient wwan0
GPS
modprobe gnss-motmdm and point gpsd to use /dev/gnss0
22:30 < tmlind> hmm there's a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)
Can try to
mkfifo /tmp/gps cat /dev/gnss0 > /tmp/gps Then point gpsd to use /tmp/gps
USSD
22:45 < tmlind> fyi, here's how to send USSD to query balance for example: printf "AT+CUSD=1,#999#,0\r" > /dev/motmdm1 22:47 < tmlind> fyi, for parsing incoming USSD, this web interface works if set to utf-8: https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output