在beaglebone硬件上,我想从一个带有极简busybox系统(/ dev / mmcblk0p2)的分区开始,在另外2个分区(/ dev / mmcblk0p5和/ dev / mmcblk0p6)上运行一些检查,其中包含更完整的Linux系统(Angström) ),然后根据这些测试在2个Linux系统中的一个或另一个上启动。
问题是我找不到从busybox正确启动另一个系统的方法。
我做了什么:
从(正常运行)busybox系统中:
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
mount -t sysfs sysfs /sys
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
mount /dev/mmcblk0p5 /mnt/root
Run Code Online (Sandbox Code Playgroud)
然后我尝试了两种方法:
ivot_root
cd /mnt/root
pivot_root . ./initrd
./bin/mount -n --move ./initrd/sys ./sys
./bin/mount -n --move ./initrd/proc ./proc
./bin/mount -t devtmpfs none ./dev
./bin/mount -n --move ./initrd/dev/pts ./dev/pts
exec ./usr/sbin/chroot . ./sbin/init < ./dev/ttyO0 > ./dev/ttyO0 2>&1
Run Code Online (Sandbox Code Playgroud)
这给出了以下错误:
Couldn't find an alternative telinit implementation to spawn.
Run Code Online (Sandbox Code Playgroud)
然后,它会启动一个新的Angström登录提示,但是登录后,任何对“ init”的调用都会返回上面的错误,并且系统无法正常工作(例如,如果我调用“ reboot”,它将失败;如果我调用“ …
我正在编写一个谷歌浏览器扩展程序,并尝试从注入网页的一段代码中将信息发送到我的内容脚本.
根据http://developer.chrome.com/extensions/messaging#external-webpage,我应该使用类似的东西:
// The ID of the extension we want to talk to.
var editorExtensionId = "abcdefghijklmnoabcdefhijklmnoabc";
// Make a simple request:
chrome.runtime.sendMessage(editorExtensionId, {openUrlInEditor: url},
function(response) {
if (!response.success)
handleError(url);
});
Run Code Online (Sandbox Code Playgroud)
问题是,当我这样做时:
var script_code = "var msg = {message : 'plop'};\n";
script_code += "chrome.runtime.sendMessage('" + chrome.i18n.getMessage("@@extension_id") + "', msg, function(response) {\n";
script_code += " console.log('response received');\n";
script_code += "});\n";
Run Code Online (Sandbox Code Playgroud)
然后将其注入网页,当它被执行时,我得到:
未捕获的TypeError:无法调用未定义的方法'sendMessage'
谁能帮我解决这个问题?
谢谢