25.11.2014

Обновлённый дизайн

Было не сильно минимальнинько, но эротично. А сейчас запихнул я всё в стандартный системник, взятый с помойки. Все кто видит дико ржёт: такая плата в таком системнике!
Да, отменное рукожопство получилось ))


Изменения:
  1. Выход VGA напаял прямо на видокарточку. Шлейф получился даже цветной и с чётким соответствием. На видеокарточке уже распаяны резисторы. Помех особо не наблюдается, картинка чёткая. Разъём всёж при включении стоит придерживать, плата болтается без матери.
  2. LVDS распаял на LPT-планку. Саму матрицу хочу прикрутить к системнику - получится лапать-топ ))
  3. Системник закрывать не планирую пока, да и нечем. Системник был без крышки. В Кубик воткнут 2,4G ресивер на беспроводные клавиатуру и мышку.
  4. Большинство кабелей уже присутствуют и прикручены к корпусу стяжками: Ethernet, USB, HDMI, HDMI-DVI.


Дальше ещё фотки

05.11.2014

Играюсь с образами

Что у нас стоит, можно посмотреть здесь: Версии

Оконные образы

  1. Cubieez 1.1 (A20) - Debian 7.5 Wheezy with kernel 3.4.79 - LXDE - 192.168.1.124 - password: cubieboard - 4GB SD card
  2. Cubieez Reloaded  - Debian 7.5 Wheezy with kernel 3.4.43, DHCP - password: cubieez. На первый взгляд показался топорным. Ядро отстаёт.
  3. Cubian X1 Desktop - MATE, kernel 3.4.79. Всё аккуратненько, но притормаживает интерфейс. Однако, это единственный образ мною опробованный, который взял и просто показал картинку ещё и правильного разрешения на переходнике HDMI-DVI.
    http://cubian.org/downloads/
  4. aRUNTU 1.001 Desktop  Kernel 3.4.101
  5. CUBIUNTUX MEGA TRIPLE O.S. CT/CB2 SIMON TRIBUTE  Kernel 3.4.79 Скрипты настройки видеовыхода и запуска конкретно одной из трёх сборок: CUBIUNTU + 2x Qbee-X. Три в одном - очень и очень интересный вариант, оперативный в плане переключения между образами.
  6. Сubiuntu A20 1.001 CT SD
  7. QBee-X_TMC: nand  nand-v2 (different trackers)
    QBee-X_TMC: sd  sd-v2 (different trackers)
  8.  

Отдельно остановлюсь на Armbian (Igor Pečovnik)

Начать знакомство можно с Micro home server, который становится на Debian Wheezy. Где же взять этот Debian Wheezy? Игорь представляет 6 вариантом образов для Cubieboard2. Во-первых, все образы делятся на два типа ядра:
  • Legacy  - лучше для мультимедии, акселерация видео и всё такое. И оно 3.4.110
  • Vanilla - стандартное официальное "ванильное" ядро лучше для сервака или лёгких десктопов. Это будет 4.4.3

Для каждого типа ядра есть три дистрибутива:
  1. Wheezy - Уизи - Debian 7
  2. Jessie - Джесси - Debian 8, т.е. текущая версия
  3. Trusty - Ubuntu 14.04 LTS
    Из всего этого многообразия есть только один графический образ: Legacy Ubuntu Trusty и он обозначен соответствующим значком. И ещё есть всякие полезности в виде FAQ


    Обновления


    Обновление дистрибутива

     



    Рейтинг образов





    P.S.
    Мне так же пригодилось: Реставрация фейковых Micro SD
    Как переформатировать китайскую флешку
    // на 1Гб приходится 2101670 секторов



    18.08.2014

    Photo Frame

    При благополучном подключении матрицы нужно её занять. Есть желание Photo Frame с текущим временем и забортовой температурой или даже прогнозом.
    В Cubieez уже есть xscreensaver. Его настроить можно, глядя сюда: How Do I Use a Photos Directory as my Screensaver?

    Я опробовал Ripples. Удивился надписям Loading...
    И задумался, почему в 21 веке я её наблюдаю? Предзагрузка? Не, не слышали )))

    Да и подтягивать иХсы я вроде пока не собирался. Поэтому своё внимание сюда: Digital Picture Frame (feh)


    apt-get install feh unclutter
    

    #!/bin/bash
    # This file is located at /usr/local/bin/slideshow.sh
    #
    # Copyright 2004 Adam Franco
    # Licensed under the GNU GPL v1.2+ (http://www.gnu.org/licenses/gpl.html)
    
    killall feh unclutter
    
    unclutter &
    
    feh -zZFr -D 300 /home/afranco/Photos/
    

    Running slideshow.sh from the command-line without an X-session

    #!/bin/bash
    # I put this file at /usr/local/bin/reloadslideshow.sh
    #
    # Copyright 2004 Adam Franco
    # Licensed under the GNU GPL v1.2+ (http://www.gnu.org/licenses/gpl.html)
    
    # make sure none of our parts are running and are in the way.
    killall feh unclutter X kdm;
    
    #run the slideshow
    /usr/bin/X11/xinit /usr/local/bin/slideshow.sh & 

    И так далее.....


    19.05.2014

    Кубик рубика

    День Кубика Рубика


    Это не нормальный блог. Не подписывайтесь на него. 
    Здесь старые посты редактируются, а новые появляются задней датой.

    14.05.2014

    Всяко-полезно


    1. Смогут ли серверы на ARM заставить Intel понервничать?



    2. Codename с картинками

    3. Опыт маскировки OpenVPN-туннеля с помощью obfsproxy [habrahabr.ru]

    NAND size

    Сколько места то осталось?
    Сначала монтируем NAND и патом узнаём размер
    mount /dev/nandb /mnt
    df -h | grep nand
    

    Версии

    Версия ядра и оконной системы
    uname -a
    X -version
    hostnamectl

    13.05.2014

    Webmin


    http://help.ubuntu.ru/wiki/webmin
    sudo gedit /etc/apt/sources.list
    Добавить:
    deb http://download.webmin.com/download/repository sarge contrib
    wget http://www.webmin.com/jcameron-key.asc
    apt-key add jcameron-key.asc
    apt-get update
    apt-get install webmin
    https://localhost:10000

    03.05.2014

    ZTE MF70 unlock


    Оператор Life:) окончил акцию и стал мне не нужным. Учитывая, что он опустил меня два раза на 75 тыщ. я с удовольствием делюсь с тобой, мой друг, методом разблокировки модема ZTE MF70. Именно этот модем даёт инет моему девайсу.

    1. Вынимаю симку. Надо снести драйвера. Для этого отлично подходит платная утилита DC-unlocker. Но мы только определяем модем - это бесплатно. После лупы (Detect) смотрим в диспетчере задач. Должно быть три ровненьких устройства ZTE WCDM Technologies MSM
    2. Устанавливаем драйвера. Везде дают линк на эти драйвера. Но у меня с ними не взлетело. А взлетело вот с этими / зеркало. Наблюдаем красивые устройства в диспетчере задач.
    3. Теперь можно ломануть в два шага: detect, unlock.
    4. После лома нужно вернуть автозагрузку. Это делается через терминал PuTTy.
    AT 
    OK
    AT+ZCDRUN=F (восстанавливает NODOWNLOAD.FLG)
    AT+ZCDRUN=9 (восстанавливает autorun.flg)

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

    23.04.2014

    Падает

    Уж больно часто падает APT. Лечению не всегда поддаётся. Часто переустанавливаю систему с ноля.
    Решил таки проверить память:
    apt-get install memtester
    top (смотрю FREE)
    memtester 620 1
    Но проверяется только свободная память. А меня подозрения перерастают в паранойю.

    Обновился сильно.

    Добавил фильтрацию по питанию (электролиты+ферриты). Монтаж на USB-маме, выдранной со старой системной платы.


    Пока полёт нормальный. На недельном аптайме выключился на профилактику кулера блока питания. Перепаял вентилятор на питание 5В. Шума меньше, пыли меньше. Думаю, что БП с 10-ти кратным запасом мощности не нуждается в конкретном потоке воздуха.

    Добавил радиаторы на камень и память.



    Можно ещё подкрутить частоту памяти Fex_Guide#SDRAM
    Но может оказаться не всё так просто (Стабильность работы CB2)
    Посмотреть на какой частоте работает память CB2. Вот тут утилита a10-meminfo
    Нужно сделать файл исполняемым и запустить в терминале.

    И перенос Cubian из NAND на HDD

    А ещё Fix random crash !

    Железо



    Для питания Кубика был выбран завалявшийся компьютерный БП Codegen 300W. Так решился вопрос с питанием SATA HDD. Не покупать же ноутбучный винт! По питанию был сделан дополнительный фильтр и на Кубик наклеил радиаторы. Так получилась не слабо брутальная барсетка.




    Картинка из коммента:

    15.04.2014

    Логин-история SSH

    Чёт я сикнул на сильно простых паролях, поменял и посмотрел историю:
    last | grep root
    last | head 

    HDD spin down

    apt-get install hdparm
    hdparm -I /dev/sda
    hdparm -S 10 /dev/sda = spindown after 10*5 seconds.
    hdparm -S 245 /dev/sda = spindown after (245-240)*30 minutes.
    hdparm -S 245 /dev/disk/by-uuid/f6c52265-d89f-43a4-b03b-302c3dadb215  

    Debian Hard Disk Spindown
    Контролируем SMART HDD, с отчетом на e-mail. На примере FreeBSD и Debian/Ubuntu.

    11.04.2014

    Install Cubieez


    Заливаю Cubieez в NAND по этой инструкции при помощи PhoenixSuit

    Скачать всяко разно можно здесь - https://mega.nz 

    Enter FEL Mode

    Press the FEL key when power up(the FEL key is the one under the USB OTG port), The CPU automatically enters FEL mode. Livesuit will start to write the image to Nand on board.

    Passwords Cubieez:
    user: cubie     passwd : cubieboard  
    user: root     passwd : cubieboard

     

    Другие образы / дистрибутивы



    DEBUG

    1. Установка драйвера PL2303 Prolific
    2. Подключение кабеля без питалова (картинка)
    3. В диспетчере задач узнать номер порта
    4. Подключиться PuTTy

    Ещё Почитать
    Установка Cubian на Cubieboard

    Expansion ports

    Cubieboard Expansion ports

    10.04.2014

    Dropbox


    Тут raspberrypi.org пишут про Drop2PI

    Install
    apt-get install python-pip
    pip install --upgrade setuptools
    pip install d2pi
    pip install --upgrade d2pi (на будущее)
    

    Ищу куда мы поставились:
    find / -name "d2pi" -print
    cd /usr/local/lib/python2.7/dist-packages/d2pi
    Запускаю несколько раз
    python demo.py
    Вводим ключи и код, полученный с сайта дропбокса
    Конфиг тут: "~/.d2pi/config.yml"
    Были изначально косяки. Написал товарищу: soundbbg at gmail
    Автор ответил, что подправил коды. Обновился. Всё работает!
    crontab -e
    @reboot /usr/local/lib/python2.7/dist-packages/d2pi/mw.sh &
    По старту системы запускается mw.sh
    #!/bin/sh
    sleep 300
    cd /usr/local/lib/python2.7/dist-packages/d2pi
    python mw.py
    Суть Питоновского скрипта mw.py:
            from d2pi.watch import watcher
            watcher.auto_download = True
            watcher.can_delete = True
            watcher.can_download = True
            watcher.can_upload = True
            watcher.run()
    


    Но постепенно переползаю на BitTorrent Sync

    BitTorrent Sync



    Установка и настройка BtSync

    Install BitTorrent Sync on Debian (Raspbian)

    При попытке запуска в ответ сообщается, что файл не найден:
    # ./btsync
    bash: ./btsync: No such file or directory
    

    Тогда делаем вот так:
    sudo ln -sf /lib/ld-linux-armhf.so.3 /lib/ld-linux.so.3
    И вот на этой штуке я пожалуй отойду от дропбокса :)

    09.04.2014

    Transmission blocklist

    Маленький квест :)
    1. Сначала читаем Создаем blocklist и создаём блоклист в ручную и вручную его загружаем.
    2. Патом думаем как автоматизировать: Transmission: Blocklists
    3. Находим сайт iblocklist.com и даже скачиваем списки посмотреть на них. И быть может регистрируемся заплатить деньги.
    4. Which is the best blocklist for Transmission?
    5. И тогда уже попадаем на агрегатор getBlockLists

    По итогу используем список:
    http://john.bitsurge.net/public/biglist.p2p.gz
    овер 390 тыщ

    Transmission


    apt-get install transmission-daemon
    /etc/init.d/transmission-daemon stop
    Тут можно попасть на тот вариант, когда демон устойчив. Тогда читаем это: Остановка демона

    /etc/transmission-daemon/settings.json
    "download-dir": "/home/user/sata/_download_"
          # Удаляем все, что в кавычках, пишем вместо этого желаемый пароль. Пароль потом при запуске демона зашифруется
    "rpc-password": "xxx"
          # Оставляем, если хотим, чтобы к веб интерфейсу был доступ только с локальной машины, иначе меняем
    "rpc-whitelist-enabled": true
    
    /etc/init.d/transmission-daemon start
    Имя пользователя можно поменять, тогда файлы будут создаваться от него.
    Transmission не захотел забирать торрент-файлы из watchdir (ну не имеет он функциональности WATCHDIR) в дропбоксе.
    Пришлось вписать ему скрипт
    /etc/transmission-daemon/watchdog.sh
    #!/bin/bash 
    
    # Watch dir, may contain spaces:
    watchdir="/home/user/sata/_dropbox_/_torrent_/_new_/"
    
    # move file to a subdirectory? if Commented out, it'll removed remove
    # the torrent file.
    # Note: Don't put a '/' before the path!
    movesubdir="added/"
    
    
    # Authentication "username:password":
    tr_auth="transmission:pass"
    
    # Transmission host "ip:port":
    tr_host="127.0.0.1:9091"
    
    # Verbose?
    verbose=1
    
    #############################################
    time=$(date "+%Y-%m-%d (%H:%M:%S)")
    if [ -n "$tr_auth" ]; then 
        tr_auth="--auth=$tr_auth"
    fi
    
    for file in "$watchdir"*.torrent
    do
        if [ -f "$file" ]; then
            if [ -n "$verbose" ]; then echo "$time: $file added to queue."; fi
    
            /usr/bin/transmission-remote "$tr_host" "$tr_auth" -a "$file" > /dev/null
            # give the remote some time to process
            sleep 5
            
            if [ $movesubdir ]; then
                if [ -d "$watchdir$movesubdir" ]; then
                    mv "$file" "$watchdir$movesubdir"
                else
                    mkdir "$watchdir$movesubdir"
                    mv "$file" "$watchdir$movesubdir"
                fi
            else
                rm "$file"
            fi
        else
            if [ -n "$verbose" ]; then echo "$time: No torrent in $watchdir."; fi
        fi
    done
    
    exit 0
    
    И занести в крон каждые 5 минут:
    0,5,10,15,20,25,30,35,40,45,50,55 * * * * /etc/transmission-daemon/watchdog.sh > /etc/transmission-daemon/watch.log

    Transmission blocklist

    Забэкапиться можно по этому пути:  /var/lib/transmission-daemon/info 

    Ещё почитать: CubieBoard Forum


    И для Ubuntu: Transmission-daemon

    21.03.2014

    3G модем

    Временным явлением кубик смотрит в Интернет через ломанный модем: ZTE MF70 unlock

    Пакеты для работы с модемом уже есть в Cubieez:
    apt-get install usb-modeswitch usb-modeswitch-data
    Вставляю модем в USB, убеждаюсь в eth1
    dmesg
    [   13.13] cdc_ether 1-1.1.1:1.0: eth1: register..........

    Правлю IP-адрес
    Поднимаю интерфейс:
    ifup eth1
    И задаю роут:
    route delete default
    route add default gw 192.168.0.1

    По маршрутам почитать: Маршрут по умолчанию

    20.03.2014

    DynDNS - DuckDNS


    duckdns.org

    Подготовка/проверка
    Стоит ли крон?
    ps -ef | grep cr[o]n
    Есть ли качалка?
    curl

    Добавляю пользователя и настраиваю:
    adduser douglas
    cd /home/douglas
    mkdir duckdns
    cd duckdns
    nano duck.sh
    
    echo url="https://www.duckdns.org/update?domains=exampledomain&token=a7c4d0ad-114e-40ef-ba1d-d217904a50f2&ip=" | curl -k -o /home/douglas/duckdns/duck.log -K -
    

    Добавляю в КРОН:
    chmod 700 duck.sh
    crontab -e
    */5 * * * * /home/douglas/duckdns/duck.sh

    Проверка:
    ./duck.sh
    cat duck.log
    Ответ: OK или KO
    Если "КО", то проверяем домен и тоукен.
    sudo service cron start

    https://duckdns.org/domains

    Это всё ради проброса портов

    18.03.2014

    Проброс портов

    ZXV10 H201L на my.toilet.server
    Хитрость в том, что настроив порт-форвардинг в веб-морде модема, проверять не надо со своего компа.

    Наружу пробрасываю SSH, Webmin, видео и аудио потоки, управление MPD.

    Если наш Кубик включить в DMZ, то в незащищённую samba шару обязательно полезут трояны.

    DynDNS

    13.03.2014

    Webcam

    0. Video
    На вебках всё реже пишут про совместимость с Linux. Но обязательно указывают все версии Windows. Даже драйверов на диске нет! Какже быть?
    Подключаем не_совместимую с Linux USB-вебку и набираем команду убедиться, что она у нас уже есть в системе:

    ls /dev/video*




    1. mjpg_streamer - ретранслятор


    Качай с источника mjpg-streamer-cubie или с моего MyDrive
    Может пригодится оригинал mjpg-streamer-r63

    Компиляция и запуск:
    cd mjpg-streamer
    sudo apt-get install libv4l-dev libv4l-0 libjpeg8-dev imagemagick
    make USE_LIBV4L2=true clean all
    export LD_LIBRARY_PATH=.
    ./mjpg_streamer -i "./input_uvc.so -f 30 -r 1280x720" -o "./output_http.so  -p 8080 -w ./www"
    
    Ошибка...
    ERROR:
    Adding control for Pan (relative)
    UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device
    
    Но работает!!!
    http://10.10.10.10:8080
    top: CPU 3-5%

    А если не работает, то, возможно, камера не поддерживает режим. Тогда в командную строку сходу добавляем "-y". Если не получилось, то смотрим режимы внимательней:
    sudo apt-get install uvcdynctrl
    uvcdynctrl -f

    Автозапуск
    Создаём файл /etc/init.d/mjpg_streamkick
    #!/bin/sh
    
    ### BEGIN INIT INFO
    # /etc/init.d/mjpg_streamkick
    # Provides:          mjpg_streamer.sh
    # Required-Start:    $network
    # Required-Stop:     $network
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: mjpg_streamer for webcam
    # Description:       Streams /dev/video0 to http://IP/?action=stream
    ### END INIT INFO
    
    ld_library_path=/home/user/mjpg-streamer
    export LD_LIBRARY_PATH ld_library_path
    export LD_LIBRARY_PATH=/home/user/mjpg-streamer
    
    NAME=mjpg_streamer
    DESC="M-JPEG Streamer"
    DAEMON=/home/user/mjpg-streamer/mjpg_streamer
    MJPG_QUALITY=85
    MJPG_RESOLUTION=800x600
    MJPG_FREQ=10
    MJPG_VIDEO_DEVICE="/dev/video0 -y"
    MJPG_OUTPUT=/home/user/mjpg-streamer/www
    MJPG_OUTPUT_PORT=8080
    USER_PASS=rv:rv
    
    f_message(){
            echo "[+] $1"
            echo "      "
    }
    
    
    # Carry out specific functions when asked to by the system
    case "$1" in
            start)
                    f_message "Starting $DESC..."
                    $DAEMON -b -i "input_uvc.so -d $MJPG_VIDEO_DEVICE -f $MJPG_FREQ -r $MJPG_RESOLUTION -q $MJPG_QUALITY " -o "output_http.so -p $MJPG_OUTPUT_PORT -w $MJPG_OUTPUT -c $USER_PASS -n "
                    sleep 1
      echo ".."
                    sleep 1
                    f_message "$NAME Started!"
      /etc/init.d/mjpg_streamkick status
                    ;;
            stop)
                    f_message "Stopping $DESC..."
                    killall mjpg_streamer
                    f_message "$NAME Stopped!"
                    ;;
            restart)
                    f_message "Restarting $DESC..."
                    killall $NAME
                    f_message "$NAME Killing!"
                    $DAEMON -b -i "input_uvc.so -d $MJPG_VIDEO_DEVICE -f $MJPG_FREQ -r $MJPG_RESOLUTION -q $MJPG_QUALITY " -o "output_http.so -p $MJPG_OUTPUT_PORT -w $MJPG_OUTPUT -c $USER_PASS -n "
                    sleep 1
      echo ".."
                    sleep 1
                    f_message "$NAME Restarted!"
      /etc/init.d/mjpg_streamkick status
                    ;;
            status)
                    pid=`ps -A | grep $NAME | grep -v "grep" | grep -v $NAME. | awk '{print $1}' | head -n 1`
                    if [ -n "$pid" ];
                    then
                            f_message "$DESC Status:"
                            f_message "$DESC is running with pid ${pid}"
                            f_message "$NAME was started with the following command line"
                            cat /proc/${pid}/cmdline ; echo ""
                    else
                            f_message "$DESC Status:"
                            f_message "Could not find $NAME running!"
                    fi
                    ;;
            *)
                    f_message "Usage: $0 {start|stop|status|restart}"
                    exit 1
                    ;;
    esac
    exit 0
    

    И... Внедряем
    sudo chmod 755 /etc/init.d/mjpg_streamkick
    sudo update-rc.d mjpg_streamkick defaults 







    2. Motion - детектор движения, юзает на входе поток из ретранслятора.
    sudo apt-get install motion

    Конфигурация:
    /etc/motion/motion.conf
    netcam_url http://10.10.10.10:8080/?action=stream
    width 1280
    height 720
    framerate 10
    webcam_port 8880
    webcam_localhost off
    control_port 8881
    control_localhost off
    locate on                  # рисует рамку по движению
    target_dir /tmp/motion     # директория для сохранения снапшотов
    

    sudo motion
    top: CPU 101-103%

    Ещё почитать:

    Несколько камер: http://ubuntuforums.org/showthread.php?t=1897786
    Motion, использует дополнительные, спицифичные для каждой камеры, конфиги, подключаемые в основном файле конфигурации:
    thread /etc/motion/thread0.conf
    thread /etc/motion/thread1.conf
    thread /etc/motion/thread2.conf
    

    thread1.conf
    videodevice /dev/video1
    text_left USBWebcam-1
    target_dir /home/motion/images/webcam1
    webcam_port 8881
    




    Выход в люди:
    Port Forwarding
    DynDNS

    Скорость сети

    Intel® NAS Performance Toolkit

    Замеряю самбу в рабочем режиме, т.е. не отключая задания в кроне и не делая твиков.

    Cubieboard2 / 2012-09-09 / AllWinner A20 ARM Cortex-A7 Dual-Core (habrahabr.ru)
    Cubieez 1.1 (A20) - Debian 7.5 Wheezy with kernel 3.4.79
    Barracuda 7200.7 120Gb

    samba

    /etc/samba/smb.conf

    [global]
     workgroup = 7EVEN.NET
     netbios name = cubie
     server string = %h server
    
    ;    interfaces = lo, 10.10.10.0/24 eth0
     interfaces = lo, eth0
     bind interfaces only = true
    
     dos charset = cp688
     unix charset = UTF8
    
     syslog = 0
     log file = /var/log/samba/log.%m
     max log size = 1000
    
     dns proxy = No
     panic action = /usr/share/samba/panic-action %d
    
     security = share
    # отключаем принтеры 
     load printers = no 
     show add printer wizard = no 
     printcap name = /dev/null 
     disable spoolss = yes 
    
    # по умолчанию все файлы, начинающиеся с точки будут иметь атрибут "скрытый" 
     hide dot files = yes
    
    
    [share]
     path = /home/user/sata
     comment = Share
     create mode = 0777
     directory mask = 0777
     available = yes
     browsable = yes
     public = yes
     writable = yes
     printable = no
    
    adduser user
    sudo smbpasswd -a user
    mkdir -p /home/user/sata
    chown -R root:users /home/user/sata
    chmod -R 0777 /home/user/sata
    /etc/init.d/samba restart
    

    Директива security = share устарела, то конфиг для версии старше 4 меняется следующим образом:
    [global]
      workgroup = DEAD.NET
      netbios name = cubieboard2
      server string = Samba Server %v
    
      dns proxy = no
      log file = /var/log/samba/log.%m
      max log size = 1000
      syslog = 0
      panic action = /usr/share/samba/panic-action %d
    
      server role = standalone server
      security = user
     # Если пользователь Samba существует в системе и введен неверный пароль, 
     # то вход этого пользователя отклоняется, 
     # если пользователя не существует, 
     # тогда ему присваивается статус гость
      map to guest = Bad Password
      passdb backend = tdbsam
      obey pam restrictions = yes
      unix password sync = yes
      passwd program = /usr/bin/passwd %u
      passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
      pam password change = yes
      usershare allow guests = yes
     # по умолчанию все файлы, начинающиеся с точки будут иметь атрибут "скрытый" 
      hide dot files = yes
    
     # отключаем принтеры 
      #load printers = no 
      #show add printer wizard = no 
      #printcap name = /dev/null 
      #disable spoolss = yes 
    
      #  SHARE
        [share]
         comment = Share
         path = /mnt/sata
         public = yes
         writable = yes
         available = yes
         browsable = yes
         guest ok = yes
         create mask = 0777
         directory mask = 0777
    

    12.03.2014

    Всё о мониторах сюда

    1. VGA
    2. HDMI
    3. LVDS
    4. DUAL
    5. SSH-X11
    6. VNC
    disp_init Configuration from Fex Guide

    Подключаю матрицу от ноутбука - LVDS

    КДПВ

    Попал в руки ноутбук китайский не живой.
    Разобрал и достал матрицу LP141X7 B1IB (Drive.Google)

    Начитался про LVDS.
    По идее дифф-сигналы весьма устойчивы к помехам.
    В планах пустить кабель на несколько метров из экранированной витухи.
    И далее иду за помощью в сообщество Cubieboard+LVDS [cubieforums.com]





     









    Адаптирую под себя

    Питание матрицы - 3,3 V
    EEPROM - нет

    Дифф-сигналы:
    Матрица LVDS == Cubieboard  -- Цветовая маркировка пар витухи
    5 == 4
    6 == 1 Коричневый
    8 == 6
    9 == 3 Оранжевый
    11 == 8
    12 == 5 Синий
    14 == 10
    15 == 7 Зелёный

    Данные из даташита для правки script.bin

    Horizontal Period = 1344
    Horizontal Blanking = 136
    Vertical Period = 806
    Vertical Blanking = 1...24
    Clock freq = 65

    Как править script.bin можно почитать здесь: VGA
    Сама конфигурация начитывается:

    [disp_init]
    disp_init_enable = 1 
    disp_mode = 0
    screen0_output_type = 1
    screen0_output_mode = 4
    

    [lcd0_para]
    lcd_hbp = 136 # Horizontal Blanking
    lcd_ht = 1344 # Horizontal Period
    lcd_vbp = 24  # 2*Vertical Blanking
    lcd_vt = 1612 # 2*Vertical Period
    lcd_dclk_freq = 65 # Clock freq
    lcd_x = 1024
    lcd_y = 768
    lcd_if = 3    # its LVDS
    lcd_io_cfg0 = 268435456
    lcd_hw_if = 0         # parallel
    lcd_lvds_bitwidth = 1 # 18 bit 

    Инвертор болтается на отдельной плате со светодиодами индикации.
    Распиновку разгребал мультиметром. ШИМ по идее у меня не задействован и в конфиге включать его не обязательно.
    1 -- +5V
    2 -- +5V
    3 -- ШИМ (PWM) ???
    4 -- +5V (ENABLE)
    5 -- D5
    6 -- D4
    7 -- D3
    8 -- D1
    9 -- D2
    10 -- GRND

    И адаптирую к Кубику:
    INV == Cubieboard
      3 == 31
      4 == 37

    Получается следующий жгут, длиной метра 3-4:
    К блоку питания: 3 провода
    К Кубику: 3 провода
    К Кубику витухой: 4 пары
    Итого две витухи? Одна экранированная...
    Можно браться за паяльник :)


    Витуха медная:
    Коричневая пара - 3,3V
    Оранжевая пара - 5V
    Зелёная пара - GND
    Синяя пара - ENABLE 2 Cubieboard + NC



    Экранированная витуха:
    Цвет - LVDS - Cubieboard
    Коричневый - А0 - 4M1P
    Оранжевый - А1 - 6M3P
    Синий - А2 - 8M5P
    Зелёный - CLK - 10M7P
    Белые провода - минус (M) дифференциала


    Загружаюсь и возвращаю графику в конфиге, если надо.
    Наслаждаюсь )))
    ENABLE и PWM не подключал, занимательные артефакты при перезагрузке только радуют!





    Далее ещё фотки и редизайн коннектора..............



    HDMI

    [disp_init]
    disp_init_enable = 1
    disp_mode = 0
    screen0_output_type = 3
    screen0_output_mode = 5
    screen1_output_type = 3
    screen1_output_mode = 5
    fb0_width = 1024
    fb0_height = 768
    fb0_framebuffer_num = 2
    fb0_format = 10
    fb0_pixel_sequence = 0
    fb0_scaler_mode_enable = 0
    

    VGA

    1.    Распиновка VGA
    2.    Распиновка Cubieboard
    3.    Схемы
    3.1. С конвертером TTL в CMOS (+conf)
    3.2. Напрямую и с конвертером и про необходимость конвертора уровней (+conf)
    3.3. Напрямую

    Буферы ваять не обязательно. Резисторы можно выдрать со старой видеокарточки. У меня даже получилось подпаять! Но патом всё отвалилось с навесного монтажа. Перепаял на обыкновенных резисторах, с ногами. Ну как обыкновенные резисторы? Конские! Да ещё и номинала половинного )))



    Конструктивно всё залито эпоксидкой.


    Для доступа к конфигурации надо примаунтить NAND командой:
    mount /dev/nanda /mnt
    И далее правим конфиг:
    cp /mnt/script.bin /mnt/script.bin.bck
    bin2fex /mnt/script.bin /mnt/script.fex
    nano /mnt/script.fex
    fex2bin /mnt/script.fex /mnt/script.bin
    reboot
    Сам конфиг:
    [disp_init] 
    disp_init_enable = 1 
    disp_mode = 0 
    screen0_output_type = 4 
    screen0_output_mode = 4 
    fb0_framebuffer_num = 2  
    fb0_format = 10 
    fb0_pixel_sequence = 0 
    fb0_scaler_mode_enable = 1 


    Мой кабель раздраконенный:
    R - 1
    G - 2
    B - 3
    HSYNC - 13 - белый
    SDA - 12 - оранжевый
    SCL - 15 - фиолетовый
    +5V - 9 - жёлтый
    GRND - 5 - чёрный

    Частоты развёрток

    В последствии цветной шлейф напаял прямо на видеокарточку старую, там уже распаяны резисторы и есть штекер красивый.

    Два монитора

    DualMonitorSupport

    [disp_init] 
    disp_mode = 2 
    screen0_output_type = 4 
    screen1_output_type = 3 
    screen0_output_mode = 11 
    screen1_output_mode = 5

    VNC Cubieez


    /etc/lightdm/lightdm.conf

    В нем нашел и исправил строчки:
    autologin-user=cubie
    autologin-user-timeout=0
    [VNCServer]
       enabled=True
       port=5900
       width=1024
       height=768
       depth=8
    Пароль задаётся командой от указанного в автологине пользователя:
    x11vnc -storepasswd

    Ещё почитать: http://www.cubieforums.ru/viewtopic.php?f=13&t=118#p828







    И ещё может быть полезно стартовать приложение.
    #!/bin/sh
    #  ~/.vnc/xstartup
    # run chmod +x ~/.vnc/xstartup
     
    if [ -z "$VNCAPP" ]
    then
      # Uncomment the following two lines for normal desktop:
      # unset SESSION_MANAGER
      # exec /etc/X11/xinit/xinitrc
     
      [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
      [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
      xsetroot -solid grey
      vncconfig -iconic &
      x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
      x-window-manager &
    else
      xsetroot -solid black
      vncconfig -iconic &
      x-window-manager &
      $VNCAPP
      sleep 10
      vncserver -kill $DISPLAY
    fi
    

    Здесь производится проверка, задана ли переменная окружения “VNCAPP”.
    • Если не задана, поведение скрипта полностью идентично его варианту по умолчанию в текущей версии Debian;
    • Если задана, то запускается указанная в этой переменной программа, а после её завершения делается небольшая пауза и прибивается сам VNC-сервер.

    Для использования добавляем в /etc/rc.local следующую строку:

    sudo -H -u имяпользователя VNCAPP=/usr/local/foo-programm vncserver -depth 24 

    Подсмотрено тут: Запуск GUI-приложений внутри отдельных VNC-сессий

    SSH - X11


    В Cubieez SSH инэйблится из основной конфигурации
    X11 не подключился, хотя в /etc/ssh/sshd_config  
    "X11Forwarding yes" уже присутствует.
    Для графики X11 через дебаг-кабель или SSH в терминале нужно подправить переменную:
    export DISPLAY=127.0.0.1:10.0
    Именно IP-адрес!!!
    Проверка:
    env
    echo $DISPLAY
    xhost +
    
    И при запущенном Xming из терминала запускаем графическое приложение на Windows-дисплей.

    Меняю приветствие, редактируя файл:
    /etc/motd

    11.03.2014

    Время

    Задаю часовой пояс
    dpkg-reconfigure tzdata
    Добавляю сервера:
    /etc/ntp.conf
    server 0.debian.pool.ntp.org iburst
    server 1.debian.pool.ntp.org iburst
    server 0.ru.pool.ntp.org iburst
    server 1.ru.pool.ntp.org iburst
    sudo /etc/init.d/ntp start

    Шагаем через прокси:
    sudo date -s "$(wget -S "http://www.google.com/" 2>&1 | grep -E '^[[:space:]]*[dD]ate:' | sed 's/^[[:space:]]*[dD]ate:[[:space:]]*//' | head -1l | awk '{print $1, $3, $2, $5 ,"GMT", $4 }' | sed 's/,//')"

    MPD


    apt-get install mpd mpc
    service mpd stop
    sudo nano /etc/mpd.conf

    bind_to_address         "any"
    
    audio_output {
            type            "alsa"
            name            "sunxi-codec"
            device          "hw:0,0"        # optional
            format          "44100:16:2"    # optional
            mixer_device    "default"       # optional
    }

    Ну тут такое.
    device     "hw:0,0" - соответствует выходу на джек
    device     "hw:1,0" - соответствует выходу на HDMI
    mixer_type "software" - позволит управлять громкостью из клиентов
    mixer_type "hardware" - НЕ позволит управлять громкостью из клиентов
    

    Настроим потоковое вещание

    audio_output {
            type "httpd"
            name "My HTTP Stream"
            encoder "lame"    # optional, vorbis or lame
            port "8000"
            # quality "5.0"     # do not define if bitrate is defined
            bitrate "128"       # do not define if quality is defined
            format "44100:16:2"
    }
    

    Кодек:
    vorbis=ogg
    lame=mp3 

    Стоит однако учитывать, что на кодирование OGG пожирается значительно больше CPU. Радио может заикаться на кубике!

    Пароли:
    • Раскомментируйте поле "password" и отредактируйте его следующим образом: ПАРОЛЬ@read,add,control,admin - таким образом, при подключении к mpd клиентом с паролем "ПАРОЛЬ" вы получите права на чтение потока и всяческое управление им (добавление/удаление треков, останов/запуск и т.п.)

    • Раскомментируйте поле "default_permissions" и установите его в "read" - таким образом, клиенты, подключившиеся к серверу без пароля, смогут только читать поток

    Если настроили доступ по паролю, то и управление через mpc будет выглядеть следующим образом:
    mpc --host "password@host" --port 6600 volume 50



    Запускаю:

    # mpd --create-db - более не актуально
    /etc/init.d/mpd start
    mpc add http://shoutcast.byfly.by:88/difm_chillout
    mpc clear
    mpc load playlist_file_name
    mpc --host "password@host" --port 6600 play 1

    Открывать поток :8000/mpd.ogg в любом плеере.

    Количество подключений:
    netstat -ant| awk '{print $4}' | grep ":8005$" -c 

    И клиент для Винды клиент: Auremo

    Armbian / Pulseaudio  

    Для настройи выхода MPD на Pulseaudio в конфиге пишем:
    audio_output {
            type            "pulse"
            name            "Cubie Pulse Output"
            server          "localhost"             # optional
    }
    

    Это создаст Pulseaudio сервер на входе, который можно будет микшировать на любой выход в Volume Control.
    Однако, предварительно надо разрешить доступ по сети к локальным аудио-устройствам в настройках Pulseaudio
    И что получилось?
    На первой картинке MPD играет в хардваре, на второй - в Pulseaudio.


    Ощущение, будто Pulseaudio берёт на себя часть работы MPD.
    20% + 0% = 20%
    16% + 6% = 22%

    Общая загрузка камня с вычетом lxtask и Xorg:
    29% - 4% = 25%
    35% - 9% = 26%

    Т.е. использование Pulseaudio подгружает камень слегка, на 1-2 процентика. Думаю, этим можно пренебречь. Красивое отображение амплитуды в Volume Control.

    10.03.2014

    MPD on Android

    Server
    1. aMPD (github / apk / google play)
    2. Music Player Daemon (google play) Как его конфигурировать?
    Client
    1. Droid MPD Client (google play)
    2. MPDroid (google play)
    3. MPC (google play)

    05.02.2014

    apt

    Эта статья особенно писана для себя. Так что применяя команды из неё вы рискуете сломать дистрибутив.

    Добавить сурсы:
    /etc/apt/sources.list
    deb http://download.webmin.com/download/repository sarge contrib
    deb http://ftp.de.debian.org/debian sid main
    deb http://ftp.debian.org/debian experimental main
    

    Обновляюсь:
    apt-get update -y
    apt-get install -f -y 
    apt-get upgrade -y -f --force-yes
    apt-get dist-upgrade -y -f --force-yes
    apt-get update -y
    

    Расшифровка:
    1. Обновить информацию о пакетах, содержащихся в репозиториях.
    2. Устранения сбоев в базе пакетов вызванных нарушенными зависимостями.
    3. Обновление пакетов, для которых в репозитории доступны новые версии.
    4. Обновление пакетов, требующих разрешения зависимостей (установка дополнительных или удаление конфликтующих пакетов).
    5. И снова обновляю инфо из репов.

    Установка всего и сразу:
    apt-get install curl samba webmin python-pip mpd mpc transmission-daemon motion libv4l-dev libv4l-0 libjpeg8-dev imagemagick uvcdynctrl -y --force-yes
    
    pip install --proxy=10.10.10.10:8080 --upgrade setuptools 
    pip install --proxy=10.10.10.10:8080 d2pi
    


    Настройка прокси для APT


    Лечения
    dpkg --clear-avail
    apt-get clean 
    rm /var/lib/apt/lists/partial/* -vf 
    rm /var/lib/apt/lists/* -vf 
    mkdir -p /var/lib/apt/lists/partial 
    rm /var/cache/apt/archives/partial/* -vf 
    rm /var/cache/apt/archives* -vf 
    mkdir -p /var/cache/apt/archives/partial 
    dpkg --configure -a
    
    И обновится из начала поста

    03.02.2014

    Passwords

    Cubieez оригинальный не короткий пароль cubieboard 
     
    Через cubie-config поменять пароль не получилось, делаю ручками:
    passwd root
    passwd cubie
    

    encfs



    Поставил Cryptkeeper, он у меня завязан на Dropbox

    DNS

    Через графику не получилось прописать DNS
    Добавил 8.8.8.8 в /etc/resolv.conf

    domain yaga.net
    nameserver 10.10.10.254
    nameserver 8.8.8.8
    # nameserver 192.168.0.1
    
    В планах прикрутить что кэширующее


    Mount SATA

    mount /dev/sda1 /home/user/SATA

    Или автоматом при загрузке, тогда правим файл:
    /etc/fstab
    /dev/sda1 /home/user/sata   auto     defaults    0 0
    При этом система сама определит файловую систему. Заморачиваться нет нужды.

    Не будет лишним затюнить хард: HDD spin down 

    Proxy

    /etc/environment
    PROXY_ENABLED="yes"
    proxy_enabled="yes"
    all_proxy=http://10.10.10.10:8080
    http_proxy=http://10.10.10.10:8080
    https_proxy=http://10.10.10.10:8080
    socks_proxy=http://10.10.10.10:1080
    ftp_proxy=http://10.10.10.10:2121
    ALL_PROXY=http://10.10.10.10:8080
    HTTP_PROXY=http://10.10.10.10:8080
    HTTPS_PROXY=http://10.10.10.10:8080
    SOCKS_PROXY=http://10.10.10.10:1080
    FTP_PROXY=http://10.10.10.10:2121

    Проверка:
    env | grep proxy




    /etc/rc.local
    all_proxy=http://10.10.10.10:8080
    ALL_PROXY="$all_proxy"
    export all_proxy ALL_PROXY
    export ALL_PROXY ALL_PROXY
    
    http_proxy=http://10.10.10.10:8080
    HTTP_PROXY="$http_proxy"
    export http_proxy HTTP_PROXY
    export HTTP_PROXY HTTP_PROXY
    
    https_proxy=http://10.10.10.10:8080
    HTTPS_PROXY="$https_proxy"
    export https_proxy HTTPS_PROXY
    export HTTPS_PROXY HTTPS_PROXY
    
    socks_proxy=http://10.10.10.10:1080
    SOCKS_PROXY="$socks_proxy"
    export socks_proxy SOCKS_PROXY
    export SOCKS_PROXY SOCKS_PROXY
    
    ftp_proxy=http://10.10.10.10:2121
    FTP_PROXY="$ftp_proxy"
    export ftp_proxy FTP_PROXY
    export FTP_PROXY FTP_PROXY
    


    APT
    /etc/apt/apt.conf.d/proxy
    Acquire::http::Proxy "http://10.10.10.10:8080";
    Acquire::https::Proxy "https://10.10.10.10:8080";
    Acquire::socks::Proxy "http://10.10.10.10:1080";
    Acquire::ftp::Proxy "http://10.10.10.10:2121";
    Acquire::::Proxy "true";



    Обратить внимание:
    lxproxy
    fsproxy



    Строго говоря:
    iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 8080
    iptables -t nat -A OUTPUT -p udp -j REDIRECT --to-ports 8080
    




    IP

    /etc/network/interfaces

    # interfaces(5) file used by ifup(8) and ifdown(8)
    
    auto lo 
    iface lo inet loopback 
    
    ############################
    # MAIN interface
    auto eth0 
    allow-hotplug-eth0 
    #iface eth0 inet dhcp
    iface eth0 inet static
       address 10.10.10.10 
       netmask 255.255.255.0 
       gateway 10.10.10.254
       network 10.10.10.0
       broadcast 10.10.10.255
       dns-nameservers 127.0.0.1
    
    ############################
    # 3G-modem
    auto eth1 
    allow-hotplug-eth1 
    iface eth1 inet dhcp
    
    ############################
    # From mobile
    auto usb0 
    allow-hotplug-usb0
    iface usb0 inet dhcp
    
    ############################
    # route delete default 
    # route add default gw 192.168.0.1 
    # /etc/init.d/networking restart
    # ifdown eth0
    # ifup eth0
    # For Ubuntu: ifdown --exclude=lo -a && ifup --exclude=lo -a
    

    cubie-config

    users: root / cubie
    unified password: cubieboard

    Если readme не читать, то просто в терминале набирать  cubie-config

    1. Expand Filesystem — когда мы разворачивали образ на карту памяти, была создана ФС, использующая часть карты. Этот пункт позволит нам задействовать все доступное место на карте памяти.
    3. Enable Boot to Desktop — переключает режимы загрузки в консоль или в иксы. Мне иксы не нужны, поэтому я сразу поменял на загрузку в консоль.
    4. Internationalisation Options — позволяет задать локали, клавиатуры и часовой пояс.
    Локали выбираем en_US.UTF-8 и ru_RU.UTF-8 (ну или кому какая нужна). По умолчанию можно выбрать любую локаль, но я рекомендую en_US, поскольку в дистрибутиве есть некоторые проблемы с консольными шрифтами — в кирилице корректно отображаются только символы одинакового начертания для латиницы. В общем это не проблема, поскольку работать с системой я буду по SSH, надеюсь и вы тоже.
    Временную зону ставим свою. Никаких батареек плата не содержит, поэтому при отключении питания время сбрасывается. Если есть доступ в инет, время автоматически синхронизируется. Не очень хороший расклад, но если повесить кубик на любой бесперебойник, проблемы не будет. В противном случае, необходимо будет контролировать время в программах, для которых это критично.
    Клавиатуру имеет смысл настраивать, если работать непосредственно с кубиком, по SSH это не принципиально.



    Отсюдава

    Старт

    Подпаял к ATX-БП две USB-мамы, запитался через джек.
    Монитор PHILIPS 220V подключен через HDMI-DVI кабель.

    Родная прошивка не завелась. Залил на SD Lubuntu 1.05 - не завелась.
    Завелась Lubuntu 1.06 но притормаживает интерфейс.
    Заливал в NAND по этой инструкции при помощи PhoenixSuit
    Посоветовали и я очень доволен Cubieez
    Интерфейс заметно шустрее, наполнение софтом шире.Остановлюсь пока на этом дистрибутиве. В планах быть может FreeBSD.

    Определил необходимое:
    - ssh
    - nxproxy?
    - samba
    - transmission
    - mpd
    - mplayer
    - encfs
    - firefox

    История старта с логами.

    Вставка кода в blogger

    Дизайн → Дизайнер шаблонов → Дополнительно → Добавить CSS:

    pre { 
      white-space:         pre-wrap;
      word-wrap:           break-word; 
      background:#fafdfe; 
      border:2px solid #0082ca; 
      font-size:90%; 
      line-height:100%; 
      overflow:auto; 
      padding:10px; 
      color:#000000 } 
    pre:hover { 
      border:2px solid #efefef; } 
    code { 
      font-size:90%; 
      text-align:left; 
      margin:0;padding:0; 
      color: #000000;} 
    .clear { 
      clear:both; overflow:hidden; }
    


    И теперь код вставляю в соответствующие теги
    <pre>...</pre>

    Но стоит учесть, что в этом коде кавыки нужно преобразовывать чем нить типа CoderHTML в
    < --- &lt;
    > --- &gt;

    Отпочковался

    Отпочковался я вот отсюда:   mytoiletserver
    Актуальная русская ветка Кубоголовых:   cubieforums.com