0
edits
Changes
From IGEP - ISEE Wiki
no edit summary
</span>
=== 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
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 ==