вторник, 8 апреля 2008 г.

Sun WTK 2.2 в окружении JDK 1.6 на FreeBSD 7.0

Комплект разработчика Sun WTK портировался и тестировался для работы в Linux-окружении JDK версии 1.4.2 и выше. Его удавалось завести под Diablo JDK 1.5, нативной версией Sun J2SE SDK 1.5, но при этом нужно было обеспечить поддержку Linux ABI со стороны ядра FreeBSD — загружать модуль linux.ko и держать каталог /usr/compat/linux с так называемой linux_base.

Все компоненты, необходимые для работы эмулятора определены, осталось правильно их настроить.

Оказалось, что устаревшая версия Diablo JDK 1.5 в принципе заменима новой версией Sun J2SE SDK 1.6 из порта ports/java/jdk16 и не надо держать две версии JDK. Так что проблема запуска эмулятора Sun WTK упирается только в используемую linux_base, а с ней не так просто.

В дистрибутив FreeBSD 7.0-RELEASE входит бинарный пакет linux_base, который устанавливается по желанию. Я устанавливал систему с boot-only CD по сети, так что от пакета linux_base пришлось отказаться до последнего момента, когда понадобилось поработать с эмулятором Sun WTK. Выяснил, что из доступного набора дистрибутивов linux_base, которые можно поставить на FreeBSD из соответствующих портов ветки ports/emulators, оригинальным бинарным пакетом является сборка из порта ports/emulators/linux_base-fc4. Чтобы обеспечить работу графических Linux-приложений в Xorg под FreeBSD, нужно также инсталлировать набор библиотек из порта ports/x11/linux-xorg-libs.

Итак, последовательность шагов по установке ПО определена весьма чётко:
% cd /usr/ports/java/jdk16 && make install clean && rehash
% cd /usr/ports/java/sun-wtk && make install clean
% kldload linux.ko
% cd /usr/ports/emulators/linux_base-fc4 && make install clean && rehash
% cd /usr/ports/x11/linux-xorg-libs && make install clean && rehash
% mount -t linprocfs linprocfs /compat/linux/proc

После этого можно открыть ktoolbar и запустить демонстрационные j2me-приложения из поставки Sun WTK. Для создания и редактирования проектов в самом ktoolbar необходимо иметь соответствующие права доступа к подкаталогам /usr/local/sun-wtk.

Чтобы запускать поддержку Linux ABI при старте системы, необходимо в файл /etc/rc.conf добавить строчку:
linux_enable="YES"

В конец файла /etc/fstab добавить строчку автомонтирования файловой системы linuxprocfs:
...
linprocfs /compat/linux/proc linprocfs rw 0 0


В общем, на этом проблемы с запуском можно считать решёными.

Комментариев нет: