the differences to regular trunk version compile are: CMDLINE = "mem=200M console=ttyS2,115200n8 console=ttyGS0 musb_hdrc.mode_default=2 androidboot.console=ttyGS0 root=/dev/sda2 rw media=/dev/sda1 init=/init android omapfb.vram=7372800 vram=7372800 extrabaud=1000000" in the init script in initramfs: install_g_serial() { $INSMOD /lib/modules/$KERNEL_VERSION/kernel/drivers/usb/musb/musb_hdrc.ko mode_default=2 $INSMOD /lib/modules/$KERNEL_VERSION/kernel/drivers/usb/gadget/g_serial.ko n_ports=3 mknod /dev/ttyGS0 c 253 0 mknod /dev/ttyGS1 c 253 1 mknod /dev/ttyGS2 c 253 2 cat /proc/kmsg >/dev/ttyGS2 & } gets called after 'display_banner' that's all folks! PS: if you're on Windows look at this: http://www.kernel.org/doc/Documentation/usb/gadget_serial.txt Specifically 'Installing the Windows Host ACM Driver'