Hi, everyone. This is howto for fedora users like me. In fact, I already posted this howto. But, I again upload this howto because some of the peoples don't find fedora howto.
HOWTO Build Android-X86 Full Source for Fedora users ==================================== Last Modified on 24-Dec-2008 19:10 I summarized how to build android full source for x86 architecture like Asus Eee lattop for fedora9 user. Fortunately, We can build android full surce both x86 and arm on fedora 9 distribution successfully because google is realesing android full source with common method without RPM or DEB currently. Don't forget that This howto is for Fedora distribution user like me. 0. My development environments - Linux PC: Fedora 9 ( 2.6.25.6-55.fc9 i686) . CPU: Intel(R) Core(TM)2 Duo CPU T5750 @ 2.00GHz ( Samsung SENS R60 Laptop ) . RAM: Samsung DDR Ram - Target: Eee PC (ASUS) and Samsung nettop NC01 - Reference: 1. Query of Linux distribution information - At first, Prepare ASUS Eee 701 Lattop or Samsung nettop (NC01) or x86 compatible target. And then, confirm system information on your linux distribution like belows. Fedora9$> uname -a Linux fedora-invain9 2.6.25.6-55.fc9.i686 #1 SMP Tue Jun 10 16:27:49 EDT 2008 i686 i686 i386 GNU/Linux Fedora9$> gcc --version and Fedora9$> gcc34 --version Fedora9$> gcc --version gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Fedora9$> gcc34 --version gcc34 (GCC) 3.4.6 20060404 (Red Hat 3.4.6-9) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2. repo init and Sync - You have to download android full source for x86 architecture like ASUS Eee PC 701. - Eee pc dev tree is "git://android.git.kernel.org/platform/vendor/ asus/eee_701.git". Fedora9$> cd ~ Fedora9$> mkdir bin_x86 && cd bin_x86 Fedora9$> mkdir mydroid && cd mydroid Fedora9$> repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake Fedora9$> repo sync Fedora9$> vi ./.repo/local_manifest.xml <manifest> <project name="platform/vendor/asus/eee_701" path="vendor/asus/ eee_701"/> </manifest> Fedora9$> repo sync ... A new repo command ( 1.8) is available. ... You should upgrade soon: cp /home/invain/bin_x86/mydroid/.repo/repo/repo /home/invain/bin/ repo Initializing project platform/vendor/asus/eee_701 ... remote: Counting objects: 33, done. remote: Compressing objects: 100% (31/31), done. remote: Total 33 (delta 2), reused 33 (delta 2) Unpacking objects: 100% (33/33), done. >From git://android.git.kernel.org/platform/vendor/asus/eee_701 * [new branch] cupcake -> korg/cupcake * [new branch] master -> korg/master 3. Building x86 android full source Fedora9$> export PATH=$PATH:/usr/sbin:/sbin (to use /sbin/tune2fs command of e2fsprogs pack ) Fedora9$> TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true CC=gcc34 CXX=g++34 make -j2 installer_img build/core/product_config.mk:207: WARNING: adding test OTA key ============================================ TARGET_PRODUCT=eee_701 TARGET_BUILD_VARIANT=eng TARGET_SIMULATOR= TARGET_BUILD_TYPE=release TARGET_ARCH=x86 HOST_ARCH=x86 HOST_OS=linux HOST_BUILD_TYPE=release BUILD_ID= ============================================ build/core/main.mk:178: implicitly installing apns-conf_sdk.xml ............... Below Omission ................... * Toouble Shooting about source building - If you want to avoid below errors on feora 9, Use gcc-34 instead of gcc-4.3 version. - Ref) Ubuntu 8.04LT support GCC 4.2(Recommendation) , Ubuntu 8.10 support GCC 4.3. - If you are using GCC 4.3 currently, Modify string header related sources like belows. Fedora9$> vi external/srec/tools/thirdparty/OpenFst/fst/lib/../../fst/ lib/vector-fst.h Fedora9$> vi external/srec/tools/thirdparty/OpenFst/fst/lib/symbol- table.cpp Fedora9$> vi frameworks/base/tools/aidl/aidl.cpp --> #include <stdlib.h>, #include <string.h> ........ and so on...... - In my case, I am using gcc 3.4 for compatibilty like this problem on fedora. #> yum install compat-gcc* #> rpm -qa | grep compat-gcc compat-gcc-34-3.4.6-9.i386 compat-gcc-34-c++-3.4.6-9.i386 compat-gcc-34-g77-3.4.6-9.i386 Fedora9$> vi Fedora9$> ls -lh out/target/product/eee_701/ total 770624 drwxrwxr-x 9 invain invain 4096 2008-12-24 16:05 . drwxrwxr-x 3 invain invain 4096 2008-12-24 15:34 .. -rw-rw-r-- 1 invain invain 2606080 2008-12-24 15:50 boot.img -rw-rw-r-- 1 invain invain 57 2008-12-24 16:03 clean_steps.mk drwxrwxr-x 4 invain invain 4096 2008-12-24 15:54 data drwxrwxr-x 2 invain invain 4096 2008-12-24 15:50 grub drwxrwxr-x 4 invain invain 4096 2008-12-24 16:05 installer -rw-rw-r-- 1 invain invain 406862848 2008-12-24 16:06 installer.img -rw-rw-r-- 1 invain invain 1951340 2008-12-23 19:18 kernel drwxrwxr-x 12 invain invain 4096 2008-12-24 16:05 obj -rw-rw-r-- 1 invain invain 607384 2008-12-24 15:50 ramdisk.img drwxrwxr-x 9 invain invain 4096 2008-12-24 15:50 root drwxrwxr-x 4 invain invain 4096 2008-12-24 15:50 symbols drwxrwxr-x 12 invain invain 4096 2008-12-24 15:53 system -rw-rw-r-- 1 invain invain 372056064 2008-12-24 16:05 system.img -rw-rw-r-- 1 invain invain 5156864 2008-12-24 16:04 userdata.img Fedora9$> file out/target/product/eee_701/installer.img ./out/target/product/eee_701/installer.img: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3; partition 1: ID=0x83, active, starthead 0, startsector 2048, 8878 sectors; partition 2: ID=0x83, starthead 0, startsector 10926, 783728 sectors Fedora9$> file out/target/product/eee_701/installer.img File: `./out/target/product/eee_701/installer.img' Size: 406862848 Blocks: 793552 IO Block: 4096 일반 파일 Device: fd00h/64768d Inode: 5349917 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 778/ invain) Gid: ( 778/ invain) Access: 2008-12-24 16:08:21.000000000 +0900 Modify: 2008-12-24 16:06:05.000000000 +0900 Change: 2008-12-24 16:06:05.000000000 +0900 Fedora9$> file out/target/product/eee_701/system.img ./out/target/product/eee_701/system.img: Linux rev 0.0 ext2 filesystem data Fedora9$> file out/target/product/eee_701/userdata.img ./out/target/product/eee_701/userdata.img: Linux rev 0.0 ext2 filesystem data Fedora9$> pushd out/target/product/eee_701/ Fedora9$> sudo mount -o loop boot.img /mnt Fedora9#> popd total 2519 -rw-rw-r-- 1 invain invain 77 2008-12-24 15:50 cmdline -rw-rw-r-- 1 invain invain 1951340 2008-12-24 15:50 kernel -rw-rw-r-- 1 invain invain 607384 2008-12-24 15:50 ramdisk Fedora9$> cat /mnt/test/cmndline console=tty0 console=ttyS1,115200n8 console=tty0 androidboot.hardware=eee_701 Fedora9$> cp /mnt/test/ramdisk /tmp/ramdisk.gz Fedora9$> pushd /tmp Fedora9$> gunzip ramdisk.gz Fedora9$> cpio -iv < ramdisk Fedora9$> popd init.goldfish.rc init data init.eee_701.rc proc sbin sbin/adbd system init.rc default.prop lib lib/modules lib/modules/atl2.ko lib/modules/drm.ko lib/modules/fbcon.ko lib/modules/cfbimgblt.ko lib/modules/i915.ko lib/modules/cfbcopyarea.ko lib/modules/bitblit.ko lib/modules/softcursor.ko lib/modules/font.ko lib/modules/cfbfillrect.ko dev sys 2958 blocks Fedora9$> file /tmp/init /tmp/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped 4. Make USB Stick Installer - You have to change first boot device on Bios menu with F2 or Del key to use usb live when booting. Fedora9$> dd if=out/target/product/eee_701/installer.img of=/dev/sdf1 /dev/sdf1 : USB memory's physical partition with "cat /proc/ partitions" command. 5. Now, Enjoy X86 Android Platform on Eee Lattop (ASUS) ! --~--~---------~--~----~------------~-------~--~----~ unsubscribe: android-porting+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-porting -~----------~----~----~----~------~----~------~--~---