Modular Linux kernel for the Gemini PDA with FOTA5 fixes

Recently the fixes in Planet Computers over the air update found their way into the Gemini Linux kernel sources. Thus the Linux kernel binaries I have shared before are a bit outdated now. So I have decided to build another kernel from the newer kernel sources with the following configuration changes with respect to the previous version:

•Enabled CONFIG_TOUCHSCREEN_MTK_SSL_SSD20XX (touchscreen driver for newer Gemini revisions)
•Added aeon_ssd2092_fhd_dsi_solomon to CONFIG_CUSTOM_KERNEL_LCM (use the touchscreen driver)
•Enabled CONFIG_USER_NS (for lxc and snapd)
•Enabled CONFIG_OVERLAY_FS (for lxc and snapd)
•Enabled CONFIG_SQUASHFS (for lxc and snapd)
•Enabled CONFIG_SQUASHFS_XATTR (for lxc and snapd)
•Enabled CONFIG_SQUASHFS_ZLIB (for lxc and snapd)
•Enabled CONFIG_SQUASHFS_XZ (for lxc and snapd)
•Enabled CONFIG_SQUASHFS_LZO (for lxc and snapd)
•Enabled CONFIG_SQUASHFS_LZ4 (for lxc and snapd)
•Enabled CONFIG_CRYPTO_LZ4HC (for lxc and snapd)

The changes and dependencies result in this kernel configuration: gemini-3.18.41+-config.gz (4135 downloads )

For the build, again the updated kernel source the from https://github.com/gemian/gemini-linux-kernel-3.18 has been used.

Again the kernel modules for the iptables MIRROR target (will not be usable with the default iptables version on the Gemini) and frandom have been added.

Those who do not want to go through the build themselves can download my prebuild kernel from here:

Kernel Image: modules_firmware-gemini-3.18.41+.tar.gz (2685 downloads )
Modules: linux_boot-gemini-3.18.41+.img (334 downloads )

Instructions for flashing the image can be found on: support.planetcom.co.uk. Make sure to use a proper scatter file, in example the one that has been used for the initial flashing. Using the Download only mode of the flash tool is sufficient. Uncheck all partitions but boot (or boot1 or boot2, depending on your boot order). For the boot partition respectively the boot1 or boot2 partition select the downloaded kernel image.

Alternatively you can flash the kernel using dd:

dd if=linux_boot-gemini-3.18.41+.img of=/dev/block/disk/by-partlabel/boot

If Linux is not your primary operating system on the Gemini use boot1 or boot2 instead, depending on your partition layout.

After flashing, copy the modules archive onto your Gemini and extract it in your root directory:

cd /
tar -xzf /path_to/modules_firmware-gemini-3.18.41+.tar.gz

After rebooting the device, it should behave somewhat more stable than it did before.

Regards
Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Another improved modular Linux kernel for the Gemini PDA

The time has come for another modular linux kernel for the Gemini PDA. The linux kernel binaries I have shared before were lacking proper USB pendrive support. Whenever a drive got connected it froze and the device begun behaving strange, in example it has been impossible to open applications afterwards. Furthermore, in the meanwhile the Geminis keyboard ghosting issue got fixed in the updated kernel sources. Thus I have decided to build another kernel with the following changes:

•Enabled modules for more USB devices
•Enabled FB_UDL and DRM_UDL (for displaylink devices)
•Disabled SCSI_MQ_DEFAULT (for getting USB pendrives working again)

The changes and dependencies result in this kernel configuration: gemini-3.18.41+-config.gz (3538 downloads )

For the build, again the updated kernel source the from https://github.com/gemian/gemini-linux-kernel-3.18 has been used.

Again the kernel modules for the iptables MIRROR target (will not be usable with the default iptables version on the Gemini) and frandom have been added.

Those who do not want to go through the build themselves can download my prebuild kernel from here:

Kernel Image: modules_firmware-gemini-3.18.41+.tar.gz (2557 downloads )
Modules: linux_boot-gemini-3.18.41+.img (451 downloads )

Instructions for flashing the image can be found on: support.planetcom.co.uk. Make sure to use a proper scatter file, in example the one that has been used for the initial flashing. Using the Download only mode of the flash tool is sufficient. Uncheck all partitions but linux_boot (or boot if you boot into linux as default). For the linux_boot respectively the boot partition select the downloaded kernel image. With newer scatter files the boot partition names have changed to boot, boot1 and boot2. Select the appropriate  one for your Gemini.

Alternatively you can flash the kernel using dd:

