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

    С первого и по тринадцатое с песнями, шутками, танцами…

    Чем же еще заниматься-то с первого и по тринадцатое?

    Несчастный случай
     
    Отгремели корпоративы, и неумолимо приближался Новый Год. Мы не сделали исключения и устроили корпоратив с традиционным возлиянием в Максимилианс.
 После него технари компании решили, что в праздновании не хватает 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.

    Десятого вроде заняться нечем…

    Отлично! Десятого лечим печень

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

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

    image

    Конструкция абсолютно бесшумная после установки 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 port map 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 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=«наш ключ»
    
}


    Одиннадцатого решаем задачу

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

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

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

    image image image

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

    image

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

    image image image

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

    image

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

    image image image

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

    image image image

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

    image

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

    image

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

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

    С прошедшими праздниками! Надеюсь, вы улыбнулись, читая это.

    image
    Webnames.ru
    0.00
    Все, что необходимо для старта интернет-проекта
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 5

      +5
      Не хватает принтера на другой ручке:
      * Распечатал
      * Отсканировал
      * Уничтожил
      *…
      * PROFIT!
        0
        Хм, не знал, что не поддерживаемые sane сканеры можно завести. А вот со старьём типа BearPaw 4800TA Pro II что можно сделать? Жаль выкидывать, ведь работает, гад.
          0
          Не все и не везде, конечно же, такие сканеры работают. Надо гуглить. Попробуйте по ID из lsusb. Возможно кто-то уже смог.
          0
          Да, и Вы не рассказали про сам процесс сканирования — он инициируется нажатием кнопочки на сканере? Куда идут сканы?
            +1
            судя по этой комманде
                # scanimage -L
                
device `net:10.0.0.3:genesys:libusb:004:002' is a Hewlett Packard ScanJet 2400c flatbed scanner


            
            сканер сделали сетевым

          Only users with full accounts can post comments. Log in, please.