Перейти к содержанию
    

Как дать имя новому устройству

В Линуксе многие вещи очевидны для тех кто с ними разобрался. Однако для остальных бывает непросто отыскать информацию.

Я хочу рассказать о том как давать имя новому устройству.

 

Сначала надо зрегистрировать новое устройство здесь:

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")

 

Обязательно сделать аналогичную замену в бут лоадере иначе кернел будет отвергаться.

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

 

Постройте кернел и у-бут заново.

Все готово.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В Линуксе многие вещи очевидны для тех кто с ними разобрался.

 

Моя машина под номером 2250.

А ваша? ;)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:) я так и понял

хотя умывание по утрам несет в себе хоть какой-то смысл (не говоря уже о мытье ног)

Изменено пользователем x893

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Никакого. Равно как и умываться по утрам и мыть ноги на ночь.

 

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

 

/include/ "imx53.dtsi"

 

/ {

model = "i.mx53 starterkit";

compatible = "sk,imx53-sk", "fsl,imx53";

 

memory {

reg = <0x70000000 0x20000000>; /* Up to 512MB */

};

...

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

А как отличить один борд от другого?

В кернеле 3.13 для beagle все без изменений:

http://lxr.free-electrons.com/source/arch/...d-omap3beagle.c

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как отличить один борд от другого?

В кернеле 3.13 для beagle все без изменений:

 

Зачем их отличать ? Вы загружаете конфигурацию от конкретного устройства для ядра - других у него не будет, а то что вы привели это legacy - просто в техасе все еще кипятят :)

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем их отличать ? Вы загружаете конфигурацию от конкретного устройства для ядра - других у него не будет, а то что вы привели это legacy - просто в техасе все еще кипятят :)

Конкретное устройство это процессор или борд?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конкретное устройство это процессор или борд?

 

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

 

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

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...