4

В нашем встроенном Linux-решении с использованием uClinux я только что добавил флэш-устройство большего размера. Я хочу иметь возможность запросить, какое устройство я установил (аппаратное устройство).

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

Чего я не знаю, так это как получить эту информацию в "пользовательской зоне". Т.е. в скрипте shell/bash.

Я посмотрел на:

cat /proc/mtd - это дает информацию о размере разделов. Но я не могу сказать из этого, на самом деле мне нужно будет изменить размеры разделов, в зависимости от того, какой флеш-чип установлен.

mtd_debug info /dev/mtd0 - Это довольно близко, оно говорит мне о размере сектора (размер стирания), типе mtd и т. д., но так как два флеш-чипа имеют одинаковый тип, это также недостаточно информации.

2 ответа2

1

Я сделал для этого решение на основе кода, переполнение стека здесь: как можно определить, что такое mtd-flash-устройство-установлено

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

0

Быстро, но безобразно, вы можете просканировать вывод ядра на наличие сообщения о NAND:

dmesg | grep 'Manufacturer ID'

Сообщение варьируется от версии к версии (2.6.32, 4.10). Вот результат для 2.6.32.57:

[root@board /]# dmesg | grep 'Manufacturer ID'
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .