LINUX.ORG.RU

Как можно пропатчить исходники ядра?

 ,


1

3

Здравия! Есть на арм исходники ядра от sunxi, но в них в драйверах ввода-вывода проблема-если пишет на диск например видео с камер или с нета загрузка идёт, то система виснет, да так, что логгировать нереально, два года я с этой проблемой мучаюсь, но вот попробовал гентушные сорцы-там этого нет, не виснет. Но из гентушных сорцов собирается без рабочего eth0, потому подумал я, а можно пропатчить драйвер? По идее исходники же текстовые файлы? Только не знаю я, как это сделать, надеюсь подскажут здесь.

★★★★★

Отдельным модулем ставить драйвер не вариант? Возможно придётся патчить драйвер.

Ну и как сказали выше, может просто поддержку не включил.

Сами исходники ядра должны патчится как и остальные - пишешь патч, добавляешь путь к нему в ebuild.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 2)

яннп, при чём тут патчи?

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

Но из гентушных сорцов собирается без рабочего eth0, потому подумал я, а можно пропатчить драйвер?

Да, можно. Патч будет наверняка заключаться в установке М или * в make menuconfig.
Покажи lsmod и lspci -v на железке. Поможем с патчем.

imul ★★★★★
()
Ответ на: комментарий от AbbaT

Нет, в ядре везде всё включено, 20 раз пересобирал.

burato ★★★★★
() автор топика
Ответ на: комментарий от imul

На сорцах майнлай кернел sunxi на eth0 вкомпилено в ядро, а не модулем.

Покажи lsmod и lspci -v

Это одноплатник оранж пай пк+ и там lspci бесполезно, lsmod ща сделаю

burato ★★★★★
() автор топика
Ответ на: комментарий от imul
# lsmod
Module                  Size  Used by
binfmt_misc            16384  1
snd_soc_hdmi_codec     16384  1
evdev                  20480  0
sy8106a_regulator      16384  1
pwrseq_simple          16384  1
snd_soc_simple_card    16384  0
snd_soc_simple_card_utils    16384  1 snd_soc_simple_card
sun8i_codec_analog     24576  1
sunxi_cir              16384  0
dw_hdmi_cec            16384  0
dw_hdmi_i2s_audio      16384  0
sun4i_codec            32768  3
sun4i_i2s              16384  2
snd_soc_core          110592  6 sun4i_codec,sun4i_i2s,sun8i_codec_analog,snd_soc_hdmi_codec,snd_soc_simple_card_utils,snd_soc_simple_card
spidev                 16384  0
snd_pcm_dmaengine      16384  1 snd_soc_core
snd_pcm                69632  5 sun4i_codec,sun4i_i2s,snd_pcm_dmaengine,snd_soc_hdmi_codec,snd_soc_core
uas                    20480  0
snd_timer              24576  1 snd_pcm
snd                    45056  4 snd_soc_hdmi_codec,snd_timer,snd_soc_core,snd_pcm
soundcore              16384  1 snd
gpio_keys              20480  0
cpufreq_dt             16384  0
uio_pdrv_genirq        16384  0
uio                    16384  1 uio_pdrv_genirq
burato ★★★★★
() автор топика
Ответ на: комментарий от burato

На сорцах майнлай кернел sunxi на eth0 вкомпилено в ядро, а не модулем.

Тогда возьми конфиг от sunxi. Отдельный кернел для sunxi уже лет 5 как не актуален, поскольку все наработки в мейнлайн затащили. Конфиг тоже не на 100% подойдет, с тех пор в конфигурялке много чего поменяли, но посмотреть там как сеть сделана вполне можно.

imul ★★★★★
()
Ответ на: комментарий от burato

snd_soc_simple_card
dw_hdmi_i2s_audio
sun4i_i2s

Хех, недавно пришлось с i2s микрофонами на четвёртой малинке повозиться.
Скорее всего модулями оставлено то, к чему приходится передавать параметры. Остальное в ядро. Сети среди модулей действительно нет. Тогда смотри конфиг по которому собирается ядро для sunxi и ищи что помечено как =y.

imul ★★★★★
()
Ответ на: комментарий от imul

так я так и делаю, беру конфиг от рабочего сункси ядра и по нему пытаюсь собрать, в майнлайн ветке я уже сказал, собирается как ни крути с проблемой i/o.

А в конфиге выбрать то особо нечего, там можо либо вкомпилить драйвер, либо модуль, но на eth0 вариант только вкомпилить или нет.

burato ★★★★★
() автор топика
Ответ на: комментарий от kostyarin_

желательно более развёрнуто

burato ★★★★★
() автор топика
Ответ на: комментарий от burato

Там же можно oldconfig сделать, на различия оно будет задавать вопросы.

Не, сделай diff и поищи разницу в модулях для сети. Так надёжнее.

imul ★★★★★
()
Ответ на: комментарий от burato

А вот это не оно?
/usr/src/linux-5.5.0/arch/arm/configs/sunxi_defconfig

Тогда сделай make menuconfig, там пометь всё похожее на сетевые для одноплатника как модули, грузанись и если сеть появилась посмотри подгруженный модуль. Его оставишь, а остальные уберёшь.

imul ★★★★★
()
Ответ на: комментарий от imul

О, пятая ветка ядра замаскирована, надо пробнуть собрать с неё. А то я в четвёртой, потому как она стабильная.

burato ★★★★★
() автор топика
Ответ на: комментарий от burato

А то я в четвёртой

/usr/src/linux-4.19.0/arch/arm/configs/sunxi_defconfig
А вот это что?

imul ★★★★★
()

На sunxi собираю ванильное ядро. Ну, из дебиана точно собираю. Всё как в дебиане. Нужные модули, eth0 работает.

turtle_bazon ★★★★★
()
Ответ на: комментарий от burato

На сорцах майнлай кернел sunxi на eth0 вкомпилено в ядро, а не модулем.

Там у них много чего вкомпилено в ядро, не модулем. У тебя что за оранж конкретно? На оранжи дебиан ставится. С уже нормальным ядром и вообще там всё нормально.

turtle_bazon ★★★★★
()
Ответ на: комментарий от burato

sunxi с пятой версии добавлены, чтобы не пришлось патчить sunxi’шными патчами.

turtle_bazon ★★★★★
()

Вот нашёл. Собирал дебиановское ядро. Но думаю, можно и ваниль собрать.

Linux arm-dev 5.1.0-trunk-armmp-lpae #1 SMP Debian 5.1.3-1~exp1 (2019-03-22) armv7l GNU/Linux
turtle_bazon ★★★★★
()
Ответ на: комментарий от turtle_bazon

попробуй на своих оранжах запустить запись видео, например, ffmpeg потков в 6 fullHD и оно повиснет, я все ядра уже перепробовал, зависание с ядром связано. У меня оранж пай пк+

burato ★★★★★
() автор топика
Ответ на: комментарий от burato

Если найду 6 потоков, то почему бы и нет? Но там не сам оранж повиснет, а сд карта на нём очень медленная будет. Она 6 потоков записи не выдержит и не на оранже.

turtle_bazon ★★★★★
()
Ответ на: комментарий от burato

Мой оранж пк2 или пк. Точно не помню. Там h5 чипсет. И armv7 архитектура. sunxi8

processor       : 0
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 48.00
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5
turtle_bazon ★★★★★
()
Ответ на: комментарий от burato

У меня оранж пай пк+

У тебя вообще на H3 чипсете.

UPD: у меня, оказывается, тоже на H3.

turtle_bazon ★★★★★
()
Последнее исправление: turtle_bazon (всего исправлений: 1)
Ответ на: комментарий от burato

А как её достаточную то создать? Я вот не знаю. Разве что dd писать в 6 потоков.

turtle_bazon ★★★★★
()
Ответ на: комментарий от burato

Ну реально, придумай скрипт, который ио нагрузит. Ну или стресс тест какой существующий. И запусти и подтверди, что у тебя зависает через N секунд. Я в Пн проверю на своём устройстве.

turtle_bazon ★★★★★
()
Ответ на: комментарий от turtle_bazon

оно через полчаса-час зависает. Даже от записи на диск с 5 камер 1080p fullHd

burato ★★★★★
() автор топика

А кто знает, как узнать модули, использующиеся для конкретных программ? например хочу узнать всё, что нужно аудиосистеме, хочу узнать то, что показывает температуру

cat /sys/class/thermal/thermal_zone0/temp
и частоту
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

это для начала.

burato ★★★★★
() автор топика
Ответ на: комментарий от burato

В общем, клонировал в 6 потоков, но места на 8 Гб флешке под 6 копий реп ядра не хватило. Проблем не возникло вообще. Ну iotop смотрел, всё загружено было. Сейчас попробую dd попозже ещё.

turtle_bazon ★★★★★
()
Ответ на: комментарий от turtle_bazon

Надо на большой носитель, проблема не возникает быстро, это минимум полчаса, причём не обязательно сильно нагружать. И кстати, что за ядро ты используешь?

burato ★★★★★
() автор топика
Ответ на: комментарий от burato

проблема не возникает быстро, это минимум полчаса

Часа 2 или 3 клонил.

И кстати, что за ядро ты используешь?

# uname -a
Linux ms-dev 5.5.2-ms-armmp-lpae #4 SMP Mon Feb 10 17:44:33 MSK 2020 armv7l GNU/Linux
turtle_bazon ★★★★★
()
Ответ на: комментарий от burato

Там FEATURESET=none должен быть, а FLAVOUR=armmp-lpae для нашего чипа. Соответственно, включен должен быть CONFIG_ARM_LPAE=y. Но я собирал тупо конфиг копировал существующий.

turtle_bazon ★★★★★
()
Последнее исправление: turtle_bazon (всего исправлений: 1)
Ответ на: комментарий от burato

Билды дебиана . Вот тут глянь. Если кратко, то конфиг они собирают из нескольких файлов:

debian/config/config 
debian/config/kernelarch-arm/config 
debian/config/armhf/config 
debian/config/armhf/config.armmp-lpae

Если их посмотришь, то понятно будет, что там нужно включить.

turtle_bazon ★★★★★
()
Ответ на: комментарий от burato

У меня OrangePI PC, тоже на чипе H3.

# cat /proc/cpuinfo 
processor       : 0
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 48.00
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 1
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 48.00
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 2
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 48.00
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 3
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 48.00
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

Hardware        : Allwinner sun8i Family
Revision        : 0000
Serial          : ****************

Серийник замазал, если что.

turtle_bazon ★★★★★
()
Последнее исправление: turtle_bazon (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.