It's been a while since our fourth update and there's quite some stuff to talk about!
Don't forget that we have a mailing list - mailing list. Be sure to subscribe for updates, questions and development. The mailing list archives are now also functional: https://lists.dyne.org/lurker/mindex/maemo-leste@19700101.000000.00000000.en.html
There have been lots of changes all over the place, below follows an attempt to highlight some of those changes.
issue #83 is now fixed and the lock screen now works properly on boot, without requiring parallel boot to be enabled (in fact, parallel boot is still buggy, so don't enable it).
Spinal84 fixed scrolling in osso-xterm, which is a really welcome addition.
Maemo Leste uses the Linux gadget configfs to configure USB gadgets. The userspace library used to interface with the kernel configfs is libusbgx.
The new hildon-usb-gadgets package uses libusbgx to implement two simple gadgets: a network gadget and a mass storage gadget. The mass storage gadget needs significantly more work, so it's mostly a stub right now.
This is complemented by the initial udev-enabled (previous versions relied on the now deprecated hal) version of ke-recv, which received kernel events regarding usb cable plugging and managed the gadget mode of the phone. The branch "nextgen-usbhack" contains the udev work and hildon-usb-gadgets integration.
The same udev code was used to bring up hildon-status-bar-usb, the lengthy path to getting this to work is documented in issue #39
The result of this work can be seen here:
By default, ke-recv will always enter "PC Suite" mode for now, which really just means that any device that is capable of usb peripherals will have usb networking set up to ease debugging. The device will assign itself the static IP 192.168.42.2, so something like this on the host device should bring up communication: ifconfig usb0 up 192.168.42.1.
More information on usb networking can be found on this page: https://leste.maemo.org/Status/USB_Peripheral
This currently works on the Nokia N900, Motorola Droid 4, and Allwinner devices (like the LIME2 and A33 Twister Tablet).
To be able to detect whether a device is connected to a PC or just a "wall charger", we have to rely on musb (and other similar drivers). Unfortunately, musb will only expose this state if a gadget is loaded. As a result, a usb gadget is always loaded, even when it's not in use.
The ke-recv and hildon-status-bar-usb code still requires some significant refactoring - they both share the same udev code, but right now this code is just duplicated amongst the two projects. The hildon-usb-gadgets repository could also see some more love - both in terms of the descriptors of the gadgets and the actual code. So if you know some C - this might be a fun project to pick up!
It turns out that some control over the RGB led on the N900 already works using mce.
Simply running the following command:
echo 0 > /sys/class/power_supply/bq24150a-0/stat_pin_enable
Will disable the LED override when the N900 is being charged, and then this dbus command will show the communication LED pattern:
dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_led_pattern_activate string:"PatternCommunicationIM"
This command will disable the pattern:
dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_led_pattern_deactivate string:"PatternCommunicationIM"
In fact, other Maemo.org examples also work on Leste already, like this message dialog created using dbus and Python:
import dbus bus = dbus.SessionBus() proxy = bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications') interface = dbus.Interface(proxy,dbus_interface='org.freedesktop.Notifications') interface.Notify('Notification', 0, 'control_bluetooth_paired', 'Testing 123', 'Hello World', [], {}, 0)
Results in:
There is now a first image available for the A33 Twister tablet. The image features working usb gadget/otg, battery, charging, touchscreen and (unstable) wireless. Currently, backlight is not working, so the screen is not very bright, and there is no 3D acceleration yet, and also no accelerated video decoding yet.
On the 3D front, we have managed to run the open source 3D driver on the LIME2 (which will also work for other devices with Mali GPUs), the mesa gears demo program works:
However, the driver is not yet able to run the Hildon desktop UI - the kernel hangs.
The source code for this driver can be found here:
The lima driver is currently enabled in our LIME2 and A33 Twister tablet kernel (4.18 based):
However, the userland required to actually run any 3D demos is lacking, since it requires a newer mesa (and other supporting packages), which are not currently available in Devuan ascii.
The LIME2 images expect a 4.3 inch touchscreen to be connected, but should also work over HDMI. hildon-home doesn't look so bad at 480x272px, does it?
One of the advantages of being really close to Maemo Fremantle is that a lot of the existing Maemo applications require minimal work to run on Maemo Leste. Out of curiousity, we imported the wifi signal applet (issue #185). The maemo.org extras page for the package is here: http://maemo.org/packages/view/wifi-signal-applet/
With minimal changes (https://github.com/maemo-leste/wifi-signal-applet) compiled and just works:
This package is now available in our main repository, as wifi-signal-applet.
Going forward, we should probably have a separate repository (or repository component) for non-essential packages like the wifi-signal-applet. We'll have to set up in a such a way that it easy for others to also submit and build packages. Feedback is welcome in ticket #194
freemangordon has started the immense task of porting the Maemo style and widgets to Qt5, which is one of the last remaining big items for our N900 alpha image:
This screenshot shows Qt5 in action on Maemo Leste:
In the process, he also ported several mafw components to gstreamer 1.0 and packaged them for Leste:
Once these components are in place, we could even look at porting Open Media Player from Fremantle!
Packages from Maemo Fremantle that rely on Qt 4.x will likely need to be ported to Qt 5 before they will run on Maemo Leste.
spinal84 has been working on adding documentation to various repositories and he has also been working on generating the required doxygen documentation for various projects:
parazyd has built new images for all the currently supported devices:
We have not been able to test all of them, so please do, and let us know if something is broken!
We're slowly but steadily moving forward and we seem to be attracting more developers - which is fantastic news. Hopefully once we reach an Alpha state for the Nokia N900, we will be able to reach out to more developers and get even more people on board.
Three of us got together at OpenFest 2018 in Sofia, Bulgaria. We also held a presentation at OpenFest, the official videos will be made available later, but the slides for the presentation can be downloaded here: https://maedevu.maemo.org/media/openfest-2018-maemo-leste.pdf
Someone from the community has additionally also recorded the talk (thanks for that), and you can find the recording here: http://talk.maemo.org/showpost.php?p=1550095&postcount=152
We've submitted a proposal for a talk about Maemo Leste at FOSDEM; we hope that it will be accepted. Additionally, we've submitted a request for a stand at FOSDEM, together with the people from postmarketOS!
Pine64 has announced that they are going to produce an Allwinner tablet and an Allwinner phone. They are planning to provide details before or at FOSDEM 2019 [1] [2]. An Allwinner phone will hopefully be quite well supported by mainline, since most of the components have drivers in mainline now - perhaps even the Lima driver will be usable on time.
We have reached out to Pine64, and they have kindly agreed to send development kits our way!
[1] | https://itsfoss.com/pinebook-kde-smartphone/ |
[2] | https://www.notebookcheck.net/Pine64-maker-of-cheap-Linux-laptops-may-be-making-a-cheap-Linux-phone.346011.0.html |
Most of our attention has been focussed on reaching the Alpha release and we're down to 4 issues before we reach the alpha milestone.
Two issues pertain to reboot/poweroff not functioning as it should, one is for Qt5 and one for the final pieces of the virtual keyboard - monitoring the slide state of the keyboard (open or closed).
Some time was also spent on working on the (upcoming!) Nexus 5 port, which isn't quite functional, as you can see:
There is a work in progress status page on our wiki: https://leste.maemo.org/Nexus_5
If you're interested in specifics, or helping out, or wish to have a specific package ported, please see our bugtracker.
Please also join our mailing list to stay up to date, ask questions and/or help out. Another great way to get in touch is to join the IRC channel.
If you like our work and want to see it continue, join us!