Сканер на тележке

С первого и по тринадцатое с песнями, шутками, танцами…
Чем же еще заниматься-то с первого и по тринадцатое?

—Несчастный случай

 

Отгремели корпоративы и неумолимо приближался Новый Год. Для нас не сделали исключения и устроили корпоратив с традиционным возлиянием в Максимилианс.
После него технари компании решили, что в праздновании не хватает IT и был проведён второй — IT — корпоратив с применением X-Box 360, Kinect и метрового телевизора. В процессе оного в голову пришло множество весёлых и главное реализуемых мыслей. Те кто никогда не использовал Kinect врядли поймут…

Одной из мыслей было соорудить некий необычный и полезный агрегат с возможностью ежедневного использования. Вспомнились недавние приключения со сканированием чего-то с бегатнёй по кабинетам.

А почему бы не сделать наш сканер более мобильным?

Под это дело была произведена ревизия заскладированных по всему офису «железок».

Нашлось:

Intel DN2800MT

2 x SO-DIMM DDR3 4Gb Patriot

OCZ mSATA SSD 60Gb

блок питания от ноута ASUS 19V (сейчас заменён на менее мощный FPS)

D-Link DWA-125

Сканер HP ScanJet G2410

Офисный стул на колёсиках с отломленной саппортерами спинкой.

Из подручных необходимых средств были использованы Zalman VE200, Debian 6.0.5 amd64 netinst вариант в виде iso, usb клавиатура, ethernet патч корды, Olympus FE-115.

Десятого вроде заняться нечем…
Отлично! Десятого лечим печень

—Несчастный случай 

Собираем всё это в кучку и получаем нечто такое:

Конструкция абсолютно бесшумная после установки Debian на SSD и отключения VE200.

Debian ставим в минимальном варианте + ssh (он понадобится для второго/запасного/прямого варианта доступа к сканеру).

Теперь подготовим Debian для работы с ssd в режиме read-only. Поскольку «тележка» — агрегат мобильный, то восстанавливать fs будет совершенно неинтересно.

