Difference between revisions of "Xiaomi Redmi 1S (xiaomi-armani)"

From postmarketOS
Jump to: navigation, search
(What does not work: Sound: driver requires probe deferral)
m (chipset)
 
(11 intermediate revisions by 5 users not shown)
Line 2: Line 2:
 
| manufacturer = Xiaomi
 
| manufacturer = Xiaomi
 
| name =  Redmi 1S
 
| name =  Redmi 1S
| codename = armani
+
| codename = xiaomi-armani
 
| image = File:Armani.jpg
 
| image = File:Armani.jpg
 
| imagecaption = PostmarketOS running on Xiaomi Redmi 1S
 
| imagecaption = PostmarketOS running on Xiaomi Redmi 1S
 
| releaseyear = 2014
 
| releaseyear = 2014
 
| originalsoftware = MIUI 6.0 (based on Android 4.3)
 
| originalsoftware = MIUI 6.0 (based on Android 4.3)
| chipset = Qualcomm MSM8226
+
| chipset = Qualcomm MSM8228 Snapdragon 400
 
| cpu = Quad-core Snapdragon 400 1.6 GHz
 
| cpu = Quad-core Snapdragon 400 1.6 GHz
 
| gpu = Adreno 305
 
| gpu = Adreno 305
Line 13: Line 13:
 
| display = WLED, 720x1280
 
| display = WLED, 720x1280
 
| memory = 1GB
 
| memory = 1GB
 +
| architecture = armhf
 +
| status_usbnet = Y
 +
| status_flashing = Y
 +
| status_touch = Y
 +
| status_screen = Y
 +
| status_wifi = Y
 +
| status_xwayland = Y
 +
| status_fde =
 +
| status_mainline =
 +
| status_battery =
 +
| status_3d =
 +
| status_accel =
 +
| status_audio =
 +
| status_bluetooth =
 +
| status_camera =
 +
| status_gps =
 +
| status_mobiledata =
 +
| status_sms =
 +
| status_calls =
 +
| booting = yes
 
}}
 
}}
  
Line 20: Line 40:
 
== What works ==
 
== What works ==
 
* USB ethernet
 
* USB ethernet
* Flashing, via android-recovery-zip (twrp)
+
* Flashing, via android-recovery-zip (twrp) and pmbootstrap flasher
 
* Touchscreen (ft5x06_i2c)
 
* Touchscreen (ft5x06_i2c)
 
* Screen: framebuffer (/dev/fb0), backlight & brigtness control (/sys/class/leds/wled:backlight/brightness)
 
* Screen: framebuffer (/dev/fb0), backlight & brigtness control (/sys/class/leds/wled:backlight/brightness)
Line 30: Line 50:
  
 
== What does not work ==
 
== What does not work ==
* Screen: framebuffer console (no kernel boot log printed on the display)
+
 
 +
* Screen: framebuffer console (no kernel boot log printed on the display), directfb applications (osk-sdl and charging-sdl)
 
* Wifi: rfkill (no support for blocking wireless via rfkill block wifi or nmcli radio wifi off). The only way to block wireless is unloading wlan module (``rmmod wlan`` or ``/etc/init.d/wlanarmani stop``)
 
* Wifi: rfkill (no support for blocking wireless via rfkill block wifi or nmcli radio wifi off). The only way to block wireless is unloading wlan module (``rmmod wlan`` or ``/etc/init.d/wlanarmani stop``)
* Sound: msm8226-asoc-tapan can't be built into kernel directly, since the module requests probe deferral.
+
* Sound: don't know how to initialize the sound card
: Here is part of kernel log with msm8226-asoc-tapan built directly into the kernel.
+
 
<pre>
 
[    2.116756] msm8226-asoc-tapan sound-9302.43: Property 'qcom,audio-routing' does not exist or its length is not even
 
[    2.116772] msm8226-asoc-tapan: probe of sound-9302.43 failed with error -22
 
