From: Steven L. <sl...@uc...> - 2003-03-14 08:37:44
|
hello, here is a list of hacks that i had to do to build a kernel for the ipod on my ppc. i hope this helps other people, and hopefully some of it will get generalized into the main release. 1) get version 1.1 of the patch_fw.c which supports big endian machines 2) get cvs module 'toolchain' from cvs.uclibc.org:/var/cvs. cd to gcc-2.95, edit Makefile accordingly, and 'make'. gcc-3.2.1 does not work (it makes a bogus kernel). after a long time this will give you compiler/toolchain and uclibc. add (installation dir)/bin to your PATH. 3) unpack 2.4.20 kernel, apply uClinux-2.4.20-uc0.diff.gz, cvs co the ipodlinux stuff (directions on site). make sure when you cvs co you remove the files it doesn't want to overwrite so that it overwrites them:-p 4) edit kernel Makefile. line 28: set CROSS_COMPILE to 'arm-uclibc-'. line 39, set LD = $(CROSS_COMPILE)ld --no-warn-mismatch'. 5) drivers/char/keyboard.c +287 -- whoever wrote this is on something illegal. just comment out the whole bit (!define() is not defined, console_tasklet is not defined...) from before the #ifdef to after the #endif. 6) arch/armnommu/kernel/setup.c +418 -- this should read '__initdata' where it now reads '__init'. 7) now we can cp the ipod def-config to .config, make oldconfig, and make dep. then make, make modules. might wanna add the appropriate CONFIG_IEEE1394*=m lines to .config first, though. 8) follow instructions on site for backing up, patching, and installing firmware. my ipod boots:) my friend has replicated this. 9) somehow get umsdos to /work/. still on this step. note insmod sbp2 sbp2_max_speed=0 helped a lot to reduce crashes while dding, and is still 100megs/sec (faster than the disk in the 'pod by far). hope this is of help, feel free to ask me any questions. Steven |