yashsingh1/xdaforums huggingface dataset:
[Galaxy Tab S2 Android Development] ashyx:
Your missing libgcc.a.

Try this in the terminal: apt-get install libgcc1

Infact I would also install these other packages, copy and paste:

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
[Galaxy Tab S2 Android Development] Lightn1ng:
libgcc1 is already the newest version (1:6.0.1-0ubuntu1).

I'm on Lubuntu 16.04 if that matters.
[Galaxy Tab S2 Android Development] ashyx:
Install the other packages above.
[Galaxy Tab S2 Android Development] Lightn1ng:
Why are there multiple /?
[Galaxy Tab S2 Android Development] ashyx:
Damn stupid forum putting stars and slashes in. Removed.
[Galaxy Tab S2 Android Development] Lightn1ng:
Installed all of them. same error.
[Galaxy Tab S2 Android Development] ashyx:
Did you do:

make clean

before building?

Try this toolchain instead: https://releases.linaro.org/14.11/c...o-4.9-2014.11-x86_64_aarch64-linux-gnu.tar.xz
[Galaxy Tab S2 Android Development] Lightn1ng:
Yes I did make clean. I am trying the toolchain now. Thanks.

Also - where should TARGET_KERNEL_CONFIG point in the boardconfig? The toolchain? thanks.

---------- Post added at 04:00 PM ---------- Previous post was at 03:52 PM ----------

Ok toolchain is set and its building. Will let you know how it goes.

export CROSS_COMPILE=/home/ryan/gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/bin/aarch64-linux-gnu-

---------- Post added at 04:08 PM ---------- Previous post was at 04:00 PM ----------

@ashyx

Just going to leave this here...

#### make completed successfully (07:26 (mm:ss)) ####

It didn't tell me where the output was. Now to find out how to repack the kernel :)
[Galaxy Tab S2 Android Development] ashyx:
Its just before the module build script: arch/arm64/boot/Image.gz
[Galaxy Tab S2 Android Development] Lightn1ng:
Found it, thanks. To Google! :D

---------- Post added at 04:14 PM ---------- Previous post was at 04:11 PM ----------

@ashyx

Apparently I need a zimage and a ramdisk to use mkbootimg to repack the image. All I see in arch/arm64/boot is image, image.gz, and dt.img
[Galaxy Tab S2 Android Development] ashyx:
zImage = Image.gz(compressed kernel image)
[Galaxy Tab S2 Android Development] Lightn1ng:
Ramdisk = ?
[Galaxy Tab S2 Android Development] ashyx:
It's part of the boot.img. When the boot.img is split you will end up with the ramdisk and kernel.
[Galaxy Tab S2 Android Development] Lightn1ng:
EDIT: let me reword that question. When you run vendorsetup.sh for CM, it creates a file called "kernel" in the device tree. Is this the ramdisk or the zIMAGE?
[Galaxy Tab S2 Android Development] ashyx:
Kernel = zImage
[Galaxy Tab S2 Android Development] Lightn1ng:
Thanks :good:

Now I am able to get it to build, but I'm having trouble integrating the build into Cyanogenmod. My BoardConfig.mk contains:

# Kernel
TARGET_KERNEL_CONFIG := kernel/samsung/gts28vewifi/arch/arm64/configs/ashyx_gts28vewifi_defconfig

And upon trying to build the kernel, I'm getting this error:

make: *** No rule to make target 'kernel/samsung/gts28vewifi/arch/arm64/configs/kernel/samsung/gts28vewifi/arch/arm64/configs/ashyx_gts28vewifi_defconfig', needed by '/home/ryan/cm13/out/target/product/gts28vewifi/obj/KERNEL_OBJ/.config'. Stop.

I can't seem to find anything about this error. Maybe make is trying to MAKE the defconfig?

I know you aren't very familiar with CM but you know more than I do :)
[Galaxy Tab S2 Android Development] ashyx:
Have you copied the source into the vendor directory?
[Galaxy Tab S2 Android Development] Lightn1ng:
The source is in kernel/samsung/gts28vewifi
[Galaxy Tab S2 Android Development] ashyx:
UPDATE 16/8/2016: SM-T813 added
[Galaxy Tab S2 Android Development] Windsor1959:
I've installed this kernel on my T713. All is well. Adb works. I only needed to reenter my WiFi password on the first reboot after installation. Everything seems fine. Thanks, ashyx, for your work and your commitment to the S2 devices.
[Galaxy Tab S2 Android Development] jean93:
Hi guys, is it possible for you to do the t819 version ?
[Galaxy Tab S2 Android Development] ayamgoreng:
any variation with T719 will work right ?

