Компилируем ядро sunxi-linux со своими параметрами

Компилируем ядро sunxi-linux со своими параметрами

Сообщение ErshoFF » 30 сен 2014, 15:27

По мотивам:
http://cubian.org/sources/
https://romanrm.net/a10/cross-compile-kernel
Все файлы использовавшиеся для компиляции доступны здесь
Всё было проверена на
$ uname -a
Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3 x86_64 GNU/Linux


  1. Необходимые утилиты
    sudo apt-get install git build-essential fakeroot kernel-package u-boot-tools zlib1g-dev libncurses5-dev
  2. Emdebian toolchain
    sudo vi /etc/apt/sources.list

    Необходимо добавить в /etc/apt/sources.list
    deb http://www.emdebian.org/debian/ unstable main

    Затем обновляем
    sudo apt-get update

    При ошибке ": Ошибка GPG
    При ошибке ": Ошибка GPG: http://www.emdebian.org unstable InRelease: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY B5B7720097BB3B58" для добавления ключа делаем следующее
    sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com `sudo apt-get update 2>&1 | grep -o '[0-9A-Z]\{16\}$' | xargs`
    sudo apt-get update

    sudo apt-get install emdebian-archive-keyring
    sudo apt-get install gcc-4.7-arm-linux-gnueabihf
    sudo ln -sf `which arm-linux-gnueabihf-gcc-4.7 ` /usr/local/bin/arm-linux-gnueabihf-gcc

    # ^ FIXME: find/fix why the version-less filename is not created automatically
  3. Получаем исходный код ядра
    mkdir CubianKernel
    cd CubianKernel
    git clone https://github.com/mmplayer/linux-sunxi.git -b dev/sunxi-3.4 --depth=1

    Делаем свою ветку - для вноса исправлений
    cd linux-sunxi
    git checkout -b sunxi-v3.4.79-OTK110
  4. Компилируем ядро
    Очищаем дерево - если уже было компилирование
    make clean
    make mrproper
    make-kpkg clean

    Конфигурацию берем с оф.сайта Cubian
    wget https://raw.githubusercontent.com/mmplayer/sunxi-kernel-config/master/config-cubian-base-sun4i
    mv config-cubian-base-sun4i .config

    Добавляем бинарные файлы прошивок
    wget http://cubieplayer.github.io/static_files/temp/RT2870STA.dat ;\
    mkdir -p firmware/rtxx7x ; \
    cp -v RT2870STA.dat firmware/rtxx7x/
    wget https://github.com/cubieplayer/cubian-updates/blob/a10/fs/lib/firmware/3.4.79-sun4i/rtxx7x/RT2870STACard.dat ; \
    cp -v RT2870STACard.dat firmware/rtxx7x/RT2870STACard.dat

    Если надо внести правки в ядро
    sudo apt-get install libncurses-dev
    make ARCH=arm menuconfig

    Или в исходный код
    “Исправляем баг, отключающий USB-устройства
    правим файл drivers/usb/core/hub.c в двух местах исправляя 10 на 20
    /* TRSMRCY = 10 msec */
    msleep(20);

    источник


    Компилируем
    fakeroot make-kpkg --jobs 1 --arch arm --cross-compile arm-linux-gnueabihf- --append-to-version -otk110 --revision 2 --initrd kernel_image kernel_headers

    make -j1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- EXTRAVERSION=-otk110 uImage
    cp arch/arm/boot/uImage ../uImage
  5. После компиляции в каталоге на уровень выше можно найти
    linux-image-*.deb, пакет Debian c ядром;
    linux-headers-*.deb, пает Debian package с kernel headers (не нужен);
    uImage, ядро kernel вu-boot совместимом формате.
  6. Установка ядра
    Копируем linux-image-*.deb на устройство (удобно делать по sftp) и устанавливаем
    sudo dpkg -i linux-*.deb
    sudo cp /boot/uImage /boot/uImage.bak
    sudo cp uImage /boot/
  7. Перезагружаем устройство
ErshoFF

 
Автор темы
Сообщения: 68
Зарегистрирован: 20 окт 2013, 20:05

Вернуться в Cubie (debian для cubieboard и DS-110)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron