[yocto] meta-raspberrypi systemd rpi0-w bluetooth startup
Dengke Du
dengke.du at windriver.com
Mon Mar 19 19:58:59 PDT 2018
Raspberry pi have two built-in UARTs, PL011 and mini UART
by default: /dev/ttyS0 refers to the mini UART, /dev/ttyAMA0 refers to
the PL011
https://www.raspberrypi.org/documentation/configuration/uart.md
So I think the brcm43438 service should use the /dev/ttyAMA0.
On 2018年03月20日 10:41, Dengke Du wrote:
>
> For rpi0-w bluetooth, before the commit:
>
> https://github.com/agherzan/meta-raspberrypi/commit/6235b0a8543bcf6704d0fe0156ab2b847a4ea0bc#diff-70e4910388c3702c52118d7acf7556e7
>
> the brcm43438.service always failed, because it depends on
> /dev/ttyAMA0,after that commit, the 'udev-rules-rpi' added to the
> RDEPENDS for rpi0-w,we
>
> can check it here:
>
> https://github.com/agherzan/meta-raspberrypi/commit/6235b0a8543bcf6704d0fe0156ab2b847a4ea0bc#diff-3b2568c620828b0ba653c1070041318aR52
>
> for service brcm43438, but I still use the /dev/ttyAMA0 in it, not
> /dev/serial1(when I use /dev/serial1, the service failed), the service
> can start everytime correctly.
>
>
> On 2018年03月19日 02:10, r10kindsofpeople wrote:
>> Update: I suspect this is not the proper way to do this, but in case
>> it provides useful information toward a better solution...
>> 1) systemctl disable brcm43438.service
>> 2) modified 99-com.rules to include TAG+="systemd" and
>> ENV{SYSTEMD_WANTS}="device-brcm43438.service"
>> 3) cp /lib/systemd/system/brcm43438.service
>> /etc/systemd/system/device-brcm43438.service
>> 4) modified device-brcm43438.service to be as follows:
>> [Unit]
>> Description=Broadcom BCM43438 bluetooth HCI
>>
>> [Service]
>> Type=simple
>> ExecStart=/usr/bin/hciattach -n /dev/serial1 bcm43xx 921600 noflow -
>> Restart=on-failure
>>
>> note removal of Before, After, ConditionPath, Install sections and
>> addition of Restart=on-failure. This last was to cope with an
>> intermittent timeout in hciattach. Suppose I should have tried
>> increasing the timeout first.
>>
>> This seems to have gotten me to the point of it starting up at least
>> 10 times successfully. Bottom line, in my opinion, is that
>> brcm43438.service is somehow running before the udev script can
>> create the symbolic link for /dev/serial1 -> /dev/ttyAMA0 despite the
>> "After=dev-serial1.device" clause.
>>
>> John
>>
>>
>> On Sat, Mar 17, 2018 at 12:32 PM r10kindsofpeople
>> <r10kindsofpeople at gmail.com <mailto:r10kindsofpeople at gmail.com>> wrote:
>>
>> Background: I'm trying to bring up the pi zero w's bluetooth
>> using systemd. Started with rocko and then moved to 'master' of
>> meta-raspberry pi, sync'd about a week ago after noticing that
>> there were some recent updates in this area.
>>
>> There was an initial problem with /dev/serial1 not showing up...I
>> found udev-rules-rpi.bb <http://udev-rules-rpi.bb>, added it to
>> my layer, and when it still didn't show up in my rootfs, I punted
>> and installed it in /etc/udev/rules.d by hand and now
>> /dev/serial1 shows up. Given time, I can probably fix the recipe
>> on my own, so moving on.
>>
>> But brcm43438.service still fails on boot. Despite having
>> "After=dev-serial1.device" in the service Unit section, it fails
>> with:
>>
>> Mar 17 16:21:13 raspberrypi0-wifi systemd[1]: Started Broadcom
>> BCM43438 bluetooth HCI.
>> Mar 17 16:21:14 raspberrypi0-wifi hciattach[105]: Can't open
>> serial port: No such file or directory
>> Mar 17 16:21:14 raspberrypi0-wifi hciattach[105]: Can't
>> initialize device: No such file or directory
>> Mar 17 16:21:14 raspberrypi0-wifi systemd[1]:
>> [[0;1;39mbrcm43438.service: Main process exited, code=exited,
>> status=1/FAILURE[[0m
>> Mar 17 16:21:14 raspberrypi0-wifi systemd[1]:
>> [[0;1;39mbrcm43438.service: Unit entered failed state.[[0m
>> Mar 17 16:21:14 raspberrypi0-wifi systemd[1]:
>> [[0;1;39mbrcm43438.service: Failed with result 'exit-code'.[[0m
>>
>> If, after booting and ssh'ing into pi, I restart the service, it
>> starts successfully.
>>
>> Any hints about what I might change to get the brcm43438.service
>> to start correctly the first time (every time)?
>>
>> John
>>
>>
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20180320/293ac060/attachment.html>
More information about the yocto
mailing list