我目前正在为安装了SenseHat的RPi3构建Yocto Image。
Yocto图像由以下图层组成:
特定于应用程序的层主要负责加载以下内核模块:
它还包含openssh,psplash,gcc,make,libiio,rtimulib和其他一些misc。包。
我的映像在没有安装SenseHat的情况下很好地启动,但启动过程在到达UART shell之前停止。它一直处于冻结状态,直到看门狗重置系统为止。
以下是系统冻结前UART输出的最后一部分。
{...}
Populating dev cache
ALSA: Restoring mixer settings...
/usr/sbin/alsactl: load_state:1735: No soundcards found...
Tue Nov 1 10:01:54 UTC 2016
INIT: Entering runlevel: 5
Configuring network interfaces... [ 5.130327] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
udhcpc (v1.24.1) started
Sending discover...
[ 6.662428] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x4DE1
[ 6.688217] cfg80211: Calling CRDA to update world regulatory domain
Sending discover...
Sending select for 192.168.0.106...
Lease of 192.168.0.106 obtained, lease time 3600
/etc/udhcpc.d/50default: Adding DNS 192.168.0.20
/etc/udhcpc.d/50default: Adding DNS 192.168.0.40
done.
Starting system message bus: dbus.
Starting OpenBSD Secure Shell server: sshd
[ 9.034713] NET: Registered protocol family 10
done.
Starting rpcbind daemon...done.
Starting advanced power management daemon: No APM support in kernel
(failed.)
Starting bluetooth
bluetoothd
Starting syslogd/klogd: done
* Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
[ 9.401783] Bluetooth: Core ver 2.20
[ 9.405528] NET: Registered protocol family 31
[ 9.410088] Bluetooth: HCI device and connection manager initialized
[ 9.416576] Bluetooth: HCI socket layer initialized
[ 9.421576] Bluetooth: L2CAP socket layer initialized
[ 9.426747] Bluetooth: SCO socket layer initialized
...done.
Starting Telephony daemon
[ 9.507315] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 9.512765] Bluetooth: BNEP filters: protocol multicast
[ 9.518098] Bluetooth: BNEP socket layer initialized
Starting Linux NFC daemon
[ 9.624816] nfc: nfc_init: NFC Core ver 0.1
[ 9.629241] NET: Registered protocol family 39
我要注意,我已将三条线焊接到UART引脚上:
当系统冻结时,我仍然可以ping设备,但SSH不起作用。
知道可能导致此行为的原因是什么?
答案 0 :(得分:0)
事实证明,问题在于yocto local.conf -file。设置了以下行:
ENABLE_I2C = "1"
这创建了第二个i2c驱动程序,导致其中一个崩溃启动。
对于那里的任何googlers:不需要设置此标志。而是确保在启动时加载 i2c-dev 内核驱动程序。
答案 1 :(得分:0)
我从未使用蓝牙,但似乎系统没有冻结,你只是在蓝牙连接时丢失了UART数据。 来自here: 在rpi3上,这是正常的,因为Raspberry Pi3上的BCM2837有2个UART(与其前代产品一样),但是为了支持蓝牙功能,全功能的PL011 UART从插头引脚移到蓝牙芯片和迷你UART制造可在插头引脚8和8上使用10。
这对串行接口的用户有很多影响。
以前用于访问UART的/ dev / ttyAMA0现在连接到蓝牙。
我建议你再次尝试使用config.txt
dtoverlay=pi3-disable-bt
enable_uart=1
如果你真的需要蓝牙,请使用
dtoverlay=pi3-miniuart-bt
对于ssh,在你的图像配方中添加“openssh”,并像wpa-supplicant一样连接依赖(不要忘记配置它)