Tuesday 18 September 2012

Rikomagic MK802 II as Smart TV

Hardware


  • Rikomagic MK802 II ~75€
  • Microsoft VX 800 ~12€
  • USB Audio Adapter ~5€
  • USB Hub (Powered via power supply) ~7€
  • Wireless Keyboard (e.g. Logitech K400) ~25€

Software

Android settings

  • Animation 0.5x
  • Force GPU
  • Choose Null Keyboard as Input method
  • Change language to the preferred one
  • Set video to 720p@60Hz (1080p works, but it is too much for the hardware)

Todo

  • USB AUDIO Card Status
    • Works, I need to check if output device is set back to AUDIO_CODEC in Skype or Google Talk
  • Webcam Video Status
    • Video works on most apps
    • Device is properly detected by the kernel as UVC compliant camera
    • Skype/Google Hangout: it doesn't handle the output video stream correclty, so when video calling the receiver will have a greenish video
      • Can be related to sync frequency of webcam (50 or 60Hz), or endianess of library
  • Webcam Audio Status
    • CONNECT THE WEBCAM AFTER BOOTING UP
      • Developers hardcoded some changes in their messy way to handle audio: if you change the order/numbering of device some stuff will not work
    • Device is properly detected by the kernel as UVC compliant camera, exposing an additional audio card interface having a single capture endpoint
    • Seems MK802 II firmware is using alsa in the stack, but no asoundrc/alsa.conf file is used
    • [UPDATE] In 121020 firmware, 2 system properties appeared:
      • audio.input.active (AUDIO_CODEC, AUDIO_HDMI, AUDIO_SPDIF)
      • audio.output.active (AUDIO_CODEC, AUDIO_USB#)
    • [UPDATE] In 121020 firmware, the system setting audio_output_channel drives the output device
    • [UPDATE] In 121020 firmware, connecting an USB Audio card we obtain a pop up notifying the audio input and output can be changed
    • [UPDATE] In 121020 firmware, if an application needs audio recording capabilities (like Skype, Google Hangout, Google Talk in Voice chat), audio.output.active is set to AUDIO_CODEC (and no more AUDIO_HDMI)
      • Temporary workaround before automatizing it: go to Audio Settings and set output device back to AUDIO_HDMI
    • I wrote an app to show status of settings before and during a call (Skype or GoogleTalk)...
      • Unfortunately, they are not changing the setting, or at least, there is a setting key called audio_output_channel, which is always set to AUDIO_HDMI
  • Remount /system with RW capabilities
    • Already tried, unsuccessful: mount binary, busybox, adb over wifi, total commander - always "Fail: read only filesystem"
      • Seems some devices (like mine) have a corrupted /system partition, there are 2 solutions:
        • Fix the current image
          • Using a Lubuntu image we can manage to backup, recreate the partition and restore the data
          • Download the Lubuntu image
          • Write the image on the ยตSD (various methods and OSes here)
          • Once MK 802 II boots, you can use miniand as password
          • Backup the data in /system
          • Delete and re-create the partition (you can use GParted or fdisk)
          • Restore the data
        • Update the firmware or reinstall the existing one
  • How to Update to firmware 2012 10 20
  • Keyboard mapping
    • It is still in EN language, but it can be fixed with apps on Google Play, it is a minor issue

Notes

Trying to rebuild from scratch or using CM9 or CM10 repos is possible, but some features will surely break (video acceleration, wifi...). So the way we must follow should be trying to patch as little as possible to enable all the missing features.