[    2.136644] platform sound.42: Driver msm8226-asoc-tapan requests probe deferral
 
</pre>
 
: Will investigate it later.
 
 
* Other hardware features are untested (3D, bluetooth, modem, gps, accelerometer)
 
* Other hardware features are untested (3D, bluetooth, modem, gps, accelerometer)
 
* Xorg based UI: postmarketos-ui-xfce4 displays nothing on the screen.
 
* Xorg based UI: postmarketos-ui-xfce4 displays nothing on the screen.
Line 48: Line 63:
  
 
== Installation ==
 
== Installation ==
 +
 +
=== pmbootstrap flasher method ===
 +
 +
* Put the device into fastboot mode by holding both VolumeKeyDown + Power buttons or rebooting into bootloader from the twrp reboot menu.
 +
* Connect the device to the computer via usb cable
 +
* Bootstrap PostmarketOS
 +
::<code>$ pmbootstrap init #select xiaomi-armani</code>
 +
::<code>$ pmbootstrap install</code>
 +
* Flash the kernel and system
 +
::<code>$ pmbootstrap flasher flash_kernel</code>
 +
::<code>$ pmbootstrap flasher flash_rootfs</code>
 +
* Reboot the device
 +
::<code>$ fastboot reboot</code>
 +
 +
=== Android recovery.zip sideload method ===
 +
 
* Put the device into TWRP recovery, either by booting twrp image via fastboot directly or by pressing VolumeKeyUp + Power button after flashing TWRP recovery image.
 
* Put the device into TWRP recovery, either by booting twrp image via fastboot directly or by pressing VolumeKeyUp + Power button after flashing TWRP recovery image.
 
* Connect the device to the computer via usb cable
 
* Connect the device to the computer via usb cable
Line 54: Line 85:
 
:<code>$ pmbootstrap init #select xiaomi-armani</code>
 
:<code>$ pmbootstrap init #select xiaomi-armani</code>
  
:* Optional: build the device specific packages. Actually, there is no need to build the device specific packages since they are available on PostmarketOS repository.
+
:<code>$ pmbootstrap install --android-recovery-zip</code>
 
 
::<code>$ pmbootstrap build -i device-xiaomi-armani</code>
 
 
 
::<code>$ pmbootstrap build -i firmware-xiaomi-armani</code>
 
 
 
::<code>$ pmbootstrap build linux-xiaomi-armani</code>
 
 
 
:<code>$ pmbootstrap install --no-fde --android-recovery-zip</code>
 
  
 
:<code>$ pmbootstrap export # generate symlinks inside /tmp/postmarketOS-export directory</code>
 
:<code>$ pmbootstrap export # generate symlinks inside /tmp/postmarketOS-export directory</code>
Line 90: Line 113:
  
 
Battery state can be monitored. Refer to [[Battery capacity monitoring]] for more information.
 
Battery state can be monitored. Refer to [[Battery capacity monitoring]] for more information.
 +
 +
== Hardware enablement effort ==
 +
 +
* Framebuffer: directfb based applications don't work (osk-sdl and charging sdl)
 +
* Sound: unable to initialize the sound card on PmOS
  
 
== See also ==
 
== See also ==

Latest revision as of 18:54, 28 August 2019

Xiaomi Redmi 1S
PostmarketOS running on Xiaomi Redmi 1S
PostmarketOS running on Xiaomi Redmi 1S
Manufacturer Xiaomi
Name Redmi 1S
Codename xiaomi-armani
Released 2014
Original software MIUI 6.0 (based on Android 4.3)
Hardware
Chipset Qualcomm MSM8228 Snapdragon 400
CPU Quad-core Snapdragon 400 1.6 GHz
GPU Adreno 305
Display WLED, 720x1280
Storage 8GB EMMC, external micro-sd slot
Memory 1GB
Architecture armhf
Features
USB Networking
Works
Flashing
Works
Touchscreen
Works
Display
Works
WiFi
Works
Xwayland
Works
FDE
Mainline
Battery
3D Acceleration
Accelerometer
Audio
Bluetooth
Camera
GPS
Mobile data
SMS
Calls
USB OTG



Contributors

  • alive4ever

What works

  • USB ethernet
  • Flashing, via android-recovery-zip (twrp) and pmbootstrap flasher
  • Touchscreen (ft5x06_i2c)
  • Screen: framebuffer (/dev/fb0), backlight & brigtness control (/sys/class/leds/wled:backlight/brightness)
  • Notification leds (/sys/class/leds/red/brigtness, /sys/class/leds/green/brightness, /sys/class/leds/blue/brightness)
  • Wifi: via wcnss-wlan and wlanarmani service (which does modprobe wlan on system boot after wcnss-wlan service has been initialized)
  • Xwayland
  • Battery: charging status (/sys/class/power_supply/battery/status), capacity reporting (/sys/class/power_supply/battery/capacity)
  • Buttons: KEY_POWER, KEY_VOLUMEUP, and KEY_VOLUMEDOWN (triggerhappy can be used to handle them, see Troubleshooting:HID_buttons)

What does not work

  • Screen: framebuffer console (no kernel boot log printed on the display), directfb applications (osk-sdl and charging-sdl)
  • Wifi: rfkill (no support for blocking wireless via rfkill block wifi or nmcli radio wifi off). The only way to block wireless is unloading wlan module (``rmmod wlan`` or ``/etc/init.d/wlanarmani stop``)
  • Sound: don't know how to initialize the sound card
  • Other hardware features are untested (3D, bluetooth, modem, gps, accelerometer)
  • Xorg based UI: postmarketos-ui-xfce4 displays nothing on the screen.

How to enter flash mode

  • Entering fastboot: hold VolumeKeyDown + Power buttons until fastboot mode displayed on the screen.
  • Entering recovery: hold VolumeKeyUp + Power buttons. The default is Mi Recovery. TWRP is needed for installation, which can be obtained here

Installation

pmbootstrap flasher method

  • Put the device into fastboot mode by holding both VolumeKeyDown + Power buttons or rebooting into bootloader from the twrp reboot menu.
  • Connect the device to the computer via usb cable
  • Bootstrap PostmarketOS
$ pmbootstrap init #select xiaomi-armani
$ pmbootstrap install
  • Flash the kernel and system
$ pmbootstrap flasher flash_kernel
$ pmbootstrap flasher flash_rootfs
  • Reboot the device
$ fastboot reboot

Android recovery.zip sideload method

  • Put the device into TWRP recovery, either by booting twrp image via fastboot directly or by pressing VolumeKeyUp + Power button after flashing TWRP recovery image.
  • Connect the device to the computer via usb cable
  • Bootstrap PostmarketOS
$ pmbootstrap init #select xiaomi-armani
$ pmbootstrap install --android-recovery-zip
$ pmbootstrap export # generate symlinks inside /tmp/postmarketOS-export directory
  • Put the twrp recovery into sideload mode
$ adb shell "twrp sideload"
  • Start sideloading the recovery file
$ adb sideload /tmp/postmarketOS-export/pmos-xiaomi-armani.zip
  • Reboot the device
$ adb reboot

Additional info

It's necessary to unplug the usb cable after issuing ``poweroff`` command to properly shut down PostmarketOS.

Don't leave screen on for a long time, otherwise there will be LED burn-in. If the display screen is not used, turn the screen off.

$ echo 0 | sudo tee "/sys/class/leds/wled:backlight/brightness"

The screen can be turned on with maximum value up to 4095

$ echo 3072 | sudo tee "/sys/class/leds/wled:backlight/brightness"

Battery state can be monitored. Refer to Battery capacity monitoring for more information.

Hardware enablement effort

  • Framebuffer: directfb based applications don't work (osk-sdl and charging sdl)
  • Sound: unable to initialize the sound card on PmOS

See also

  • #1204 Initial pull request