Компиляция ядра

  1. Качаем toolchain и распаковываем его в /opt.
    http://alt84.ru/pub_storage/ftp.ingenic.cn/3sw/01linux/00toolchain/mipseltools-gcc412-glibc261.tar.bz2
  2. Добавляем тулчейн в $PATH
    export PATH=/opt/mipseltools-gcc412-glibc261/bin:$PATH
  3. Качаем ядро с конфигурацией xz0032, например Влада из файлов
  4. Переходим к ядру и выполняем: make xz0032_defconfig ARCH=mips
  5. Затем выполняем: make -j<количество потоков, обычно кол-во ядер+1>
    Обычно, количество потоков это количество ядер процессора + 1. Например make -j5
    Если сборка фейлится - ищем причину и вырубаем её нафиг в ядре. Во Владовом, основанном на ядре японца, вырезанно очень много всего, поэтому некоторые вещи работают только как модули.
  6. Выполняем: make uImage
    Ядро от whitequark не умеет создавать uImage, по сему смотрим чуть выше в обсуждении, я спрашивал об этом, и скинул кусок Makefile из ядра Влада, где uImage работает. По сути это только вызов mkimage на vmlinux.bin с нужными параметрами.
  7. make modules_install INSTALL_MOD_PATH=/путь/к/вашей/rootfs/
  8. cp arch/mips/boot/uImage /путь/к/jzboot/
  9. Прошиваемся jzboot, или сразу загружаем свое ядро в память в 0x80100000 и прыгаем на адрес 0x80600000. Здесь я, возможно, вру, если что - mkimage задает точки входа и загрузки ядра, он их вам напишет.
Оригинал тут https://groups.google.com/d/msg/vogeeky/gAH_4hEQX9w/VBAQUkrJmpkJ
Спасибо пользователю rzk
Comments