środa, 21 kwietnia 2010

WiiLTB - budujemy kernel

Zgodnie z wcześniejszymi postami moje Wii zyskało nową funkcjonalność. Debian postawiony na konsoli działa bardzo dobrze z jednym wyjątkiem - dysk usb przesadnie często się wyłącza w przypadku bezczynności i nie chce ponownie załączyć (urządzenie znika z /dev, ale nadal widoczne w lsusb). Zacząłem się zastanawiać nad opcjami kompilacji jądra pobranego z http://wiibrew.org/wiki/Wii_Linux, lsmod wskazywało brak wykorzystania modułów. Sprawdzenie zawartości /sys/bus/usb/devices/x-y/, gdzie x-y to pozycja urządzenia na szynie usb np odczytana z lsusb, nie ma katalogu power - opcje kernela zarządzania energią nie są włączone. Natknąłem się też na informację, że ohci może sprawiać problemy więc nie pozostało mi nic innego jak zbudować własny kernel.

Potrzebujemy:

Gdy mamy już wszystkie składniki musimy je gdzieś wypakować, np do ~/wii/. Następnie aplikujemy łatki na źródła jądra (zakładam że zawartość archiwum z łatkami wrzuciliśmy do katalogu ze źródłami kernela).
cd ~/wii/linux-2.6.32
patch -p1 < mikep5-patch-2.6.32-gc



Teraz dodajemy cross-compiler do ścieżki
export PATH=$PATH:/home/MOJ_UZYTKOWNIK/wii/cross-powerpc-linux-uclibc/usr/bin
Kolejnym krokiem jest skopiowanie domyślnej konfiguracji jądra
cp arch/powerpc/configs/wii_defconfig .config
i jego edycja
make ARCH=powerpc CROSS32_COMPILE=powerpc-linux- menuconfig
. Osobiście włączyłem opcje oszczędzania energii i wyłączyłem obsługę OHCI żeby pozbyć się dalszych problemów z USB (oczywiście EHCI pozostała zaznaczona), pozbyłem się też wsparcia dla IOS - i tak korzystam wyłącznie z MIKE (bootmii). Używam wyświetlacza PAL więc wypadałoby poinformować o tym fakcie kernel - na wszelki wypadek. Edytujemy
nano arch/powerpc/boot/dts/wii.dts
zgodnie z tym jakie argumenty chcemy przekazać do kernela. Zapewnienie wyświetlania w trybie PAL, a nie domyślnym NTSC ogranicza się do podmiany w wierszu 36, np
bootargs = "nobats root=/dev/mmcblk0p2 rootwait force_keyboard_port=4 video=gcnfb:60Hz,tv=PAL";
Ostatnią rzeczą jest sama kompilacja
make ARCH=powerpc CROSS32_COMPILE=powerpc-linux- CROSS_COMPILE=powerpc-linux- zImage
po czym wynik naszych radosnych poczynań możemy znaleźć w katalogu /arch/powerpc/boot - plik zImage :). Jeśli o czymś zapomniałem - poproszę o info.

Brak komentarzy:

Prześlij komentarz