Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HOWTO] pilot-link: синхронизация Palm
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
hermes_jr
l33t
l33t


Joined: 26 Feb 2004
Posts: 701
Location: Moscow, Russia

PostPosted: Mon Jun 19, 2006 2:00 am    Post subject: [HOWTO] pilot-link: синхронизация Palm Reply with quote

Предупреждение! hermes_jr личность напрочь отмороженная и ответственности за утерю ваших даных, приведение железа в неработоспособное состояние, наступление апокалипсиса и т.д. нести не может по состоянию психического здоровья.
Используйте этот howto на свой страх и риск.

Предупреждение! Использование данного метода ломает JPilot.

О чём: app-pda/pilot-link-0.11.8-r1, который в портаже уже три года лежит, падает по поводу и без. Возможности нормально заливать посторонние файлы нет (а если и есть, то где-то очень глубоко, ибо пять часов поиска результатов не дали).

Итак, изобретаем велосипед. Что использовалось:
  • PalmOne Tungsten E2 - 1шт.
  • кабель usb->palm_universal - 1шт.
  • бежевая жестянка с процессором, usb портом и клавиатурой - 1шт.
  • время - 15мин.


Действие первое. Скачать pilot-link-0.12.0-pre4.tar.bz2. Список зеркал и последнюю версию можно найти на www.pilot-link.org.
Сразу же приведём архив в нормальный вид, как этого требует портаж:
Code:

# wget http://katerina.frederic.k12.wi.us/mirror/pilot-link/pilot-link-0.12.0-pre4.tar.bz2
# tar -xvjf pilot-link-0.12.0-pre4.tar.bz2

# mv pilot-link-0.12.0-pre4 pilot-link-0.12.0_pre4
# tar -cjf pilot-link-0.12.0_pre4.tar.bz2 pilot-link-0.12.0_pre4/

# cp pilot-link-0.12.0_pre4.tar.bz2 /usr/portage/distfiles
# chown portage:portage /usr/portage/distfiles/pilot-link-*


Действие второе. Разбираемся с ebuild.
Для использования оверлея необходимо задать переменную в /etc/make.conf
Code:

PORTDIR_OVERLAY="/usr/local/portage"


И скопировать туда ebuild древней версии pilot-link из портажа:
Code:

# mkdir -p /usr/local/portage/app-pda/pilot-link
# cp /usr/portage/app-pda/pilot-link/pilot-link-0.11.8-r1.ebuild /usr/local/portage/app-pda/pilot-link/pilot-link-0.12.0_pre4.ebuild


Особенно заморачиваться времени не было, поэтому на поддержку python, tcltk и java биндов пришлось забить :)
Быстренько стираем любимым редактором из нашего ebuild лишние строки и получаем:
Code:

# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

inherit perl-module eutils

DESCRIPTION="Satana nash rulevoy"
HOMEPAGE="http://www.pilot-link.org/"
SRC_URI="http://pilot-link.org/source/${P}.tar.bz2"

LICENSE="|| ( GPL-2 LGPL-2 )"
SLOT="0"
KEYWORDS="alpha amd64 ia64 ~ppc ~sparc ~x86"
IUSE="png readline"

DEPEND="virtual/libc
    sys-libs/ncurses
    png? ( media-libs/libpng )
    readline? ( sys-libs/readline )"

src_unpack() {
    unpack ${A}
    cd "${S}"
}

src_compile() {
    local myconf="--includedir=/usr/include/libpisock"

    use png && myconf="${myconf} --with-libpng=/usr"

    use readline \
        && myconf="${myconf} --with-readline=yes" \
        || myconf="${myconf} --with-readline=no"

    econf ${myconf} || die
    make || die
}

src_install() {
    make DESTDIR=${D} install || die

    dodoc ChangeLog README doc/README* doc/TODO NEWS AUTHORS
}


Создаём дайджест и устанавливаем pilot-link
Code:

# ebuild /usr/local/portage/app-pda/pilot-link/pilot-link-0.12.0_pre4.ebuild digest
# emerge pilot-link

По желанию можно добавить USE="png readline". Как говорится worksforme, а кто не скомпилил, я не виноват :)


Всё. pilot-link установлен. Теперь о плюшках.

Чтобы залить в директорию DCIM на карту памяти картинки запускаем:
Code:
# pilot-xfer -p /dev/pilot -D /DCIM -i *.jpg

Предупреждение! afaik, pilot-xfer имеет некоторые проблемы с определением оставшегося свободного места на девайсе, будьте внимательны.
Предупреждение! если в качестве аргумента -D указать несуществующую директорию, на карте будет создан файл с "мусором", указывайте путь к уже существующей директории.


Краткий список фич версии 0.12.0:
Quote:
* VFS support for reading and writing to external storage
media, such as MemoryStick and SD/MMC cards. We haven't yet worked out
how to create or remove/rename directories, so you can only install
files to the main root directory for now. More robust functionality
will come soon

* Large Segment Support: pilot-link 0.11.8 had many issues
with segments that were larger than 64k in size. It strictly adhered to
the Palm guidelines regarding these segments. Many Palm software
vendors ignored these guidelines, including Palm themselves, and
pilot-link would crash. This problem has been alleviated, and crashes
due to "large segments" should no longer occur.

* Native OSX support! Thanks to Florent Pillet, pilot-link now
works on Apple OSX using Darwin USB. To use this, simply use the port
designation of 'usb:' (minus quotes). You'll see a tremendous speed
increase and stability on this platform.

* libusb support. We now support libusb on Linux (and maybe on
FreeBSD, need testers). When you build, just make sure to use
--enable-libusb to get that support. This is not the default, because
we haven't yet verified that it works on every device and every kind of
host hardware. The port designation to use is 'usb:'. This is not the
same as Darwin USB support. If you build pilot-link for OSX with
--enable-libusb, things will break on that platform.

* popt support. Conversion of the previous getopt/getopt_long
to popt. This gives us some advantages in parsing commandline
parameters and passing them to other tools. We've also done some work
to "normalize" the common options that we were using across all
conduits. These may change and get further cleaned-up through the next
few releases.

* New conduits. Several new conduits have been added to
pilot-link, with more to follow as time and code permits:

1. read-screenshot: Now you can synchronize Palm
screenshots captured with ScreenShot from LinkeSOFT GmbH.
read-screenshot was written by Angus Ainslie.

2. read-veo: Another conduit from Angus Ainslie.
read-veo will allow you to fetch the images created by the Palm Veo
Traveler camera device.

3. pilot-wav: Written by David Turner, pilot-wav allows
you to fetch the "Voice Memo" records from your Palm device and
convert them to .wav format on your desktop.

...and many other fixes, features, and additions have been included in
this release.


Ну вот, в общих чертах и всё... Предложения как обычно кидайте в PM.
Удачного синка и спасибо за внимание :)



[edit]: https://bugs.gentoo.org/show_bug.cgi?id=127233 - рабочий ebuild с поддержкой java, архитектур ppc и amd64.


Last edited by hermes_jr on Tue Jun 20, 2006 5:00 am; edited 3 times in total
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Mon Jun 19, 2006 5:56 am    Post subject: Reply with quote

отличное руководство !
добьёшь нас танцем слов на вики?
:wink:
Back to top
View user's profile Send private message
hermes_jr
l33t
l33t


Joined: 26 Feb 2004
Posts: 701
Location: Moscow, Russia

PostPosted: Mon Jun 19, 2006 12:48 pm    Post subject: Reply with quote

танунах я ж неграмотный, пусть кто-нибудь ещё :lol:
Back to top
View user's profile Send private message
suslik
Tux's lil' helper
Tux's lil' helper


Joined: 03 Jul 2005
Posts: 133

PostPosted: Mon Jun 19, 2006 9:19 pm    Post subject: Reply with quote

после этого
jpilot выдает:
jpilot: error while loading shared libraries: libpisock.so.8: cannot open shared object file: No such file or directory
а еще - у меня нет директории /dev/pilot зато есть /dev/ttyS0 - это оно?
Back to top
View user's profile Send private message
hermes_jr
l33t
l33t


Joined: 26 Feb 2004
Posts: 701
Location: Moscow, Russia

PostPosted: Mon Jun 19, 2006 10:47 pm    Post subject: Reply with quote

Ну это вот как раз тот случай когда "лень заморачиваться было". Библиотеки не хватает потому, что я описал сборку pilot-link без поддержки java. Если добавить, то при сборке с явой вылезает такая фигня:
Code:

nux -fPIC -DHAVE_CONFIG_H -L ../../libpisock/.libs -lpisock -shared -o libjpisock.so ./libjpisock.c
./libjpisock.c: In function ‘_jobject* Java_org_gnu_pilotlink_PilotLink_readAppInfo(JNIEnv*, _jobject*, jint, jint)’:
./libjpisock.c:107: error: invalid conversion from ‘jbyte*’ to ‘int’
./libjpisock.c:107: error:   initializing argument 4 of ‘PI_ERR dlp_ReadAppBlock(int, int, int, int, pi_buffer_t*)’
./libjpisock.c:107: error: invalid conversion from ‘int’ to ‘pi_buffer_t*’
./libjpisock.c:107: error:   initializing argument 5 of ‘PI_ERR dlp_ReadAppBlock(int, int, int, int, pi_buffer_t*)’
./libjpisock.c: In function ‘_jobject* Java_org_gnu_pilotlink_PilotLink_getAppInfoBlock(JNIEnv*, _jobject*, jint, _jstring*)’:
./libjpisock.c:568: error: invalid conversion from ‘jbyte (*)[65535]’ to ‘int’
./libjpisock.c:568: error:   initializing argument 4 of ‘PI_ERR dlp_ReadAppBlock(int, int, int, int, pi_buffer_t*)’
./libjpisock.c:568: error: invalid conversion from ‘int’ to ‘pi_buffer_t*’
./libjpisock.c:568: error:   initializing argument 5 of ‘PI_ERR dlp_ReadAppBlock(int, int, int, int, pi_buffer_t*)’
./libjpisock.c: In function ‘_jobject* Java_org_gnu_pilotlink_PilotLink_getRecordByIndex(JNIEnv*, _jobject*, jint, jint, jint)’:
./libjpisock.c:666: error: cannot convert ‘jbyte*’ to ‘pi_buffer_t*’ for argument ‘4’ to ‘PI_ERR dlp_ReadRecordByIndex(int, int, int, pi_buffer_t*, recordid_t*, int*, int*)’
./libjpisock.c: In function ‘int pilot_connect(JNIEnv*, const char*)’:
./libjpisock.c:881: error: cannot convert ‘sockaddr*’ to ‘const char*’ for argument ‘2’ to ‘PI_ERR pi_bind(int, const char*)’
./libjpisock.c:1005: error: invalid conversion from ‘int*’ to ‘size_t*’
./libjpisock.c:1005: error:   initializing argument 5 of ‘int pi_setsockopt(int, int, int, const void*, size_t*)’
./libjpisock.c: In function ‘_jobject* Java_org_gnu_pilotlink_PilotLink_getResourceByIndex(JNIEnv*, _jobject*, jint, jint, jint)’:
./libjpisock.c:1058: error: cannot convert ‘jbyte*’ to ‘pi_buffer_t*’ for argument ‘4’ to ‘PI_ERR dlp_ReadResourceByIndex(int, int, int, pi_buffer_t*, long unsigned int*, int*)’
./libjpisock.c: In function ‘_jobject* Java_org_gnu_pilotlink_PilotLink_readDBList(JNIEnv*, _jobject*, jint, jint, jint, jint)’:
./libjpisock.c:1181: error: cannot convert ‘DBInfo*’ to ‘pi_buffer_t*’ for argument ‘5’ to ‘PI_ERR dlp_ReadDBList(int, int, int, int, pi_buffer_t*)’
make[3]: *** [java_lib] Error 1
make[3]: Leaving directory `/var/tmp/portage/pilot-link-0.12.0_pre4/work/pilot-link-0.12.0_pre4/bindings/Java'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/portage/pilot-link-0.12.0_pre4/work/pilot-link-0.12.0_pre4/bindings'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/pilot-link-0.12.0_pre4/work/pilot-link-0.12.0_pre4'
make: *** [all] Error 2

Вот. Если не лень покопаться в исходниках и поправить, будь добр сделай а (если это вообще нужно)? А то у меня времени на это не было, а чтобы голый pilot-xfer без всяких фронтендов заработал надо было срочно...
Чтобы обратно включить яву либо добавь в ebuild строку:
Code:

# после этих двух
src_compile() {
local myconf="--includedir=/usr/include/libpisock"

# добавить
myconf="${myconf} --with-java=yes"

либо просто из ебилда 11 версии не стирай всё что связано с use=java. Но ещё раз повторяю, тогда чтобы pilot-link собрался придётся попотеть. А так вообще если jpilot у тебя работал со старой версией, то лучше просто откати pilot-link и не отвлекайся на всякую ерунду :)

По поводу ttyS0 - скорее всего да, это оно же, просто я заюзал udev чтобы наверняка знать что девайс такой-то мне надо искать там-то. В /etc/udev/rules.d/92-visor.rules
Code:

BUS=="usb", SYSFS{product}=="Palm Handheld", SYMLINK="pilot%e", GROUP="pda", MODE="0660"

Подробнее описано здесь

Ну и приношу извинения за неудобства.


[edit]: https://bugs.gentoo.org/show_bug.cgi?id=127233
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum