andreasgal / b2g Goto Github PK
View Code? Open in Web Editor NEWBoot to Gecko aims to create a complete, standalone operating system for the open web.
Home Page: https://wiki.mozilla.org/B2G
Boot to Gecko aims to create a complete, standalone operating system for the open web.
Home Page: https://wiki.mozilla.org/B2G
I think 'make kernel' is not mentioned in the Qemu section of the install file.
make config-qemu
make
make kernel
./emu.sh
This is being tracked as https://bugzilla.mozilla.org/show_bug.cgi?id=691710 for Gecko. Depending on what we do there we can inherit that fix, or we will explore something better (e.g. a caching DNS demon, time will tell).
We enable it for gecko, but we should have it on for those too.
'make sync' (git submodule update --init ) fails with the following error.
fatal: destination path 'gecko' already exists and is not an empty directory.
Clone of 'git://github.com/cgjones/mozilla-central.git' into submodule path 'gecko' failed
gecko/mozconfig symlink causes this issue. Moving the file to somewhere else allows you to continue the update
When gecko owns the home screen, it's not possible to get to the android system settings screen. This is inconvenient for now, while we don't have API to change settings. We should add a shortcut to settings from the UI.
In current make config-galaxy-s2 process, it extracts proprietary libraries from a real phone. You need to prepare a real phone loaded with stock firmware, connected to your PC.
If we extract those blobs from a downloaded 3rd party image (ex: CyanogenMod), then the process will be simpler and more reliable.
The idea was motivated from issue #56.
I did an install with latest and then |make install-gecko|. The install succeeded, but afterwards (after restarting)
package:/system/app/B2G.apk
[snip]
4697f000-46980000 r--s 00000000 b3:09 14 /system/app/B2G.apk
[snip]
it appears that the old /system/app version is being used.
@michaelwu any ideas? I would rather back out the system-install patch than break install-gecko.
With the following error
E/libEGL ( 252): eglQuerySurface:1075 error 300d (EGL_BAD_SURFACE)
E/FramebufferNativeWindow( 252): couldn't open framebuffer HAL (Bad address)
I/DEBUG ( 250): debuggerd committing suicide to free the zombie!
Looks like we get a bad surface and then crash. b2g goes into a reload cycle after this.
The screen lock comes on by default when booting into the stock android image, which is extremely annoying. We can add a quick hack to turn off the screen for now, until https://bugzilla.mozilla.org/show_bug.cgi?id=681009 provides full support for writing an HTML5 screen lock.
Currently only the Nexus S 4G is supported. The targets should be very similar; the biggest difference is that different binary blobs need to be downloaded for the S than for the S 4G.
It is complicated to launch an instance of emulator for B2G. We had better provide a script for it. Where should we put the script? Add a new sub-directory, tools/ or scripts/ at root of source tree?
Not sure what the underlying cause is. Seems to be some kind of race condition. Not terribly high priority.
Possibly related to #59.
There's an "egl.cfg not found" message in logcat just when the default android home screen tries to load, and when that message appears, the home screen goes black.
I get the following, (during Gecko |make package|?) which I presume is unrelated:
printf "manifest components/interfaces.manifest\nmanifest components/components.manifest\nmanifest chrome/nonlocalized.manifest\nmanifest chrome/localized.manifest\n" > ../../dist/b2g//chrome.manifest
/usr/bin/python2.7 /home/jlebar/code/moz/B2G/gecko/config/optimizejars.py --optimize /home/jlebar/code/moz/B2G/gecko/objdir-prof-android/b2g/installer/../../jarlog//en-US ../../dist/bin/chrome ../../dist/b2g/chrome
Stripping package directory...
signing nss libraries
../../dist/bin/shlibsign: 1: Syntax error: word unexpected (expecting ")")
../../dist/bin/shlibsign: 1: Syntax error: word unexpected (expecting ")")
../../dist/bin/shlibsign: 1: Syntax error: word unexpected (expecting ")")
Then I later get the following build error:
frameworks/base/libs/utils/RefBase.cpp: In member function ‘void android::RefBase::weakref_type::trackMe(bool, bool)’:
frameworks/base/libs/utils/RefBase.cpp:507:67: error: passing ‘const android::RefBase::weakref_impl’ as ‘this’ argument of ‘void android::RefBase::weakref_impl::trackMe(bool, bool)’ discards qualifiers [-fpermissive]
It says "Host C++" -- could this be happening because I'm using GCC 4.6 (Ubuntu 11.10)?
$ make
Both $topsrcdir/.mozconfig and $topsrcdir/mozconfig are supported, but you must choose only one. Please remove the other.
/home/cjones/mozilla/b2g/gecko/.mozconfig.mk:8: *** Fix above errors before continuing.. Stop.
make: *** [gecko] Error 2
This should eventually be a gecko bug in mozilla bugzilla, but let's track it here for starters.
STR
(1) Load Contacts app
(2) Long-tap to view source
(3) Scroll down in source window
BUG: BOOM crash
I've only tried to reproduce this on the sgs2, but it's likely a more general problem. Any time web content crashes gecko, it's 100% gecko's fault.
$make fails with following error.
Error:
Adding client.mk options from /home/arky/src/B2G/gecko/mozconfig:
MOZ_OBJDIR=$(TOPSRCDIR)/objdir-prof-android
MOZ_MAKE_FLAGS=-s -j16
cd /home/arky/src/B2G/gecko/objdir-prof-android
/home/arky/src/B2G/gecko/configure
Adding configure options from /home/arky/src/B2G/gecko/mozconfig:
--with-android-sdk=NDROID_SDK/platforms/android-13
--with-android-ndk=NDROID_NDK
--with-android-toolchain=NDROID_NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86
--with-android-platform=NDROID_NDK/platforms/android-5/arch-arm
--target=arm-linux-androideabi
--with-endian=little
--enable-raw
--enable-application=b2g
--disable-elf-hack
--enable-debug-symbols
--enable-profiling
--with-ccache
loading cache ./config.cache
checking host system type... i686-pc-linux-gnu
checking target system type... arm-linux-android
checking build system type... i686-pc-linux-gnu
checking for mawk... mawk
checking for perl5... no
checking for perl... /usr/bin/perl
configure: error: The path in --with-android-sdk isn't valid (source.properties hasn't been found).
*** Fix above errors and then restart with "make -f client.mk build"
make[3]: *** [configure] Error 1
make[2]: *** [/home/arky/src/B2G/gecko/objdir-prof-android/Makefile] Error 2
make[1]: *** [build] Error 2
make: *** [gecko] Error 2
mozconfig
$ cat gecko/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-prof-android
mk_add_options MOZ_MAKE_FLAGS="-s $MAKE_FLAGS"
topdir="pwd
/../.."
gonk="$topdir/glue/gonk"
sys=uname -s | tr "[[:upper:]]" "[[:lower:]]"
ac_add_options --with-android-sdk="$ANDROID_SDK/platforms/$ANDROID_SDK_PLATFORM"
ac_add_options --with-android-ndk="$ANDROID_NDK"
ac_add_options --with-android-toolchain="$ANDROID_NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86"
ac_add_options --with-android-platform="$ANDROID_NDK/platforms/android-5/arch-arm"
ac_add_options --target=arm-linux-androideabi
ac_add_options --with-endian=little
ac_add_options --enable-raw
ac_add_options --enable-application=b2g
ac_add_options --disable-elf-hack
ac_add_options --enable-debug-symbols
ac_add_options --enable-profiling
ac_add_options --with-ccache
arky@Arky-Think:/src/B2G$ echo $ANDROID_NDK/src/B2G$ echo $ANDROID_SDK
/opt/android-ndk-r7/
arky@Arky-Think:
/opt/android-sdk-linux/
In the Makefile that was generated for the Samsung Galaxy SII, in the gecko-android-hack section there's the following line:
cp -p gecko/objdir-prof-android/dist/b2g-*.apk $(APP_OUT_DIR)/B2G.apk
My dist directory contained two matching .apk files "b2g-10.0a1.en-US.android-arm.apk" and "b2g-9.0a1.en-US.android-arm.apk"
As a result, this line attempts to copy multiple files to a single file target which generates the error "cp: target `~/Code/andreasgal/B2G/glue/gonk/out/target/product/galaxys2/system/app/B2G.apk' is not a directory" and stops make flash from running.
Removing the older .apk file fixes the problem, so perhaps this script should automatically pick the latest one somehow?
When gecko owns the device, this action makes sense. It also makes development of the homescreen easier. We need to hack the android intent receiver thing to reload the home page on the HOME intent.
(Being smarter about build deps is a general enhancement for the build system, but ...)
I've found myself switching between sgs2<-->nexuss4g dev a fair amount. Whenever I do that, I have to re-run the config-* targets. That part is fine; nothing needs to change there.
The problem is that both config targets always make me do the annoying "fetch blobs" step, whether or not I've already fetched them. It would be great to skip that step if it's already been run (and the blobs are still present).
Maybe a little sentinel file that gets cleared on an explicit |make clean| or |make realclean| would be a close enough approximation.
This issue was separated from "#47: CPU pegged by debuggerd on startup".
/system/bin/mediaserver will crash at first time during system startup and automatically restart to work normally.
According to /data/tombstone, the crash point is android_atmoic_add(), called by SharedBuffer::acquired().
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/full_galaxys2/galaxys2:2.3.5/GINGERBREAD/eng.sywu.20111022.232821:eng/test-keys'
pid: 2593, tid: 2593 >>> /system/bin/mediaserver <<<
signal 7 (SIGBUS), code 128 (?), fault addr 00000000
r0 00000001 r1 a9a081dd r2 00000000 r3 00000001
r4 00000001 r5 a9a081dd r6 a9a081ed r7 beb77790
r8 00000000 r9 beb77808 10 beb77800 fp beb7778c
ip a8129cb0 sp beb77780 lr af904b84 pc af904b84 cpsr a0000010
#00 pc 00004b84 /system/lib/libcutils.so
android_atomic_add
system/core/include/cutils/atomic-arm.h:175
#01 pc 0001b00e /system/lib/libutils.so
android::SharedBuffer::acquire() const
frameworks/base/libs/utils/SharedBuffer.cpp:97
#02 pc 0001c662 /system/lib/libutils.so
android::String8::setTo(android::String8 const&)
frameworks/base/libs/utils/String8.cpp:297
#03 pc 000343d4 /system/lib/libmedia.so
android::String8::operator=(android::String8 const&)
frameworks/base/include/utils/String8.h:360
#04 pc 00008446 /system/lib/libaudiopolicy.so
android::AudioPolicyManager::getParamFromPolicy(android::String8 const&)
#05 pc 0002c0a4 /system/lib/libaudioflinger.so
android::AudioPolicyService::getStrategyForStream(android::AudioSystem::stream_type)
frameworks/base/services/audioflinger/AudioPolicyService.cpp:354
#06 pc 00035454 /system/lib/libmedia.so
android::AudioSystem::getStrategyForStream(android::AudioSystem::stream_type)
frameworks/base/media/libmedia/AudioSystem.cpp:677
#07 pc 00026dd8 /system/lib/libaudioflinger.so
#08 pc 000270a2 /system/lib/libaudioflinger.so
#09 pc 0002e94c /system/lib/libmedia.so
#10 pc 0001f4d4 /system/lib/libaudioflinger.so
#11 pc 000136a8 /system/lib/libbinder.so
#12 pc 00016edc /system/lib/libbinder.so
#13 pc 000170d0 /system/lib/libbinder.so
#14 pc 00008af8 /system/bin/mediaserver
#15 pc 000150f6 /system/lib/libc.so
Meta bug to provide a11y support to B2G using ATK/DBUS based orca or similar screen reader
That is the address: http://identi.ca/group/boot2gecko
The b2g-gonk system image is useless without the b2g-gonk kernel. We should build the kernel along with the userspace image.
Current QEMU sensor is not working, the logcat shows following error:
D/SensorService( 61): nuSensorService starting...
E/SensorService( 61): couldn't open device for module sensors (Invalid argument)
The reason is, QEMU sensor implementation sdk/emulator/sensors/sensors_qemu.c is using the deprecated HAL definition, it makes QEMU sensor registration failure.
Sensor HAL definition:
hardware/libhardware/include/hardware/sensors.h (use new structure: SENSORS_HARDWARE_POLL)
QEMU sensor implementation at HAL:
sdk/emulator/sensors/sensors_qemu.c (use deprecated structure: SENSORS_HARDWARE_CONTROL & SENSORS_HARDWARE_DATA)
To fix it, we need to update below 2 files from newer submodule sdk (branch tools_r13 or later).
Current submodule sdk is pointing to gingerbread-release of AOSP. Updating it to tools_r13 or later unfortunately forced to update another submodule "development" as well, it's a big change!!
A better approach maybe we maintain B2G's own submodule sdk with branch "gingerbread-release-b2g", and updating the 2 required files to make QEMU sensor working.
@mwu and @jlebar have noticed a problem in the gonk widget backend in which gecko can't draw to the screen after startup, leaving a black screen. I've noticed a problem with the android widget backend in which gecko sometimes fails to create a GL layer manager, and has to fall back on CPU compositing (which destroys performance of the home screen).
They sound like they might both be caused by the same underlying problem: failure to create a GL context around the time of startup, possibly due to a race condition. I don't know what might cause this. It'd be interesting to look at the android GL implementation and see what it does. It might have a solution to this problem already.
B2G should be testable on top of (an) emulator for folks who don't have compatible hardware. Right now using the android emulator seems like the quickest path to success, but unfortunately it only supports up to ARMv6. That's a problem because Gecko is officially unsupported on ARMv6 and below.
The other complications can be dealt with indepedently of the build-system work to support the emulator target though.
It currently assumes b2g-android, which is going the way of the dinosaur. make install-gecko is even more useful for b2g-gonk because re-pushing gecko is much more of a PITA with b2g-gonk.
Best implemented by a |make install-gecko-$(WIDGET_BACKEND)| "dispatch" between -android and -gonk. -android will die soon.
@michaelwu expressed concern over flashing the kernel unnecessarily, since it's been known to fail. However, the incantation for flashing the kernel is hard to remember and somewhat error prone, so we should add a make target for it. We can choose to not flash the kernel by default for the time being, or some other hack to that effect like leaving a .flashed-kernel pseudo-dependency file in the b2g/ directory after flashing for the first time. (Power users would have to manually reflash.)
Currently all our gaia apps have their own copy because of same-origin restrictions. Roboto should be the default font, though.
b2g-gonk has now passed the milestone of being more functional than b2g-android, and additonally (though somewhat concerningly ...) gaia on b2g-gonk is generally more reliable than gaia on b2g-android.
The two major missing pieces in b2g-gonk are a settings controller and wifi or 3g access. However, it's now quite clear that b2g-android isn't going to make it as our developer phone, so I think it can be safely killed off. The one major pain point when doing so will be hacking on the web browser, but the web browser can easily be hacked in a b2g build installed on vanilla android, or on desktop. Plus wifi should be working soon.
\o/
There's a message about not being able to find a /system/etc/wifi/bcm[something].cfg file, and after that there are error messages from the wpa_supplicant. Wifi acts like it's enabled, but no scans succeed.
We need to strip out the android-Java stuff and get down to the C/C++ interface. If it proves more expedient, we could create our own TelephonyProvider in Java and postpone the complete strip-out, but if possible it would be better do both in one shot.
I may not be able to own this. I'll look through the code and try to analyze what's needed to do this, and post here.
We're building the source that Samsung publishes through their website, but the kernel is apparently panicing early in startup. It's not clear what's going wrong yet. Something like kgdb over USB, plus rejiggering the USB startup order to make sure it's up soon enough, might be the right way to tackle this.
The config-galaxy-s2 step needs to pull some blobs off device. The cyanogenmod script (from which b2g's is derived) expects the blobs to be named a certain way, but in the image created from those blobs, names them something different. That means that if the config-galaxy-s2 target is re-run on the b2g-flashed phone, the blob-pulling script won't find all the libraries it needs.
It would be nice to have the pull script understand the naming of the b2g blob layout, so it can pull from those images too.
The fork of m-c should be updated on a regular basis (daily?).
It needs a lot of options to launch an instance of emulator for B2G. I think we had better to provide a script to help people to launch emulator for a built image. Where should we put the script? in gonk/device/qemu/? or somewhere?
Maybe we should add a tools/ sub-directory at the root of B2G source tree.
This is needed to get oprofile working. We cherry-picked two patches for the nexus s kernel
joneschrisg/samsung-android-kernel@ab2cbd6
joneschrisg/samsung-android-kernel@4c9edf6
Hopefully the same patches work with the sgs2 chip ...
It is complicated to launch an instance of emulator for B2G. We had better provide a script to help people launching it. But, where should it be? Should we add a new sub-directory scripts/ or tools/ at root of source tree?
People sometimes get a message at the end of the install-gecko process that says:
/sbin/sh pm not found
Then this refers to the android package manager not working properly on the device.
The reason it's not working is that it doesn't have permissions to write to /data/system.
I think that if the install-gecko target is modified to ensure this directory is writeable, we can save the user some headaches.
The install target would probably need to do:
adb shell chmod -R 666 /data/system
I have tested that 777 definitely works, but I doubt we need the directory to be executable.
Note that when I had this issue, I also had a further issue that pm was not being located by the system even though it was clearly in the path. To get around that, I had to do:
adb shell sh /system/bin/pm install -r
I'm not sure if the path issue was related to this, or due to some other misconfiguration on my system.
E/SurfaceFlinger( 2704): couldn't find an EGLConfig matching the screen format
E/libEGL ( 2704): validate_display_config:501 error 3005 (EGL_BAD_CONFIG)
E/libEGL ( 2704): eglQuerySurface:1075 error 300d (EGL_BAD_SURFACE)
E/libEGL ( 2704): validate_display_config:501 error 3005 (EGL_BAD_CONFIG)
E/libEGL ( 2704): call to OpenGL ES API with no current context (logged once per thread)
I/DEBUG ( 2577): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 2577): Build fingerprint: 'samsung/full_galaxys2/galaxys2:2.3.5/GINGERBREAD/eng.cjones.20110818.212452:eng/test-keys'
I/DEBUG ( 2577): pid: 2704, tid: 2712 >>> system_server <<<
I/DEBUG ( 2577): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
I noticed that I had some hacks applied to my local build system. When I removed those, I get the error above, and never see anything drawn to screen. This is really bad.
D/CallManager( 5807): registerPhone(GSM Handler{405b4638})
W/ActivityManager( 3186): Timeout executing service: ServiceRecord{40696e60 com.android.phone/.BluetoothHeadsetService}
I/Process ( 3186): Sending signal. PID: 5807 SIG: 3
I/dalvikvm( 5807): threadid=4: reacting to signal 3
I/dalvikvm( 5807): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 3186): Sending signal. PID: 3186 SIG: 3
I/dalvikvm( 3186): threadid=4: reacting to signal 3
I/dalvikvm( 3186): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 3186): Sending signal. PID: 3310 SIG: 3
I/dalvikvm( 3310): threadid=4: reacting to signal 3
I/dalvikvm( 3310): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 3186): Sending signal. PID: 3268 SIG: 3
I/dalvikvm( 3268): threadid=4: reacting to signal 3
I/dalvikvm( 3268): Wrote stack traces to '/data/anr/traces.txt'
D/dalvikvm( 3186): GC_EXPLICIT freed 1032K, 46% free 4612K/8519K, external 2873K/3338K, paused 40ms
I/Process ( 3186): Sending signal. PID: 5807 SIG: 9
E/ActivityManager( 3186): ANR in com.android.phone
E/ActivityManager( 3186): Reason: Executing service com.android.phone/.BluetoothHeadsetService
E/ActivityManager( 3186): Load: 1.26 / 1.23 / 1.18
E/ActivityManager( 3186): CPU usage from 15037ms to 0ms ago:
E/ActivityManager( 3186): 98% 2577/debuggerd: 10% user + 87% kernel
E/ActivityManager( 3186): 2.2% 3310/org.mozilla.fennec_jlebar: 1.2% user + 0.9% kernel
E/ActivityManager( 3186): 0.8% 1448/mmcqd: 0% user + 0.8% kernel
E/ActivityManager( 3186): 0.1% 2671/flush-179:0: 0% user + 0.1% kernel
E/ActivityManager( 3186): 0.1% 3186/system_server: 0% user + 0% kernel
E/ActivityManager( 3186): 0% 9/events/0: 0% user + 0% kernel
E/ActivityManager( 3186): 0% 525/kondemand/0: 0% user + 0% kernel
E/ActivityManager( 3186): 0% 546/kswapd0: 0% user + 0% kernel
E/ActivityManager( 3186): 0% 1268/file-storage: 0% user + 0% kernel
E/ActivityManager( 3186): 0% 2566/jbd2/mmcblk0p10: 0% user + 0% kernel
E/ActivityManager( 3186): 50% TOTAL: 5.7% user + 44% kernel + 0.1% iowait
E/ActivityManager( 3186): CPU usage from 137ms to 651ms later:
E/ActivityManager( 3186): 100% 2577/debuggerd: 13% user + 86% kernel
E/ActivityManager( 3186): 1.9% 3186/system_server: 0% user + 1.9% kernel
E/ActivityManager( 3186): 3.9% 3200/ActivityManager: 1.9% user + 1.9% kernel
E/ActivityManager( 3186): 1.6% 3310/org.mozilla.fennec_jlebar: 0% user + 1.6% kernel
E/ActivityManager( 3186): 1.6% 3376/Thread-12: 0% user + 1.6% kernel
E/ActivityManager( 3186): 1.6% 3406/Thread-12: 0% user + 1.6% kernel
E/ActivityManager( 3186): 51% TOTAL: 7.6% user + 44% kernel
W/DropBoxManagerService( 3186): Dropping: system_app_anr (10 > 0 bytes)
I/ActivityManager( 3186): Process com.android.phone (pid 5807) has died.
I/ServiceManager( 2574): service 'isms' died
I/ServiceManager( 2574): service 'simphonebook' died
I/ServiceManager( 2574): service 'iphonesubinfo' died
I/ServiceManager( 2574): service 'phone' died
W/ActivityManager( 3186): Canceling start item Intent { cmp=com.android.phone/.BluetoothHeadsetService } in service ComponentInfo{com.android.phone/com.android.phone.BluetoothHeadsetService}
W/ActivityManager( 3186): Scheduling restart of crashed service com.android.phone/.BluetoothHeadsetService in 41366ms
I/ActivityManager( 3186): Start proc com.android.phone for restart com.android.phone: pid=5825 uid=1001 gids={3002, 3001, 3003, 1015}
D/dalvikvm( 3176): GC_EXPLICIT freed 13K, 50% free 2716K/5379K, external 1625K/2137K, paused 30ms
D/dalvikvm( 3176): GC_EXPLICIT freed <1K, 50% free 2716K/5379K, external 1625K/2137K, paused 19ms
D/dalvikvm( 3176): GC_EXPLICIT freed <1K, 50% free 2716K/5379K, external 1625K/2137K, paused 37ms
I/ActivityThread( 5825): Pub mms: com.android.providers.telephony.MmsProvider
I/ActivityThread( 5825): Pub sms: com.android.providers.telephony.SmsProvider
I/ActivityThread( 5825): Pub telephony: com.android.providers.telephony.TelephonyProvider
I/ActivityThread( 5825): Pub icc: com.android.phone.IccProvider
I/ActivityThread( 5825): Pub mms-sms: com.android.providers.telephony.MmsSmsProvider
D/CallManager( 5825): registerPhone(GSM Handler{405b4b00})
It then hangs at registerPhone for 20s or so.
Not a concrete win anywhere, but fun and good for esprit de corps.
Reported by @jaoo. This should be a quick fix. We're still a bit away from removing support for b2g-android so this is still worth fixing.
When I turn off the screen, the following message is spammed to logcat:
E/gralloc ( 2690): S3CFB_SET_VSYNC_INT enable failed
I think this is a relatively new issue, but I'm not sure. qDot sees this too.
The device's power button currently does nothing. It should turn the screen on and off, as a start.
The ./emu.sh launch fails with this error.
init: cannot open '/initlogo.rle'
yaffs: dev is 32505856 name is "mtdblock0"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.0, "mtdblock0"
yaffs_read_super: isCheckpointed 0
save exit: isCheckpointed 0
yaffs: dev is 32505857 name is "mtdblock1"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.1, "mtdblock1"
yaffs_read_super: isCheckpointed 0
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
yaffs_read_super: isCheckpointed 0
init: cannot find '/system/b2g/b2g', disabling 'b2g'
init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'
sh: can't access tty; job control turned off
$ eth0: link up
warning: `rild' uses 32-bit capabilities (legacy support in use)
binder: 32:32 refcount change on invalid ref 0
binder: 32:32 refcount change on invalid ref 0
binder: 32:32 transaction failed 29189, size124-4
When launching the emulator after building B2G with the Android backend, the emulator window indicates portrait orientation, however, all display contents are rendered in landscape orientation as if the device were rotated 90 degrees clockwise.
patch coming
In the long term, this is a better profiler to invest in than oprofile. It's not known yet what needs to be done to get it running in the android userspace.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.