[Galaxy Note 10.1 (2014 Edition) General] Stevethegreat:
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 [MENTION=631273]Chainfire[/MENTION], [MENTION=4419114]rovo89[/MENTION] (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 [MENTION=5529656]xluco[/MENTION] 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)