Author Topic: Как пересобрать ядро CB1?  (Read 26680 times)

Offline LinboG

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-1
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #15 on: November 30, 2014, 06:33:37 am »
Ну не смертельно что бы заморачиваться с кросс компиляцией. У меня 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

Offline null

  • Full Member
  • ***
  • Posts: 154
  • Karma: +5/-11
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #16 on: December 01, 2014, 03:45:04 pm »
Я так понял что sunxi это ядро для кубика включающее драйвера переферии allwiner чипов. А над sunxi уже сверху пакеты будь то убунту, арч или кубиан.  То есть у все сборок ядро sunxi
именно так
Если у тебя стоит ARCH, то все просто:
1. Компилятор arm-linux-gnueabihf , он доступен из AUR
угу, а потом ломай голову почему всё так глючит...
 ;)
« Last Edit: December 01, 2014, 03:54:05 pm by null »

Offline LinboG

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-1
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #17 on: December 01, 2014, 05:18:27 pm »
В каком смысле глючит? Проблемы с арчем или с Кубиком?

Offline null

  • Full Member
  • ***
  • Posts: 154
  • Karma: +5/-11
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #18 on: December 01, 2014, 05:29:36 pm »
В каком смысле глючит? Проблемы с арчем или с Кубиком?
проблемы с версией GCC которой вы предлагаете компилить ядро

Offline LinboG

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-1
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #19 on: December 01, 2014, 05:48:58 pm »
Да вроде нет никаких проблем с компилятором, а gcc-arm 4.8 давно уже устарел и не поддерживается системой, им не получится скомпилить, его даже поставить не получится. Мета пакет arm-linux-tools включает в себя все, что необходимо для компиляции, кроме одного пакета. Ядро скомпиленное им не лучше и не хуже того, что скомпилено в другой ОСи, другим компилятором, оно такое же. Может вы пытаетесь поставить компилятор из бинарников, не из AUR, тогда да, версия там старая и кривая. Никаких проблем и глюков я невидел ниразу

Offline null

  • Full Member
  • ***
  • Posts: 154
  • Karma: +5/-11
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #20 on: December 01, 2014, 05:59:49 pm »
Да вроде нет никаких проблем с компилятором, а gcc-arm 4.8 давно уже устарел и не поддерживается системой, им не получится скомпилить, его даже поставить не получится.
Это проблема ARCH'а - что там не поддерживается и не устанавливается...
А для компиляции ядра sunxi-3.4 нужен gcc 4.6.
 ;)
http://linux-sunxi.org/Toolchain

Offline LinboG

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-1
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #21 on: December 01, 2014, 07:18:47 pm »
У 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, может подскажете, какая инструкция конфига ядра за это отвечает?

Offline Раджа

  • Sr. Member
  • ****
  • Posts: 438
  • Karma: +6/-2
  • Разбираюсь в чем попало
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #22 on: December 02, 2014, 12:08:58 am »
Там еще 3.10 есть. ;)
Заткнись и смотри аниме!

Offline LinboG

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-1
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #23 on: December 02, 2014, 12:19:16 am »
сырцы 3.10? Они подойдут для CB1?

Offline sergr

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-0
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #24 on: December 02, 2014, 04:08:58 am »
Компилил уже несколько раз (добавил еще модули модули) на 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. Все работает - нужные мне модули подгружаются.

Offline Раджа

  • Sr. Member
  • ****
  • Posts: 438
  • Karma: +6/-2
  • Разбираюсь в чем попало
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #25 on: December 02, 2014, 07:02:44 am »
А нахрена ARCH и CROSS_COMPILE на кубике? Там же gcc и так под целевую платформу собирает.
Заткнись и смотри аниме!

Offline pistoletov

  • Newbie
  • *
  • Posts: 40
  • Karma: +0/-0
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #26 on: December 02, 2014, 07:08:13 am »
Время сборки разное на компе и на кубике. gcc на кубике так понимаю сразу под арм собирать должен


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

Offline sergr

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-0
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #27 on: December 02, 2014, 04:20:43 pm »
А нахрена ARCH и CROSS_COMPILE на кубике?
Пытался и без CROSS_COMPILE запускать - сразу ошибка компиляции. Нашел в инете один коммент про компиляцию ядра на Banana Pi (там тоже A20) и сделал по аналогии с тем, как было там описано. А как надо компилить ядро на кубике, может я не правильно все делаю?

Offline LinboG

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-1
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #28 on: December 02, 2014, 06:57:33 pm »
А ты при компиляции файлик с инструкциями (.config) какой берешь? Что за ошибка?

Offline sergr

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-0
    • View Profile
Re: Как пересобрать ядро CB1?
« Reply #29 on: December 03, 2014, 04:45:57 am »
А ты при компиляции файлик с инструкциями (.config) какой берешь? Что за ошибка?

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