dd if=linux_boot-gemini-3.18.41+.img of=/dev/block/disk/by-partlabel/boot

If Linux is not your primary operating system on the Gemini use boot1 or boot2 instead, depending on your partition layout.

After flashing, copy the modules archive onto your Gemini and extract it in your root directory:

cd /
tar -xzf /path_to/modules_firmware-gemini-3.18.41+.tar.gz

After rebooting the device, USB pendrives and other SCSI like devices like HDDs and DVD drives/burners should work again when attached to the Geminis USB ports.

Regards
Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Improved modular Linux kernel for the Gemini PDA

The linux kernel binary I have shared in the article Modular Linux kernel for the Gemini PDA turned out to lack some important features, like not supporting the ethernet port of the Planet Computers USB hub. Thus a second version of the kernel had to be built.

In addition to the original changes, the following changes to the kernel configuration have been performed:

•Enabled modules for more USB devices
•Disabled CONFIG_MTK_CPU_HOTPLUG_DEBUG_0 (for less pollution in dmesg)
•Disabled CONFIG_MTK_CPU_HOTPLUG_DEBUG_3 (for less pollution in dmesg)
•Enabled  CONFIG_RCU_FAST_NO_HZ (for improved energy efficiency)
•Enabled CONFIG_RCU_BOOST (for better performance)

Originally I intended to also disable CONFIG_MTK_CPU_HOTPLUG_DEBUG_2, but then the build fails with an error regarding a static struct declaration.

The changes result in this kernel configuration: gemini-3.18.41+-config.gz (4021 downloads )

For the build, the updated kernel source the from https://github.com/gemian/gemini-linux-kernel-3.18 with the fix for the Bluetooth vulnerability cve-2017-1000251 has been used.

Again the kernel modules for the iptables MIRROR target (will not be usable with the default iptables version on the Gemini) and frandom have been added.

Those who do not want to go through the build themselves can download my prebuild kernel from here:

Kernel Image: linux_boot-gemini-3.18.41+.img (464 downloads )
Modules: modules_firmware-gemini-3.18.41+.tar.gz (2408 downloads )

Downloads outdated, new version at: Another improved modular Linux kernel for the Gemini PDA

Instructions for flashing the image can be found on: support.planetcom.co.uk. Make sure to use the same scatter file that has been used for the initial flashing. Using the Download only mode of the flash tool is sufficient. Uncheck all partitions but linux_boot (or boot if you boot into linux as default). For the linux_boot respectively the boot partition select the downloaded kernel image. With newer scatter files the boot partition names have changed to boot, boot1 and boot2. Select the appropiate  one for your Gemini.

Alternatively you can flash the kernel using dd:

dd if=linux_boot-gemini-3.18.41+.img of=/dev/block/disk/by-partlabel/boot

If Linux is not your primary operating system on the Gemini use boot1 or boot2 instead, depending on your partition layout.

After flashing, copy the modules archive onto your Gemini and extract it in your root directory:

cd /
tar -xzf /path_to/modules_firmware-gemini-3.18.41+.tar.gz

After rebooting the device some more USB peripherals, including the ethernet port of the Planet Computers hub, should work.

Regards
Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Micro SD card performance with the Gemini PDA

Recently, when writing the article Some first tests with the Gemini PDA, I have noticed the ridiculous slow micro SD card I/O performance with Android. Because of this, later on, I did some further testing with Debian installed on the Gemini. After booting the device, the micro SD card read speed looks good, but after having the device suspended (i.e. closing the lid) the speed drops to about 20 MB/sec, which is consistent with the result of the Android test. So most  probably this also has been after a suspend. To pinpoint the problem a bit more, a more extensive test setup has been carried out.

Test setup

For this performance test the common tool hdparm has been used. On Debian based systems it can be installed from a root shell:

root@gemini:/home/gemini# apt-get install hdparm

Its usage for the test is quite simple:

root@gemini:/home/gemini# hdparm -t /dev/mmcblk1 

/dev/mmcblk1:
 Timing buffered disk reads:  62 MB in  3.05 seconds =  20.34 MB/sec

To make sure that the problem is not limited to the SD card that has been tried out initially, the test has been carried out with four different cards:

•SanDisk Ultra 200GB microSDXC Speicherkarte, Class 10, U1, A1
•Samsung EVO Plus Micro SDXC 128GB, Class 10, U3
•Samsung EVO MicroSDHC 64GB, UHS-I, Grade 1, Class 10
•SanDisk Ultra microSDXC 64GB, UHS-I, Class 10

The four tested cards are being shown in the photo below.

Tested Micro SD cards

Micro SD cards tested with the Gemini, from the left Sandisk Ultra 200GB, Samsung EVO Plus 128GB, Samsung EVO 64GB, Sandisk Ultra 64GB

For each card the read speed has been measured directly after startup and after closing the lid and reopening it. To ensure not to use fake or broken SD cards, all the cards also have been tested using a laptop with Gentoo Linux and a USB 3 card reader (Transcend TS-RDF8K). These speeds then can be compared to the results with the Gemini.

Results

The following table shows the results of the test as well as the “official” speed rating of the cards.

SanDisk Ultra 200GBSamsung EVO Plus 128GBSamsung EVO 64GBSanDisk Ultra 64GB
after boot58.5 MB/s39.0 MB/s34.3 MB/s30.4 MB/s
after resume19.8 MB/s13.1 MB/s19.3 MB/s19.2 MB/s
with PC84.4 MB/s68.3 MB/s44.7 MB/s35.8 MB/s
rated speed100 MB/s100 MB/s48 MB/s30 MB/s

The measured speed of the two older 64GB cards is quite close to the rated speed, but the performance of the two 100MB/sec rated cards is far too low. Especially the results for the 128GB Samsung EVO are catastrophic. With the Gemini these cards operate at 57% respectively 69% of the speed  measured with the laptop. After suspending the Gemini the read speed of all cards drops below 20 MB/sec. The initial higher speed can only be achieved by rebooting the device. The results with the cards inserted into an external card reader attached to a laptop show that the cards generally are in a good working condition.

Conclusion

The test shows, that there is a performance issue with the Gemini PDA and micro SD cards. The higher rated cards operate far below their capabilities. For all the cards, the speed drops below 20 MB/sec after a suspend cycle. Thus, most probably there is a bug inside the Mediatek driver for the SD card reader, that prevents the cards from operating at high speed after a suspend cycle.  Also it might be possible to optimize the driver for newer cards. Hopefully these issues get resolved when the Gemini gets Android Oreo and a 4.X Linux kernel with it.

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

Modular Linux kernel for the Gemini PDA

For the Debian Technology Preview image for the Gemini PDA a monolithic kernel has been used. In order to get as many peripherals as possible working a modular kernel is necessary. So I decided to build a custom kernel.

Since the suspend on lid close feature only works with the community kernel, the kernel source from https://github.com/gemian/gemini-linux-kernel-3.18 has been used. After cloning I have followed the instructions on https://github.com/gemian/gemini-keyboard-apps/wiki/KernelCompilation. During kernel configuration I have changed the following options:

•Enabled kernel modules
•Enabled modules for nearly all USB devices
•Enabled modules for nearly all filesystems
•Enabled modules for nearly all encryptions/hashes/compressions
•Enabled multiple options for iptables

Disabled ANDROID_PARANOID_NETWORK (for not having to add the user for every network service to the groups aid_inet_raw and aid_inet)
•Enabled CONFIG_JUMP_LABEL (for better performance)
•Enabled CONFIG_TASK_IO_ACCOUNTING (for using iotop)

This results in this kernel configuration: gemini-3.18.41+-config.gz (3956 downloads )

After building the kernel modules for the iptables MIRROR target (will not be usable with the default iptables version on the Gemini) and frandom have been added.

Those who do not want to go through this themselves can download my kernel from here:

Kernel Image: linux_boot-gemini-3.18.41+.img (510 downloads )
Modules: modules_firmware-gemini-3.18.41+.tar.gz (2269 downloads )

Downloads outdated, new version at: Improved modular Linux kernel for the Gemini PDA

Instructions for flashing the image can be found on: support.planetcom.co.uk. Make sure to use the same scatter file that has been used for the initial flashing. Using the Download only mode of the flash tool is sufficient. Uncheck all partitions but linux_boot (or boot if you boot into linux as default). For the linux_boot respectively the boot partition select the downloaded kernel image. After flashing, copy the modules archive onto your Gemini and extract it in your root directory:

cd /
tar -xzf /path_to/modules_firmware-gemini-3.18.41+.tar.gz

After rebooting the device should feel a bit smoother and many USB peripherals should work.

Regards
Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Some first tests with the Gemini PDA

Last week my Gemini PDA has arrived. There have been some problems with devices from the first batch especially regarding the keyboard and the device not containing the X27 SoC but a X25 SoC.  At least one later device also has been reported being powered by the X25 SoC. Thus I wanted to do some basic testing before flashing Linux onto it. So I have installed CPUZ and A1 SD Bench on it and did some (very) basic testing.

First we will have a look at the CPUZ output. Here we can clearly see that this Gemini is powered by an X27 SoC with its two Cortex-A72 and eight Cortex A53.

Gemini PDA CPUZ

Gemini PDA CPU – CPUZ screenshot

The last part of the SoC screen shows the Mali-T880 GPU.

Gemini GPU - CPUZ

Gemini GPU – CPUZ screenshot

Some more device information regarding display resolution and amount of memory can be seen below.

Gemini PDA device info - CPUZ

Gemini PDA device information – CPUZ screenshot

The two screenshots below show the sensors available in the Gemini. This might be interesting later to see if all of them can also be accessed from Linux.

Gemini PDA Sensors - CPUZ

Gemini PDA Sensors – CPUZ screenshot

Gemini PDA Sensors - CPUZ 2nd page

Gemini PDA more Sensors – CPUZ screenshot

Finally some speed tests regarding the internal memory and the SD card using A1 SD Bench have been performed.

Gemini PDA memory bench

Gemini PDA memory bench – A1 SD Bench

The speed of the internal memory looks good, however it is strange that the write speed is shown to be faster than the read speed. This might be a bug in the benchmark app. Unfortunately the SD card speed of approximately 20MB/sec is disappointing. The SD card used is a U1/A1 capable SanDisk Ultra 200G which is rated up to 100 MB/sec for reading. Trying the same card with Linux and an USB3 card reader proves the spec:

# hdparm -t /dev/sdd1

/dev/sdd1:
Timing buffered disk reads: 280 MB in 3.00 seconds = 93.32 MB/sec

So there might be an incompatibility with this card or some driver issue. Maybe some later tests with Linux will show. At least the results would be comparable then, because of using the same tool.

The device seems to be as expected an after flashing Linux we can have a look into some more details.  The process of flashing Linux already is well documented on github and on oesf.org, thus it will not be covered here.

Stay tuned for updates.

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Unboxing of the Gemini PDA

What is going on here? An unboxing article on MyGNU.de? Well, this is the exception, since the Gemini is an exceptional device like Nokias N900 has been before and in the future hopefully the some day finished  Neo900 might be. Well, I do not want to stray away any further. About 13 month ago I have backed Planet Computers Gemini PDA Indiegogo campaign. Planet Computers has promised a device that is different from anything else, that is available for purchase. The Gemini is a PDA class clamp-shell device with a fully integrated keyboard and touchscreen that is designed for Android, but also capable of running Linux. No need to go through the specs here, everything interesting regarding these can be read on Planet Computers web page or on Wikipedia. Last week, after a long time of waiting, the parcel with the 4G version of the Gemini, the connectivity kit and the optional camera finally arrived. The order id has been in the 20XX range and the device is with a non UK keyboard, so the device is most probably from the third batch.

Gemini parcel

Parcel containing the Gemini PDA

After opening the parcel and removing some wrapping material one can see multiple smaller boxes containing the device and its accessories.

The opened parcel

The opened parcel

The boxes shown in the photo below contain from left to right, the leather pouch, the special HDMI adapter (only this one allows connecting an external display), the Gemini, the USB type C hub, the external camera addon and an additional charger.

Boxes containing PDA and accessories

Boxes containing the Gemini PDA and accessories

The larger box welcomes us with “hello” printed in several languages and contains  a smaller black box containing the manual and the cover removal tool (needed to insert a SIM card and a SD card), the PDA itself and (still in the larger box) a charger and the Type C to Type A USB cable.

PDA box

The opened PDA box

Below we have a closer look to the PDA well wrapped in foil.

Gemini in foil

Gemini wrapped in foil

After removing the foil we can see its full beauty.

Gemini PDA

The Gemini PDA

With the opened device we can see the the display and the German QWERTZ keyboard. The keyboard feels solid and has no wobbly keys like it has been reported by backers who have received devices from the first batch.

opened Gemini PDA

The opened Gemini PDA with display and keyboard

Phone manufacturers recommend to charge the devices a first time fully before using. Most probably this is a myth without any use than having a fully charged device, but anyway I did.

charging

Charging the Gemini PDA for the first time

I am hoping you have enjoyed the photo series. Further articles regarding testing some aspects of the device, Linux on the Gemini, and hopefully some solutions will follow. Does it really contain a X27 CPU? We will find out later. Stay tuned for updates.

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

siteinfo

Translator