Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I brought myself an Asus Transformer which is an android (Tegra2 ARM) based tablet pc. I've then chrooted ubuntu onto of Android 3.1. The chroot appears to be detecting the device I plug into the usb port but it doesn't generate the appropriate device node in /dev/.

For example I plugged in my Atmel MKII (microcontroller programmer) but it doesn't generate /dev/ttyS0. Also the same for storeage devices such as my phone.

Is it udev that's meant to controll this? It does seem to have udev installed.

share|improve this question
up vote 1 down vote accepted

On Linux, device nodes are normally created by udev. However, when you chroot from Android to Ubuntu, you only change the user-space programs, but your hardware is still managed by the Android kernel. As far as I know, Android doesn't use udev but a hardcoded list of hardware to watch.

Another possibility: Even if Android detects a device, the devnode would be created in the outer filesystem (Android's /dev). To Android, your Ubuntu chroot's /dev is nothing more than an empty directory. You would need to exit the chroot, then mount --bind the Android /dev to the one in your chroot.

share|improve this answer
I suspect Android uses the old method of device node creation, creating static device nodes through mknod or similar. There's a MAKEDEV script for the purpose, which creates nodes for all known devices, but it produces a cluttered /dev with device nodes for any device that can be placed in a system - not exactly useful for most people. udev was adopted partly because it was too cluttered, and partly because hot pluggable hardware demanded it - the way devices are addressed changes too much otherwise. – Stephanie Jul 17 '11 at 19:29
It turns out only selected device with google's vendor id and product number are capable of being recognised properly. You properly could get it working if you know the in and outs of the kernel. But I can't be bothered. Life too short for this. – ageis23 Jul 17 '11 at 20:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .