Skip to content

Instantly share code, notes, and snippets.

@psema4

psema4/gist.md Secret

Last active August 29, 2015 14:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save psema4/c1545694272b1939b429 to your computer and use it in GitHub Desktop.
Save psema4/c1545694272b1939b429 to your computer and use it in GitHub Desktop.
Running Linux on Android

Running Linux on Android

Early notes about setting up a Debian environment under Android with GNURoot

Note: Seems there are some setuid/getuid issues, so far unable to launch an xterm :(

Note: xeyes and xclock work fine :)

Core

Keyboards

Steps

  • install GNURoot and the GNURoot WheezyX packages
  • install keyboard(s) if desired
  • run GNURoot
  • create and launch (as Fake Root) a wheezyx rootfs

Base

Note: needs user-related fixes; by default, whoami returns "root" (when launched as Fake Root), ${USER} is not set and ~ / ${HOME) is /home (?)

Note: when launched without Fake Root, whoami replies "cannot find name for user ID nnnnn" (where nnnnn is your uid). The shell represents this with the prompt "I have no name!@localhost:/$"

echo 'export PATH="/bin:/usr/bin:/usr/sbin:${PATH}"' >> /home/.bashrc
source ~/.bashrc
apt-get update
apt-get install build-essential git-core

X

Note: needs additional security configuration

Note: make sure you're zoomed all the way out, touch-based input is usable but a bit buggy

Note: default window manager is twm, currently unable to launch apps from menus so launch x apps from terminal instead

Install a vnc viewer such as RealVNC Viewer

After starting GNURoot WheezyX, if DISPLAY is on localhost:1 connect your vnc viewer to address localhost:5901 with default password "password"

May need to export the display; use whatever is displayed in the terminal on startup

export DISPLAY="localhost:1"
export VNCDISPLAY=${DISPLAY}

and to persist (depending on your usage, you may not want to do this)

echo 'export DISPLAY="localhost:1"' >> /home/.bashrc
echo 'export VNCDISPLAY=${DISPLAY}' >> /home/.bashrc

Optional

apt-get install x11-apps
xeyes

Broken

Currently unable to run; both return "/usr/bin/xterm: unable to reset uid"

  • xterm
  • x-terminal-emulator -geometery 80x24+10+10 -ls -title "${VNCDISPLAY} Desktop" &

Note: x-terminal-emulatar command via /home/.vnc/xstartup

Node.js

echo "deb http://ftp.us.debian.org/debian wheezy-backports main" >> /etc/apt/sources.list
apt-get update
apt-get install nodejs nodejs-legacy

Note: This should install npm but fails due to (setuid?) permission errors

apt-get install curl
curl --insecure https://www.npmjs.org/install.sh | bash

npm.js install script dumps:

Error: EACCES, Permission denied
    at /tmp/npm.20161/package.node_modules/uid-number/uid-number.js:44:16
    at ... <snip>

and then, oddly

It worked

though npm doesn't appear anywhere on the path (installation failure is assumed)

Other

  • building node.js v0.10.33 from git fails (check build & compiler settings)
  • opening additional gnuroot terminal windows looks like android sh (not wheezy sh/dash/bash)
  • many commands (notably xterms) fail due to "unable to reset uid"

Regular messages from apt-get install:

  • /usr/bin/mandb: can't set effective uid: Permission denied
  • Cannot write log, openpty() failed (/dev/pts not mounted?)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment