slackware.ru
http://www.slackware.ru/forum/

сборка ядра
http://www.slackware.ru/forum/viewtopic.php?f=44&t=2693
Страница 6 из 6

Автор:  Algierd [ 09 июн 2019 21:30 ]
Заголовок сообщения:  Re: сборка ядра

Подскажите, а что из софта нужно чтобы сконпелять ядро под arm?

Автор:  cdrw [ 09 июн 2019 22:34 ]
Заголовок сообщения:  Re: сборка ядра

Подскажите, а что из софта нужно чтобы сконпелять ядро под arm?


https://habr.com/ru/post/319736/

Автор:  Algierd [ 11 окт 2019 01:47 ]
Заголовок сообщения:  Re: сборка ядра

Цитата:
Последний конфиг для 4.9:
http://ftp.pieskovisko.sk/slackwareX/sl ... ric-4.9.67

Попытался создать с этим конфигом и слакбилдами оттуда huge-ядро, получил такое:

Код:
Build
Building kernel-huge-4.9.196-x86_64-1.txz
using these source files:

KERNEL = /usr/src/linux-4.9.196/arch/x86/boot/bzImage
SYSMAP = /usr/src/linux-4.9.196/System.map
CONFIG = /usr/src/linux-4.9.196/.config

cp: не удалось выполнить stat для '/usr/src/linux-4.9.196/arch/x86/boot/bzImage': Нет такого файла или каталога
cp: не удалось выполнить stat для '/usr/src/linux-4.9.196/System.map': Нет такого файла или каталога

Slackware package maker, version 3.141593.

Searching for symbolic links:
boot/System.map System.map-huge-4.9.196
boot/vmlinuz-huge       vmlinuz-huge-4.9.196
boot/config     config-huge-4.9.196
boot/vmlinuz    vmlinuz-huge-4.9.196

Making symbolic link creation script:
( cd boot ; rm -rf System.map )
( cd boot ; ln -sf System.map-huge-4.9.196 System.map )
( cd boot ; rm -rf vmlinuz-huge )
( cd boot ; ln -sf vmlinuz-huge-4.9.196 vmlinuz-huge )
( cd boot ; rm -rf config )
( cd boot ; ln -sf config-huge-4.9.196 config )
( cd boot ; rm -rf vmlinuz )
( cd boot ; ln -sf vmlinuz-huge-4.9.196 vmlinuz )

It is recommended that you make these lines your new installation script.


kernek-source тем же сценарием вроде бы успешно собрал :du_ma_et:

Автор:  dZ0TFR [ 24 окт 2019 14:47 ]
Заголовок сообщения:  Re: сборка ядра

Почитал тему. Посмеялся. Но я такой же Незнайка )) Собрал впервын недавно ядро но там модулей не оказалось и сетевая не определилась. Несколько вопросов по сборке (не в слакваре а вообще):

а. Какое ядро лучше для старого маломощного железа для скорости? Допустим 2.6 или 5.0? Вроде раньше ядра легче весили? или если из ядра все ненужное убрать а нужное оставить то 5.0 будет быстрее 2.6 при прочих равных опциях в силу более современного внутреннего кода/оптимизации?

б. Как понять какой у меня проц i386, i486, i586, i686? Где для моего EEE700 PC 2G инструкций больше или чего то там? И как люди компилируют под конкретный проц как в генту? В слаке можно?

в. Как выбирать опции при сборке? Какие нужны/ненужных чтобы панику не получить? Тут многие заявляют что собрали ядро а действительно ли они так волокут в железе, что понимают что они в опциях выбирают? Если так то поделитесь где читали что можно отключать а что нет. Худы, дбусы, сплэши - это все загадка для меня чтобы вы понимали мой уровень владения матчастью. Есть информация в сети да, но там не спросишь в случае непонимания а тут в форме диалога доходит быстрее. Что почитать?

г. Какое ядро быстрее? монолит или модульное? достоинства и недостатки?

д. Можно ли сидя на амд собирать ядро для пк на интеле? если архитектура у обоих х86?

Некоторые ссылки на вики здесь видел но недостаточно подробные чтобы прям каждый пункт освещался.

Наверняка тут каждый навык имеет и собирал пятьдесят раз ядра. Поделитесь пожалуйста мозгами :-)

Автор:  Algierd [ 11 ноя 2019 23:58 ]
Заголовок сообщения:  Re: сборка ядра

Подскажите, использую этот сценарий: http://ftp.pieskovisko.sk/slackwareX/sl ... kernels.sh

все сопутствующие файлы скачал, но ругается:

    build-all-kernels.sh: line 86: ./kernel-source.SlackBuild: Отказано в доступе
    build-all-kernels.sh: line 87: ./kernel-source.SlackBuild: Отказано в доступе
    mv: невозможно перенести '/tmp/' в свой собственный подкаталог,
    '/tmp/output-x86_64-4.9.67/tmp'

