# Apple Magic Mouse is NOT usable under 2.6.39. Confirmed.

## Unixworld

Hello, people !

Just registered, first time user here so that's why I'm not sure if I'm in the right "section" of the forum  :Smile: 

Well...how to start...

I've discovered Gentoo some 5 months ago and I have been enjoying it since.

I'm very glad I did this choice and I spent all my free time learning Gentoo.

Well, although I enjoy it a lot, it sometimes just drives me nuts, as now - which is the reason for opening this thread,

actually  :Very Happy: 

I wanted to ask for some advices/assistance or any hints that may reveal what the cause for the issue is,

and would be very grateful if I would be pointed out any mistakes/improper approaches etc. Thanx.

The thing is the bluetooth stack, or particularly - Apple Magic Mouse.

I am not sure if I broke something myself or it was the Open RC-migration / the 2.6.39-kernel.

I use usually the ~amd64 kernel and compile it myself; after the 2.6.39 was pulled and compiled,

I noticed the mouse would not work anymore as it did under the 2.6.38-* kernel.

Well, I wanted to rebuild the whole system anyway, just for the sake of it so I started with a fresh system.

One thing that has been bugging me for the past 2 months is that one cannot just leave the system get build

(Gnome-DE) as before and find it ready after returning in some 5-6 hours (as it used to be before).

I noticed that building Gnome would always fail at some point, with the error always be due to Python - 

you have to compile Python with "tk"-support as the very first step before building the whole environment ?!

Well, ok, returning back to the point  :Smile: 

With the fresh system now, I was (am) very unpleasantly surprised to find out that my magic mouse is unusable  :Sad: 

I have been digging in the system for a whole day already, trying to find out what is causing all this.

The mouse is always recognised and visible, gnome-bluetooth/blueman find it, pair it and give the "green light",

but there is absolutely no single movement of the cursor when trying it ...  :Sad: 

Below some details :

- using MMouse with a D-Link DBT-122 dongle, which works fine under any other OS,

  I am using it under a parallel-installed Debian 6.0.1 and it works just fine. I noticed that

  in Debian all important drivers (ehci,ohci,uhci,hid,hid_magicmouse,btusb etc) were built as modules.

- in Gentoo, I always use the default profile - [1] default/linux/amd64/10.0 *

- rebuild the kernel at least 5 times with different options - all the USB + HID + Bluetooth staff as either built-in

  or as modules

- put all the bt*, hid* and usb* stuff in /etc/conf.d/modules

- rebuild "standard" bluez-version and the ~amd64-one, with different USE-flags everytime

- tried both gnome-bluetooth and blueman, also with different USE-flags at every build

- rebuild dbus, dbus-glib and hal several times

- tried with HAL and without HAL, DBUS is always there and started (should it ?)

- tried with moving udev to both boot and sysinit runlevels

- rebuild xorg-server and xorg-drivers 

- tried with xorg.conf, without xorg.conf, with either device-entries for the KB/mouse in xorg.conf (which I found posted

  here and there in Internet) and separate ones in xorg.conf.d/ - 10-mouse.conf etc.

Well... I ran out of options  :Smile: 

The result is always the same - device is recognized, paired and connected to input service, but it won't move an inch.

I was also thinking about the "kernel hacking" options that I always use - could it be that a specific option

is "causing" the issues ? I think I use all of the options from this kernel section, apart from the atomic test...

Here the "hacking" section of the currently running core :

```
# Kernel hacking

#

CONFIG_TRACE_IRQFLAGS_SUPPORT=y

CONFIG_PRINTK_TIME=y

CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4

# CONFIG_ENABLE_WARN_DEPRECATED is not set

CONFIG_ENABLE_MUST_CHECK=y

CONFIG_FRAME_WARN=2048

CONFIG_MAGIC_SYSRQ=y

CONFIG_STRIP_ASM_SYMS=y

# CONFIG_UNUSED_SYMBOLS is not set

CONFIG_DEBUG_FS=y

CONFIG_HEADERS_CHECK=y

CONFIG_DEBUG_SECTION_MISMATCH=y

CONFIG_DEBUG_KERNEL=y

CONFIG_DEBUG_SHIRQ=y

CONFIG_LOCKUP_DETECTOR=y

CONFIG_HARDLOCKUP_DETECTOR=y

# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set

CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0

# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set

CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0

CONFIG_DETECT_HUNG_TASK=y

# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set

CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0

CONFIG_SCHED_DEBUG=y

CONFIG_SCHEDSTATS=y

CONFIG_TIMER_STATS=y

CONFIG_DEBUG_OBJECTS=y

CONFIG_DEBUG_OBJECTS_SELFTEST=y

CONFIG_DEBUG_OBJECTS_FREE=y

CONFIG_DEBUG_OBJECTS_TIMERS=y

CONFIG_DEBUG_OBJECTS_WORK=y

CONFIG_DEBUG_OBJECTS_RCU_HEAD=y

CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y

CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1

CONFIG_SLUB_DEBUG_ON=y

CONFIG_SLUB_STATS=y

CONFIG_DEBUG_KMEMLEAK=y

CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=400

# CONFIG_DEBUG_KMEMLEAK_TEST is not set

# CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF is not set

CONFIG_DEBUG_PREEMPT=y

CONFIG_DEBUG_RT_MUTEXES=y

CONFIG_DEBUG_PI_LIST=y

CONFIG_RT_MUTEX_TESTER=y

CONFIG_DEBUG_SPINLOCK=y

CONFIG_DEBUG_MUTEXES=y

# CONFIG_DEBUG_LOCK_ALLOC is not set

# CONFIG_PROVE_LOCKING is not set

CONFIG_SPARSE_RCU_POINTER=y

# CONFIG_LOCK_STAT is not set

CONFIG_TRACE_IRQFLAGS=y

CONFIG_DEBUG_SPINLOCK_SLEEP=y

CONFIG_DEBUG_LOCKING_API_SELFTESTS=y

CONFIG_STACKTRACE=y

CONFIG_DEBUG_KOBJECT=y

CONFIG_DEBUG_BUGVERBOSE=y

CONFIG_DEBUG_INFO=y

# CONFIG_DEBUG_INFO_REDUCED is not set

CONFIG_DEBUG_VM=y

CONFIG_DEBUG_VIRTUAL=y

# CONFIG_DEBUG_WRITECOUNT is not set

CONFIG_DEBUG_MEMORY_INIT=y

CONFIG_DEBUG_LIST=y

CONFIG_TEST_LIST_SORT=y

CONFIG_DEBUG_SG=y

CONFIG_DEBUG_NOTIFIERS=y

CONFIG_DEBUG_CREDENTIALS=y

CONFIG_ARCH_WANT_FRAME_POINTERS=y

CONFIG_FRAME_POINTER=y

# CONFIG_BOOT_PRINTK_DELAY is not set

# CONFIG_RCU_TORTURE_TEST is not set

CONFIG_RCU_CPU_STALL_DETECTOR=y

CONFIG_RCU_CPU_STALL_TIMEOUT=60

CONFIG_RCU_CPU_STALL_DETECTOR_RUNNABLE=y

CONFIG_RCU_CPU_STALL_VERBOSE=y

CONFIG_KPROBES_SANITY_TEST=y

CONFIG_BACKTRACE_SELF_TEST=m

# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set

# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set

# CONFIG_LKDTM is not set

CONFIG_CPU_NOTIFIER_ERROR_INJECT=m

CONFIG_FAULT_INJECTION=y

CONFIG_FAILSLAB=y

CONFIG_FAIL_PAGE_ALLOC=y

CONFIG_FAIL_MAKE_REQUEST=y

CONFIG_FAIL_IO_TIMEOUT=y

# CONFIG_FAULT_INJECTION_DEBUG_FS is not set

CONFIG_LATENCYTOP=y

CONFIG_SYSCTL_SYSCALL_CHECK=y

CONFIG_DEBUG_PAGEALLOC=y

CONFIG_USER_STACKTRACE_SUPPORT=y

CONFIG_NOP_TRACER=y

CONFIG_HAVE_FTRACE_NMI_ENTER=y

CONFIG_HAVE_FUNCTION_TRACER=y

CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y

CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y

CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y

CONFIG_HAVE_DYNAMIC_FTRACE=y

CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y

CONFIG_HAVE_SYSCALL_TRACEPOINTS=y

CONFIG_HAVE_C_RECORDMCOUNT=y

CONFIG_TRACER_MAX_TRACE=y

CONFIG_RING_BUFFER=y

CONFIG_FTRACE_NMI_ENTER=y

CONFIG_EVENT_TRACING=y

CONFIG_EVENT_POWER_TRACING_DEPRECATED=y

CONFIG_CONTEXT_SWITCH_TRACER=y

CONFIG_RING_BUFFER_ALLOW_SWAP=y

CONFIG_TRACING=y

CONFIG_GENERIC_TRACER=y

CONFIG_TRACING_SUPPORT=y

CONFIG_FTRACE=y

CONFIG_FUNCTION_TRACER=y

CONFIG_FUNCTION_GRAPH_TRACER=y

CONFIG_IRQSOFF_TRACER=y

CONFIG_PREEMPT_TRACER=y

CONFIG_SCHED_TRACER=y

CONFIG_FTRACE_SYSCALLS=y

CONFIG_BRANCH_PROFILE_NONE=y

# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set

# CONFIG_PROFILE_ALL_BRANCHES is not set

CONFIG_STACK_TRACER=y

CONFIG_BLK_DEV_IO_TRACE=y

CONFIG_KPROBE_EVENT=y

CONFIG_DYNAMIC_FTRACE=y

CONFIG_FUNCTION_PROFILER=y

CONFIG_FTRACE_MCOUNT_RECORD=y

CONFIG_FTRACE_SELFTEST=y

CONFIG_FTRACE_STARTUP_TEST=y

CONFIG_EVENT_TRACE_TEST_SYSCALLS=y

CONFIG_MMIOTRACE=y

# CONFIG_MMIOTRACE_TEST is not set

# CONFIG_RING_BUFFER_BENCHMARK is not set

# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set

# CONFIG_BUILD_DOCSRC is not set

CONFIG_DYNAMIC_DEBUG=y

CONFIG_DMA_API_DEBUG=y

# CONFIG_ATOMIC64_SELFTEST is not set

# CONFIG_SAMPLES is not set

CONFIG_HAVE_ARCH_KGDB=y

CONFIG_KGDB=y

CONFIG_KGDB_SERIAL_CONSOLE=y

CONFIG_KGDB_TESTS=y

CONFIG_KGDB_TESTS_ON_BOOT=y

CONFIG_KGDB_TESTS_BOOT_STRING="V1F100"

CONFIG_KGDB_LOW_LEVEL_TRAP=y

CONFIG_KGDB_KDB=y

CONFIG_KDB_KEYBOARD=y

CONFIG_HAVE_ARCH_KMEMCHECK=y

CONFIG_TEST_KSTRTOX=m

CONFIG_STRICT_DEVMEM=y

CONFIG_X86_VERBOSE_BOOTUP=y

CONFIG_EARLY_PRINTK=y

# CONFIG_EARLY_PRINTK_DBGP is not set

CONFIG_DEBUG_STACKOVERFLOW=y

CONFIG_DEBUG_STACK_USAGE=y

CONFIG_DEBUG_PER_CPU_MAPS=y

# CONFIG_X86_PTDUMP is not set

CONFIG_DEBUG_RODATA=y

# CONFIG_DEBUG_RODATA_TEST is not set

# CONFIG_DEBUG_SET_MODULE_RONX is not set

# CONFIG_DEBUG_NX_TEST is not set

CONFIG_IOMMU_DEBUG=y

# CONFIG_IOMMU_STRESS is not set

CONFIG_IOMMU_LEAK=y

CONFIG_HAVE_MMIOTRACE_SUPPORT=y

CONFIG_X86_DECODER_SELFTEST=y

CONFIG_IO_DELAY_TYPE_0X80=0

CONFIG_IO_DELAY_TYPE_0XED=1

CONFIG_IO_DELAY_TYPE_UDELAY=2

CONFIG_IO_DELAY_TYPE_NONE=3

CONFIG_IO_DELAY_0X80=y

# CONFIG_IO_DELAY_0XED is not set

# CONFIG_IO_DELAY_UDELAY is not set

# CONFIG_IO_DELAY_NONE is not set

CONFIG_DEFAULT_IO_DELAY_TYPE=0

CONFIG_DEBUG_BOOT_PARAMS=y

CONFIG_CPA_DEBUG=y

# CONFIG_OPTIMIZE_INLINING is not set

CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y
```

