My setup with Ubuntu and a custom permissive Kernel - Galaxy Note Pro 12.2 General

Hey everyone. I bought this device specifically because I do a lot of work on linux in command line world and I though it would be the perfect device when combined with the Logitech Pro keyboard and Complete Linux Installer (it's an app on Google Play). It turned out to be quite a bit of work getting everything working because of Knox and SELinux. Eventually I got a custom kernel working that allows me to toggle SELinux between permissive and enforcing.
I attached an Odin flashable tar that works on the SM-P900 (wifi version). I am on the North American version, so I have no idea whether it will work in other regions. If you flash this kernel then there are a few things you need to know:
I'm assuming you already have root on your device.
When you boot it will still be in "Enforcing" mode. This change simply allows you to use the "setenforce" terminal command or any of the apps on Google Play that do this for you.
You might experience some wifi weirdness after you flash the kernel. You just need to open up /system/build.prop and change ro.securestorage.support from true to false and then reboot to resolve the issue.
If you have a different version of the device or want to compile it yourself for any reason I wrote an article describing how I compiled it here:
http://graemehill.ca/compiling-permissive-android-kernel/
I also did a few other things to fix the keyboard and get linux running properly, so if you're interested in that I described my setup in more detail here:
http://graemehill.ca/turning-a-galaxy-note-pro-into-a-linux-laptop/

Thank you for this!
Sent from my SM-P900 using Tapatalk

trying to build kernel
I'm trying to follow your guide to compile a kernel from source. I have installed (on my Win 8.1_64 PC) Android SDK/NDK. GnuWin32, JavaJRE, and downloaded SM-P900 kernel source.
I'm getting errors at "Apply Kernel Config" step.
here's the output: http://pastebin.com/yFqDrNY8
Thanks for your help
Don :good:

dodo99x said:
I'm trying to follow your guide to compile a kernel from source. I have installed (on my Win 8.1_64 PC) Android SDK/NDK. GnuWin32, JavaJRE, and downloaded SM-P900 kernel source.
I'm getting errors at "Apply Kernel Config" step.
here's the output: http://pastebin.com/yFqDrNY8
Thanks for your help
Don :good:
Click to expand...
Click to collapse
It looks like you're in Windows. To my knowledge it is not possible to compile a Linux kernel in windows. I would recommend downloading virtual box and installing some Linux distro in there. This is what I was talking about in the "environment" section at the top of the article.
For android development I find that you need access to a lot of tools where some are only available on Windows and others are only available on Linux so a Windows PC with a Linux VM is ideal in my opinion.

Oh ok, no problem. I just misread the guide. I've setup a build environment in a vm before to compile aosp for my Nexus 10. Shouldn't be too hard to do it again. I recently rebuilt my pc so the vm I had got nuked.
Sent from my SM-P900 using Tapatalk

ok I got my Ubuntu VM up and running using this guide
http://forum.xda-developers.com/showpost.php?p=50748836&postcount=25
installed android NDK to ~android/NDK, and unzipped the kernel source to ~android/kernel
followed your guide to build a SELinux permissive kernel but i'm getting some errors when trying to compile. here's the output:
http://pastebin.com/Npdu7J5h
EDIT: retried doing the EXPORT command and now it seems to be compiling

dodo99x said:
EDIT: retried doing the EXPORT command and now it seems to be compiling
Click to expand...
Click to collapse
When you export a variable in the terminal it only exists for that one session, so if you open a new terminal instance you need to run the command again. If you want to set it permanently normally you can just put the export command into ~/.bashrc

Oh I see. I'll give that a try. I was able to create a new boot.img following the rest of your guide. I have yet to try flashing it though. Will have to find some info about all the kernel options that can be set. Hopefully be able to integrate HMP to get all eight cores running at the same time.
Sent from my SM-P900 using Tapatalk

Cool, let us know how that goes. I wonder how much it would affect battery life.

Graeme H said:
Hey everyone. I bought this device specifically because I do a lot of work on linux in command line world and I though it would be the perfect device when combined with the Logitech Pro keyboard and Complete Linux Installer (it's an app on Google Play). It turned out to be quite a bit of work getting everything working because of Knox and SELinux. Eventually I got a custom kernel working that allows me to toggle SELinux between permissive and enforcing.
I attached an Odin flashable tar that works on the SM-P900 (wifi version). I am on the North American version, so I have no idea whether it will work in other regions. If you flash this kernel then there are a few things you need to know:
I'm assuming you already have root on your device.
When you boot it will still be in "Enforcing" mode. This change simply allows you to use the "setenforce" terminal command or any of the apps on Google Play that do this for you.
You might experience some wifi weirdness after you flash the kernel. You just need to open up /system/build.prop and change ro.securestorage.support from true to false and then reboot to resolve the issue.
If you have a different version of the device or want to compile it yourself for any reason I wrote an article describing how I compiled it here:
http://graemehill.ca/compiling-permissive-android-kernel/
I also did a few other things to fix the keyboard and get linux running properly, so if you're interested in that I described my setup in more detail here:
http://graemehill.ca/turning-a-galaxy-note-pro-into-a-linux-laptop/
Click to expand...
Click to collapse
I tried to install this using VBox Odin and I couldnt get it to work. Tried using BOOTLOADER and also PDA. Not sure the correct one but neither worked for me. Also, Moblie ODin hasnt yet worked but when it does, things will be much easier for me at least.
I have a newly rooted SM-900. I will have to find time someday to compile the kernel against what I have. Must be a slightly newer version than the one you posted. That is only thing I can think since I just got my 12.2. Thanks for the detailed info.

Camera?
Hey, thanks for the great kernel. It's working as expected to enable permissive mode, but I'm having one issue with it. When I use your kernel, the camera is disabled (says something like "Camera Failed"), and it won't work even when trying different software besides stock, like Google Camera. Anyway, clearing cache, etc. doesn't do anything, but the camera works again when I flash the stock kernel. Is this related to permissive mode or something else with the settings?

aarstar said:
Hey, thanks for the great kernel. It's working as expected to enable permissive mode, but I'm having one issue with it. When I use your kernel, the camera is disabled (says something like "Camera Failed"), and it won't work even when trying different software besides stock, like Google Camera. Anyway, clearing cache, etc. doesn't do anything, but the camera works again when I flash the stock kernel. Is this related to permissive mode or something else with the settings?
Click to expand...
Click to collapse
The camera fails for me too. I dumped a logcat and isolated the issue here:
W/ActivityManager( 2746): Permission Denial: get/set setting for user asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL
V/ApplicationPolicy( 2746): isApplicationStateBlocked userId 0 pkgname com.google.android.GoogleCamera
But... the camera is not a huge deal. It did, however, break wifi. I did not get a logcat of that yet, but I would assume it is also a permission issue.

Wifi works for me using the fix mentioned in the OP. Also, thanks for looking into the camera issue. I agree it's not a big deal, and it's easily fixed by flashing the stock kernel, until someone figures out a proper fix.

aarstar said:
Wifi works for me using the fix mentioned in the OP. Also, thanks for looking into the camera issue. I agree it's not a big deal, and it's easily fixed by flashing the stock kernel, until someone figures out a proper fix.
Click to expand...
Click to collapse
Wow, I totally missed that entire line in the OP... You literally just made my whole day. I fought this all day long, desperate to get ubuntu working. Thank you for pointing that out.

I get "xt_mark.h" is missing (no such file or directory) error. Any idea why that may be?
I'm using the source for p900 international hoping that I may sidestep the camera issue that way (by enabling permissive to the international kernel I mean), but as it stands it does not compile.
I've googled it but until now it was/is to no avail...

Graeme H said:
Hey everyone. I bought this device specifically because I do a lot of work on linux in command line world and I though it would be the perfect device when combined with the Logitech Pro keyboard and Complete Linux Installer (it's an app on Google Play).
Click to expand...
Click to collapse
Hey Graeme H,
we both have the same intention. I am downloading the international Kernel at the moment and will compile it again for you guys. The download takes a little longer as I am at vacations.
I am going this route: doviak.net/debian-kit/debian-kit_p00.html . In the future I would like to have arch linux running on this device but a customized debian would be okay for the beginning, too.
Eventually I will try to use framebuffer instead of vnc or something like that. I would love to use sublime-text and dwm on that device with that resolution
Good luck guys. I will try to update.
Edit: hehe I have dwm in front of me now and the resolution is so high that I am barely able to read
Compiled the kernel and flashed in on my device but my camera is still not working. Maybe we need to edit the config:
# Camera sensor devices
#
# CONFIG_VIDEO_OV7670 is not set
# CONFIG_VIDEO_VS6624 is not set
# CONFIG_VIDEO_MT9M032 is not set
# CONFIG_VIDEO_MT9P031 is not set
# CONFIG_VIDEO_MT9T001 is not set
# CONFIG_VIDEO_MT9V011 is not set
# CONFIG_VIDEO_MT9V032 is not set
# CONFIG_VIDEO_TCM825X is not set
# CONFIG_VIDEO_SR030PC30 is not set
# CONFIG_VIDEO_NOON010PC30 is not set
CONFIG_VIDEO_S5K6B2=y
# CONFIG_S5K6B2_CSI_C is not set
CONFIG_S5K6B2_CSI_D=y
CONFIG_S5K6B2_POSITION_FRONT=y
# CONFIG_S5K6B2_POSITION_REAR is not set
CONFIG_VISION_MODE=y
# CONFIG_VIDEO_M5MOLS is not set
# CONFIG_VIDEO_S5K6AA is not set
Click to expand...
Click to collapse

Rather than each people compiles its kernel, could someone put a link to download the international kernel compiled? I think this would allow more people to get this kernel. Thank

PHP:
smylion said:
Rather than each people compiles its kernel, could someone put a link to download the international kernel compiled? I think this would allow more people to get this kernel. Thank
Click to expand...
Click to collapse
Compiled from Kitkat source. [ur#l]erhan.es/upload/sm-p900-permissive-intl.tar[/url] (odin)

Thank you but the link does not work

smylion said:
Thank you but the link does not work
Click to expand...
Click to collapse
Sorry, it is erhan.es/upload/sm-p900-intl-permissive.tar

Related

[Req] tun.ko for Epic stock kernel (DI18 and EB13)

Hello - I am attempting to connect to a cisco vpn using the instructions here but have run into a "common" problem- I copied a post over on the EVO forum- I have exactly the same problem- could some one help me out to compile a tun.ko that is compatible with the current stock kernel- thanks in advance!!! The instructions are found here
I am attempting to get vpnc (for cisco vpn) working on the epic but have run into a snag getting the tun.ko module loaded. When I attempt to insmod tun.ko I get exec format error and dmesg yields
tun: version magic '2.6.32.9-27220-g328f560 preempt mod_unload ARMv7 ' should be '2.6.29-a2443432 preempt mod_unload ARMv7 '
I found an excellent post (#12) by sjakub at hxxp://forum.xda-developers.com/showthread.php?t=630703&page=2
which describes step by step how to overcome this but unfortunately I have no access to linux in order to attempt this myself.
Would anyone be kind enough to compile the proper file for please?
Thanks very much.
Click to expand...
Click to collapse
jimmyz said:
could some one help me out to compile a tun.ko that is compatible with the current stock kernel
Click to expand...
Click to collapse
Does this work?
Mirror link (does not require forum login):
tun-DI18.zip
Thanks- will try it a soon as I get home!
EDIT: I did not receive any errors with your file- I will report back as soon as I try to connect to VPN!
Sent from my SPH-D700 using XDA App
I was able to insmod it, but my modem is down at home so I can't start my VPN.
I'll be jumping for joy if this works, I beat my head against the wall trying to find a good tun.ko for DI18 a few days back.
And I'm tunneled in. Seems to be working but I'm having trouble getting my traffic to route right so far, but I doubt that's related to the tun.ko.
Thanks a ton!
Hemick said:
And I'm tunneled in. Seems to be working but I'm having trouble getting my traffic to route right so far, but I doubt that's related to the tun.ko.
Thanks a ton!
Click to expand...
Click to collapse
what version of the VPN connections are you using? Could you find it on the market?
mkasick said:
Does this work?
Click to expand...
Click to collapse
Mkasick- thanks again for the tun.ko!!! After some troubleshooting (I needed to append a domain setting) I got it to work!!!!!
Can you please set up a way to donate to you- I would like to buy you a beer! I was going to ask for a kernel that automatically loads tun.ko but the vpn_connections apk seems to do it automatically
thanks again for you help!!!!
jimmyz said:
Can you please set up a way to donate to you- I would like to buy you a beer!
Click to expand...
Click to collapse
I appreciate the gratitude. Unfortunately I think it would take me far longer to figure out how to setup donations than it did to compile the module. So, in the meantime, enjoy a beer yourself as a "thanks" to me.
Thank you for this
I have been waiting for this too. Now I need to generate an OpenVPN configuration for our ssl VPN.
I registered just so I could download this module.
I must be doing something wrong because when I try to insmod I get init_module 'tun.ko' failed (Exec format error). I'm at 2.1-update1, 2.6.29, and SPH-D700 ECLAIR.DI18 so guess I'm not holding my mouth right.
flash_c4 said:
I must be doing something wrong because when I try to insmod I get init_module 'tun.ko' failed (Exec format error). I'm at 2.1-update1, 2.6.29, and SPH-D700 ECLAIR.DI18 so guess I'm not holding my mouth right.
Click to expand...
Click to collapse
I decided to try and copy the file over again and this time it worked so something must have happened during the transfer the first time.
How does one "install" this module? I have the Xtreme 1.0.1 kernel and I ran "insmod -v tun.ko" and it seems to stop the FC on the cisco ipsec vpn. But the module does not survive a reboot. I'm guessing I need to recompile it into the kernel? Can someone post some steps on how to do that?
Also, when using the vpn, after hitting connect, it immediately says failed. I'm not sure if that's because I didn't get tun.ko installed correctly, or just bad credential.
you all rock
first time poster, short time lurker...just started flashing my droid a few weeks ago, and am now also playing with an epic.
just wanted to comment on how much i liked this thread, even though i understand, uh, not much of it. you all rock! keep up the open source mentality and for my part i'll keep purchasing/donating for things i enjoy using. And hefting beers for all of you
jimmyz said:
Mkasick- thanks again for the tun.ko!!! After some troubleshooting (I needed to append a domain setting) I got it to work!!!!!
Can you please set up a way to donate to you- I would like to buy you a beer! I was going to ask for a kernel that automatically loads tun.ko but the vpn_connections apk seems to do it automatically
thanks again for you help!!!!
Click to expand...
Click to collapse
droid is currently running UD 2.0 with Chevy 1.25 low voltage kernel - fast and awesome!! quadrant in the 1100s
epic currently using syndicate fully loaded 1.0.2 but also tried and liked the froyo betas... quadrant = 1207
Kernel module
Having the tun.ko file alone might not work. For example, I have a Desire HD. I extracted the kernel config from /proc/config.gz and saw that the TUN/TAP module was not even included in the kernel as a module (M). Correct me if I'm wrong but if the kernel isn't even compiled for support for a module, the module will not load even if you try to load the tun.ko module using insmod/modprobe. Your kernel either needs to have the module selected as (M) or (Y) - if you want it buit-in.
Therefore, I had to:
(1) grab the Desire HD sources from http://developer.htc.com
(2) extract the config for that kernel from /proc/config.gz
(3) Also get hold of the android ndk compiler for x-platform compilation for the arm architecture.
(4) compile the kernel sources using that config file in (2) but also with support for tun.ko as a module (m). You can do this with the command 'make menuconfig' in the kernel sources dir. The kernel sources I grabbed from the url above from htc seemed to have a few files missing. One of them was the ntrig.c file, which I got from the main android kernel sources instead.
(5) Once I got them compiled, this generated the kernel as bZimage a few modules (including tun.ko).
(6) For me the next issue was to get the kernel on my device because unless you have a bootloader than ignores signatures on the kernel, you won't be able to upload your new kernel.
(7) I flashed my bootloader to clockworkmod. Used this guide: http://forum.xda-developers.com/showthread.php?t=805327
(8) once i unlocked the bootloader I issued a 'fastboot flash zimage zImage' (my compiled version of the kernel)
(9) Uploaded the tun.ko too and did an insmod to loads tun.ko and it worked.
rcboosted said:
How does one "install" this module?
Click to expand...
Click to collapse
You don't, you have to "insmod" it on every reboot.
rcboosted said:
I'm guessing I need to recompile it into the kernel?
Click to expand...
Click to collapse
You can compile a kernel with the tun driver built-in, so you don't need to rely on an external module. But it's tougher to keep up with kernel updates that way. Ask in the thread of your favorite kernel where to obtain the source and instructions for compiling it.
shakeup said:
Correct me if I'm wrong but if the kernel isn't even compiled for support for a module, the module will not load even if you try to load the tun.ko module using insmod/modprobe. Your kernel either needs to have the module selected as (M) or (Y) - if you want it buit-in.
Click to expand...
Click to collapse
That's not the case. The kernel does need to be compiled with general module support, but this will always be the case since the Epic uses a fair number of proprietary driver modules.
Setting a particular driver to be compiled as a module (=m) in the kernel config simply means the module, and any of its dependencies, are built alongside the kernel. The kernel itself is the same in either case, unless the module requires a kernel option/driver that can't be compiled as a module, which is rare these days, but was more common in Linux 2.4 and earlier.
In any event, the tun.ko posted here does work with stock DI18.
Edit: There is an issue when you try to compile a driver module that requires an option to be enabled in a different driver that's built-in to the kernel you're using but is currently disabled. I can't think of a good example of such at the moment, but I think I have ran into it in the past.
It's obvious I'm no linux or android expert by any means. I have no clue how to compile a kernel or recompile a module. So all this talk about recompiling is way over my head.
I'm just trying to connect to a IPSec vpn server using vpnc client (http://code.google.com/p/get-a-robot-vpnc/). Currently running Epic Experience rom and the latest Xtreme kernel. Everytime I tried to connect, it fails immediately. I've verified my credentials are correct, so I don't know what else I can do except wait for CM 6 to come out for the Epic.
rcboosted said:
Everytime I tried to connect, it fails immediately.
Click to expand...
Click to collapse
I'm not familiar with that particular program, but you can get a better idea of what's going wrong with a logcat dump.
For example, your credentials might be correct, but your phone might still have difficulty resolving the server, negotiating the connection, etc.
Thanks for the help. I tried logcat and the authentication part seems to be ok, this is what happens after the authentication:
D/VPN_Connections(29594): done interacting with vpnc
D/VPN_Connections(29594): process stderr:
D/VPN_Connections(29594): Read vpnc process line as null
D/VPN_Connections(29594): Attempt to read vpnc process id did not return anything
D/VPN_Connections(29594): process had died, return as failed connection
It doesn't tell me much, but maybe it means something to you.
rcboosted said:
It's obvious I'm no linux or android expert by any means. I have no clue how to compile a kernel or recompile a module. So all this talk about recompiling is way over my head.
I'm just trying to connect to a IPSec vpn server using vpnc client (http:/9/code.google.com/p/get-a-robot-vpnc/). Currently running Epic Experience rom and the latest Xtreme kernel. Everytime I tried to connect, it fails immediately. I've verified my credentials are correct, so I don't know what else I can do except wait for CM 6 to come out for the Epic.
Click to expand...
Click to collapse
I would guess you need a tun.ko specifically for that kernel you are using (Xtreme)- maybe its best to go back to stock- use the tun.ko in this thread and see if you can get it to work?

Ambient Light Sensor on KF works!

Hi all,
I just got the ambient light sensor of the KF#1 working and posted some instructions on my small Kindle Fire Hardware Blog (no ads there, simply lazy to write it up again here for the forum): http://hack-a-fire.blogspot.de/.
All you need are either the original kernel sources from Amazon or the 3.0 kernel from Hashcode (I double-checked that the driver code is almost the same there, so it should also work with that one).
The driver code itself is not in best shape and we may want to clean it up, e.g. suspend doesn't seem to work properly for me.
Let me know if you need further help...
Best,
stylon
stylon said:
Hi all,
I just got the ambient light sensor of the KF#1 working and posted some instructions on my small Kindle Fire Hardware Blog (no ads there, simply lazy to write it up again here for the forum): http://hack-a-fire.blogspot.de/.
All you need are either the original kernel sources from Amazon or the 3.0 kernel from Hashcode (I double-checked that the driver code is almost the same there, so it should also work with that one).
The driver code itself is not in best shape and we may want to clean it up, e.g. suspend doesn't seem to work properly for me.
Let me know if you need further help...
Best,
stylon
Click to expand...
Click to collapse
Nice Blog.:laugh:
Thanks for this
Sent from my Amazon Kindle Fire using xda premium
this is awesome! nice find
Sent from my Nexus 4
Also works on hashcode's 3.0.50 kernel
FYI: I just got Hashcode's 3.0.50 kernel (recent pull from his repo) running and also tried out the ambient light sensor driver from there and it works, too.
Best,
STYLON
stylon said:
FYI: I just got Hashcode's 3.0.50 kernel (recent pull from his repo) running and also tried out the ambient light sensor driver from there and it works, too.
Best,
STYLON
Click to expand...
Click to collapse
A couple things. Do you know if hashcode will be putting your fix into his next update?
Also, I was not exactly able to follow all of your commands. I read and reread your blog, but I was not sure where to do the commands, or what exactly I need to make everything work.
Any help would be appreciated. Thank you, stylon.
Sent from my Amazon Kindle Fire using Tapatalk HD
jma9454 said:
A couple things. Do you know if hashcode will be putting your fix into his next update?
Also, I was not exactly able to follow all of your commands. I read and reread your blog, but I was not sure where to do the commands, or what exactly I need to make everything work.
Click to expand...
Click to collapse
Technically, all he has done is enable the light sensor such that its value (representing the ambient light level) can be measured as raw output. There would still need to be a bit of work done to have our Kindle Fires adjust brightness automatically based on this. But it's a darn good start!
jma9454 said:
A couple things. Do you know if hashcode will be putting your fix into his next update?
Also, I was not exactly able to follow all of your commands. I read and reread your blog, but I was not sure where to do the commands, or what exactly I need to make everything work.
Any help would be appreciated. Thank you, stylon.
Click to expand...
Click to collapse
Hashcode's 3.0.50 kernel source does include the driver and I think Hash's default config even compiles and links it in. However, the driver initialization is commented out in Hash's kernel source. So, on none of Hash's kernel's you will get the driver to say any word.
The driver code is in no good shape at all (suspend not working, awkward I2C initialization, global variables all over). I'm in the process of rewriting it and will send the rewritten driver to Hash for inspection once I'm finished.
What you can do to experiment with the sensor is the following:
1. compile your own kernel from Hash's config, take Hash's boot.img, extract the ramdisk and make a new boot image with your compiled kernel, then flash it to the boot partition via fastboot (keep the old boot.img as you most likely want to reflash to the original boot.img after finishing experiments)
2. follow my instructions on the blog, i.e. uncomment the driver initialization, do "echo 1 > /sys/.../enable" to enable the driver from the user space, and read the lux value and don't forget to shed some light on the sensor (I did the first time I tried )
But be warned: suspend is not working, that means your KF will either not suspend or even crash with a kernel panic if you try. That's why it's not a good idea to enable the driver in it's current state.
Best,
STYLON
Geko45 said:
Technically, all he has done is enable the light sensor such that its value (representing the ambient light level) can be measured as raw output. There would still need to be a bit of work done to have our Kindle Fires adjust brightness automatically based on this. But it's a darn good start!
Click to expand...
Click to collapse
Indeed, I haven't done much more yet than enabling the disabled driver. And I've not done anything to get it working in Android. So, the user-level code still needs to be written.
From the current state of the kernel-level driver I suspect that Amazon never got suspend working on the driver and therefore decided to exclude it from the product. Maybe the sensor was never high on their priority list anyway and that's why they also never spend much time to improve the quality of the driver. Also, the sensor looks a bit sensitive to me, but that could be fixed by simply averaging over time in a user-level driver.
My rewrite of the kernel-level driver will not change the current sysfs user-level API, so maybe someone wants to volunteer to start on the user-level implementation for Android already. Unfortunately, I don't know too much (yet) about the user-level drivers for Android. I know liblights, but that's for the LCD backlight. Is libsensors supposed to handle also ambient light sensors?
Best,
STYLON
I have a Android 4.2.2 ROM from twa_priv and I have a 3.0.63 Kernel, will this work? I have not found the driver on my kindle. I used the CM File Manager with Rooted Permissions.
Sent from my Nexus 7 using xda app-developers app
JRBX550 said:
I have a Android 4.2.2 ROM from twa_priv and I have a 3.0.63 Kernel, will this work? I have not found the driver on my kindle. I used the CM File Manager with Rooted Permissions.
Click to expand...
Click to collapse
I doubt that the driver will work on your configuration as is, as all KF kernel sources that I've seen so far contain the same disabled driver code. As I said, even if somebody who compiles a kernel enables the driver in the kernel config, it's still disabled in the code. So, although in principle part of the driver is then linked into the kernel, it's not visible via sysfs (/sys/...) and therefore there's no way to enable it lateron from user-space as I mentioned in my blog.
I think it's best to stay calm as a user for a couple of weeks until I've reworked the driver code. I'm working together with Hashcode and twa_priv already and can contribute directly to the kernel code since yesterday.
Best,
STYLON
Just added a first rewritten version of the driver to my github respository at https://github.com/stylon/kernel_omap_otter-common/ for people that want to play around with it.
The sysfs device has moved to /sys/devices/platform/lightsensor-level. You still need to enable it by "echo 1 > /sys/devices/platform/lightsensor-level/enable", but then it should also survive suspend/resume cycles now. lux values can either be read as ascii from /sys/devices/platform/lightsensor-level/lux or as continuous stream of binary values from /dev/input/event? (was 4 for me always). The stream is delta-thresholded (can be set via sysfs, too), meaning that it only outputs a new value if it's significantly different from the previous value.
One shortcoming: although I've rewritten the driver with care to load as modules, it's still a platform device driver in nature, meaning that it'll fail to load after the first insmod/rmmod cycle.
Best,
STYLON

[Nook Simple Touch][FW1.2.1] Kernel with Two Point Touch Mod for Download

Hi all,
Thanks to the huge discount on Nook Simple Touch earlier this month in UK, hopefully the device will regain some popularity and draw more attention from the XDA community. Unfortunately all the new devices come with firmware v1.2.0 while most posts in the forum were for the outdated v1.1.x, including the brilliant multitouch mod from wheilitjohnny. I know there is a way to downgrade to v1.1.x but I still prefer v1.2.1 after I tried v1.1.0. So I decided to port wheilitjohnny's mod to v1.2.1. After one week's hard work as I'm a newbie to the Linux world, I finally built the kernel and saw no more boot loop. All the multitouch test tools from Market correctly reported up to 2 fingers.
Before put the kernel to your device, make sure it's already running 1.2.1 firmware and rooted. You can find the link to the official upgrade file in the forum and you can use Nook Manager to root your device which is also available in the forum.
Then please found the kernel attached as zip file. You need to unzip the file and follow arkusuma's post on how to install it.
http://forum.xda-developers.com/showthread.php?p=24168019#post24168019
All credits go to wheilitjohnny. It's all his work.
One lesson I learned for all the developers who may be interested in more mod development is, to make a bootable kernel you MUST use toolchain from "http://www.codesourcery.com/sgpp/lite/arm/portal/release1293". Select the IA32 GNU/Linux TAR one (MD5: c6930d14801b4fab6705d72df013e58b). Any other toolchains including Google's own or even another version from codesourcery won't work. The generated kernel built with any other toolchains will only cause boot loop.
[UPDATE] Oh forgot to say, you need to add one more line to your /etc/permissions/required_hardware.xml on your device. You should be able to find the first line already in the file, just add the second line.
<feature name="android.hardware.touchscreen" />
<feature name="android.hardware.touchscreen.multitouch" />
More info please check http://forum.xda-developers.com/showthread.php?t=1563645
Does this kernel work with NoRefresh (I assume debug2 version for FW 1.2.x)?
koltshin said:
Does this kernel work with NoRefresh (I assume debug2 version for FW 1.2.x)?
Click to expand...
Click to collapse
Yes. I have NoRefresh_Debug2 and Fast Mode mod running together with this kernel. No problem so far.
Thx. Does this kernel works for both Nook Simple Touch and the Glow light model?
Sent from my GT-N7100 using xda app-developers app
waynesi said:
Hi all,
One lesson I learned for all the developers who may be interested in more mod development is, to make a bootable kernel you MUST use toolchain from "http://www.codesourcery.com/sgpp/lite/arm/portal/release1293". Select the IA32 GNU/Linux TAR one (MD5: c6930d14801b4fab6705d72df013e58b). Any other toolchains including Google's own or even another version from codesourcery won't work. The generated kernel built with any other toolchains will only cause boot loop.
I've had good success with the toolchain on Ubuntu; just install the gcc-arm-linux-gnueabi packages, and add the Makefile and head.S changes that were in the fastmode2 patch; I've not tried building this touch mod, but it has let me build my own kernels with usb host and with TLS support.
Click to expand...
Click to collapse
I can confirm that this kernel works on a NST with Glowlight on FW. 1.2.1 Thanks for the hard work.
Can I use this kernel for 2 fingers zoom in? I tried it with aldiko, but do not work with pdf.
You need to unzip the file and follow arkusuma's post on how to install it.
http://forum.xda-developers.com/showthread.php?p=24168019#post24168019
Click to expand...
Click to collapse
Could somebody please help me installing this without adb over wifi? Because i have internet only over ethernet. I was thinking of CWM.
Thanks
Sagittarius0 said:
... without adb over wifi?
Click to expand...
Click to collapse
Well, how about ADB over USB?
Renate NST said:
Well, how about ADB over USB?
Click to expand...
Click to collapse
Can you please help me exactly how to do it? I have tried it once for some other reason and it didn't work... :crying: And after that I searched for it here and found a post which said that adb works only over wi-fi.
And I am quite new with android so please explain the process well.
waynesi said:
Yes. I have NoRefresh_Debug2 and Fast Mode mod running together with this kernel. No problem so far.
Click to expand...
Click to collapse
Fast Mode don't works on my NST fw 1.2.1. What app exactly are you using to activated the fastmode?
update: this kernel don't have / sys/devices/platform/omap3epfb.0/graphics/fb0/fmode so fastmode is not possible
tebra said:
Fast Mode don't works on my NST fw 1.2.1. What app exactly are you using to activated the fastmode?
Click to expand...
Click to collapse
http://forum.xda-developers.com/showpost.php?p=39529578&postcount=140
Step one, use noogie and do a full backup of your Nook.
It should be almost 2GB file size.
Using noogie, copy uRamdisk.
Use bootutil.exe (in signature):
Code:
bootutil /x /v uRamdisk init.rc
[i]edit init.rc[/i]
bootuil /r /v uRamdisk init.rc
The line you edit out (with a number sign) is
Code:
[color=red]#[/color] setprop service.adb.tcp.port 5555
(uncomment this line to go back to using WiFi ADB)
Copy uRamdisk back to the Nook.
Reboot your Nook.
Read up about getting the ADB drivers working on your desktop here:
http://forum.xda-developers.com/wiki/BN_Nook_Simple_Touch/Installing_ADB
This thread is old, I know, but hopefully someone will spot this. So I took the plunge and installed Multi-Touch (running FW 1.21 and rooted). I followed the instructions for the ADB wireless method and also changed the required_hardware.xml file, resetting the permissions of the edited file to match those of the original.
Nothing is different? My original hope was that the pinch-zoom function in Dolphin 10.2.6 might work with this mod. It doesn't seem to work on either Android or Desktop settings in that browser. I can't see that it works anywhere. Maybe I need to reinstall Opera Mobile and test it there?
...
O.K., I just reinstalled Opera Mobile. No effect at all that I can discern.
Hmm....I am underclocking with No-frills CPU Control to 300 MHz. Is that the problem? Nope....changed back to 800 MHz and no effect.
So...what am I missing? Is there something I can check to be sure I did the ADB thing correctly (after I'm done using the "shell" do I just close it down or is there some closing command I should have used?). Does this mod have to be used in conjunction with something else?
I usually jump out of an ADB shell with ^C
There's an interim release of UsbMode-1.7a.apk in the signature.
If you touch the left 3/4 of the screen it will report touch coordinates.
It will indicate multiple touches.
That's the easiest way to see how many simultaneous touches your device supports.
My Nook: 2, my Kyocera: 4, my ZTE: 5
I installed a multi-touch test app from the Market and it showed that two fingers were recognized (no more), although the recognition was somewhat spotty.
I've been fussing around with it and sure enough it has begun to work with Opera Mobile, both at 800 MHz and 300 MHz (no discernible difference there). It also works very well with Perfect Viewer. It does not work with Google News and Weather (which really needs it), at least not the version that came with NookManager rooting.
Alas, it does not work with Dolphin, which was my main impetus for trying this. I've got Dolphin to the point where it is much more reliable than Opera Mobile but the only way to zoom is via a gesture which requires going to a blank screen, drawing the gesture and then returning to the current page. It makes one want to draw gestures that are not found in children's books. Although Dolphin claims pinch-to-zoom, it doesn't seem to work with the NST, at least not this version of Dolphin. Maybe I need to delve back into the past versions (which will probably be less stable in other respects...).
Well, anyway it works. I'll have to see if it affects the battery life in any significant way (I read on my Nook, too!). If not, I may as well keep it although its utility to me is limited.
Now to look at "no-refresh"......
nmyshkin, what about Google Maps?
Yes, I forgot to mention Google Maps (I was using "Places" but it amounts to the same thing). That works with multi-touch as well. I also noticed that to some extent multi-touch zooming in Opera Mobile is web-site dependent. For example, it does not seem to work at all on Wikipedia but worked OK on some other sites I tried. I just wish it would work in Dolphin
I just tried it with Orion Viewer (which I like for PDFs) and it also works there. It seemed to want to work with Kingsoft Office on the same PDF file but then the app crashed. There are other ways to magnify in both, of course.
I finally tried NoRefresh, and while it worked, I was left wondering what it is for other than as a "we can do this" feature. Lots of flickering while it made up its mind as a white-listed app was launched and then the image degradation thing. After I exited the app my screen was such a mess I had to reboot. I guess I'm used to the way the e-ink display sort of tears when scrolling (or even zooming now, for that matter). The NoRefresh just doesn't seem to give me anything I want. I have not tried FastMode. As I currently underclock to 300 MHz I am reluctant to overclock the Nook just so it will (sort of) work like something it is not and run down the battery really fast.

SELinux Permissive Kernel [SM-P600]

For those of you who want SELinux Permissive, I built this a couple of weeks ago. Set ro.securestorage.support=false in your build.prop if wifi is not working (Credit Morfic).
Flash via Odin
Disclaimer: I'm not responsible if for whatever reason you brick your device
Download
aironite said:
For those of you who want SELinux Permissive, I built this a couple of weeks ago. Set ro.securestorage.support=false in your build.prop if wifi is not working (Credit Morfic).
Flash via Odin
Disclaimer: I'm not responsible if for whatever reason you brick your device
Download
Click to expand...
Click to collapse
Thanks, this is really useful. Have you considered posting this in development?
Also do you plan to do more kernel development, for our device?
Sent from my SM-P600
LMMT said:
Thanks, this is really useful. Have you considered posting this in development?
Also do you plan to do more kernel development, for our device?
Sent from my SM-P600
Click to expand...
Click to collapse
I do plan on moving forward with developing this kernel as soon as Samsung releases kernel updates for their big.LITTLE technology. Namely Heterogenous Multi-Processing.
Wroth hug if samsung doesn't support our device do you think you could adapt their code from the new devices that will? If samsung won't give it to us I imagine a device can
Sent from my SM-P600 using XDA Premium 4 mobile app
I'll continue to develop this kernel and look at posting an update to the dev thread in the next few days. If samsung makes improvements on other devices with the Exynos 5 series, it can surely be ported to our p600's.
Duly.noted said:
Wroth hug if samsung doesn't support our device do you think you could adapt their code from the new devices that will? If samsung won't give it to us I imagine a device can
Sent from my SM-P600 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
aironite said:
I'll continue to develop this kernel and look at posting an update to the dev thread in the next few days. If samsung makes improvements on other devices with the Exynos 5 series, it can surely be ported to our p600's.
Click to expand...
Click to collapse
Thanks for the reply. I really need to turn off auto correct. It always mangles my words when I don't check before I post.
aironite said:
For those of you who want SELinux Permissive, I built this a couple of weeks ago. Set ro.securestorage.support=false in your build.prop if wifi is not working (Credit Morfic).
Flash via Odin
Disclaimer: I'm not responsible if for whatever reason you brick your device
Click to expand...
Click to collapse
This is great. No problems installing. I did need to set ro.securestorage.support=false in /system/build.prop for wifi to work. Now VPNroot and sshdroid work correctly.
I could not find an appropriate place to turn selinux off during boot (i.e. setenforce 0). /init.rc and everything in / seems to revert to original version on boot. I tried sticking it in one of the unrelated startup scripts in the /system folder, but that failed as well. Any suggestions?
Thanks a bunch!
aironite said:
For those of you who want SELinux Permissive, I built this a couple of weeks ago. Set ro.securestorage.support=false in your build.prop if wifi is not working (Credit Morfic).
Flash via Odin
Disclaimer: I'm not responsible if for whatever reason you brick your device
Download
Click to expand...
Click to collapse
Does SElinux Permissive allow us to use Linux Deploy to install linux in chroot on note.
https://play.google.com/store/apps/details?id=ru.meefik.linuxdeploy
My note is running on mk1 rooted with autoroot , however I can't use Linux Deploy to install linux in chroot, maybe SELinux enforcing is the cause.
robertchow said:
Does SElinux Permissive allow us to use Linux Deploy to install linux in chroot on note.
--cut url--
My note is running on mk1 rooted with autoroot , however I can't use Linux Deploy to install linux in chroot, maybe SELinux enforcing is the cause.
Click to expand...
Click to collapse
I am able to use Linux on Android (linuxonandroid.org), which I couldn't before installing this kernel. Also used SeLinuxModeChanger (in playstore) to have selinux set permissive on boot.
Hope that helps.
Linux Works
robertchow said:
Does SElinux Permissive allow us to use Linux Deploy to install linux in chroot on note.
https://play.google.com/store/apps/details?id=ru.meefik.linuxdeploy
My note is running on mk1 rooted with autoroot , however I can't use Linux Deploy to install linux in chroot, maybe SELinux enforcing is the cause.
Click to expand...
Click to collapse
I can say that with this kernel you get a fully functional Linux install. I have not tested Linux Deploy, because I use the Complete Linux Installer(linuxonandroid) and by using the kernel in this thread and then ether use Wanam Xposed and set the system to disable SELinux so it is always Permissive or by using the command "setenforce 0" in a terminal before Linux use then use getenforce it shows Permissive and allows for full Linux function. The command getenforce is not needed to run just for verification.
THANK YOU for this kernel!!!!
Many Thanks for this Kernel
I only registered to say thanks for this kernel. Had to use the build.prop tweak in order to get Wifi back. With this, Selinux Mode Changer, and Complete Linux Installer I was able to get Fedora 19 running on the note. Working great. So, thanks again for your work.
How to install
Can someone tell me please how i can flash this Kernel via Odin?
Amadyl said:
Can someone tell me please how i can flash this Kernel via Odin?
Click to expand...
Click to collapse
Flash it under AP
Sent from my SM-P600 using Tapatalk
---------- Post added at 11:35 PM ---------- Previous post was at 11:34 PM ----------
robertchow said:
Does SElinux Permissive allow us to use Linux Deploy to install linux in chroot on note.
https://play.google.com/store/apps/details?id=ru.meefik.linuxdeploy
My note is running on mk1 rooted with autoroot , however I can't use Linux Deploy to install linux in chroot, maybe SELinux enforcing is the cause.
Click to expand...
Click to collapse
Linux Deploy is working with this flashed.
Sent from my SM-P600 using Tapatalk
Thanks for the help and a big thank you to the developer
It worked
This is very nice i will try to install ubuntu now
Thank you very much !
Amadyl said:
It worked
This is very nice i will try to install ubuntu now
Click to expand...
Click to collapse
You might want to check the Linux thread and especially this post
http://forum.xda-developers.com/showpost.php?p=49347734&postcount=9
It tells of problems with Ubuntu even with Selinux Permissive. In any case, do post your experience there. I prefer RPM based systems as these are my daily work in commercial setups. As openSUSE ARM is still beta, I went for Fedora and it works nicely.
aironite said:
For those of you who want SELinux Permissive, I built this a couple of weeks ago. Set ro.securestorage.support=false in your build.prop if wifi is not working (Credit Morfic).
Flash via Odin
Disclaimer: I'm not responsible if for whatever reason you brick your device
Download
Click to expand...
Click to collapse
what did you change in menuconfig? I am working on enabling some drivers within the kernel and I dont want to lose the chroot linux ability. Thanks.
Sent from my SM-P600 using Tapatalk
Thank you very much for the Kernel, I think i'll try flashing it.
Do you know something about converting ROMs between familiar devices? (The Note 3 and our Note)
Edit:
When trying to install Ubuntu via LinuxOnAndroid, i'm getting the error "Unable to create loop device" (and i already installed the Kernel!).
Help?
ilayron8 said:
i'm getting the error "Unable to create loop device" (and i already installed the Kernel!).
Help?
Click to expand...
Click to collapse
The kernel only allows you to change SELinux mode, it does not change the default mode. Have you switched selinux mode to permissive via a root terminal "setenforce 0" or via an app like SelinuxModeChanger from Play?
caferick said:
The kernel only allows you to change SELinux mode, it does not change the default mode. Have you switched selinux mode to permissive via a root terminal "setenforce 0" or via an app like SelinuxModeChanger from Play?
Click to expand...
Click to collapse
I installed the app and i got from Debian the error "Unable to mount the loop device, after it FOUND the loop.
In Ubuntu, I'm now getting the error "Unable to attach image to loop device".
ilayron8 said:
I installed the app and i got from Debian the error "Unable to mount the loop device, after it FOUND the loop.
In Ubuntu, I'm now getting the error "Unable to attach image to loop device".
Click to expand...
Click to collapse
help?

Tutorial "Build Customized Permissive Kernel in Ubuntu"

This is the work of Graeme H, from the P-900 forum, I have nothing to do with it, but for ripping the article that I though could be useful in the T-XXX forum:
Graeme H said:
Hey everyone. I bought this device specifically because I do a lot of work on linux in command line world and I though it would be the perfect device when combined with the Logitech Pro keyboard and Complete Linux Installer (it's an app on Google Play). It turned out to be quite a bit of work getting everything working because of Knox and SELinux. Eventually I got a custom kernel working that allows me to toggle SELinux between permissive and enforcing.
I attached an Odin flashable tar that works on the SM-P900 (wifi version). I am on the North American version, so I have no idea whether it will work in other regions. If you flash this kernel then there are a few things you need to know:
I'm assuming you already have root on your device.
When you boot it will still be in "Enforcing" mode. This change simply allows you to use the "setenforce" terminal command or any of the apps on Google Play that do this for you.
You might experience some wifi weirdness after you flash the kernel. You just need to open up /system/build.prop and change ro.securestorage.support from true to false and then reboot to resolve the issue.
If you have a different version of the device or want to compile it yourself for any reason I wrote an article describing how I compiled it here:
http://graemehill.ca/compiling-permissive-android-kernel/
I also did a few other things to fix the keyboard and get linux running properly, so if you're interested in that I described my setup in more detail here:
http://graemehill.ca/turning-a-galaxy-note-pro-into-a-linux-laptop/
Click to expand...
Click to collapse

Categories

Resources