![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Compilar un un paquete de núcleo (linux-image) para debian: ejemplo de núcleo con soporte para watchdog en placas GeodeLas placas geode las ponemos con una Debian 5.0 "Lenny" i386 (es decir, 32 bits).Informaciçon necesaria: CONFIG_GEODE_WDT, make-kpkg, Debian kernel handbook: building a custom kernel from debian source Para compilar para dicho sistema, hay un chroot en uiharu; para entrar en dicho chroot: En uiharu, como root cd /src/debian5_i386/ ./go.sh.root Una vez dentro del chroot, necesitamos la configuración de debian para dicho núcleo. Quizás la manera más sencilla es simplemente compilar dicho núcleo en todas sus modalidades y luego coger el .config que nos interesa: NOTA: si no quieres perder tanto tiempo, seguramente baste con concatenar los ficheros config y config.686 que están en /usr/src/linux-kernel-package/linux-2.6-2.6.26/debian/config/i386/ y así te evitas compilar todo En el chroot de debian5 cd /usr/src mkdir linux-kernel-package cd linux-kernel-package apt-get source linux-2.6 cd linux-2.6-2.6.26/ dpkg-checkbuilddeps apt-get install build-essential debhelper kernel-package python gcc-4.1 python-central xmlto fakeroot fakeroot debian/rules binary Una vez que ha terminado de compilar, preparamos y compilamos el núcleo con las modifiacioens que queremos: En el chroot de debian5 cd /usr/src apt-get install linux-source-2.6 tar -xvjf linux-source-2.6.26.tar.bz2 cp linux-kernel-package/linux-2.6-2.6.26/debian/build/build_i386_none_686/.config linux-source-2.6.26/ cd linux-source-2.6.26/ make oldconfig make menuconfig # Aquí activamos en CPU Subarchitecture lo de Geode LX # Aquí activamos en Watchdog lo de (M) AMD Geode # Salvamos y salimos del menuconfig # QUITAMOS EL 3DNOW (para que la imagen funcione en el qemu de uiharu) sed -i "s:\(MCYRIXIII .. MK7\) .. MGEODE_LX:\1:g" arch/x86/Kconfig.cpu # Forzamos que re-use el último timer del CS5536 si no hay ninguno libre # Ver https://groups.google.com/g/linux.kernel/c/ciEnfbgCric sed -i "s:\(if )\(.\)\(mfgpt_timers.i..avail\)\(.\):\1\2\3 || i==\2MFGPT_MAX_TIMERS-1\4\4:g" arch/x86/kernel/mfgpt_32.c # Compilamos CONCURRENCY_LEVEL=32 make deb-pkg Y esperamos a que termine de compilar el núcleo Habrá generado un paquete debian, en nuestro caso está en: /usr/src/linux-2.6.26_2.6.26-1_i386.deb Habrá que instalar dicho paquete en el equipo de destino. Nota sobre las versiones de los núcleos:
|