11 сентября 2009 г.

Создание iso образа диска в Mac OS X

Способ подходит для любых *nix систем, нужно только пути к устройству подкоректировать.
Все работы ведутся в терминале.
1. Вставляем диск в CD-ROM
2. Отмонтируем диск из системы (если у работает автомаунт дисков)
3. Создаем образ диска

  1. $ dd if=/dev/disk1 of=~/disk.iso bs=2048

Так же в Mac OS есть несколько интересных утилит drutil, drutil, hdid.

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

8 июля 2009 г.

Переименование проекта в xCode

1. Закрыть проект в xCode
2. Переименовываем папку в которой находится проект (если необходимо)
3. Открываем папку с проектом и переименовываем папку ".xcodeproject"
4. Удаляем папку "build"
5. Открываем переименованый проект в xCode (дважды кликнув по ".xcodeproject")
6. Идем в меню "Project/Edit Active Target" на вкладку "General" и переименовываем имя, а во вкладке "Build" выбираем "All configuration" в "Configuration" и в списке снизу переименовываем свойство параметра "Product Name".
8. Build/Clear All Targets
9. Собираем проект

2 июля 2009 г.

Деинсталяция iPhone SDK

Иногда вознкает необходимость удалить iPhone SDK (например поставить более новую версию).
Все просто, в терминале набираем:

  1. $ sudo /Developer/Library/uninstall-devtools --mode=all

вводим пароль пользователя и iPhone SDK вместе со всеми компонентами удалится.

10 июня 2009 г.

Настройка xCode для разработки под iPhone SDK

Здесь я опишу шаги по настройке Xcode для разработки на устройстве БЕЗ сертификата разработчика.
1. Предполагаем, что Xcode и iPhoneSDK (версии 2.1 или 2.2) установлены в /Developer.

2. Создаем сертификат (вместо того, который дает эппл официально). Для этого запускаем keychain и создаем сертификат типа Self Signed Root (инструкция по созданию сертификата - http://developer.apple.com).
Запоминаем имя сертификата (пусть это будет MyDeveloperCert).

3. Отключаем профилирование в Xcode, чтобы она не проверяла корректность нашего липового сертификата. Для этого исправляем файл /Developer/Platforms/iPhoneOS.platform/Info.plist следующим образом:

Для 2.1 меняем значения параметров PROVISIONING_PROFILE_ALLOWED и PROVISIONING_PROFILE_REQUIRED на NO.

Для 2.2 добавляем ключи:

  1. <key>PROVISIONING_PROFILE_ALLOWED</key>
  2. <string>NO</string>
  3. <key>PROVISIONING_PROFILE_REQUIRED</key>
  4. <string>NO</string>

в секцию DefaultProperties.

4. Идем в /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates и копируем папку Applications в, например, Pwned Applications (чтобы не портить оригинальные темплейты).

5. Далее, для каждого темплейта (каталога) из папки Pwned Applications правим следующие файлы:

Info.plist:
Добавляем следующий ключ.

  1. <key>SignerIdentity</key>
  2. <string>Apple iPhone OS Application Signing</string>


___PROJECTNAME___.xcodeproj/project.pbxproj:
Исправляем значения параметров (их там несколько) CODE_SIGN_IDENTITY[sdk=iphoneos*] на название нашего сертификата (в нашем примере это MyDeveloperCert).

Такие же операции надо провести над любым официальным проектом программы для iPhoneOS (например над демкой HelloWorld).

6. Устанавливаем на телефон патченный MobileInstallation (например, MobileInstallationPatch через Сидию, репозиторий http://www.iphone.org.hk/apt/).

Для тех, кто хочет понимать что там такого патчится привожу перевод объяснения javacom.

  1. Исправить E0 на A0
  2. Для прошивки 2.1 по адресу 0x00009d06.
  3. В прошивке 2.2 файл не изменился.

Для тех, кто хочет понимать еще больше -- take this fucked IDA and goahead :-)


Для проверки запускаем Xcode, создаем новый проект для iPhone (выбираем тот проект, файлы которого мы изменяли) и собираем его.
Подключаем телефон, Xcode спросит, будем ли мы использовать этот телефон для девелопмента -- отвечаем, что будем.
При сборке проекта для устройства Xcode спросит, можно ли пользоваться сертификатом. После сборки, программа будет установлена на телефоне и загружена. Загрузка программы на телефоне под управлением Xcode занимает большее время, нежели запуск ее без Xcode.

Я сделал, как описано, для SDK 2.1. После обновления на SDK 2.2 пришлось снова править файл /Developer/Platforms/iPhoneOS.platform/Info.plist. В остальном никаких изменений делать не пришлось. Мой проект, сделанный в 2.1 работает в 2.2 нормально и на устройство с 2.2 устанавливается нормально.

Разные версии SDK и прошивки телефона работать вместе не будут.

(c) www.iphones.ru

7 июня 2009 г.

Настройка интернет шлюза Ubuntu для wi-fi сети с статическими IP адресами

Есть два интерфейса:
wlan0 - беспроводный адаптер, к которому будут коннектится наши беспроводные устройства
eth0 - устройство которое смотрит в интернет

Настраиваем интерфейс wlan0:
добавляем в файл /etc/network/interfaces

  1. auto wlan0
  2. iface wlan0 inet static
  3. address 192.168.0.1
  4. netmask 255.255.255.0
  5. wireless_mode Ad-Hoc
  6. wireless_channel 10
  7. wireless_essid home
  8. wireless_key 1234567890


Разрешаем пересылку пакетов:

  1. $ sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf


включаем NAT и сохраняем настройки в файл:

  1. $ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  2. $ sudo iptables-save > /etc/iptables.up.rules


добавляем в /etc/networks/interfaces в секцию wlan0:

  1. pre-up iptables-restore < /etc/iptables.up.rules
  2. up route add -net 192.168.0.0 netmask 255.255.255.0 dev wlan0
  3. up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0


Перегружаем сеть:

  1. $ sudo /etc/init.d/networking restart


(c) afreedenfield.livejournal.com

Установка ffmpeg и x264

1. Удаляем x264, libx264-dev, и ffmpeg если они были установлены:

  1. $ sudo apt-get purge ffmpeg x264 libx264-dev

2. Получаем зависимые пакеты необходимые для установки FFmpeg и x264:

  1. $ sudo apt-get update
  2. $ sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libtheora-dev libxvidcore4-dev

3. Установка x264:

  1. $ git clone git://git.videolan.org/x264.git
  2. $ cd x264
  3. $ ./configure
  4. $ make
  5. $ sudo checkinstall --fstrans=no --install=yes --pkgname=x264 --pkgversion "1:0.svn`date +%Y%m%d`-0.0ubuntu1" --default

4. Установка ffmpeg:

  1. $ svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
  2. $ cd ffmpeg
  3. $ ./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-$ libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid
  4. $ make
  5. $ sudo checkinstall --fstrans=no --install=yes --pkgname=ffmpeg --pkgversion "3:0.svn`date +%Y%m%d`-12ubuntu3" --default


(с) ubuntuforums.org

11 ноября 2008 г.

Установка Mac OS на ноутбук Acer Aspire 1650

Среди многих существующих операционных систем мне больше всего хотелось «пощюпать» Mac OS, предыдуший опыт запуска этой ОС под VMWare ничего толкового мне не дал из-за жутко медленной работы эмулятора. Покупать компьютер от Apple ради этого нет причины, хорошо, что Apple производят ОС под процессоры Intel, хотя есть сборки и под процессоры AMD.
Сборки которые устанавливаются на «железо» не от компании Apple называются «Хакинтош». Вот такую сборку я и устанавливал на свой ноутбук Acer Aspire 1650. К сожаленю скриншотов я не наделал, да и незачем, руководств по установке много в интернете, да и в конце статьи дам ссылки.
Сразу скажу, что из окола десятка выкачаных мной дистрибутивов установились только 4. Но это не означает, что их поставить невозможно, просто эти 2 установились без особых "танцев с бубном". Я хотел иметь рабочюю систему быстро, и выкачать другой дистрибутив для меня было гараздо проще, чем копаться в конфигурационных файлах и эксперементирования с драйверами. Тестировал версии от Tiger 10.4.1 до Leopard 10.5.5 различных сборок: iDeneb, Kalyway, Leo4All, iATKOS, JaS.
Приступим к установке.
Мы имеем записанй на DVD исталяцию хакинтош и ноутбук Acer Aspire 1650. Везде советуют записывать образ хакинтоща на болванку на минимальной скорости, что ж не игнорируйте этого, может это еще одно причина по которой у меня не поставились нокоторые сборки.
Загружаемся с нашего DVD. Установка должна запустится автоматически. Если началась загрузка с вашего жесткого диска, то либо вы не выставили в БИОС-е загрузку с DVD-Rom либо нужно воспользоватся "командным интерпретатором" загрузки ядра Mac OS. Для этого при загрузке жмем F8 как только загрузка доходит до выбора загрузочного раздела. Немного о командах который предаставляет этот интерпретатор:
-v - вывод расширеной информации в консоль (для получения места подвисания установки)
-x - однопользовательский режим
cpus= - жесткое указание кол-ва процессоров в системе
"Graphics Mode" - разрешение графичиского режима
утановка происходит в несколько логичных шагов, не забудте отформатировать ваш раздел жесткого диска на который будете ставить систему с помошью утилиты «Disk Utilites» в «Mac OS journaled» (это на шаге выбора установочного раздела). Вам не обязательно иметь «Apple ID» для завершения установки, просто пропустите тот шаг, где его спрашивают.

PS: Итак система установлена, но грузатся только при наличии диска в DVD-ROMе. У меня первой системой стоит Ubuntu, и загрузчик grub инсталяция хакинтоша совсем не попортила. Загружаем Ubuntu и из под суперпользователя (root) редактируем файл /boot/grub/menu.lst, добавляя в него строки:

  1. title          Mac OS Leopard 10.5.5
  2. rootnoverify   (hd0,0)
  3. makeactive
  4. chainloader    +1
  5. boot

где в строке «rootnoverify (hd0,0) » число в скобках после запятой означает номер раздела на который установлена хакинтош, hd0 — номер жесткого диска (тут всегда hd0).

9 октября 2008 г.

Монтирование удаленных файловых систем по SSH и Samba

ssh
Мне в процессе работы часто приходится заходить по SSH на разные сервера. Как-то я задался вопросом: «А нельзя ли облегчить себе жизнь?». Выход был найден довольно быстро sshfs.
sshfs - это утилита, которая позволяет монтировать удаленные системы и работать с ними так, как будто это файловая система на вашем компьютере. Преимуществом утилиты является легкость в обращении и передача данных по зашищенному соединению.
Итак, приступим к установке. Запускаем терминал и вводим команду:

  1. $ sudo apt-get install sshfs

теперь, для использования sshfs вам необходимо добавить вашего пользователя в группу fuse (если нужно монтировать фс из-под другого пользователя, то добавляем и его):

  1. $ sudo usermod -a -G fuse <имя_пользователя>

Все готово, теперь можно использовать:

  1. $ sshfs <name>@192.168.102.20:/home/derand/ <mountPoint>

где:
name — имя пользователя на уделенной машине,
192.168.102.20 - IP-аддресс удаленного компьютера,
/home/derand/ - папка на удаленной машине,
mountPoint — локальная директория, в которую смнтируется удаленная файловая система (/home/derand).
Чтобы отмонтировать удаленную ситему введите:

  1. $ umount <mountPoint>

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

  1. sshfs#<name>@192.168.102.20:/home/derand/ <mountPoint> fuse defaults,auto 0 0


Samba
Если вам необходимо смонтировать некоторый Windows-ресурс, необходимо установить пакет smbfs:

  1. $ sudo apt-get install smbfs

монтируется командой:

  1. $ smbmount //192.168.102.10/Share <mountPoint> -o rw,iocharset=utf8,codepage=cp866,username=myname,password=mypasswd

где:
//192.168.102.10 — удаленный сервер, где расположен общедоступный Windows-ресурс,
Share — имя расшареного ресурса на нем,
mountPoint — локальная директория в которую будет монтироватся ресурс,
rw — монтирование как для чтения, так и для записи (ro — только для чтения),
iocharset=utf8 — кодировка в которой будет отображатся смонтированый ресурс на вашем компьютере
codepage=cp866 — кодировка на сервере.
Username — указывает имя пользователя(myname) для доступа на сервер, опция password указывает пароль.
Отмонтировать можно командой:

  1. $ smbumount <mountPoint>

И для автоматического монтирования ресурса при загрузке системы нужно добавить строчку в /etc/fstab:

  1. //192.168.102.10/Share &lt;mountPoint&gt; cifs auto,users,rw 0 0

22 мая 2008 г.

VMWare server в Ubuntu 8.04

У меня возникла задача написать кроссплатформенный код, а непосредственно, чтоб работал и под Windows и под Mac OS. Среду разработки я выбрал Qt, так как его код легко компилируется на этих платформах, захотелось покопаться в чем-то новом для себя, да и еще заказчик сделал акцент на этом языке.
Проблемой для меня стало тестирование моего кода под Mac OS, так как нет возможности «пощюпать» настоящий Mac. Да, можно конечно было поставить еще одну систему (так называемую «хакинтош»), но мне б пришлось переразбивать свой винт, что меня совсем не устраивает. Поэтому выбор пал на виртуальную машину. С выбором ПО виртуальной машины вопросы отпали почти сразу, после большого кол-ва ссылок на образы виртуалок под VMWare server. Установка самого VMWare оказалась не тривиальной (sudo apt-get...), далее приводится установка VMWare server для Ubuntu 8.04 взятая с:

Небольшое руководство по установке продукта VMware Server на последнюю версию Ubuntu. Так же представлено решение проблемы с компиляцией модуля vmmon.
Установим необходимые пакеты
Код:
aptitude install build-essential linux-headers-`uname -r` xinetd

Скачайте дистрибутив VMware server по адресу http://register.vmware.com. По ссылке необходима регистрация, но она займет у вас пару минут, после чего вы получите серийный номер (или несколько если вам надо) для дистрибутива программы, и возможность скачать архив с самой программой.
Запустим установку:
tar -vxzf VMware-server-1.0.5-80187.tar.gz
cd vmware-server-distrib
./vmware-install.pl

Когда вы дойдете до пункта принятия лицензионного соглашения и напишите yes прервите установку и проделайте описаное ниже.
Необходимо скачать патч исправляющий ошибки сборки модулей, он доступен по ссылке http://vmkernelnewbies.googlegroups.com.
Распакуйте и примените патч:
tar -zxf vmware-any-any-update-116.tgz
cd vmware-any-any-update-116
./runme.pl

Далее завершим настройку VMware:
vmware-config.pl


Затем выполните команду:
cp /lib/libgcc_s.so.1 /usr/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1

Теперь можно запускать VMware либо командой vmware либо из меню Программы > Прочее > VMware server console
На этом установка завершена, но например у меня возникли проблемы при сборке модуля vmmon.
В исходных кодах допущена небольшая ошибка исправить которую можно выполнив несколько простых операций с файлами которые я приведу ниже
Ошибка:
include /asm/bitops_32.h:9:2: error: #error only
can be included directly, and vmmon-only compile fails

Решение ошибки:
Отредактировать исходный код файла модуля:
cd /usr/lib/vmware/modules/source
cp vmmon.tar vmmon.tar.orig
tar xvf vmmon.tar
cd vmmon-only/include/
vim vcpuset.h
Перейдите к линии 74 и измените строку: #include “asm/bitops.h” на: #include “linux/bitops.h”
rm vmmon.tar
tar cvf vmmon.tar vmmon-only/
rm -rf vmmon-only/
vmware-config.pl

После выполненных действий с файлами модуль скомпилировался нормально и установка завершилась как следует.


У меня проблемм с vmmon небыло.
Следующим шагом было — поиск подходящего образа виртуальной системы, их в сети довольно много. У меня со второго образа все запустилось (и то, потому, что первый я скачал из-за невнимательности для 64-битной архитектуры, хотя третий скачанный не пошел).
ЗЫ: Образы брал с torrents.ru, thepiratebay.org и www.mininova.org