我想使用 QEMU 在我的 MacOSX 上运行 RaspberryPi 系统。我使用本教程尝试了以下操作:
./qemu-system-arm -M多功能pb -cpu arm1176 -m 256 -hda ArchLinuxARM-2014.06-rpi.img -kernel kernel.img -append "root=/dev/sda" -serial stdio
ArchLinuxARM-2014.06-rpi.img我的 RPi 图像在哪里,kernel.img准确来自哪里ArchLinuxARM-2014.06-rpi.img(我复制了它,但我不确定这是一个绝妙的主意)。
结果我得到了两个 QEMU 窗口。一个有“机器”和“查看”菜单,以及显示以下消息的黑屏:
来宾尚未初始化显示(尚未)。
第二个只是一个黑色的窗口。
我在使用 Raspbian 映像和相同的命令时遇到了同样的问题。我究竟做错了什么?
在 Android-Studio、Eclipse 甚至命令行 Gradle 上工作时,Java 软件经常死机(即使通常是在我更新系统/更改 java 之后)。对于 Android-Studio 和 Eclipse,如果我移动到另一个桌面并返回,那么它会变成一个灰色窗口并且界面永远不会回来,即使在几个小时之后也是如此。我想这是一个Java问题。
它并不总是发生:我通常在几周内没有任何问题,直到它再次出现。我不明白是什么让它停止了:当它发生时,我尝试重新启动我的计算机,更改我的 Java JDK 版本,但它没有改变任何东西。然后有一天,我启动了我的计算机,问题消失了 - 在接下来的几周内。
export _JAVA_AWT_WM_NONREPARENTING=1在/etc/profile.d/jre.shjava-7-jdk, java-7-openjdk, java-8-jdk,之间切换java-8-openjdkwmname LG3Dpkill -e adb,正如评论中所建议的jmap <pid>在<pid>Android Studio 上,但我有一个“DebuggerException: Can't attach to the process”jcmd <pid> …我可以在 Linux 系统上创建两个链接的虚拟串口socat,并假装一端是串口设备,另一端是一些使用该设备的代码。该socat命令看起来像:
socat -d -d pty,raw,echo=1 pty,raw,echo=0
Run Code Online (Sandbox Code Playgroud)
它在系统上创建了两个端口,例如/dev/pts/3和/dev/pts/4。
现在,我想更进一步,有两个 docker 容器代表系统:一个容器伪装成串行设备,另一个容器是使用该设备的代码。目标是在生产中,我可以移除虚拟设备容器并只使用真实传感器。
问题是我似乎找不到devpts在两个容器之间共享的方法,不知何故感觉这不是一件好事。
有没有办法通过使用命名管道而不是 pty 来实现完全相同的行为(虚拟串行端口)?然后我可以在容器之间共享文件(比如“/home/user/folder/my_pipe”)(实际上我会在两者上安装“/home/user/folder”,然后两者都可以访问my_pipe)。
或者是否有另一种更好的方法来使用 docker 完成所有这些工作?
我可以通过创建一个 bitbake 配方在 yocto 上编译和安装东西。我想在连接特定设备时运行我的代码。
有没有一种优雅的方法可以从 bitbake 配方中添加 udev 规则?做类似的事情听起来echo "<my udev rule>" >> /etc/udev/rules.d/90-local.rules不是一个好计划......
arch-linux ×2
docker ×1
eclipse ×1
intellij ×1
java ×1
pipe ×1
pty ×1
qemu ×1
raspberry-pi ×1
raspbian ×1
serial-port ×1
socat ×1
udev ×1
yocto ×1