Awesome, looking forward to trying it out. I’m getting a 403 for that link though
Try again. Good 'ol SELinux at it again
Haha working now, thx
Way more responsive now! Looking good
Been lurking for a while as things get more stable. Is the current effort on this thread just pmOS, or Android 11? There were some 11 rom images floating around, but most recent discussion seems focused on pmOS. Specifically looking for the voice assistant functionality that I saw on a video posted a while back.
Thanks for all the amazing work on this device!
Parallel efforts - this thread is mainly focused on pmOS. I have one running Android 11 and now thanks to Felix a second running pmOS.
The Android efforts are currently gaming focused and active over in the Retro Handhelds discord server, with deadman providing most of the images and updates. I’m using it to run Fully Kiosk for HA and once it’s up it’s great with motion detection working to turn the screen back on. The downside is something’s still up with the wifi driver and it often panics and restarts at boot so it takes a few tries to get it back up. Android 8.1 is still the more stable and recommended path there (with it’s own caveats). You can also use the snowboy wakeword plugin with tasker or automate that Endlessvoid put together.
pmOS just became way more viable so curious to see what we’re able to do with that. Also maybe a longshot but I’m hoping we could make use of the arm64 kernel with Android and update past 11 at some point as well. The Android kernel is still 3.18 and 32-bit.
My main motivation behind pushing forward with pmOS is that I assume it is going to stay viable for longer than Android on this device. This is mainly due to the fact that we can build the entire OS from source using a mainline kernel that will continue receiving updates. As of right now there are only 4 components that need a binary blob to function: Bluetooth, GPU, Speaker Amp and WiFi. And those blobs are OS independent. The speaker amp binary blob is technically not even firmware (as it isn’t software) but rather DSP configuration values (EQs and stuff) very specific to this device.
Porting the OS is certainly only one part. Creating a user experience to make this device worthwhile with Home Assistant would be the next step we’d need to tackle. I’m hoping there may be a larger community that we can rally around that effort, because it would be adaptable to other devices than just the ThinkSmart View.
Now… If I could only get those dang Digital Microphones working
I just tried this latest image and I’m getting a blank display. This is the dmesg output: Pastefy
Thanks for posting the dmesg. It does look like you have the other display variant and the other panel driver is being loaded. May have to look into those GPIOs again. I’ll put together another kernel tonight for testing.
Thanks! If there’s anything I can do to test a build or help you out, let me know.
Agree. Excited to be a part of that effort.
Theres been so many cool ideas posted that can potentially see the light of day now, thanks to @FelixKa.
Once the Linux image is booting successfully on all the display variants I’ll put a big link to this thread at the top of my original post.
Pmos page on Firefox mentions trying ESR because it still supports the ‘old’ accelerated rendering.
Maybe that could work around the adreno bug you referenced, if it’s GLES 3 related.
There is, actually.
Can you do the following on your device, via SSH:
If not yet connected to WiFi do the following:
$ nmcli d wifi connect YOUR_SSID password YOUR_WIFI_PASSWORD
then:
$ sudo apk add libgpiod
$ sudo gpioset --mode=wait 0 95=1 100=1
And tell me if there is any sort of reaction from your display to that. I don’t expect it to initialize, but maybe the backlight will come on.
GPIO95 is supposed to be backlight enable, GPIO100 is supposed to be display external VDD power enable.
Hit Enter to exit gpioset
after testing.
In order to test to see if the backlight is turning on, I turned off the light in my room and I observed that my screen is running at something like 1% brightness. I couldn’t actually tell the difference between off and what it shows without a pitch black room. I can see a clock but don’t seem to be able to interact with anything.
However, I observed no change from the gpioset command.
Thanks for testing.
I have built a kernel that should enable GPIOs 95 and 100 together with the display, so hopefully we get a full initialization and backlight.
I believe it can be installed like this:
$ wget https://felix.kaechele.ca/projects/thinksmart/linux-lenovo-cd-18781y-6.7.5_p20240228220822-r0.apk
$ apk add linux-lenovo-cd-18781y-6.7.5_p20240228220822-r0.apk
$ reboot
On another note: I sent the patch for the WiFi driver upstream. Let’s see if it will get accepted
I did those commands, got no errors, and the screen is still dim. If there’s anything further I can do, let me know.
Let’s see if the new kernel actually did something.
GPIO 95 should be output active-high
and GPIO 100 should now have a function name assigned:
$ sudo gpioinfo
[...]
line 95: unnamed unused output active-high
[...]
line 100: unnamed "panel-vdd-regulator" output active-high [used]
[...]
Also, what is your output for this?
$ sudo gpioget 0 95
$ sudo gpioget 0 100
I’d expect it to either be 1
or gpioget: error reading GPIO values: Resource busy
.
We can also check whether we can set screen brightness:
$ sudo su -
# cd /sys/class/backlight/backlight
# cat max_brightness > brightness
That should set the screen to maximum brightness. If that works then it means we at least should have backlight working, just need to figure out how to make it come up at a sensible value out of the box.
If that doesn’t work I’ll have to dig a bit deeper into the original device tree configuration to look at other options.
gpioinfo
lenovo-cd-18781y:~$ sudo gpioinfo | grep -E "(100|95)"
line 95: unnamed "backlight" output active-high [used]
line 100: unnamed "panel-vdd-regulator" output active-high [used]
gpiogets:
lenovo-cd-18781y:~$ sudo gpioget 0 95
gpioget: error reading GPIO values: Resource busy
lenovo-cd-18781y:~$ sudo gpioget 0 100
gpioget: error reading GPIO values: Resource busy
I got no change from the brightness setting that I can see on my screen.
Thanks for testing! I will check a few more things that I think could be the issue. But it’ll have to wait until tomorrow.
Here are two more kernels to try:
Testing changes to the WLED setup:
https://felix.kaechele.ca/projects/thinksmart/linux-lenovo-cd-18781y-6.7.5_p20240229215516-r0-wled.apk
Testing WLED + Panel VDD/Backlight GPIOs:
https://felix.kaechele.ca/projects/thinksmart/linux-lenovo-cd-18781y-6.7.5_p20240229220153-r0-gpio.apk
Thanks!
The top one seems to have brightened up my screen: https://felix.kaechele.ca/projects/thinksmart/linux-lenovo-cd-18781y-6.7.5_p20240229215516-r0-wled.apk
Great work! Thank you so much!
The “slide to unlock” text is half-off the bottom of the screen and I don’t seem to actually be able to slide to unlock, however. Is this expected? Should I be using keyboard/mouse?
I’m a bit new to PMOS here.
Edit: Dmesg output: Pastefy