[HOW TO] Install GNU/Linux on Samsung Galaxy Note 10.1 2014 (Updated 03/17)

Search This thread

Stevethegreat

Senior Member
Nov 28, 2010
1,199
327
I finally got a round to try and compile a kernel with CONFIG_VT enabled for CM13.0, in particular, temasek's unofficial version - though I suspect it might work for plain CM13 as well. I'm attaching it in case anyone else wants to give it a try - in principle, it seems to be working, although I'm having some problems (see below).

I've got a few interesting problems, although I suppose it's probably one underlying problem. Like @priccis, I cannot start the framebuffer from inside Linux Deploy - that is, I kind of can, but I get a black screen and the Linux Deploy console has several lines from the Xserver starting, the crucial one being as for @priccis: no screens found. (Ok, currently I don't get that message anymore, but still only black screen.)

With your Linux Canvas app, amazingly I managed to "boot" into my XFCE desktop and I can see that the framebuffer method seems indeed way more responsive than the xserver-app one. Unfortunately, there's the major problem that the screen flickers like mad between white and my linux desktop. So unfortunately not really usable in this state. I hope this is a problem that's easy to solve as I'd be eager to really compare the framebuffer and xserver methods.

After closing Linux Canvas, and actually even after stopping the chroot in linux deploy (the volume down button to un-chroot didn't seem to work), I got a flickering of my linux desktop over what I was seeing in Android. Initially it was large bits on the screen, then only in the status bar. Now it has totally stopped. So something seems to be going wrong with the framebuffer at some point.

Any pointers as to how I could solve this would be welcome! For the moment, I'll have to setup my system again for independent reasons, but will have a look again when I next get a chance.


My guide is for Samsung Roms. In Samsung Roms once LinuxDeploy takes the upper hand of the framebuffer it never let's it go unless and until you'd stop the chroot environment and/or give focus to an android app.

In CM -I suspect- things are different where both Android and chroot fight for dominance in equal terms. The solution (so that to stop the flickering) most possibly is to completely stop the android stack ("adb shell stop") and *then* start linuxdeploy ("...bin/linuxdeploy start") ... unfortunately that's not a method I'm willing to support as it completely kills the point of having linux on Android as I envisioned it in this guide (having it side by side , instead of actually killing Android beneath).

There is probably a work around which is going to allow that to happen without having to kill the android stack, but that's the solution to my issue "2" which as I have said I have very little time to investigate.

It's not that I don't want to support CM13 either, it's merely that it is very much is a work in progress and IMO not a daily driver, so there may still a lot of issues to be solved with the Rom before even attempting running Linux on top in a stable manner. Good luck with your attempts though, if you manage to make it run (probably by stopping the android framebuffer) I would link to your method in my main post.

BTW , have you followed my guide? If not you have not followed the step 2b, maybe that's why you're getting the flickering (force refresh framebuffer must be off). You can also try my quick guide for faster results...
 

franzli

Senior Member
Mar 15, 2010
302
65
Sorry, just realised I never replied to your final question. I gave up on trying to make it run on CM for the time being, as the Xserver setup sort of works for me. For the record, as far as I remember I had followed all of your instructions as far as aplicable (I've got my linux image installed on SD card, so some things are a bit different). I had to revert to Stock ROM now because I got a great bluetooth keyboard which inexplicably lags on all CM variants that I've tried on a number of Android devices (but not on AOSP or Samsung Stock).
Anyway, this may provide me with an opportunity to finally try out your framebuffer method for Linux, to actually compare what works better for my workflow. Will report back with impressions when I et to do that!
Right now, I've only got a brief question, which may stem from my ignorance with respect to stock ROM. Currently, I'm still running on XSDL xserver, but that shouldn't make a difference here. Essentially, I cannot use sudo in Linux, but when I try something like "sudo apt-get update" I get the following:
Code:
sudo: PERM_ROOT: setresuid(0, -1, -1): Permission denied
sudo: unable to initialize policy plugin

From what I could figure out on meefik's github, it's got to do with selinux being set to permissive. As I've never had this problem before, I'm not sure if there's something I need to do differently on stock ROM. I have flashed xluco's final kernel for stock 5.1.1, which should allow switiching to selinux permissive. And in Kernel Adiutor I have installed the selinux plugin and set selinux to permissive there. Still, I cannot use sudo in Linux, which is a bit annoying. There is a workaround which involves starting the linux container via a terminal emulator from Android as root (su; /data/data/.../linuxdeploy shell), but it's rather uncomfortable having to jump through all those hoops when you're already in the Linux chroot and have a nice console right in front of you...
Does anyone have a solution for this or can you tell me what I'm doing wrong? I kind of suspect that KNOX might play some role in this, but since I've never really used stock ROM, I'm not sure what role it plays.

PS: Sorry, just figured out it's actually already in your guide! A bit spooky to run as root by default, but alright...
 
Last edited:

franzli

Senior Member
Mar 15, 2010
302
65
Two brief questions:
1) I had a crash using the S-Pen xluco's final Z1 kernel. Could that be because of an instability of the kernel? s the kernel linked in this thread older and/or more stable?
2) A clarification question regarding the location for your scripts in steps 5-7 because I've got a slightly different setup than yours - not installed on the internal memory but an image file on the sd card for space reasons (texlive takes up quite a lot of space). Are these scripts called from inside the linux chroot or from Android? Do they need to be placed in a folder called Linux in the internal memory, or in a folder called Linux in the home folder of the Linux chroot?

Many thanks, quite curious to try this...


New: Ok, I flashed the kernel linked in this thread, hopefully it's going to be stabler.
I copied the xorg.conf into the linxudeploy directory as per the first step, but didn't do the steps in 5-7 yet because I'm not sure which are the right locations - and they seem not to be strictly essential to get everything started.
Now after a couple of tries, I got the desktop loading, not sure why, but it doesn't seem to start most of the time. I had to close and restart the canvas app a couple of times before getting there. Now, unfortunately, neither my bluetooth keyboard+mouse nor the s-pen allowed me to move the mouse or do any input (I understand the touchscreen doesn't work anyway for now). Not sure what the problem might be. DO I need to reconfigure something in the xorg.conf, or could it be the "Input device" setting in Linux deploy? That is currently set to /dev/input/event0

Any advice anyone? The higher resolution did look kind of nice, but won't help me much if I cannot input anything ;)
Also, I'll have to see if I can adapt to not multitasking with Android - without having been able to try it properly yet, the need to essentially restart the linux desktop every time I go over to android might be a bit of a hassle in actual use. But I'd hope to actually try it out properly before deciding on what works better for me (proper resolution and possibly being able to do proper scrolling with the middle mouse button on my Thinkpad bluetooth keyboard would seem nice...)
 
Last edited:

diabl0w

Senior Member
Mar 5, 2015
456
141
attempting this now... I know I am late to the party. I just got finished attempting my first time but by the end both linux canvas and linux deploy would give me completely blank screens. I think one issue is that I was using the latest linux deploy so commands such as the first one I had to use /data/data/ru.meefik.linuxdeploy/linux/share instead of /data/data/ru.meefik.linuxdeploy/files/share but I am sure there were also some other incompatabilities. I also tried the quick install post 4 method using the same linux deploy you did this time (1.5.6), but linux deploy gave me an error during install that it couldnt make an ext4 image... not sure why
@Stevethegreat
 
Last edited:

Stevethegreat

Senior Member
Nov 28, 2010
1,199
327
attempting this now... I know I am late to the party. I just got finished attempting my first time but by the end both linux canvas and linux deploy would give me completely blank screens. I think one issue is that I was using the latest linux deploy so commands such as the first one I had to use /data/data/ru.meefik.linuxdeploy/linux/share instead of /data/data/ru.meefik.linuxdeploy/files/share but I am sure there were also some other incompatabilities. I also tried the quick install post 4 method using the same linux deploy you did this time (1.5.6), but linux deploy gave me an error during install that it couldnt make an ext4 image... not sure why
@Stevethegreat

Yeah, linux deploy continuously change paths that's why I'm recommending using the one that I did in my guide (any other will probably not work). The reason it couldn't make an ext4 image is most probably because the path for it was not correct. Try using the one I'm giving in the guide.
 
  • Like
Reactions: diabl0w

diabl0w

Senior Member
Mar 5, 2015
456
141
Yeah, linux deploy continuously change paths that's why I'm recommending using the one that I did in my guide (any other will probably not work). The reason it couldn't make an ext4 image is most probably because the path for it was not correct. Try using the one I'm giving in the guide.

when it couldnt make the ext4 i was using the same version that you were... however i found the solution. i ran in debug mode and found that since I was using his old linux deploy (the one you use) but using his new busybox (from the playstore) , the old linux deploy was trying to use a -t argument with mk2fs that is no longer supported by the newest busybox versions. the fix was to install 1.24.1 from https://github.com/meefik/busybox/releases

EDIT: woohooo! the quick install works... at least now i know it works I have more motivation to go through the long process again
EDIT2: spoke a little too soon... no response to spen input but at least im seeing the desktop
EDIT3: following full install procedure in post #1 and spen cursor control is working! everything seems to be working great except one major issue -- I am assuming to type we would use the Florence virtual keyboard but when I select that from the start menu my device freezes and then crashes and reboots... seems like a kernel issue. I may compile a kernel that is completely stock with VT commits as xluco kernels have tend to be very unstable for me in the past
 
Last edited:

diabl0w

Senior Member
Mar 5, 2015
456
141
created a stock kernel with VT enabled but florence virtual keyboard still causes device to crash

EDIT: working now! i think i might not have changed the OS to wheezy so I installed whatever debian flavor was default on accident. Installed the proper distribution and now everything is g2g! thank you so much for the detailed guide! there is no way I would have been able to do it without that
 
Last edited:

Stevethegreat

Senior Member
Nov 28, 2010
1,199
327
created a stock kernel with VT enabled but florence virtual keyboard still causes device to crash

EDIT: working now! i think i might not have changed the OS to wheezy so I installed whatever debian flavor was default on accident. Installed the proper distribution and now everything is g2g! thank you so much for the detailed guide! there is no way I would have been able to do it without that

Thanks for the heads up. Haven't had the chance to update the guide for almost a year now. I'll try to do so shortly given your notes. For the time being I'll add to the guide a link to the older busybox version and an up-to-date VT kernel (if you don't mind sending it to me given that my compiling machine is out-of-service).

Once Official LineAge OS gets more stable (and I'll turn it into my daily driver), I'll update the guide to support Android v7 ... that way we'd get support for 3 major android versions (Kitkat, Lollipop, Nougat) which IMO would be enough for most people.

Again, thanks for taking the time to see my guide after so much time.

edit: BTW the quick guide didn't work (probably) because it only works with Samsung KitKat, if you ran Lollipop it is not compatible. The reason is simple, there were some unresolved issues with root and Lollipop (ie ones that I had no time to get into), so you have to run as root at all times on Lollipop.
I do write quite clearly that the quick guide is only compatible with Kitkat though...
 
Last edited:

diabl0w

Senior Member
Mar 5, 2015
456
141
Thanks for the heads up. Haven't had the chance to update the guide for almost a year now. I'll try to do so shortly given your notes. For the time being I'll add to the guide a link to the older busybox version and an up-to-date VT kernel (if you don't mind sending it to me given that my compiling machine is out-of-service).

Once Official LineAge OS gets more stable (and I'll turn it into my daily driver), I'll update the guide to support Android v7 ... that way we'd get support for 3 major android versions (Kitkat, Lollipop, Nougat) which IMO would be enough for most people.

Again, thanks for taking the time to see my guide after so much time.

edit: BTW the quick guide didn't work (probably) because it only works with Samsung KitKat, if you ran Lollipop it is not compatible. The reason is simple, there were some unresolved issues with root and Lollipop (ie ones that I had no time to get into), so you have to run as root at all times on Lollipop.
I do write quite clearly that the quick guide is only compatible with Kitkat though...

for the record I was performing this all on KitKat (using stockyROM which is stock kitkat without all the bloatware) so I am not sure why the quick install didnt have a responsive spen. So that being being said the kernel that I compiled is also KitKat. I will upload it here anyway since it will be more stable than xluco's (it is merely stock with VT enabled) so some people may prefer ... disclaimer: im not really a developer i merely followed many tutorials and studied patches to produce this kernel so flash at your own risk, although i dont anticipate there being any issues
 

Attachments

  • SMP600-4.4.2-boot.img
    5.9 MB · Views: 140

franzli

Senior Member
Mar 15, 2010
302
65
Do you have particular Linux programs for drawing in mind and just want to know whether the pen is working well enough, or do you wonder if there are any Linux programs that do a better job?

I actually haven't gotten this method to work yet, but via the xsdl x-server app the pen is now actually reposing enough to run something like gimp or xournal quite decently. Whether they're superior to specific android apps, I don't know (and probably depends on what you want to do).

Other people here should be able to tell you more about responsiveness of the pen with this method here, although I suspect it will be even better (you'll run at native resolution, which is laggy if you use the xsdl x-server instead, though switching between Linux and android sounds potentially a bit less comfortable here as compared to the xsdl x-server app).
 

Stevethegreat

Senior Member
Nov 28, 2010
1,199
327
Do you have particular Linux programs for drawing in mind and just want to know whether the pen is working well enough, or do you wonder if there are any Linux programs that do a better job?

I actually haven't gotten this method to work yet, but via the xsdl x-server app the pen is now actually reposing enough to run something like gimp or xournal quite decently. Whether they're superior to specific android apps, I don't know (and probably depends on what you want to do).

Other people here should be able to tell you more about responsiveness of the pen with this method here, although I suspect it will be even better (you'll run at native resolution, which is laggy if you use the xsdl x-server instead, though switching between Linux and android sounds potentially a bit less comfortable here as compared to the xsdl x-server app).

I'm in the process of fixing (or making more clear) parts of the guide. "Bug reports" would be very useful towards that direction. Can you recall where my guide stopped working for you? For example disabl0w already found some solutions to the latest issues, are there any more issues that I should investigate?

My point is to make the guide as accessible to most as possible given that it offers much smoother experience to Xserver XSDL (never managed to code there, too clanky)
 

dougiefresh181

Senior Member
Sep 18, 2012
85
16
flashed back to stock xar 5.1 from liquid death, installed twrp, supersu and the kernel posted in op, and now the tablet wont boot. it gets to the samsung splash screen after waiting at the note 10.1 screen, then just bootloops
 

Stogie87

Senior Member
Oct 3, 2015
1,110
502
Berlin
OnePlus 9 Pro
Hey @Stevethegreat,
i tried to get linux working with linux deploy on my p600, but i don't get it.
For me it seems like your introduction is outdated, because the installation menu of linux deploy has changed.
Can you give an indroduction for LOS N users, please?
 

Stevethegreat

Senior Member
Nov 28, 2010
1,199
327
Hey @Stevethegreat,
i tried to get linux working with linux deploy on my p600, but i don't get it.
For me it seems like your introduction is outdated, because the installation menu of linux deploy has changed.
Can you give an indroduction for LOS N users, please?

Indeed this guide only works with pre v2 Linux Deploy. I give links to my initial post. Download the versions as advised and dissalow them to be updated through the play store.

I'd try my best to upgrade the guide to work with Nougat *and* with the newest versions of LinuxDeploy and Busybox, but time comes in short demand. Until then please use the versions as advised...
 
  • Like
Reactions: Stogie87

Stogie87

Senior Member
Oct 3, 2015
1,110
502
Berlin
OnePlus 9 Pro
Indeed this guide only works with pre v2 Linux Deploy. I give links to my initial post. Download the versions as advised and dissalow them to be updated through the play store.

I'd try my best to upgrade the guide to work with Nougat *and* with the newest versions of LinuxDeploy and Busybox, but time comes in short demand. Until then please use the versions as advised...

Thanks for your reply, but it doesn't work with your apps as well. I always got an updating environment failure. Maybe it is, because i am on nougat....
 

Top Liked Posts

  • There are no posts matching your filters.
  • 17
    #NOTE: For quick taste go to post#4. That mini-guide -for the time being- only works on Samsung's Kitkat. For Best Performance running Samsung's KitKat is recommended

    Also (just so that to be clear), no matter which version of this guide that you are going to follow, you'd need at least 5GB of free Internal Storage.


    INTRO
    Since the advent of the Microsoft Surface Pro line we had a great "great-computer/mediocre-tablet" combo on one hand, and through the already running iPad line we had a "great-tablet/bad-computer" on the other hand.

    One of the primary reasons to buy into the Note tablet line is because I always thought that it conveniently sandwiches itself between the above categories hopefully avoiding the pitfalls of both. Sadly the reality was a bit further than that and our tablet seems to have taken equally the bad and the good of the above lines. I set to ameliorate part of those faults, since I mostly lack coding expertise or indeed deep knowledge of the Linux kernel I created a ... patchy solution.

    Sooo the following is a ... rather monumental guide/tutorial to set up Gui - Linux with acceptable performance on top of android in our devices. Since I'm running it "on top" it relies to the chroot method (it's been detailed in quite many posts). For simplicity's (and ... repeatability's) sake I'm using the "LinuxDeploy" app which can be found here (buy a beer to the creator, don't forget that he's practically giving away his software).

    Ook, let me say right out of the bat that I could have had released a ready-made Linux image so that everybody could benefit instantly, or alternatively write a script to automate the process that I'm going to detail next.
    Instead I decided against it, firstly because (as you will soon find out) this guide is a work in progress, so through exposing each individual step it can/would actually become better (hopefully through the help of more talented/knowledgeable individuals than I). Secondly many of the steps would most certainly break down, down the road (continuously changing software tend to do that to tutorials), yet since all/most steps would be exposed a simple tweak to them would save it...

    Important Note: This particular Guide is tested to work on both KitKat and Lollipop (Samsung) Roms for P600. Even a slightly different setup may cause it to misbehave. So that's one more reason why I chose to expose the relevant steps (what/how they do). Hopefully slight tweaks to some of the steps would make Linux perfectly functional on all variants of Note tablet and their many differing roms.

    PREPARATIONS
    Let me move to the particulars then:

    You'd definitely need root and a "Virtual Terminal" enabled kernel (I can't stress this enough), xposed framework/modules is optional (only needed for one work-around). I'm sure a mere Google search can tell you how to achieve the 1st and the 3rd requirement but the CONFIG_VT enabled kernel is a tougher nut to crack. Therefore I'm willing to make a list with VT_Enabled kernels for out tablet, for the time being I'll only be offering kernel based on Samsung Roms (many thanks to @xluco). Non-P600 guys should find an equivalent kernel on their own (or compile one for their own usage).

    KitKat: http://xdaforums.com/attachment.php?attachmentid=3686507 , reportedly Disabl0w's version works better
    Lollipop: http://xdaforums.com/attachment.php?attachmentid=3686508
    Marshmallow: I'm willing to post a VT Enabled kernel here when (and if) our device reach nightly status on CM13.

    BEWARE those kernels are for P600 (wifi version of Note 10.1 2014). I take no responsibility if you've bricked your device by flashing it to the wrong device/setup.

    Additionally those apps would be needed:

    a) Meefik's Busybox v1.24.1 (Download the apk and install it, once installed, do as follows: open the app -> tap "install" in the lower right corner -> OK)
    b) LinuxDeploy v1.5.6 (Download the apk and install it, once installed, open the app -> press the "menu" button -> tap "settings" -> tap "update env" -> OK )
    c) Linux Deploy's companion app (LinuxCanvas I named it)
    d) Privilege Terminal (Terminal Emulator is more feature packed but for the purposes of this guide Privilege Terminal is preferable as you can paste content coming from HTML pages, directly to it)
    e) Lastly, certain Configuration Files are needed (download and extract the contents to the root of your internal storage)

    THE GUIDE
    The guide is really made out of 11 simple steps. You can "blindly" follow them and you'd get a fully working image. Preferably, though, you'd also read the explanations of each step. I've included them because (as mentioned above) this guide is a work in progress. So making you privy to what each step does would hopefully lead to a better guide. Probably one with less steps and even more functionality. The explanation part would also help you debug a step if (for some reason) it didn't work correctly to your device.

    So on we go:

    1) Copy xorg.conf:
    a) Open Privilege Terminal
    b) Run:
    Code:
    su;
    cp /data/media/0/Linux/res/xorg.conf /data/data/ru.meefik.linuxdeploy/files/share;
    echo"";
    Explanation:
    The xorg.conf file is basically where input-output devices are mapped. I've modified it to support as many as 8 input devices as well as to support the S-Pen (w right click function!). If you want to add more devices, or for some reason your S-pen does not work and/or you prefer the S-pen button to work as middle click you can modify by navigating to Linux/res/xorg.conf (you can open it with any text editor). To find to which events your devices are mapped you have to run cat /proc/bus/input/devices in Terminal Emulator. From that you could see to which event you can map your S-Pen and/or the rest of your external devices. As it stands I have S-pen as event8 (the default in most roms) and my keyboard and mouse as 10 and 11 respectively (that's how they get mapped in my devices, but they may get mapped differently to yours).

    Note: Apart from S-pen everything else doesn't *have to* be mapped precisely (even if your mouse is called "keyboard" it would still work"). Also as a general heads up please connect your devices after device boot as if you have them connected already (say through OTG connection) as the device boots, the handler numbering would be messed up (for example the mouse could be event5 and s-pen event10)

    2) Create a Linux image
    a) Open Linux Deploy
    b) Navigate to properties (Arrow showing "down") and choose the following Configuration:

    Use the Default option to all except:

    To Distribution Suite: Wheezy
    To Installation Path: change the "/storage/emulated" part to "/data/media" (everything else stays as is)
    To Select components: Tick X server, untick VNC server
    To Graphics subsystem: choose Framebufer
    To GUI settings: choose DPI = 230 (or anything higher if it suits you) and untick Force Refresh
    To Custom Mounts: Tick it
    To Mount Points: Delete the extant mount points (select them -> press "menu" -> delete) and add the following:
    • /data/media/0
    • /mnt/media_rw/extSdCard
    • /mnt/media_rw/UsbDriveA
    • /mnt/media_rw/UsbDriveB
    If you want to add support for more External devices you can add up to 4 more ( /mnt/media_rw/UsbDriveC - /mnt/media_rw/UsbDriveF )

    c) Return to Properties' main menu and Tap Install (first selection)
    d) Wait (quite a bit) until it reads "<<< install". It should read "processing triggers" on the line just before it, if not, reboot and follow step (c) again (re-install)
    Explanation:
    I was only able to make Debian and Ubuntu variants work with our device. In principle everything should (and can) work as well, but since I'm mostly accustomed to Debian's eco-system I never bothered to investigate. Similarly (from windows environments) only LXDE and XFCE reliably work (KDE and Gnome technically "work" with Debian too but they're ultra slow). For this instance I chose Debian Wheezy + LXDE due to GUI performance issues mostly, every other disto/window manager causes considerable lag in window placement. I used to use Debbian Jessie + XFCE, love XFCE's features (sessions, Window snap), but the ultra-slow window placement mostly killed the GUI experience that I was after. So I reverted to the less featured but lighter on resources LXDE.

    Note: Our tablet's internal SDcard is/would be mounted to /mnt/0 when inside the chroot Linux environment ( similarly External SDcard -> /mnt/extSdCard , 1st external Storage -> /mnt/UsbDriveA , etc ). If you're on another device (not P600) running the command "mount" from Terminal is going to give you where in which paths your storage mounts to, in which case you'd have to change the mount points in LinuxDeploy accordingly.

    3) After the linux image is created (Linux deploy says "<<< install") go to Linux's Shell:
    a) Go back to Privilege Terminal
    b) Run:
    Code:
    /data/data/ru.meefik.linuxdeploy/files/bin/linuxdeploy shell;
    echo"";
    Explanation:
    It starts the Shell of the freshly installed image

    3.5) This step is only relevant to those running Stock Samsung 5.1.1 rom. DO-NOT-RUN it if you're on any other version. Giving root permissions to the default user ("android"):
    Run:
    Code:
    sed -i '/android/c\android:x:0:5000:x:/mnt/0/Linux/Home:/bin/bash' /etc/passwd;
    echo"";
    Explanation:
    Due to complication with SELinux permission (from Android 5 and up most possibly), as a workaround I had to give root permissions to user "Android". See Issue "8" in Post #3 for more information.

    4) Change Home folder's path:
    Run the following commands:
    Code:
    usermod android -d /mnt/0/Linux/Home;
    rm -rf /mnt/0/Linux/Home;
    mkdir /mnt/0/Linux/Home;
    cp -a /home/android/. /mnt/0/Linux/Home;
    echo"";
    Explanation:
    Technically this step is optional but I would strongly advice against ignoring it as it allows an 1:1 communication between Android and Linux's user files. By choosing a folder that is visible by android file managers (/Linux/Home) it allows for the user to instantly manipulate the data he/she just created within Linux. For example a document file that is saved on (Linux) Desktop is easily visible by navigating to Linux/Home/Desktop or better yet it's automatically detected by the relevant app (for example a music app would "see" your music Folders, a video app your "Linux videos", etc). Additionally it uses the /sdcard partition which is close to 28GB in size, instead of the 4GB micro-partition that LinuxDeploy created (which is better used by the software that you're going to install there).

    5) Apply basic HiDPI fixes:
    Run:
    Code:
    cp /mnt/0/Linux/res/.gtkrc-2.0 /mnt/0/Linux/Home/;
    echo"";
    Explanation:
    It solves basic issues that arise from the HiDPI environment of our devices. Things like CheckBoxes, ScrollBars, even Double Click behavior. The changes are only detectable on GTK2 software. Since all the software I've been using is based on GTK2, it is enough for me. However if you're using a GTK3 based application please by all means recommend of a way to make similar changes to GTK3 applications (I think equivalent -system wide- changes happen when one modifies the /etc/gtk-3.0/settings.ini file). Lastly if the dimensions/changes are not to your taste you can always try different ones by changing their numeric values on Linux/res/.gtkrc-2.0 file (editable by any text editor, beware it's a hidden file) and then rerun this step. What numeric value is controlling what, is rather straightforward due to the naming that it follows. So happy editing!

    6) Enable GUI Repaint:
    Run:
    Code:
    chmod +x /mnt/0/Linux/bin/logout;
    echo"";
    Explanation:
    It fully enables the menu button within the LinuxCanvas app (it redraws the environment). I could bundle the script with my "LinuxCanvas" apps, but I wanted to make it modifiable (for example right now it kills the LXsession), but if you were to use a different Window manager you'd probably need to use a different command) and since my app creation powers are very (very!) basic, I simply exposed an internal part of my app. It can be found in "Linux/bin/logout". You can edit it with any text editor (again you'd have to rerun this step after editing is done).

    7) Resize Windows Borders:
    Run:
    Code:
    chmod +x /mnt/0/Linux/bin/resizeBorder; chmod +x /mnt/0/Linux/bin/revertBorder; /mnt/0/Linux/bin/resizeBorder;
    echo"";
    Explanation:
    Another Fix needed due to the high DPI of our devices. It basically makes the borders of the windows that much thicker. Since it obviously makes the look of the environment less easy to the eyes I would welcome any work-around. Also you can run
    Code:
    /mnt/0/Linux/bin/revertBorder
    (from within linuxdeploy's shell) to return the Windows borders to their initial size if you're so much bothered about the ... foul look (again I'd advice against it as it'd kill some of the ease of use of window placement/resize). If you want differently sized borders you can always edit the script (found in Linux/bin/resizeBorder) with the text editor of your choice. My current value is 10 pixels you can change it to whatever. Also you don't have to change it for every theme, just the one you're using. Again, I'm open to recommendations (for example what value do you think is better for usability?)

    8) Fix Mouse Cursor size:
    Run:
    Code:
    sed -i '/CursorThemeSize/c\iGtk/CursorThemeSize=58' /etc/xdg/lxsession/LXDE/desktop.conf;
    echo"";
    Explanation:
    It makes the Cursor bigger. It doesn't always work. I have to investigate, but I can't be bothered since it rarely (ever) caused me any issues. Still I'd welcome it if someone is willing to investigate and see why it works only some of the times (it probably has to do with boot sequence/times).

    9) Install basic Components:
    Run the following:
    Code:
    apt-get update;
    sudo -u android sudo apt-get install -y samba gvfs-bin gvfs-backends zip iceweasel xfce4-mixer dmz-cursor-theme gstreamer0.10-alsa;
    echo"";
    Explanation:
    Though the above shell command we add some basic functionality to our Linux installation, like a Samba server (network places for the Windows guys), a browser (Iceweasel is called in Debian) and a virtual keyboard (very important for those using only the S-pen).

    10) Exit:
    Close Privilege Terminal (press "CLOSE" on the upper right of the app and then "OK")​
    Explanation:
    We're better off to shut down this particular shell instance as it may mess up with the booting of our Linux image later

    11) Start Linux:
    a) Open "LinuxCanvas"
    b) Press Volume Up, wait a bit and voila! (if it doesn't work the first time, press the "menu" button to repaint)​
    Explanation:
    The App is included below this post. This is a veeery basic app (my app-creating prowess is close to zero) which acts as a companion to LinuxDeploy. LinuxDeploy was/is mostly created to fascilitate the XServer/VNC crowd, but the "Framebuffer" crowd has been left a bit in the cold. With as a result the "Framebuffer" functionality of LinuxDeploy to be quite basic (it only creates a black frame and that's it). So I added a bit more than that (it's the super-duper edition :p). Orientation is locked, back, Escape buttons blocked (they cause issues). Also:

    Volume up -> starts the chroot environment
    Volume down -> kills it ("un-chroot")
    Menu button -> "redraws" the graphical environment

    And that's it. The caveat is of course (as a companion app to LinuxDeploy) that it is heavily dependent to LinuxDeploy, so any change that the developers would choose to make would -predictably- break functionality, so please PM me if/when that will happen. Also I'm a very un-creative person when it comes to App-creation so I would be veeery happy if another user was to take this task from me (someone who -hopefully- would make a much better featured and beautiful companion app), so updating this guide would be the only task that would remain to me.



    As you may be able to see, by (as of) now you're good to go and you can fully work on your brand new Desktop environment. However I would like to add some less essential tips/fixes on my second post as well as a list with the remaining issues and workarounds to them (in my third post).
    12
    With two posts above us, this guide is mostly concluded. Still it may probably be worth the while to read a bit more as in here I include a few workarounds. Which while they're not true solutions in any shape or form, they may make the experience juuust seamless enough...

    BUGS/ISSUES
    1) No Hardware Acceleration (Biggest)
    Explanation:
    This is pretty much the elephant in the room. Without a solution to this everything written here is/would be a waste for many guys. Especially those willing to use rendering software, or generally care about media consumption/creation. Unfortunately this is also (by far) the toughest nut to crack. It most probably requires knowledge far greater than my own (even though I must admit that I never seriously considered "solving" this issue). In fact it is here that I could use as much help as possible. If we solve this, suddenly our tablet is viable as a laptop replacement for most uses ... In sort: Solution pending, no workaround in sight, zip, nothing ... it's the Chuck Norris of our problems

    2) No ability to redraw (Biggie)
    Explanation:
    Another big issue. Basically if you lose focus (say press home by mistake) you cannot regain it. Every process continues on the background, of course, your picture is lost forever though, and it's mostly non-recoverable. In the workaround section I have posted the very hacky solution that I'm using (which is no way, shape or form a true solution). This issue's importance is somewhat tempered -though- by the fact that our tablet already operates in a low-Ram environment so putting the chroot/Linux environment to the background for a bit would probably cause a lot of its processes to be eventually killed by Android's ram manager as it would try to regain Ram for the foreground app. Also it's probably easier to solve but -again- it requires knowledge beyond my own. The issue has to do with Android and chroot/Linux "fighting" for the framebuffer's exclusivity. Once Android gains it, it never gives it back (selfish dastard :p).

    3) Devices cannot be detected "on-the-fly"
    Explanation:
    A big issue still, but a lesser one than the above two. Again it has to do with the GNU/Linux lacking some kind of daemon constantly "sweeping the place" so that to detect changes. I have not looked deeply in this issue as the workaround has been enough for me. Maybe not that hard of an issue to be solved. Again I'd welcome any recommendation(s).

    4) No touch support:
    Explanation:
    This is a big issue at first glance, I happen to think that it is one of the smallest ones, especially if you think about it: GNU/Linux GUI is/was created for a highly accurate pointing device and the finger(s) is certainly not it. Similarly right click is very hard to be performed by hand (probably via a gesture) with much accuracy. Both of those issues are solved by the pointing device we already own, the s-pen. I find the pen to be faster to a HiDPI Linux environment simply because you make less mistakes with it. Also it supports hovering, so it simulates a mouse pointer on-the-go, much better than a hand. Still touch support would help with typing on the virtual keyboard (it would have been faster due to multi-touch) and scrolling (again multi-touching). It's due to those issues that I include the lack of touch support as an issue. Again I'd welcome it if anyone was to come with (any) ideas regarding (adding) touch support. BTW simply mapping the relevant event on xorg.cong doesn't work, don't know why.

    5) Pressing Middle mouse Button returns to Home (thus kills the picture)
    Explanation:
    It's connected to problem No2. This is more of an annoyance (though) than a true issue as pressing the middle button is not of much use on GNU/Linux's GUI environments. Still I'm using a workaround (posted below) that completely eliminates this issue (sadly it needs xposed).

    6) No native way to control brightness (there's probably a solution, never bothered to investigate)
    Explanation:
    Again mostly an annoyance, as there are alternative ways to control those. A work-around is posted below

    7) HiDPI is not well-supported by a lot of Linux's Software.
    Explanation:
    Depending on your kind of use you may find yourself facing with a software that does not scale well to the ultra-high resolution of our tablets. That would mean veeery small GUI elements and an almost inability to use it. Thankfully most have workarounds (to some it is in-built, to others it requires the installation of some HiDPI theme, to others yet editing config files would do the trick). I regard it less of a problem that it initially seems because by now many/most small laptops are offering a HiDPI screen with as a result forcing most Linux Software maintainers to get by the times and either fix the issue with their particular software, or at least offer a work-around. Obviously I'm not going to post any of those here as the list would be non-exhaustive. If someone wants to create a post (and maintain it) with HiDPI workarounds for many/most of the popular software I'd be glad to link it here (as a work-around)

    8) SUDO cannot be be used by regular users on Samsung's Lollipop
    Explanation:
    Due to changes in SeLinux policy implemented from Android 5 and on permission is denied when a regular use is trying to use the SUDO command


    WORKAROUNDS:
    To Issue 2) Pressing the menu button. It re-draws the LXSession. The caveat is that you lose all your progress (it's a sort of a "soft-reboot").
    To Issue 3) Input devices are detected with a simple redraw (pressing the menu button), but for external storage you have to wait a bit (around 10 seconds after you've connected it) and *then* redraw
    To Issue 5) The solution to that is hacky (as it needs xposed) but it works: You'd need Xposed Additions Pro to disable home while on LinuxCanvas App, plus a gesture to get back home (you do that using the gesture navigation plugin)
    To Issue 6) You can control brightness through the notification center as you would in any other app.
    To Issue 8) Give root permissions to chroot's main user ("android"). Unfortunately that's an obvious security concern and I'm feeling quite uneasy to have to do that. I'd feel much better if this permission issue would be resolved.

    FEATURES THAT I HAVEN'T CHECKED:
    1) External devices apart from External Storage, Mice and Keyboards.
    2) Bluetooth File transfer
    3) Cameras
    4) GPS
    5) IrDA
    Explanation:
    The above are all tablet functionality that I have not checked.
    If I was to venture a guess I would say that they won't work "out of the box", but everyone is free to check. I'm sure there's some workaround to let them work (at least partly), but I had no need of them so I have not investigated further.


    INSTEAD OF CONCLUSION:
    With the guide concluded I would like to write (instead of a conclusion) the reason that I chose to "run" a desktop environment as above (chroot with the GUI rendered on Android's framebuffer). It's obviously neither the easiest to setup (running the GUI on top of an android-bornt Xserver is far easier to set-up, 3 steps, literally) nor the most efficient (a dual boot setup would be the ideal as far as efficient use of the tablet's resources go).

    Well let me "combat" the above arguments one by one. Firstly choosing to use the android's Framebuffer as the renderer: Obviously it's hard to setup at it needs a "Virtual Terminal" enabled kernel (not easy to be found for those who are not into kernel compiling), but, maybe most importantly, it disallows of an easy way to change the resolution (it uses the screen's native resolution) leading to HiDPI issues.

    Well, the reason to render on the Framebuffer instead of an Xserver app (like Xserver XSDL) is ... frankly responsiveness. Rendering directly to the framebuffer bypasses all the "lag" caused by the android implementation running beneath. The greatest example is typing responsiveness. Typing on our Note (using a phtsical keyboard), as you may have found out, is a tedious process. There's a very visible latency which causes constant errors when fast typing. This is completely solved by directly rendering on the Framebuffer (hence directly taking input events from kernel events, bypassing Android's stack). For a guy who types a lot, the difference is day and night, it finally turned my Android Tablet into a work horse. Of course the great increase in responsiveness carries over to the rest of the GUI as well.

    Let me, then, tackle the second source of scepticism to the solution that I recommended in here. To many a true dual-boot is the holy grail of their idea of how/what an android tablet doubling as a productivity machine is. To me it's not, I've bought an android tablet not because I want a Linux laptop. In fact I already have one. No, I bought it *because of* android and having to "kill" it so that to boot my "productive" environment doesn't really make any sense to me. Sure I can always boot back to Android, but actually most people are not into distinct "productivity" and/or "consuming" modes. In fact most of my usage patterns are all over the place. For example I'm writing something for my paper, but then I want to carefully study another paper, heck I may want to watch a movie in the middle of all this. Sure I can do those two on Linux, but what's the point if I have a far more capable "content consumption" OS lying just beneath? No, my ideal mobile machine is one that produces in the best way possible but one that also lets me consume information in the best way possible.

    I bought a tablet *because* I want to consume information much more efficently than what my laptop/PC would had allowed me to. I want to use the "PocketBook" app to read and MxPlayer to watch a movie from my NAS collection, but then I also want to get back to my fully featured IDE. A dual boot absolutely kills the flow (having to constantly reboot). In fact Microsoft's vision in this (Project Continuum) is I think ideal. Still Project Continuum is far from being practical (for the time being) and it may never become, simply because Developers may not support it, so the next best thing is to have my "Productiviy OS" and "Consumption OS" side-by-side in fact that is very much the reason that I've included "step 4" to my guide as well as the "redraw" option. I think it gives flight to the experience (having different "scopes" of experience).

    THANKS TO:
    Pretty much to everyone from the Android scene that let us enjoy such high quality experience via rooting, kernel modifications, etc. People like @Chainfire, @rovo89 (and many, many others) are indispensable for their services, it goes without saying.
    Similarly thanks to everyone from the Open Source community and in particular the Linux Kernel, starting from Linus Torvalds all the way down to the mere user who's recommending a fix. And of course to the guys developing the software running on the Linux kernel (without it, it would have been useless to most).
    Also thanks to @xluco for providing a feature-packed (and lately very stable) kernel for me to play with.
    Oh and thanks to you guys, hopefully helping to fix (on the longer or shorter run) this mess of a guide. *Any* input would be much appeciated.

    OK. CYa. I'm signing off (pheewwww)
    10
    In my first post I described how you can get a relatively well performing Desktop envrironment working on our Samsung Note tablets. This post acts as a companion. Most of the tips here are either completely optional or easy to figure out. Still they may seem useful to many users so I include them here anyhow. As always any recommendations to improve on them or any additional tips would be well considered.

    1) DPI Tips and seting up Volume Control :
    a) Right click (S-pen button press) on Start menu -> Panel Settings -> Height: 70 and Icon: 70 -> Panel Applets (tab) -> Application Launch Bar (the first one) -> Edit -> Florence (extend Universal Access) -> Add -> Close -> Application Launch Bar (you have to scroll down for this one) -> Edit -> Mixer (extend Sound & Video) -> Add -> Close -> Close
    b) LXDE Button -> Preferences -> OpenBox Configuration Manager -> Appearance -> change all to 13-15 (except Active/Inactive on-screen Display: 11-12 ) -> Close
    c) File Manager (Black Icon) -> Edit -> Preferences -> Display (Tab) -> Size of Big Icons (96), Size of Small Icons (48), Size of Thumbnails (256), Size of Side Pane Icons (48) -> Close
    d) Click the gear looking icon (in the lower-right part of the screen) -> Select Controls... -> Tick Speaker Digital -> Close -> Quit​
    Explanation:
    Those are easy-to-figure but I think essential changes that need to be done so that to make the LXDE enironment more functional on our HiDpi (and often keyboardless) screen. I would be glad to add more HiDPI changes accesible through LXDE's GUI (that you'd think that may be important).

    2) If you want Linux's user data to be readable/writable/cacheable by/from your android apps:
    Run the following from Privilege Terminal:
    Code:
    su;
    find /data/media/0/Linux/Home -type d -exec chmod 777 {} \;
    find /data/media/0/Linux/Home -type f -exec chmod 777 {} \;
    echo"";
    Note: This step has to be re-run if for whatever reason some of your Linux user-files are -again- not accessible from Android.​
    Explanation:
    While the folder Linux/Home contains all your personal data from Linux it's only accessible from within Linux. That's an obvious security feature, but it may also affect the practicality of running Desktop Linux side by side with Android. By allowing permissions to all "your" files they can be literally read by everyone/everything which also includes your android Apps (for example your edited photos could be "seen" from within your android gallery) which can be extremely useful to many, as well as an easy way to send/save files from Android to Linux, too.

    3) In case you want to remove android's mouse cursor (for more experienced users, as inability to follow the steps will -well softbrick your device. BEWARE! )
    a) If you're using Windows (if not equivalent steps have to be followed on your mac/linux) unzip the adb folder (included to the bottom of this post) to C:\ and install the samsung drivers (if you haven't already): http://developer.samsung.com/technical-doc/view.do?v=T000000117
    b) Reboot your tablet to recovery and connect it to your PC
    c) mount /system (from mounts and storage menu or similar). Disable MTP too, if applicable
    d) On your PC navigate to C:\adb from command line
    e) run:
    Code:
    adb pull /system/framework/framework-res.apk
    f) Navigate to C:\adb, create a copy of framework-res.apk and rename it to framework-res.bak
    g) Open the framework-res.apk (the original) with WinRar (or similar) and navigate to res\drawable-sw800dp-xhdpi or res\drawable-xhdpi-v4 and rename pointer_arrow.png to pointer_arrow.bak . Close Winrar
    h) Back to the command line run the following
    Code:
    adb push framework-res.apk /system/framework
    adb push framework-res.bak /system/framework
    adb shell chmod 0755 /system/framework/framework-res.apk
    adb reboot
    After having followed the above guide succesfully you can restore the mouse cursor and then kill it again as easily as described below (those commands reboot the device, so beware)

    To restore the cursor (after having it killed) in Privilege Terminal run:
    Code:
    su; 
    mount -o rw,remount /system; mv /system/framework/framework-res.apk /system/framework/framework-res ; mv /system/framework/framework-res.bak /system/framework/framework-res.apk ; chmod 0755 /system/framework/framework-res.apk; reboot;
    echo"";
    To kill the cursor (after having it restored) in Privilege Terminal run:
    Code:
    su;
    mount -o rw,remount /system; mv /system/framework/framework-res.apk /system/framework/framework-res.bak ; mv /system/framework/framework-res /system/framework/framework-res.apk; chmod 0755 /system/framework/framework-res.apk; reboot;
    echo"";
    Explanation:
    The above is to kill android's mouse cursor so that when you connect a mouse you won't have two mouse cursors on-screen. It would have been a far less dangerous endeavor if I was to include a flashable zip file doing those changes, but I much prefer to expose the way by which you can kill android's cursor, so that any user would be able to do the same on any other version of android that he or she is willing to run Linux on. Also as a bonus the user is just "one" shell command away from reverting his mouser cursor. Obviously any bricked devices resulted from this method is the user's responsibility and the user's alone (however it's a very recoverable situation)

    4) Tips to make browsing easier when you'd want to use the Pen Exclusively:
    a) Open the browser (Iceweasel) while in Linux
    b) Type on the URL bar -> about:config-> "I'll be careful, I promise"
    c) Search for: browser.search.showOneOffButtons . Change its Value from true to false (double click on it)
    d) go to: ("hamburger" button ->)preferences -> privacy (tab) -> Iceweasel will: -> Use Custom settings for history -> Untick Remember search and form history
    e) Right click on the search bar and untick "show suggestions"
    f) Restart Iceweasel​
    Explanation:
    It kills Firefox/Iceweasel's fancy search so typing on the search bar when using pen/virtual keyboard is twice as fast. When I found out about that it completely transformed my usage patters, now I often "quick boot" to Linux if I want to browse to a web-site that android's mobile browser refuse to have rendered. Oh BTW, if you followed the "DPI Tips" (tip No1) the virtual keyboard (florence) can be found to the left of the "start button" (for quick reference).

    5) In case you want a multilanguage keyboard:
    a) Enter LinuxDeploy's shell by running the following on Privilege Terminal:
    Code:
    su;
    /data/data/ru.meefik.linuxdeploy/files/bin/linuxdeploy shell;
    echo"";
    b) Run the following command. Where xx your choice of language: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes (only 639-1 codes are applicable)
    Code:
    echo 'setxkbmap -option grp:ctrl_shift_toggle "us,[B]xx[/B]"' >> /etc/xdg/lxsession/LXDE/autostart
    c) when back in Linux/LXDE do the following:
    Right click on Start menu -> Add/Remove Panel Items -> Add -> Keyboard Layout Switcher -> Add -> Close​
    Explanation:
    It allows to change keyboard's layouts in both your virtual keyboard (by tapping the flag icon) and physical keyboard (by pressing ctrl+shift). I have not tried any other key combinations other than ctrl+shift so I don't know how well they'll work but you're welcome to try/modify (just replace the ctrl_shift part of the command with any other combination, as you're following the steps).

    6) Kernel level changes (Please read the expanation, those changes may well cause instability! BEWARE!):
    To achieve those you'd need the Donate version of TricksterMod (much recommended app to own)

    Ultra Aggressive OOM Values:
    a) You can access them by navigating to General (tab) -> MinFree Control while in Tricker Mod
    b) When there please save the default values ( tap on "untitled", then "save" and name it default -> ok )
    c) Then proceed to change the values as follows:

    Foreground = 384
    Visible = 412
    Secondary Server = 480
    Hidden App = 512
    Content Provider= 640
    Empty App = 768

    d) Again save them as "Aggressive" ( tap on "untitled", then "save" and name it aggressive -> ok )
    e) Tap on the tick (that has just showed up) to validate the changes​
    Undervolting
    a) If your kernel does not support it you won't find it. If it does, you'd find it by choosing the "Specific" tab (MTU Voltages).
    b) Similarly as above please save the default values ( tap on "untitled", then "save" and name it default -> ok )
    c) Proceed to change the values. I won't include any here as every SoC is different, but typically the greatest clock the greatest undervolt is achievable. As an example I started by lowering my volts by around 100 mvolts in my highest clocks, and progressively less in my lower clocks (for example 1900Mhz was lower by 125 mvolts, 1800Mhz by 100mvolts, etc). You (the user) are the the only one who can find the best volts for your device (low yet stable). If your device starts to get unstable (restarts without notice) you'd have to choose higher volts (you went too low), etc.
    d) Try different volt levels (Tap on the tick on each of your attemps)
    e) When you found stable enough (hopefully low enough) voltages, save them ( tap on "untitled", then "save" and name it low -> ok )​
    As an add-on you can "tell" TrickerMod to boot with the settings you just chose (menu button -> tick on "Kernel Settings"). Else you'd have to manually choose "your profiles" with every reboot.​
    Explanation:
    I struggled very much before deciding to add the above section. I know it may cause instability to many users (the undervolt) and/or significantly lower the capacity of the device to keep apps on system's RAM (due to the high OOM values) but eventually I decided against not including it. The reason is that Linux/Desktop usage can be characteristically RAM and battery hungry. That makes the above tip(s) less of an often uneeded option and more of a necessity, especially to those willing to make heavy use of the Desktop environment. Basically what running a whole OS via chroot means is that you'd need most of the resources of the device. That can only be done by using uncharacteristically high "killing" thresholds.

    The OOM values -above- basically mean that the device would kill significantly more background processes than it is expected. In fact I've experimented with many values and the above are the only ones that I've found to (still) be acceptably "low" yet allowing seamless use of the chroot/Linux environment. I could go lower but I start to see hits in performance. Also keep in mind that those values are also dependant on the rom one uses. There are other Roms that "react" better on low ram envrironments than mine. So -obviously- those values are not panacea, but I would be surprised if significantly lower values were not to harm the "Linux experience" no matter the rom.

    So -yeah- background processes would be killed left and right. The upside is more RAM for Linux use, less battery leaking from background processes and surprisingly better responsiveness in Android too. In fact that's the other reason why I've kept those values, I've never seen my tablet being as responsive than after adopting those values.Still depending on your usage patterns it may start killing some important background process of yours, in which case I'd advice lowering those values (but not way too much as it would impact Linux performance).

    For undervolting (if you can do it) the story is very similar. It may well cause a more unstable system, but it greatly helps with performance and battery life. On Linux there are processes that are characteristically harder to the Processor than most of anything that can be found to a "consumption OS" like Android. This means that the high clocks of our device are used much more frequently, leading to a very much lower battery life, but worse of all overheating which leads to throttling (low performance) and even possibly lowers the SoC's lifespan. Undervolting sets to aleviate those issue. After undervolting my processor I'm getting much better *sustained* performance and while on Linux quite better battery life too, about 30-40 minutes more! I like to say that undervolting is the "overclocking of mobiles", as it achieves the same end-result by aleviating or -even- eliminating throttling, one of the most important causes of low performance on mobiles.

    7) Kill multi-window before starting Linux:
    Well that's very straight forward, just toggle multiwindow off on quick settings.​
    Explanation: Ram (as explained above) is a precious commodity for "serious" Desktop work, so about ~100 MB of RAM is being freed in that way. But most importantly it disallows accidental activation of the multi-window panel which is a quite frustrating experience when it happens while "Desktoping".


    This concludes my second post. The following (and final) one is all about the things that still have to be done (where I'd need you -guys- more) and also some work-arounds that I found to those.
    4
    Mini-Guide

    INTRO
    While it kind of saddens me since I've tried (and I think succeeded) to make the guide as simple as possible all the while explaining the steps, the low interest to it lead me to decide to post also post a quick guide (instead of a full guide) that makes no use of shell commands.

    There are good news and bad news due to this. The good news is that the guide has contracted further yet its end result really does give a quick taste of well running Linux on our tablet. To sweeten the deal the guide posted in this post gives a quick taste to most devices running a VT (virtual terminal) enabled kernel, no matter the brand and/or Android version.

    The bad news is that due to the little interest expressed in here and my extreme lack of time most bugs and annoyances would most probably remain unsolved ... sadly. In no way or shape does that mean that I'm discontinuing support, just that I'll be lukewarm about it and I mostly expect from you / the users to find more workarounds / solutions and hopefully post them here...

    Anyway on we go.

    PREPARATIONS
    Follow the Preparation Section from the First post of this thread. Steps (d) and (e) are not needed, so you can leave those out.

    Additionally you'd need to download and place the following two files accordingly:

    a) Config Files (you extract the contents to the root directory of your tablet's internal storage, don't change the directory tree)
    b) Linux Image (you simply place it to the root directory of the internal storage)

    THE "MINI"-GUIDE
    For starters make sure that you have followed the "Preparations" Section Exactly. One mistake is enough to make this guide not to work. So without further ado:

    1) Open LinuxCanvas and grant it root access (if asked)

    2) Create a Linux image
    a) Open LinuxDeploy
    b) Tap the "Back" Arrow in the upper left corner of the app
    c) Delete the extant profile ("Garbage Bin" Icon -> OK)
    d) Import the downloaded Profile (3-dot icon -> Import -> OK)
    e) Double-tap to the imported profile (its name is "linux")
    f) Navigate to properties (Arrow showing "down") and Tap "Install" -> "OK"
    g) Be patient. When it's done it will read " >>>install"​
    3) Start Linux:
    a) Go back to "LinuxCanvas"
    b) Press Volume Up, wait a bit and voila! (if it doesn't work the first time, press the "menu" button to repaint)​

    ...and that's it (really). If you want to know what you get by following this guide (instead of the full one), the answer is "basically everything from the first post plus the first step from the second post". Which means that if you want the full deal you *still* have to follow Posts #2 and #3 (workarounds), but of course it's completely up to you.

    Again, report any issues, annoyances or even workarounds that you may have found. I'm counting on them to make the guide better.

    Cheers!
    2
    I have to wonder if this will work for other Note devices. (for instance I have the note 3)
    I'll give it a shot, and the changes I make to obviously match my device, I'll post here.

    Thanks for this mate, well done

    It will, most probably without much/any tweaks to the individual steps as Note 3 is very similar hardware wise.

    But I have to warn you. Firstly, you'd need a CONFIG_VT enabled kernel. That's fairly easy to get from Note3's kernel guys (it's just an extra option to enable). If they are not willing to provide you with one such kernel, you'd have to wait until I'd find the time to write a guide on how to create one from the sources.

    Secondly, you'd have to be much more agressive with your DPI settings as a Note 3 screen is way smaller than our tablet's. Of course you can always opt to work on an external screen, in which case you'd have to be much more restrained with the settings that control the dpi/size of the elements (by contrast).



    @Stevethegreat Great Work Man , it's just amazing ... but unfortunately , in Iran , I can't download from the Linux Deploy's Server ... is there anyway I could get the Image to do the Process ( I'm not that lazy ) Or even the ready image to try booting on my SM-P601 ( mybe a better Idea ) ? ... if there's some way , I'll work on the performance a bit ... also , maybe we can get the boot script used in my ARM-UEFI to get it sooner ... Also I have an idea that your ISO size can tell me if it's possible ( Dual Boot , I mean , like what MultiROM does , but much nicer and faster without the Android booted like a single ROM ) ... Great thanks for your effort ...

    With Best Wishes
    Hitman1376​

    Hey, LinuxDeploy offers a way to use different servers than the Russian ones. Also you can fiddle with the DNS server options (maybe there's a DNS server in your country/provider that resolves the Russian address).

    edit: Oh BTW (to the second part of your past). While I'd welcome anyone at all working on bringing truly native linux (in the form of dual-booting) I'm not too sure of it's usefulness. Still you're free to use parts of my guide towards that goal (if that's what you wish). You can read the final part of my guide ("Instead of Conclusion") to see why I'm not that interested to a true dual-boot.