Установка RasClock — часов реального времени для Raspberry Pi
`Актуальные инструкции по установке смотрите на официальном сайте RasClock <http://afterthoughtsoftware.com/products/rasclock>`_
Введение
Raspberry Pi — это сверхкомпактный и сверхдешёвый компьютер. Чтобы достичь таких размеров и цены, пришлось исключить несколько несущественных компонентов, обычно присутствующих в компьютере. Ноутбуки и настольные компьютеры сохраняют время при выключенном питании благодаря встроенным часам реального времени (Real Time Clock, RTC), работающим от батарейки. Однако модуль часов реального времени не входит в комплект поставки Raspberry Pi. Для поддержания точного времени Raspberry Pi автоматически обновляет дату и время через интернет по Ethernet или WiFi.
Без сетевого подключения Raspberry Pi просто вернётся к стандартным настройкам даты и времени (обычно 30 ноября 1999 года). Поэтому для проектов без подключения к интернету вам может понадобиться недорогой модуль RTC с батарейным питанием, чтобы ваш Pi мог хранить время!
Модуль RasClock был специально разработан для использования с Raspberry Pi и, в отличие от других доступных RTC-модулей, может подключаться непосредственно к портам GPIO Raspberry Pi.
Шаг 1. Подключение!
A.
Вставьте батарейку-«таблетку» в модуль. Для этого совместите положительный контакт + на батарейке с положительным контактом + на модуле. Это показано на Рисунке 1.
Рисунок 1. Установка батарейки в RasClock
B.
Затем просто подключите модуль к Raspberry Pi, как показано на Рисунке 2 ниже. Он устанавливается на крайние 6 контактов GPIO со стороны SD-карты Raspberry Pi.
Рисунок 2. Установка RasClock
Шаг 2. Настройка
A.
Этот модуль RTC предназначен для использования в Raspbian. Поэтому первый шаг — убедиться, что у вас установлена последняя версия операционной системы Raspbian. Скачать последнюю версию можно здесь: http://www.raspberrypi.org/downloads
B.
После установки нам необходимо убедиться, что у нас установлены последние драйверы прошивки, выполнив следующие команды:
sudo apt-get update
(Эта команда обновляет список доступных пакетов и их версий, но не устанавливает и не обновляет никакие пакеты.)
sudo apt-get upgrade
(Эта команда фактически устанавливает более новые версии имеющихся у вас пакетов. После обновления списков менеджер пакетов знает о доступных обновлениях для установленного программного обеспечения.)
sudo apt-get autoremove
(Эта команда удалит все избыточные пакеты после последнего обновления.)
C.
В настоящее время модуль требует установки драйвера, который не входит в стандартную поставку Raspbian.
Исходный код: https://github.com/afterthoughtsoftware/linux
Мы установим модуль, используя предварительно скомпилированный установочный пакет, следующим образом:
Загрузите установочный пакет из интернета, выполнив следующие команды на Raspberry Pi (убедитесь, что вы подключены к интернету):
wget http://afterthoughtsoftware.com/files/linux-image-3.6.11-atsw-rtc_1.0_armhf.deb
(Команда wget позволяет загрузить файл из интернета, указав URL-адрес.)
sudo dpkg -i linux-image-3.6.11-atsw-rtc_1.0_armhf.deb
(Команда dpkg позволяет управлять пакетами Debian. Ключ -i устанавливает пакет или обновляет его, если он уже установлен.)
sudo cp /boot/vmlinuz-3.6.11-atsw-rtc+ /boot/kernel.img
(Команда cp означает копирование. Здесь нам нужно скопировать загрузочный файл модуля RTC в загрузочную директорию Raspberry Pi.)
D.
Следующий шаг включает редактирование текста в загрузочных файлах Raspberry Pi. Я обычно использую текстовый редактор nano для таких небольших изменений — он простой, предустановлен и легко осваивается.
Сначала нам нужно настроить Raspbian для загрузки драйверов RTC при запуске, добавив информацию о загрузке в конфигурационный файл /etc/modules.
sudo nano /etc/modules
(Эта команда откроет файл „modules“ в текстовом редакторе nano и позволит вам внести изменения. Для использования системных команд nano просто удерживайте клавишу CTRL, обозначаемую как ^ в nano, одновременно нажимая соответствующую клавишу команды. Например, CTRL+X для выхода или CTRL+G для справки.)
Чтобы добавить текст, просто используйте клавиши со стрелками, чтобы перейти к следующей строке в загрузочном файле, и добавьте следующий текст, по одному в каждой строке:
i2c-bcm2708
rtc-pcf2127a
Затем выйдите из nano (CTRL+X) и не забудьте сохранить изменения!
D.
Последний шаг в настройке — зарегистрировать модуль RTC при загрузке Raspberry Pi и установить системные часы из RTC. Снова используем nano для редактирования файлов. При редактировании файлов всегда следуйте инструкциям, указанным в верхней части файла и обозначенным символом #. Например, файл, который мы сейчас будем редактировать, требует, чтобы любой текст был помещён перед концом файла, обозначенным как „exit 0“.
Откройте нужный файл для редактирования:
sudo nano /etc/rc.local
Для плат Raspberry Pi Rev 1 добавьте следующий текст:
echo pcf2127a 0x51 > /sys/class/i2c-adapter/i2c-0/new_device
( sleep 2; hwclock -s ) &
Для плат Raspberry Pi Rev 2 добавьте следующий текст:
echo pcf2127a 0x51 > /sys/class/i2c-adapter/i2c-1/new_device
( sleep 2; hwclock -s ) &
Затем перезагрузитесь!
sudo reboot
Шаг 3. Использование RTC
После перезагрузки Raspberry Pi вы сможете получить доступ к модулю с помощью команды hwclock.
При первом использовании часов вам необходимо установить время. Чтобы скопировать системное время в модуль часов:
hwclock -w
Чтобы прочитать время из модуля часов:
hwclock -r
Чтобы скопировать время из модуля часов в систему:
hwclock -s
Вот и всё! Теперь вы можете хранить время на Raspberry Pi без интернета!
RasClock совместим со всеми стандартными командами „hwclock“!
RasClock и ArchLinux
`Обсуждение на форуме <http://archlinuxarm.org/forum/viewtopic.php?f=31&t=5819>`_
RasClock полностью совместим с ArchLinux при соблюдении следующих условий:
используется ядро linux-raspberrypi-latest (на данный момент v3.11.2)
установлен пакет i2c-tools
добавлены i2c-bcm2708 и rtc_pcf2127 в файл /etc/modules-load.d/raspberrypi.conf
создан новый файл /etc/modules-load.d/i2c-dev.conf, содержащий одну строку:
i2c-dev
при загрузке выполняется команда
# echo pcf2127 0x51 > /sys/class/i2c-dev/i2c-1/device/new_device— автор пока не разобрался, как запускать её автоматически при загрузке, но выполнение после загрузки определённо предоставляет доступ к часам реального времени!
Благодарность Найджелу Хизмену (Nigel Heasman) за его работу над этим!