LINUX.ORG.RU

Задание аргументов ядра у Armbian.

 , ,


0

3

Есть cubieboard с Armbian Jessie. Система установлена на NAND. В документации Armbian'а указано, что аргументы ядра можно поправить в /boot/boot.scr. В моей ситуации этот файл отсутствует, но зато имеется /boot/uEnv.txt с аналогичным синтаксисом. Но и простая правка, и попытка проделать с ним то же самое, что и с boot.scr ничем не закончились. Почитал про конфигурацию u-boot, но ничего подходящего не нашёл, хотя возможно просто упустил какую-нибудь важную мелочь. В какую сторону копать?

Не знаю как на cubieboard, я на cubietruck как то давно (когда еще армбиан не назывался армбианом) пробовал заменять ядро и вроде надо было какой-то файл конвертировать из текстового в бинарный.

Solonix ★★ ()

Такая же проблема с новым ядром от федоры 25 для ARM. Там нужно где-то прописывать опции для initrd и dtb файлов где-то. Правка uEnv.txt ничего не дает. Видимо, надо править boot.scr. Он конвертится из boot.cmd скриптами простыми, в сети есть всё. Но проверить самому сейчас не на чем.

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

Видимо, надо править boot.scr. Он конвертится из boot.cmd

Проблема в том, что boot.cmd тоже нет.

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

Проблема в том, что boot.cmd тоже нет.

Это обычный текстовый файл. Надо ставить u-boot-tool, там есть утилита mkimage, с помощью неё можно сгенерировать boot.scr. Но не факт, что добавление boot.scr поможет. Сам закопался сильно на этом моменте))) Вообще пишут, что и в boot.scr и в uEnv.txt можно прописывать опции загрузки. Ещё сам загрузчик u-boot влияет и fexfile script.bin, в котором тоже некая инфа по железу содержится. Путной документации не найти, сплошные ребусы и квесты.

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

Надо ставить u-boot-tool, там есть утилита mkimage

mkimage есть, и команда генерации есть в документации того же armbian. В script.bin, как я понял, в основном информация о оборудовании, он конвертируется с помощью bin2fex и fex2bin, вроде бы.

Сейчас посмотрел nand-sata-install из armbian, там выходит, что пара boot.cmd/boot.scr используется только в случае, когда boot - NAND или SD, а root - SATA.

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

пара boot.cmd/boot.scr используется только в случае, когда boot - NAND или SD, а root - SATA.

Отлично! Хоть что-то прояснилось. Значит в вашем случае нужно сгенерить новый boot.scr.
В uEnv.txt в некоторых ситуациях нужно указывать путь к ядру, initrd, dtb файлу с указанием адреса в памяти. Как-то так:

aload_script=fatload mmc 0 0x43000000 bananapi/script.bin;
aload_kernel=fatload mmc 0 0x48000000 bananapi/uImage; bootm 0x48000000;

poshat ★★ ()

Параметры ядра обычно задаются в u-boot через

setenv bootargs ...
saveenv
в u-boot можно зайти перед загрузкой ядра.

Кстати было бы неплохо выхлоп printenv

про uEnv.txt : https://github.com/linux-sunxi/u-boot-sunxi/wiki

только, если он поддерживается сборкой, его нужно на загрузочном разделе редактировать, а не где-то

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

в u-boot можно зайти перед загрузкой ядра

По UART же только, а у меня нет кабеля.

его нужно на загрузочном разделе редактировать, а не где-то

На первом разделе, который /dev/nanda, и редактирую.

WDWTFWW ()
Ответ на: комментарий от zudwa

fw_printenv есть, но пишет, что нет конфига, /etc/fw_env.config, как я понял. Нашёл багрепорт о этой проблеме, но в /usr/share/doc/u-boot-tools/examples/ тоже ничего подходящего не нашлось.

WDWTFWW ()

Разобрался, всё оказалось куда проще.

Помимо первого раздела (/dev/nanda), который монтируется в /boot и на котором я всё редактировал, существует каталог /boot на корневом втором разделе (/dev/nandb) в котором находится другой uEnv.txt, который и используется. Не самая очевидная вещь.

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

Чего то я не понял, как параметры ядру в армбиан задавать? Где инструкция?

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

ау? Вы не понимаете, что sysctl.conf - это не тру. Нужно вырубить ipv6 именно в ядре

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

В /boot/armbianEnv.txt дописать ipv6.disable=1 но это ен поможет, по этому в /boot/boot.cmd в строчку setenv bootargs дописать ipv6.disable=1

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

Враки. Все что написано выше - не работает, ipv6 опять откуда то вылезло. Вот так правильно
Если нужно что-то в командную строку ядра linux прописать, то можно юзать файл /boot/boot.cmd, записав нужные данные в строке
setenv bootargs ...
Затем перекомпилить
mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

ZugDuk ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.