User:Nukama
From Openmoko
m (→USB-Networking) |
|||
(18 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | = | + | = Software related = |
− | + | == [[Distributions]] == | |
− | + | === [[OpenWrt]] === | |
− | + | ||
− | + | ||
− | + | ||
− | + | append "arch s3c24xx 1" to /etc/opkg.conf | |
− | + | ||
− | + | ||
− | ==== | + | |
− | + | Useful packages: | |
+ | opkg install openssh-sftp-server | ||
+ | |||
+ | |||
+ | === [[SHR]] === | ||
+ | |||
+ | |||
+ | ==== Installation ==== | ||
+ | |||
+ | ubi - ubinized for flashing with [[NeoTool]] | ||
+ | |||
+ | ubifs - [[UBIFS]] | ||
+ | |||
+ | |||
+ | ==== Problems ==== | ||
+ | with shr-lite-eglibc-ipk--20100115-om-gta02.rootfs @ uImage-2.6.32.3-oe1+gitr1+5827b20d022fb47ce9c9731d0fb894d361e16ffe-r4-om-gta02.bin booted with qi-ubi-s3c2442-1.0.2-r0+gitr0+c38b062a609f1442e6a9e13005cfbdfd59a5ac0d.udfu | ||
+ | |||
+ | |||
+ | *whitescreen(ofstarving) from resuming and dimming, sometimes the lock-screen appears | ||
+ | |||
+ | Workaround: edit /etc/phonefsod.conf | ||
+ | |||
+ | auto_suspend = never /maybe normal would work also... | ||
+ | |||
+ | == USB-Networking == | ||
+ | |||
+ | === [[FreeBSD]] === | ||
+ | |||
+ | |||
+ | ==== devd ==== | ||
+ | |||
+ | Figure out the ugen for your Openmoko device: | ||
+ | <pre>dmesg | grep ugen | grep Linux</pre> | ||
+ | Then note down idVendor and idProduct value: | ||
<pre> | <pre> | ||
− | + | # usbconfig -d ugenU.A dump_device_desc | grep idVendor | |
+ | # usbconfig -d ugenU.A dump_device_desc | grep idProduct | ||
</pre> | </pre> | ||
− | + | Configure devd(8) to perform an action if a device with the appropriate vendor and product string is attached. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | /etc/devd.conf | |
− | + | <pre>#Openmoko Freerunner with Linux 2.6.34+ | |
− | + | attach 100 { | |
+ | device-name "ugen[0-9]+"; | ||
+ | match "vendor" "0x0525"; | ||
+ | match "product" "0xa4a2"; | ||
+ | action "perl /usr/local/etc/neo_if.pl /dev/$device-name"; | ||
+ | };</pre> | ||
− | + | This action consists of switching to network mode: | |
− | + | <pre># usbconfig -d ugenU.A set_config 1</pre> | |
+ | and assigning an IP address: | ||
+ | <pre># ifconfig ue0 192.168.0.200/24</pre> | ||
+ | This is also done with this script: | ||
− | + | /usr/local/etc/neo_if.pl | |
− | + | <pre>#!/usr/bin/perl | |
+ | my ($u, $ad) = $ARGV[0] =~ /(\d+)\.(\d+)$/; | ||
+ | print ("usage: $0 /dev/ugen4.2\n"), exit unless (length $u and length $ad); | ||
+ | print `usbconfig -u $u -a $ad set_config 1 | ||
+ | #ifconfig ue0 link 00:1f:11:01:71:62 # uncomment if moko reports: usb0: duplicate address detected! | ||
+ | ifconfig ue0 192.168.0.200/24`;</pre> | ||
− | + | Finally restart the devd daemon with: | |
+ | <pre># service devd restart</pre> | ||
− | + | If you now plug the FreeRunner into the USB port the cdce0 interface gets created and the IP address will be assigned. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |||
− | + | ==== Routing ==== | |
− | + | <pre> | |
− | + | __________________ ____________________ ____________________ | |
− | + | | | | | | | | |
− | + | | Router | | Workstation | | Freerunner | | |
− | + | | | | | | | | |
− | + | | eth0 192.168.1.1 |-----| eth0 192.168.1.2 | | | | |
− | + | ISP-----| ppp0 DHCP | | ue0 192.168.0.200 |-----| usb0 192.168.0.202 | | |
− | + | |__________________| |____________________| |____________________| | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</pre> | </pre> | ||
+ | Enable on your FreeBSD workstation ip forwarding from one interface to another: | ||
+ | <pre># sysctl net.inet.ip.forwarding=1</pre> | ||
− | + | For persistent forwarding enable gateway inside | |
− | + | /etc/rc.conf | |
− | + | <pre>gateway_enable="YES"</pre> | |
− | + | or the appropriate sysctl variable inside | |
− | + | ||
− | + | ||
+ | /etc/sysctl.conf | ||
+ | <pre>net.inet.ip.forwarding=1</pre> | ||
− | |||
− | + | Add a route inside your router. | |
− | If | + | <pre># route add -net 192.168.0.0/24 gateway 192.168.1.2</pre> |
+ | or | ||
+ | <pre># route add -host 192.168.0.202 gateway 192.168.1.2</pre> | ||
+ | |||
+ | |||
+ | Adjust the firewall of your router to pass packets from your Freerunner. | ||
+ | <pre>pass in quick on $intif inet from 192.168.0.202 to any flags S/SA keep state label "USER_RULE: Openmoko Freerunner"</pre> | ||
+ | |||
+ | If you have no control over your router use Network Address Translation. | ||
+ | |||
+ | |||
+ | ==== NAT ==== | ||
+ | |||
+ | Load kernel modules for firewall/NAT: | ||
+ | |||
+ | /boot/loader.conf | ||
<pre> | <pre> | ||
− | + | ipfw_load="YES" | |
− | + | ipdivert_load="YES" | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</pre> | </pre> | ||
− | |||
− | |||
− | + | Set default policy to accept: | |
+ | /etc/syctl.conf | ||
+ | <pre> | ||
+ | net.inet.ip.fw.default_to_accept=1 | ||
+ | </pre> | ||
− | |||
− | |||
− | |||
+ | Configure an alias for Freerunner, enable ip forwarding and firewall. | ||
+ | Enable natd on the interface connected to the router, replace eth0 with this interface (i.e. re0, em0). | ||
+ | Use the alias as redirect address inside your LAN. | ||
+ | /etc/rc.conf | ||
+ | <pre> | ||
+ | ifconfig_eth0="inet 192.168.1.2/24" | ||
+ | ipv4_addrs_eth0="192.168.1.202/32" | ||
+ | gateway_enable="YES" | ||
+ | firewall_enable="YES" | ||
+ | firewall_type="OPEN" | ||
+ | natd_enable="YES" | ||
+ | natd_interface="eth0" | ||
+ | natd_flags="-redirect_address 192.168.0.202 192.168.1.202" | ||
+ | </pre> | ||
− | |||
− | === | + | === [[OpenWrt]] === |
/etc/config/network | /etc/config/network | ||
Line 120: | Line 159: | ||
option proto static | option proto static | ||
option ifname eth0 | option ifname eth0 | ||
− | option ipaddr 192.168. | + | option ipaddr 192.168.0.202 |
option netmask 255.255.255.0 | option netmask 255.255.255.0 | ||
− | option gateway 192.168. | + | option gateway 192.168.0.200 |
option dns 208.67.222.222 | option dns 208.67.222.222 | ||
</pre> | </pre> | ||
− | + | Without modifying the /etc/config/network | |
<pre> | <pre> | ||
− | sudo iptables -I INPUT 1 -s 192.168.1. | + | sudo iptables -I INPUT 1 -s 192.168.1.1 -j ACCEPT |
− | sudo iptables -I OUTPUT 1 -s 192.168.1. | + | sudo iptables -I OUTPUT 1 -s 192.168.1.2 -j ACCEPT |
sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.1.0/24 | sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.1.0/24 | ||
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward' | sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward' | ||
</pre> | </pre> | ||
− | + | ||
+ | === Ubuntu 9.10 === | ||
<pre> | <pre> | ||
sudo iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT | sudo iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT | ||
Line 142: | Line 182: | ||
</pre> | </pre> | ||
− | == | + | == Packages == |
− | + | ||
<pre> | <pre> | ||
− | + | ffalarms | |
− | + | dates | |
− | + | openssh-sftp-server | |
− | + | tangogps | |
− | + | navit | |
+ | zinnia | ||
+ | zinnia-tomoe-zh | ||
+ | enscribi | ||
+ | ttf-arphic-uming | ||
+ | elementary-sms? | ||
+ | elementary-alarm? | ||
+ | intone | ||
+ | intone-video | ||
+ | browser | ||
+ | </pre> | ||
− | + | === Enscribi on OM2009 === | |
− | + | ||
− | + | ||
− | + | ||
− | + | Step 1: | |
− | + | opkg install http://www.opkg.org/packages/zinnia_0.04_armv4t.ipk | |
+ | opkg install http://www.opkg.org/packages/0_zinnia-tomoe-ja_0.6.0-20080911_armv4t.ipk (for Japanese support) | ||
+ | opkg install http://www.opkg.org/packages/0_zinnia-tomoe-zh_0.6.0-20080911_armv4t.ipk (for Chinese support) | ||
+ | opkg install http://www.opkg.org/packages/enscribi_0.2.0_armv4t.ipk | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Step 2: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Create symbolic links for the old libs (tested with om2009-unstable 17-Aug-2009 17:19) | |
− | + | If enscribi is linked against the new libs then these symbolic links are obsolete. | |
− | + | <pre> | |
− | + | ln -s /usr/lib/libecore_evas-ver-svn-02.so.0 libecore_evas-ver-pre-svn-01.so.0 | |
− | + | ln -s /usr/lib/libecore_fb-ver-svn-02.so.0 libecore_fb-ver-pre-svn-01.so.0 | |
− | + | ln -s /usr/lib/libecore_x-ver-svn-02.so.0 libecore_x-ver-pre-svn-01.so.0 | |
+ | ln -s /usr/lib/libecore_input-ver-svn-02.so.0 libecore_input-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libecore_x-ver-svn-02.so.0 libecore_txt-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libedje-ver-svn-02.so.0 libedje-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libembryo-ver-svn-02.so.0 libembryo-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libecore_job-ver-svn-02.so.0 libecore_job-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libevas-ver-svn-02.so.0 libevas-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libecore-ver-svn-02.so.0 libecore-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libeina-ver-svn-02.so.0 libeina-ver-pre-svn-01.so.0 | ||
+ | </pre> | ||
+ | Maybe link the old libs against the even older libs. But seems not to work. | ||
+ | <pre> | ||
+ | cd /usr/lib | ||
+ | cp /location-of-old-libs-for-enscribi/* . | ||
+ | ln -s /usr/lib/libecore_evas-ver-svn-02.so.0.9.9 libecore_evas-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libecore_fb-ver-svn-02.so.0.9.9 libecore_fb-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libecore_input-ver-svn-02.so.0.9.9 libecore_input-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libecore_job-ver-svn-02.so.0.9.9 libecore_job-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libecore-ver-svn-02.so.0.9.9 libecore-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libecore_x-ver-svn-02.so.0.9.9 libecore_x-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libecore_x-ver-svn-02.so.0.9.9 libecore_txt-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libedje-ver-svn-02.so.0.9.92 libedje-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libeina-ver-svn-02.so.0.0.2 libeina-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libembryo-ver-svn-02.so.0.9.9 libembryo-ver-pre-svn-01.so.0 | ||
+ | ln -s /usr/lib/libevas-ver-svn-02.so.0.9.9 libevas-ver-pre-svn-01.so.0 | ||
</pre> | </pre> | ||
− | / | + | Step 3: |
+ | goto "setup" --> "keyboard" --> "enscribi" | ||
+ | |||
+ | To get a Chinese/Japanese input method. Ensure, that you have Chinese/Japanes fonts installed. | ||
+ | |||
+ | opkg install task-fonts-truetype-chinese | ||
+ | |||
+ | http://trac.shr-project.org/trac/ticket/868 | ||
+ | |||
+ | |||
+ | == other tricks == | ||
+ | === A-GPS === | ||
+ | agps.sh | ||
<pre> | <pre> | ||
− | + | agps-alm.py > /dev/ttySAC1 | |
− | + | ||
− | + | ||
− | + | ||
</pre> | </pre> | ||
− | + | agps-alm.py | |
<pre> | <pre> | ||
− | #!/bin/ | + | #!/usr/bin/python |
− | + | # | |
− | + | # ublox AssistNow Online almanac downloader for Neo FreeRunner | |
− | + | # | |
− | / | + | # v0.1 |
− | ) | + | # |
− | exit 0 | + | # Wilfried Klaebe <wk-openmoko@chaos.in-kiel.de> |
+ | # | ||
+ | # Usage: | ||
+ | # | ||
+ | # agps-alm.py > /dev/ttySAC1 | ||
+ | # | ||
+ | |||
+ | import sys | ||
+ | import socket | ||
+ | import re | ||
+ | |||
+ | user='your@mail.address' | ||
+ | pwd='pwdfromublox' | ||
+ | |||
+ | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | ||
+ | s.connect(('agps.u-blox.com',46434)) | ||
+ | |||
+ | s.send('user='+user+';pwd='+pwd+';cmd=alm;lat=0;lon=0;pacc=40000000;\n') | ||
+ | |||
+ | buf = s.recv(4096) | ||
+ | while True: | ||
+ | b = s.recv(4096) | ||
+ | if not b: | ||
+ | break | ||
+ | buf += b | ||
+ | |||
+ | h = {} | ||
+ | |||
+ | while True: | ||
+ | (l,s,buf) = buf.partition('\n') | ||
+ | l = l.rstrip('\r\n') | ||
+ | # | ||
+ | sys.stderr.write(l+'\n') | ||
+ | # | ||
+ | if l == "": | ||
+ | if 'content-length' in h and h['content-length'].isdigit() and 'content-type' in h and h['content-type'] == 'application/ubx': | ||
+ | sys.stdout.write(buf[:int(h['content-length'])]) | ||
+ | sys.exit(0) | ||
+ | # | ||
+ | m = re.search('\\A(.+): (.+)\\Z',l) | ||
+ | if m: | ||
+ | h[m.group(1).lower()] = m.group(2).lower(); | ||
</pre> | </pre> | ||
+ | |||
+ | |||
+ | = Hardware related = | ||
+ | == Bicycle == | ||
+ | |||
+ | Dynamo powered openmoko (and other USB-Devices/Host) using the frequency/voltage of the dynamo to gather information about speed and distance. | ||
+ | |||
+ | Wishlist for this USB-Charger: | ||
+ | * 5V, 500-1500mA output (through diodes or MOSFET) | ||
+ | * Voltage, Frequency (should be dynamohub independable) | ||
+ | * USB-Device (maybe with USBprog) | ||
+ | |||
+ | nice to | ||
+ | * 3d compass, altimeter, thermometer (with information of distance to map tunnels, dense forest, ...) | ||
+ | * buttons for turning lights (on lowpower/on highpower/off), setting waypoints/audionotes, easy navigation of openmoko (scrolling/enter) |
Latest revision as of 20:15, 7 April 2011
Contents |
[edit]
[edit] Distributions
[edit] OpenWrt
append "arch s3c24xx 1" to /etc/opkg.conf
Useful packages:
opkg install openssh-sftp-server
[edit] SHR
[edit] Installation
ubi - ubinized for flashing with NeoTool
ubifs - UBIFS
[edit] Problems
with shr-lite-eglibc-ipk--20100115-om-gta02.rootfs @ uImage-2.6.32.3-oe1+gitr1+5827b20d022fb47ce9c9731d0fb894d361e16ffe-r4-om-gta02.bin booted with qi-ubi-s3c2442-1.0.2-r0+gitr0+c38b062a609f1442e6a9e13005cfbdfd59a5ac0d.udfu
- whitescreen(ofstarving) from resuming and dimming, sometimes the lock-screen appears
Workaround: edit /etc/phonefsod.conf
auto_suspend = never /maybe normal would work also...
[edit] USB-Networking
[edit] FreeBSD
[edit] devd
Figure out the ugen for your Openmoko device:
dmesg | grep ugen | grep Linux
Then note down idVendor and idProduct value:
# usbconfig -d ugenU.A dump_device_desc | grep idVendor # usbconfig -d ugenU.A dump_device_desc | grep idProduct
Configure devd(8) to perform an action if a device with the appropriate vendor and product string is attached.
/etc/devd.conf
#Openmoko Freerunner with Linux 2.6.34+ attach 100 { device-name "ugen[0-9]+"; match "vendor" "0x0525"; match "product" "0xa4a2"; action "perl /usr/local/etc/neo_if.pl /dev/$device-name"; };
This action consists of switching to network mode:
# usbconfig -d ugenU.A set_config 1
and assigning an IP address:
# ifconfig ue0 192.168.0.200/24
This is also done with this script:
/usr/local/etc/neo_if.pl
#!/usr/bin/perl my ($u, $ad) = $ARGV[0] =~ /(\d+)\.(\d+)$/; print ("usage: $0 /dev/ugen4.2\n"), exit unless (length $u and length $ad); print `usbconfig -u $u -a $ad set_config 1 #ifconfig ue0 link 00:1f:11:01:71:62 # uncomment if moko reports: usb0: duplicate address detected! ifconfig ue0 192.168.0.200/24`;
Finally restart the devd daemon with:
# service devd restart
If you now plug the FreeRunner into the USB port the cdce0 interface gets created and the IP address will be assigned.
[edit] Routing
__________________ ____________________ ____________________ | | | | | | | Router | | Workstation | | Freerunner | | | | | | | | eth0 192.168.1.1 |-----| eth0 192.168.1.2 | | | ISP-----| ppp0 DHCP | | ue0 192.168.0.200 |-----| usb0 192.168.0.202 | |__________________| |____________________| |____________________|
Enable on your FreeBSD workstation ip forwarding from one interface to another:
# sysctl net.inet.ip.forwarding=1
For persistent forwarding enable gateway inside
/etc/rc.conf
gateway_enable="YES"
or the appropriate sysctl variable inside
/etc/sysctl.conf
net.inet.ip.forwarding=1
Add a route inside your router.
# route add -net 192.168.0.0/24 gateway 192.168.1.2
or
# route add -host 192.168.0.202 gateway 192.168.1.2
Adjust the firewall of your router to pass packets from your Freerunner.
pass in quick on $intif inet from 192.168.0.202 to any flags S/SA keep state label "USER_RULE: Openmoko Freerunner"
If you have no control over your router use Network Address Translation.
[edit] NAT
Load kernel modules for firewall/NAT:
/boot/loader.conf
ipfw_load="YES" ipdivert_load="YES"
Set default policy to accept:
/etc/syctl.conf
net.inet.ip.fw.default_to_accept=1
Configure an alias for Freerunner, enable ip forwarding and firewall.
Enable natd on the interface connected to the router, replace eth0 with this interface (i.e. re0, em0). Use the alias as redirect address inside your LAN.
/etc/rc.conf
ifconfig_eth0="inet 192.168.1.2/24" ipv4_addrs_eth0="192.168.1.202/32" gateway_enable="YES" firewall_enable="YES" firewall_type="OPEN" natd_enable="YES" natd_interface="eth0" natd_flags="-redirect_address 192.168.0.202 192.168.1.202"
[edit] OpenWrt
/etc/config/network
config interface lan option proto static option ifname eth0 option ipaddr 192.168.0.202 option netmask 255.255.255.0 option gateway 192.168.0.200 option dns 208.67.222.222
Without modifying the /etc/config/network
sudo iptables -I INPUT 1 -s 192.168.1.1 -j ACCEPT sudo iptables -I OUTPUT 1 -s 192.168.1.2 -j ACCEPT sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.1.0/24 sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
[edit] Ubuntu 9.10
sudo iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT sudo iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
[edit] Packages
ffalarms dates openssh-sftp-server tangogps navit zinnia zinnia-tomoe-zh enscribi ttf-arphic-uming elementary-sms? elementary-alarm? intone intone-video browser
[edit] Enscribi on OM2009
Step 1:
opkg install http://www.opkg.org/packages/zinnia_0.04_armv4t.ipk opkg install http://www.opkg.org/packages/0_zinnia-tomoe-ja_0.6.0-20080911_armv4t.ipk (for Japanese support) opkg install http://www.opkg.org/packages/0_zinnia-tomoe-zh_0.6.0-20080911_armv4t.ipk (for Chinese support) opkg install http://www.opkg.org/packages/enscribi_0.2.0_armv4t.ipk
Step 2:
Create symbolic links for the old libs (tested with om2009-unstable 17-Aug-2009 17:19) If enscribi is linked against the new libs then these symbolic links are obsolete.
ln -s /usr/lib/libecore_evas-ver-svn-02.so.0 libecore_evas-ver-pre-svn-01.so.0 ln -s /usr/lib/libecore_fb-ver-svn-02.so.0 libecore_fb-ver-pre-svn-01.so.0 ln -s /usr/lib/libecore_x-ver-svn-02.so.0 libecore_x-ver-pre-svn-01.so.0 ln -s /usr/lib/libecore_input-ver-svn-02.so.0 libecore_input-ver-pre-svn-01.so.0 ln -s /usr/lib/libecore_x-ver-svn-02.so.0 libecore_txt-ver-pre-svn-01.so.0 ln -s /usr/lib/libedje-ver-svn-02.so.0 libedje-ver-pre-svn-01.so.0 ln -s /usr/lib/libembryo-ver-svn-02.so.0 libembryo-ver-pre-svn-01.so.0 ln -s /usr/lib/libecore_job-ver-svn-02.so.0 libecore_job-ver-pre-svn-01.so.0 ln -s /usr/lib/libevas-ver-svn-02.so.0 libevas-ver-pre-svn-01.so.0 ln -s /usr/lib/libecore-ver-svn-02.so.0 libecore-ver-pre-svn-01.so.0 ln -s /usr/lib/libeina-ver-svn-02.so.0 libeina-ver-pre-svn-01.so.0
Maybe link the old libs against the even older libs. But seems not to work.
cd /usr/lib cp /location-of-old-libs-for-enscribi/* . ln -s /usr/lib/libecore_evas-ver-svn-02.so.0.9.9 libecore_evas-ver-pre-svn-01.so.0 ln -s /usr/lib/libecore_fb-ver-svn-02.so.0.9.9 libecore_fb-ver-pre-svn-01.so.0 ln -s /usr/lib/libecore_input-ver-svn-02.so.0.9.9 libecore_input-ver-pre-svn-01.so.0 ln -s /usr/lib/libecore_job-ver-svn-02.so.0.9.9 libecore_job-ver-pre-svn-01.so.0 ln -s /usr/lib/libecore-ver-svn-02.so.0.9.9 libecore-ver-pre-svn-01.so.0 ln -s /usr/lib/libecore_x-ver-svn-02.so.0.9.9 libecore_x-ver-pre-svn-01.so.0 ln -s /usr/lib/libecore_x-ver-svn-02.so.0.9.9 libecore_txt-ver-pre-svn-01.so.0 ln -s /usr/lib/libedje-ver-svn-02.so.0.9.92 libedje-ver-pre-svn-01.so.0 ln -s /usr/lib/libeina-ver-svn-02.so.0.0.2 libeina-ver-pre-svn-01.so.0 ln -s /usr/lib/libembryo-ver-svn-02.so.0.9.9 libembryo-ver-pre-svn-01.so.0 ln -s /usr/lib/libevas-ver-svn-02.so.0.9.9 libevas-ver-pre-svn-01.so.0
Step 3:
goto "setup" --> "keyboard" --> "enscribi"
To get a Chinese/Japanese input method. Ensure, that you have Chinese/Japanes fonts installed.
opkg install task-fonts-truetype-chinese
http://trac.shr-project.org/trac/ticket/868
[edit] other tricks
[edit] A-GPS
agps.sh
agps-alm.py > /dev/ttySAC1
agps-alm.py
#!/usr/bin/python # # ublox AssistNow Online almanac downloader for Neo FreeRunner # # v0.1 # # Wilfried Klaebe <wk-openmoko@chaos.in-kiel.de> # # Usage: # # agps-alm.py > /dev/ttySAC1 # import sys import socket import re user='your@mail.address' pwd='pwdfromublox' s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('agps.u-blox.com',46434)) s.send('user='+user+';pwd='+pwd+';cmd=alm;lat=0;lon=0;pacc=40000000;\n') buf = s.recv(4096) while True: b = s.recv(4096) if not b: break buf += b h = {} while True: (l,s,buf) = buf.partition('\n') l = l.rstrip('\r\n') # sys.stderr.write(l+'\n') # if l == "": if 'content-length' in h and h['content-length'].isdigit() and 'content-type' in h and h['content-type'] == 'application/ubx': sys.stdout.write(buf[:int(h['content-length'])]) sys.exit(0) # m = re.search('\\A(.+): (.+)\\Z',l) if m: h[m.group(1).lower()] = m.group(2).lower();
[edit]
[edit] Bicycle
Dynamo powered openmoko (and other USB-Devices/Host) using the frequency/voltage of the dynamo to gather information about speed and distance.
Wishlist for this USB-Charger:
- 5V, 500-1500mA output (through diodes or MOSFET)
- Voltage, Frequency (should be dynamohub independable)
- USB-Device (maybe with USBprog)
nice to
- 3d compass, altimeter, thermometer (with information of distance to map tunnels, dense forest, ...)
- buttons for turning lights (on lowpower/on highpower/off), setting waypoints/audionotes, easy navigation of openmoko (scrolling/enter)