I choose the XZ-compression and a preemptible-kernel (low-latency desktop), if that would matter...

Please, find below some of the configs as well :

/etc/make.conf :

```
# These settings were set by the catalyst build script that automatically

# built this stage.

# Please consult /usr/share/portage/config/make.conf.example for a more

# detailed example.

CFLAGS="-march=core2 -O2 -pipe -mcx16 -msahf -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=core2" 

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j5"

CHOST="x86_64-pc-linux-gnu"

# These are the USE flags that were used in addition to what is provided by the

# profile used for building.

# USE="mmx sse sse2"

# Updates/Portage Sync :

GENTOO_MIRRORS="http://distfiles.gentoo.bg/"

SYNC="rsync://rsync.cz.gentoo.org/gentoo-portage"

# X.org

INPUT_DEVICES="evdev synaptics"

VIDEO_CARDS="nvidia"

ALSA_CARDS="hda-intel"

# Overlays Variable :

# source /var/lib/layman/make.conf

# USE-Flags Section :

HARDWARE="amd64 64bit sse3 ssse3 sse4 sse4a sse5 acpi apic smp usb hddtemp lm_sensors"

SYSTEM="cxx fortran nptl nptlonly ipc posix udev fam hal dbus fontconfig truetype truetype-fonts unicode nls jadetex java javascript lua perl pcre python ruby tcpd clamav chm colordiff gmp gnustep kerberos mmap sharedmem profile readline sound symlink xinetd"  

FILE_SYSTEMS="btrfs reiser4 reiserfs jfs xfs fat hfs ntfs"

NVIDIA="opengl opencl dga dri aiglx glx nvidia vdpau xvmc xv"

XORG="X xorg xosd xscreensaver xcomposite xcb xft fbcon glitz svg svga vesa udev"

AUDIO="gstreamer ao alsa oss osc esd pulseaudio openal nas portaudio audiofile sdl sndfile cdda cddb cdr cdrom cdrdao cdparanoia encode flac lame mp3 lash theora vorbis xine ogg libcanberra musepack modplug wavpack"

VIDEO="mpeg ffmpeg v4l v4l2 css dvd dvdr dvdread mp4 divx4linux xvid matroska x264 dts a52 aac xvideo asf wmf win32codecs avi real libv4l mad vidix quicktime mplayer vcd skins amr"

IMAGE="corefonts cairo aalib djvu enscript gd gif gimp tiff png jpeg jpeg2k mng openexr exif jbig raw xpm pdf imagemagick gphoto2 imlib gimp libcaca icu iconv wxwindows wxwidgets graphviz lcms fpx gd tcltk" 

GNOME="applet automount branding gnome gnome-keyring gtk gtkspell glade glib gb gdm gdbm gdu gcrypt gzip nautilus libnotify libgda mhash extras expat mime themes pango policykit cracklib crypt beagle mono bonobo gecko firefox sasl spell sqlite xml xml2 startup-notification nsplugin tk device-mapper ssl syslog motif bzip2 lzma zlib assistant"   

NETWORKING="sockets ftp gnutls idn mtp curl geoip networkmanager libwww socks5 rss git bazaar cvs subversion"

CONSOLE="ncurses consolekit vim-syntax bash-completion gpm offensive"

NOUSE="-3dnow -3dnowext -apm -pcmcia -cups -slp -samba -evo -eds -kde -arts -qt3support -qt3 -qt4 -dhcpcd -ipv6 -avahi -zeroconf -rdesktop -remote -snmp -scanner -smartcard -wifi -dso extensions"

USE="${HARDWARE} ${SYSTEM} ${FILE_SYSTEMS} ${NVIDIA} ${XORG} ${AUDIO} ${VIDEO} ${IMAGE} ${GNOME} ${NETWORKING} ${CONSOLE} ${NOUSE}"
```

package.keywords :

```
sys-kernel/gentoo-sources ~amd64

net-wireless/bluez ~amd64

net-wireless/blueman ~amd64

x11-drivers/nvidia-drivers ~amd64

www-client/firefox ~amd64

media-libs/libpng ~amd64

net-libs/xulrunner ~amd64

www-plugins/adobe-flash ~amd64

net-im/skype ~amd64

net-p2p/deluge ~amd64

sys-block/gparted ~amd64

app-cdr/acetoneiso ~amd64

x11-themes/gtk-engines-nodoka ~amd64

dev-python/cssutils ~amd64

dev-python/pyicu ~amd64

app-portage/flaggie ~amd64

sys-fs/hfsplusutils **

sys-fs/diskdev_cmds **
```

package.use :

```
dev-lang/python -ipv6

dev-lang/python:2.7 tk

x11-base/xorg-server udev -ipv6

x11-libs/cairo cleartype

media-libs/freetype -bindist

www-plugins/adobe-flash -32bit -multilib -nspluginwrapper 64bit 

media-sound/pulseaudio -ipv6 

gnome-base/gnome-vfs -ipv6

gnome-base/gnome-applets -ipv6
```

I think I cannot do anything more on my own to fix the issue, I think I did everything I could think of...

Would you please point me out any error/wrong sections/mismatches or just improper stuff in the configs above, if any ?

I'm starting to doubt, that It's me who cannot get the system right  :Smile: 

Any message/answer/help will be greatly appreciated !

Thank you all in advance,

Cheers

----------

## Unixworld

Oh, well... I can now confirm, it IS kernel 2.6.39's fault...

I removed kernel's ~amd64 flag, pulled the sources for 2.6.38-r6

and even with the most basic kernel config (just a couple of drivers

and blutooth-subsection, of course) the (not so) magic mouse started

immediately at Gnome's login screen   :Shocked: 

No other modds/configs/or anything was done except for a basic kernel config.

I notced that under 2.6.38-r6, the two sections "l2cap" and "sco"

can be built as modules (according to official guide,too), 

while under 2.6.39, these two can only be built-in [*] ?!

```
# lsmod

Module                  Size  Used by

hid_magicmouse          5119  0 

hidp                   11392  1 

snd_seq_dummy           1255  0 

snd_seq_oss            23453  0 

snd_seq_midi_event      4652  1 snd_seq_oss

snd_seq                41046  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event

snd_seq_device          4531  3 snd_seq_dummy,snd_seq_oss,snd_seq

snd_pcm_oss            32134  0 

snd_mixer_oss          12473  1 snd_pcm_oss

sco                     7755  2 

bnep                    9592  2 

rfcomm                 28224  4 

l2cap                  31155  21 hidp,bnep,rfcomm

nvidia              10482115  30 

snd_hda_codec_realtek   273912  1 

snd_hda_intel          18304  2 

snd_hda_codec          51483  2 snd_hda_codec_realtek,snd_hda_intel

snd_hwdep               5276  1 snd_hda_codec

snd_pcm                60796  3 snd_pcm_oss,snd_hda_intel,snd_hda_codec

snd_timer              15594  2 snd_seq,snd_pcm

r8169                  31333  0 

btusb                   9369  4 

snd                    46320  15 snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer

mii                     3298  1 r8169

snd_page_alloc          6017  2 snd_hda_intel,snd_pcm
```

Above module-extract from the currently running 2.6.38-r6

I do hope that kernel devs will notice and fix this bluetooth-issue in 2.6.39

Cheers

----------

## Unixworld

Same thing with the latest 2.6.39 kernel as well :

```
Linux BlackSun 2.6.39-gentoo-r3 #1 Mon Jul 25 23:40:04 EEST 2011 x86_64 Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz GenuineIntel GNU/Linux
```

Where's the culprit, has anyone got this machinery work under the 2.6.39*-branch ?

----------

## BlueDragonX

I encountered the same issue with my upgrade to 2.6.39. I'll be sitting on 2.6.38 until this is fixed.

----------

## ralpho

kernel 3.14.16 same issue.

----------

