linux

Монтирование sshfs

Не многие новички знают, что файловую систему удаленного хоста доступного по ssh можно смонтировать в локальную файловую систему, но это именно так!
На текущий момент данная функциональность доступна как для Linux, MacOS так и для Windows.

В случае Linux нужно установить пакет sshfs. У дебианов так:

sudo apt-get install sshfs

После чего нужно смонтировать:

Работа с последовательным портом на С в Linux

Я уже писал о том, как работать с последовательным портом в Windows. Теперь созрела необходимость написать программу для обмена данными по последовательному каналу.
Работать с последовательным портом в Linux несколько сложнее чем в Windows.

Как и с любым другим устройством работа из пространства пользователя Linux происходит посредством чтения и записи в файл. Его нужно открыть при помощи функции open, в качестве параметров передаем путь к файлу и флаги.

I2C драйвер в Linux

С I2C в Linux вполне можно работать из пространства пользователя. Тем не менее это не очень удобно. Весьма удобнее и правильнее сделать модуль ядра.

Для создания драйвера в ядре Linux предусмотрены вспомогательные макросы. Если Вам не нужно ничего выполнять при инициализации модуля, можно воспользоваться макросом module_i2c_driver.

Подключение RTC ds1307 к raspberry pi при помощи Device Tree

Недавно писал о том как работать с i2c устройством из пространства пользователя в linux.
В качестве пациента у мня raspberry pi b+ и часы реального времени ds1307. В предыдущей статье описан метод работы с устройством при помощи i2c-dev, но в Linux уже есть драйвер для этих часов (drivers/rtc/rtc-ds1307.c).
Нам нужно только скормить устройство драйверу и установить время.

Для указания системе о наличии нового устройства можно воспользоваться командой:

I2c в Linux из пространства пользователя

Наконец дошли руки до i2c в raspberry pi. Шина i2c в Linux доступна из ядра и из пространства пользователя благодаря модулю i2c-dev.
Как работать с i2c устройствами в linux рассмотрим на примере часов реального времени DS1307.
У меня модуль Tiny I2C Clock.

Стоит модуль копейки, но мне с ним очень не фортануло. Получил бракованную плату. Под батарейкой 3 закороченные дорожки.

OpenMediaVault - сетевое хранилище

Любой, кто собирает на своем жестком диске фильмы и изображения, очень скоро начнет подумывать об использовании NAS (Network Attached Storage, сетевое хранилище), и хотя оно может показаться сложным, на самом деле это не так, благодаря OpenMediaVault, специальному решению, которое легко справляется с этой задачей. OpenMediaVault предназначен для дома или небольшого офиса, то есть его можно установить на старый ПК, а не на мощный компьютер.

Использование Tor Browser в Linux

В последнее время, из-за новых законов, население страдает все больше и больше. И теперь, когда рука закона добралась до сети Интернет, многие любимые ресурсы попали под угрозу блокировки. Но что делать, если расставаться с привычными сайтами совсем не хочется?
Выходом из такой ситуации может стать использование браузера «Tor Browser». Ведь заблокированные ресурсы, преимущественно расположены за границей. И они никуда не делись, просто на территории страны к ним стал ограничен доступ.

Сборка ядра для Raspberry Pi

В этой статье посмотрим как кроcскомпилировать ядро для raspberry pi (у меня b+).
Я буду производить махинации в Fedora, но суть идентична для всех дистрибутивов.
Для сборки нам понадобиться компилятор. Его можно собрать самому, скачать из репозиториев Вашей ОС или же с git raspberry.

Поставим из малинового гита.

Собственный SPI драйвер для Linux на Raspberry Pi

В распространенных дистрибутивах для Raspberry Pi уже есть драйвер SPI. Но иногда, по тем или иным причинам, нужно сделать свой. Например если вы хотите сделать драйвер для spi дисплея и пофиг что он уже давно есть готовый. Мы не ищем легких путей.

Для того, чтобы подсунуть ядру свой драйвер SPI нужно поправить файл порта для raspberry. Для других плат этот файл будет отличаться, во всем остальном же статья подойдет для любого встраиваемого решения.

Потоки в модуле ядра Linux

Рано или поздно наступает необходимость выполнения в модуля ядра полезных операций. И наверное самым полезным в этом плане инструментом являются потоки ядра.
В качестве примера создания потока в модуле ядра я решил написать модуль, который будет каждую секунду вываливать в dmesg сообщение. Такой себе флудо-модуль ядра.