Noisedroid/FAQ: Difference between revisions

From Noisebridge
Jump to navigation Jump to search
No edit summary
(My Top 12 NFL Quarterbacks Of All Time - Old And New!)
Line 1: Line 1:
== Building ==
* Configure a x86_32 Ubuntu 8.10 or Debian 4.0 host with at least 20GB of disk space.
* download sources according to http://source.android.com/download, install needed packages, etc
* build for Dream (the internal name for G1) according to http://source.android.com/documentation/building-for-dream
** however, you probably want to use an up-to-date kernel branch instead of the the ancient 2.6.25 that the android.com <tt>local_manifest.xml</tt> refers to:
<project path="kernel" name="kernel/msm" revision="refs/heads/android-msm-2.6.27"/>
** this results in a build using a prebuilt <tt>kernel</tt> and <tt>wlan.ko</tt> from <tt>vendor/htc/dream/</tt>.
* after <tt>make</tt> completes you'll have a built tree in <tt>out/target/product/dream</tt>, and you can run
# fastboot flash boot boot.img
# fastboot flash system system.img


Here's what I did to build my own kernel and wlan.ko:
cd mydroid
d=$PWD
First, build the kernel.  The <tt>android-msm-2.6.27</tt> branch seems to work just fine.  We're building for the <tt>msm</tt> platform using the <tt>mydroid/prebuilt/</tt> 4.2.1 toolchain; the 4.3.1 toolchain doesn't seem to work.
cd kernel
make ARCH=arm CROSS_COMPILE=$d/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi- msm_defconfig
make ARCH=arm CROSS_COMPILE=$d/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
Once the kernel build completes without errors, we can build the horrifyingly complex TIWLAN driver.  We don't need to set CROSS_COMPILE or ARCH, the <tt>system/wlan/ti/Makefile</tt> does that for us, but we do need to add the prebuilt toolchain to $PATH.
cd $d/system/wlan/ti/sta_dk_4_0_4_32
PATH=$d/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin:$PATH make KERNEL_DIR=$d/kernel
Finally, we can install the results into <tt>out/target/product/dream/</tt> and rebuild <tt>boot.img</tt> (for the new kernel) and <tt>system.img</tt> (for the new wlan.ko).  The makefiles don't have correct dependencies for the .img files, so we just delete them and let them get rebuilt.
cd $d
cp kernel/arch/arm/boot/zImage out/target/product/dream/kernel
cp system/wlan/ti/sta_dk_4_0_4_32/wlan.ko out/target/product/dream/system/lib/modules/wlan.ko
rm out/target/product/dream/*.img
make
== Working with the G1 ==
* TODO: how to root a retail G1
* http://www.gotontheinter.net/content/fastboot-cheat-sheet
There are two significant host apps for (ab)using the G1: [http://www.gotontheinter.net/content/fastboot-cheat-sheet fastboot] and [http://developer.android.com/guide/developing/tools/adb.html adb].  Fastboot is used to write over USB to the G1's flash, for example to [http://groups.google.com/group/android-platform/msg/437448ed327a5fbc flash a complete system.img] or [http://www.gotontheinter.net/logo.rle replace the T-Mobile splash screen].  adb gives you access to a debug root shell on the G1 with <tt>adb shell</tt>, and also "syslog" with <tt>adb logcat</tt>.
[[Category:Cellular]]
== USB to Serial interface with the G1 ==
[[Image:G1-two-usb-to-serial-cable.jpg|thumb|G1 USB to Serial interface cable]]
It's possible to create a USB to serial interface cable ([https://noisebridge.net/pipermail/noisebridge-discuss/2009-March/003336.html details here]) to interact with the running phone and the boot loader(s).
According to [http://groups.google.com/group/android-platform/browse_thread/thread/439d3f3af7a88a09/10a80eb835e8dbcc?lnk=gst&q=serial#10a80eb835e8dbcc this android-platform post] the serial port is 115,200 8N1 at 2.8V TTL with the following pinout:
_____________
| A B C D E |
\1 2 3 4 5 6|
A: GND
B: NC
C: +DATA
D: -DATA
E: +5v
1: +Mic
2: +Right
3: Switch / Rx (2.8V, CMOS-TTL Level) / CABLE_IN2
4: GND / Tx (2.8V, CMOS-TTL Level) / CABLE_IN1
5: GND (Serial GND, 0 Ohms resistance between this and pin A)
6: +Left
'''!!! Fixed 10.10.09 : Rx & Tx reversed, because they were confused !!!'''
[http://www.instructables.com/id/Android_G1_Serial_Cable/ How to make a Android G1 Serial to USB Cable]

Revision as of 08:27, 28 July 2012