Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:6
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:10
Форум » starterkit.ru » Embedded Linux
ядро не видит bootargs из uboot
simark1979
Добавлено 24.11.2017 00:57 Редактировалось 24.11.2017 10:32
0
Сообщение: 1
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Будьте добры, подскажите
Ядро не видит аргумент загрузки из uboot.
Модуль oem6s-ind

Это произошло после смены ядра с 3.10.17 на 4.1.15 (со своим dts)
Загрузчик не менял (U-Boot 2014.04), отлично работает 3.10.17

опция в ядре взведена
CMDLINE_FROM_BOOTLOADER [=y]

Спасибо!
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 24.11.2017 10:58 Сообщение: 2
sasamy
4.71

Пункты: 83540
Регистрация: 14.08.2009
Цитата

Ядро не видит аргумент загрузки из uboot.


каким образом это проявляется и кто может кроме вас знать что вы поменяли ?
Спуститься к концу Подняться к началу
Персональная информация
simark1979
Добавлено 24.11.2017 12:00 Редактировалось 24.11.2017 12:19 Сообщение: 3
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Цитата
каким образом это проявляется и кто может кроме вас знать что вы поменяли ?


По сути это ядро 4.1.15 (из вашего билдрута) + мой dts + мой загрузчик
DTS ядра и конфиги uboot могу предоставить


А проявляется это так, что если пытаюсь передать аргумент из загрузчика, его ядро тупо не видит (ядро 3.10.17 видит).
Сейчас параметры загрузки переопределил в конфиге ядра, тогда загрузка происходит нормально, но это для меня не подходит, т.к. у меня в NAND две копии одной и той же прошивки, стартовать должна одна из них, в зависимости, от значения uboot-переменной. (какую рутовую монтировать должен определять загрузчик)


Интересно ещё вот что (хотя наверное это другая песня)
В вашем dts размер памяти указан 1гиг

memory {
reg = <0x10000000 0x40000000>;
};

У меня же с 1гиг в dts система не стартует, стартует если установить фактический размер на плате, т.е 0x20000000
В linux/Documentation/devicetree/bindings/memory.txt написано:
This node is usually filled or updated by the bootloader

В uboot/boards.cfg
oem_imx6:IMX_CONFIG=board/starterkit/oem_imx6/oem_solo.cfg,MX6S,DDR_MB=512,DEFAULT_FDT_FILE="imx6dl-oem.dtb",SYS_BOOT_NAND

Больше нигде определений размера памяти в uboot я не нахожу.

UPD
https://www.denx.de/wiki/view/DULG/LinuxKernelIgnoresMyBootargs
Это читал, но с переходом на DTS информация неактуальна
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 24.11.2017 12:30 Редактировалось 24.11.2017 12:31 Сообщение: 4
sasamy
4.71

Пункты: 83540
Регистрация: 14.08.2009
Цитата

А проявляется это так, что если пытаюсь передать аргумент из загрузчика, его ядро тупо не видит (ядро 3.10.17 видит).


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

Цитата

Интересно ещё вот что (хотя наверное это другая песня)
В вашем dts размер памяти указан 1гиг

memory {
reg = <0x10000000 0x40000000>;
};


Это в каком ядре - в какой конкретно версии ? У меня так прописано

imx6dl-oem.dts

/ {
model = "Starterkit SK-iMX6-OEM Board";
compatible = "sk,imx6dl-oem", "fsl,imx6dl-sabresd", "fsl,imx6dl";

memory {
reg = <0x10000000 0x20000000>;
};
};

Цитата

По сути это ядро 4.1.15 (из вашего билдрута) + мой dts + мой загрузчик
Спуститься к концу Подняться к началу
Персональная информация
simark1979
Добавлено 24.11.2017 12:33 Сообщение: 5
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Сейчас, обнаружил, что имя dts ядра прописано в uboot/boards.cfg

А у меня оно другое, пробую.....
Спуститься к концу Подняться к началу
Персональная информация
simark1979
Добавлено 24.11.2017 18:35 Сообщение: 6
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Вроде заработало, сделал это:
1. поправил имя dtb uboot/boards.cfg.
2. отцепил ядро от от dtb файла, теперь uboot их грузит отдельно, как и положено


Теперь мне хотелось бы чтобы, аргументы uboot дополнялись аргументами из ядра.
я так понял для этого нужно в ядре установить CMDLINE_EXTEND [=y] и определить в CONFIG_CMDLINE что будет дописано. Но у меня ядро берет значение только из uboot
Такое удавалось сделать? или это опять у меня не работает
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux