Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

How to get the Android distribution

9,326 bytes added, 17:24, 23 February 2011
no edit summary
</span>
* {| border=1 class="simple"!'''Release: '''!'''x-loader'''!'''u-boot'''!'''Kernel'''!'''Rootfs'''!'''Platform'''|- | &nbsp;Android 2.2 (Froyo):''' http://developer.android.com/sdk/android-2.2.htmlDM3730&nbsp;** x-loader: | &nbsp;[http://downloads.igep.es/binaries/x-loader/v1.4.4-1/x-load-1.4.4-1.igep0020-sdcard.bin.ift x-load-1.4.4-1.igep0020-sdcard] &nbsp;** u-boot: | &nbsp;[http://downloads.igep.es/binaries/u-boot-arm/v2010.06-1/u-boot-arm-2010.06-1.igep0020.bin u-boot-arm-2010.06-1]&nbsp;| &nbsp;[http://downloads.igep.igep0020es/android/froyo-2.2/uImage-android-2.6.32.bin uImage-2.6.32.bin]&nbsp;** kernel| &nbsp;[http://downloads.igep.es/android/froyo-2.2/android-dm3730-froyo-2.2-20110223161010.tar.bz2 dm3730-2.2]&nbsp;** rootfs| http://developer.android.com/sdk/android-2.2.html |}
Chose one boot.srcscr files:* dvi: [http://downloads.igep.es/android/froyo-2.2/boot-dvi.scr 1280x720]* lcd: [http://downloads.igep.es/android/froyo-2.2/boot-lcd-70.scr Seiko 7.0 inch WVGA (800 x RGB x 480) TFT with Touch-Panel]* lcd: [http://downloads.igep.es/android/froyo-2.2/boot-lcd-43.scr Powertip 4.3 inch (480 x RGB x 272) TFT with Touch-Panel] '''Quick steps: create a bootable sdcard'''  $ wget http://downloads.igep.es/binaries/x-loader/v1.4.4-1/x-load-1.4.4-1.igep0020-sdcard.bin.ift $ wget http://downloads.igep.es/binaries/u-boot-arm/v2010.06-1/u-boot-arm-2010.06-1.igep0020.bin $ wget http://downloads.igep.es/android/froyo-2.2/uImage-android-2.6.32.bin $ wget http://downloads.igep.es/android/froyo-2.2/android-dm3730-froyo-2.2-20110223161010.tar.bz2 $ wget http://downloads.igep.es/files/media-samples.tar.gz $ tar xzf media-samples.tar.gz Download one of $ wget http://downloads.igep.es/android/froyo-2.2/boot-dvi.scr $ wget http://downloads.igep.es/android/froyo-2.2/boot-lcd-70.scr $ wget http://downloads.igep.es/android/froyo-2.2/boot-lcd-43.scr and rename to boot.scr $ mv <boot.scr file> boot.scr Make the sd card $ wget http://downloads.igep.es/android/froyo-2.2/mkmmc-android.sh $ sudo ./mkmmc-android.sh <device> x-load-1.4.4-1.igep0020-sdcard.bin.ift u-boot-arm-2010.06-1.igep0020.bin uImage-android-2.6.32.bin boot.scr android-dm3730-froyo-2.2-20110223161010.tar.bz2 media-samples
=== Enhancements ===
=== Known issues ===
* At least a class 6 SD card is required
* Ethernet + Wifi does not work together, the problem is in the android network "stack". In rowboat froyo an wired ethernet component was copied from (guessing) android-x86 and this is conflicting with the wifi part. This is also mentioned on the android-x86 mailinglist as being an issue.So not a kernel/ wifi driver issue but entirely a android stack issue.
** If you'll use wifi, it seems that it cannot connect to a wifi ap but if you boot the second time it is ok, to use wifi follow:
$ repo sync
First of all edit '''Before continue apply these patches'''[[#Annex:_patches |(click here)]] Download libertas modules and move to device/ti/igepv2/BoardConfig.mk and set BOARD_USES_OMAP3_LIGHTS to false, otherwise compilation fails.<pre>diff --git a/BoardConfig.mk blibertas/BoardConfig.mkindex b9e86b3..95187de 100644--- a/BoardConfig.mk+++ b/BoardConfig.mk@@ -11,7 +11,7 @@ BUILD_WITH_ALSA_UTILS := true BUILD_PV_VIDEO_ENCODERS := 1 -BOARD_USES_OMAP3_LIGHTS := true+BOARD_USES_OMAP3_LIGHTS := false
BOARD_USES_VIRTUAL_TOUCHSCREEN $ mkdir device/ti/igepv2/libertas/ $ wget http:= true//downloads.igep.es/android/froyo-2.2/libertas.ko USE_CUSTOM_RUNTIME_HEAP_MAX $ wget http:= "64M"//downloads.igep.es/android/froyo-2.2/libertas_sdio.ko< $ mv sd8686*bin device/ti/igepv2/libertas/pre>
TIP: Enable loading dsp modules<pre>diff --git a/init.rc b/init.rcindex 57bf9bc..dacc2de 100644--- a/init.rc+++ b/init.rc@@ -124,6 +124,12 @@ loglevel 3 chmod 0777 /dev/video2 chmod 0777 /dev/omap-resizer +# loading dsp modules+ insmod /system/ti-dsp/cmemk.ko "phys_start=0x84700000 phys_end=0x85900000 allowOverlap=1 useHeapIfPoolUnavailable=1"+ insmod /system/ti-dsp/dsplinkk.ko+ insmod /systemand download libertas firmware and move to device/ti-dsp/lpm_omap3530.ko+ insmod /system/ti-dsp/sdmak.ko+ # create basic filesystem structure mkdir /system/etc/wifi 0770 system wifi chmod 0770 /system/etcigepv2/wifi<firmware/pre>
TIP $ mkdir device/ti/igepv2/firmware/ $ wget http: Use partition 3 as media data.<pre>diff --git a/vold.fstab b/volddownloads.fstabindex fc83907igep..b58f21f 100644--- aes/vold.fstab+++ bandroid/vold.fstab@@ froyo-1,2 +1,.2 @@/sd8686.bin-dev_mount sdcard $ wget http:/mnt/sdcard auto downloads.igep.es/devicesandroid/platform/mmcifroyo-omap-hs2.02/mmc_host/mmc0sd8686_helper.bin+dev_mount sdcard /mnt/sdcard 3 /devices $ mv sd8686*bin device/platformti/mmci-omap-hs.0igepv2/mmc_host/mmc0<firmware/pre>
Download the TI DVSDK package to the external/ti-dsp folder manually from the table in webpage http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/latest/index_FDS.html. Registration might be needed.
setenv bootargs 'mem=71M@0x80000000 mem=384M@0x88000000 console=tty0 console=ttyS2,115200n8 \
androidboot.console=ttyS2 root=/dev/mmcblk0p2 rw rootfstype=ext3 init=/init rootwait ip=off \
omap_vout.vid1_static_vrfb_alloc=y omapdss.def_disp=lcd-70 43 omapfb.mode=dvi:1280x720MR-16 mpurate=1000'
bootm 0x80200000
'''Warning:''' Provide the right device name after the script name when you invoke the script. If you get this wrong it can wipe your HDD.
 
=== Annex: patches ===
 
==== Project device/ti/igepv2/ ====
<pre>
project device/ti/igepv2/
diff --git a/AndroidBoard.mk b/AndroidBoard.mk
index bd28495..01b7385 100644
--- a/AndroidBoard.mk
+++ b/AndroidBoard.mk
@@ -27,6 +27,36 @@ PRODUCT_COPY_FILES += \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/vold.fstab:system/etc/vold.fstab
+# WPA
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/wpa_supplicant.conf:system/etc/wifi/wpa_supplicant.conf
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/wpa_supplicant.conf:data/misc/wifi/wpa_supplicant.conf
+
+# Libertas SDIO firmware
+ifneq ($(wildcard $(LOCAL_PATH)/firmware/sd8686.bin),)
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/firmware/sd8686.bin:system/etc/firmware/sd8686.bin
+endif
+ifneq ($(wildcard $(LOCAL_PATH)/firmware/sd8686_helper.bin),)
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/firmware/sd8686_helper.bin:system/etc/firmware/sd8686_helper.bin
+endif
+
+# Libertas modules
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/libertas/libertas.ko:system/lib/modules/libertas.ko
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/libertas/libertas_sdio.ko:system/lib/modules/libertas_sdio.ko
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/libertas/rc.libertas:system/bin/libertas/rc.libertas
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/dhcpcd.conf:system/etc/dhcpcd/dhcpcd.conf
+
# initlogo
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/../../rowboat/generic/initlogo/android-robot-on-black-480x640.rle:root/initlogo.rle.bak
diff --git a/BoardConfig.mk b/BoardConfig.mk
index b9e86b3..95187de 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -11,7 +11,7 @@ BUILD_WITH_ALSA_UTILS := true
BUILD_PV_VIDEO_ENCODERS := 1
-BOARD_USES_OMAP3_LIGHTS := true
+BOARD_USES_OMAP3_LIGHTS := false
BOARD_USES_VIRTUAL_TOUCHSCREEN := true
USE_CUSTOM_RUNTIME_HEAP_MAX := "64M"
diff --git a/dhcpcd.conf b/dhcpcd.conf
new file mode 100644
index 0000000..54006c7
--- /dev/null
+++ b/dhcpcd.conf
@@ -0,0 +1,6 @@
+# dhcpcd configuration for Android Wi-Fi interface
+# See dhcpcd.conf(5) for details.
+
+interface wlan0
+# dhcpcd-run-hooks uses these options.
+option subnet_mask, routers, domain_name_servers
diff --git a/init.rc b/init.rc
old mode 100644
new mode 100755
index 57bf9bc..fecd861
--- a/init.rc
+++ b/init.rc
@@ -1,5 +1,3 @@
-# IGEPv2 development init.rc
-
# Add our initlogo
#on early-init
# symlink /initlogo.rle.bak /initlogo.rle
@@ -124,13 +122,24 @@ loglevel 3
chmod 0777 /dev/video2
chmod 0777 /dev/omap-resizer
+# loading dsp modules
+ insmod /system/ti-dsp/cmemk.ko "phys_start=0x84700000 phys_end=0x85900000 allowOverlap=1 useHeapIfPoolUnavailable=1"
+ insmod /system/ti-dsp/dsplinkk.ko
+ insmod /system/ti-dsp/lpm_omap3530.ko
+ insmod /system/ti-dsp/sdmak.ko
+
# create basic filesystem structure
- mkdir /system/etc/wifi 0770 system wifi
+ mkdir /system/etc/wifi 0770 wifi wifi
chmod 0770 /system/etc/wifi
- chown system wifi /system/etc/wifi
chmod 0666 /system/etc/wifi/wpa_supplicant.conf
- #chown wifi wifi /system/etc/wifi/wpa_supplicant.conf
- chown system wifi /system/etc/wifi/wpa_supplicant.conf
+ chown wifi wifi /system/etc/wifi
+ #wpa_supplicant control socket for android wifi.c (android private socket)
+ mkdir /data/misc/wifi 0770 wifi wifi
+ mkdir /data/misc/wifi/sockets 0770 wifi wifi
+ chmod 0770 /data/misc/wifi
+ chmod 0660 /data/misc/wifi/wpa_supplicant.conf
+ chown wifi wifi /data/misc/wifi
+ chown wifi wifi /data/misc/wifi/wpa_supplicant.conf
mkdir /data/misc 01771 system misc
mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
@@ -140,31 +149,14 @@ loglevel 3
mkdir /data/misc/systemkeys 0700 system system
mkdir /data/misc/vpn/profiles 0770 system system
- # wpa_supplicant socket
- mkdir /data/system/wpa_supplicant 0771 system wifi
- chmod 0771 /data/system/wpa_supplicant
- chown system wifi /data/system/wpa_supplicant
-
- mkdir /data/system/wpa_supplicant/sta 0771 system wifi
- chmod 0771 /data/system/wpa_supplicant/sta
- chown system wifi /data/system/wpa_supplicant/sta
-
- # give system access to wpa_supplicant.conf for backup and restore
- mkdir /data/misc/wifi 0770 system wifi
- chown system wifi /data/misc/wifi
- mkdir /data/misc/wifi/sockets 0770 system wifi
- chmod 0770 /data/misc/wifi
- chmod 0660 /data/misc/wifi/wpa_supplicant.conf
- chown system wifi /data/misc/wifi/wpa_supplicant.conf
-
mkdir /data/local 0771 shell shell
mkdir /data/local/tmp 0771 shell shell
mkdir /data/data 0771 system system
mkdir /data/app-private 0771 system system
mkdir /data/app 0771 system system
mkdir /data/property 0700 root root
- mkdir /data/misc/dhcp 0770 dhcp dhcp
- chown dhcp dhcp /data/misc/dhcp
+ mkdir /data/misc/dhcp 0770 system dhcp
+ chown system dhcp /data/misc/dhcp
# create dalvik-cache and double-check the perms
mkdir /data/dalvik-cache 0771 system system
@@ -290,6 +282,8 @@ on boot
setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
+ setprop wifi.interface wlan0
+
class_start default
## Daemon processes to be run by init.
@@ -297,8 +291,13 @@ on boot
service console /system/bin/sh
console
-# Start PowerVR SGX DDK
+# start PowerVR
service pvr /system/bin/sgx/rc.pvr start
+ oneshot
+
+# start wifi
+service libertas /system/bin/libertas/rc.libertas start
+ oneshot
# adbd is controlled by the persist.service.adb.enable system property
service adbd /sbin/adbd
@@ -342,8 +341,8 @@ service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-sys
onrestart restart media
service media /system/bin/mediaserver
- user media
- group system audio camera graphics inet net_bt net_bt_admin net_raw
+ user root
+ group system audio camera graphics inet net_bt net_bt_admin net_raw sdcard_rw
ioprio rt 4
service bootanim /system/bin/bootanimation
@@ -357,12 +356,11 @@ service dbus /system/bin/dbus-daemon --system --nofork
user bluetooth
group bluetooth net_bt_admin
-#service wpa_supplicant /system/bin/wpa_supplicant -Dwext -dd -iwlan0 -c /system/etc/wifi/wpa_supplicant.conf
-# #socket wpa_wlan0 dgram 660 system wifi
-# #user system
-# group system wifi inet
-# disabled
-# oneshot
+service wpa_supplicant /system/bin/wpa_supplicant -dd -Dwext -iwlan0 -c/system/etc/wifi/wpa_supplicant.conf
+ socket wpa_wlan0 dgram 660 wifi wifi
+ group system wifi inet
+ disabled
+ oneshot
service bluetoothd /system/bin/bluetoothd -n
socket bluetooth stream 660 bluetooth bluetooth
diff --git a/vold.fstab b/vold.fstab
index fc83907..b58f21f 100644
--- a/vold.fstab
+++ b/vold.fstab
@@ -1,2 +1,2 @@
-dev_mount sdcard /mnt/sdcard auto /devices/platform/mmci-omap-hs.0/mmc_host/mmc0
+dev_mount sdcard /mnt/sdcard 3 /devices/platform/mmci-omap-hs.0/mmc_host/mmc0
diff --git a/dhcpcd.conf b/dhcpcd.conf
new file mode 100644
index 0000000..54006c7
--- /dev/null
+++ b/dhcpcd.conf
@@ -0,0 +1,6 @@
+# dhcpcd configuration for Android Wi-Fi interface
+# See dhcpcd.conf(5) for details.
+
+interface wlan0
+# dhcpcd-run-hooks uses these options.
+option subnet_mask, routers, domain_name_servers
diff --git a/wpa_supplicant.conf b/wpa_supplicant.conf
new file mode 100644
index 0000000..a35efd3
--- /dev/null
+++ b/wpa_supplicant.conf
@@ -0,0 +1,6 @@
+ctrl_interface=wlan0
+update_config=1
+
+network={
+ key_mgmt=NONE
+}
</pre>
 
==== Project external/wpa_supplicant/ ====
<pre>
project external/wpa_supplicant/
diff --git a/os_unix.c b/os_unix.c
index 8498b15..7b1b929 100644
--- a/os_unix.c
+++ b/os_unix.c
@@ -187,7 +187,7 @@ int os_program_init(void)
prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);
setgid(AID_WIFI);
- setuid(AID_WIFI);
+ setuid(AID_SYSTEM);
struct __user_cap_header_struct header;
struct __user_cap_data_struct cap;
</pre>
 
==== Project hardware/libhardware_legacy/ ====
<pre>
project hardware/libhardware_legacy/
diff --git a/wifi/wifi.c b/wifi/wifi.c
index 3f8708d..b114946 100644
--- a/wifi/wifi.c
+++ b/wifi/wifi.c
@@ -263,8 +263,8 @@ int ensure_config_file_exists()
if (chown(SUPP_CONFIG_FILE, AID_SYSTEM, AID_WIFI) < 0) {
LOGE("Error changing group ownership of %s to %d: %s",
SUPP_CONFIG_FILE, AID_WIFI, strerror(errno));
- unlink(SUPP_CONFIG_FILE);
- return -1;
+ //unlink(SUPP_CONFIG_FILE);
+ //return -1;
}
return 0;
}
</pre>
== Android Eclair 2.1 Platform ==
0
edits