Появилось время чтобы разобраться.
В общем на вышеуказаную команду оно меня благополучно послало нафиг:
Code
book:/usr/src/linux-2.6.9# ./configure --with-gcc=3.3
bash: ./configure: No such file or directory
book:/usr/src/linux-2.6.9#
Решение проблемы оказалось довольно нетривиальным.
Мне бы в голову как-то не пришло править исходник руками, но это, как оказалось простейший выход.
Дело в том, что спецификация малость поменялась со времен третьего gcc, а сорцы подправить никому в голову как-то не пришло.
Итак вот собственно решение:Внимательно смотрим на две первых ошибки (остальные тянуться за ними автоматически):
Code
In file included from drivers/i2c/i2c-core.c:29:
include/linux/i2c.h:58: error: array type has incomplete element type
include/linux/i2c.h:205: error: array type has incomplete element type
открываем этот фаил и ищем соответствующие строки
Code
include/linux/i2c.h
58 >> struct i2c_msg msg меняем на struct i2c_msg *msg
205 >> struct i2c_msg [b]msgs[][/b] меняем на struct i2c_msg *msgs
пробуем компилить, но опять натыкаемся на такую-же ошибку:
Code
***
CC drivers/video/aty/radeon_base.o
In file included from drivers/video/aty/radeon_base.c:64:
include/linux/fb.h:751: error: array type has incomplete element type
make[4]: *** [drivers/video/aty/radeon_base.o] Ошибка 1
make[3]: *** [drivers/video/aty] Ошибка 2
make[2]: *** [drivers/video] Ошибка 2
make[1]: *** [drivers] Ошибка 2
make[1]: Leaving directory `/usr/src/linux-2.6.9'
make: *** [debian/stamp-build-kernel] Ошибка 2
Повторяем финт ушами:
Code
include/linux/fb.h
751>> struct fb_videomode vesa_modes[] >> struct fb_videomode *vesa_modes
Но здесь получаем что-то новенькое:
Code
drivers/video/modedb.c:255: error: conflicting types for ‘vesa_modes’
include/linux/fb.h:751: error: previous declaration of ‘vesa_modes’ was here
make[3]: *** [drivers/video/modedb.o] Ошибка 1
make[2]: *** [drivers/video] Ошибка 2
make[1]: *** [drivers] Ошибка 2
make[1]: Leaving directory `/usr/src/linux-2.6.9'
make: *** [debian/stamp-build-kernel] Ошибка 2
Не особо пугаемся и по привычке проделываем то-же самое:
Code
drivers/video/modedb.c
255>> struct fb_videomode vesa_modes[] >> struct fb_videomode *vesa_modes
В результате после мучительного ожидания наконец получаем
Code
dpkg-deb: сборка пакета linux-image-2.6.9 в файл ../linux-image-2.6.9_lastbuild.1.0_i386.deb.
make[1]: Leaving directory `/usr/src/linux-2.6.9'
====== making target stamp-kernel-image [new prereqs: linux-image-2.6.9 linux-image-2.6.9]======
This is kernel package version 10.067.
echo done > stamp-kernel-image
====== making target kernel_image [new prereqs: stamp-configure stamp-build-kernel stamp-kernel-image]======
This is kernel package version 10.067.
И файлик linux-image-2.6.9_lastbuild.1.0_i386.deb на выходе.