Автор:  bormant [ 12 ноя 2019 00:04 ]
Заголовок сообщения:  Re: сборка ядра

Algierd,
1) запуск от root
2) на файлах *.SlackBuild должен быть установлен атрибут исполнения:
Код:
# chmod a+x *Build

Автор:  KobelBen [ 18 ноя 2019 08:40 ]
Заголовок сообщения:  Re: сборка ядра

Почитал тему. Посмеялся. Но я такой же Незнайка )) Собрал впервын недавно ядро но там модулей не оказалось и сетевая не определилась. Несколько вопросов по сборке (не в слакваре а вообще):

а. Какое ядро лучше для старого маломощного железа для скорости? Допустим 2.6 или 5.0? Вроде раньше ядра легче весили? или если из ядра все ненужное убрать а нужное оставить то 5.0 будет быстрее 2.6 при прочих равных опциях в силу более современного внутреннего кода/оптимизации?

б. Как понять какой у меня проц i386, i486, i586, i686? Где для моего EEE700 PC 2G инструкций больше или чего то там?
Цитата:
И как люди компилируют под конкретный проц как в генту? В слаке можно?


в. Как выбирать опции при сборке? Какие нужны/ненужных чтобы панику не получить? Тут многие заявляют что собрали ядро а действительно ли они так волокут в железе, что понимают что они в опциях выбирают? Если так то поделитесь где читали что можно отключать а что нет. Худы, дбусы, сплэши - это все загадка для меня чтобы вы понимали мой уровень владения матчастью. Есть информация в сети да, но там не спросишь в случае непонимания а тут в форме диалога доходит быстрее. Что почитать?

г. Какое ядро быстрее? монолит или модульное? достоинства и недостатки?

д. Можно ли сидя на амд собирать ядро для пк на интеле? если архитектура у обоих х86?

Некоторые ссылки на вики здесь видел но недостаточно подробные чтобы прям каждый пункт освещался.

Наверняка тут каждый навык имеет и собирал пятьдесят раз ядра. Поделитесь пожалуйста мозгами :-)

а. 2.6 не собирал 5 оптимизировать выкинув лишнее - можно , но толку мало , ускорение работы и загрузки незначительное. Выгоднее оставить все ненужное в модулях.

б.EEE700 PC 2G - Intel Celeron M 32 бита как пишут в инете i686 подойдет
Цитата:
И как люди компилируют под конкретный проц как в генту? В слаке можно?
-
make menuconfig - там найдете. Почитайте в инете про эту команду.

в.Никак. просто make. Есть устаревшая но познавательная статья- Ядерная физика для домохозяйки- рекомендую

г. Монолит быстрее. Но модульное гибче.статья- Ядерная физика для домохозяйки- обьяснит лучше

д. Можно. но надо правильно выбрать тип проца .

Вот кстати [url]http://dmoroz67.ru/wiki/Ставим_ядро_2.6_или_Ядерная_физика_для_домохозяйки[/url]

Автор:  dZ0TFR [ 18 ноя 2019 10:07 ]
Заголовок сообщения:  Re: сборка ядра

Ок, спасибочки.

Автор:  Algierd [ 14 янв 2020 21:00 ]
Заголовок сообщения:  Re: сборка ядра

Подскажите, ядро 5.3, вот такая ошибка при сборке на малинке с aarch64
Код:
In file included from ./include/media/v4l2-subdev.h:15,
                 from ./include/media/v4l2-device.h:13,
                 from drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:20:
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c: In function ‘buffer_cb’:
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:355:35: error: ‘struct mmal_buffer’ has no member named ‘length’
  355 |    __func__, status, buf, mmal_buf->length, mmal_buf->mmal_flags,
      |                                   ^~
./include/media/v4l2-common.h:57:44: note: in definition of macro ‘v4l2_printk’
   57 |  printk(level "%s: " fmt, (dev)->name , ## arg)
      |                                            ^~~
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:353:2: note: in expansion of macro ‘v4l2_dbg’
  353 |  v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev,
      |  ^~~~~~~~
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:355:53: error: ‘struct mmal_buffer’ has no member named ‘mmal_flags’
  355 |    __func__, status, buf, mmal_buf->length, mmal_buf->mmal_flags,
      |                                                     ^~
./include/media/v4l2-common.h:57:44: note: in definition of macro ‘v4l2_printk’
   57 |  printk(level "%s: " fmt, (dev)->name , ## arg)
      |                                            ^~~
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:353:2: note: in expansion of macro ‘v4l2_dbg’
  353 |  v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev,
      |  ^~~~~~~~
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:356:12: error: ‘struct mmal_buffer’ has no member named ‘pts’
  356 |    mmal_buf->pts);
      |            ^~
./include/media/v4l2-common.h:57:44: note: in definition of macro ‘v4l2_printk’
   57 |  printk(level "%s: " fmt, (dev)->name , ## arg)
      |                                            ^~~
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:353:2: note: in expansion of macro ‘v4l2_dbg’
  353 |  v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev,
      |  ^~~~~~~~
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:367:14: error: ‘struct mmal_buffer’ has no member named ‘length’
  367 |  if (mmal_buf->length == 0) {
      |              ^~
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:409:21: error: ‘struct mmal_buffer’ has no member named ‘pts’
  409 |  } else if (mmal_buf->pts != 0) {
      |                     ^~
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:411:28: error: ‘struct mmal_buffer’ has no member named ‘pts’
  411 |   s64 runtime_us = mmal_buf->pts -
      |                            ^~
In file included from ./include/media/v4l2-subdev.h:15,
                 from ./include/media/v4l2-device.h:13,
                 from drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:20:
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:418:46: error: ‘struct mmal_buffer’ has no member named ‘pts’
  418 |     dev->capture.vc_start_timestamp, mmal_buf->pts,
      |                                              ^~
./include/media/v4l2-common.h:57:44: note: in definition of macro ‘v4l2_printk’
   57 |  printk(level "%s: " fmt, (dev)->name , ## arg)
      |                                            ^~~
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:415:3: note: in expansion of macro ‘v4l2_dbg’
  415 |   v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev,
      |   ^~~~~~~~
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:447:53: error: ‘struct mmal_buffer’ has no member named ‘length’
  447 |  vb2_set_plane_payload(&buf->vb.vb2_buf, 0, mmal_buf->length);
      |                                                     ^~
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:448:14: error: ‘struct mmal_buffer’ has no member named ‘mmal_flags’
  448 |  if (mmal_buf->mmal_flags & MMAL_BUFFER_HEADER_FLAG_KEYFRAME)
      |              ^~
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:456:14: error: ‘struct mmal_buffer’ has no member named ‘mmal_flags’
  456 |  if (mmal_buf->mmal_flags & MMAL_BUFFER_HEADER_FLAG_EOS &&
      |              ^~
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c: In function ‘start_streaming’:
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:624:63: error: passing argument 3 of ‘vchiq_mmal_port_enable’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  624 |      vchiq_mmal_port_enable(dev->instance, dev->capture.port, buffer_cb);
      |                                                               ^~~~~~~~~
      |                                                               |
      |                                                               void (*)(struct vchiq_mmal_instance *, struct vchiq_mmal_port *, int,  struct mmal_buffer *)
In file included from drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c:31:
drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.h:127:24: note: expected ‘vchiq_mmal_buffer_cb’ {aka ‘void (*)(struct vchiq_mmal_instance *, struct vchiq_mmal_port *, int,  struct mmal_buffer *, long unsigned int,  unsigned int,  long long int,  long long int)’} but argument is of type ‘void (*)(struct vchiq_mmal_instance *, struct vchiq_mmal_port *, int,  struct mmal_buffer *)’
  127 |   vchiq_mmal_buffer_cb buffer_cb);
      |   ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
cc1: some warnings being treated as errors

что-то я рабочего патча не смог найти от этой беды(

Автор:  bormant [ 15 янв 2020 14:09 ]
Заголовок сообщения:  Re: сборка ядра

В свежем ядре там уже другой код:
https://github.com/torvalds/linux/blob/ ... 5-camera.c
Код:
static void buffer_cb(struct vchiq_mmal_instance *instance,
            struct vchiq_mmal_port *port,
            int status,
            struct mmal_buffer *buf,
            unsigned long length, u32 mmal_flags, s64 dts, s64 pts)
{
   struct bm2835_mmal_dev *dev = port->cb_ctx;

   v4l2_dbg(1, bcm2835_v4l2_debug, &dev->v4l2_dev,
       "%s: status:%d, buf:%p, length:%lu, flags %u, pts %lld\n",
       __func__, status, buf, length, mmal_flags, pts);

Очевидно, где-то между вашей версией и текущей были внесены нужные изменения.

В 5.3.18 уже все как надо:
https://elixir.bootlin.com/linux/v5.3.1 ... era.c#L335
Можете там поизучать или в журнеле ядрёного git-а.

Автор:  Algierd [ 17 янв 2020 18:52 ]
Заголовок сообщения:  Re: сборка ядра

Так и не нашёл, где там посмотреть изменения, в итоге пропатчил свои исходники кодом из последнего ядра ветки 5.3, всё собралось без ошибок, спасибо!

Страница 6 из 6 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/