maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   MeeGo / Harmattan (https://talk.maemo.org/forumdisplay.php?f=45)
-   -   [Announce] kernel-plus for Harmattan (https://talk.maemo.org/showthread.php?t=86543)

juiceme 2013-11-08 06:29

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by plourde (Post 1385050)
here is my log, thanks for the reply http://www.mediafire.com/?nn9mo0bgpv6esvn

Thanks. According to the log the kernel is loaded up fine, so problems are in the actual booting process.
This confirms that your configuration is OK.

So, you can boot other kernels, like "zImage_2.6.32.54-openmode_l2fix" OK, only the kernel "zImage-2.6.32.61-plus_20131030" is failing?

Now, the most common problem I have seen with kernels that load correctly but fail to boot is some mixup with modules.
Are you sure that you ran "/sbin/depmod -a 2.6.32.61-plus" after extracting the modules to the device?
(you can check that, if you look in the directory "/lib/modules/2.6.32.61-plus/" you should have 110 modules, the files ending at ".ko" and 11 dependency files, starting with "modules."

plourde 2013-11-08 14:19

Re: [Announce] kernel-plus for Harmattan
 
Yes that is the command that I ran, I will try the process again, Thanks for the help I really appreciate it, I wish I were smarter to get this going, I will go through the steps again and post my results, Thanks so much

plourde 2013-11-08 14:41

Re: [Announce] kernel-plus for Harmattan
 
Thanks for the patience, I booted in, I am not sure what i did differently but i did the entire process again and it booted first time, Thanks again so much this is fantastic,

hrbani 2013-11-09 07:28

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by plourde (Post 1385159)
Thanks for the patience, I booted in, I am not sure what i did differently but i did the entire process again and it booted first time, Thanks again so much this is fantastic,

Hi :)
I'm sorry if my English is bad and lack of my knowledge.

Did you rename kernel to zImage-2.32.61-plus?
I think the name of kernel (zImage-A) and folder of modules (A) must be same, but in current "kernel-plus-61-r2.tar.gz" those are different; Kernel name is zImage-2.32.61-plus_20131030 and modules folder name is 2.32.61-plus. I had deleted "_20131030" from kernel name at first and after that I tested it with Ubiboot and it worked :) . I didn't test it as it was extracted.

peterleinchen 2013-11-09 08:41

Re: [Announce] kernel-plus for Harmattan
 
Nope.
Modules folder (under /lib/modules/) needs to match to in-compiled kernel name string ('uname -r'). The name of the kernel image itself may be whatever you like (e.g. myFancyLittleSelfCompiledOne.kernel or something more meaningful ;)).

TMavica 2013-11-13 00:03

Anyone can help me repackage the opptimizer ui, so no need dependency for opptimizer??

pishta74 2013-11-13 14:46

Re: [Announce] kernel-plus for Harmattan
 
What does one actually gain with upgrading to this version of the kernel?
Yes, I've read the new features implemented on the 1st page, but it doesn't seem to change much on how my phone will work.

juiceme 2013-11-14 05:59

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by pishta74 (Post 1386017)
What does one actually gain with upgrading to this version of the kernel?
Yes, I've read the new features implemented on the 1st page, but it doesn't seem to change much on how my phone will work.

Well, if you have no need for the new features then I guess all this is of fairly low priority to you. Some people like to use the alternate file systems provided, or need the NAT capabilities and so on...

If you use your device just with "regular applications" launching platform, like you'd use a dumbphone like iPhone or Lumia, then you do not need these things. Upgrading to the new kernel does not change your "user experience" at all. :D

nieldk 2013-11-14 08:03

Re: [Announce] kernel-plus for Harmattan
 
Can you add
CONFIG_WL12XX_SDIO_TEST=m
(network 80211 configuration parameter)
to the power kernel ?
It seems this is what is needed to get injection working, together with either iwconfig or macchanger MAC.
I compiled it as a module to be able to test (able to load/unload) together with 80211 compiled as a module, like the power kernel.
I guess it could be compiled as 'y', but, I believe being able to load on need can save battery power :)

pishta74 2013-11-14 09:01

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by juiceme (Post 1386156)
Well, if you have no need for the new features then I guess all this is of fairly low priority to you. Some people like to use the alternate file systems provided, or need the NAT capabilities and so on...

If you use your device just with "regular applications" launching platform, like you'd use a dumbphone like iPhone or Lumia, then you do not need these things. Upgrading to the new kernel does not change your "user experience" at all. :D

I'm not using it as a dumb-phone, neither being a sceptic, just asking how it looks "at a glance". I don't really need "just" a phone with a different file system or iptables support. Wouldnt have anytnig against that 3.x kernel though ;)
Thanks

