raspberrypi / linux

Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/
Other
11.11k stars 4.98k forks source link

Bluetooth and Dual Shock 3 Playstation Remote will crash System. #1360

Closed coniferous1 closed 8 years ago

coniferous1 commented 8 years ago

Hello All,

Looking to report a bug with the bluetooth on raspberry pi three with dual shock 3 playstation controllers.

When connected to one controller intermittently I get these errors (around once an hour, but it's pretty random). It seems like a driver issue, But I'll experiment with anything that will help me fix the issue.

Mar 21 21:45:58 retropie kernel: [ 2372.052392] Bluetooth: hci0: Frame reassembly failed (-84) Mar 21 21:45:58 retropie kernel: [ 2372.052572] Unable to handle kernel paging request at virtual address ffffffc8 Mar 21 21:45:58 retropie kernel: [ 2372.060430] pgd = 80004000 Mar 21 21:45:58 retropie kernel: [ 2372.063467] [ffffffc8] pgd=2effa821, pte=00000000, *ppte=00000000

Message from syslogd@retropie at Mar 21 21:45:58 ... kernel:[ 2372.070115] Internal error: Oops: 17 [#1] SMP ARM

uname -r reports:

4.1.19-v7+

Not a linux Guru, if this is the wrong place or you need more information please let me know.

popcornmix commented 8 years ago

Note: rpi-update is no longer needed. sudo apt-get update && sudo apt-get dist-upgrade will get the 4.4 kernel now. See: https://www.raspberrypi.org/blog/another-update-raspbian/

konradsa commented 8 years ago

That is good news! :-)

On Fri, May 13, 2016 at 9:33 AM, popcornmix notifications@github.com wrote:

Note: rpi-update is no longer needed. sudo apt-get update && sudo apt-get dist-upgrade will get the 4.4 kernel now. See: https://www.raspberrypi.org/blog/another-update-raspbian/

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/raspberrypi/linux/issues/1360#issuecomment-219043671

coniferous1 commented 8 years ago

Based On the fact this is fixed and people are having success, I'm going to close this issue.

Thanks for all the help everyone.

konradsa commented 8 years ago

Word of warning, don't run sudo apt-get update && sudo apt-get dist-upgrade, you will lose bluetooth for good, just happened to me. There seem to be more underlying bluetooth changes in the latest raspbian update that break bluetooth for RetroPie.

konradsa commented 8 years ago

Ok, I really hate being the guinea pig for you guys! ;-)

If you lose bluetooth after dist-upgrade, here is how to fix it: Essentially, you need to downgrade pi-bluetooh from 0.1.1 to 0.1.0

1) wget http://archive.raspberrypi.org/debian/pool/main/p/pi-bluetooth/pi-bluetooth_0.1.0_armhf.deb 2) sudo dpkg -i pi-bluetooth_0.1.0_armhf.deb 3) Reboot

If that works for you, run sudo apt-mark hold pi-bluetooth to prevent it from being updated by accident.

Hope it saves you a lot of time and frustration

konradsa commented 8 years ago

Another weird thing I noticed after the upgrade is that the system was only using the powersave governor, thereby severely slowing down performance of the system. If that happens to you too, then you can run sudo apt-get install cpufrequtils and reboot to fix it. The defaults it to the ondemand governor again.

EDIT: Fixed typo

greener2 commented 8 years ago

That package should be cpufrequtils, you missed the 's'! Nice one though, you're our hero!

KrS14 commented 8 years ago

Still haven't been able to get a PS3 controller to pair. 3.6, 3.7, fixes posted above, nothing works. It did at one time when I first installed 3.6, but i had the freezing so i've gotten a USB BT adapter since. My OCD wants the on-board to work though :)

This is what I get with a fresh 3.7 Image: After initial boot apt-get update apt-get dist-upgrade wget http://archive.raspberrypi.org/debian/pool/main/p/pi-bluetooth/pi-bluetooth_0.1.0_armhf.deb sudo dpkg -i pi-bluetooth_0.1.0_armhf.deb Reboot Update RetroPie-Setup Script Install PS3 drivers through menu. Connect USB cable to controller, works fine in Emulation Station. Disconnect USB and push PS button Crickets

root@retropie:/home/pi# dmesg | grep Blue [ 6.578766] Bluetooth: Core ver 2.21 [ 6.578850] Bluetooth: HCI device and connection manager initialized [ 6.578866] Bluetooth: HCI socket layer initialized [ 6.578877] Bluetooth: L2CAP socket layer initialized [ 6.578906] Bluetooth: SCO socket layer initialized [ 10.593502] Bluetooth: HCI UART driver ver 2.3 [ 10.593523] Bluetooth: HCI UART protocol H4 registered [ 10.593533] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 10.593729] Bluetooth: HCI UART protocol BCM registered [ 10.839018] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 10.839031] Bluetooth: BNEP filters: protocol multicast [ 10.839045] Bluetooth: BNEP socket layer initialized [ 13.956338] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 [ 13.956361] Bluetooth: HIDP socket layer initialized

root@retropie:/home/pi# lsusb Bus 001 Device 004: ID 1997:2433 Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

root@retropie:/home/pi# hciconfig hci0: Type: BR/EDR Bus: UART BD Address: B8:27:EB:B8:14:CB ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING PSCAN RX bytes:775 acl:0 sco:0 events:48 errors:0 TX bytes:1560 acl:0 sco:0 commands:48 errors:0

root@retropie:/home/pi# systemctl status bluetooth.service ● bluetooth.service - Bluetooth service Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled) Active: failed (Result: exit-code) since Sat 2016-05-14 13:48:04 UTC; 1min 6s ago Docs: man:bluetoothd(8) Process: 1461 ExecStart=/usr/lib/bluetooth/bluetoothd (code=exited, status=203/EXEC) Main PID: 1461 (code=exited, status=203/EXEC)

May 14 13:48:04 retropie systemd[1]: bluetooth.service: main process exited, code=exited, status=203/EXEC May 14 13:48:04 retropie systemd[1]: Failed to start Bluetooth service. May 14 13:48:04 retropie systemd[1]: Unit bluetooth.service entered failed state. root@retropie:/home/pi#

The "systemctl status bluetooth.service" error may simply be because of sixad, and be normal. But nothing I do will get the controller to pair. I actually can't get it to pair with the USB BT adapter now either.

I've re-paired the controller to my actual PS3 and tried again to the pi with nothing as a result as well. This should be working.

I'll reflash back to fresh 3.7 and go baby steps trying with the USB BT adapter mixed in to be sure it still works as I go.

Any ideas?

On Sat, May 14, 2016 at 9:30 AM, greener2 notifications@github.com wrote:

That package should be cpufrequtils, you missed the 's'! Nice one though, you're our hero!

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/raspberrypi/linux/issues/1360#issuecomment-219220465

KrS14 commented 8 years ago

I've started using hcidump to see what's actually going on. With the USB BT adapter I can now get it connected no problem, dump looks fine.

When I try using the onboard, I do get events when runnning 'sixad --start' but nothing from the controller in the events.

Seems the PS3 controller just doesn't like the onboard for some reason, this is with 4.4.9-v7

More testing to come.

On Sat, May 14, 2016 at 10:16 AM, Kevin Smith krsthis@gmail.com wrote:

Still haven't been able to get a PS3 controller to pair. 3.6, 3.7, fixes posted above, nothing works. It did at one time when I first installed 3.6, but i had the freezing so i've gotten a USB BT adapter since. My OCD wants the on-board to work though :)

This is what I get with a fresh 3.7 Image: After initial boot apt-get update apt-get dist-upgrade wget http://archive.raspberrypi.org/debian/pool/main/p/pi-bluetooth/pi-bluetooth_0.1.0_armhf.deb sudo dpkg -i pi-bluetooth_0.1.0_armhf.deb Reboot Update RetroPie-Setup Script Install PS3 drivers through menu. Connect USB cable to controller, works fine in Emulation Station. Disconnect USB and push PS button Crickets

root@retropie:/home/pi# dmesg | grep Blue [ 6.578766] Bluetooth: Core ver 2.21 [ 6.578850] Bluetooth: HCI device and connection manager initialized [ 6.578866] Bluetooth: HCI socket layer initialized [ 6.578877] Bluetooth: L2CAP socket layer initialized [ 6.578906] Bluetooth: SCO socket layer initialized [ 10.593502] Bluetooth: HCI UART driver ver 2.3 [ 10.593523] Bluetooth: HCI UART protocol H4 registered [ 10.593533] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 10.593729] Bluetooth: HCI UART protocol BCM registered [ 10.839018] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 10.839031] Bluetooth: BNEP filters: protocol multicast [ 10.839045] Bluetooth: BNEP socket layer initialized [ 13.956338] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 [ 13.956361] Bluetooth: HIDP socket layer initialized

