Compat wireless für Chumy Hacker Board übersetzen

Für CHB (Chumby Hacker Board) gibts leider nur einen etwas älteren 2.6.28 Kernel, der evtl. nicht die gewünschten Treiber für USB-Wlan-Adapter (z.B. atk9k-htc) enthält. Diese Änleitung beschreibt, wie man mit einer übersetzten Buildroot-Umgebung compat-wireless für CHB übersetzt.

Schritt-für-Schritt

  1. Herunterladen:
    wget "http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2" -O - | tar -xvj
  2. Gewünschten Treiber auswählen:
    compat-wireless-2012-05-10 % ./scripts/driver-select ath9k_htc
  3. Pfade vorbereiten
    1. Zum buildroot-Verzeichniss:
      export BR_ROOT=/pfad/zu/buildroot
    2. Zum Compiler:
      export PATH=$PATH:$BR_ROOT/output/host/usr/bin
    3. Zum fertig übersetzen Kernel
      export BR_KERNEL=$BR_ROOT/output/build/linux-2.6/
  4. Probleme beseitigen:
    1. linux/compat-2.6.29.h:42: error: conflicting types for 'atomic_t'
      #else
      typedef struct {
        volatile int counter;
      } atomic_t;
       
      #ifdef CONFIG_64BIT
      typedef struct {
        volatile long counter;
      } atomic64_t;
      #endif /* CONFIG_64BIT */

      entfernen.

  5. Übersetzen:
    make ARCH=arm CROSS_COMPILE=arm-unknown-linux-uclibcgnueabi- KLIB=$BR_KERNEL KLIB_BUILD=$BR_KERNEL -j6 
  6. Module einpacken:
    find -iname "*.ko" | xargs tar -cvjf compat_wireless_modules_`date -I`.tar.bz2