Модуль ядра предназначен для чтения физических адресов и записи в них значений.
Чтобы начать пользоваться модулем ядра нужно:
- Установить заголовки ядра, если их нет
apt-get install build-essential linux-headers-`uname -r`
- Собрать модуль ядра Physlin
make all
Появится physlin.ko и ещё некоторые файлы.
- Вставить модуль в ядро
insmod physlin.ko
После этого появится файл /proc/physlin
Чтобы посмотреть текущую карту системной памяти
cat /proc/iomem
echo {physical_addr} > /proc/physlin
cat /proc/physlin
или
physlin.sh {physical_addr}
Пример: Допустим нам необходимо узнать содержимое по адресу 0x6176c017. Для этого необходимо записать адрес в /proc/physlin.
echo 0x6176c017 > /proc/physlin
Теперь в /proc/physlin лежит значение, которые находилось по адресу 0x6176c017.
cat /proc/physlin
echo {physical_addr} w {value} > /proc/physlin
или
physlin.sh {physical_addr} {value}
Пример: Предположим, что требуется записать число 0xFF по адресу 0x6176c017.
echo 0x6176c017 w 0xFF > /proc/physlin
После записи значения, модуль прочитает содержимое по указанному адресу. В данном примере, в случае успешной записи
cat /proc/physlin
выведет 0xFF.
Убрать модуль из ядра.
rmmod physlin.ko
Удалить все созданные файлы.
make clean