M9Plus 4k TV Box - An Exercise in Futility?
My apologies for the verbosity of this post.
I have an Android box marked M9 Plus 4k on the top. It was given to me, as a gift. There are no other markings on the box, and the user manual that came with it is all but useless. There is no web site listed, and no way to find out who made the thing. Tech specs are listed below.
After playing with the Android and a bunch of apps from Google, for about 3 months, I finally got around to doing the sensible thing, and switched it over to Linux. Specifically LibreELEC.
The only issue was the dtb.img file for the 1G Ethernet did not work properly, and I was forced to use the 100M version. This is a non issue. The LAN is working.
My USB media drive is attached directly to the box, and I have both SSH and SMB access from my desktop computer. (Xubuntu Bionic Beaver.)
So, a few weeks ago, I decided to retire my aging Seagate Dock Drive, which is running OpenWRT Linux. (Yes, I still use a Dock Drive!) It's main function is an auto backup device, using rsync, and it does the job. Not without some limitations.
I bumped up my media drive to a 3TB, with two partitions. 1 TB for my media, and 2 TB for my desktop and notebook backups. Everything was right with the device, almost.
LibreELEC is a very good operating system if all you want to do is convert your TV box from Android to Linux, and run Kodi. That is what it is designed for, and it does it very well.
However, as soon as I started to modify it to do other things, I ran into some issues. Most of it aggravating little things, which continually needed tweaking. The most common, of course, was that dependencies for the added packages were woefully out of date, or just not there.
I know that there is an Arm version of Ubuntu available, so I used DuckDuckGo to find "Arm S905 Ubuntu Linux", and it led me to this site! Wow!
If I understood it right, I could have Bionic Beaver on my TV box! (Maybe.) So I registered in the Forums, and spent an hour or two every day reading. After about a week of research, I was ready to spend a Saturday morning installing a current version of Ubuntu on my box. What could go wrong?
After experimenting with several dtb files, I found one that would take me through the boot process. I settled on the meson-gxbb-p200.dtb file, as it seemed the closest to my LibreELEC dtb.img.
So, here are the two main issues.
Video.
Neither the current Ubuntu, nor the Debian image, would sync properly with my LG 55" 4K television. Repeated boot attempts resulted in various video errors, ranging from no signal, to to 2160p that flickered in and out.
I eventually found an older image, that had an hdmi.sh file included in the boot.
That allowed me to force 1080p or 720p on my screen. I now had a stable screen, that I could read, (mostly.) The over scan on it made it impossible to see the command line. Even with the TV zoom feature at minimum, in 720p, I was still about 6 rows of text below the bottom of the screen.
Login and change password.
Even with the bad over scan, I can initiate the login for the older file. It's not the first time I have had to deal with this type of issue. All that is needed is to blind type "root", enter, "1234", enter. I was now logged in.
Next, because the first log in requires a change of password, I typed in "1234" again, then my new password, twice. I should now be at the command line in terminal, and a few carriage returns to bring the resulting text into view will verify that. Not going to happen.
The dreaded "authentication token manipulation error" appeared, and the subsequent CR's resulted in me being logged out, and now it was a guess as to where I was on the login screen.
It seems that the system was mounted in Read Only mode, and that even as root, it would not allow me to write the new password to the disk.
So, if you are still with me, here are the three questions I need answered.
1. Is there a way to modify the boot files on the SD card before the install boot, to force the system into a stable 1080p or 720p mode, preferably with a setting to reduce the over scan?
2. On the first boot to login, how do I get the system to mount in RW mode so it will accept my change in password?
3. Am I flogging a dead horse?
Cheers!
Naught.
-----------------------------------------------------------------------------------
Here are the images I have tried:
Armbian_5.67_Aml-s9xxx_Ubuntu_bionic_default_4.19.2_desktop_20181203.img
Armbian_5.67_Aml-s9xxx_Debian_stretch_default_4.19.6_desktop_20181207.img
Armbian_5.34_S9xxx_Ubuntu_xenial_4.9.40_mate_20171112.img (Worked with over scan.)
Here are the dtb.img files I have tried:
meson-gxbb-p200.dtb
gxbb_p200.dtb (Borrowed from ArchLinux image.)
gxbb_p200_2G_100M.dtb (Borrowed from working LibreELEC image.)
The Micro SD drive is a Lexar 300 C10 32GB HC1.
It has been tested and functions perfectly with LibreELEC
-----------------------------------------------------------------------------------
According to the (sparse) documentation that came with the box, here are the specs:
CPU Amlogic S905 Quad core Cortex A53 2.0GHz 64bit
GPU Penta-Core ARM Mali-450,comply with OpenGL ES 1.1/2.0 and OpenVG 1.1
RAM 2GB DDR3
ROM 16GB EMMC
Support MicroSD(TF) ,Up to 32GB
Wifi 802.11 b/g/n 2.4GHZ/5.8GHZ AP6330
Ethernet 10/100/1000M
-----------------------------------------------------------------------------------
The Android app "Hardware Info 4.2.6" gives me a little more detailed information:
AMLOGIC M9 PLUS
SYSTEM (Android 5.1.1)
Model: M9 PLUS
Manufacturer: amlogic
Device: p6330
Product: p6330
Brand: Android
Android Version: 5.1.1 (Lollipop)
API Level: 22
Build ID: LMY47V
Fingerprint: Android/p6330/p6330:5.1.1/LMY47V/20160224:userdebug/test-keys
DISPLAY (1920x1080)
Size: 1920x1080
Refresh Rate: 60 Hz
Default Orientation: Landscape
Physical Size: 13.77" (34.97 cm)
Logical Size: Large
Density: 240 dpi (High)
Pixels Per Inch: X: 159.9; Y: 160.42
PROCESSOR (AArch64)
Processor: AArch64 Processor rev 4 (aarch64)
Cores: 4
Max Frequency: 2016 MHz
Instruction Sets: armeabi-v7a, armeabi
SIMD Instructions: NEON
MEMORY (1811 MB)
System RAM: 1811 MB
JVM Max Memory: 192 MB
Internal Storage: 11770 MB
External Storage: 11770 MB (Emulated)
OPENGL 1.1 (Mali-450 MP)
GENERAL
Renderer: Mali-450 MP
Version: OpenGL ES-CM 1.1
Vendor: ARM
LIMITS
Texture Size: 4096x4096
Texture Units: 8
Viewport Size: 4096x4096
Modelview Stack Depth: 32
Projection Stack Depth: 32
Texture Stack Depth: 32
Lights: 8