Программно получить информацию о типе и объеме памяти ПЗУ в Linux

Мне нужна информация из моей программы на C об общем объеме флэш-памяти и типе флэш-памяти на моем встроенном Linux. Я вижу эту информацию, когда ядро ​​загружается, но не могу найти другого способа получить их. Это вообще возможно?

4 ответа

Есть ли у вас /proc/meminfo? Это даст вам необходимую информацию?

Я предполагаю, что ваше ядро ​​Linux является 2.6 новее, и вы можете проверить /proc/mtd*** для общей информации.

Если этого недостаточно, проверьте исходный код mtd-tools: mtdinfo.c

http://gitorious.org/0xdroid/external_mtd_utils/blobs/e783e75e09b4a0a519665afd7bdeaf2985e7a09c/ubi-utils/src/mtdinfo.c

проверьте эти функции print_XXXX_info. Вам также нужна некоторая внешняя библиотека, чтобы это работало.

API-интерфейс ядра для интерфейса mtd время от времени меняется, поэтому убедитесь, что у вас правильная версия для вашего ядра.

Взгляните на ядро ​​и / или исходный код загрузчика, чтобы увидеть, как он это делает при загрузке. Этот метод, скорее всего, зависит от вашего оборудования.

Да. это возможно с помощью утилиты dmidecode из linux. вот пример кода

#include <stdio.h>  
#include <stdlib.h> 
int main()  
{  
    char str[100]  = "dmidecode | grep -i 'ROM Size'";  
    system(str);  
    return 0;  
}

он даст вам размер ПЗУ, и если вы не выберете "Размер ПЗУ", он также предоставит другую информацию BIOS. если у вашего встроенного Linux нет утилиты Dmidecode, вы можете получить исходный код здесь. Вы также можете проанализировать часть исходного кода dmidecode, которая предоставляет информацию о ПЗУ, если вы не хотите использовать системную команду и не хотите копать другую информацию BIOS.

Другие вопросы по тегам