Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] MacBook Pro: Problems with i915 KMS
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
AaylaSecura
Tux's lil' helper
Tux's lil' helper


Joined: 09 Jun 2011
Posts: 122

PostPosted: Mon Jun 08, 2015 8:48 am    Post subject: [SOLVED] MacBook Pro: Problems with i915 KMS Reply with quote

Greetings, I'm having problems with the intel driver on a new MacBook Pro (13", Core i5-5287U, Intel Iris Graphics 6100). I have enabled DRM_I915, DRM_I915_KMS and DRM_I915_FBDEV as well as FRAMEBUFFER_CONSOLE. There are two main issues right now.Firstly, when I start X and then either switch to any of the tty's or simply terminate it and go back to tty1, the screen just moves left and right, and up and down quickly (like an old movie tape). And secondly, the bluetooth keyboard does not work, the bluetooth adapter is not detected at all. Moreover, when the bluetooth keyboard is on and trying to pair up during boot, then the internal keyboard is not detected either:
Code:
intel KMS, bt keyboard on:
#dmesg | egrep -i "bluet|keyb"
[    0.112521] Bluetooth: Core ver 2.20
[    0.112529] Bluetooth: HCI device and connection manager initialized
[    0.112532] Bluetooth: HCI socket layer initialized
[    0.112535] Bluetooth: L2CAP socket layer initialized
[    0.112540] Bluetooth: SCO socket layer initialized
[    1.348710] Bluetooth: RFCOMM socket layer initialized
[    1.348712] Bluetooth: RFCOMM ver 1.11
[    1.348715] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    1.348716] Bluetooth: HIDP socket layer initialized