we only have T719Y with firmware T719YDXU1APF3.
[Galaxy Tab S2 Android Development] ashyx:
I'll post it soon.

Probably.
[Galaxy Tab S2 Android Development] jean93:
Hello ashyx, got some news about the permissive kernel of the t819 version ?

It's to be able to enable the wifi for custom rom (like the Lightning one).
[Galaxy Tab S2 Android Development] ashyx:
Can you post your boot.img
[Galaxy Tab S2 Android Development] jean93:
Here it is https:// ufile.io/73a40
[Galaxy Tab S2 Android Development] Lightn1ng:
[MENTION=4899305]ashyx[/MENTION]

I took your defconfig and build script from the PD9 kernel and am using it to build the PG1 kernel. I've finally gotten it to build, and applied this commit to make the kernel permissive and then built it.

I then repacked it and flashed it. It booted, and WiFi is not working (as I kind of expected.) But, getenforce responds with permissive. And, looking through the dmesg, grep finds no results for "module" or "sign" which leads me to believe that this error is different from the one we were experiencing at the beginning of this thread. I can't even find any errors yet. Any suggestions? Thanks.

-Lightn1ng

EDIT: was looking at the wrong log, but still can't find the error. This is my last_kmsg:

https://drive.google.com/file/d/0BxPLAwBVP_TfUndXenNoeGRMOEk/view?usp=sharing

---------- Post added at 05:04 PM ---------- Previous post was at 04:37 PM ----------

After all of this, the same issue WAS the culprit! AHA!

497.476436] [2:WifiStateMachin: 1521] Request for unknown module key 'Magrathea: Glacier signing key: 93a45d4ad1ea6e2d595eaf5a5d46b04617246d16' err -11
[ 497.476561] [2:WifiStateMachin: 1521] wlan: disagrees about version of symbol module_layout
[ 498.118936] [0: watchdog: 1740] !@Sync 16 [08-31 17:54:51.517]
[ 498.506944] [0:irq/579-synapti: 272] synaptics_rmi4_i2c 7-0020: [0][P][0] 0x01 T[0/0] M[0], x = 1418, y = 248, wx = 3, wy = 5
[ 498.562545] [0:irq/579-synapti: 272] synaptics_rmi4_i2c 7-0020: [0][R][0] 0x00 M[4], Ver[AA0C, 0x00, 0x00/0x2C/0x00]
[ 498.602727] [2:WifiStateMachin: 1521] Request for unknown module key 'Magrathea: Glacier signing key: 93a45d4ad1ea6e2d595eaf5a5d46b04617246d16' err -11
[ 498.602891] [2:WifiStateMachin: 1521] wlan: disagrees about version of symbol module_layout
[ 498.976902] [0:irq/579-synapti: 272] synaptics_rmi4_i2c 7-0020: [0][P][0] 0x01 T[0/0] M[0], x = 1399, y = 252, wx = 4, wy = 5
[ 499.054495] [0:irq/579-synapti: 272] synaptics_rmi4_i2c 7-0020: [0][R][0] 0x00 M[6], Ver[AA0C, 0x00, 0x00/0x2C/0x00]
[ 499.134262] [3:WifiStateMachin: 1521] Request for unknown module key 'Magrathea: Glacier signing key: 93a45d4ad1ea6e2d595eaf5a5d46b04617246d16' err -11
[ 499.134515] [3:WifiStateMachin: 1521] wlan: disagrees about version of symbol module_layout

How did you end up fixing this?
[Galaxy Tab S2 Android Development] ashyx:
If you're using the defconfig from my github source then you shouldnt be having this issue as module signature checking should be disabled.
[Galaxy Tab S2 Android Development] Lightn1ng:
It was enabled, I disabled it in the defconfig. Testing it now!

---------- Post added at 05:26 PM ---------- Previous post was at 05:20 PM ----------

