Saturday, December 27, 2014

Гибернация в Linux Mint для зашифрованного HDD


  1. Добавим новый ключ для физического зашифрованного раздела HDD, на котором расположен swap:
    sudo /lib/cryptsetup/scripts/decrypt_derived <dmtable-root-volume-name> | sudo cryptsetup luksAddKey --key-file=<path-to-already-registered-keyfile> /dev/<luks-swap-device> -
    Или зададим ключ при создании LUKS-раздела
    sudo /lib/cryptsetup/scripts/decrypt_derived <dmtable-root-volume-name> | sudo cryptsetup luksFormat /dev/<luks-swap-device> --key-file -
    Этот ключ генерируется на основе ранее созданного зашифрованного root-раздела (параметр <dmtable-root-volume-name>) с помощью скрипта /lib/cryptsetup/scripts/decrypt_derived.
    Параметр <luks-swap-device> - имя физического luks-раздела для swap (например, /dev/sda4).
    Параметр <path-to-already-registered-keyfile> - путь к ранее зарегестрированному файлу-ключу для расшифровки раздела.
  2. Убедимся, что swap создан:
    sudo /lib/cryptsetup/scripts/decrypt_derived <dmtable-root-volume-name> | sudo cryptsetup luksOpen /dev/<luks-swap-device> swap --key-file -
    sudo mkswap /dev/mapper/<dmtable-swap-volume-name>
  3. В файл /etc/crypttab добавим/отредактируем строку для работы с разделом swap:
    swap UUID=<uuid-of-luks-swap-device> <dmtable-root-volume-name> luks,discard,keyscript=/lib/cryptsetup/scripts/decrypt_derived
  4. В файл /etc/initramfs-tools/conf.d/resume добавим/отредактируем строку для восстановления из swap:
    RESUME=UUID=<uuid_of_encrypted_swap_partition>
  5. В файл /etc/fstab добавим/отредактируем строку для монтирования swap:
    /dev/mapper/<dmtable-swap-volume-name>   none      swap    sw           0       0
  6. Обновим initrd для всех установленных ядер:
    chroot <target-system-root>
    update-initramfs -u -k all
     

Saturday, December 13, 2014

Python virtual environment и pip

Создать виртуальное окружение Python:
  1. cd </path/to/target/project>
  2. </path/to/needed/python>/bin/pyvenv VENV

Сборка Python 3 из исходников в Linux Mint


  1. # apt-get install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm (выбрать нужное)
    libreadline-dev - служит для поддержки автодополнения (Tab), истории и навигации курсора (клавиши со стрелками)
  2. Установить необходимые *-dev пакеты (Tcl/Tk, ncurses, ...) для поддержки среды IDLE
  3. Создать файл install_python.sh со следующим содержимым:

Использование ADB shell

cd <path_to_android_SDK>/platform-tools
sudo ./adb kill-server
sudo ./adb start-server
./adb devices
./adb shell
su
rm /data/system/gesture.key 

Saturday, November 1, 2014

Настройки Linux

Установка dconf editor:
sudo apt-get install dconf-editor

Thursday, October 16, 2014

Монтируем образ .BIN/.CUE в Linux

Смонтировать: $ fuseiso -p image_file.bin /path/to/mount
Примечание: а) точка монтирования не должна существовать заранее; б) команду выполнять под текущим пользователем

Размонтировать: $ fusermount -u /path/to/mount
Примечание: Точка монтирования также будет удалена

Сконвертировать .BIN/.CUE образ в .ISO можно с помощью Iso9660 Analyzer Tool:
$ iat my_image.bin my_new_image.iso

Monday, August 4, 2014

Включаем Bluetooth A2DP в Linux Mint

Если блютуз-гарнитура не желает цепляться на Audio Sink (A2DP):
Замечательный пост на тему.

Наши действия:

Устанавливаем blueman и выполняем через него сопряжение и настройку гарнитуры.

В любой стартап скрипт добавляем строку:
pactl load-module module-bluetooth-discover

Редактируем секцию [General] в файле /etc/bluetooth/audio.conf, чтобы A2DP включался по-умолчанию:
[General]
Disable=Headset,Socket
Enable=Sink,Media

Рестарт службы bluetooth:
sudo service bluetooth restart 

В файле /etc/pulse/default.pa добавляем строку:
# automatically switch to newly-connected devices
load-module module-switch-on-connect

Рестарт демона pulseaudio:
pulseaudio -k
pulseaudio -D 

З.Ы.
Управление модулем из консоли:
  • /usr/sbin/rfkill [un]block bluetooth
  • pactl [un]load-module <modulename>