Posts Tagged ‘mbp’

Debian Unstable with Kernel 3.8 – MBP 6,2

marzo 28, 2013

Introduction

I’m going to describe how to install Kernel 3.8 from Debian experimental repositories into a Debian Unstable from March 2013 (which it’s current kernel version is 3.2).

What I want to test is if I can use my MacBookPro 6,2 integrated Intel Graphics card without having to apply any patch to the kernel as I had already done.

System update

First of all what I have done is updated my system with:

apt-get update
apt-get dist-upgrade

Pinning setup

So, once updated the system we need to setup pinning. As explained in Debian Wiki – How To Upgrade kernel we add some lines to preferences file so that experimental packages aren’t used as default.

cat >> /etc/apt/preferences << EOF
Package: *
Pin: release o=Debian,a=experimental
Pin-Priority: 102
EOF

Now we are going to add the experimental repository to sources list with just:

echo "deb http://ftp.de.debian.org/debian experimental main" >> /etc/apt/sources.list

and we apply changes with:

apt-get update

Kernel installation

In my case I want to install the latest amd64 kernel so I need to issue:

apt-get -t experimental install linux-image-3.8-trunk-amd64

You can check latest versions at  packages debian experimental linux-image .

Once rebooted (and connected via cable) I’m going to install linux-headers so that I can install wl module so that wireless works too:

sudo apt-get install -t experimental linux-headers-3.8
m-a prepare

After some tests I realised that I needed to uninstall virtualbox before doing m-a prepare with:

apt-get remove virtualbox

.

Then I realised that I needed a fixed version of module-assistant which can be downloaded from this bug: 697360 because kernel version was not being detected ok.

Wireless install

m-a a-i broadcom-sta

But, even then, the build failed.

for templ in ; do \
    cp $templ `echo $templ \
| sed -e 's/_KVERS_/3.8-trunk-amd64/g'` ; \
  done
for templ in `ls debian/*.modules.in` ; do \
    test -e ${templ%.modules.in}.backup \
|| cp ${templ%.modules.in} \
${templ%.modules.in}.backup 2>/dev/null \
|| true; \
    sed -e 's/##KVERS##/3.8-trunk-amd64/g \
;s/#KVERS#/3.8-trunk-amd64/g \
; s/_KVERS_/3.8-trunk-amd64/g \
; s/##KDREV##/3.8.3-1~experimental.1/g \
; s/#KDREV#/3.8.3-1~experimental.1/g \
; s/_KDREV_/3.8.3-1~experimental.1/g  \
'  ${templ%.modules.in}; \
  done
dh_clean
/usr/bin/make clean KBUILD=/lib/modules/3.8-trunk-amd64/build KVERS=3.8-trunk-amd64
make[1]: se ingresa al directorio `/usr/src/modules/broadcom-sta'
KBUILD_NOPEDANTIC=1 make -C /lib/modules/3.8-trunk-amd64/build M=/usr/src/modules/broadcom-sta clean
make[2]: se ingresa al directorio `/usr/src/linux-headers-3.8-trunk-amd64'
CFG80211 API is prefered for this kernel version
  CLEAN   /usr/src/modules/broadcom-sta/.tmp_versions
make[2]: se sale del directorio `/usr/src/linux-headers-3.8-trunk-amd64'
make[1]: se sale del directorio `/usr/src/modules/broadcom-sta'
 debian/rules \
KVERS=3.8-trunk-amd64 \
KSRC=/lib/modules/3.8-trunk-amd64/build \
KDREV=3.8.3-1~experimental.1 kdist_image
/usr/bin/make  -f debian/rules kdist_clean kdist_config binary-modules
make[1]: se ingresa al directorio `/usr/src/modules/broadcom-sta'
for templ in ; do \
    cp $templ `echo $templ \
