My Working (almost ideal) Setup!
I finally have a setup I'm satisfied with. It was quite a bit of work, and it may not be worth it to some people, but just in case it is, here's how I did it.
I simply could not get anything to work on the stock ROM. Even with root, I was constantly running into permissions issues, which I believe were related to KNOX/SELinux. What finally worked for me was to completely wipe out the stock ROM and install CM12.
The unofficial CM12 port for the Galaxy Note Pro is amazingly stable.
First a few caveats:
- I am not an Android developer. I make no guarantee these instructions will work for you. I'm just sharing what worked for me in the hope it will help someone. I'm not responsible for bricked devices.
- All the instructions below are for the SM-P900 (wifi-only version) ONLY. You will need to find the right versions of CF Auto-Root and TWRP on your own if using a different device.
- This will void your warranty several times over (obviously). Proceed only if you are comfortable with that fact.
- With these steps, you will lose multi-window support, all of Samsung's "S" and TouchWiz apps, and S-Pen button support (the pen itself still works fine and shows a cursor when hovering just like stock - just no response to button presses). I'm completely fine with the first two, and only slightly miss the S-Pen button support.
- You will also gain the most up-to-date, closest to plain-vanilla Android experience available for the Galaxy Note Pro.
I probably went into way more detail than any of you needs, but I figured it'd be better to have too much information than too little.
0. Get Drivers
Download the official Samsung USB drivers and install them:
http://d-h.st/QJKA
1. Root
I don't think this step is really needed, but it's the only way you can backup your apps (with Titanium Backup) before wiping. So do this first if you want to have backups.
- Download the CF Auto-Root file for your device (and unzip it somewhere): http://xdaforums.com/showpost.php?p=50498424&postcount=235
- Download Odin (and unzip it somewhere): http://d-h.st/85j
- Power down your tablet.
- Power on in download mode.
- Hold down the VolumeDown button.
- Without letting go of the VolumeDown button, press the Power button until you see a prompt to continue.
- Press VolumeUp to proceed. You should now see the Download screen.
- Connect your tablet to your computer via USB.
- Wait for Windows to setup your table with the right drivers.
- Do not proceed if there are any errors installing drivers.
- Right-click the Odin executable and click "Run as Administrator".
- Make sure your tablet shows up in one of the slots.
- Click the AP button and open the .tar.md5 file from the unzipped CF Auto-Root file.
- Click Start.
- Wait until the status display says "SUCCESS".
- Backup what you need with Titanium Backup.
2. TWRP
In order to install CM12, you need
TWRP.
- Download the Odin-flashable TWRP 2.8.1.1 file: http://www.techerrata.com/file/twrp2/v1awifi/openrecovery-twrp-2.8.1.1-v1awifi.img.tar
- I had issues with 2.8.3.0 and 2.8.0.0 (it would crash when wiping internal data). Everything worked the first time with 2.8.1.1.
- Flash the .tar file in Odin exactly the same way as CF Auto-Root above EXCEPT: Uncheck Auto Reboot
- When Odin is finished, hold the Power button down until the screen goes blank.
- Boot into recovery.
- Hold down the VolumeUp button.
- Without letting go of the VolumeUp button, press the Power button until you see the Galaxy Note Pro logo screen.
- The next thing you should see is TWRP. If not, your changes will be reverted by the stock ROM and you need to flash TWRP again.
- Wipe Cache/Dalvik.
- Reboot into the system and make sure everything's ok.
3. CM12
- Download CM12 (link is for 20150104 build): https://drive.google.com/file/d/0B-6nm7Jks0W5OTVHbzVZaDRPU1E/view?usp=sharing (md5: ba357fdec7590ef109d6e2a24bca5cd8)
- Download Gapps (optional): http://xdaforums.com/paranoid-android/general/gapps-official-to-date-pa-google-apps-t2943900
- Download SuperSU: http://download.chainfire.eu/641/SuperSU/UPDATE-SuperSU-v2.40.zip
- Copy all files to your SD card or USB OTG drive.
- Boot your tablet into recovery.
- Wipe everything except External SD and USB OTG (advanced wipe).
- Install the CM12 zip, and add Gapps (optional) and SuperSU via the Add Zips button.
- Boot up into an amazing ROM!
4. Linux Deploy
Now comes the part we really should have been able to start with. This will install a full Linux desktop environment on your tablet by
chrooting to a
loop device. It's not running a full Virtual Machine separate from Android. It's running Linux inside Android, which allows it to be much more efficient.
- Install Linux Deploy: https://play.google.com/store/apps/details?id=ru.meefik.linuxdeploy
- Launch it.
- Press the Download button near the top-right (down arrow going into a shallow box).
- Enter these settings:
- Distribution: Ubuntu
- Distribution suite: utopic
- Architecture: armhf
- Installation type: File
- Installation path: Whatever you like, I put in '/storage/sdcard1/ubuntu/ubuntu.img'
- Image size (MB): I put 8000 because I have plenty of space and wanted some wiggle room, but the finished product takes up less than 1GB on my tablet, so you might be fine with just 2000MB. "Auto" did not work for me.
- File System: ext4
- User name: whatever you want
- Desktop environment: Your choice. I liked LXDE the best (very light-weight).
- Graphics subsystem: VNC
- GUI Settings:
- Depth (bits): 24
- DPI: 124
- Width: 1280
- Height: 800
- Press Install (at the top of the settings list).
- Wait a long time and everything should work. You should see "<<< end: install" with no error messages above it.
- Press Start near the top-right.
- Wait a few seconds and you should see "<<< end: start" with no error messages above it.
- Now you're ready to connect to your Linux desktop!
5. VNC
Next you need to install a
VNC client. I tried a bunch. I was looking for three main things:
- Essential: Must show remote cursor (we'll be sharing the mouse/keyboard via Synergy - not using it from the tablet).
- High quality, no compression, graphics. There's no network lag to worry about, usual VNC compression will only create lag.
- Full Screen capability. I didn't want the Android Status bar taking up screen space.
I chose Desktop VNC - Remote Display. You might find a better one.
- Install Desktop VNC - Remote Display: https://play.google.com/store/apps/details?id=com.reka.vnchid.ui
- Open Desktop VNC
- Press Create new profile and enter these settings:
- Operating System: Linux
- IP Address: localhost
- Password: changeme
- Profile name: Ubuntu
- Press Save
- Press Ubuntu
- You're in!
Tapping the screen left clicks exactly where you tap. You can swipe down from the top of the screen to bring up other mouse options. Be careful to start your swipe just
below the top of the screen so that you don't just show the Android Status Bar. You can swipe up from the bottom of the screen to bring up keyboard input options.
6. Synergy
You need to install Synergy on your tablet's Linux desktop to share the keyboard and mouse from your host computer and make it like a second display. You'll first need to install Synergy on the computer you will be sharing your keyboard and mouse from (server).
Synergy is free software available for every major desktop OS. They've started charging for downloads ($10 once per person, free forever thereafter), but you can find them hosted elsewhere if you really don't want to support the developer (it is
AMAZING software).
Configure your server to put 'galaxynotepro' where you'll be placing your tablet relative to the host computer.
- Click the Menu button at the bottom left of the screen (it's the button with the LXDE logo).
- Go to Accessories --> LXTerminal.
- Bring up your keyboard by swiping up from the bottom of the screen.
- Enter:
Code:
sudo apt-get install synergy
- Enter 'Y' if asked to continue.
- When finished, close the terminal and go to Menu --> Accessories --> Synergy.
- Choose Client (Add to existing setup), and click Next.
- Click Edit --> Settings.
- Check Automatically start server/client.
- Screen name: galaxynotepro
- OK
- Enter Server IP: Enter the IP address of the computer you will be sharing your keyboard and mouse from.
- Click Start.
- Enjoy your second screen!
To get the VNC client cursor out of the way, I just tap on the far-right edge of the screen, which hides it well enough.
I have few requirements for the second screen. All I really need is a browser, a text editor, and a terminal. LXDE already provides the text editor (Leafpad) and terminal (LXTerminal). I installed Chromium:
Code:
sudo apt-get install chromium-browser
You can install any software via the Terminal and apt-get. If you want a graphical package manager, you can install Synaptic:
Code:
sudo apt-get install synaptic
If you want a media player, I'd suggest VLC:
7. DONE! (almost)
I've attached a screenshot of my finished setup. I was surprised, but performance with VNC is decent. It's certainly acceptable to me for basic web browsing and text editing and is much faster than any of the Android apps I tried (like Splashtop). However, it's not sufficient for video playback or really anything beyond static graphics and text.
The holy grail of this setup would be to display the GUI via FrameBuffer; no VLC client and no lag whatsoever. However, you need a custom kernel with VT/FB support to do that. I haven't found one stable enough to use yet, and I'm too scared to compile my own. I'll post another howto if I find a VT/FB kernel.
Hope this helps somebody!