Difference between revisions of "Motorola Droid Bionic"
Line 33: | Line 33: | ||
| Charging || Yes || | | Charging || Yes || | ||
|- | |- | ||
| | | USB slave || Yes || OTG and USB network | ||
|- | |||
| USB host (OTG) || No || | |||
|- | |- | ||
| Touchscreen || Yes || Capacitive | | Touchscreen || Yes || Capacitive | ||
Line 70: | Line 72: | ||
|- | |- | ||
| FM Receiver || No || | | FM Receiver || No || | ||
|- | |||
| Nfc || No || no hardware | |||
|- | |- | ||
| Accelerometer || Yes || | | Accelerometer || Yes || |
Revision as of 11:10, 23 May 2021
Status
Feature | Leste supported | Notes |
---|---|---|
Kernel version | 5.10.4 | 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 | |
USB slave | Yes | OTG and USB network |
USB host (OTG) | No | |
Touchscreen | Yes | Capacitive |
Keyboard | N/A | |
Screen | Yes | |
HDMI-out | Yes | No UI integration |
TV-out | N/A | |
3D Acceleration | Yes | PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/ |
Vibration Motor | Yes | |
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) |
Phone calls | WIP | Untested |
SMS | Yes | Works with ofono. Needs Leste UI |
Wifi | Yes | |
Ethernet | N/A | |
IrDA | N/A | Missing in hardware |
2G/3G data | Yes | Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/ |
4G data | No | Needs kernel work |
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 | |
Nfc | No | no hardware |
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 | |
GPS | Yes | Works with gpsd but is not integrated yet, see GPS |
AGPS | No | |
Front Camera | No | |
Back Camera(s) | No | |
Idle power consumption | ~70 mW | Needs sim inserted |
Idle Battery life on new battery | 91.8 h | With HW4X |
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 The Bionic. 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
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