Довольно необычный пост, для публикации на тематических блогах он слабоват, а с другой стороны может быть кому-то полезен.

raspberry Мы имеем Raspberry Pi, model B с установленным raspbian:

root@raspberrypi:/etc# uname -a
Linux raspberrypi 3.6.11+ #474 PREEMPT Thu Jun 13 17:14:42 BST 2013 armv6l GNU/Linux

Есть задача использовать его в качестве элемента видеостены. Мы в нашей задаче имеем 10 панелей по 42 дюйма и соответственно 10 raspberry pi.

Каждый из них подключается HDMI-кабелем к видеопанели (по сути, видеопанель — обычный телевизор, но не в нашем случае, мы используем именно экраны, предназначенные для организации видеостен, они не имеют BNC-разъемов для подключения антенны).

Задача 1 после подключения — настроить параметры видеовывода. Загрузочный конфиг находится по пути /boot/config.txt

Там есть пункт:

# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=1
hdmi_mode=16

Нужное значение для интересующего разрешения можно взять здесь — http://ubuntu-russian.ru/opisanie-parametrov-fajla-config-txt-v-raspberry-pi/

Задача 2 — добавить браузер в автозагрузку.

Сначала подготовим скрипт, который будет стартовать иксы и запускать браузер:

root@raspberrypi:~# cat run.sh
#!/bin/sh
startx&
export DISPLAY=»:0″
a=`cat /root/url`
midori $a &
sleep 5
midori -e Fullscreen
sleep 5
midori -e TabCloseOther

Этот скрипт стартует иксы, переключает вывод дисплея в порт 0, берёт заранее созданный файл url, который содержит ссылку и передаёт его браузеру. После этого разворачивает экран в FullScreen и закрывает все вкладки, кроме последней открытой.

Дело за малым — добавить этот скрипт в автозагрузку. Для этого нам подойдёт /etc/rc.local

Добавляем туда следующий кусочек:

nohup /root/run.sh&
exit 0

Теперь после загрузки скрипт успешно выполняется и браузер запущен.

Из-за того, что дефолтный браузер течёт, его приходится регулярно перезагружать.

Пишем такой скрипт:

root@raspberrypi:~# cat rerun_midori.sh
killall midori
export DISPLAY=»:0″
a=`cat /root/url`
midori $a &
sleep 5
midori -e Fullscreen
sleep 5
midori -e TabCloseOther

И добавляем его в крон:

# m h dom mon dow command
0 */1 * * * /bin/sh /root/rerun_midori.sh

Профит. В следющем посте я расскажу, как я придумал управление видеостеной через web-интерфейс.