Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как дать имя новому устройству
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Tarbal
В Линуксе многие вещи очевидны для тех кто с ними разобрался. Однако для остальных бывает непросто отыскать информацию.
Я хочу рассказать о том как давать имя новому устройству.

Сначала надо зрегистрировать новое устройство здесь:
http://www.arm.linux.org.uk/developer/machines/

В самом верху страницы есть две ссылки. По одной регистрация, по второй создание файла, который надо записать вместо имеющегося arch/arm/tools/mach-types

Следующим шагом постройте кернел и скопируйте генерируемый файл
include/generated/mach-types.h вместо одноименного в u-boot.

В файле борда поменяйте (если скопировали с другого борда) директиву:
MACHINE_START

Например вы взяли за основу Freescale MX53 LOCO Board. Она зарегистрирована под идентификационным номером MX53_LOCO.
Значит
MACHINE_START(MX53_LOCO, "Freescale MX53 LOCO Board")
Надо поменять на
MACHINE_START(NEW_NAME, "Freescale MX53 New_Name Board")

Обязательно сделать аналогичную замену в бут лоадере иначе кернел будет отвергаться.
Я не помню где это делается, но если не сможете найти, то я найду и напишу где и что поменять.

Постройте кернел и у-бут заново.
Все готово.
AlexandrY
Цитата(Tarbal @ Jan 31 2014, 16:06) *
В Линуксе многие вещи очевидны для тех кто с ними разобрался.


Моя машина под номером 2250.
А ваша? wink.gif
x893
А смысл ?
Tarbal
Цитата(x893 @ Jan 31 2014, 20:36) *
А смысл ?


Никакого. Равно как и умываться по утрам и мыть ноги на ночь.
x893
sm.gif я так и понял
хотя умывание по утрам несет в себе хоть какой-то смысл (не говоря уже о мытье ног)
sasamy
Цитата(Tarbal @ Jan 31 2014, 22:34) *
Никакого. Равно как и умываться по утрам и мыть ноги на ночь.


Раньше был хоть какой-то смысл но сейчас и правда никакого - достаточно указать с каким процессором совместима машина в dts

Цитата
/include/ "imx53.dtsi"

/ {
model = "i.mx53 starterkit";
compatible = "sk,imx53-sk", "fsl,imx53";

memory {
reg = <0x70000000 0x20000000>; /* Up to 512MB */
};
...
Tarbal
Цитата(sasamy @ Jan 31 2014, 23:24) *
Раньше был хоть какой-то смысл но сейчас и правда никакого - достаточно указать с каким процессором совместима машина в dts


А как отличить один борд от другого?
В кернеле 3.13 для beagle все без изменений:
http://lxr.free-electrons.com/source/arch/...d-omap3beagle.c
sasamy
Цитата(Tarbal @ Feb 1 2014, 01:05) *
А как отличить один борд от другого?
В кернеле 3.13 для beagle все без изменений:


Зачем их отличать ? Вы загружаете конфигурацию от конкретного устройства для ядра - других у него не будет, а то что вы привели это legacy - просто в техасе все еще кипятят sm.gif
Tarbal
Цитата(sasamy @ Feb 1 2014, 06:07) *
Зачем их отличать ? Вы загружаете конфигурацию от конкретного устройства для ядра - других у него не будет, а то что вы привели это legacy - просто в техасе все еще кипятят sm.gif

Конкретное устройство это процессор или борд?
sasamy
Цитата(Tarbal @ Feb 2 2014, 08:39) *
Конкретное устройство это процессор или борд?


Конкретное устройство - это изделие на базе процессора - хоть борд, хоть планшет, хоть телепон sm.gif вот эта вот ерунда

http://lxr.free-electrons.com/source/arch/...p3beagle.c#L156

должна быть описана в DTS конкретной борды, а не в общем board-файле и тогда не надо опрашивать никакие GPIO потому что вы и так знаете для какой из них пишете DTS. Потом эта конфигурация компилируется специальным компилятором и получается бинарник который вы передаете ядру при загрузке. Производитель процессора или те кто делал порт Linux описывает общую конфигурацию SoC а вы просто включаете ее в свой DTS через include
http://lxr.free-electrons.com/source/arch/.../dts/imx53.dtsi

и дописываете только свои специфичные особенности
http://lxr.free-electrons.com/source/arch/...-mba53.dts#L154

или изменяете значения по умолчанию - например контроллер по умолчанию отключен а вы указываете чтобы он был включен
http://lxr.free-electrons.com/source/arch/...-mba53.dts#L182

глубина вложенности может быть любой - например вы для биглей можете сделать дополнительный общий инклуд
http://lxr.free-electrons.com/source/arch/...x53-tqma53.dtsi

и для конкретных борд в конечном счете в текстовом виде получатся простейшие и понятные конфигурации
http://lxr.free-electrons.com/source/arch/...imx53-mba53.dts
Tarbal
Цитата(sasamy @ Feb 2 2014, 10:25) *
Конкретное устройство - это изделие на базе процессора - хоть борд, хоть планшет, хоть телепон sm.gif вот эта вот ерунда

http://lxr.free-electrons.com/source/arch/...p3beagle.c#L156

должна быть описана в DTS конкретной борды, а не в общем board-файле и тогда не надо опрашивать никакие GPIO потому что вы и так знаете для какой из них пишете DTS. Потом эта конфигурация компилируется специальным компилятором и получается бинарник который вы передаете ядру при загрузке. Производитель процессора или те кто делал порт Linux описывает общую конфигурацию SoC а вы просто включаете ее в свой DTS через include
http://lxr.free-electrons.com/source/arch/.../dts/imx53.dtsi

и дописываете только свои специфичные особенности
http://lxr.free-electrons.com/source/arch/...-mba53.dts#L154

или изменяете значения по умолчанию - например контроллер по умолчанию отключен а вы указываете чтобы он был включен
http://lxr.free-electrons.com/source/arch/...-mba53.dts#L182

глубина вложенности может быть любой - например вы для биглей можете сделать дополнительный общий инклуд
http://lxr.free-electrons.com/source/arch/...x53-tqma53.dtsi

и для конкретных борд в конечном счете в текстовом виде получатся простейшие и понятные конфигурации
http://lxr.free-electrons.com/source/arch/...imx53-mba53.dts


Спасибо. Мне к сожалению еще несколько месяцев не светит перейти на новую концепцию.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.