root@retropie:/home/pi# lsusb Bus 001 Device 004: ID 1997:2433 Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

root@retropie:/home/pi# hciconfig hci0: Type: BR/EDR Bus: UART BD Address: B8:27:EB:B8:14:CB ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING PSCAN RX bytes:775 acl:0 sco:0 events:48 errors:0 TX bytes:1560 acl:0 sco:0 commands:48 errors:0

root@retropie:/home/pi# systemctl status bluetooth.service ● bluetooth.service - Bluetooth service Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled) Active: failed (Result: exit-code) since Sat 2016-05-14 13:48:04 UTC; 1min 6s ago Docs: man:bluetoothd(8) Process: 1461 ExecStart=/usr/lib/bluetooth/bluetoothd (code=exited, status=203/EXEC) Main PID: 1461 (code=exited, status=203/EXEC)

May 14 13:48:04 retropie systemd[1]: bluetooth.service: main process exited, code=exited, status=203/EXEC May 14 13:48:04 retropie systemd[1]: Failed to start Bluetooth service. May 14 13:48:04 retropie systemd[1]: Unit bluetooth.service entered failed state. root@retropie:/home/pi#

The "systemctl status bluetooth.service" error may simply be because of sixad, and be normal. But nothing I do will get the controller to pair. I actually can't get it to pair with the USB BT adapter now either.

I've re-paired the controller to my actual PS3 and tried again to the pi with nothing as a result as well. This should be working.

I'll reflash back to fresh 3.7 and go baby steps trying with the USB BT adapter mixed in to be sure it still works as I go.

Any ideas?

On Sat, May 14, 2016 at 9:30 AM, greener2 notifications@github.com wrote:

That package should be cpufrequtils, you missed the 's'! Nice one though, you're our hero!

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/raspberrypi/linux/issues/1360#issuecomment-219220465

KrS14 commented 8 years ago

Actually I really do give up, i'm not getting anything from the onboard at all, no matter what kernel version or retropie version I use. Without sixad I can pair my phone no problems with the onboard, it just doesn't work with sixad.

On Sat, May 14, 2016 at 12:04 PM, Kevin Smith krsthis@gmail.com wrote:

I've started using hcidump to see what's actually going on. With the USB BT adapter I can now get it connected no problem, dump looks fine.

When I try using the onboard, I do get events when runnning 'sixad --start' but nothing from the controller in the events.

Seems the PS3 controller just doesn't like the onboard for some reason, this is with 4.4.9-v7

More testing to come.

On Sat, May 14, 2016 at 10:16 AM, Kevin Smith krsthis@gmail.com wrote:

Still haven't been able to get a PS3 controller to pair. 3.6, 3.7, fixes posted above, nothing works. It did at one time when I first installed 3.6, but i had the freezing so i've gotten a USB BT adapter since. My OCD wants the on-board to work though :)

This is what I get with a fresh 3.7 Image: After initial boot apt-get update apt-get dist-upgrade wget http://archive.raspberrypi.org/debian/pool/main/p/pi-bluetooth/pi-bluetooth_0.1.0_armhf.deb sudo dpkg -i pi-bluetooth_0.1.0_armhf.deb Reboot Update RetroPie-Setup Script Install PS3 drivers through menu. Connect USB cable to controller, works fine in Emulation Station. Disconnect USB and push PS button Crickets

root@retropie:/home/pi# dmesg | grep Blue [ 6.578766] Bluetooth: Core ver 2.21 [ 6.578850] Bluetooth: HCI device and connection manager initialized [ 6.578866] Bluetooth: HCI socket layer initialized [ 6.578877] Bluetooth: L2CAP socket layer initialized [ 6.578906] Bluetooth: SCO socket layer initialized [ 10.593502] Bluetooth: HCI UART driver ver 2.3 [ 10.593523] Bluetooth: HCI UART protocol H4 registered [ 10.593533] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 10.593729] Bluetooth: HCI UART protocol BCM registered [ 10.839018] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 10.839031] Bluetooth: BNEP filters: protocol multicast [ 10.839045] Bluetooth: BNEP socket layer initialized [ 13.956338] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 [ 13.956361] Bluetooth: HIDP socket layer initialized

root@retropie:/home/pi# lsusb Bus 001 Device 004: ID 1997:2433 Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

root@retropie:/home/pi# hciconfig hci0: Type: BR/EDR Bus: UART BD Address: B8:27:EB:B8:14:CB ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING PSCAN RX bytes:775 acl:0 sco:0 events:48 errors:0 TX bytes:1560 acl:0 sco:0 commands:48 errors:0

root@retropie:/home/pi# systemctl status bluetooth.service ● bluetooth.service - Bluetooth service Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled) Active: failed (Result: exit-code) since Sat 2016-05-14 13:48:04 UTC; 1min 6s ago Docs: man:bluetoothd(8) Process: 1461 ExecStart=/usr/lib/bluetooth/bluetoothd (code=exited, status=203/EXEC) Main PID: 1461 (code=exited, status=203/EXEC)

May 14 13:48:04 retropie systemd[1]: bluetooth.service: main process exited, code=exited, status=203/EXEC May 14 13:48:04 retropie systemd[1]: Failed to start Bluetooth service. May 14 13:48:04 retropie systemd[1]: Unit bluetooth.service entered failed state. root@retropie:/home/pi#

The "systemctl status bluetooth.service" error may simply be because of sixad, and be normal. But nothing I do will get the controller to pair. I actually can't get it to pair with the USB BT adapter now either.

I've re-paired the controller to my actual PS3 and tried again to the pi with nothing as a result as well. This should be working.

I'll reflash back to fresh 3.7 and go baby steps trying with the USB BT adapter mixed in to be sure it still works as I go.

Any ideas?

On Sat, May 14, 2016 at 9:30 AM, greener2 notifications@github.com wrote:

That package should be cpufrequtils, you missed the 's'! Nice one though, you're our hero!

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/raspberrypi/linux/issues/1360#issuecomment-219220465

eddywebs commented 8 years ago

@KrS14 try removing the the ps3 controller config from the retrpie-setup menu and then re-install it should pair 1st controller however I found problem in being able to pair any additional controllers.

paulrouget commented 8 years ago

I'd recommend to wait a bit before updating.

After the raspbian update, bluetooth hardware is not recognized anymore here. See the comments here: https://www.raspberrypi.org/blog/another-update-raspbian/

Downgradding pi-bluetooth didn't help.

joestrong commented 8 years ago

@paulrouget I just upgraded raspbian and downgraded pi-bluetooth and it worked for me! Did you try rebooting?

BenjiZombie commented 8 years ago

Removing previous PS3 config, downgrading pi-bluetooth and rebooting worked for me as well.

KrS14 commented 8 years ago

I can try from a state of nothing ever being attempted and it does pair. No config present. On May 15, 2016 5:02 PM, "BenjiZombie" notifications@github.com wrote:

Removing previous PS3 config, downgrading pi-bluetooth and rebooting worked for me as well.

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/raspberrypi/linux/issues/1360#issuecomment-219310333

paulrouget commented 8 years ago

Removing previous PS3 config

That might be the thing I haven't tried.

Anyway, I've reinstalled, and it works now.

JPLeBreton commented 8 years ago

If the fix for this bug is to work around it by downgrading, then it's not fixed and should be reopened.

paulrouget commented 8 years ago

If the fix for this bug is to work around it by downgrading, then it's not fixed and should be reopened.

It is fixed. Downgrading is not necessary at least on a fresh install.

If downgrading is necessary after an update, then I believe it's better to file a new issue (and maybe not in raspberrypi/linux) with STRs.

konradsa commented 8 years ago

Downgrading will not be necessary on a fresh install, since that one uses pi-bluetooth 0.1.0. But as soon as you run sudo apt dist-upgrade (or upgrade via the retropie_setup menu) you will get the same problem again.

On Tue, May 17, 2016 at 12:03 AM, Paul Rouget notifications@github.com wrote:

If the fix for this bug is to work around it by downgrading, then it's not fixed and should be reopened.

It is fixed. Downgrading is not necessary at least on a fresh install.

If downgrading is necessary after an update, then I believe it's better to file a new issue (and maybe not in raspberrypi/linux) with STRs.

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/raspberrypi/linux/issues/1360#issuecomment-219614061

Dennisnuel commented 8 years ago

Ok I have fixed this without downgrading. I was looking at this forum thread https://www.raspberrypi.org/forums/viewtopic.php?t=148305&p=976259

Ok the important part was this

After the 5/13/16 upgrade (incl. new 4.4.9 kernel) my pi3 Bluetooth stopped working. I narrowed it down to /dev/serial0 and /dev/serial1 were missing and hence the /lib/systemd/system/hciuart.service failed since it now uses "serial1" instead of "ttyAMA0" in previous releases.

This is the script snippet in question: ExecStart=/usr/bin/hciattach /dev/serial1 bcm43xx 921600 noflow -

In a separate post - DirkS, indicated that these files were created by 99-com.rules which I did not have on my system.

Using apt-file I figured out that I was missing the raspberrypi-sys-mods package. Once I did an apt-get of the package Bluetooth is working again.

apt-file search 99-com.rules raspberrypi-sys-mods: /etc/udev/rules.d/99-com.rules apt-get install raspberrypi-sys-mods

1) update (via apt-get upgrade and apt-get dist-upgrade) 2) yes it was working well until the 5/13/16 update 3) n/a - I have it working now 4) n/a - I have it working now 5) n/a - I have it working now

This did no work for me because I forgot to choose replacing 99-com.rules when i did the installation. So renamed may /etc/udev/rules.d/99-com.rules to 99-com.rules.bak then I used a text editor to create a new 99-com.rules. I then copied the 99-com.rules from here https://github.com/RPi-Distro/raspberrypi-sys-mods/blob/master/etc/udev/rules.d/99-com.rules .

Every thing works now.

konradsa commented 8 years ago

I can confirm, apt-get install raspberrypi-sys-mods and selecting Y during install fixed bluetooth for me, even with pi-bluetooth 0.1.1. Thanks!

Run sudo apt-mark unhold pi-bluetooth in case you put pi-bluetooth on hold to keep it pinned at 0.1.0.

On Wed, May 18, 2016 at 9:03 PM, Dennisnuel notifications@github.com wrote:

Ok I have fixed this without downgrading. I was looking at this forum thread https://www.raspberrypi.org/forums/viewtopic.php?t=148305&p=976259

Ok the important part was this

After the 5/13/16 upgrade (incl. new 4.4.9 kernel) my pi3 Bluetooth stopped working. I narrowed it down to /dev/serial0 and /dev/serial1 were missing and hence the /lib/systemd/system/hciuart.service failed since it now uses "serial1" instead of "ttyAMA0" in previous releases.

This is the script snippet in question: ExecStart=/usr/bin/hciattach /dev/serial1 bcm43xx 921600 noflow -

In a separate post - DirkS, indicated that these files were created by 99-com.rules which I did not have on my system.

Using apt-file I figured out that I was missing the raspberrypi-sys-mods package. Once I did an apt-get of the package Bluetooth is working again.

apt-file search 99-com.rules raspberrypi-sys-mods: /etc/udev/rules.d/99-com.rules apt-get install raspberrypi-sys-mods

1) update (via apt-get upgrade and apt-get dist-upgrade) 2) yes it was working well until the 5/13/16 update 3) n/a - I have it working now 4) n/a - I have it working now 5) n/a - I have it working now

This did no work for me because I for got to choose replacing 99-com.rules when i did the installation. So renamed may /etc/udev/rules.d/99-com.rules to 99-com.rules.bak then I used a text editor to create a new 99-com.rules. I then copied the 99-com.rules from here https://github.com/RPi-Distro/raspberrypi-sys-mods/blob/master/etc/udev/rules.d/99-com.rules .

Every thing works now.

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/raspberrypi/linux/issues/1360#issuecomment-220201230

david-foo commented 7 years ago

sameting. my hardware is AM4378, software is pybluez:

root@xxx:~/pybluez/examples/simple# python sdp-browse.py all [18142.090865] Bluetooth: hci0: Frame reassembly failed (-84) [18142.096799] Unable to handle kernel paging request at virtual address ffffffc8 [18142.104590] pgd = c0004000 ...

I can do bluetoothctl scan,but when do pair the kernel crashed.