to compare:
Code:
intel KMS, bt keyboard off:
#dmesg | egrep -i "bluet|keyb"
[    0.112749] Bluetooth: Core ver 2.20
[    0.112757] Bluetooth: HCI device and connection manager initialized
[    0.112760] Bluetooth: HCI socket layer initialized
[    0.112763] Bluetooth: L2CAP socket layer initialized
[    0.112768] Bluetooth: SCO socket layer initialized
[    1.355555] Bluetooth: RFCOMM socket layer initialized
[    1.355557] Bluetooth: RFCOMM ver 1.11
[    1.355560] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    1.355562] Bluetooth: HIDP socket layer initialized
[    1.688166] usb 1-5: Product: Apple Internal Keyboard / Trackpad
[    1.695783] hid-generic 0003:05AC:0273.0001: hiddev0,hidraw0: USB HID v1.10 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input0
[    1.697990] input: Apple Inc. Apple Internal Keyboard / Trackpad as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.1/0003:05AC:0273.0002/input/input12
[    1.747871] hid-generic 0003:05AC:0273.0002: input,hiddev0,hidraw1: USB HID v1.10 Keyboard [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input1
[    1.749646] input: Apple Inc. Apple Internal Keyboard / Trackpad as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.2/0003:05AC:0273.0003/input/input13
[    1.750080] hid-generic 0003:05AC:0273.0003: input,hiddev0,hidraw2: USB HID v1.10 Mouse [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input2
[    1.751490] hid-generic 0003:05AC:0273.0004: hiddev0,hidraw3: USB HID v1.10 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input3
[    1.752918] hid-generic 0003:05AC:0273.0005: hiddev0,hidraw4: USB HID v1.10 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input4

The reason why I think it's related to the intel modesetting is because if I disable it (boot with nomodeset), then the bluetooth keyboard as well as the internal one work fine (as long as I wake the bt keyboard right before booting, otherwise it doesn't seem to discover it at a later time):
Code:
nomodeset, bt keyboard on:
#dmesg | egrep -i "bluet|keyb"
[    0.112633] Bluetooth: Core ver 2.20
[    0.112641] Bluetooth: HCI device and connection manager initialized
[    0.112645] Bluetooth: HCI socket layer initialized
[    0.112648] Bluetooth: L2CAP socket layer initialized
[    0.112653] Bluetooth: SCO socket layer initialized
[    1.383426] Bluetooth: RFCOMM socket layer initialized
[    1.385004] Bluetooth: RFCOMM ver 1.11
[    1.386555] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    1.388109] Bluetooth: HIDP socket layer initialized
[    1.672727] usb 1-3: Product: Bluetooth USB Host Controller
[    1.674732] input: Broadcom Corp. Bluetooth USB Host Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:05AC:8290.0001/input/input8
[    1.724577] hid-generic 0003:05AC:8290.0001: input,hidraw0: USB HID v1.11 Keyboard [Broadcom Corp. Bluetooth USB Host Controller] on usb-0000:00:14.0-3/input0
[    1.732452] input: Broadcom Corp. Bluetooth USB Host Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.1/0003:05AC:8290.0002/input/input9
[    1.739688] hid-generic 0003:05AC:8290.0002: input,hidraw1: USB HID v1.11 Mouse [Broadcom Corp. Bluetooth USB Host Controller] on usb-0000:00:14.0-3/input1
[    2.072152] usb 1-5: Product: Apple Internal Keyboard / Trackpad
[    2.079685] hid-generic 0003:05AC:0273.0003: hiddev0,hidraw2: USB HID v1.10 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input0
[    2.081665] input: Apple Inc. Apple Internal Keyboard / Trackpad as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.1/0003:05AC:0273.0004/input/input10
[    2.132576] hid-generic 0003:05AC:0273.0004: input,hiddev0,hidraw3: USB HID v1.10 Keyboard [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input1
[    2.134126] input: Apple Inc. Apple Internal Keyboard / Trackpad as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.2/0003:05AC:0273.0005/input/input11
[    2.134427] hid-generic 0003:05AC:0273.0005: input,hiddev0,hidraw4: USB HID v1.10 Mouse [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input2
[    2.135640] hid-generic 0003:05AC:0273.0006: hiddev0,hidraw5: USB HID v1.10 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input3
[    2.136847] hid-generic 0003:05AC:0273.0007: hiddev0,hidraw6: USB HID v1.10 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input4

With nomodeset, I can use the fbdev driver, instead of intel, for X and the issue with the flickering tty's is gone as well. The problem THEN is that there is no backlight driver - /sys/class/backlight/ is empty. Note I have built in BACKLIGHT_LCD_SUPPORT, BACKLIGHT_CLASS_DEVICE, BACKLIGHT_APPLE and APPLE_GMUX. The only way to get backlight support and ability to use the virtual consoles after X is started is to boot using intel modesetting and manually select fbdev as the Xorg driver - then /sys/class/backlight/intel_backlight is created and does adjust the backlight. But of course - no bluetooth keyboard (or mouse). Any ideas?

P.S.
VIDEO_CARDS="fbdev intel i965"
INPUT_DEVICES="synaptics evdev"
system is ~amd64
kernel is 4.0.4-gentoo, config here
emerge --info media-libs/mesa


Last edited by AaylaSecura on Fri Jun 12, 2015 4:32 am; edited 1 time in total
Back to top
View user's profile Send private message
Aquous
l33t
l33t


Joined: 08 Jan 2011
Posts: 700

PostPosted: Mon Jun 08, 2015 3:12 pm    Post subject: Reply with quote

What happens when you boot without loading the i915 module (should give the same result as booting with nomodeset) and if you then manually modprobe i915? Do your BT and KB suddenly drop? Anything interesting in dmesg (set up a ssh server!) at that point?
Back to top
View user's profile Send private message
AaylaSecura
Tux's lil' helper
Tux's lil' helper


Joined: 09 Jun 2011
Posts: 122

PostPosted: Tue Jun 09, 2015 12:36 am    Post subject: Reply with quote

Aquous wrote:
What happens when you boot without loading the i915 module (should give the same result as booting with nomodeset) and if you then manually modprobe i915? Do your BT and KB suddenly drop? Anything interesting in dmesg (set up a ssh server!) at that point?

Hi and thanks for replying! I recompiled the kernel, so that i915 is an external module rather than built in - this way it is loaded and KMS activated after OpenRC is started and both the internal keyboard and the bluetooth one continue to work fine! Backlight module is also loaded and works. It work whether I let the module autoload or blacklist it and then manually load it, so that's good. dmesg outputs nothing out of the ordinary:
Code:
[   33.806035] [drm] Memory usable by graphics device = 4096M
[   33.806044] [drm] VT-d active for gfx access
[   33.806055] checking generic (b0000000 fa0000) vs hw (b0000000 10000000)
[   33.806060] fb: switching to inteldrmfb from EFI VGA
[   33.806530] Console: switching to colour dummy device 80x25
[   33.806891] [drm] Replacing VGA console driver
[   33.812776] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[   33.812783] [drm] Driver supports precise vblank timestamp query.
[   33.813030] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[   33.851149] ACPI: Video Device [IGPU] (multi-head: yes  rom: no  post: no)
[   33.852619] acpi device:02: registered as cooling_device4
[   33.852930] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input12
[   33.853229] [drm] Initialized i915 1.6.0 20150130 for 0000:00:02.0 on minor 0
[   34.208328] fbcon: inteldrmfb (fb0) is primary device
[   35.959806] Console: switching to colour frame buffer device 210x65
[   35.973975] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[   35.973980] i915 0000:00:02.0: registered panic notifier

The only issue that remains is the flickering of the screen when I switch away from X. The funny thing I found out just now is that it only happens to the internal panel - I had an external monitor connected and the image on it was fine. Don't know what's causing this...
Back to top
View user's profile Send private message
Aquous
l33t
l33t


Joined: 08 Jan 2011
Posts: 700

PostPosted: Wed Jun 10, 2015 11:08 am    Post subject: Reply with quote

AaylaSecura wrote:
The only issue that remains is the flickering of the screen when I switch away from X. The funny thing I found out just now is that it only happens to the internal panel - I had an external monitor connected and the image on it was fine. Don't know what's causing this...
It's probably because X does *something* to the brightness of the internal panel, so when you switch away from X libdrm needs to restore the panel to its default state. I wouldn't know what to do about that, though; I'd suggest mucking around in xorg.conf to see if you can disable the behavior and - if it is desired - see if you can emulate it with a kernel command line option. I wouldn't know about any of that though, happy desktop user here :P
Back to top
View user's profile Send private message
charles17
Advocate
Advocate


Joined: 02 Mar 2008
Posts: 3664

PostPosted: Wed Jun 10, 2015 12:34 pm    Post subject: Re: MacBook Pro: Problems with i915 KMS and intel xorg drive Reply with quote

AaylaSecura wrote:
Greetings, I'm having problems with the intel driver on a new MacBook Pro (13", Core i5-5287U, Intel Iris Graphics 6100). I have enabled DRM_I915, DRM_I915_KMS and DRM_I915_FBDEV as well as FRAMEBUFFER_CONSOLE.

What about the HELPERs?
Quote:
$ grep -e DRM.*=y /usr/src/linux-3.18.12-gentoo/.config
CONFIG_DRM=y
CONFIG_DRM_KMS_HELPER=y
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_I915=y
CONFIG_DRM_I915_KMS=y
CONFIG_DRM_I915_FBDEV=y
Back to top
View user's profile Send private message
AaylaSecura
Tux's lil' helper
Tux's lil' helper


Joined: 09 Jun 2011
Posts: 122

PostPosted: Fri Jun 12, 2015 12:10 am    Post subject: Re: MacBook Pro: Problems with i915 KMS and intel xorg drive Reply with quote

Aquous wrote:
It's probably because X does *something* to the brightness of the internal panel, so when you switch away from X libdrm needs to restore the panel to its default state. I wouldn't know what to do about that, though; I'd suggest mucking around in xorg.conf to see if you can disable the behavior and - if it is desired - see if you can emulate it with a kernel command line option. I wouldn't know about any of that though, happy desktop user here :P

Thanks for the tip, I don't think it's the brightness, though - the brightness (as indicated by /sys/class/backlight/*/brightness) is not changing when starting X or switching away from it. I tried disabling in xorg.conf whatever I thought may be causing issues:
Code:
Section "Device"
   Identifier   "Intel Onboard"
   Driver      "intel"
   Option      "DRI" "false"
   Option      "TripleBuffer"   "false"
   Option      "HotPlug"   "false"
   Option      "NoAccel"   "true"
   Option      "Shadow"   "true"
EndSection

but nothing changed...

charles17 wrote:
What about the HELPERs?

Sorry, I forgot to mention them - yes:
Code:
#egrep \^CONFIG_.\*DRM /usr/src/linux/.config
CONFIG_DRM=y
CONFIG_DRM_MIPI_DSI=y
CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_I915=m
CONFIG_DRM_I915_KMS=y
CONFIG_DRM_I915_FBDEV=y
CONFIG_DRM_PANEL=y
Back to top
View user's profile Send private message
AaylaSecura
Tux's lil' helper
Tux's lil' helper


Joined: 09 Jun 2011
Posts: 122

PostPosted: Fri Jun 12, 2015 4:32 am    Post subject: Reply with quote

UPDATE:
I should have checked dmesg output before and after I switch away from X (not when I load i915)! Doing so revealed:
Code:
[ 8973.655978] ------------[ cut here ]------------
[ 8973.656044] WARNING: CPU: 1 PID: 1786 at drivers/gpu/drm/i915/intel_display.c:1260 hsw_disable_ips+0x34/0x15d [i915]()
[ 8973.656048] plane A assertion failure (expected on, current off)
[ 8973.656068] Modules linked in: usbhid coretemp wl(PO) mei_me mei i915 cdc_acm intel_gtt drm_kms_helper sbs sbshc efivarfs [last unloaded: bcm5974]
[ 8973.656076] CPU: 1 PID: 1786 Comm: X Tainted: P        W  O    4.0.4-gentoo #53
[ 8973.656079] Hardware name: Apple Inc. MacBookPro12,1/Mac-E43C1C25D4880AD6, BIOS MBP121.88Z.0167.B02.1503241251 03/24/2015
[ 8973.656088]  0000000000000000 0000000000000009 ffffffff815e6d0d ffff8804580f3858
[ 8973.656094]  ffffffff81038c3a 0000000000000246 ffffffffa007b8d9 ffffffff81965688
[ 8973.656100]  ffff88045a2a0000 ffff88045ac1b000 ffff88045adb5000 0000000000000000
[ 8973.656101] Call Trace:
[ 8973.656116]  [<ffffffff815e6d0d>] ? dump_stack+0x40/0x50
[ 8973.656124]  [<ffffffff81038c3a>] ? warn_slowpath_common+0x93/0xab
[ 8973.656167]  [<ffffffffa007b8d9>] ? hsw_disable_ips+0x34/0x15d [i915]
[ 8973.656174]  [<ffffffff81038c97>] ? warn_slowpath_fmt+0x45/0x4a
[ 8973.656213]  [<ffffffffa007b8d9>] ? hsw_disable_ips+0x34/0x15d [i915]
[ 8973.656249]  [<ffffffffa007bbf2>] ? intel_crtc_disable_planes+0x41/0x108 [i915]
[ 8973.656287]  [<ffffffffa007c77b>] ? haswell_crtc_disable+0x3c/0x2fb [i915]
[ 8973.656324]  [<ffffffffa007cf15>] ? __intel_set_mode+0x394/0x872 [i915]
[ 8973.656367]  [<ffffffffa0082e79>] ? intel_crtc_set_config+0xa0b/0xb5e [i915]
[ 8973.656378]  [<ffffffff812eda31>] ? drm_mode_set_config_internal+0x50/0xd7
[ 8973.656391]  [<ffffffffa0017bf9>] ? restore_fbdev_mode+0xb0/0xc7 [drm_kms_helper]
[ 8973.656403]  [<ffffffffa0019400>] ? drm_fb_helper_restore_fbdev_mode_unlocked+0x1e/0x54 [drm_kms_helper]
[ 8973.656414]  [<ffffffffa0019464>] ? drm_fb_helper_set_par+0x2e/0x32 [drm_kms_helper]
[ 8973.656457]  [<ffffffffa008ef45>] ? intel_fbdev_set_par+0x11/0x55 [i915]
[ 8973.656466]  [<ffffffff8129e1be>] ? fb_set_var+0xa4/0x345
[ 8973.656473]  [<ffffffff8129e37e>] ? fb_set_var+0x264/0x345
[ 8973.656483]  [<ffffffff8129b1cb>] ? fbcon_blank+0x75/0x224
[ 8973.656494]  [<ffffffff81057e57>] ? enqueue_task_fair+0x469/0x8f9
[ 8973.656504]  [<ffffffff8128e460>] ? do_unblank_screen+0xee/0x167
[ 8973.656511]  [<ffffffff8128635e>] ? complete_change_console+0x4c/0xb7
[ 8973.656517]  [<ffffffff81287263>] ? vt_ioctl+0xe9a/0x1133
[ 8973.656523]  [<ffffffff812e9d63>] ? drm_dropmaster_ioctl+0x66/0x70
[ 8973.656532]  [<ffffffff812e6a6b>] ? drm_ioctl+0x250/0x3c0
[ 8973.656539]  [<ffffffff8127de73>] ? tty_ioctl+0x9c9/0xa2a
[ 8973.656549]  [<ffffffff810de3f9>] ? new_sync_write+0x6e/0x92
[ 8973.656557]  [<ffffffff8110a868>] ? fsnotify+0x276/0x2bf
[ 8973.656564]  [<ffffffff810ecd14>] ? do_vfs_ioctl+0x36d/0x425
[ 8973.656570]  [<ffffffff810e0501>] ? __sb_end_write+0x24/0x52
[ 8973.656578]  [<ffffffff810de98a>] ? vfs_write+0x166/0x172
[ 8973.656584]  [<ffffffff810ece05>] ? SyS_ioctl+0x39/0x55
[ 8973.656591]  [<ffffffff815ecaf2>] ? system_call_fastpath+0x12/0x17
[ 8973.656596] ---[ end trace a5d25c2de41e9ed0 ]---
[ 8976.840482] [drm:gen8_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun

A very quick googling led me to several bugs reporting this (mainly on Thinkpad's) and suggested i915.enable_ips=0 which fixed the problem!! I can finally use my ttys after X has started :D
Back to top
View user's profile Send private message
Satarsa
n00b
n00b


Joined: 21 Sep 2005
Posts: 70
Location: Russia, St.-Petersburg

PostPosted: Mon Jul 27, 2015 12:09 pm    Post subject: Re: [SOLVED] MacBook Pro: Problems with i915 KMS Reply with quote

Quote:
And secondly, the bluetooth keyboard does not work, the bluetooth adapter is not detected at all.


But how could you make the bluetooth work in general? For me, it is always inactive and hcitool dev gives nothing. All the needed modules are compiled.
Back to top
View user's profile Send private message
AaylaSecura
Tux's lil' helper
Tux's lil' helper


Joined: 09 Jun 2011
Posts: 122

PostPosted: Mon Jul 27, 2015 12:25 pm    Post subject: Re: [SOLVED] MacBook Pro: Problems with i915 KMS Reply with quote

Satarsa wrote:
Quote:
And secondly, the bluetooth keyboard does not work, the bluetooth adapter is not detected at all.


But how could you make the bluetooth work in general? For me, it is always inactive and hcitool dev gives nothing. All the needed modules are compiled.

Yes, I'm not sure why all the guides for Linux on MacBook say they use hcitool, for me it gives nothing either. All it needs is the HID_APPLE module but there is no support for the new models (2015) yet, meaning they work, except for the FN key (it sends nothing), same with the magic mouse - no scrolling support yet, only left/right click. In fact, there is no support for the built-in trackpad in current stable kernel either (gestures and multi-finger tap as well as the FN key don't work), but there are patches for those.
Back to top
View user's profile Send private message
Satarsa
n00b
n00b


Joined: 21 Sep 2005
Posts: 70
Location: Russia, St.-Petersburg

PostPosted: Mon Jul 27, 2015 12:41 pm    Post subject: Re: [SOLVED] MacBook Pro: Problems with i915 KMS Reply with quote

Quote:
Yes, I'm not sure why all the guides for Linux on MacBook say they use hcitool, for me it gives nothing either. All it needs is the HID_APPLE module but there is no support for the new models (2015) yet, meaning they work, except for the FN key (it sends nothing), same with the magic mouse - no scrolling support yet, only left/right click. In fact, there is no support for the built-in trackpad in current stable kernel either (gestures and multi-finger tap as well as the FN key don't work), but there are patches for those.


Yes, thanks, I applied these patches, and the internal keyboard and trackpad work very well after. It seems that somehow there are two interfaces for HIDs:

Code:

[    3.070972] usbhid: USB HID core driver
[    3.073355] apple 0003:05AC:0273.0003: hiddev0,hidraw0: USB HID v1.10 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input0
[    3.122821] hid-generic 0003:05AC:8290.0001: input,hidraw1: USB HID v1.11 Keyboard [Broadcom Corp. Bluetooth USB Host Controller] on usb-0000:00:14.0-3/input0
[    3.173803] apple 0003:05AC:0273.0004: input,hiddev0,hidraw2: USB HID v1.10 Keyboard [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input1
[    3.173945] hid-generic 0003:05AC:8290.0002: input,hidraw3: USB HID v1.11 Mouse [Broadcom Corp. Bluetooth USB Host Controller] on usb-0000:00:14.0-3/input1
[    3.174224] apple 0003:05AC:0273.0005: hiddev0,hidraw4: USB HID v1.10 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input3
[    3.174552] apple 0003:05AC:0273.0006: hiddev0,hidraw5: USB HID v1.10 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input4


One of them, this 05ac:0273 is Apple's HID interface and 05ac:8290 is a bluetooth device, but it seems that this bluetooth device has two special channels for Apple mouse and keyboards. If I do usb-devices:
Code:

T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 2.01 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=05ac ProdID=8290 Rev=00.90
S:  Manufacturer=Broadcom Corp.
S:  Product=Bluetooth USB Host Controller
C:  #Ifs= 6 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=usbhid
I:  If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=usbhid
I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I:  If#= 3 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
I:  If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 5 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)


There is something like "internal Apple bluetooth" protocol in If0 and If1?..
I would like to use bluetooth in general, but I do not know how to make it work with anything else.
Back to top
View user's profile Send private message
AaylaSecura
Tux's lil' helper
Tux's lil' helper


Joined: 09 Jun 2011
Posts: 122

PostPosted: Mon Jul 27, 2015 12:54 pm    Post subject: Re: [SOLVED] MacBook Pro: Problems with i915 KMS Reply with quote

Satarsa wrote:
Quote:
Yes, I'm not sure why all the guides for Linux on MacBook say they use hcitool, for me it gives nothing either. All it needs is the HID_APPLE module but there is no support for the new models (2015) yet, meaning they work, except for the FN key (it sends nothing), same with the magic mouse - no scrolling support yet, only left/right click. In fact, there is no support for the built-in trackpad in current stable kernel either (gestures and multi-finger tap as well as the FN key don't work), but there are patches for those.


Yes, thanks, I applied these patches, and the internal keyboard and trackpad work very well after. It seems that somehow there are two interfaces for HIDs:

Code:

[    3.070972] usbhid: USB HID core driver
[    3.073355] apple 0003:05AC:0273.0003: hiddev0,hidraw0: USB HID v1.10 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input0
[    3.122821] hid-generic 0003:05AC:8290.0001: input,hidraw1: USB HID v1.11 Keyboard [Broadcom Corp. Bluetooth USB Host Controller] on usb-0000:00:14.0-3/input0
[    3.173803] apple 0003:05AC:0273.0004: input,hiddev0,hidraw2: USB HID v1.10 Keyboard [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input1
[    3.173945] hid-generic 0003:05AC:8290.0002: input,hidraw3: USB HID v1.11 Mouse [Broadcom Corp. Bluetooth USB Host Controller] on usb-0000:00:14.0-3/input1
[    3.174224] apple 0003:05AC:0273.0005: hiddev0,hidraw4: USB HID v1.10 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input3
[    3.174552] apple 0003:05AC:0273.0006: hiddev0,hidraw5: USB HID v1.10 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:14.0-5/input4


One of them, this 05ac:0273 is Apple's HID interface and 05ac:8290 is a bluetooth device, but it seems that this bluetooth device has two special channels for Apple mouse and keyboards. If I do usb-devices:
Code:

T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 2.01 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=05ac ProdID=8290 Rev=00.90
S:  Manufacturer=Broadcom Corp.
S:  Product=Bluetooth USB Host Controller
C:  #Ifs= 6 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=usbhid
I:  If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=usbhid
I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I:  If#= 3 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
I:  If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 5 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)


There is something like "internal Apple bluetooth" protocol in If0 and If1?..
I would like to use bluetooth in general, but I do not know how to make it work with anything else.


Sorry, I don't understand - so the bluetooth keyboard and mouse work but the bluetooth adapter doesn't in general (you can't connect to any random bluetooth device)? I haven't tried the latter (never needed it) but while searching for a solution for the bt keyboard fn key, I came across posts that said the bt adapter is in HID mode and for hciconfig to work, it needs to be in HCI mode. I just looked for that now and I found a guide here and actually that explains why the keyboard and mouse work with just the kernel module (no bluetooth support required):
Quote:
Apple, but I have seen a similar approach also in other vendors (like Logitech with their diNovo product family), abstract the Bluetooth HID devices as USB HID (HID mode). This means that the Bluetooth device appear to the system as if it were directly connected to the USB port.

That’s the reason why we can use the Apple Bluetooth keyboard and mouse in Linux even we have not installed the Bluetooth stack at all.


I haven't tried the approach described there but I may do that when I get some spare time. Who knows, maybe the keyboard mouse will function properly then.
Back to top
View user's profile Send private message
Satarsa
n00b
n00b


Joined: 21 Sep 2005
Posts: 70
Location: Russia, St.-Petersburg

PostPosted: Mon Jul 27, 2015 1:00 pm    Post subject: Reply with quote

Quote:
Sorry, I don't understand - so the bluetooth keyboard and mouse work but the bluetooth adapter doesn't in general (you can't connect to any random bluetooth device)?


Yes, exactly. Thanks for the link, now it is clearer.
Back to top
View user's profile Send private message
Satarsa
n00b
n00b


Joined: 21 Sep 2005
Posts: 70
Location: Russia, St.-Petersburg

PostPosted: Mon Jul 27, 2015 3:38 pm    Post subject: Reply with quote

Interesting. I booted up into MacOS, paired my Logitech mouse and keyboard, then rebooted into Gentoo and they both worked! But I have the same problem: xorg finds only 3 mouse buttons, thus mouse wheel does not work at all. If I pair it through the normal pairing procedure with another laptop, it reports 20 mouse buttons.
Back to top
View user's profile Send private message
AaylaSecura
Tux's lil' helper
Tux's lil' helper


Joined: 09 Jun 2011
Posts: 122

PostPosted: Mon Jul 27, 2015 8:25 pm    Post subject: Reply with quote

Satarsa wrote:
Interesting. I booted up into MacOS, paired my Logitech mouse and keyboard, then rebooted into Gentoo and they both worked! But I have the same problem: xorg finds only 3 mouse buttons, thus mouse wheel does not work at all. If I pair it through the normal pairing procedure with another laptop, it reports 20 mouse buttons.

Yes, because the kernel module HID_MAGICMOUSE doesn't yet support the new modules, my guess was that following the steps in the guide to switch the BT adapter to HCI mode and pairing them up manually would go around that, did you try it?
Back to top
View user's profile Send private message
Satarsa
n00b
n00b


Joined: 21 Sep 2005
Posts: 70
Location: Russia, St.-Petersburg

PostPosted: Mon Jul 27, 2015 9:18 pm    Post subject: Reply with quote

Quote:
my guess was that following the steps in the guide to switch the BT adapter to HCI mode and pairing them up manually would go around that, did you try it?


hid2hci either fails or does nothing. :(
Back to top
View user's profile Send private message
AaylaSecura
Tux's lil' helper
Tux's lil' helper


Joined: 09 Jun 2011
Posts: 122

PostPosted: Tue Jul 28, 2015 12:45 am    Post subject: Reply with quote

Satarsa wrote:
Quote:
my guess was that following the steps in the guide to switch the BT adapter to HCI mode and pairing them up manually would go around that, did you try it?


hid2hci either fails or does nothing. :(


Ok, I must be doing something really dumb because I don't have /usr/sbin/hid2hci and I can't figure out how to get it. e-file reports that this file is installed by all versions of bluez up to 5.20, including 4.101, which is still in the tree - I installed that one with hid2hci USE flag enabled and it still does not install such a file (nor a man page). Where did you get the hid2hci executable from??
Back to top
View user's profile Send private message
Satarsa
n00b
n00b


Joined: 21 Sep 2005
Posts: 70
Location: Russia, St.-Petersburg

PostPosted: Tue Jul 28, 2015 8:01 am    Post subject: Reply with quote

AaylaSecura wrote:

Ok, I must be doing something really dumb because I don't have /usr/sbin/hid2hci and I can't figure out how to get it. e-file reports that this file is installed by all versions of bluez up to 5.20, including 4.101, which is still in the tree - I installed that one with hid2hci USE flag enabled and it still does not install such a file (nor a man page). Where did you get the hid2hci executable from??


It is in /lib64/udev

Then you can get your usb device link by:
Code:

udevadm trigger --dry-run --subsystem-match=usb --attr-match=idVendor=05ac --attr-match=idProduct=8290 --verbose

Code:

/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3

then:
Code:

/lib64/udev/hid2hci --devpath=/devices/pci0000\:00/0000\:00\:14.0/usb1/1-3/1-3\:1.X/ --method=csr2

where X is from 0 to 5.

There are different methods. csr2 is the only one which does not fail. But it also does nothing.
Back to top
View user's profile Send private message
AaylaSecura
Tux's lil' helper
Tux's lil' helper


Joined: 09 Jun 2011
Posts: 122

PostPosted: Wed Jul 29, 2015 5:42 am    Post subject: Reply with quote

Satarsa wrote:
AaylaSecura wrote:

Ok, I must be doing something really dumb because I don't have /usr/sbin/hid2hci and I can't figure out how to get it. e-file reports that this file is installed by all versions of bluez up to 5.20, including 4.101, which is still in the tree - I installed that one with hid2hci USE flag enabled and it still does not install such a file (nor a man page). Where did you get the hid2hci executable from??


It is in /lib64/udev

Then you can get your usb device link by:
Code:

udevadm trigger --dry-run --subsystem-match=usb --attr-match=idVendor=05ac --attr-match=idProduct=8290 --verbose

Code:

/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3

then:
Code:

/lib64/udev/hid2hci --devpath=/devices/pci0000\:00/0000\:00\:14.0/usb1/1-3/1-3\:1.X/ --method=csr2

where X is from 0 to 5.

There are different methods. csr2 is the only one which does not fail. But it also does nothing.


I just tried that on mine - it outputs nothing but it definitely fails, cause it exits with status 1...
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum