понедельник, 26 октября 2009 г.

Устанавливка Adobe AIR на Fedora 10 64-bit.

Проблема с установкой Adobe AIR у меня возникла давно. После нескольких месяцев успешной работы twhirl перестал соединяться с Twitter API. Но так-как у меня успешно работал TwitterFox (новое название Echofon), я эту проблему задвинул в дальний ящик.

Сегодня я решил установить TweetDesk и проблема сразу показала своё "лицо".

1. Перед установкой нужно прочитать этот документ: Install Adobe AIR Linux 1.5 on 64-bit Linux distributions и выполнить рекомендуемые действия.

$ sudo yum install ld-linux.so.2 gtk2-devel.i386
$ sudo yum install libxml2.i386 nss.i386 libXt.so.6
$ sudo yum install gnome-keyring.i386 xterm rpm-libs.i386

2. Для того чтобы Adobe AIR получил доступ к сетевому стеку, придётся установить ещё один пакет. (Без него работать ничего не будет)

$ sudo yum install nss-mdns.i386

3. Скачиваем Adobe AIR http://get.adobe.com/air/ и устанавливаем.

$ chmod +x AdobeAIRInstaller.bin 
$ sudo ./AdobeAIRInstaller.bin 

4. Для установки программ придётся сначала скачать её, а потом установить из терминала.

$ /opt/Adobe\ AIR/Versions/1.0/Adobe\ AIR\ Application\ Installer /path_to/App.air

Если Вам все это не помогло, попробуйте отчистить ELS (AIR's Encrypted Local Storage) и gnome-keyring используя инструкции описаные тут: Troubleshooting AIR's Encrypted Local Storage (ELS) on Linux

UPDATE 12.10.2010:

При установке rpm пакета adobe air версии 2.5.1 в Fedora 14 возникает ошибка:

Adobe AIR could not be installed. Either gnome-keyring or Kwallet must be installed prior to installing Adobe AIR.
error: %pre(adobeair-2.5.1-17730.i386) scriptlet failed, exit status 1
error:   install: %pre scriptlet failed (2), skipping adobeair-2.5.1-17730

Лечится установкой пакета libgnome-keyring.i686:

sudo yum install libgnome-keyring.i686

вторник, 8 сентября 2009 г.

Избавляемся от тормозов Intellij IDEA и RubyMine под Linux

Оказывается в sun jdk 1.6.0_11 есть бага, которая не позволяет комфортно работать в Intellij IDEA и RubyMine под Linux.

Чтобы избавиться от тормозов, вызванных этой багой, надо обновить java минимум до версии 1.6.0_12.

Но для быстрого решения проблемы можно добавить в файл idea.vmoptions или rubymine.vmoptions строчку:
-Dsun.java2d.pmoffscreen=false
Надеюсь мой совет Вам поможет.

воскресенье, 28 июня 2009 г.

Java Real-Time System under non-root user

Для тех, кто не читает документацию. Чтобы запустить JavaRTS под непривилегированным пользователем достаточно в файл /etc/security/limits.conf добавить строчки:

username      soft   cpu       unlimited
username      -      rtprio    100
username      -      nice      40
username      -      memlock   unlimited

username - имя вашего пользователя. Или создать группу с такими ограничениями и добавить в нее пользователя.

Подробнее прочитать можно здесь

вторник, 5 мая 2009 г.

Создание шифрованного раздела в linux используя cryptsetup-luks.

Давно я хотел сделать раздел в linux аналог pgpdisk в windows, которым я активно пользовался лет 5 назад. Эта небольшая статья расскажет как создать зашифрованный раздел в linux используя сryptsetup с поддержкой LUKS.

Cryptsetup


Cryptsetup скрипт для упрощения создания и управления зашифрованными разделов в linux.



Linux Unified Key Setup (LUKS)


LUKS это стандарт для упрощения использования шифрования дисков. Он встраивает в заголовок партиции информацию о алгоритме шифрования, поэтому теперь пользователю не надо помнить его. Флэш накопитель зашифрованный с помощью этого стандарта прекрасно видится HAL'ом и будучи воткнутым в usb порт определяется как зашифрованная и перед подключением предлагает ввести ключ. Также LUKS позволяет использовать несколько ключей одновременно для разных пользователей и несколько других возможностей.



Создание и присоединение зашифрованного файла контейнера и партиции.



Сначала нам надо установить cryptsetup с поддержкой LUKS.

[foot@olin ~]$ sudo yum install cryptsetup-luks



Теперь создаем файл контейнер и loopback и присоединим его.

[foot@olin ~]$ dd if=/dev/urandom of=testfile.img bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 20.9833 s, 5.0 MB/s

[foot@olin ~]$ sudo losetup /dev/loop0 testfile.img
[foot@olin ~]$



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

[foot@olin ~]$ sudo cryptsetup luksFormat /dev/loop0

WARNING!
========
This will overwrite data on /dev/loop0 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.
[foot@olin ~]$



Партиция инициализирована и мы можем создать Device-Mapper привязку к ней.

[foot@olin ~]$ sudo cryptsetup luksOpen /dev/loop0 testfs
Enter LUKS passphrase for /dev/loop0:
key slot 0 unlocked.
Command successful.

[foot@olin ~]$ ls /dev/mapper/testfs
/dev/mapper/testfs
[foot@olin ~]$



Теперь можно отформатировать партицию.

[foot@olin ~]$ sudo mkfs.ext2 /dev/mapper/testfs
mke2fs 1.41.4 (27-Jan-2009)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
2432 inodes, 9724 blocks
486 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=9961472
2 block groups
8192 blocks per group, 8192 fragments per group
1216 inodes per group
Superblock backups stored on blocks:
8193

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[foot@olin ~]$

Примечание: ФС с поддержкой журналирования (ext3) у меня не заработало.



Присоединим партицию.

[foot@olin ~]$ mkdir ~/mnt/testfs
[foot@olin ~]$ sudo mount /dev/mapper/testfs ~/mnt/testfs/
[foot@olin ~]$ sudo chown foot:foot ~/mnt/testfs -R
[foot@olin ~]$

Примечание: Тут "foot:foot" это имя моего пользователя и группа в системе.



Подключение существующего зашифрованного файла контейнера.

[foot@olin ~]$ sudo losetup /dev/loop0 testfile.img
[foot@olin ~]$ sudo cryptsetup luksOpen /dev/loop0 testfs
Enter LUKS passphrase for /dev/loop0:
key slot 0 unlocked.
Command successful.
[foot@olin ~]$ sudo mount /dev/mapper/testfs ~/mnt/testfs/
[foot@olin ~]$



Отключение зашифрованного файла контейнера.

[foot@olin ~]$ sudo umount ~/mnt/testfs
[foot@olin ~]$ sudo cryptsetup luksClose /dev/mapper/testfs
[foot@olin ~]$ sudo losetup -d /dev/loop0
[foot@olin ~]$


Добавление дополнительных ключей


LUKS позволяет добавить 8 ключей, которые могут использоваться для доступа к зашифрованному контейнеру.



Добавление нового ключа.

[foot@olin ~]$ sudo cryptsetup luksAddKey /dev/loop0
Enter any LUKS passphrase:
key slot 0 unlocked.
Enter new passphrase for key slot:
Verify passphrase:
Command successful.
[foot@olin ~]$



Просмотр заголовка LUKS.

[foot@olin ~]$ sudo cryptsetup luksDump /dev/loop0
LUKS header information for /dev/loop0

Version: 1
Cipher name: aes
Cipher mode: cbc-essiv:sha256
Hash spec: sha1
Payload offset: 1032
MK bits: 128
MK digest: be 6e 6f 7b 1a 3f 2d b6 eb 18 7d 5f b4 32 16 02 43 f0 fc 67
MK salt: 90 af e6 a6 68 a5 bf 6f ab 65 9a a3 31 65 ee 25
76 03 15 67 99 ed 24 86 d6 42 e4 2c 21 5e ea 84
MK iterations: 10
UUID: 2eae6133-f9fb-4dd5-8b40-4b621dd0f383

Key Slot 0: ENABLED
Iterations: 244906
Salt: 87 c4 c9 9b a6 9e 6d e7 6e b9 ba 1b de 8e c1 ab
eb 2a eb 53 f3 bf ad 9a 8d 1b 23 1f 0e 49 1e 9f
Key material offset: 8
AF stripes: 4000
Key Slot 1: ENABLED
Iterations: 244707
Salt: 9f 9f bb 3e 67 be e3 1e cf a2 a4 f8 f8 28 d3 e2
eb 8a 9f 30 72 09 5c 0a 27 d0 42 5f 7b 37 e3 fa
Key material offset: 136
AF stripes: 4000
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED
[foot@olin ~]$



Удаление ключа.

[foot@olin ~]$ sudo cryptsetup luksKillSlot /dev/loop0 1
Enter any remaining LUKS passphrase:
key slot 1 verified.
Command successful.
[foot@olin ~]$

пятница, 1 мая 2009 г.

Праздник первомайский

Это праздник,
Это праздник,
Это праздник
Первомайский,
Это лёгкий-лёгкий шарик,
Это новая рубашка,
Это флаги, флаги, флаги,
Это красные балконы,
Это праздник Первомайский,
Это лёгкий-лёгкий шарик,
Это мама, это папа,
Это песенка такая!

(c) И. Токмакова

пятница, 3 апреля 2009 г.

NiteCore Defender Infinity

Наконец приехал ко мне долгожданный фонарик NiteCore Defender Infinity со светодиодом Cree R2. Это мой первый фонарик, поэтому сравнивать его с другими или с аналогичным со светодиодом Cree Q5 не могу. Но все мои ожидания он оправдал.

Положительный стороны:
- Очень яркий свет для своего размера.
- Водонепроницаемый. (Прекрасная игрушка в ванну для ребенка.)
- Визуально качественная вещь.

Отрицательные стороны:
- Относительно дорогой.
- Свет холодный. Кажется, немного синеватый.
- Купить в России не удалось.

Покупал в магазине 4sevens. Они обещают бесплатную доставку по всему миру, правда самым дешёвым смособом. Я не стал рисковать и оплатил нормальную доставку и страховку. Если кто будет покупать у них - используйте купон на скидку 7% CPF8.
Итого $77.27 за сам фонарик + 15$ доставка USPS Priority International. Посылка шла 12 дней.

воскресенье, 8 марта 2009 г.

fedora + plymouth - красивый загрузчик.

Уже fedora 11 не за горами, а я только озаботился, почему у меня после обновления fedora 9 на 10 вместо графического окна загрузки появился какой-то сине-белый прогресc бар.
Оказалось, что в 10той федоре новый графический загрузчик - plymouth, но корректно работать с моим разрешением 1280x800 невозможно.
Об этом далее.

Разрешения экрана


Сначала нужно проверить видит ли драйвер фреймбуфера разрешение вашего дисплея (мое разрешение 1280x800 он отказался определять). Это можно проверить запустив команду vbetest из под рута.

[foot@olin ~]$ sudo vbetest
VBE Version 3.0
ATI ATOMBIOS
[256] 640x400 (256 color palette)
[257] 640x480 (256 color palette)
[!!!SKIPPED!!!]
[485] 1920x1440 (5:6:5)
[486] 1920x1440 (8:8:8)

Если в списке вы увидели свое разрешение, то надо дописать параметр ядра "vga=<номер режима>" (например "vga=257", что соответствует 640x480 256 цветов) в файл /etc/grub.conf и перейти к пункту "Выбор темы".

Должно выглядеть примерно так:

kernel /vmlinuz-2.6.27.19-170.2.35.fc10.i686 ro root=UUID=bfb4779a-c71d-447a-9a0b-dfb9b3b73338 rhgb quiet vga=257
initrd /initrd-2.6.27.19-170.2.35.fc10.i686.img


Если вы не нашли в списке своего разрешения, то возможно вам поможет следующие шаги.

По умолчанию kernel использует драйвер фреймбуфера vesafb. Вы можете попробовать использовать другой драйвер: radeonfb, atyfb, intelfb или nvidiafb.
(Так-же для поддержки широкоформатных разрешений экрана есть еще одни драйвер фреймбуфера uvesafb, но я с ним еще не экспериментировал.) Я покажу на примере radeonfb. Для этого нужно собрать initrd с поддержкой этого драйвера:

Бэкапим текущий initrd:
#mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.backup

Создаем новый initrd c поддержкой драйвера фрэймбуфера radeonhd:
#mkinitrd --with=radeonfb /boot/initrd-`uname -r`.img `uname -r`

Дописываем в grub.conf параметр ядра "video=radeonfb:1280x800-32@60" (тут указано необходимое разрешение, цвета, частота).
Параметр "vga=..." указывать не надо, так как это приведет к загрузке драйвера vesafb.

Выбор темы


В 10 федоре представлены сразу несколько графических загрузчиков. По умолчанию установлены solar и text (уродливый прогресс бар, который у меня так и остался). Так-же можно установить еще несколько:
#yum install plymouth-plugin-fade-in plymouth-plugin-pulser plymouth-plugin-spinfinity

Выбираем тему (тут <pluginname> - имя темы, например solar):
#plymouth-set-default-plugin <pluginname>

Обновляем initrd:
#/usr/libexec/plymouth/plymouth-update-initrd

Перезагружаемся и наслаждаемся красивым загрузчиком и мелким шрифтом в консоле!