October 22, 2019, 08:50:33 pm

News:

Have you visited the Allwinner Chipset wiki? - http://linux-sunxi.org/


Как пересобрать ядро CB1?

Started by LinboG, May 28, 2014, 02:43:30 am

Previous topic - Next topic

LinboG

Quote from: pistoletov on November 29, 2014, 02:17:13 pm
Ну не смертельно что бы заморачиваться с кросс компиляцией. У меня arch стоит. Или для сборки ядра это не важно.


Если у тебя стоит ARCH, то все просто:
1. Компилятор arm-linux-gnueabihf , он доступен из AUR
2. Не забудь поставить  uboot-mkimage, иначе не соберется uImage
3. Выкачай сырцы ядра отсюда
git clone -b sunxi-3.4 https://github.com/linux-sunxi/linux-sunxi.git
(прежде, конечно, поставь git)
4. Создай дефолтный конфиг (.conf)
cd linux-sunxi
sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun4i_defconfig
5. Добавь, что необходимо
sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
(поиск как в vim, через /)
6. Компилируй
sudo make -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules
(никаких 45 мин, 5 максимум 10 мин)
7. Собираешь модули к новому ядру
sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install
8. Все готово:
Ядро -- arch/arm/boot/uImage
Модули --  output/lib/module/
Копируй на кубик, заменяй, старое ядро новым

После загрузки с новым ядром проверь версию uname -a, последнее вроде 4.103

null

December 01, 2014, 03:45:04 pm #16 Last Edit: December 01, 2014, 03:54:05 pm by null
Quote from: pistoletov on November 30, 2014, 06:04:22 am
Я так понял что sunxi это ядро для кубика включающее драйвера переферии allwiner чипов. А над sunxi уже сверху пакеты будь то убунту, арч или кубиан.  То есть у все сборок ядро sunxi

именно так
Quote from: LinboG on November 30, 2014, 06:33:37 am
Если у тебя стоит ARCH, то все просто:
1. Компилятор arm-linux-gnueabihf , он доступен из AUR

угу, а потом ломай голову почему всё так глючит...
;)

LinboG

В каком смысле глючит? Проблемы с арчем или с Кубиком?

null

Quote from: LinboG on December 01, 2014, 05:18:27 pm
В каком смысле глючит? Проблемы с арчем или с Кубиком?

проблемы с версией GCC которой вы предлагаете компилить ядро

LinboG

Да вроде нет никаких проблем с компилятором, а gcc-arm 4.8 давно уже устарел и не поддерживается системой, им не получится скомпилить, его даже поставить не получится. Мета пакет arm-linux-tools включает в себя все, что необходимо для компиляции, кроме одного пакета. Ядро скомпиленное им не лучше и не хуже того, что скомпилено в другой ОСи, другим компилятором, оно такое же. Может вы пытаетесь поставить компилятор из бинарников, не из AUR, тогда да, версия там старая и кривая. Никаких проблем и глюков я невидел ниразу

null

Quote from: LinboG on December 01, 2014, 05:48:58 pm
Да вроде нет никаких проблем с компилятором, а gcc-arm 4.8 давно уже устарел и не поддерживается системой, им не получится скомпилить, его даже поставить не получится.

Это проблема ARCH'а - что там не поддерживается и не устанавливается...
А для компиляции ядра sunxi-3.4 нужен gcc 4.6.
;)
http://linux-sunxi.org/Toolchain

LinboG

У ARCH`а нет никаких проблем, тем более с таким древним компилятором 4.6, для ARCH`a gcc 4.8.2-1 уже старый. Открою секрет, что компилить можно не только именно этим компилятором и вообще этот мануал для Ubunt`ы. Проблемы могут быть только в криворукости пользователя и его нежелания разобраться ОСи. Посмотрите мануал по сборке ядра http://linux-sunxi.org/Linux_Kernel, я не вижу нигде того, чтобы использовался древний gcc, почему-то везде arm-linux-gnueabihf- . Если у вас какая то производственная или техническая неприязнь к ARCH, то вам наверное в другой форум надо. Лучше, проще и адаптивней под админа, чем ARCH вы не найдете, разве что gentoo, но он далеко не прост. Я понимаю, что Ubuntu поставил в gui и забыл, наставил кучу ненужных пакетов, всякой фигни и дела нет как работает Linux, но тогда зачем ставить Linux, если нужны удобства Windows. Если ARCH изначально немного сложен в понимании, это не значит, что он плохой и в нем что то тупит.
Давайте оставим эту дискуссию, этот разговор совсем другова форума, тема совсем не о том.

Подскажите лучше, вы перекомпилировали ядро из свежих сырцов, версии 3.4.103 ? Когда компилируешь с дефолтным конфигом отключается питание SATA, может подскажете, какая инструкция конфига ядра за это отвечает?

Раджа

Заткнись и смотри аниме!

LinboG

сырцы 3.10? Они подойдут для CB1?

sergr

Компилил уже несколько раз (добавил еще модули модули) на Cubieboard2 с установленным Cubian. Перед компиляцией сделал
apt-get update
apt-get upgrade
cubian-update

Все делал по этой инструкции:
http://linux-sunxi.org/Linux_Kernel

1. gcc в cubian уже установлен по умолчанию и устанавливать его не нужно.
2. качаем себе на кубик linux-sunxi (если нет git, то установить apt-get install git)
   git clone -b sunxi-3.4 https://github.com/linux-sunxi/linux-sunxi.git
3. Берем конфиг (у меня он был именно в /BOOT - именно в этой сборке, больше не встречал такого)  и переписываем в папку с linux-sunxi  (/home/cubie/linux-sunxi) с именем .config (или же из /proc/config.gz)
    make ARCH=arm CROSS_COMPILE=  .config     (ПУСТО после CROSS_COMPILE= И НЕ УКАЗАВАЕМ  arm-linux-gnueabihf-   - такова особенность кросс-компиляции на кубике)
4. apt-get install libncurses5-dev mkboot-image (пишу по памяти, может и ошибся, но найдете если что) -    доп пакеты, нужны для сборки ядра
5. Сама компиляция
    make ARCH=arm CROSS_COMPILE= menuconfig    (выбрать нужные модули или отключить - корректировка файла конфиг)
    make -j2 ARCH=arm CROSS_COMPILE= uImage modules     (сама компиляция и процесс занимает примерно от 2 до 3 часов на кубике)
После этого появляются файлы uImage (/home/cubie/linux-sunxi/arch/arm/boot/uImage ) - по этому пути будет новое ядро и его надо скопировать в /BOOT предварительно сохранив старое, а новое записать под таким же именем - все это делал в mc
    make ARCH=arm CROSS_COMPILE= modules_install  (сами модули скопируются и пропишутся в системе) новые модули будут в .../output/lib/modules/3.4.XXX/ - обычно  3.4.103+
6. Дальше перезапуск и все должно заработать с новым ядром.

Я добавил только несколько модулей и остальное "не трогал".... Если на этапе компиляции будут какие-либо ошибки, то надо начинать по новой с шага 5. Все работает - нужные мне модули подгружаются.

Раджа

А нахрена ARCH и CROSS_COMPILE на кубике? Там же gcc и так под целевую платформу собирает.
Заткнись и смотри аниме!

pistoletov

Время сборки разное на компе и на кубике. gcc на кубике так понимаю сразу под арм собирать должен


Отправлено с моего iPhone используя Tapatalk

sergr

Quote from: Раджа on December 02, 2014, 07:02:44 am
А нахрена ARCH и CROSS_COMPILE на кубике?

Пытался и без CROSS_COMPILE запускать - сразу ошибка компиляции. Нашел в инете один коммент про компиляцию ядра на Banana Pi (там тоже A20) и сделал по аналогии с тем, как было там описано. А как надо компилить ядро на кубике, может я не правильно все делаю?

LinboG

А ты при компиляции файлик с инструкциями (.config) какой берешь? Что за ошибка?

sergr

Quote from: LinboG on December 02, 2014, 06:57:33 pm
А ты при компиляции файлик с инструкциями (.config) какой берешь? Что за ошибка?


Свои действия по компиляции ядра описал выше.... Тут Раджа задал вопрос зачем мол "CROSS_COMPILNIG и ARCH" - так вот и решил уточнить, может есть какой-то другой способ компиляции ядра на самом кубике - проще и быстрее.....