juiceme 2013-11-14 09:25

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by pishta74 (Post 1386187)
I'm not using it as a dumb-phone, neither being a sceptic, just asking how it looks "at a glance". I don't really need "just" a phone with a different file system or iptables support. Wouldnt have anytnig against that 3.x kernel though ;)
Thanks

OK :), but basically what I said stands, there's no visible difference to the normal phone usage. Usually kernel features are something that you need extra functionality/applications to make use of.

Let's take a small steps at a time, and eventually (after a long time and huge workload ) a 3.x version might emerge :D

Props for Hurrian to do the hard part, I'm just enjoying being along for the ride....

nieldk 2013-11-14 09:33

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by juiceme (Post 1386194)
props for hurrian to do the hard part, i'm just enjoying being along for the ride....

+1 :) ...............

Hurrian 2013-11-14 13:33

Re: [Announce] kernel-plus for Harmattan
 
The newest build (first post) has been updated with CONFIG_WL12XX_SDIO_TEST=m.

/lib/modules/2.6.32.61-plus has also been pre-depmodded to avoid help thread user posts.

USB Ethernet client drivers, have been disabled - USB Host support on N9/50 looks like it's nonexistent, so to trim some fat, I'm removing them from the kernel image (some of them look like they're set to =y. Yikes!)

I'd also appreciate some "lsmod" dumps from N9 and N950s of different hardware revisions - pastebin them and PM them to me! I suspect some more drivers from Harmattan device prototypes still have configs enabled inside rm581_defconfig.

The source patches will be updated soon enough - I think I may have resolved the build errors encountered when CONFIG_OPPTIMIZER is enabled. Give me some more time.

That aside, as a dev I normally don't ask for contributions, but you may have heard about Typhoon Haiyan - the storm has pretty much smashed a large part of the more southern part of my country, and hundreds of thousands are in dire need of support rebuilding after the devastation. I'd appreciate it if you can put a beer or two's worth of $LC_MONETARY toward charities part of the relief efforts ;)

juiceme 2013-11-15 13:28

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by Hurrian (Post 1386338)
The source patches will be updated soon enough - I think I may have resolved the build errors encountered when CONFIG_OPPTIMIZER is enabled. Give me some more time.

Thanks, I can confirm that now the patches compile cleanly ;)

nieldk 2013-11-17 13:53

Re: [Announce] kernel-plus for Harmattan
 
Could you please patch power kernel with these :)

OK, to get packet injection complete (mac80211 module), and to speedup injection, we need two patches to kernel/net/wireless/chan.c and kernel/net/mac80211/tx.c

Fix negative (-1) channel:
apply this patch to kernel/net/wireless/chan.c

Code:

diff --git a/net/wireless/chan.c b/net/wireless/chan.c
index b01a6f6..09d979b 100644
--- a/net/wireless/chan.c
+++ b/net/wireless/chan.c
@@ -49,9 +49,12 @@ int cfg80211_set_freq(struct cfg80211_registered_device *rdev,
 {
        struct ieee80211_channel *chan;
        int result;
+        struct wireless_dev *mon_dev = NULL;
 
-        if (wdev && wdev->iftype == NL80211_IFTYPE_MONITOR)
+        if (wdev && wdev->iftype == NL80211_IFTYPE_MONITOR) {
+                mon_dev = wdev;
                wdev = NULL;
+        }
 
        if (wdev) {
                ASSERT_WDEV_LOCK(wdev);
@@ -76,5 +79,8 @@ int cfg80211_set_freq(struct cfg80211_registered_device *rdev,
        if (wdev)
                wdev->channel = chan;
 
+        if (mon_dev)
+                mon_dev->channel = chan;
+
        return 0;
 }


Speedup injection
apply this patch to kernel/net/mac80211/tx.c

Code:

diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 0855cac..221bed6 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -677,11 +677,19 @@ int tid;
 
        /*
          * Packet injection may want to control the sequence
-        * number, if we have no matching interface then we
-        * neither assign one ourselves nor ask the driver to.
+        * number, so if an injected packet is found, skip
+        * renumbering it. Also make the packet NO_ACK to avoid
+        * excessive retries (ACKing and retrying should be
+        * handled by the injecting application).
+        * FIXME This may break hostapd and some other injectors.
+        * This should be done using a radiotap flag.
          */
-        if (unlikely(info->control.vif->type == NL80211_IFTYPE_MONITOR))
+        if (unlikely((info->flags & IEEE80211_TX_CTL_INJECTED) &&
+          !(tx->sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES))) {
+                if (!ieee80211_has_morefrags(hdr->frame_control))
+                        info->flags |= IEEE80211_TX_CTL_NO_ACK;
                return TX_CONTINUE;
+        }
 
        if (unlikely(ieee80211_is_ctl(hdr->frame_control)))
                return TX_CONTINUE;


juiceme 2013-11-17 18:18

Re: [Announce] kernel-plus for Harmattan
 
I'm on the road now but unless Hurrian is quicker to respond I'll patch those when I get home :)

Hurrian 2013-11-17 22:37

Re: [Announce] kernel-plus for Harmattan
 
Patched, new kernel released ;)

This release includes major changes - see the first post for details!

We are slowly approaching equivalency to 2.6.34 series...

jalyst 2013-11-18 05:55

Re: [Announce] kernel-plus for Harmattan
 
Excellent efforts everyone! @Hurrian, how's your hand nowadays? :)

www.rzr.online.fr 2013-11-18 07:40

Re: [Announce] kernel-plus for Harmattan
 
Is there a git repo somewhere of kernel to track ?

Hurrian 2013-11-18 11:40

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by jalyst (Post 1387193)
@Hurrian, how's your hand nowadays? :)

Healed up just fine - a bit of scarring, but it's a lesson ;)

Quote:

Originally Posted by www.rzr.online.fr (Post 1387208)
Is there a git repo somewhere of kernel to track ?

I think I'll add K+ v4 to my Github - it'll be there soon enough, once I diff and tag everything up nicely.

It's on GH - if anyone wants code added, you can fork it and send a pull request, or send me a patchfile.

The code on GitHub is ever-so-slightly newer than K+ 20131118, nothing major enough to warrant a new build though.

By the way, is /anyone/ working on getting a new GCC on top of Scratchbox? We'd eventually want to build the kernel in Thumb-2 mode, shrinking it by ~25% (2.6MB -> 1.9MB)

nieldk 2013-11-19 13:30

Re: [Announce] kernel-plus for Harmattan
 
One step closer to perfect :)
http://www.spinics.net/lists/linux-w.../msg78413.html

Code:

diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index 692a275..fc652c4 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -1517,11 +1517,14 @@ static void wl1271_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
        struct wl1271 *wl = hw->priv;
        struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
        struct ieee80211_vif *vif = info->control.vif;
-        struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif);
+        struct wl12xx_vif *wlvif = NULL;
        unsigned long flags;
        int q, mapping;
        u8 hlid;
 
+        if (vif)
+                wlvif = wl12xx_vif_to_data(vif);
+
        mapping = skb_get_queue_mapping(skb);
        q = wl1271_tx_get_queue(mapping);
 
@@ -1531,7 +1534,7 @@ static void wl1271_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
 
        /* queue the packet */
        if (hlid == WL12XX_INVALID_LINK_ID ||
-            !test_bit(hlid, wlvif->links_map)) {
+            (wlvif && !test_bit(hlid, wlvif->links_map))) {
                wl1271_debug(DEBUG_TX, "DROP skb hlid %d q %d", hlid, q);
                dev_kfree_skb(skb);
                goto out;

Code:

diff --git a/drivers/net/wireless/wl12xx/tx.c b/drivers/net/wireless/wl12xx/tx.c
index 02d606f..33b800d 100644
--- a/drivers/net/wireless/wl12xx/tx.c
+++ b/drivers/net/wireless/wl12xx/tx.c
@@ -180,7 +180,7 @@ u8 wl12xx_tx_get_hlid(struct wl1271 *wl, struct wl12xx_vif *wlvif,
 {
        struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
 
-        if (wl12xx_is_dummy_packet(wl, skb))
+        if (!wlvif || wl12xx_is_dummy_packet(wl, skb))
                return wl->system_hlid;
 
        if (wlvif->bss_type == BSS_TYPE_AP_BSS)
@@ -259,7 +259,8 @@ static int wl1271_tx_allocate(struct wl1271 *wl, struct wl12xx_vif *wlvif,
                ac = wl1271_tx_get_queue(skb_get_queue_mapping(skb));
                wl->tx_allocated_pkts[ac]++;
 
-                if (!is_dummy && wlvif->bss_type == BSS_TYPE_AP_BSS &&
+                if (!is_dummy && wlvif &&
+                    wlvif->bss_type == BSS_TYPE_AP_BSS &&
                    test_bit(hlid, wlvif->ap.sta_hlid_map))
                        wl->links[hlid].allocated_pkts++;
 
@@ -302,7 +303,7 @@ static void wl1271_tx_fill_hdr(struct wl1271 *wl, struct wl12xx_vif *wlvif,
        desc->start_time = cpu_to_le32(hosttime - wl->time_offset);
 
        is_dummy = wl12xx_is_dummy_packet(wl, skb);
-        if (is_dummy || wlvif->bss_type != BSS_TYPE_AP_BSS)
+        if (is_dummy || !wlvif || wlvif->bss_type != BSS_TYPE_AP_BSS)
                desc->life_time = cpu_to_le16(TX_HW_MGMT_PKT_LIFETIME_TU);
        else
                desc->life_time = cpu_to_le16(TX_HW_AP_MODE_PKT_LIFETIME_TU);
@@ -321,14 +322,14 @@ static void wl1271_tx_fill_hdr(struct wl1271 *wl, struct wl12xx_vif *wlvif,
                            TX_HW_ATTR_SESSION_COUNTER;
 
                tx_attr |= TX_HW_ATTR_TX_DUMMY_REQ;
-        } else {
+        } else if (wlvif) {
                /* configure the tx attributes */
                tx_attr = wlvif->session_counter <<
                          TX_HW_ATTR_OFST_SESSION_COUNTER;
        }
 
        desc->hlid = hlid;
-        if (is_dummy)
+        if (is_dummy || !wlvif)
                rate_idx = 0;
        else if (wlvif->bss_type != BSS_TYPE_AP_BSS) {
                /* if the packets are destined for AP (have a STA entry)
@@ -433,7 +434,7 @@ static int wl1271_prepare_tx_frame(struct wl1271 *wl, struct wl12xx_vif *wlvif,
 
        wl1271_tx_fill_hdr(wl, wlvif, skb, extra, info, hlid);
 
-        if (!is_dummy && wlvif->bss_type == BSS_TYPE_AP_BSS) {
+        if (!is_dummy && wlvif && wlvif->bss_type == BSS_TYPE_AP_BSS) {
                wl1271_tx_ap_update_inconnection_sta(wl, skb);
                wl1271_tx_regulate_link(wl, wlvif, hlid);
        }
@@ -610,6 +611,9 @@ static struct sk_buff *wl1271_skb_dequeue(struct wl1271 *wl)
                }
        }
 
+        if (!skb)
+                skb = wl12xx_lnk_skb_dequeue(wl, &wl->links[wl->system_hlid]);
+
        if (!skb &&
            test_and_clear_bit(WL1271_FLAG_DUMMY_PACKET_PENDING, &wl->flags)) {
                int q;
@@ -703,19 +707,14 @@ void wl1271_tx_work_locked(struct wl1271 *wl)
                return;
 
        while ((skb = wl1271_skb_dequeue(wl))) {
+                struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
                bool has_data = false;
 
                wlvif = NULL;
-                if (!wl12xx_is_dummy_packet(wl, skb)) {
-                        struct ieee80211_tx_info *info;
-                        struct ieee80211_vif *vif;
+                if (!wl12xx_is_dummy_packet(wl, skb) && info->control.vif)
+                        wlvif = wl12xx_vif_to_data(info->control.vif);
 
-                        info = IEEE80211_SKB_CB(skb);
-                        vif = info->control.vif;
-                        wlvif = wl12xx_vif_to_data(vif);
-                }
                has_data = wlvif && wl1271_tx_is_data_present(skb);
-
                ret = wl1271_prepare_tx_frame(wl, wlvif, skb, buf_offset);
                if (ret == -EAGAIN) {
                        /*


Garp 2013-11-19 17:03

Re: [Announce] kernel-plus for Harmattan
 
2.6.32.61-plus r4
This is a major release.
Includes ExFAT
Unified EXT2/3/4 fs driver

Does this mean that you don't need to care about:
- Formatting MyDocs into ext3 or ext4 :
and by that you can exceed the 4GB limit of space for programs (OS')?

mcbook 2013-11-19 17:07

If it's FAT it's crap and limited to 4gb max file size... ;)

Hurrian 2013-11-19 21:44

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by Garp (Post 1387540)
Does this mean that you don't need to care about:
- Formatting MyDocs into ext3 or ext4 :
and by that you can exceed the 4GB limit of space for programs (OS')?

You still need to reformat MyDocs to ExFAT, and edit /etc/fstab.

Also make sure you're using the newest ubiboot!

As for the 4GB limit: no.
If it makes you feel any better, you can use Ubiboot to backup /home, delete the /home partition (4GB for configs!), expand /, copy /home onto say /.home on the rootfs, then change fstab to bindmount /.home onto /home

You could do without the bindmounting and just put home on /home, but the free space meter would b0rk.

Quote:

One step closer to perfect :)
http://www.spinics.net/lists/linux-w.../msg78413.html
Unfortunately, this patch does not apply at all to 2.6.32.61.
I think the wl1271 driver it's patching against is a lot newer. Time to port the newer kernel driver in?

The struct first appears in mainline with Linux 3.3

www.rzr.online.fr 2013-11-20 23:23

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by Hurrian (Post 1387255)
Healed up just fine - a bit of scarring, but it's a lesson ;)



I think I'll add K+ v4 to my Github - it'll be there soon enough, once I diff and tag everything up nicely.

It's on GH - if anyone wants code added, you can fork it and send a pull request, or send me a patchfile.


Thank I also forked it to the harmattan team too , for visibillty and cooperation too :

https://github.com/harmattan/kernel-plus-harmattan

Hurrian 2013-11-20 23:42

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by www.rzr.online.fr (Post 1387767)
Thank I also forked it to the harmattan team too , for visibillty and cooperation too

Add me to the Harmattan team and I'll start committing to the repo on there!

Also, change the default branch to harmattan-2632 ;)

trafick 2013-11-21 07:16

Re: [Announce] kernel-plus for Harmattan
 
servis manual will help in kernel development?
Schematics version manual
http://s5.hostingkartinok.com/upload...82806e86a4.jpg

juiceme 2013-11-21 08:30

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by trafick (Post 1387815)
servis manual will help in kernel development?

Well the last page does, where it gives out the serial connection pins under simtray. :)

trafick 2013-11-21 08:39

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by juiceme (Post 1387822)
Well the last page does, where it gives out the serial connection pins under simtray. :)

what's this?
http://s5.hostingkartinok.com/upload...1f549fc765.jpg

juiceme 2013-11-21 08:43

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by trafick (Post 1387826)
what's this?[/url]

That's just the SIMcard connector.
The serial pins I was talking about are not in the connector, they are on the board next to the connector

juiceme 2013-11-21 08:57

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by juiceme (Post 1387831)
That's just the SIMcard connector.
The serial pins I was talking about are not in the connector, they are on the board next to the connector

I was talking about this :)

http://www.swagman.org/juice/connectors.png

trafick 2013-11-21 09:09

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by juiceme (Post 1387831)
That's just the SIMcard connector.
The serial pins I was talking about are not in the connector, they are on the board next to the connector

You lookedNokia N9-00 RM-696 Service Manual L34 v1?

juiceme 2013-11-21 09:15

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by trafick (Post 1387840)
You lookedNokia N9-00 RM-696 Service Manual L34 v1?

I am not sure how this is relevant ? :D

My schemas are called Nokia_N9_RM-696_Full_schematics_v1.0.pdf (md5sum=1a2ed579ff571fb16d948d155204a5e9)
I don't remember where I got the file, though.

nieldk 2013-11-21 09:52

Re: [Announce] kernel-plus for Harmattan
 
http://talk.maemo.org/showthread.php?t=82571

trafick 2013-11-21 10:33

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by juiceme (Post 1387841)
I am not sure how this is relevant ? :D

My schemas are called Nokia_N9_RM-696_Full_schematics_v1.0.pdf (md5sum=1a2ed579ff571fb16d948d155204a5e9)
I don't remember where I got the file, though.

http://s5.hostingkartinok.com/upload...62664934c0.jpg
I couldn’t found: J5600 & J5610 :( , just like you...

juiceme 2013-11-21 11:18

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by trafick (Post 1387861)
I couldn’t found: J5600 & J5610 :( , just like you...

those are both GND :D

trafick 2013-11-21 11:25

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by juiceme (Post 1387869)
those are both gnd :d

j5610+ gnd?

juiceme 2013-11-21 11:41

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by trafick (Post 1387873)
j5610+ gnd?

Well I have used J5600 as GND but if I remember correctly I checked both pins and they are both connected to GND.

http://www.swagman.org/juice/13110002.jpg

nieldk 2013-11-21 11:47

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by juiceme (Post 1387877)
Well I have used J5600 as GND but if I remember correctly I checked both pins and they are both connected to GND.

http://www.swagman.org/juice/13110002.jpg

Now, THATS! what I call hacking :)

juiceme 2013-11-21 11:53

Re: [Announce] kernel-plus for Harmattan
 
Quote:

Originally Posted by nieldk (Post 1387878)
Now, THATS! what I call hacking :)

U ain't seen all I can do :D :D


All times are GMT. The time now is 16:14.

vBulletin® Version 3.8.8