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 drivers for nearly all USB devices
•Enabled modules drivers 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 (10)

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 (9)
Modules: modules_firmware-gemini-3.18.41+.tar.gz (9)

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 (No Ratings Yet)
Loading...

iptables mirror target for linux kernel 4.10

After my last kernel upgrade I tried to build the iptables mirror target published the last time here. The iptables mirror target takes the packet sent to your machine and returns the same packet to the machine the packet came from. Thus, let’s say someone tries to scan your machine or tries an attack he would scan his own machine or even attack his own machine. When I tried it with kernel version 4.12 , it did not build anymore with the current linux kernel. This time a struct changed in kernel 4.10 and some functions have got renamed in the kernel 4.11. Thus I had to update the ip_direct_send and ipt_mirror_target functions. You can download the newer release for kernel version 4.10 and probably future kernels here:

MIRROR.4.10.tar.gz (432) gplv3-127x51

The kernel module has been tested with kernel version 4.12.12-gentoo. To build the module, boot the kernel you want to use the module with. Afterwards unpack the archive and run the compile.sh script to build the module. Then run the install.sh script for installing the compiled module into the /lib/modules directory for your kernel.

Now you may use the mirror target in place of the REJECT or DROP target in the INPUT, FORWARD and PREROUTING chains, like this in your firewall script:

$IPTABLES -A INPUT -j MIRROR

Beware: The use of the mirror target may lead to strange results, in example if you want to connect to an iptables protected machine which uses the mirror target, you may end up connecting to the local machine without recognizing it. It also may use much bandwith. The worst case occurs if you have two machines using the module. These machines may end up playing ping pong. So you have been warned, use with caution and at your own risk. For more information see: MIRROR target.

Downloads for older kernel versions are below. Notice the version numbering 2.6.25 works for kernels up to 2.6.27. 2.6.28 also works for 2.6.29 and 2.6.30 kernels. The 2.6.13 version of the module should work up to kernel version 2.6.16.

MIRROR.2.6.13.tar.gz (3078)
MIRROR.2.6.24.tar.gz (3524)
MIRROR.2.6.25.tar.gz (3243)
MIRROR.2.6.28.tar.gz (3289)
MIRROR.2.6.31 (3118)
MIRROR.2.6.35.tar.gz (3045)
MIRROR.2.6.36.tar.gz (3132)
MIRROR.2.6.37.tar.gz (2878)
MIRROR.3.0.7.tar.gz (2557)
MIRROR.3.1.0.tar.gz (2252)
MIRROR.3.3.0.tar.gz (2282)
MIRROR.3.6.0.tar.gz (1965)
gplv3-127x51

regards
Jürgen

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

devolo-dlan-cockpit-4.3.3 with gentoo

Recently I have found out, that the version 4.2.3 of devolo-dlancopit, for which I have posted a gentoo ebuild in the article devolo-dlan-cockpit-4.2.3 with gentoo, does not work fully anymore. It fails  downloading firmware updates for the Devolo dlan 1200 PowerLAN adapters. Most probably the download urls for firmware updates have changed recently.

Devolo offers the application devolo-dlan-cockpit for download. The main purposes of devolo-dlan-cockpit are:

  • Firmware upgrades for the network adapters
  • Monitoring the performance
  • Configuring the network adapters

Firmware upgrades are more or less plug and play. One has to click the Updates-Button and everything else happens automagically. Monitoring the network performance with devolo-dlan-cockpit is of major interest, since it allows one to try out different wall sockets for better performance with nearly zero efforts. If one gets poor performance it can be of major impact just to use another wall socket in the same room.

Dlan-cockpit is available for most common operating systems. However, the only Linux distribution, they support right now is Ubuntu Linux. Most probably, the package will also work with Debian. Allthough these are binary packages, the application can also be used with Gentoo Linux. For this two binaries have to be executed /usr/bin/devolonetsvc, the service daemon and /opt/devolo/dlancockpit/bin/dlancockpit, the frontend application which depends on the service. Usually devolonetsvc is being started by an initrd script, but the one included in the package is not going to work with gentoo, so just start it manually as root user. If one really needs it that often, an own startup script or systemd configuration can be written. Below you can see a screenshot of the application.

screenshot

Screenshot of devolo dlan-cockpit 4.3.3

The Gentoo way

For gentoo users here is my overlay including the updated devolo-dlan-cockpit ebuild: devolo-dlan-cockpit-4.3.3_overlay.tar.gz (226). It also contains an adobe-air-runtime ebuild as necessary dependency. The adobe-air-runtime ebuild has been taken from steam-overlay. Download the overlay and extract it in /usr/local/portage. Be sure to include the following line in your /etc/make.conf:

PORTDIR_OVERLAY=”/usr/local/portage”

Then emerge devolo-dlan-cockpit and update your dlan adapters again using your gentoo box.

Jürgen

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

Minidlna patch for LG TVs

One year ago I wrote about using the ushare DLNA server for watching 3D stereo mpo images. In the meanwhile minidlna evolved and is now also capable of displaying the mpo file format. This led me to switching to minidlna as DLNA server, since it is the better DLNA-server for general use. In example it supports features like fast forward and fast rewind, which ushare does not support.  Unfortunately there are problems with minidlna in conjunction with some LG TVs. These TVs spam the DLNA-servers in the network with search requests, which leads to full CPU-load on the DLNA-server and unresponsiveness of the TVs user interface.¹ This even occurs when watching TV. I also experienced problems with harddisk recordings like the timeshift feature of the TV when network is connected. One may find out that the user interface of the TV is much smoother without network connection on these TVs. In the following I will show how to patch minidlna for not responding to these requests.

First of all download my patch against mindlna-1.1.5:

minidlna_lg_nosearch.patch.gz (733)

The patch is based upon falk0069s older minidlna patch.² In case a LG device sends a search request, the minidlna-server just responds with 0. This removes load from both, the TV and the server and therefore leads to a better responsiveness. The patch should also work with current head.

Second download the minidlna-sources from:

https://sourceforge.net/projects/minidlna/

Afterwards extract the minidlna-sources, change into the source directory and patch the sources:

cat minidlna_lg_nosearch.patch.gz | gunzip| patch -p1

Then build the sources by running ./configure and make.

Users of Debian-based arm-distributions like bananian might try out my prebuilt binary. One can download it from here: minidlnad.gz (662). After downloading unzip the binary and replace the binary of your existing minidlna installation with it.

Jürgen

References:

1.https://sourceforge.net/p/minidlna/bugs/182/

2https://sourceforge.net/p/minidlna/patches/102/

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

devolo-dlan-cockpit-4.2.3 with gentoo

Recently I have started using Devolo dlan 1200 PowerLAN adapters. With these one can get a network with up to 1Gbps without having to install additional wires by using the power lines. Of course the 1Gbps are optimum values under perfect conditions. Practically one gets 100 Mbps to 600 Mbps, but this is enough for most purposes.

Devolo offers the application devolo-dlan-cockpit for download. The main purposes of devolo-dlan-cockpit are:

  • Firmware upgrades for the network adapters
  • Monitoring the performance
  • Configuring the network adapters

Firmware upgrades are more or less plug and play. One has to click to click the Updates-Button and everything else happens automagically. Monitoring the network performance with devolo-dlan-cockpit  is of major interest, since it allows one to try out different wall sockets for better performance with nearly zero efforts. If one gets poor performance it can be of major impact just to use another wall socket in the same room.

Dlan-cockpit is available for most common operating systems. However, the only Linux distribution, they support right now is Ubuntu Linux. Most probably, the package will also work with Debian. Allthough these are binary packages, the application can also be used with Gentoo Linux. For this two binaries have to be executed /usr/bin/devolonetsvc, the service daemon and /opt/devolo/dlancockpit/bin/dlancockpit, the frontend application which depends on the service. Usually devolonetsvc is being started by an initrd script, but the one included in the package is not going to work with gentoo, so start just start it manually as root user. If one really needs it that often, an own startup script or systemd configuration can be written. Below you can see a screenshot of the application.

screenshot

Screenshot of devolo dlan-cockpit

The Gentoo way

For gentoo users here is my overlay including the devolo-dlan-cockpit ebuild: devolo-dlan-cockpit-4.2.3_overlay.tar.gz (1188). It also includes an adobe-air-runtime ebuild as necessary dependency. The adobe-air-runtime ebuild has been taken from steam-overlay. Download the overlay and extract it in /usr/local/portage. Be sure to include the following line in your /etc/make.conf:

PORTDIR_OVERLAY=”/usr/local/portage”

Then emerge devolo-dlan-cockpit and monitor your network nodes using your gentoo box.

Jürgen

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