Nope, [MENTION=4899305]ashyx[/MENTION], it's not working. I copied your ashyx_gts28vewifi_defconfig file, and use this to generate the defconfig:

make VARIANT_DEFCONFIG=msm8976_sec_gts28vewifi_eur_defconfig msm8976_sec_defconfig SELINUX_DEFCONFIG=selinux_defconfig SELINUX_LOG_DEFCONFIG=selinux_log_defconfig

cp $(pwd)/arch/arm64/configs/ashyx_gts28vewifi_defconfig $(pwd)/.config

Forced module loading, module unloading, forced module unloading, module versioning support it on. Checksum and signature verification are off.

---------- Post added at 05:57 PM ---------- Previous post was at 05:26 PM ----------

Now this error is coming up in dmesg:

[ 17.651275] [5:WifiStateMachin: 1521] wlan: version magic '3.10.84-8374498 SMP preempt mod_unload modversions aarch64' should be '3.10.84 SMP preempt mod_unload aarch64'
[Galaxy Tab S2 Android Development] ashyx:
Remove -8374498 from the kernel version.
[Galaxy Tab S2 Android Development] Lightn1ng:
Where do I change that?

Also, should/how do I remove the "modversions" string?

Thanks.
[Galaxy Tab S2 Android Development] ashyx:
If it's not in the MAKE file under EXTRA VERSION it will be in the defconfig.

Just delete it.
[Galaxy Tab S2 Android Development] Lightn1ng:
I'm in the defconfig via nconfig and I can't seem to find it..?

Sent from my SM-G900V
[Galaxy Tab S2 Android Development] ashyx:
Open the defconfig in an editor you should see the version string.
[Galaxy Tab S2 Android Development] Lightn1ng:
Not finding it - should I be looking in .config? I'll look more e in a moment. Thanks
[Galaxy Tab S2 Android Development] ashyx:
At the top of the ashyx defconfig in the configs folder.
[Galaxy Tab S2 Android Development] Lightn1ng:
Sorry I'm a noob. Lol. Thanks
[Galaxy Tab S2 Android Development] EddYTG:
Sorry for asking. I have searched this thread but not have answer.

My Tab S2 VE has model number SM-T719Y ..... Can I use the process in this thread by using T719 to flash this kernel on my Tab S2.

Thank you.
[Galaxy Tab S2 Android Development] Lightn1ng:
Wasn't this explained to you in my thread?

---------- Post added at 08:07 PM ---------- Previous post was at 08:07 PM ----------

@ashyx

Ok I still can't seem to get this thing to work.

[ 31.517952] [2:WifiStateMachin: 1519] wlan: version magic '3.10.84-8374498 SMP preempt mod_unload modversions aarch64' should be '3.10.84 SMP preempt mod_unload aarch64'

I can't find the "modversions" string anywhere, and how to get rid of that, and the "-8374498" addon to the kernel, anywhere in the defconfig. Thanks for all the help so far.
[Galaxy Tab S2 Android Development] ashyx:
Which defconfig are you using?

Also is the MAKE file from my github source or the original?
[Galaxy Tab S2 Android Development] EddYTG:
Sorry i am a little bit new here. Anyway i try it myself and found that you kernel work on my SM-T719Y buy a big bug is the wifi is not work.

Thank you very much.
[Galaxy Tab S2 Android Development] Lightn1ng:
My Makefile is from the original, however I have applied the selinux permissive commit to it.

This is how I'm building my defconfig:

make VARIANT_DEFCONFIG=ashyx_gts28vewifi_defconfig msm8976_sec_defconfig SELINUX_DEFCONFIG=selinux_defconfig SELINUX_LOG_DEFCONFIG=selinux_log_defconfig

With the ashyx_gts28vewifi_defconfig file taken from Github.

EDIT: Just tried the makefile from github to no avail.

---------- Post added at 08:14 AM ---------- Previous post was at 07:25 AM ----------

A couple of defconfig mods later, and I'm getting a new error.

wlan: disagrees about version of symbol module_layout
[Galaxy Tab S2 Android Development] ayamgoreng:
I'm curious, is there a different with T719 vs T719Y hardware ? especially wifi related

since flashing T719 kernel on T719Y will result wifi being disabled.

or because kernel version is different ?
[Galaxy Tab S2 Android Development] Lightn1ng:
[MENTION=4899305]ashyx[/MENTION]

It's been a few days, I've learned a bunch, and I'm coming back more educated to ask a question.

So, I'm trying to compile the APG1 kernel with your defconfig. And I am using the stock qcacld.ko file for the wlan kernel module.

When enabling wifi, the versions of the module and the kernel are mismatching, causing the module not to be loaded.

[ 16.129651] [5:WifiStateMachin: 1381] wlan: version magic '3.10.84-8374498 SMP preempt mod_unload modversions aarch64' should be '3.10.84-8374498+ SMP preempt mod_unload aarch64'

The only difference between these two strings is the "modversions" string in the .ko file is not in the kernel vermagic.

When I enable modversions, thereby surpassing this error, this error comes up:

wlan: Version checksum 8E314A58 does not match requested checksum 674F25D1
wlan: disagrees about version of symbol module_layout

Keep in mind that me and CTXz made this change to kernel/module.c:

printk(KERN_WARNING "%s: Version checksum %lX does not match requested checksum %lX", mod->name, versions[i].crc, maybe_relocated(*crc, crc_owner) );

So that is why the error message is slightly more detailed.

CONFIG_MODVERSIONS=n

and module signature verification is off.

Any help would be much appreciated.

This is our kernel source:

https://github.com/Lightn1ng/kernel_gts28vewifi

I am building using prepare.sh, make nconfig, then build.sh.

I feel maybe we should be trying to build the module with the kernel, but I haven't a single clue where to start on that one.
[Galaxy Tab S2 Android Development] ashyx:
I will take a look at the sources later and see what happens when I compile.

Which rom build is being used?
[Galaxy Tab S2 Android Development] Lightn1ng:
Stock APG1 rom. Don't forget to disable dm verity under drivers>raid/lvm
[Galaxy Tab S2 Android Development] ashyx:
What do you mean disable dm-verity under drivers>raid/lvm?

It will be disabled in the ramdisk not the kernel.
[Galaxy Tab S2 Android Development] Lightn1ng:
Interesting. I was simply disabling it in the kernel and using the modded ramdisk (the one with the stock kernel, with verity and encryption off).

Fix is described under readme.md on GitHub. Doesn't boot without it.
[Galaxy Tab S2 Android Development] ashyx:
I have compiled APG1 kernel source, can you test this out?

T713XXU1APG1_permisive_boot_9916

.
[Galaxy Tab S2 Android Development] Lightn1ng:
Alright, who forgot to disable signature verification!

[ 20.637647] [1:WifiStateMachin: 1391] Request for unknown module key 'Magrathea: Glacier signing key: 93a45d4ad1ea6e2d595eaf5a5d46b04617246d16' err -11
[ 20.637749] [1:WifiStateMachin: 1391] wlan: disagrees about version of symbol module_layout
[Galaxy Tab S2 Android Development] ashyx:
T713XXU1APG1_permisive_boot_10916
[Galaxy Tab S2 Android Development] Lightn1ng:
Testing now, will report back...

Don't you think it's a bit late to be compiling? Get some sleep lol ;)

---------- Post added at 08:44 PM ---------- Previous post was at 08:38 PM ----------

@ashyx

Again, a familiar error:

[ 30.973822] [3:WifiStateMachin: 1392] wlan: disagrees about version of symbol module_layout

So descriptive...
[Galaxy Tab S2 Android Development] ashyx:
Is this happening with the stock rom or Lightn1ng rom?

Can you post the firmware build ID in the about page?

Any luck with this?

https://www.androidfilehost.com/?fid=24591000424964671

.
[Galaxy Tab S2 Android Development] Lightn1ng:
On stock PG1 right now

Build number is MMB29M.T713XXU1APG1

Will try boot image now

---------- Post added at 06:28 AM ---------- Previous post was at 06:19 AM ----------

Same error :(

Thanks for this so far

[ 16.449547] [1:WifiStateMachin: 1388] wlan: disagrees about version of symbol module_layout

I feel like maybe we should be building the driver along with the kernel, but I don't know how that works...
[Galaxy Tab S2 Android Development] ashyx:
This doesn't make sense, the Vermagic is identical, so I don't know why it's complaining especially considering the same thing works fine with the ADP9 source.

There are no significant changes in the defconfig either that I can see to cause this.

I going to to try a different tack and see if I can disable version checking at source level and try and force the damn thing to load. [emoji53]
[Galaxy Tab S2 Android Development] Lightn1ng:
Thanks, you may want to apply the printf command I described in my first post yesterday to the module.c source code so that you can get some more debugging info about the vermagics :)

Also, I think that the data structures of the module and kernel may be different, so that even if you force it to load, it might still not work properly/at all. That's just what I read somewhere, could be wrong ;)
[Galaxy Tab S2 Android Development] ashyx:
Have you tried manually loading the driver?:

su

insmod /system/lib/modules/qca_cld/qca_cld_wan.ko

.
[Galaxy Tab S2 Android Development] Lightn1ng:
Output:

root@gts28vewifi:/system/lib/modules/qca_cld # insmod qca_cld_wlan.ko
insmod: failed to load qca_cld_wlan.ko: Exec format error

In the dmesg:

[ 125.280568] [1: insmod: 5711] wlan: disagrees about version of symbol module_layout
[Galaxy Tab S2 Android Development] ashyx:
Ok third time lucky again. Attempted to disable version checking in source:

https://www.androidfilehost.com/?fid=24694152805485277

.
[Galaxy Tab S2 Android Development] Lightn1ng:
It doesn't boot at all, hangs at the Tab S2 screen.

Looks like you've encountered something that happened to me when I tried the source hack:

qcrypto_module: module_layout: kernel tainted.
qcrypto_module: exports duplicate symbol compat_qcedev_ioctl (owned by kernel)
[Galaxy Tab S2 Android Development] ashyx:
I dont think the change I did would prevent the kernel from booting.

I think that's down to something else I did.

Gonna check and rebuild.
[Galaxy Tab S2 Android Development] Lightn1ng:
Trust me, I've compiled with and without the mods to module.c and reproduced this myself ;)
[Galaxy Tab S2 Android Development] ashyx:
What change did you make to module.c?

It seems disabling version checking completely may cause the kernel not to boot, I think this also happened when disabling it completely in the config.

This will be my last attempt today as I'll be away from the PC most of the weekend. Let me know if you come up with anything.

https://www.androidfilehost.com/?fid=24591000424964725

.
[Galaxy Tab S2 Android Development] Lightn1ng:
Will try now.

I've tried commenting out this line and it doesn't boot.

thanks! I'll keep looking into this myself. Have a nice weekend.
[Galaxy Tab S2 Android Development] ashyx:
I think I have come to the conclusion the issue is with the kernel source.

When looking over the error logs for the previous kernel as to why wifi would not work it is apparent it is was because of module signature verification.

Nowhere I can see does it complain of symbol version layout mismatch whereas both errors are present with the new kernel source.

Once we remove signature verification we are simply left with the symbol version error which we shouldn't have as the Vermagic is identical in the kernel to the modules.

There is an APG2 source available which may be worth compiling.

Also incidentally have you tried the ADP9 permissive kernel with the APG1 rom?
[Galaxy Tab S2 Android Development] Lightn1ng:
That's really interesting. Maybe we should take a couple files (module.c maybe?) from the old apd9 sources and try them in the apg1 sources? Or would they not match
[Galaxy Tab S2 Android Development] ashyx:
They are actually identical as far as I can see.
[Galaxy Tab S2 Android Development] Lightn1ng:
If you're still looking for a somewhat "dirty" fix, this is pure gold:

https://github.com/Lightn1ng/kernel_gts28vewifi/blob/master/include/linux/vermagic.h
[Galaxy Tab S2 Android Development] ashyx:
On the road at the moment so can't look at this properly but a little confused as to how this is gonna solve the issue?

As for as I can see this is for module signing?
[Galaxy Tab S2 Android Development] Lightn1ng:
Seems like the only way the mismatch was occurring was the "modversions" string. So if we clear the modversions string, it should fake it into loading.

However, me and CTXz tried that. THE MODULE DID LOAD - but Wifi hung upon turning on. This is the dmsg of that. Seems like Wifi just isn't meant to be... :(
[Galaxy Tab S2 Android Development] ashyx:
Never say never as I have something I'm gonna try out when I get to the PC.

I still don't understand the modversions string error as I had them identical and it still failed to load. [emoji19]
[Galaxy Tab S2 Android Development] ashyx:
I built this kernel with module signing on.

I have included the qca_cld_wlan.ko

Can you rename the original and replace with the one in the zip.

It may turn out that it accepts the key, but still refuses to load because of the symbol module_layout version error.

https://www.androidfilehost.com/?fid=24694152805485528

Also could you upload your qca_cld_wlan.ko module so I can have a look at it as it seems your wlan module has the incorrect checksum?

Going back to post http://xdaforums.com/showpost.php?p=68596538&postcount=108 your wlan module has the checksum for the symbol module_layout as 674F25D1, however it should be 8E314A58. Because of this the module was never going to load.

I have checked the qca_cld_wlan.ko module I pulled from the APG1 firmware and it does indeed have the matching checksum: 0x8e314a58

This means that the module I provided should match the kernel symbol version whereas yours does not. Why I do not know?!

So its important I look at your wlan module to check its symbol version.

.
[Galaxy Tab S2 Android Development] Lightn1ng:
Will try to test tomorrow. Thanks for the work, ashyx! :D
[Galaxy Tab S2 Android Development] samteeee:
@OP

Great work bro.

I was just wondering if you'll make one for T713XXU1APG1 anytime soon.

Thank you.
[Galaxy Tab S2 Android Development] Lightn1ng:
That's what we have been working on in the past couple pages.

Which reminds me...

---------- Post added at 07:29 PM ---------- Previous post was at 07:17 PM ----------

@ashyx

This kernel is working with the old AND new wifi .ko file... What did you do differently to this kernel than the last one??? wifi works great too, with AND without the new qca_cld file.

I'm dead serious, I really want to know what was different about this kernel.

THANKS SO MUCH! :D

---------- Post added at 08:21 PM ---------- Previous post was at 07:29 PM ----------

It works! :D

I recompiled it with the module signature verification ON, as you talked about, and it didn't work. The dmesg showed this:

wlan: module magic mismatch: modmagic "3.10-84-8374498 SMP preempt mod_unload modversions aarch64" should be vermagic "3.13.10-84-8374498+ SMP preempt mod_unload modversions aarch64"

Really? A plus sign? So, I figured that I would not let that plus sign stand in between me and victory. So I, as a couple sites on the internet said, renamed the .git directory to .gitold. Recompiled, and boom. Working wifi on my compiled kernel!

This would not have been NEARLY possible without you, ashyx. THANKS FOR ALL THE HALP! :D

Also, you can safely upload your previous image as a working one to the OP if you like.
[Galaxy Tab S2 Android Development] ayamgoreng:
[MENTION=6553354]Lightn1ng[/MENTION] : correct me if I'm wrong does that mean we will see wifi fix for all firmware ?

thank you
[Galaxy Tab S2 Android Development] dxxvi:
Can the T713XXU1APG1 firmware be found anywhere on any android file host? It takes 7 hours to download from https://samsung-firmware.org/model/SM-T713/region/XAR/.
[Galaxy Tab S2 Android Development] ashyx:
Updato
[Galaxy Tab S2 Android Development] chrisliphart:
No Wifi

Installed this on my T713 and it broke wifi. Any idea how to fix that? I stupidly didn't backup my boot.img.
[Galaxy Tab S2 Android Development] ashyx:
Download the firmware from the site posted above.
[Galaxy Tab S2 Android Development] chrisliphart:
I'd already started downloading that thinking that might be all I can do. lol

Probably a dumb question, but do I need to fully flash, or can I extract the boot.img and just flash that?
[Galaxy Tab S2 Android Development] ashyx:
Just flash the boot.img with twrp.
[Galaxy Tab S2 Android Development] chrisliphart:
Sweet! Now to wait the million hours for it to download. lol
[Galaxy Tab S2 Android Development] ashyx:
Updato?
[Galaxy Tab S2 Android Development] chrisliphart:
Lost my connection, so I have to start over. Downloading from there is incredibly slow. Really kicking myself for not backing up my boot.img...
[Galaxy Tab S2 Android Development] ashyx:
Updato is free and full speed.

http://updato.com/firmware-archive-select-model
[Galaxy Tab S2 Android Development] chrisliphart:
Oh! Thanks for the link! Downloading now.