How to build Sailfish OS for Samsung Galaxy S7

  This manual based on HADK 2.0.1. 4.1 Setting up required environment variables cat <<‘EOF’ > $HOME/.hadk.env export PLATFORM_SDK_ROOT=»/srv/mer» export ANDROID_ROOT=»$HOME/hadk» export VENDOR=»samsung» export DEVICE=»herolte» # ARCH conflicts with kernel build? export PORT_ARCH=»armv7hl» EOF cat <<‘EOF’ >> $HOME/.mersdkubu.profile function hadk() { source $HOME/.hadk.env; echo «Env setup for $DEVICE»; } export PS1=»HABUILD_SDK [\${DEVICE}] $PS1″ hadk EOF […]

Как получить доступ к UART телефонов Galaxy S7

Так уж вышло, что мне потребовалось получить доступ к UART на Galaxy S7. И, естественно, я обратился к гуглу с  этим вопросом. На XDA было несколько топиков, посвященных этому вопросу, но все они были старыми (2012-2013 год), с информацией о старом загрузчике. Кроме того, информацией о использовании UART с загрузчиком все и ограничивалось. А мне […]

Немного о линковки статических библиотек

Базовые понятия, кратко Совершенно неожиданное открытие сделал недавно. Оказывается порядок появления файлов на входе линковщика важен, если мы говорим о линковки статических библиотек. Для того что бы понять почему так происходит, нужно понимать принцип работы линковщика. Объектные файлы как предоставляют(экспортируют) символы(имена функций, переменных), так и ожидают(импортируют) их. Рассмотрим небольшой пример: int imported(int); static int internal(int x) […]

Sublime Text 3 для Сишника

    Мне нравиться sublime text и я использую его для программирования, решил я освоить его по лучше, заодно написать небольшую шпаргалку по тем плагинам что уже использую.     Начнем с самого главного: Package Control Менеджер пакетов, позволяет устанавливать плагины из единого источника и управлять ими. Невероятно удобный инструмент работы с плагинами. Для установки, […]

Пишем собственный init на С

Потребовалось мне как-то написать свой init, для ускорения загрузки. Особенность, в том что он должен быть статически слинкован и не должен завершаться, кроме этого во время работы инита могут быть не доступны stdin и stdout. #include <stdio.h> #include <sys/mount.h> int main() { fprintf(stderr, «Hello World Init!\n»); /* mount /proc for example */ if(mount(«none», «/proc», «proc», 0, […]

libuv — библиотека для асинхронного I/O

Процессе изучения Javascript и Node я как системный программист не мог не поинтересоваться его внутренним устройством. Одной из интересных находок стала библиотека libuv. libuv libuv — кроссплатформенная библиотека асинхронного ввода-вывода(I/O), разрабатываемая для Node.JS. Библиотека «навязывает» асинхронный, событийно-ориентированный стиль программирования(Node же). Эта библиотека как и libevent2 использует наиболее эффективный из доступных в системе способов асинхронной работы с […]