Comments (1)
seeing as 1.0 used mountd and now 1.5 uses vold:
modifying uevent.c in system/core/vold/vold.c to
use PHYSDEVICEPATH seems to work. Here is the patch, it is obviously
a hack, but it does seem to work.
--- a/vold/uevent.c
+++ b/vold/uevent.c
@@ -309,6 +309,7 @@ static int handle_block_event(struct uevent
*event)
truncate_sysfs_path(event->path, n, mediapath, sizeof
(mediapath));
+ strncpy(mediapath, get_uevent_param(event, "PHYSDEVPATH"), 255);
if (!(media = media_lookup_by_path(mediapath, false))) {
#if DEBUG_UEVENT
LOG_VOL("No backend media found @ device path '%s'",
mediapath);
This is the vold.conf I'm using:
## vold configuration file for the emulator/SDK
volume_sdcard {
## This is the direct uevent device path to the SD slot on the
device
media_path /class/mmc_host/mmc0/
media_type mmc
mount_point /sdcard
ums_path /devices/platform/usb_mass_storage/lun0
}
and this fails mostly but its a start, wich leads to...
This will mount the 1st partition only.
Sorry, hard cording.
diff --git a/vold/blkdev.c b/vold/blkdev.c
index 3167507..fa0cb61 100644
--- a/vold/blkdev.c
+++ b/vold/blkdev.c
@@ -301,6 +301,9 @@ int blkdev_get_num_pending_partitions(blkdev_t
*blk)
struct blkdev_list *list_scan = list_root;
int num = blk->nr_parts;
+ if (!num && (blk->type == blkdev_partition))
+ return num;
+
if (blk->type != blkdev_disk)
return -EINVAL;
diff --git a/vold/mmc.c b/vold/mmc.c
index 0f08964..b7be9f5 100644
--- a/vold/mmc.c
+++ b/vold/mmc.c
@@ -85,7 +85,8 @@ static int mmc_bootstrap_controller(char
*sysfs_path)
if ((!strcmp(de->d_name, "uevent")) ||
(!strcmp(de->d_name, "subsystem")) ||
(!strcmp(de->d_name, "device")) ||
- (!strcmp(de->d_name, "power"))) {
+ (!strcmp(de->d_name, "power")) ||
+ (!strcmp(de->d_name, "slot_name"))) {
continue;
}
@@ -170,8 +171,8 @@ static int mmc_bootstrap_card(char *sysfs_path)
* Check for block drivers
*/
char block_devpath[255];
- sprintf(tmp, "%s/block", devpath);
- sprintf(filename, "/sys%s/block", devpath);
+ sprintf(tmp, "%s/block:mmcblk0", devpath);
+ sprintf(filename, "/sys%s/block:mmcblk0", devpath);
if (!access(filename, F_OK)) {
if (mmc_bootstrap_block(tmp)) {
LOGE("Error bootstrapping block @ %s", tmp);
@@ -203,9 +204,30 @@ static int mmc_bootstrap_block(char *devpath)
if (de->d_name[0] == '.')
continue;
- sprintf(tmp, "%s/%s", devpath, de->d_name);
+
+ if ((!strcmp(de->d_name, "uevent")) ||
+ (!strcmp(de->d_name, "dev")) ||
+ (!strcmp(de->d_name, "subsystem")) ||
+ (!strcmp(de->d_name, "device")) ||
+ (!strcmp(de->d_name, "range")) ||
+ (!strcmp(de->d_name, "ext_range")) ||
+ (!strcmp(de->d_name, "removable")) ||
+ (!strcmp(de->d_name, "ro")) ||
+ (!strcmp(de->d_name, "size")) ||
+ (!strcmp(de->d_name, "capability")) ||
+ (!strcmp(de->d_name, "stat")) ||
+ (!strcmp(de->d_name, "power")) ||
+ (!strcmp(de->d_name, "holders")) ||
+ (!strcmp(de->d_name, "slaves")) ||
+ (!strcmp(de->d_name, "queue")) ||
+ (!strcmp(de->d_name, "bdi"))) {
+ continue;
+ }
+
+ sprintf(tmp, "%s/%s", devpath, de->d_name);
if (mmc_bootstrap_mmcblk(tmp))
LOGE("Error bootstraping mmcblk @ %s", tmp);
+ break;
}
closedir(d);
return 0;
diff --git a/vold/uevent.c b/vold/uevent.c
index cfb5786..6eb88d3 100644
--- a/vold/uevent.c
+++ b/vold/uevent.c
@@ -301,7 +301,7 @@ static int handle_block_event(struct uevent
*event)
} else if (!strcmp(get_uevent_param(event, "DEVTYPE"), "disk"))
n = 2;
else if (!strcmp(get_uevent_param(event, "DEVTYPE"), "partition"))
- n = 3;
+ n = 2;
else {
LOGE("Bad blockdev type '%s'", get_uevent_param(event, "DEVTYPE"));
return -EINVAL;
diff --git a/vold/volmgr_vfat.c b/vold/volmgr_vfat.c
index 344a166..5856a99 100644
--- a/vold/volmgr_vfat.c
+++ b/vold/volmgr_vfat.c
@@ -125,7 +125,7 @@ int vfat_mount(blkdev_t *dev, volume_t *vol,
boolean safe_mode)
}
#if VFAT_DEBUG
- LOG_VOL("vfat_mount(%s, %d:%d): mount rc = %d", dev->major,k dev-
>minor,
+ LOG_VOL("vfat_mount(%d:%d, %s): mount rc = %d", dev->major, dev-
>minor,
vol->mount_point, rc);
#endif
free (devpath);
---
wich brought me to...
For that we require to disable a sysfs_deprecated flag and to have the
following patches included on the android framework:
- http://review.omapzoom.org/Gerrit#change,346
- http://review.omapzoom.org/Gerrit#change,345
Signed-off-by: Leed Aguilar <[email protected]>
---
arch/arm/configs/omap_zoom2_android_defconfig | 14 ++++++++++----
drivers/serial/omap-serial.c | 17 +++++++----------
2 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/arch/arm/configs/omap_zoom2_android_defconfig
b/arch/arm/configs/omap_zoom2_android_defconfig
index 2202868..a0834d3 100644
--- a/arch/arm/configs/omap_zoom2_android_defconfig
+++ b/arch/arm/configs/omap_zoom2_android_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.27.10-omap1
-# Mon May 4 11:07:27 2009
+# Thu May 14 17:55:05 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -53,8 +53,7 @@ CONFIG_FAIR_GROUP_SCHED=y
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
# CONFIG_RELAY is not set
# CONFIG_NAMESPACES is not set
CONFIG_BLK_DEV_INITRD=y
--
1.6.0
Original comment by [email protected]
on 21 Jul 2009 at 5:08
from live-android.
Related Issues (20)
- OS freezez on boot screen
- Unable to establish network between Android 3.2 RC1 VirtualBox guest and Windows 7 Host
- The process andriod.process.acore has stopped unexpectly
- Pause problem
- Arabic Language
- GOOGLE MARKET PLACE NOT WORKING
- not supoort
- live android
- live androidv0.3 installed in a desktop machine
- Wont download apps
- when i am run the android
- Live cd not working
- Either wouldn't start or takes very long.
- Android OS booting problem in Oracle Virtualbox HOT 2
- defect
- with out needed callrtue they instlled to my phone
- liveandroid v0.3 - logo freeze with VMWare v7.1 HOT 1
- Freezes on the first Android splash screen, usb boot 0.2 + 0.3 HOT 2
- Parse Error when open the apk file HOT 1
- Your OS DON'T WORK ON PC
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from live-android.