VirtualBox: Kernel driver not installed (rc=-1908)

С обновлением VirtualBox изменился и путь, по которому находится скрипт, обновляющий необходимый модуль ядра. Диалог с сообщением об ошибке предлагает выполнить команду:

/sbin/rcvboxdrv setup

но он ошибается (по крайней мере, в Ubuntu 15.10). Правильный вариант такой:

sudo /usr/lib/virtualbox/vboxdrv.sh setup

Найти файл можно командой:

locate vboxdrv.sh

Тестирование сетевого оборудования

Слушал вчера подкаст linkmeup, из которого узнал, что помимо Sifos, тестирующего на соответствие стандарту PoE, существует не менее громкий бренд — Ixia. Это продукты для тестирования на соответствие различным сетевым протоколам.

Собираем изображения в GIF

 convert -delay 20 -loop 0 *.jpg out.gif

К сожалению, размер конечного файла оказывается куда больше, чем суммарный размер исходников. Например, 57 картинок jpg размером 3 МБ в результате дали gif на 12 МБ!

Источник: https://scottlinux.com/2011/07/31/create-animated-gif-in-linux-from-command-line/

NodeMCU: не работает adc.read()

Как оказалось, из коробки в NodeMCU ацп настроен на измерение напряжения питания и не может измерять напряжение на ножке TOUT, adc.read(0) возвращает 65535. Для того, чтобы изменить это поведение нужно подправить область конфигурации в флэше. Первыми робкими экспериментами я немного окирпичил тестовую платку и долго пытался вернуть её к жизни 🙂

Конфигурация хранится  в последних 16 килобайтах флэша, так что её точное местоположение зависит от размера флэшки. На моей плате node.flashid() возвращает 1458400, что в шестнадцатеричном виде превращается в 0x1640E0. Из этих цифр трудно сделать далеко идущие выводы, но в итоге оказалось, что флэшка у меня на 4 МБ (32 Мбит). Таким образом область конфигурации начинается с адреса 0x3FC000. Для флэшек 512 КБ (4 Мбит) адрес будет 0x7C000.

Сливаем  8 КБ с помощью esptool.py:

python esptool.py -p COM4 read_flash 0x3FC000 0x2000 init.bin

В любом hex-редакторе находим байт по смещению 107 (десятичное). Скорее всего, он будет равен 0xFF. Заменяем на 0x21 (33, т.е. 3.3 В), сохраняем файл и заливаем обратно:

python esptool.py -p COM4 write_flash 0x3FC000 init.bin

Теперь АЦП измеряет напряжение на входе и радует разнообразными значениями от не нуля до 1024.