| sed -e 's/_KVERS_/3.8-trunk-amd64/g'` ; \
  done
for templ in `ls debian/*.modules.in` ; do \
    test -e ${templ%.modules.in}.backup \
|| cp ${templ%.modules.in} ${templ%.modules.in}.backup 2>/dev/null || true; \
    sed -e 's/##KVERS##/3.8-trunk-amd64/g ;\
s/#KVERS#/3.8-trunk-amd64/g ;\
 s/_KVERS_/3.8-trunk-amd64/g ;\
 s/##KDREV##/3.8.3-1~experimental.1/g ;\
 s/#KDREV#/3.8.3-1~experimental.1/g ;\
 s/_KDREV_/3.8.3-1~experimental.1/g  \
'  ${templ%.modules.in}; \
  done
dh_clean
/usr/bin/make clean KBUILD=/lib/modules/3.8-trunk-amd64/build KVERS=3.8-trunk-amd64
make[2]: se ingresa al directorio `/usr/src/modules/broadcom-sta'
KBUILD_NOPEDANTIC=1 make -C /lib/modules/3.8-trunk-amd64/build M=/usr/src/modules/broadcom-sta clean
make[3]: se ingresa al directorio `/usr/src/linux-headers-3.8-trunk-amd64'
CFG80211 API is prefered for this kernel version
/usr/src/modules/broadcom-sta/Makefile:80: Neither CFG80211 nor Wireless Extension is enabled in kernel
make[3]: se sale del directorio `/usr/src/linux-headers-3.8-trunk-amd64'
make[2]: se sale del directorio `/usr/src/modules/broadcom-sta'
make[1]: No se hace nada para `kdist_config'.
dh_testdir
dh_testroot
dh_prep
# Build and install the module
make -C /lib/modules/3.8-trunk-amd64/build M=/usr/src/modules/broadcom-sta
make[2]: se ingresa al directorio `/usr/src/linux-headers-3.8-trunk-amd64'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
Kernel architecture is X86_64
  LD      /usr/src/modules/broadcom-sta/built-in.o
  CC [M]  /usr/src/modules/broadcom-sta/src/shared/linux_osl.o
  CC [M]  /usr/src/modules/broadcom-sta/src/wl/sys/wl_linux.o
  CC [M]  /usr/src/modules/broadcom-sta/src/wl/sys/wl_iw.o
  CC [M]  /usr/src/modules/broadcom-sta/src/wl/sys/wl_cfg80211.o
/usr/src/modules/broadcom-sta/src/wl/sys/wl_cfg80211.c: In function ‘wl_cfg80211_join_ibss’:
/usr/src/modules/broadcom-sta/src/wl/sys/wl_cfg80211.c:\
757:26: error: ‘struct cfg80211_ibss_params’ has no member named ‘channel’
/usr/src/modules/broadcom-sta/src/wl/sys/wl_cfg80211.c:\
 At top level:
/usr/src/modules/broadcom-sta/src/wl/sys/wl_cfg80211.c:\
1664:2: warning: initialization from incompatible pointer type [enabled by default]
/usr/src/modules/broadcom-sta/src/wl/sys/wl_cfg80211.c:\
1664:2: warning: (near initialization for ‘wl_cfg80211_ops.set_tx_power’) [enabled by default]
/usr/src/modules/broadcom-sta/src/wl/sys/wl_cfg80211.c:\
1665:2: warning: initialization from incompatible pointer type [enabled by default]
/usr/src/modules/broadcom-sta/src/wl/sys/wl_cfg80211.c:\
1665:2: warning: (near initialization for ‘wl_cfg80211_ops.get_tx_power’) [enabled by default]
/usr/src/modules/broadcom-sta/src/wl/sys/wl_cfg80211.c:\
 In function ‘wl_update_bss_info’:
/usr/src/modules/broadcom-sta/src/wl/sys/wl_cfg80211.c:\
2092:11: error: ‘struct cfg80211_bss’ has no member named ‘information_elements’
/usr/src/modules/broadcom-sta/src/wl/sys/wl_cfg80211.c:\
2093:15: error: ‘struct cfg80211_bss’ has no member named ‘len_information_elements’
make[5]: *** [/usr/src/modules/broadcom-sta/src/wl/sys/wl_cfg80211.o] Error 1
make[4]: *** [_module_/usr/src/modules/broadcom-sta] Error 2
make[3]: *** [sub-make] Error 2
make[2]: *** [all] Error 2
make[2]: se sale del directorio `/usr/src/linux-headers-3.8-trunk-amd64'
make[1]: *** [binary-modules] Error 2
make[1]: se sale del directorio `/usr/src/modules/broadcom-sta'
make: *** [kdist_build] Error 2

Even trying to force broadcom-sta-source from experimental branch did not work because I had already the last package version.

In the official broadcom sta site: http://www.broadcom.com/support/802.11/linux_sta.php the last version is from 2011 :(. There’s an email for making questions.

I’ll probably ask there if they plan to release versions adapted to 3.8 or not.

So I’m going to revert to my former 3.2.21 custom kernel for the moment.

About Intel i915

As far as I’ve tried the Intel thing did not work

If I remove the four outb lines from the grub boot online editing and I boot then nouveau driver was used instead of intel. In the logs I notice:

'2' invalid for lvds_channel

If the four outb lines remain then I get a blank screen of no use.

Anuncio publicitario