Для работы os потребуется запись в /tmp, /var/tmp, /run и всякие /var/* (типа lock и log). Перенесём их в память.


cd /var
rm -rf tmp run lock log
ln -s /dev/shm
ln -s /dev/shm lock
ln -s /dev/shm run
ln -s /dev/shm log


cd /etc/network
rm -rf run
ln -s /dev/shm run


cd /var/lib
rm -rf urandom
ln -s /dev/shm urandom

Отключаем ненужные нам, но включенные по умолчанию сервисы:

update-rc.d cron remove
update-rc.d exim4 remove
update-rc.d nfs-common remove
update-rc.d portmap remove

Для того чтобы можно было использовать перенесённые в память каталоги нужно при каждой загрузке создавать там структуры каталогов. Сделаем это через initd скрипт /etc/init.d/tmpfs в т.ч. и для не особо нужных каталогов.

#!/bin/bash

### BEGIN INIT INFO
# Provides:          tmpfs
# Required-Start:
# Required-Stop:
# X-Stop-After:      sendsigs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

mount tmpfs -t tmpfs /tmp
cd /tmp
mkdir exim4 sshd log
chmod 750 exim4
chown Debian-exim:Debian-exim exim4
touch utmp
chmod 660 utmp
chgrp utmp utmp

cd log
mkdir apt exim4 fsck installer news
chmod 2750 exim4
chown Debian-exim:adm exim4
touch dmesg wtmp lastlog
chmod 660 wtmp lastlog
chgrp utmp wtmp lastlog

exit 0

И подключим его к загрузке:

chmod 755 /etc/init.d/tmpfs
update-rc.d tmpfs defaults

Теперь надо добавить /tmp в /etc/fstab.

echo "tmpfs /tmp tmpfs defaults 0 0" >> /etc/fstab

Поскольку логов в случае чего не будет, то можно на всякий случай настроить удалённое логирование:


echo "*.*;auth,authpriv.none @10.0.0.21" >> /etc/rsyslog.conf
/etc/init.d/rsyslog restart

Здесь 10.0.0.21 — IP адрес сервера, который принимает нашил логи.

Перезагружаемся…
Редактируем параметры монтирования / на noatime,ro.


sed -ir 's/\/\s+ext4\s+defaults/\/ ext4 noatime,ro/' /etc/fstab

И мы получили девайс, который не боится внезапного отключения питания и загружается за 20 секунд. А нам быстрее и не надо.

Теперь займёмся собственно сканером. Установим нужный пакет, включим автозапуск и добавим сеть для которой он будет работать:


aptitude install -y sane
sed -i 's/RUN=no/RUN=yes/' /etc/default/saned
echo "10.0.0.0/24" >> /etc/sane.d/saned.conf

HP 2400 не поддерживается в sane и в Debian нет ничего для него. Но зато есть такой репозитарий для Ubuntu. Подключим его к нашей тележке:


echo "deb http://ppa.launchpad.net/lion-simba/hp2400/ubuntu karmic main" >> /etc/apt/sources.list
aptitude update

Установим найденные hp2400 пакеты:

aptitude install -y libsane-hp2400x64 xsane

Сканер готов. Проверим:

# scanimage -L
device `net:10.0.0.3:genesys:libusb:004:002' is a Hewlett Packard ScanJet 2400c flatbed scanner

Здесь 10.0.0.3 — это IP тележки по проводной сети.

Теперь сделаем тележку чуть более мобильной. Для этого подключимся к сети по wifi, тем более, что у нас есть DWA-125.


aptitude install -y wireless-tools firmware-ralink wpasupplicant

В /etc/network/interfaces вписываем следующее для назначения статичного IP адреса.

auto wlan0
iface wlan0 inet static
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
address 10.0.0.241
netmask 255.255.255.0
gateway 10.0.0.1
dns-nameservers 10.0.0.1 10.0.0.2

Шлюз и DNS, конечно, можно не указывать, но вдруг что-то понадобится обновить или доставить?

При этом не забываем удалить allow-hotplug eth0 или auto eth0 из того же конфига:


sed -ir 's/allow-hotplug eth0//' /etc/network/interfaces
sed -ir 's/auto eth0//' /etc/network/interfaces

Поскольку wifi сеть с WPA, то нам понадобится еще и конфиг для wpasupplicant на который мы уже сослались /etc/wpa_supplicant/wpa_supplicant.conf:


ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root
network={
ssid="наша точка"
key_mgmt=WPA-PSK
psk="наш ключ"
}

Одиннадцатого решаем задачу
Как не поехать к друзьям на дачу.
Но все же едем. Итог известен:
Включая двенадцатое куролесим.

—Несчастный случай

Теперь приступим к физической мобильности нашей тележки.
Для начала возьмём стул, открутим от него ручки и крепёжные винты, вскроем и оценим внутреннее пространство:

Места более чем достаточно для размещения mATX платы, блока питания, пары шнуров и wifi usb карты. Но контакты с платы не должны касаться металлических частей стула. Для этого после рытья в шкафах находим нечто, что можно использовать для крепежа к стулу и в качестве стоек для платы.

И неплохо получилось:

В сборе стул выглядит вполне естественно:

Но если заглянуть снизу, то становятся заметны высокие технологии. 😉

Сканер потом поставим сверху, но сначала надо решить вопрос с питанием. Лишнего UPS’а под рукой не оказалось, поэтому решили задействовать обычный электрический удлинитель на 3 посадочных места. Длина шнура более 10 метров, что опять же даёт ощутимую мобильность. К стула удлинитель прикреплён пластиковыми стяжками.

Вот так выглядит законченный вариант «сканирующей тележки».

В качестве окончательного хулиганства водрузили на эту же конструкцию еще и шредер. Отсканировал документ и тут же уничтожил не отходя. 😀

 

Как же хочется на работу!
К станку, к прилавку, куда угодно!

—Несчастный случай

С Новым Годом! Надеюсь, Вы улыбнулись читая это. 😉

1 комментарий к записи “Сканер на тележке”

Оставить комментарий