I am trying to get Roman Zippel's version of the hfsplus driver working on an iBook2 under Yellowdog Linux 3.0. That comes with the kernel 2.4.20, too low a number, so according to his instructions I have to apply the hfsplus patch then rebuild the kernel. I am following Roman's instructions precisely together with Yellowdog's instructions for how to rebuild the kernel. I took the original .config file, and did "make xconfig", where the only change I made to the original configuration was to make hfs and hfsplus filesystem support included as part of the kernel - not as separate modules (my iBook has partitions for linux, os9 and osX, in ext3, hfs, and hfsplus formats respectively).
Then came "make dep", "make clean" and finally the exciting "make vmlinuz". However this failed with the following error messages, coming from hfsplus:
make[2]: Entering directory `/usr/src/linux-2.4.20/fs/hfsplus'
make all_targets
make[3]: Entering directory `/usr/src/linux-2.4.20/fs/hfsplus'
gcc -D__KERNEL__ -I/usr/src/linux-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -I/usr/src/linux-2.4.20/arch/ppc -fsigned-char -msoft-float -pipe
-ffixed-r2 -Wno-uninitialized -mmultiple -mstring -g -nostdinc
-iwithprefix include -DKBUILD_BASENAME=super -c -o super.o super.c super.c:267: unknown field `alloc_inode' specified in initializer
super.c:267: warning: initialization from incompatible pointer type super.c:268: unknown field `destroy_inode' specified in initializer super.c:268: warning: initialization from incompatible pointer type super.c: In function `hfsplus_init_once':
super.c:503: warning: implicit declaration of function `inode_init_once' make[3]: *** [super.o] Error 1
make[3]: Leaving directory `/usr/src/linux-2.4.20/fs/hfsplus'
make[2]: *** [first_rule] Error 2
make[2]: Leaving directory `/usr/src/linux-2.4.20/fs/hfsplus'
make[1]: *** [_subdir_hfsplus] Error 2
make[1]: Leaving directory `/usr/src/linux-2.4.20/fs'
make: *** [_dir_fs] Error 2
Anyone any idea what is going wrong here? Any easy way to fix things?
I also tried installing a ready built kernel 2.4.24 (custom made for iBook, BenH kernel) from ppckernel.org and following the other [easy, fast] method given by Roman for the case that you have a high enough kernel, but this also did not work. However it is more likely that I made some silly mistakes in that case, so I don't include the error messages. What remains to try is to take a newer kernel source, apply the patch, and build: is that worth trying?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am trying to get Roman Zippel's version of the hfsplus driver working on an iBook2 under Yellowdog Linux 3.0. That comes with the kernel 2.4.20, too low a number, so according to his instructions I have to apply the hfsplus patch then rebuild the kernel. I am following Roman's instructions precisely together with Yellowdog's instructions for how to rebuild the kernel. I took the original .config file, and did "make xconfig", where the only change I made to the original configuration was to make hfs and hfsplus filesystem support included as part of the kernel - not as separate modules (my iBook has partitions for linux, os9 and osX, in ext3, hfs, and hfsplus formats respectively).
Then came "make dep", "make clean" and finally the exciting "make vmlinuz". However this failed with the following error messages, coming from hfsplus:
make[2]: Entering directory `/usr/src/linux-2.4.20/fs/hfsplus'
make all_targets
make[3]: Entering directory `/usr/src/linux-2.4.20/fs/hfsplus'
gcc -D__KERNEL__ -I/usr/src/linux-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -I/usr/src/linux-2.4.20/arch/ppc -fsigned-char -msoft-float -pipe
-ffixed-r2 -Wno-uninitialized -mmultiple -mstring -g -nostdinc
-iwithprefix include -DKBUILD_BASENAME=super -c -o super.o super.c super.c:267: unknown field `alloc_inode' specified in initializer
super.c:267: warning: initialization from incompatible pointer type super.c:268: unknown field `destroy_inode' specified in initializer super.c:268: warning: initialization from incompatible pointer type super.c: In function `hfsplus_init_once':
super.c:503: warning: implicit declaration of function `inode_init_once' make[3]: *** [super.o] Error 1
make[3]: Leaving directory `/usr/src/linux-2.4.20/fs/hfsplus'
make[2]: *** [first_rule] Error 2
make[2]: Leaving directory `/usr/src/linux-2.4.20/fs/hfsplus'
make[1]: *** [_subdir_hfsplus] Error 2
make[1]: Leaving directory `/usr/src/linux-2.4.20/fs'
make: *** [_dir_fs] Error 2
Anyone any idea what is going wrong here? Any easy way to fix things?
I also tried installing a ready built kernel 2.4.24 (custom made for iBook, BenH kernel) from ppckernel.org and following the other [easy, fast] method given by Roman for the case that you have a high enough kernel, but this also did not work. However it is more likely that I made some silly mistakes in that case, so I don't include the error messages. What remains to try is to take a newer kernel source, apply the patch, and build: is that worth trying?