http://openmoko.org/api.php?action=feedcontributions&user=Phantom&feedformat=atomOpenmoko - User contributions [en]2024-03-29T04:40:34ZUser contributionsMediaWiki 1.19.24http://openmoko.org/wiki/Talk:Flashing_the_GSM_FirmwareTalk:Flashing the GSM Firmware2011-05-23T14:47:12Z<p>Phantom: /* Large microSD cards won't boot */</p>
<hr />
<div>'''please refer to this very wikipage regarding -oo and flowcontrol'''<br />
Stephan_schmidt had exactly same issue and we fixed it yesterday, using these modifications<br />
<br />
<br />
WARNING : Flash failed ! From Sleg on 2008/11/25 :<br />
<br />
<br />
I had a problem during flashing my firmware ... I started again the module by typing 's3c24xx-gpio b7=1' as said in the wiki, and it started to flash the firmware. While it was flashing (I could see the progress ...) I failed by a 'Flash operation timeout'<br />
<br />
The GSM module seems to not respond anymore :'(<br />
<br />
If I retry, I get :<br />
<br />
root@om-gta02:/usr/sbin# FLUID_PORT=/dev/ttySAC0 FLUID_FLOWCONTROL=h fluid.exe \<br />
> -oO -b 115200 \<br />
> -f $HOME/gsm_ac_gp_fd_pu_em_cph_ds_vc_cal35_ri_36_amd8_ts0-moko10.m0<br />
FLUID Revision 2.27, (23 Aug 2004). Copyright Texas Instruments, 2001-2004.<br />
Reading image file: '/home/root/gsm_ac_gp_fd_pu_em_cph_ds_vc_cal35_ri_36_amd8_ts0-moko10.m0' (2138kB) ok<br />
Bootloader: <br />
<br />
But nothing append even if I start the module by typing in another terminal 's3c24xx-gpio b7=1'<br />
<br />
Can somebody please help me ??<br />
sleg AT tsleg -DOT- com<br />
<br />
<br />
'''Thanks to Stefan Schmidt on the kernel mailing list'''<br />
My GSM went back !<br />
<br />
here is what I did :<br />
(Without FLOWCONTROL and with -oo to choose the ROM bootloader)<br />
<br />
root@om-gta02:~# opkg install http://people.openmoko.org/joerg/calypso_moko_FW/fluid_0.0+svn20070817-r2_armv4t_eabi.ipk<br />
Downloading http://people.openmoko.org/joerg/calypso_moko_FW/fluid_0.0+svn20070817-r2_armv4t_eabi.ipk<br />
Installing fluid (0.0+svn20070817-r2) to root...<br />
Configuring fluid<br />
root@om-gta02:~# opkg install http://people.openmoko.org/joerg/calypso_moko_FW/s3c24xx-gpio_1.0+svnr4130-r2.1_armv4t.ipk<br />
Downloading http://people.openmoko.org/joerg/calypso_moko_FW/s3c24xx-gpio_1.0+svnr4130-r2.1_armv4t.ipk<br />
Multiple packages (s3c24xx-gpio and s3c24xx-gpio) providing same name marked HOLD or PREFER. Using latest.<br />
Installing s3c24xx-gpio (1.0+svnr4130-r2.1) to root...<br />
Configuring s3c24xx-gpio<br />
root@om-gta02:~# wget http://people.openmoko.org/joerg/calypso_moko_FW/gsm_ac_gp_fd_pu_em_cph_ds_vc_cal35_ri_36_amd8_ts0-moko10.m0<br />
Connecting to 10.194.51.41:3128 (10.194.51.41:3128)<br />
gsm_ac_gp_fd_pu_em_c 100% |**************************************************************************************************| 5419k 00:00:00 ETA<br />
root@om-gta02:~# echo 0 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on<br />
root@om-gta02:~# echo 1 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on<br />
root@om-gta02:~# cd /usr/sbin<br />
root@om-gta02:/usr/sbin# FLUID_PORT=/dev/ttySAC0 fluid.exe -oo -b 115200 -f $HOME/gsm_ac_gp_fd_pu_em_cph_ds_vc_cal35_ri_36_amd8_ts0-moko10.m0<br />
FLUID Revision 2.27, (23 Aug 2004). Copyright Texas Instruments, 2001-2004.<br />
Reading image file: '/home/root/gsm_ac_gp_fd_pu_em_cph_ds_vc_cal35_ri_36_amd8_ts0-moko10.m0' (2138kB) ok<br />
Bootloader: (reset target) (ROM, version ?) ok<br />
Checksumming (269 * 8kB = 2152kB): ok<br />
Flash Detect: (0xEC, 0x22A0) Samsung K5A3240CT ok<br />
Program: (31 sectors, 243*8k=1944k) (******************) ok<br />
root@om-gta02:/usr/sbin# <br />
<br />
And to wake up the GSM in another ssh window :<br />
<br />
root@om-gta02:~# echo 0 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on<br />
root@om-gta02:~# echo 1 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on<br />
<br />
----<br />
<br />
<br />
<br />
<br />
<br />
i recive instead of<br />
<br />
"Program: (34 sectors, 267*8k=2136k) (*******************) ok"<br />
<br />
this<br />
<br />
"Program: (0 sectors, 0*8k=0k) () ok"<br />
<br />
iam currently reflashing the old firmware, that seems to work.<br />
<br />
iam using an non-us gsm-freerunner (recived yesterday so most likely the latest hardwar)<br />
<br />
thakoman<br />
<br />
<br />
<br />
[2008-11-19 04:46:39] <Wonka> DocScrutinizer: flashing to moko10-beta2 went though cleanly, i already had working ppp connects with the previously non-working SIM.<br />
<br />
[2008-11-19 04:48:24] <Wonka> DocScrutinizer: but there are still problems... more often than not, the GSM chip does not answer. pppd opens the device, gets "AT command interpreter ready", utters "AT\n" and gets nothing. power off, power on, reset on, reset off, try gain... sometimes it works, but mostly not.<br />
<br />
<br />
<br />
O2 UK prepay 3G SIM works with moko10-beta2, was previously not <br />
detected. T-mobile UK prepay SIM and old Orange UK contract SIM work <br />
with both old and new. Testing so far is cursory at best, but looks good.<br />
[quote: Alastair Johnson on devel-ML]<br />
<br />
[2008-11-21] <br />
I flashed 6 out of our 8 Freerunner V.6 according to the GSM/Flashing- guide. I had no problems and the previously useless 3G- SIMs are <br />
working fine now. It seems like the 3G- SIM Issue, our beloved #666, is solved. You should point it out clearly. I heard a lot of users complain about this. The solution is simple and well hidden on the website. By the way, i have new 3G- SIM cards of the following german providers running without problems (O2, T- Mobile, E-Plus, Vodafone). Before the flashing procedure the Vodafone cards were not detected. Good work guys... thanks! <br />
[[User:Reiner|Reiner]]<br />
<br />
== Works now with new gsm firmware moko10beta2 with O2 in Germany ==<br />
<br />
Very great, I can make calls now after waiting for 5 month, big surprise :).<br />
Thanks a lot! <br />
--[[User:Kevin|Kevin]] 15:18, 20 November 2008 (UTC)<br />
<br />
<br />
<br />
I'm very happy to be able to report that the update went smoothly for<br />
me (without yielding any surplus "building materials") and that a new<br />
O2 SIM from http://freesim.o2.co.uk/ which never worked in my<br />
Freerunner before now seems to be working fine. Great work!<br />
<br />
Tom<br />
<br />
-- <br />
<br />
Thomas White<br />
Department of Materials Science and Metallurgy<br />
Electron Microscopy Group (PhD Student)<br />
University of Cambridge / Downing College<br />
<br />
<br />
<br />
<br />
<br />
<br />
The flash worked without a hitch for me and now I am able to use a Vodafone<br />
prepaid SIM in my 850MHz unit while back in Europe. I am running Om2008.9<br />
with the 20081023 FDOM modifications applied.<br />
<br />
Great job!<br />
<br />
-Jacob<br />
<br />
<br />
<br />
<br />
<br />
<br />
Hello!<br />
<br />
Replying under subject Success :)<br />
I've combined what Michael said (few echo 1 >> .... and echo 0 >> .... <br />
in the other terminal) and Joerg's suggestion (-oo instead of -oO) and<br />
it worked perfectly. The upgrade to moko10 was done.<br />
<br />
So I can confirm the freerunner now works with Simobil's (Slovenian <br />
GSM operator) SIM.<br />
<br />
Great job and thanks to all that took the time to do it.<br />
<br />
Boštjan<br />
<br />
== State SD-image? ==<br />
<br />
Any update on a SD-image for GSM flashing?<br />
<br />
<br />
[joerg 2008-12-10 02:43:32]<br />
<br />
We're busy on this. Follow wiki instructions, or come up with an automatism by yourself. Expect any update on january.<br />
<br />
== Large microSD cards won't boot ==<br />
<br />
I use a usd 4Gb that boots well with Qi, but don't with NOR, this kind of usd can't be used then for flashing.<br />
I nevertheless did the test and i confirm that it worked only when i used a smaller 1Gb usd.<br />
<br />
[Philippelhardy 2009-06_27]<br />
<br />
: I had the same problem. 8 GB microSD wouldn't boot. 512 MB microSD worked fine. --[[User:Joejarvis|Joseph M. Jarvis]] 17:39, 4 August 2010 (UTC)<br />
<br />
I can't confirm that. Using a new Kingston SDHC 8GB (4) µSD from Pulster/Germany was hassle-free. Following the instruction for the SD method was straightforward and successful on first try. --[[User:Hasienda|Hasienda]] 19:21, 22 January 2011 (UTC)<br />
<br />
: I had another problem; I couldn't dd the GSM patch image to my 8 GB microSD. The 512 MB card (the one that was originally shipped with Neo) worked though. --[[User:Phantom|Phantom]] 23 May 2011 (the signature with timestamp button didn't work).<br />
<br />
== bug #1024 ==<br />
[Tebra 2009-01-13 07:45]<br />
<br />
Hi. Are you working on moko11 to fix #1024 bug?<br />
Because of that bug I can't use android distribution.<br />
<br />
== German/Vodafone ==<br />
<br />
Got a new Vodafone Prepaid SIM-Card. Didn't work with QTExtended nor with Android until I've used the procedure to upgrade the GSM-Firmware. Looks like it's not just "swiss sim cards".<br />
Regards, --[[User:Rtreffer|Rtreffer]] 17:14, 25 January 2009 (UTC)<br />
<br />
== Broken GTA01bv4 GSM Modem Fix ==<br />
<br />
I recently had to do a special process to recover my GTA01bv4 after breaking the gsm modem with a failed flash. The process is actually fairly simple.<br />
<br />
* Unplug USB and remove the battery for about 10s to ensure that the GSM chipset is powered off, then replace the battery and re-connect the USB<br />
* boot up from a distro that is neutered so that it does not access or turn on the gsm modem at all<br />
* issue this stty command twice:<br />
stty 0:4:18b2:8a00:0:0:7f:15:4:0:0:0:0:0:0:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 -F /dev/ttySAC0<br />
* issue this fluid command:<br />
FLUID_PORT=/dev/ttySAC0 fluid.exe -oo -od13,13 -vvv -b115200 -f $HOME/filename.m0<br />
* in another ssh session, issue this command:<br />
echo 1 > /sys/bus/platform/devices/neo1973-pm-gsm.0/power_on<br />
<br />
After this, the flashing proceeded as expected, and all seems alright. I'll have to push a new distro to it to be certain, but all looks good so far.<br />
[[User:Quinn Storm|Quinn Storm]] 22:39, 16 March 2009 (UTC)<br />
<br />
Added note about battery removal. [[User:Mmontour|Mmontour]] 01:51, 17 March 2009 (UTC)<br />
<br />
== Flash using uSD card image worked! ==<br />
I'm now able to use my "MobilePlus" (Mobistar network) SIM which failed to register previously.<br />
Thanks for this excellent tool!<br />
<br />
--[[User:M8ram|M8ram]] 15:16, 26 April 2009 (UTC)<br />
<br />
Successful update here. Didn't fix unregistering SIM card under Android. I'll test few more things. --[[User:Mikeful|Mikeful]] 22:06, 18 June 2009 (UTC)<br />
<br />
Same here. Worked at first try upgrading a GTA2v6 with Moko9-Beta1 to Moko11 here. --[[User:Hasienda|Hasienda]] 19:25, 22 January 2011 (UTC)<br />
<br />
== What is FLUID? ==<br />
Please create a link to an explanation of what FLUID is when FLUID is first mentioned at the top of the page.<br />
<br />
==The name of the page ==<br />
The name of this page is GSM/Flashing, which may be confused with [[Flashing_the_Neo_FreeRunner]] ?<br />
You could call it Firmware/Flashing (which breaks a lot of links .. and you need a stub.. )<br />
<br />
--[[User:Pike|pike]] 00:07, 18 May 2009 (UTC)<br />
<br />
==Remove uSD - optional ? ==<br />
<br />
At the bottom of par.3, it reads<br />
<br />
''>>You may can now remove bat and uSD''<br />
<br />
.. ("may"/"can") - "if you want to". I don't see a reason why you should ? <br />
<br />
I did notice I couldn't get into the NoR menu without twiddling around with battery and sim; but not sure what was going on there.<br />
<br />
--[[User:Pike|pike]] 00:07, 18 May 2009 (UTC)<br />
<br />
== ===== Visibility of the final Messagge "D_O_N_E" ===== ==<br />
<br />
<br />
<br />
At the end of flashing process the final message "D_O_N_E" in green over black, it's not so readable. In general if yous see a green messagge, also if you cannot read it well, you can safely reboot, the Flashing process it's done.<br />
--[[User:Apertum|Apertum]] 13:18, 18 May 2009 (UTC)<br />
<br />
See http://pike.kw.nl/files/documents/pike/personal/photoos/2009/20090518/DSCN0644.JPG : i guess 'D_O_N_E' is more appropriately described 'when the console turns green'.<br />
--[[User:Pike|Pike]] 13:18, 18 May 2009 (UTC)<br />
<br />
:Sure, the selected font color is nonsensical, just guessable but not readable, even if you know, what should be printed there. Anyway, essentially not a problem, if it goes right in the end. --[[User:Hasienda|Hasienda]] 19:32, 22 January 2011 (UTC)<br />
<br />
That's been the rationale of doing it this way ;-)<br />
/jOERG<br />
<br />
== Suggestion for uSD Instruction Steps ==<br />
<br />
On the second step of the uSD Installation procedure with dd command, i suggest to add this text:<br />
<br />
''Before proceding '''make sure that the uSD memory is NOT already formatted'''. With simple GUI like Gparted o QParted, you can unmount the right uSD partitions, and remove all the partition to have a simple uSD not formatted (the right formatted partition will be automatically transferred with the next 'dd' image transfer command).''<br />
<br />
Because i've seen that if i have an already Ext2/3 formatted uSD (or any other partition), the 'dd' Command it's not working tranferring the image.--[[User:Apertum|Apertum]] 21:03, 18 May 2009 (UTC)<br />
<br />
The original istructions to dd to physical device will overwrite whatever filesystem may have been on uSD, incl. partition-table/MBR. If dd is not working, you encounter some different problem, maybe caused by not correctly unmounting all partitions, or by a typo in dd. The instructions cover these cases as well.<br />
<br />
-- [[User:JOERG|jOERG]] 2009-05-19 00:05<br />
<br />
== Suggestion: Add a big Note Sticky at the beginning of the page to avoid editing the page ==<br />
<br />
Suggestion: add a very big Note Sticky at the beginning of the page to avoid editing the page by the community.<br />
<br />
The beginnig phrase: "This is NO communtity driven page, please be reluctant and careful with edits. Thanks " must be a lot bigger to avoid errors, IMHO.--[[User:Apertum|Apertum]] 21:11, 18 May 2009 (UTC)<br />
<br />
---<br />
seems there's no way to place a warning big enough for everybody anywhere on the page. Probably will lock eventually.<br />
<br />
-- [[User:JOERG|jOERG]] 2009-05-19 00:05<br />
<br />
You can add a simple:<br />
<br />
{{Warning | '''This is NO communtity driven page, please be reluctant and careful with edits. Thanks''' }}<br />
<br />
It's a lot more visibile and clear, IMHO. Anyway a lock it's safer, of course.<br />
--[[User:Apertum|Apertum]] 22:34, 18 May 2009 (UTC)<br />
<br />
== Using scp from desktop ==<br />
I don't have a card reader so I tried the scp command suggested. However, at the end it returns <br />
<br />
scp: /dev/mmcblk0: truncate: Invalid argument<br />
<br />
ALternatively, I mounted the desktop PC folder with the image using nfs and dd from there.<br />
-- [[User:fmartins]] 2009-08-15<br />
<br />
I'm quite sure you're using a wrong command, what's your input?<br />
<br />
usage of scp:<br />
scp IP:path_to_orig_file IP:path_to_to_dest_file<br />
<br />
[[User:Dareus|Dareus]]<br />
<br />
----<br />
Hi! I got the same error, this is what I did:<br />
<pre><br />
$ scp flash-moko11-2.image root@192.168.0.202:/dev/mmcblk0<br />
root@192.168.0.202's password: <br />
flash-moko11-2.image 100% 270MB 293.2KB/s 15:43<br />
scp: /dev/mmcblk0: truncate: Invalid argument<br />
$<br />
</pre><br />
----<br />
<br />
== GTA02 now running MOKO11, but still having problems with SIMs ==<br />
<br />
I updated my GTA02 to MOKO11, but 2 of my 3 SIM's (All from same carrier) still doesn't work.<br />
<br />
SIM 1 works fine, with PIN and everything.<BR><br />
SIM 2 get's full GSM signal, but tells me "SOS Only" PIN Disabled<br><br />
SIM 3 doesn't recieve a GSM signal at all, and GSM modem won't turm on. PIN Disabled.<br />
<br />
All 3 SIMs works fine in my Nokia and HP phones.<br />
<br />
I have tried with SHR and Android distros, but it's the same result.<br />
<br />
Is there a MOKO12 on the way??</div>Phantomhttp://openmoko.org/wiki/FileSystem_microSD_cardsFileSystem microSD cards2009-06-04T03:50:09Z<p>Phantom: Added titles and the contents block.</p>
<hr />
<div>[[Category:Hardware]]<br />
<br />
{{Languages|FileSystem microSD cards}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
= Which file system to use =<br />
<br />
I got a new SD card. Which file system is the best?<br />
<br />
Short answer: ext3. Other options: ext2, vfat. Don't use wear-aware file systems like jffs2 and ubifs.<br />
<br />
= Why ext3 =<br />
<br />
Long answer:<br />
In principle you can use any file system (fs) that is supported by the kernel in your Open Moko, commonly FAT, ext2, and ext3. reiserfs is currently not available in the standard OM kernel. What sets ext3 apart from FAT and ext2 is the journaling (also in reiserfs). <br />
<br />
The journal is an extra data structure used to make sure that the file system is always in a consistent state. Typically, if a crash happens in the system, the file system might get corrupted and even become unusable. In simple terms, the fs first saves all the data needed to perform the operation in the journal and only then starts updating the file system. If something goes wrong, the fs can rely on the journal to safely repeat the operation and repair the file system. Without a journal, the operation will certainly be lost and it might not even be possible to fix the file system.<br />
<br />
If you check the community list (see note 1 below), you'll see people vouching both for fat and ext2 but also others experiencing corruption and annoyed with both file systems. Even though ext3 is not error-proof, since it does not do a verification of what is written in the disk, ext3 remains as the choice to minimise corruption.<br />
<br />
There are three disadvantages with the journaled file system:<br />
# lower performance at write time, since there is the extra work of the journal<br />
# increased chance of damaging the SD card due to extra use of the journal causing wearing<br />
# increased space usage (for the journal)<br />
<br />
Regarding performance, if you are using the SD mostly for static storage like maps or music files, it should not be a big problem. After the initial storage phase, the reads won't be delayed by the journal. Have also a look at [http://www.debian-administration.org/articles/388 this benchmark] between several Linux file systems. <br />
<br />
Regarding the extra wearing, the number of write accesses before wearing seem to be sufficiently high not to have to bother with it, and the SD card in itself as automatic wearing leveling which will ensure that the journal will be written in another place after some time. All in all, sd card damage due to the journal should not be a practical issue.<br />
<br />
FAT might already be the fs in your card when you got a new one. It has the advantage of being recognised in many other systems. The data structures are simpler which might mean less writes on the sd-card and less code being executed (unverified) and you'll find more tools available to recover information when you get errors.<br />
<br />
It is also important to note that ext is faster than FAT (benchmark, anyone?) but, most importantly, it supports owner/group concept and permissions, which FAT doesn't. Of course, since FR is in general a single user device, the permissions might be not so important. Another advantage of ext2/3 is support for hard/soft links, which is typically useful to avoid redundant copies of files. For instance, if you are storing maps and you have blank tiles files, you can keep a single blank file and have all the others be just a link to this one (you would need a script for that to make it practical)<br />
<br />
= Why not jffs2 or ubifs =<br />
<br />
What about file systems like jffs2 and ubifs, which are aware of flash card wearing?<br />
<br />
SD cards, according to SanDisk specs, should have wear leveling logic, which controls the number of writes and remaps blocks as needed. Wear-aware file systems might actually play against the logic of the card and are usually not recommendable.<br />
<br />
= Notes =<br />
<br />
Note 1: this page is mostly based on feedback from the OpenMoko community list: see [http://lists.openmoko.org/pipermail/community/2009-January/040521.html here] and [http://lists.openmoko.org/pipermail/community/2009-February/041072.html here].<br />
<br />
Note 2: file systems are quite complex components of an operating system, each one with different weak and strong points, which makes it difficult to give a definitive answer to tell which file system is the best. As you can see from the mailing list posts, you'll find people vouching for any of these three options. Furthermore, although the mentioned are well-known, there are actually not yet benchmarks specific to the Open Moko architecture in combination with microSD cards, of which there are many models around.</div>Phantomhttp://openmoko.org/wiki/FileSystem_microSD_cards/ruFileSystem microSD cards/ru2009-06-04T03:47:46Z<p>Phantom: Исправлено форматирование в описании недостатков журналируемой системы.</p>
<hr />
<div>[[Category:Hardware]]<br />
<br />
{{Languages|FileSystem microSD cards}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
= Какую файловую систему выбрать =<br />
<br />
Я раздобыл новую SD-карту. Какую файловую систему выбрать?<br />
<br />
Краткий ответ: ext3. Другие варианты: ext2, vfat. Не используйте файловые системы, учитывающие износ, вроде jffs2 или ubifs.<br />
<br />
= Почему ext3 =<br />
<br />
В принципе, вы можете применять любые файловые системы (ФС), которые поддерживаются ядром ОС вашего смартфона. Как правило, это FAT, ext2 и ext3. Поддержка reiserfs на данный момент не включена в стандартное ядро. Отличие ext3 от FAT и ext2 состоит в наличии журналирования (которое также есть в reiserfs). <br />
<br />
Журнал&nbsp;&mdash; это дополнительная структура данных, которая обеспечивает целостность ФС. Обычно при крахе операционной системы ФС повреждается и даже может стать непригодной к использованию. ФС, имеющая журнал, сначала записывает изменения в журнал, и лишь потом изменяет основные данные. Если что-то пошло не так, ФС может обратиться к журналу, повторить записанные там операции и восстановить данные. Без журнала подобные действия невозможны, и в случае сбоя может оказаться невозможно восстановить ФС.<br />
<br />
Если вы почитаете рассылку сообщества (см. прим. 1 ниже), то увидите, что одна часть участников ратует за fat и ext2, в то время как другая часть, имевшая дело с повреждением данных, считает обе системы не лучшим выбором. Хотя ext3 не гарантирует отсутствие ошибок (она не проверяет запись), она остаётся лучшим вариантом с точки зрения минимизации потерь при повреждении ФС.<br />
<br />
Журналируемая ФС имеет три недостатка:<br />
# Пониженная производительность при записи, поскольку ФС выполняет дополнительные действия с журналом.<br />
# Повышенная вероятность повреждения SD-карты, поскольку работа с журналом вызывает дополнительный износ.<br />
# Пониженный полезный объём, поскольку часть полного объёма устройства занята журналом.<br />
<br />
Касательно производительности: если вы используете SD-карту преимущественно для хранения статичных данных, вроде карт и музыки, то с производительностью проблем не будет. После начальной инициализации хранилища операции чтения не будут замедляться работой с журналом. Рекомендуем также ознакомиться со [http://www.debian-administration.org/articles/388 сравнительным тестированием] нескольких ФС Linux.<br />
<br />
Касательно повышенного износа: гарантированное количество циклов записи достаточно велико, чтобы не беспокоиться на этот счёт. Кроме того, SD-карты имеют встроенные механизмы, делающие износ равномерным, так что журнал периодически будет перемещаться в другое место. В общем, повреждение SD-карты журналом вообще не должно быть проблемой, возникающей на практике.<br />
<br />
Скорее всего, ваша новая карта уже отформатирована производителем в формате FAT. Плюс FAT в том, что она распознаётся многими операционными системами. Структура FAT проста, а значит, работа с ней требует меньше операций записи (спорное заключение&nbsp;&mdash; прим. phantom) и меньше вычислительных затрат (не проверено); кроме того, существует множество инструментов для восстановления данных после сбоев.<br />
<br />
Также важно, что ext быстрее FAT (тесты?), но, что самое важное, она поддерживает права, чего нет в FAT. Конечно, FreeRunner в целом предполагает единственного пользователя, и права, наверное, не так важны. Другое преимущество ext2/3 заключается в поддержке жёстких и символических ссылок, что позволяет избавиться от избыточных копий файлов. Например, если вы храните карты, и некоторые фрагменты являются пустыми, вы можете сделать единственный файл для пустого фрагмента и во всех случаях, где это необходимо, сделать ссылки на него (для этого потребуется скрипт).<br />
<br />
= Почему не jffs2 или ubifs =<br />
<br />
Как насчёт файловых систем типа jffs2 и ubifs, которые учитывают износ Flash-памяти?<br />
<br />
SD-карты, в соответствии со спецификациями SanDisk, должны иметь механизм, балансирующий износ, который контролирует число операций записи и при необходимости переадресует блоки. ФС, учитывающие износ, могут на деле работать против внутренней логики SD-карты, поэтому применять их на картах не рекомендуется.<br />
<br />
= Примечания =<br />
<br />
1: Эта статья написана в основном по отзывам пользователей почтовой рассылки сообщества OpenMoko: подробности [http://lists.openmoko.org/pipermail/community/2009-January/040521.html здесь] и [http://lists.openmoko.org/pipermail/community/2009-February/041072.html здесь].<br />
<br />
2: Файловые системы являются достаточно сложными компонентами операционной системы и имеют разные сильные и слабые стороны, поэтому дать уверенный ответ на вопрос, какая ФС является наилучшей, весьма затруднительно. Если вы почитаете рассылку сообщества, то увидите, что у каждой из трёх упомянутых ФС есть сторонники. Кроме того, хотя приведённые соображения резюмируют известные и проверенные факты, до сих пор нет сравнительных тестов, учитывающих специфику архитектуры OpenMoko в сочетании с microSD-картами.</div>Phantomhttp://openmoko.org/wiki/FileSystem_microSD_cards/ruFileSystem microSD cards/ru2009-06-04T03:26:12Z<p>Phantom: Добавлены заголовки и содержание.</p>
<hr />
<div>[[Category:Hardware]]<br />
<br />
{{Languages|FileSystem microSD cards}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
= Какую файловую систему выбрать =<br />
<br />
Я раздобыл новую SD-карту. Какую файловую систему выбрать?<br />
<br />
Краткий ответ: ext3. Другие варианты: ext2, vfat. Не используйте файловые системы, учитывающие износ, вроде jffs2 или ubifs.<br />
<br />
= Почему ext3 =<br />
<br />
В принципе, вы можете применять любые файловые системы (ФС), которые поддерживаются ядром ОС вашего смартфона. Как правило, это FAT, ext2 и ext3. Поддержка reiserfs на данный момент не включена в стандартное ядро. Отличие ext3 от FAT и ext2 состоит в наличии журналирования (которое также есть в reiserfs). <br />
<br />
Журнал&nbsp;&mdash; это дополнительная структура данных, которая обеспечивает целостность ФС. Обычно при крахе операционной системы ФС повреждается и даже может стать непригодной к использованию. ФС, имеющая журнал, сначала записывает изменения в журнал, и лишь потом изменяет основные данные. Если что-то пошло не так, ФС может обратиться к журналу, повторить записанные там операции и восстановить данные. Без журнала подобные действия невозможны, и в случае сбоя может оказаться невозможно восстановить ФС.<br />
<br />
Если вы почитаете рассылку сообщества (см. прим. 1 ниже), то увидите, что одна часть участников ратует за fat и ext2, в то время как другая часть, имевшая дело с повреждением данных, считает обе системы не лучшим выбором. Хотя ext3 не гарантирует отсутствие ошибок (она не проверяет запись), она остаётся лучшим вариантом с точки зрения минимизации потерь при повреждении ФС.<br />
<br />
Журналируемая ФС имеет три недостатка:<br />
- Пониженная производительность при записи, поскольку ФС выполняет дополнительные действия с журналом.<br />
- Повышенная вероятность повреждения SD-карты, поскольку работа с журналом вызывает дополнительный износ.<br />
- Пониженный полезный объём, поскольку часть полного объёма устройства занята журналом.<br />
<br />
Касательно производительности: если вы используете SD-карту преимущественно для хранения статичных данных, вроде карт и музыки, то с производительностью проблем не будет. После начальной инициализации хранилища операции чтения не будут замедляться работой с журналом. Рекомендуем также ознакомиться со [http://www.debian-administration.org/articles/388 сравнительным тестированием] нескольких ФС Linux.<br />
<br />
Касательно повышенного износа: гарантированное количество циклов записи достаточно велико, чтобы не беспокоиться на этот счёт. Кроме того, SD-карты имеют встроенные механизмы, делающие износ равномерным, так что журнал периодически будет перемещаться в другое место. В общем, повреждение SD-карты журналом вообще не должно быть проблемой, возникающей на практике.<br />
<br />
Скорее всего, ваша новая карта уже отформатирована производителем в формате FAT. Плюс FAT в том, что она распознаётся многими операционными системами. Структура FAT проста, а значит, работа с ней требует меньше операций записи (спорное заключение&nbsp;&mdash; прим. phantom) и меньше вычислительных затрат (не проверено); кроме того, существует множество инструментов для восстановления данных после сбоев.<br />
<br />
Также важно, что ext быстрее FAT (тесты?), но, что самое важное, она поддерживает права, чего нет в FAT. Конечно, FreeRunner в целом предполагает единственного пользователя, и права, наверное, не так важны. Другое преимущество ext2/3 заключается в поддержке жёстких и символических ссылок, что позволяет избавиться от избыточных копий файлов. Например, если вы храните карты, и некоторые фрагменты являются пустыми, вы можете сделать единственный файл для пустого фрагмента и во всех случаях, где это необходимо, сделать ссылки на него (для этого потребуется скрипт).<br />
<br />
= Почему не jffs2 или ubifs =<br />
<br />
Как насчёт файловых систем типа jffs2 и ubifs, которые учитывают износ Flash-памяти?<br />
<br />
SD-карты, в соответствии со спецификациями SanDisk, должны иметь механизм, балансирующий износ, который контролирует число операций записи и при необходимости переадресует блоки. ФС, учитывающие износ, могут на деле работать против внутренней логики SD-карты, поэтому применять их на картах не рекомендуется.<br />
<br />
= Примечания =<br />
<br />
1: Эта статья написана в основном по отзывам пользователей почтовой рассылки сообщества OpenMoko: подробности [http://lists.openmoko.org/pipermail/community/2009-January/040521.html здесь] и [http://lists.openmoko.org/pipermail/community/2009-February/041072.html здесь].<br />
<br />
2: Файловые системы являются достаточно сложными компонентами операционной системы и имеют разные сильные и слабые стороны, поэтому дать уверенный ответ на вопрос, какая ФС является наилучшей, весьма затруднительно. Если вы почитаете рассылку сообщества, то увидите, что у каждой из трёх упомянутых ФС есть сторонники. Кроме того, хотя приведённые соображения резюмируют известные и проверенные факты, до сих пор нет сравнительных тестов, учитывающих специфику архитектуры OpenMoko в сочетании с microSD-картами.</div>Phantomhttp://openmoko.org/wiki/FileSystem_microSD_cardsFileSystem microSD cards2009-06-04T03:18:46Z<p>Phantom: Added the languages bar. as there is a Russian translation now.</p>
<hr />
<div>[[Category:Hardware]]<br />
<br />
{{Languages|FileSystem microSD cards}}<br />
<br />
I got a new SD card. Which file system is the best?<br />
Short answer: ext3. Other options: ext2, vfat. Don't use wear-aware file systems like jffs2 and ubifs.<br />
<br />
Long answer:<br />
In principle you can use any file system (fs) that is supported by the kernel in your Open Moko, commonly FAT, ext2, and ext3. reiserfs is currently not available in the standard OM kernel. What sets ext3 apart from FAT and ext2 is the journaling (also in reiserfs). <br />
<br />
The journal is an extra data structure used to make sure that the file system is always in a consistent state. Typically, if a crash happens in the system, the file system might get corrupted and even become unusable. In simple terms, the fs first saves all the data needed to perform the operation in the journal and only then starts updating the file system. If something goes wrong, the fs can rely on the journal to safely repeat the operation and repair the file system. Without a journal, the operation will certainly be lost and it might not even be possible to fix the file system.<br />
<br />
If you check the community list (see note 1 below), you'll see people vouching both for fat and ext2 but also others experiencing corruption and annoyed with both file systems. Even though ext3 is not error-proof, since it does not do a verification of what is written in the disk, ext3 remains as the choice to minimise corruption.<br />
<br />
There are three disadvantages with the journaled file system:<br />
- lower performance at write time, since there is the extra work of the journal<br />
- increased chance of damaging the SD card due to extra use of the journal causing wearing<br />
- increased space usage (for the journal)<br />
<br />
Regarding performance, if you are using the SD mostly for static storage like maps or music files, it should not be a big problem. After the initial storage phase, the reads won't be delayed by the journal. Have also a look at [http://www.debian-administration.org/articles/388 this benchmark] between several Linux file systems. <br />
<br />
Regarding the extra wearing, the number of write accesses before wearing seem to be sufficiently high not to have to bother with it, and the SD card in itself as automatic wearing leveling which will ensure that the journal will be written in another place after some time. All in all, sd card damage due to the journal should not be a practical issue.<br />
<br />
FAT might already be the fs in your card when you got a new one. It has the advantage of being recognised in many other systems. The data structures are simpler which might mean less writes on the sd-card and less code being executed (unverified) and you'll find more tools available to recover information when you get errors.<br />
<br />
It is also important to note that ext is faster than FAT (benchmark, anyone?) but, most importantly, it supports owner/group concept and permissions, which FAT doesn't. Of course, since FR is in general a single user device, the permissions might be not so important. Another advantage of ext2/3 is support for hard/soft links, which is typically useful to avoid redundant copies of files. For instance, if you are storing maps and you have blank tiles files, you can keep a single blank file and have all the others be just a link to this one (you would need a script for that to make it practical)<br />
<br />
What about file systems like jffs2 and ubifs, which are aware of flash card wearing?<br />
<br />
SD cards, according to SanDisk specs, should have wear leveling logic, which controls the number of writes and remaps blocks as needed. Wear-aware file systems might actually play against the logic of the card and are usually not recommendable.<br />
<br />
Note 1: this page is mostly based on feedback from the OpenMoko community list: see [http://lists.openmoko.org/pipermail/community/2009-January/040521.html here] and [http://lists.openmoko.org/pipermail/community/2009-February/041072.html here].<br />
<br />
Note 2: file systems are quite complex components of an operating system, each one with different weak and strong points, which makes it difficult to give a definitive answer to tell which file system is the best. As you can see from the mailing list posts, you'll find people vouching for any of these three options. Furthermore, although the mentioned are well-known, there are actually not yet benchmarks specific to the Open Moko architecture in combination with microSD cards, of which there are many models around.</div>Phantomhttp://openmoko.org/wiki/FileSystem_microSD_cards/ruFileSystem microSD cards/ru2009-06-04T03:18:03Z<p>Phantom: Первый перевод оригинальной англоязычной страницы.</p>
<hr />
<div>[[Category:Hardware]]<br />
<br />
{{Languages|FileSystem microSD cards}}<br />
<br />
Я раздобыл новую SD-карту. Какую файловую систему выбрать?<br />
<br />
Краткий ответ: ext3. Другие варианты: ext2, vfat. Не используйте файловые системы, учитывающие износ, вроде jffs2 или ubifs.<br />
<br />
Подробный ответ:<br />
В принципе, вы можете применять любые файловые системы (ФС), которые поддерживаются ядром ОС вашего смартфона. Как правило, это FAT, ext2 и ext3. Поддержка reiserfs на данный момент не включена в стандартное ядро. Отличие ext3 от FAT и ext2 состоит в наличии журналирования (которое также есть в reiserfs). <br />
<br />
Журнал&nbsp;&mdash; это дополнительная структура данных, которая обеспечивает целостность ФС. Обычно при крахе операционной системы ФС повреждается и даже может стать непригодной к использованию. ФС, имеющая журнал, сначала записывает изменения в журнал, и лишь потом изменяет основные данные. Если что-то пошло не так, ФС может обратиться к журналу, повторить записанные там операции и восстановить данные. Без журнала подобные действия невозможны, и в случае сбоя может оказаться невозможно восстановить ФС.<br />
<br />
Если вы почитаете рассылку сообщества (см. прим. 1 ниже), то увидите, что одна часть участников ратует за fat и ext2, в то время как другая часть, имевшая дело с повреждением данных, считает обе системы не лучшим выбором. Хотя ext3 не гарантирует отсутствие ошибок (она не проверяет запись), она остаётся лучшим вариантом с точки зрения минимизации потерь при повреждении ФС.<br />
<br />
Журналируемая ФС имеет три недостатка:<br />
- Пониженная производительность при записи, поскольку ФС выполняет дополнительные действия с журналом.<br />
- Повышенная вероятность повреждения SD-карты, поскольку работа с журналом вызывает дополнительный износ.<br />
- Пониженный полезный объём, поскольку часть полного объёма устройства занята журналом.<br />
<br />
Касательно производительности: если вы используете SD-карту преимущественно для хранения статичных данных, вроде карт и музыки, то с производительностью проблем не будет. После начальной инициализации хранилища операции чтения не будут замедляться работой с журналом. Рекомендуем также ознакомиться со [http://www.debian-administration.org/articles/388 сравнительным тестированием] нескольких ФС Linux.<br />
<br />
Касательно повышенного износа: гарантированное количество циклов записи достаточно велико, чтобы не беспокоиться на этот счёт. Кроме того, SD-карты имеют встроенные механизмы, делающие износ равномерным, так что журнал периодически будет перемещаться в другое место. В общем, повреждение SD-карты журналом вообще не должно быть проблемой, возникающей на практике.<br />
<br />
Скорее всего, ваша новая карта уже отформатирована производителем в формате FAT. Плюс FAT в том, что она распознаётся многими операционными системами. Структура FAT проста, а значит, работа с ней требует меньше операций записи (спорное заключение&nbsp;&mdash; прим. phantom) и меньше вычислительных затрат (не проверено); кроме того, существует множество инструментов для восстановления данных после сбоев.<br />
<br />
Также важно, что ext быстрее FAT (тесты?), но, что самое важное, она поддерживает права, чего нет в FAT. Конечно, FreeRunner в целом предполагает единственного пользователя, и права, наверное, не так важны. Другое преимущество ext2/3 заключается в поддержке жёстких и символических ссылок, что позволяет избавиться от избыточных копий файлов. Например, если вы храните карты, и некоторые фрагменты являются пустыми, вы можете сделать единственный файл для пустого фрагмента и во всех случаях, где это необходимо, сделать ссылки на него (для этого потребуется скрипт).<br />
<br />
Как насчёт файловых систем типа jffs2 и ubifs, которые учитывают износ Flash-памяти?<br />
<br />
SD-карты, в соответствии со спецификациями SanDisk, должны иметь механизм, балансирующий износ, который контролирует число операций записи и при необходимости переадресует блоки. ФС, учитывающие износ, могут на деле работать против внутренней логики SD-карты, поэтому применять их на картах не рекомендуется.<br />
<br />
Примечание 1: эта статья написана в основном по отзывам пользователей почтовой рассылки сообщества OpenMoko: подробности [http://lists.openmoko.org/pipermail/community/2009-January/040521.html здесь] и [http://lists.openmoko.org/pipermail/community/2009-February/041072.html здесь].<br />
<br />
Note 2: Файловые системы являются достаточно сложными компонентами операционной системы и имеют разные сильные и слабые стороны, поэтому дать уверенный ответ на вопрос, какая ФС является наилучшей, весьма затруднительно. Если вы почитаете рассылку сообщества, то увидите, что у каждой из трёх упомянутых ФС есть сторонники. Кроме того, хотя приведённые соображения резюмируют известные и проверенные факты, до сих пор нет сравнительных тестов, учитывающих специфику архитектуры OpenMoko в сочетании с microSD-картами.</div>Phantomhttp://openmoko.org/wiki/USB_NetworkingUSB Networking2009-06-04T00:44:34Z<p>Phantom: Moved the languages bar to the top, as it is on the most of the pages. Made a minor edit in the formatting; the text now flows the contents.</p>
<hr />
<div>[[Category:USB]]<br />
[[Category:Implemented]]<br />
[[Category:Networking]]<br />
<br />
{{Languages|USB_Networking}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
= Openmoko Networking Setup =<br />
<br />
In order to communicate via TCP/IP to your FreeRunner, a basic understanding of the networking expectations is required. Each end of the USB connection forms a LAN (local area network) segment, with the FreeRunner's USB networking device at one end (default 192.168.0.202) and your laptop or desktop at the other end (192.168.0.200 in this guide).<br />
<br />
Normally, your desktop machine will know how to reach the Internet, having had its gateway (the IP address of the machine or device which knows how to send packets to machines beyond your subnet) configured via DHCP or statically (probably via a router). For the FreeRunner to reach the Internet, your desktop will have to be configured to route and masquerade (NAT) packets from it.<br />
<br />
Normally, none of this is an issue, but problems can arise when the subnet between the FreeRunner and your desktop overlap with the desktop to the router (which forms a second LAN), since your desktop might not know how to route traffic properly.<br />
<br />
In other words: if your existing router and desktop have addresses 192.168.0.(something) changing them to e.g. 192.168.1.(something) might save you a lot of troubleshooting later. A discussion of this is [http://lists.openmoko.org/pipermail/support/2008-August/thread.html#1277 here].<br />
<br />
== Things to keep in mind ==<br />
<br />
* When the FreeRunner suspends it disables its USB networking interface. Therefore it is a good idea to turn off the FreeRunners suspend function when using USB networking. You can do this manually or automatically. [https://wiki.muc.ccc.de/openmoko This] site has two scripts ([https://wiki.muc.ccc.de/openmoko#disable_suspend_if_on_external_power one for Om 2007] and [https://wiki.muc.ccc.de/openmoko#disable_suspend_if_on_external_power1 one for Om 2008]) which disable suspend if the FreeRunner is on external power.<br />
<br />
Some scripts do a tail-grep on certain log file. If you have disabled syslog and/or klog, this might be a problem for detecting when the device is connected to your machine via USB. When logging is disabled, it can be enabled on Ubuntu be /etc/init.d/klogd restart; /etc/init.d/sysklog restart<br />
<br />
== So is it "usb0" or is it "eth1"? ==<br />
<br />
* The documentation below refers to the network interface name on the host side as "usb0". However, the actual name is determined by your host system, and many host systems will rename the interface based on the mac (or hardware) address presented by the Neo or Freerunner. Use the "ifconfig -a" command, or use "dmesg" to examine the output from your host's kernel, to find which interface name was actually assigned to your device. If it wasn't "usb0", it will almost always be the next available "eth''n''" name.<br />
<br />
In all the steps below where you see the interface referred to as "usb0", you may need to substitute the interface name that your host assigned.<br />
<br />
For those interested in the technical details, the "usb0" interface name is used on the host system when the mac (hardware) address presented by the Freerunner or Neo is a locally-generated (random) address. Because the address is random, the ability to easily manage the interface with network managment tools is somewhat compromised. In fact, the Freerunner has been assigned official mac addresses, including addresses for the USB network interface. When these addresses are correctly used on the Freerunner (which is the case with the Qi bootloader, and with certain of the distros for the Freerunner), then the host system sees official mac addresses, and responds by configuring a permanent network interface for that device. By convention, this permanent interface is one of the "eth" interfaces. The specific interface name chosen will be remembered, and will be used each time that specific Freerunner is connected, and used only for that Freerunner. This is a particularly useful feature for users who have multiple USB-networked devices.<br />
<br />
As of the time of this writing, the Android and SHR distros will correctly pass the official mac address to the host, and will appear as "eth''n''" interfaces on the host.<br />
<br />
= Simple Manual Linux Configuration =<br />
Try this first (as root on your desktop, with FreeRunner attached via USB cable and booted properly, not at the Boot Menu). If it works, then you can add permanent configuration or use more sophisticated setups below.<br />
=== The shortest way ===<br />
This simple way has been tested with many Linux distributions (Fedora, SuSE, Red Hat, Debian and others) and network configurations. It was even successfully applied to connect another Linux based handhelds like TDS Nomad and surely can be recommended as the first attempt. The way assumes that you have the recent Linux distribution with USB networking enabled and also rather typical network setup. <br />
<br />
With the device connected configure usb0 interface (as root):<br />
<pre><br />
sudo ip address add 192.168.0.200/24 dev usb0<br />
</pre><br />
or (deprecated)<br />
<pre><br />
sudo ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
</pre><br />
If your eth0 interface is also in the same 'range' (e.g. 192.168.0.105) then you can do the following:<br />
<br />
1. ping the Neo with<br />
# ping -I usb0 192.168.0.202<br />
2. log in to the Neo (you do not need to be a root on the desktop host just to log in).<br />
# ssh root@192.168.0.202<br />
The default password is blank.<br />
<br />
Do not forget to allow ssh (open the port 22) on your firewall so that you can connect to the device. If you suspect any firewall issues, the simplest way is to unplug the main Internet cable leaving only Neo connected and then temporary turn the firewall off.<br />
<br />
Also, some old or narrowly configured Linux distributions may not have USB networking support. For such cases the simple way might be just to upgrade.<br />
<br />
=== The more advanced way ===<br />
If the previously described simple approach does not work, you may try the more complex one.<br />
<br />
<pre>iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
sysctl -w net.ipv4.ip_forward=1<br />
ip addr add 192.168.0.200/24 dev usb0</pre><br />
<br />
If your Internet connection is also in the range 192.168.0.x then instead you might want to use only:<br />
<br />
<pre>ip addr add 192.168.0.200/28 dev usb0</pre><br />
<br />
(This will just map the net from 192.168.0.192 to 192.168.0.207 onto usb0. If you get the error 'Cannot find device "usb0"', double-check that your FreeRunner is turned on and connected by USB. If that doesn't work, try unplugging and replugging the USB cable.)<br />
<br />
And in this case you should enable ARP proxy on internet facing interface INSTEAD of using iptables:<br />
<br />
<pre>sysctl net.ipv4.conf.eth2.proxy_arp=1</pre><br />
<br />
This assuming that eth2 is connected to ISP.<br />
<br />
Then<br />
<pre>ip link set usb0 up</pre><br />
or (deprecated)<br />
<pre>ifconfig usb0 up</pre><br />
<br />
Then (ideally, not as root):<br />
<br />
<pre>ssh root@192.168.0.202</pre><br />
<br />
The default password is blank.<br />
<br />
Due to the fact that in most cases your Neo will use the same dns servers as your computer uses, you can automate the process of writing dns servers to your phone:<br />
<br />
<pre>#!/bin/sh<br />
/sbin/route add -host 192.168.0.202/32 dev usb0<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
iptables -P FORWARD ACCEPT<br />
sysctl -w net.ipv4.ip_forward=1<br />
scp /etc/resolv.conf root@192.168.0.202:/etc/resolv.conf</pre><br />
<br />
Again if your net already is 192.168.0.0, replace the POSTROUTING statement with<br />
<pre>iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/28</pre><br />
<br />
This simple script will set up routing for your Freerunner and than copy resolv.conf with dns addresses straight to the phone.<br />
All you have to do is connect phone to the computer, run the script and enjoy internet connection from your phone.<br />
<br />
=== Changing the Neo IP address ===<br />
<br />
Like mentioned above, if the default Neo subnet 192.168.0.X is already used, it might be necessary to change the<br />
Neo [http://en.wikipedia.org/wiki/IP_address IP adress] and subnet.<br />
To achieve this, edit /etc/network/interfaces on the Neo (and reboot it).<br />
In the following example the Neo will use the IP address 192.168.100.1 (instead of the default 192.168.0.202)<br />
within the network 192.168.100.X (instead of 192.168.0.X),<br />
another [http://en.wikipedia.org/wiki/Private_network private] class C network.<br />
(The [http://en.wikipedia.org/wiki/Subnetwork#Binary_subnet_masks netmask] indicates that the first 3 bytes (all bits set) are used to determine the subnet<br />
and the last byte (no bits set) to determine the machine.)<br />
The gateway (the computer, the Neo is attached to) also has to be part of the subnet and is expected to be 192.168.100.254 (instead of 192.168.0.200) here.<br />
<br />
Modifications for /etc/network/interfaces:<br />
<br />
<pre><br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.100.1<br />
netmask 255.255.255.0<br />
network 192.168.100.0<br />
gateway 192.168.100.254<br />
</pre><br />
<br />
(The network entry seems to be redundant information, since it can be derived from address and netmask?)<br />
Note that wiki articles usually expect default settings and you have to adjust the IP adress, gateway, etc entries according to your changes.<br />
<br />
= Linux Kernel Support =<br />
<br />
Your Linux desktop/laptop needs to have suitable support. In particular you will need to have enabled USB networking and masquerading support in the kernel. For default kernels in many Linux distributions this will already be the case.<br />
<br />
== USB Networking support ==<br />
<br />
The following options need to be enabled:<br />
<br />
* CONFIG_USB_USBNET (''Multi-purpose USB Networking Framework''. Module will be called <tt>usbnet</tt>)<br />
* CONFIG_USB_NET_CDCETHER (''CDC Ethernet support''. Module will be called <tt>cdc_ether</tt>)<br />
<br />
These options are available in ''Device Drivers -> USB support -> USB Network Adapters'' or ''Device Drivers -> Network Device Support -> USB Network Adapters.<br />
<br />
In order for USB networking to work you need to load the <tt>cdc_ether</tt> module (when loading <tt>cdc_ether</tt> the module <tt>usbnet</tt> will be loaded automatically). For more info see the [http://www.linux-usb.org/usbnet/ usbnet driver homepage].<br />
<br />
Olamba<br />
<br />
== Masquerading support ==<br />
<br />
Masquerading options are found in ''Networking ---> Networking options --->'' (tested on Linux 2.6.26.3).<br />
<br />
To enable the needed options you first have to enable:<br />
<br />
* CONFIG_NETFILTER (''Network packet filtering framework (Netfilter)'')<br />
<br />
Then, from<br />
<br />
''Networking ---><br />
Networking options ---><br />
[*] Network packet filtering framework (Netfilter) ---><br />
Core Netfilter Configuration --->''<br />
<br />
You need at least following options enabled as modules:<br />
<br />
* CONFIG_NF_CONNTRACK (''Netfilter connection tracking support'')<br />
* CONFIG_NF_CONNTRACK_FTP (''FTP protocol support'')<br />
* CONFIG_NETFILTER_XTABLES (''Netfilter Xtables support'')<br />
<br />
Rest of the needed options are found from<br />
<br />
''Networking ---><br />
Networking options ---><br />
[*] Network packet filtering framework (Netfilter) ---><br />
IP: Netfilter Configuration --->''<br />
<br />
You need to enable (again, as modules is fine):<br />
<br />
* CONFIG_NF_CONNTRACK_IPV4 (''IPv4 connection tracking support (required for NAT)'')<br />
* CONFIG_IP_NF_IPTABLES (''IP tables support (required for filtering/masq/NAT)'')<br />
* CONFIG_NF_NAT (''Full NAT'')<br />
* CONFIG_IP_NF_TARGET_MASQUERADE (''MASQUERADE target support'')<br />
<br />
= Firewall Issues =<br />
<br />
On some systems, you may have firewall rules which prevent this working - such as added by the iptables service on Fedora. You may care to stop these, and/or review any rules or policies you think might cause issues.<br />
<br />
The most relevant table is the nat table, which controls translation of addresses:<br />
<br />
iptables -L -t nat -v -n<br />
<br />
Unless you have a special setup, you'll want to see only the MASQUERADE rule that you apply below, and ACCEPT as the default policy. Also look at the filter table:<br />
<br />
iptables -L -t filter -v -n<br />
<br />
If this contains anything in the FORWARD chain, then this may prevent passing packets. It can be flushed with:<br />
<br />
iptables -t filter -F FORWARD<br />
<br />
= DNS =<br />
<br />
In addition to routing issues, to be practical, DNS will need to work. In some cases, you might already be running a DNS server on your desktop such as dnsmasq or bind9, which is the default assumption the FreeRunner makes. In other cases, you'll need to configure DNS to that of your router, or a DNS server further out on the internet such as that provided by your ISP.<br />
<br />
== Configure Default Neo DNS ==<br />
<br />
DNS is configured in /etc/resolv.conf on your FreeRunner.<br />
<br />
You should add the IP address of the DNS servers as provided by your ISP. Check your router's or PC's network status for the nameserver IP addresses.<br />
<br />
<pre>echo nameserver xxx.xxx.xxx.xxx > /etc/resolv.conf</pre><br />
<br />
You can also add the public DNS server called openDNS:<br />
<pre>echo nameserver 208.67.222.222 > /etc/resolv.conf<br />
echo nameserver 208.67.220.220 >> /etc/resolv.conf</pre><br />
<br />
These settings will be lost on reboot. You can set the DNS for the next connect, by adding the following to the end of the usb0 setting in /etc/network/interfaces, right above the bluetooth networking section:<br />
<pre>up echo nameserver 208.67.222.222 > /etc/resolv.conf<br />
up echo nameserver 208.67.220.220 >> /etc/resolv.conf</pre><br />
<br />
== Proxying DNS from Desktop/Laptop ==<br />
<br />
If you move about, making assumptions about the network may not be convenient, and it is possible to proxy DNS requests via your host laptop (which you are also taking with you), without running or installing a DNS server. There are a number of ways to do this:<br />
<br />
=== Proxying with dnrd ===<br />
<br />
The script is designed to use [http://dnrd.sourceforge.net/ dnrd] as the DNS proxy. The [http://buildhost.automated.it/gta01 script] and a copy of [http://buildhost.automated.it/dnrd-2.20.3.tar.gz dnrd] are available. The script also performs the initial setup of the connection as per the [[USB_Networking#Manual_method]] above.<br />
<br />
=== Proxying with a UDP forwarder ===<br />
<br />
Another easy setup is using a UDP forwarder like the one from http://www.tapor.com/udpf/ - use it with the command"<br />
<br />
<pre>udpf-elf -p=53-f=`awk '$1 == "nameserver"{print $2; exit(0);}' /etc/resolv.conf`:53</pre><br />
<br />
=== Proxying with iptables ===<br />
<br />
It is possible to forward DNS requests with iptables using the DNAT target:<br />
<br />
<pre>iptables -t nat -A PREROUTING -p tcp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1<br />
iptables -t nat -A PREROUTING -p udp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1</pre><br />
<br />
Where <tt>192.168.0.1</tt> is the IP of your router.<br />
<br />
Test if it works:<br />
<pre>ping www.google.com</pre><br />
<br />
If so, then this is sufficient for most internet access. But manual changes to resolv.conf are usually lost later if for example one uses DHCP, especially for WiFi, and so may not be convenient to configure manually.<br />
<br />
= Testing Your Connection =<br />
You should be able to connect to your Neo! Make sure you can ping your Neo to be sure.<br />
ping 192.168.0.202<br />
<br />
Then log into your Neo using ssh:<br />
ssh root@192.168.0.202<br />
The default password is blank (press enter).<br />
<br />
You can also [[scp]] files back and forth. You can telnet, SSH, SMB or do whatever you want if you install software that enables you to set up TCP/IP network over your USB connection.<br />
<br />
Now, make sure you can ping back to your desktop<br />
ping 192.168.0.200<br />
(Note that some systems like Vista, don't respond to ICMP ping by default)<br />
<br />
Try pinging the outside world (a Google IP address)<br />
ping 74.125.19.147<br />
This demonstrates that masquerading is working - your desktop is sending/receiving packets to the wider internet.<br />
<br />
Lastly, verify that DNS is correctly configured between the Neo & Network:<br />
ping www.google.com<br />
<br />
= OS or Distro Specific & Automatic Configuration =<br />
<br />
Based on [http://blog.haerwu.biz/2007/03/22/hotpluging-usbnet/ Hotplugging usbnet] by Marcin 'Hrw' Juszkiewicz.<br />
These instructions should keep you from having to run the Simple Manual Linux Configuration every time you plug in and want to connect to an Openmoko device. One run and then you're done!<br />
<br />
If the Simple Manual Linux Configuration does not work for your OS or Distro (MacOS X, MS Windows, etc) there may be instructions here that work for you.<br />
<br />
== MacOS X ==<br />
See [[MacOS_X#USB_Networking|MacOS X USB Networking]].<br />
<br />
== Windows ==<br />
See [[Neo1973_and_Windows#USB_Ethernet_emulation|Windows USB Ethernet emulation for Neo1973]].<br />
<br />
There is also a very helpful tutorial for connecting with Vista at [http://sam.curren.ws/index.cfm/2008/7/14/Using-the-Neo-FreeRunner-with-Windows-XPVista].<br />
<br />
== FreeBSD ==<br />
You need to load the cdce kernel module (if it is not already linked into your kernel). As root do:<br />
<br />
# kldload cdce<br />
<br />
The Neo should then show up as cdce0 interface and you can handle the cdce0 interface just like the usb0 device under Linux. For more information see the cdce manpage. An easy way to assign the IP address to the cdce0 interface is using the devd(8) daemon. Create the following two files,<br />
<br />
<tt>/usr/local/etc/devd/cdce.conf</tt> as:<br />
<br />
<pre><br />
notify 1 {<br />
match "system" "IFNET";<br />
match "subsystem" "cdce0";<br />
match "type" "ATTACH";<br />
action "/usr/local/etc/devd/cdce.sh $subsystem $type";<br />
};<br />
</pre><br />
<br />
and <tt>/usr/local/etc/devd/cdce.sh</tt> as:<br />
<br />
<pre><br />
#!/bin/sh<br />
case $2 in<br />
'ATTACH')<br />
ifconfig cdce0 192.168.0.200 netmask 255.255.255.0<br />
exit 0 ;<br />
;;<br />
esac<br />
exit 0<br />
</pre><br />
<br />
Then restart the devd(8) daemon with:<br />
<br />
# /etc/rc.d/devd restart<br />
<br />
If you now plugin the FreeRunner into the USB port the cdce0 interface gets created and the IP addr will be assigned.<br />
<br />
== Debian, Ubuntu and others ==<br />
<br />
Edit /etc/network/interfaces and add:<br />
<br />
<pre><br />
# freerunner<br />
allow-hotplug usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
up iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE<br />
up echo 1 > /proc/sys/net/ipv4/ip_forward<br />
down iptables -D POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE<br />
</pre><br />
<br />
This is more sophisticated than the manual setup. The 'auto usb' stanza ties into the Linux hotplug system so that when the device appears and vanishes, as happens when the FreeRunner is connected via USB, this is run.<br />
<br />
In addition, the desktop-side netmask is limited to a much smaller range, so that overlapping subnets are less of a problem - Linux will use more specific routes first when deciding where to send packets.<br />
<br />
Another possible configuration that adds DNS forward and removes<br />
the iptables changes after unplugging:<br />
<br />
in /etc/network/interfaces add<br />
<pre><br />
# freerunner<br />
allow-hotplug usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.192<br />
post-up /etc/network/freerunner start<br />
pre-down /etc/network/freerunner stop<br />
</pre><br />
<br />
create file /etc/network/freerunner<br />
<pre><br />
#!/bin/sh<br />
#<br />
# configures the freerunner for internet<br />
#<br />
#<br />
<br />
DEVICE=usb0<br />
IPADDR=192.168.0.200<br />
REMOTE_IPADDR=192.168.0.202<br />
NETMASK=255.255.255.0<br />
<br />
# get first ip for dns<br />
DNSIP=$(awk '$1 == "nameserver"{print $2; exit(0);}' /etc/resolv.conf)<br />
<br />
case "$1" in<br />
start)<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR<br />
iptables -A PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
iptables -A PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
<br />
if [ "$(cat /proc/sys/net/ipv4/ip_forward)" = "0" ]; then<br />
echo "temoprarely allow ip_forward for openmoko" > /var/run/openmoko.ip_forward<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
fi<br />
;;<br />
stop)<br />
iptables -D POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR<br />
iptables -D PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
iptables -D PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
<br />
if [ -f /var/run/openmoko.ip_forward ]; then<br />
rm /var/run/openmoko.ip_forward<br />
echo 0 > /proc/sys/net/ipv4/ip_forward<br />
fi<br />
;;<br />
esac<br />
</pre><br />
<br />
Make /etc/network/freerunner executable with<br />
chmod +x /etc/network/freerunner<br />
<br />
It is possible to use network-manager to automatically connect to the Freerunner using udev. The process uses udev to run a script when the Freerunner is plugged in. The script uses the ip command to set the mac address of the usb network interface. To begin, create /etc/udev/rules.d/80-freerunner.rules :<br />
<br />
<pre><br />
# This file causes programs to be run on device insertion.<br />
# See udev(7) for syntax.<br />
# rule to assign a fixed mac address specified in /<br />
KERNEL=="usb[0-9]*", DRIVERS=="cdc_ether", ACTION=="add", RUN+="/usr/local/sbin/freerunner-usb-add.sh %k"<br />
</pre><br />
<br />
Next, create the /usr/local/sbin/freerunner-usb-add.sh :<br />
<br />
<pre><br />
#!/bin/sh<br />
(<br />
busNum=$( printf %.2d $( expr match "$1" "usb\([0-9]*\)") )<br />
ip link set "$1" address 00:00:22:55:bb:$busNum &> /dev/null<br />
) &<br />
exit 0<br />
</pre><br />
<br />
Finally run "chmod +x /usr/local/sbin/freerunner-usb-add.sh" to make it executable. Now you can use network-manager with mac-address specific settings and get it to automatically connect.<br />
<br />
=== Ubuntu 8.10 - Easy Way === <br />
<br />
:1. Connect Neo to PC and wait about a minute when NetworkManager stops scanning usb for dhcp (wait when icon in the tray switches to normal).<br />
<br />
:2. Open "nm-connection-editor", select "Auto usb0", click "Edit", then "IPv4 Settings". Set "Method" - "Manual", click "Add". In the "Address" field write "192.168.0.200", "Netmask" - "255.255.255.0", leave "Gateway" field empty (or 0.0.0.0). Change the "Connection name" and click "Apply", then "Close".<br />
<br />
:3. Now you can connect via ssh to 192.168.0.202<br />
<br />
Note: After reflashing the Neo you have to copy the "MAC Address" from "Auto usb0" into your new connection.<br />
<br />
Then, based on [http://sebastian-bergmann.de/index.php?url=archives/801-OpenMoko-Freerunner-and-Ubuntu.html#feedback these instructions], you should be able to setup masquerading by running the following commands on your Ubuntu PC: <br />
<br />
<pre>sudo iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
sudo iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'</pre><br />
<br />
=== Ubuntu Issues ===<br />
<br />
Ubuntu 8.10 doesn't work as expected if you used /etc/network/interfaces to automate the connection.<br><br />
Network manager likes to latch onto the network device and add a default route through 192.168.0.202, breaking your network connection.<br />
Network manager also says you can't edit or remove this connection from its list. I'm going back to making the connection manually.<br><br />
Using the /usr/local/sbin/freerunner-usb-add.sh script for some automatism can be a workaround:<br />
<pre><br />
#!/bin/sh<br />
(<br />
ip address add 192.168.0.200/26 netmask dev usb0 > /dev/null<br />
ip link set usb0 up > /dev/null<br />
/etc/network/freerunner start<br />
) &<br />
exit 0<br />
</pre><br />
<br />
Ubuntu Feisty, Gutsy and Hardy reportedly have a bug where ifdown is not run when the interface is unplugged, meaning this only works once after the system is booted. This is mentioned at https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/130437<br />
<br />
One can patch /etc/udev/rules.d/85-ifupdown.rules. Moving the DRIVERS=="*?" out of the top GOTO, to ACTION=="add" line fixes the problem.<br />
<br />
<pre><br />
SUBSYSTEM=="net", GOTO="net_start"<br />
GOTO="net_end"<br />
<br />
LABEL="net_start"<br />
<br />
# Bring devices up and down only if they're marked auto.<br />
# Use start-stop-daemon so we don't wait on dhcp<br />
ACTION=="add", DRIVERS=="?*", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifup -- --allow auto $env{INTERFACE}"<br />
ck<br />
ACTION=="remove", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifdown -- --allow auto $env{INTERFACE}"<br />
<br />
LABEL="net_end"<br />
</pre><br />
<br />
The bug is that the DRIVERS variable isn't set at all when the device is unplugged.<br />
<br />
This appears to be fixed in Ubuntu 8.04 [[User:Mattt|Mattt]] 11:38, 30 July 2008 (UTC)<br />
:Actually it appears that it's not fixed, but patching that file and disconnecting and reconnecting the phone works perfectly. --[[User:Johndoesacc|Johndoesacc]] 18:37, 20 August 2008 (UTC)<br />
:Well, yes, it must be fixed because it worked for me out-of-the-box without tweaking the udev rule on 8.04 --[[User:EtienneG|EtienneG]] November 26th, 2008<br />
:It wasn't solved in my case, as of 3. February 2009 in 8.04 (AMD64), the patch above solved my problem thou. --[[User:VilleWitt|VilleWitt]] February 3td, 2009.<br />
<br />
====Iptables Configuration with GUI====<br />
<br />
Firestarter can be used to allow the freerunner to connect to the internet without manually running iptables commands. Firestarter is in the ubuntu repositories and can be installed with a <br />
<pre>sudo aptitude install firestarter</pre><br />
Once installed, the firestarter preferences dialog has a network section, under which a drop-down box appeasr which is labeled "Local network connected device." Select the freerunner, generally "Unknown device(usb0)" and check the "Enable internet connection sharing" box. Uncheck local network DHCP and the freerunner should be able to access the internet.<br />
-Tested in ubuntu 8.10--[[User:makito|Makito]] February 26, 2009<br />
<br />
Note: Firestarter needs to run as root.<br />
<br />
=== Ubuntu Workaround ===<br />
Use [http://wicd.sourceforge.net/ wicd] instead of networkmanager:<br />
It is much further in development than networkmanager yet and doesn't make any problems with USB networking. You can use the "normal" settings in /network/interfaces.<br />
;Note: Because of it's dependencies it deinstalls networkmanager.<br />
<br />
=== Ubuntu and QI ===<br />
If you have trouble connecting to the freerunner after installing qi, check to see if the address has changed to eth<n>. Many host systems will assign eth<n> addresses when they detect an official (non-locally-generated) mac address on the usb network connection. Qi passes in the official Openmoko USB mac address; u-boot does not.<br />
<br />
== Mandriva ==<br />
<br />
This first file configures the network system for the usb0 interface. Any time you plug in the FreeRunner the interface will be configured.<br />
<br />
<tt>/etc/sysconfig/network-scripts/ifcfg-usb0</tt>:<br />
<br />
<pre><br />
DEVICE=usb0<br />
BOOTPROTO=static<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
NETWORK=192.168.0.0<br />
BROADCAST=192.168.0.255<br />
ONBOOT=yes<br />
METRIC=10<br />
MII_NOT_SUPPORTED=no<br />
USERCTL=yes<br />
</pre><br />
<br />
This next file configures the static routes that we need to communicate to the subnet. Since it has "usb0" in the name, the system will automatically apply these static routes any time that the usb0 interface is configured. (i.e. when you connect the FreeRunner)<br />
<br />
<tt>/etc/sysconfig/network-scripts/usb0-routes</tt>:<br />
<br />
<pre><br />
ADDRESS0=192.168.0.200<br />
NETMASK0=255.255.255.0<br />
</pre><br />
<br />
Now we need to restart the network system to pick up the changes.<br />
<br />
service network restart<br />
<br />
<br />
This didn't work for me (Mandriva 2008.1), giving errors from Shorewall. However, simply using MCC, Network->Sharing Internet Access worked fine. You need to connect Neo when starting it. --[[User:Alih|Alih]] 18:50, 22 September 2008 (UTC)<br />
<br />
== SuSE ==<br />
<br />
/etc/sysconfig/network/ifcfg-usb0:<br />
<br />
# USB configuration for PDAs (openmoko)<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
STARTMODE=onboot<br />
<br />
For more information on getting USB networking up using YaST, see [[USB Networking with openSUSE]].<br />
<br />
== Fedora ==<br />
<br />
=== Option A - Tested with FC9, FC8 & FC5 ===<br />
<br />
edit file <tt>/etc/sysconfig/network-scripts/ifcfg-usb0</tt> to look like this:<br />
<br />
# USB configuration for PDAs (openmoko)<br />
# from <nowiki>http://www.handhelds.org/moin/moin.cgi/UsbNet</nowiki><br />
DEVICE=usb0<br />
BOOTPROTO=none<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
ONBOOT=yes<br />
<br />
and restart networking service by typing:<br />
<br />
service network restart<br />
<br />
if your '''openmoko''' is connected when you restart network you should see system message:<br />
<br />
<code>Bringing up interface usb0 [OK]</code><br />
<br />
=== Option B ===<br />
<br />
This setup is probably over-complex:<br />
<br />
/etc/sysconfig/network-scripts/ifcfg-usb0:<br />
<br />
DEVICE=usb0<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
<br />
/etc/sysconfig/network-scripts/ifup-usb:<br />
<br />
#!/bin/bash<br />
./etc/init.d/functions<br />
cd /etc/sysconfig/network-scripts<br />
../network-functions<br />
[ -f ../network ] && . ../network<br />
CONFIG=${1}<br />
need_config ${CONFIG}<br />
source_config<br />
NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`<br />
/sbin/ip addr flush dev ${DEVICE} 2>/dev/null<br />
/sbin/ip link set dev ${DEVICE} up<br />
/sbin/ip addr add dev ${DEVICE} ${IPADDR}/${NETBITS}<br />
/sbin/iptables -I POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}<br />
/sbin/sysctl net.ipv4.ip_forward=1<br />
/sbin/iptables -I FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/iptables -I FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT<br />
<br />
Set /etc/sysconfig/network-scripts/ifdown-usb:<br />
<br />
#!/bin/bash<br />
./etc/init.d/functions<br />
cd /etc/sysconfig/network-scripts<br />
../network-functions<br />
[ -f ../network ] && . ../network<br />
CONFIG=${1}<br />
need_config ${CONFIG}<br />
source_config<br />
NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`<br />
/sbin/iptables -D FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/iptables -D FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/sysctl net.ipv4.ip_forward=0<br />
/sbin/iptables -D POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}<br />
/sbin/ip link set dev ${DEVICE} down<br />
/sbin/ip addr flush dev ${DEVICE} 2>/dev/null<br />
<br />
If you are using NetworkManager, restart it and enable the usb device from its menu, otherwise it will disable your connection shortly after you enable it.<br />
<br />
/sbin/service NetworkManager restart<br />
<br />
=== Option C - tested on FC8, FC9 and F10 ===<br />
<br />
Plug in the usb cable. NetworkManager should detect the phone automatically but you should ignore it.<br />
Open Network Configuration tool (System -> Administration -> Network) and perform following steps:<br />
# Click '''New''' button on top bar<br />
# Click '''Forward'''<br />
# Select OpenMoko from device list<br />
# Click '''Forward'''<br />
# Select 'Statically set IP address:' and enter address: 192.168.0.200, netmask 255.255.255.0 (or use 255.255.255.240 if you want only route ip range 192.168.0.192-192.168.0.207). Leave gateway empty.<br />
# Click '''Forward'''<br />
# Click '''Apply''' to close add dialog<br />
# Select newly added usb0 device from the device list.<br />
# Click '''Edit''' button on top bar<br />
# You might want to remove a tick from 'Activate device when computer starts' check box.<br />
# Click '''Ok''' to close window dialog.<br />
Save settings and close the window.<br />
<br />
Open Firewall Configuration (System -> Administration -> Firewall) and enable masquerading:<br />
# Select '''Masquerading''' from left panel<br />
# Check device(s) which you'd like to share internet connection. Typically eth0 or wlan0.<br />
# Click '''Apply''' and close application<br />
<br />
Open terminal and perform (as root user):<br />
# ifdown usb0<br />
# ifup usb0<br />
The first command will remove any existing settings given by the NetworkManager and second command brings the device up with appropriate settings.<br />
<br />
Now you should be able to ping e.g. 74.125.39.99 [www.google.com] from OpenMoko. Configure /etc/resolv.conf and you should have full a internet access.<br />
<br />
==== Troubleshooting ====<br />
If Network Configuration tool cannot see the the usb0 try to unplug the usb cable for a few seconds and wait until the NetworkManager finds it again.<br />
<br />
NetworkManager will assign a new ip address for the OpenMoko if link goes down for a while. You can fix this by issuing '''ifup usb0''' again.<br />
<br />
== Red Hat or Similar (tested with Workstation 5) ==<br />
<br />
Edit /etc/sysconfig/network-scripts/net.hotplug:<br />
<br />
After this command:<br />
<br />
<pre><br />
case $INTERFACE in<br />
# interfaces that are registered after being "up" (?)<br />
</pre><br />
<br />
add<br />
<br />
<pre><br />
usb0)<br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
route add 192.168.0.202 usb0<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
exit 0<br />
;;<br />
</pre><br />
<br />
== Gentoo ==<br />
<br />
Open /etc/conf.d/net and add:<br />
<br />
<pre><br />
# Neo<br />
config_usb0=( "192.168.0.200 netmask 255.255.255.0" )<br />
routes_usb0=( "192.168.0.202/32 via 192.168.0.200" )<br />
</pre><br />
<br />
Create a new init script:<br />
<br />
<pre><br />
cd /etc/init.d<br />
ln -s net.lo net.usb0<br />
</pre><br />
<br />
=== Manual Configuration ===<br />
<br />
Put iptables into use:<br />
<br />
<pre><br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
</pre><br />
<br />
Store them:<br />
<br />
/etc/init.d/iptables save<br />
<br />
If you want the routing by default:<br />
<br />
rc-update add iptables default<br />
<br />
You must also inform the kernel, to start forwarding.<br />
<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
=== Automatic Configuration ===<br />
One way to automate all this is to create /etc/conf.d/net.usb0 as follows. It sets IP forwarding and the iptables rules all in one go. It removes the iptables rules and disables ip forwarding when the FreeRunner is unplugged.<br />
Therefore the net.usb0 service must be hotpluggable (/etc/rc.conf).<br />
<br />
<pre><br />
preup() {<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
return 0<br />
}<br />
<br />
postdown() {<br />
echo 0 > /proc/sys/net/ipv4/ip_forward<br />
iptables -D INPUT -s 192.168.0.202 -j ACCEPT<br />
iptables -D OUTPUT -s 192.168.0.200 -j ACCEPT<br />
iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
return 0<br />
}<br />
</pre><br />
<br />
== Slackware (tested with 12.1) ==<br />
<br />
Following is based on [http://www.enricozini.org/2008/tips/autodock-freerunner.html Enrico Zini's solution].<br />
<br />
Create a new udev rules file <tt>/etc/udev/rules.d/91-openmoko.rules</tt>:<br />
<br />
<pre><br />
SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="1457", ATTRS{idProduct}=="5122", RUN+="/sbin/om-usb $env{INTERFACE} start"<br />
SUBSYSTEM=="net", ACTION=="remove", ENV{INTERFACE}=="usb[0-9]", RUN+="/sbin/om-usb $env{INTERFACE} stop"<br />
</pre><br />
<br />
Then create the script <tt>/sbin/om-usb</tt>:<br />
<br />
<pre><br />
#!/bin/sh<br />
INTERFACE=$1<br />
ACTION=$2<br />
<br />
# udev fails silently when the script fails, e.g. due to commands not<br />
# being found<br />
PATH=/usr/sbin:/sbin:/usr/bin:/bin<br />
<br />
case $ACTION in<br />
'start')<br />
# Put all your setup here<br />
;;<br />
'stop')<br />
# Put all your tear down here<br />
;;<br />
*)<br />
echo "Usage: $0 {start|stop}"<br />
exit 1<br />
;;<br />
esac<br />
</pre><br />
<br />
The <tt>INTERFACE</tt> will be <tt>usb0</tt> in most cases.<br />
<br />
== Archlinux ==<br />
Following is based on [http://xenos.altervista.org/blogs/index.php?blog=3&title=openmoko-usb-networking-su-archlinux furester's solution].<br />
<br />
Install package [http://aur.archlinux.org/packages.php?ID=20220 openmoko-usb-networking] from AUR:<br />
<br />
$ yaourt -S openmoko-usb-networking<br />
<br />
= SSH Extras =<br />
<br />
Reportedly, the ssh daemon (dropbear 0.49) on the FreeRunner appears to have a bug when sending the exit status back to the client. From time to time you receive an exit status of 255.<br />
<br />
To avoid ssh adding a new line for every ssh host-key to your known_hosts you can add the following to the phone section in ~/.ssh/config (or see the snippet at : [[USB Networking#Changing_host_keys]] bellow)<br />
<br />
UserKnownHostsFile /dev/null<br />
<br />
You might want to use keys to bypass the login prompt too.<br />
<br />
== SSH Keys ==<br />
<br />
== From desktop to FreeRunner ==<br />
<br />
To generate ssh keys for use as a login mechanism type:<br />
<br />
user@host$ ssh-keygen -t rsa<br />
<br />
When prompted for a password either hit enter for no password (''not really a good idea'') or enter a password for this key. ssh into the phone and create ~/.ssh:<br />
<br />
root@phone# mkdir ~/.ssh<br />
<br />
Then from your desktop copy the '''.pub''' file to the phone.<br />
<br />
user@host$ scp ~/.ssh/id_rsa.pub root@phone:~/.ssh/authorized_keys<br />
<br />
You should now be able to ssh directly into the phone without a password prompt using a command like 'ssh root@phone' from the account user@host because the public key in the file user@host:~/.ssh/id_rsa.pub is contained in the list of keys which have access in the file root@phone:~/.ssh/authorized_keys (since scp is used, only one key exists, but you can grant access to the phone from more than one account, for example user@host, user@laptop).<br />
<br />
To make ssh login as root by default, add the following lines to ~/.ssh/config:<br />
<br />
Host phone<br />
User root<br />
<br />
Replace ''phone'' with the hostname or ip of your phone. You should now be able to ssh into the phone without having to type ''root@'' every time.<br />
<br />
To disable password logins ('''after setting up key access''') edit /etc/init.d/dropbear and change the following line:<br />
<br />
DROPBEAR_EXTRA_ARGS=<br />
<br />
to<br />
<br />
DROPBEAR_EXTRA_ARGS="-s"<br />
<br />
You will need to restart dropbear for this to take effect.<br />
<br />
=== From FreeRunner to Desktop ===<br />
<br />
Generate the key:<br />
<br />
dropbearkey -t rsa -f id_rsa<br />
<br />
The output will look something like this:<br />
<br />
Will output 1024 bit rsa secret key to 'id_rsa'<br />
Generating key, this may take a while...<br />
Public key portion is:<br />
ssh-rsa AAAAB3Nza[...]<br />
Fingerprint: md5 ca:e8:f0:b7:f6:7b:c2:b6:b9:71:e4:45:86:a9:ff:b8<br />
<br />
Copy and paste the one line (in this example, starting with 'ssh-rsa' onto the end of the host's authorized_keys file (often in ~/.ssh/).<br />
<br />
From the phone, ssh with -i:<br />
<br />
ssh -i id_rsa user@host<br />
<br />
=== Changing host keys ===<br />
<br />
If you reflash, your hosts keys will change. Try this ~/.ssh/config snippet:<br />
<br />
Host moko<br />
HostName 192.168.0.202<br />
StrictHostKeyChecking no<br />
UserKnownHostsFile /dev/null<br />
User root<br />
<br />
This is suggested because ssh on your desktop may complain if the key matching a certain IP changes (stored in .ssh/known_hosts). Now you have set this, you can issue the following command to connect to your moko :<br />
<br />
ssh root@moko<br />
<br />
== GUI on desktop through SSH ==<br />
<br />
To get the GUI on the FreeRunner onto the desktop via USB, you can use ssh as follows (execute on desktop):<br />
<br />
xhost +<br />
ssh -l root -X -v 192.168.0.202<br />
<br />
Using this, run openmoko-finger-demo for example, and it will open up on the desktop. To get landscape view, just resize the GUI window on the desktop.<br />
<br />
If you get an error like this:<br />
<br />
<tt><br />
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ExecFailed: dbus-launch failed to<br />
autolaunch D-Bus session: Autolaunch requested, but X11 support not compiled in.<br />
</tt><br />
<br />
you need to set the DBUS_SESSION_BUS_ADDRESS environment variable to the value on the FreeRunner before launching the process from your desktop. You can find the value of this variable by using a command such as<br />
<br />
ps auxwwwwe | grep -m 1 DBUS_SESSION_BUS_ADDRESS<br />
<br />
Note that you must run that command on the FreeRunner. Back on your desktop, run the process you want with the ''env'' command like this:<br />
<br />
env DBUS_SESSION_BUS_ADDRESS=''dbus_address'' ''process'' #(isn't the "env" redundant here?)<br />
<br />
==Display Remote Applications on FreeRunner==<br />
<br />
To get desktop apps to show up on your FreeRunner, first log in:<br />
<br />
ssh -l root 192.168.0.202<br />
<br />
Then run:<br />
<br />
DISPLAY=:0 xhost +192.168.0.200<br />
<br />
After this you can close the ssh session. Back on the desktop computer, run:<br />
<br />
DISPLAY=openmoko:0 xclock<br />
<br />
Note that the xhost command will allow remote applications on 192.168.0.200 to access the X server. It will allow anyone on the desktop machine to access the X server of the neo, including snooping anything you type on it. To disallow remote applications again, run this in the neo:<br />
<br />
DISPLAY=:0 xhost -192.168.0.200<br />
<br />
== sftp ==<br />
After you get the SSH connection working, it is possible to use Konqueror, Nautilus or another sftp - enabled tool to browse the phone filesystem and deploy the test applications. Just enter sftp://root@192.168.0.202 into address bar.<br />
<br />
== sshfs ==<br />
You can use sshfs to mount the phones filesystem into the hosts filesystem. Make sure that fuse-sshfs is installed and that you are allowed to use fuse. Now run:<br />
<br />
sshfs 192.168.0.202:REMOTE_PATH LOCAL_MOUNT_POINT<br />
<br />
REMOTE_PATH can now be accessed through LOCAL_PATH.<br />
<br />
==Automated setup network and mounting partitions==<br />
<br />
See [https://bugs.launchpad.net/ubuntu/+bug/289548 Ubuntu bug report in launchpad].</div>Phantomhttp://openmoko.org/wiki/NOR_FlashNOR Flash2009-06-03T11:32:08Z<p>Phantom: Added the languages bar. as there is a Russian translation now.</p>
<hr />
<div>{{Languages|NOR Flash}}<br />
<br />
Both the Neo 1973 and the Neo FreeRunner have [[NAND Flash]].<br />
<br />
The Neo FreeRunner also has NOR flash.<br />
<br />
The FreeRunner keeps a boot loader in the NOR memory. This means that you can completely wipe the NAND memory (intentionally or otherwise!) and the FreeRunner can still be recovered by booting from NOR flash and loading new images into NAND via a simple USB connection (See [[Flashing the Neo FreeRunner]]). <br />
<br />
For an article comparing the two technologies, see this page from Linux Devices: [http://www.linuxdevices.com/articles/AT4422361427.html NAND vs. NOR flash -- Tradeoffs and Strategies]<br />
<br />
In short, NOR flash acts more like non-volatile RAM; programs can execute directly from NOR, and NAND flash acts more like a disk drive- all read/write operations are done in blocks not bytes and programs are first copied into RAM and then they are executed from RAM.<br />
<br />
See also this Wikipedia entry: [http://en.wikipedia.org/wiki/Flash_memory Flash memory]<br />
<br />
[[Category:Flash| ]]</div>Phantomhttp://openmoko.org/wiki/NOR_Flash/ruNOR Flash/ru2009-06-03T11:31:40Z<p>Phantom: Первый перевод оригинальной англоязычной страницы.</p>
<hr />
<div>[[Category:Flash| ]]<br />
<br />
{{Languages|NOR Flash}}<br />
<br />
И Neo1973, и Neo FreeRunner имеют встроенную память типа [[NAND Flash]].<br />
<br />
Neo FreeRunner вдобавок имеет память типа NOR Flash.<br />
<br />
В этой памяти содержится загрузчик FreeRunner. Это означает, что вы можете полностью уничтожить содержимое памяти NAND (намеренно или нет), но, тем не менее, вы сможете восстановить ваш FreeRunner, загрузив его через NOR и записав новый образ в NAND через USB (см. [[Flashing the Neo FreeRunner]]). <br />
<br />
Сравнительное описание технологий NAND и NOR вы можете найти в статье [http://www.linuxdevices.com/articles/AT4422361427.html NAND vs. NOR flash -- Tradeoffs and Strategies].<br />
<br />
Вкратце, NOR Flash похожа на ПЗУ: программы могут запускаться непосредственно с NOR, в то время как NAND ближе к внешнему накопителю: все операции чтения/записи делаются блоками, а не байтами, и программы сначала копируются в ОЗУ, а потом уже там запускаются.<br />
<br />
См. также [http://en.wikipedia.org/wiki/Flash_memory статью о Flash-памяти в Википедии]</div>Phantomhttp://openmoko.org/wiki/NAND_FlashNAND Flash2009-06-03T11:18:38Z<p>Phantom: Added the languages bar. as there is a Russian translation now.</p>
<hr />
<div>{{Languages|NAND Flash}}<br />
<br />
NAND flash is a type of flash memory that is inexpensive, and comes with a certain proportion of bad blocks, and only allows block access. There is one 64 MB (nominal) chip on the Neo1973, while there is a 256 MB chip in the [[GTA02]].<br />
<br />
The capacity is nominal - more blocks are available early on, and fail over the use of the device, with the specified capacity guaranteed to be there at the specified number of writes. (100K in this case) <br />
<br />
See [[Partitions]] to know how that memory is allocated for paritions to run the system.<br />
<br />
See also the Wikipedia entry on [http://en.wikipedia.org/wiki/Flash_memory Flash memory].<br />
<br />
[[Category:Flash| ]]</div>Phantomhttp://openmoko.org/wiki/NAND_Flash/ruNAND Flash/ru2009-06-03T11:18:08Z<p>Phantom: Первый перевод оригинальной англоязычной страницы.</p>
<hr />
<div>[[Category:Flash| ]]<br />
<br />
{{Languages|NAND Flash}}<br />
<br />
NAND Flash&nbsp;&mdash; это недорогой вид Flash-памяти. Как правило, модули с самого начала содержат определённое число неработающих ячеек. Доступ возможен только к блоку. В Neo1973 встроено 64 МБ такой памяти, в [[GTA02]]&nbsp;&mdash; 256 МБ.<br />
<br />
Ёмкость следует понимать в формальном смысле: доступный объём со временем использования уменьшается. Впрочем, определённое число циклов перезаписи гарантируется производителем&nbsp;&mdash; 100&nbsp;000 циклов для памяти, устанавливаемой в смартфоны Openmoko.<br />
<br />
В разделе [[Partitions]] описано, как эта память используется операционной системой.<br />
<br />
См. также [http://en.wikipedia.org/wiki/Flash_memory статью о Flash-памяти в Википедии].</div>Phantomhttp://openmoko.org/wiki/Booting_the_Neo_FreeRunner_via_U-BootBooting the Neo FreeRunner via U-Boot2009-06-03T11:07:43Z<p>Phantom: Made a minor edit in the formatting; the text now flows the contents.</p>
<hr />
<div>{{Languages|Booting the Neo FreeRunner}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
The Neo FreeRunner contains two FLASH memories: NOR FLASH and NAND FLASH. A boot loader is present in both memories.<br />
<br />
The normal power up uses the boot loader in NAND FLASH.<br />
NAND FLASH can be updated (written) using the boot loader and a utility (dfu_util) running on an attached host computer.<br />
<br />
NOR FLASH can not be written to using the boot loader. The reason for this is to provide a failsafe boot loader in NOR FLASH, in case the boot loader in NAND FLASH is corrupted while updating itself. <br />
<br />
You can boot your Neo FreeRunner in the following ways:<br />
<br />
: [[Image:Circle2.gif|10px]] You can power it up into an Openmoko image directly (default, when powered-on for the first time). <br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into the [[Bootloader|U-Boot bootloader]] via [[NAND Flash]].<br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into U-Boot via NOR Flash.<br />
<br />
Booting the device into NAND and NOR Flash allows you to update the kernel and root filesystem.<br />
<br />
==Start the Openmoko Image==<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu2.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
Press and hold Power button for about 8 seconds, until the Openmoko splash screen turns up. You may now release the Power button and the Neo FreeRunner will continue to boot into the Openmoko Image.<br />
<br />
The boot time to the "Today" page is about 2 minutes. Improvements are being discussed in the [[Booting time reduction plan]].<br />
<br />
</td></tr></table><br />
</div><br />
<br />
==Log into U-Boot in the NAND Flash==<br />
<br />
<table><tr><td><br />
<br />
[[Image:Menu7.jpg|200px|right|thumb]]<br />
<br />
* Press and hold Power button<br />
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds. <br />
* A boot menu will appear. This indicates the NAND flash has booted. <br />
* Press the AUX button to select one of the options and then press the Power button to execute.<br />
</td></tr></table><br />
<br />
==Log into U-Boot in the NOR Flash==<br />
<br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;"><br />
<br />
[[Image:Menu6.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
<br />
This option is usually used by developers or when [[Flashing the Neo FreeRunner|flashing]] (imaging) the FreeRunner. <br />
<br />
* Press and hold the AUX button<br />
* While still pressing the AUX button, press and hold the Power button. <br />
* Then release the AUX button<br />
* You should see the boot menu for the NOR Flash. This means you have entered the NOR flash. <br />
<br />
Flashing can be performed when the NOR boot menu is active. <br />
<br />
There are six options you can choose when you log into the NOR Flash.<br />
# Boot<br />
# [[Boot from sd card|Boot from MicroSD]]<br />
# Set console to USB <br />
# Set console to Serial<br />
# Reset<br />
# Power off<br />
<br />
If you cannot log into U-Boot in NAND flash then you can log into U-Boot in the NOR flash instead. <br />
<br />
When flashing the device via USB connection, you must choose ''Set console to USB'' by pressing the AUX key until it is highlighted and then press the power button to select it.<br />
<br />
{{note|The term ''Logging in'' used in this context means to turn on the device using the described method, and leaving it at the U-Boot menu. To avoid the device automatically booting, tap the AUX key to move the selector bar. Note also that the device will '''not''' automatically turn off while flashing is in progress. <br />
}}<br />
<br />
</td></tr></table><br />
<br />
[[Category:Neo FreeRunner Hardware]]<br />
[[Category:Advanced End User]]</div>Phantomhttp://openmoko.org/wiki/Booting_the_Neo_FreeRunner/ruBooting the Neo FreeRunner/ru2009-06-03T11:06:43Z<p>Phantom: Исправлено форматирование в начале статьи, текст тепрерь обтекает содержание.</p>
<hr />
<div>{{Languages|Booting the Neo FreeRunner}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
Neo FreeRunner содержит два вида флэш-памяти: NOR FLASH и NAND FLASH. Загрузчик присутствует в них обоих.<br />
<br />
При нормальном включении используется загрузчик в NAND FLASH.<br />
NAND FLASH может быть обновлён (перезаписан) с использованием загрузчика и программы (dfu_util), запущенной на подсоединённом компьютере.<br />
<br />
NOR FLASH не может быть перезаписан при использовании загрузчика. Причиной для этого является предоставление защиты от сбоев в загрузчике NOR FLASH, в случае, если загрузчик в NAND FLASH повреждён при обновлении. <br />
<br />
==Включение Neo FreeRunner==<br />
<br />
Вы можете запустить ваш Neo FreeRunner следующими способами:<br />
<br />
: [[Image:Circle2.gif|10px]] Вы можете включить его и загрузить образ Openmoko непосредственно (по умолчанию, при первом включении).<br />
<br />
: [[Image:Circle2.gif|10px]] Вы можете загрузить [[Bootloader|U-Boot загрузчик]] с [[NAND Flash]].<br />
<br />
: [[Image:Circle2.gif|10px]] Вы можете загрузить в U-Boot с NOR Flash.<br />
<br />
Загрузка устройства с флэш-памяти NAND и NOR позволят вам обновить ядро и корневую файловую систему.<br />
<br />
==Загрузка образа Openmoko==<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu2.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
Нажмите и удерживайте кнопку питания около 8 секунд, пока не появится заставка Openmoko. Теперь можете отпустить кнопку питания, и Neo FreeRunner продолжит загрузку Образа Openmoko.<br />
<br />
Время загрузки до появления домашней страницы около 2-х минут.<br />
Улучшение этого показателя обсуждается здесь - [[Booting time reduction plan]].<br />
<br />
</td></tr></table><br />
</div><br />
<br />
<br />
==Загрузка U-Boot на NAND Flash==<br />
<br />
<table><tr><td><br />
<br />
[[Image:Menu7.jpg|200px|right|thumb]]<br />
<br />
* Нажмите и удерживайте кнопку питания<br />
* Затем, продолжая удерживать кнопку питания, нажмите и удерживайте дополнительную кнопку около 5~8 секунд. <br />
* Вы увидите меню загрузки для NAND Flash.<br />
* Нажмайте дополнительную кнопку для выбора вариантов, кнопка питания выполнить.<br />
</td></tr></table><br />
<br />
==Загрузка U-Boot на NOR Flash==<br />
<br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;"><br />
<br />
[[Image:Menu6.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
<br />
Этот вариант обычно используется разработчиками или при [[Flashing the Neo FreeRunner|перепрошивке]] (образа) FreeRunner<br />
<br />
* Нажмите и удерживайте дополнительную кнопку<br />
* Продолжая ужерживать дополнительную кнопку нажмите и удерживайте кнопку питания.<br />
* Далее отпустите дополнительную кнопку (не требуется?)<br />
* Вы увидите меню загрузки для NOR Flash.<br />
<br />
Перепрошивка может быть произведена когда меню загрузки NOR активно.<br />
<br />
Вы можете выбрать из шести вариантов, когда загрузитесь с NOR Flash.<br />
# Загрузка (Boot)<br />
# [[Boot from sd card|Загрузка с MicroSD]] (Boot from sd card)<br />
# Установить консоль на USB (Set console to USB)<br />
# Установить консоль на последовательный порт (Set console to Serial)<br />
# Сброс (Reset)<br />
# Выключение (Power off)<br />
<br />
Вы можете загрузить U-Boot с NOR,если вам не удаётся загрузить U-Boot с NAND.<br />
<br />
Когда вы перепрошиваете устройство через соединение USB, вам может потребоваться ''Установить консоль на USB'' нажимая дополнительную кнопку до тех пор пока этот пункт меню не будет подсвечен, и нажав кнопку питания, чтобы выполнить действие. <br />
<br />
{{note| Термин ''загрузка'', используемый в данном контексте, означает включение устройства и оставление его в режиме меню загрузчика (U-Boot). Чтобы избежать дальнейшую автоматическую загрузку устройства однократно нажмите дополнительную кнопку, переместив курсор в меню. Отметьте так же что устройство '''не''' будет автоматически выключаться во время перепрошивки.<br />
}}<br />
<br />
</td></tr></table><br />
<br />
[[Category:Neo FreeRunner Hardware/ru]]<br />
[[Category:Basic End User/ru]]</div>Phantomhttp://openmoko.org/wiki/Booting_the_Neo_FreeRunner_via_U-BootBooting the Neo FreeRunner via U-Boot2009-06-03T11:01:38Z<p>Phantom: Added the languages bar. as there is a Russian translation.</p>
<hr />
<div>{{Languages|Booting the Neo FreeRunner}}<br />
<br />
The Neo FreeRunner contains two FLASH memories: NOR FLASH and NAND FLASH. A boot loader is present in both memories.<br />
<br />
__TOC__<br />
<br />
The normal power up uses the boot loader in NAND FLASH.<br />
NAND FLASH can be updated (written) using the boot loader and a utility (dfu_util) running on an attached host computer.<br />
<br />
NOR FLASH can not be written to using the boot loader. The reason for this is to provide a failsafe boot loader in NOR FLASH, in case the boot loader in NAND FLASH is corrupted while updating itself. <br />
<br />
You can boot your Neo FreeRunner in the following ways:<br />
<br />
: [[Image:Circle2.gif|10px]] You can power it up into an Openmoko image directly (default, when powered-on for the first time). <br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into the [[Bootloader|U-Boot bootloader]] via [[NAND Flash]].<br />
<br />
: [[Image:Circle2.gif|10px]] You can boot it into U-Boot via NOR Flash.<br />
<br />
Booting the device into NAND and NOR Flash allows you to update the kernel and root filesystem.<br />
<br />
==Start the Openmoko Image==<br />
<br />
<div align-center><br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 25px; padding-left: 0.5em;"><br />
<br />
</td><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:Menu2.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
Press and hold Power button for about 8 seconds, until the Openmoko splash screen turns up. You may now release the Power button and the Neo FreeRunner will continue to boot into the Openmoko Image.<br />
<br />
The boot time to the "Today" page is about 2 minutes. Improvements are being discussed in the [[Booting time reduction plan]].<br />
<br />
</td></tr></table><br />
</div><br />
<br />
==Log into U-Boot in the NAND Flash==<br />
<br />
<table><tr><td><br />
<br />
[[Image:Menu7.jpg|200px|right|thumb]]<br />
<br />
* Press and hold Power button<br />
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds. <br />
* A boot menu will appear. This indicates the NAND flash has booted. <br />
* Press the AUX button to select one of the options and then press the Power button to execute.<br />
</td></tr></table><br />
<br />
==Log into U-Boot in the NOR Flash==<br />
<br />
<table width="100%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr><br />
<td style="width: 10px; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;"><br />
<br />
[[Image:Menu6.jpg|200px|right|thumb]]</td><td style="padding: 1px 1em 0; background: #eeeeee;"><br />
<br />
This option is usually used by developers or when [[Flashing the Neo FreeRunner|flashing]] (imaging) the FreeRunner. <br />
<br />
* Press and hold the AUX button<br />
* While still pressing the AUX button, press and hold the Power button. <br />
* Then release the AUX button<br />
* You should see the boot menu for the NOR Flash. This means you have entered the NOR flash. <br />
<br />
Flashing can be performed when the NOR boot menu is active. <br />
<br />
There are six options you can choose when you log into the NOR Flash.<br />
# Boot<br />
# [[Boot from sd card|Boot from MicroSD]]<br />
# Set console to USB <br />
# Set console to Serial<br />
# Reset<br />
# Power off<br />
<br />
If you cannot log into U-Boot in NAND flash then you can log into U-Boot in the NOR flash instead. <br />
<br />
When flashing the device via USB connection, you must choose ''Set console to USB'' by pressing the AUX key until it is highlighted and then press the power button to select it.<br />
<br />
{{note|The term ''Logging in'' used in this context means to turn on the device using the described method, and leaving it at the U-Boot menu. To avoid the device automatically booting, tap the AUX key to move the selector bar. Note also that the device will '''not''' automatically turn off while flashing is in progress. <br />
}}<br />
<br />
</td></tr></table><br />
<br />
[[Category:Neo FreeRunner Hardware]]<br />
[[Category:Advanced End User]]</div>Phantomhttp://openmoko.org/wiki/Openmoko_supported_devices/ruOpenmoko supported devices/ru2009-06-03T05:24:12Z<p>Phantom: Категории перенесены в верхнюю часть страницы.</p>
<hr />
<div>[[Category:Hardware ]]<br />
[[Category:Phones| ]]<br />
[[Category:Basic End User]]<br />
<br />
{{Languages|Supported devices}}<br />
<br />
'''Openmoko''' работает на разных устройствах. Следующий перечень содержит устройства, которые хотя бы частично поддерживаются:<br />
<br />
* [[Neo1973|Neo 1973]] и [[Neo FreeRunner|Neo FreeRunner]]&nbsp;&mdash; наилучшая поддержка, референсная (?) платформа<br />
<br />
* [[HXD8]]&nbsp;&mdash; некоторые части ПО Openmoko работают на этой GPS-системе<br />
<br />
* Treo 650&nbsp;&mdash; [http://blog.mikeasoft.com/2007/07/01/openmoko-on-a-treo-650/ развивается, но пока хромает] (?)<br />
<br />
* Palm TX&nbsp;&mdash; есть некоторые проблемы: [http://www.palminfocenter.com/news/9371/openmoko-running-on-a-palm-tx/ 1], [http://hackndev.com/node/701 2]<br />
<br />
* Motorola E680i&nbsp;&mdash; [http://www.motorolafans.com/forums/showthread.php?t=10763 подробности]<br />
<br />
* Motorola A780&nbsp;&mdash; [http://www.vanille-media.de/images/openmoko-on-a780.jpg OM2007.2]<br />
<br />
* Motorola A1200E&nbsp;&mdash; [http://blog.myspace.cn/index.cfm?fuseaction=blog.view&friendID=1303227936&blogID=304760192 Openmoko 2007.2]<br />
<br />
* [http://en.wikipedia.org/wiki/HTC_Universal HTC Universal]&nbsp;&mdash; работает номеронабиратель [http://linuxtogo.org/~htcpxa/htcuniversal/index.html code:linuxtogo] [http://www.handhelds.org/moin/moin.cgi/UniversalStatus status:handhelds.org]<br />
<br />
* [http://en.wikipedia.org/wiki/HTC_Magician HTC Magician]&nbsp;&mdash; работает номеронабиратель [http://linuxtogo.org/~htcpxa/htcmagician/index.html code:linuxtogo] [http://www.handhelds.org/moin/moin.cgi/Magician status:handhelds.org]<br />
<br />
* [http://www.etencorp.com/products/Communication/G500.php E-TEN G500]&nbsp;&mdash; работает номеронабиратель, однако есть [http://article.gmane.org/gmane.comp.handhelds.openmoko.community/9306 проблемы с разрешением экрана]<br />
<br />
* HP iPAQ hx4700&nbsp;&mdash; [http://dominion.kabel.utwente.nl/koen/cms/openmoko-running-on-an-ipaq подробности]<br />
<br />
== См. также ==<br />
<br />
* Вы можете запускать приложения Openmoko [[How_to_run_Openmoko_Apps_on_PC | на вашем настольном ПК с Linux]]<br />
<br />
* [[Другие ОС]]</div>Phantomhttp://openmoko.org/wiki/Neo_FreeRunner_Battery/ruNeo FreeRunner Battery/ru2009-06-03T05:23:19Z<p>Phantom: Категории перенесены в верхнюю часть страницы.</p>
<hr />
<div>[[Category:Battery]]<br />
[[Category:Neo FreeRunner Hardware]]<br />
<br />
{{Languages|Neo FreeRunner Battery}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
= GTA02 1200 mAh Smart Battery =<br />
<br />
* Внутри находится батарея Sanyo ёмкостью 1200 мА/ч, дополненная счётчиком заряда и цепями защиты. Учтите, что оригинальная батарея Sanyo не имеет счётчика заряда, поэтому её нельзя использовать в качестве замены батареи Neo FreeRunner.<br />
* [http://people.openmoko.org/tony_tu/GTA02/hardware/GTA02/CT-GTA02.pdf Детальная техническая информация о батарее]<br />
* Smart Battery следит за максимальной и минимальной ёмкостью для точного расчёта оставшегося заряда и времени до отключения.<br />
<br />
Дополнительную информацию вы можете получить в разделе [[Neo1973 Battery]].<br />
<br />
= Замечания о времени работы от аккумулятора =<br />
<br />
Время работы зависит от того, как вы работаете с устройством. Максимальное время работы составляет около 70 часов [[StandbyLifetime]], в основном в спящем режиме, с периодическими непродолжительными включениями.<br />
<br />
= Известные проблемы =<br />
<br />
== Никогда не допускайте полного разряда батареи ==<br />
<br />
Проблема в том, что внутренние цепи, управляющие зарядом батареи, не могут быть включены до тех пор, пока устройство не загрузилось, а загрузка с питанием от USB не работает на устройствах ранних серий A5/6. Если ваш FreeRunner с вынутой батареей (будучи подключенным к зарядному устройству) загружается и что-то показывает на экране, то данная проблема не касается вашего устройства.<br />
<br />
В зависимости от версии загрузчика NAND вы можете также заметить, что индикатор AUX вспыхивает красным, когда вы подключаете зарядное устройство. Это означает, что загрузка устройства отложена до момента, когда батарея наберёт необходимый минимум заряда. Просто оставьте смартфон подключенным к зарядному устройству, и оно автоматически загрузится через некоторое время. Вы также можете попробовать загрузить смартфон через меню NOR, если он не загрузился автоматически в течение десяти минут.<br />
<br />
=== Что делать, если батарея полностью разрядилась ===<br />
<br />
Ознакомьтесь с [[Neo_FreeRunner_Hardware_Issues#Can.27t_boot_with_discharged_or_missing_battery| описанием возможных путей решения]].<br />
<br />
=== Ещё кое-что ===<br />
<br />
''Вопрос: кто-нибудь знает, ПОЧЕМУ смартфон не заряжается, когда он выключен? Моя логика говорит мне, что это очень важно&nbsp;&mdash; дать возможность зарядить батарею, когда она полностью пуста.''<br />
<br />
Ответ: мы не можем дать вам простой ответ. Процесс заряда батареи управляется контроллером PCF50633 с учётом настроек, передаваемых ему из u-boot, Linux и пользовательских приложений. Некоторые из этих настроек сохраняются при полном отключении (PCF50633 имеет внутреннюю резервную батарею, которая также используется для RTC), поэтому поведение при запуске зависит от того, какое ПО вы использовали в предыдущей сессии.<br />
<br />
Другая сложность заключается в том, что некоторые устройства могут запускаться без батареи, но не все; возможно, это связано с отличающимися ёмкостями конденсаторов во внутренних цепях.<br />
<br />
Мы можем дать несколько советов:<br />
* Сегодняшняя (2 сентября 2008 г) версия u-boot содержит ошибку, из-за которой батарея не будет нормально заряжаться от зарядного устройства. Используйте USB-кабель, подключенный к вашему компьютеру.<br />
** Feb. 2009 -- Is the preceding comment still correct? Bug number?<br />
* Попробуйте загрузить устройство через меню NOR u-boot (нажмите и удерживайте кнопку AUX, затем нажмите кнопку включения), подключив устройство к зарядному устройству или USB-интерфейсу компьютера; в меню загрузки выберите Linux.<br />
* Попробуйте загрузить устройство через меню NAND u-boot (нажмите и удерживайте кнопку питания, затем нажмите кнопку AUX), после чего выберите &laquo;power off&raquo;. Такой приём может оставить устройство в состоянии, когда оно будет заряжаться. Подождите 15 минут, затем попробуйте нормальную загрузку.<br />
* Если устройство выключается во время выполнения одной из описанных выше инструкций, оставьте его в покое на несколько минут, после чего попробуйте повторить свои действия по тому же методу.<br />
<br />
Kudos to Mike Montour on the<br />
[http://lists.openmoko.org/pipermail/community/2008-September/029243.html Community mailing list].<br />
<br />
Ещё один способ реанимировать FreeRunner с разряженной батареей: нажмите и удерживайте кнопку AUX, затем подключите зарядное устройство. Этот метод предложен пользователем joerg, пользователи [http://wiki.openmoko.org/wiki/User:Azmodie azmodie], user [http://wiki.openmoko.org/wiki/User:Jhenkins jhenkins] и user [[User:Aragorn|aragorn]] подтверждают, что он работает даже без батареи.<br />
<br />
= Совместимые батареи =<br />
<br />
Помимо оригинальной батареи, с FreeRunner совместимы батареи Nokia серии BL (BL-4X, BL-5X), а также их аналоги, выпускаемые сторонними производителями. Они могут не сработать правильно при реанимации устройства [при полном разряде? смысл оригинальной фразы не вполне ясен&nbsp;&mdash; прим. phantom], также они могут не сообщать информацию о заряде. Желательно убедиться, что напряжение, которое даёт ваша батарея, не превышает штатные 3,7 В (хотя пользователи сообщают, что даже 4,5&nbsp;В должно быть нормально), если, конечно, вы не уверены, что знаете, что вы делаете.<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
!Батарея<br />
!Ёмкость (мА/ч)<br />
!Сообщает данные о заряде<br />
!Замечания<br />
|-<br />
|NOKIA BL-4<br />
|<br />
|нет<br />
|<br />
|-<br />
|NOKIA BL-4C<br />
|750<br />
|нет<br />
|немного тоньше оригинальной<br />
|-<br />
|NOKIA BL-5B<br />
|760/890<br />
|<br />
|<br />
|-<br />
|NOKIA BL-5C<br />
|950<br />
|нет<br />
|<br />
|-<br />
|NOKIA BL-6C<br />
|1070<br />
|нет<br />
|<br />
|-<br />
|NOKIA BR-6C<br />
|?<br />
|нет<br />
|<br />
|-<br />
|Garmin GPS 10x<br />
|1100<br />
|нет<br />
|<br />
|}<br />
<br />
= Зарядка батареи в других устройствах =<br />
<br />
Устройства Nokia (телефоны и зарядные устройства), как правило, не заряжают неоригинальные батареи&nbsp;&mdash; скорее всего, потому, что они не могут гарантировать правильные параметры заряда (ну и, конечно, потому, что Nokia не заинтересована в том, чтобы в её телефонах применялись сторонние батареи).<br />
<br />
Большинство зарядных устройств, сделанных сторонними производителями, напротив, не проверяют какие-либо параметры батареи&nbsp;&mdash; видимо, из соображений дешевизны и универсальности.<br />
<br />
Таким образом:<br />
* Можно использовать оригинальные батареи Nokia BL-4C, BL-5C или BL-6C, а также их аналоги, в Neo.<br />
* Можно заряжать оригинальную батарею Neo в зарядном устройстве, совместимом с Nokia, но не оригинальном Nokia.<br />
* Нельзя заряжать оригинальную батарею Neo в оригинальном телефоне или зарядном устройстве Nokia.<br />
<br />
Кроме того, GPS-приёмник Garmin GPS 10X использует батарею, совместимую с OpenMoko FreeRunner. Этот приёмник может зарядить батарею FreeRunner токами 100 мА, 500 мА или 1 А через кабель miniUSB, даже если батарея была полностью разряжена.<br />
<br />
Дополнительные сведения о зарядных устройствах USB, которые можно примерять с Neo FreeRunner, приведены в разделе {{main|USB charger}}<br />
<br />
= Сделай сам: внешняя батарея =<br />
<br />
'''Mintyboost:'''<br />
<br />
Заряд от пары батареек AA: [http://www.ladyada.net/make/mintyboost/ Minty Boost!], [http://www.millions.ca/~stacy/mintyboost/ отзыв об использовании с Neo FreeRunner].<br />
<br />
Добавление сопротивления 47 кОм, обеспечивающее ток заряда 1 А, не является хорошим решением по ряду причин, основная из которых заключается в том, что такой ток не может быть обеспечен подобным зарядным устройством (максимум около 600 мА). Далее, невозможно применением любых резисторов сообщить смартфону обеспечиваемый ток заряда, поскольку эта информация передаётся USB-хостом. Наконец, в разъёме microUSB есть контакт ID, так что требуется либо использовать с подобным зарядным устройством соответствующий разъём, либо использовать доработанный кабель.<br />
<br />
Даже несмотря на то, что применяемый конвертер Linear Technology предположительно обеспечивает ток 600 мА, батарейки AA испытывают проблемы даже с выдачей 500 мА (немного обугливаются). Внешняя батарея, построенная на батарейках форм-фактора D, не имеет подобных проблем.</div>Phantomhttp://openmoko.org/wiki/Neo_FreeRunner_BatteryNeo FreeRunner Battery2009-06-03T05:16:19Z<p>Phantom: Added the languages bar. as there is a Russian translation now.</p>
<hr />
<div>{{Languages|Neo FreeRunner Battery}}<br />
<br />
{{Neo FreeRunner Menu}}<br />
=== GTA02 1200 mAh Smart Battery ===<br />
<br />
*Internally, uses the SANYO 1200mAh cell (note that the Sanyo cell by itself does not have the Coulomb-counter and thus can not be used as a replacement for the Neo FreeRunner battery)<br />
*Battery Technical information: [http://people.openmoko.org/tony_tu/GTA02/hardware/GTA02/CT-GTA02.pdf Detailed Battery Information]<br />
<br />
* 1200mAh Smart Battery with Coulomb-counter and protection circuit<br />
* The Smart Battery keeps track of maximum and current capacity for precise prediction of remaining battery power and time until shutdown, based on actual power dissipation.<br />
<br />
For more information, see the GTA01 battery info at [[Neo1973 Battery]]<br />
<br />
=== Notes about expected battery life ===<br />
Battery life depends on your usage pattern. The maximum you can get is ~70h [[StandbyLifetime]], mostly in suspend, with multiple short wakeups.<br />
<br />
== Known Issues ==<br />
<br />
=== Make sure your battery never discharges completely. ===<br />
<br />
This is an issue because the internal charging circuitry can not be turned on until the FreeRunner has booted, and booting through USB power alone does not work on early A5/6 devices.<br />
If your FreeRunner boots to the point of showing something on screen when battery removed and connected to OM-wallcharger, your device isn't affected by this issue.<br />
<br />
Depending on NAND bootloader version there might also be a red flashlight on AUX indicating postponed boot while charging battery to a required minimum - just keep your FR hooked up to the charger then until it boots. Or boot to NOR if it doesn't recover during some ten minutes.<br />
<br />
==== What to do if your battery has become completely discharged ====<br />
<br />
See the workarounds [[Neo_FreeRunner_Hardware_Issues#Can.27t_boot_with_discharged_or_missing_battery|here]].<br />
<br />
==== More tricks ====<br />
<br />
''Q: Does anyone know WHY it don't charge when it is off? My logic says that it is very important to have the option charge the battery when it is flat.''<br />
<br />
A: I can't give you a simple answer. Charging is controlled by the PCF50633 <br />
chip, based on configuration values that are written to it by u-boot, <br />
Linux, and userspace programs. Some of these settings are preserved <br />
across a power-cycle (the PCF50633 has a small backup battery that's <br />
also used to keep the RTC running) so the behavior at startup depends on <br />
the software that you used during your last session.<br />
<br />
Another complication is that some Freerunners are capable of starting up <br />
without a battery while others are not (possibly due to different <br />
capacitor values on the internal power rails).<br />
<br />
I can give a few hints:<br />
* The current (Sep. 2nd, 2008) u-boot has a bug that means it will not properly charge from the wall charger. Try a USB cable into a PC instead.<br />
** Feb. 2009 -- Is the preceding comment still correct? Bug number?<br />
* Try booting through NOR u-boot instead (hold aux and then power) with both the wall charger or a 500mA USB connection, then try booting Linux.<br />
* Try to boot into the NAND u-boot menu (hold power and then aux) and then select "power off". This may leave the device in a state were it will charge. Wait 15 minutes and then try to boot Linux.<br />
* If the device shuts off during one of the above attempts, let it sit for a few minutes and then try that same item once again<br />
<br />
Kudos to Mike Montour on the<br />
[http://lists.openmoko.org/pipermail/community/2008-September/029243.html Community mailing list].<br />
<br />
Another trick to get a Freerunner with a flat battery up and running would be to press and hold AUX, and then plug in the wall charger. Suggested by joerg, confirmed to work by user [http://wiki.openmoko.org/wiki/User:Azmodie azmodie], user [http://wiki.openmoko.org/wiki/User:Jhenkins jhenkins], user [[User:Aragorn|aragorn]] (worked even without battery).<br />
<br />
== Compatible Replacement Batteries ==<br />
<br />
Other known FreeRunner-compatible batteries include the BL-series (BL-4X, BL-5X) from Nokia, and their third-party equivalents.<br />
These may not work to revive a device and may not report charge information.<br />
It is probably a good idea to check that your battery is not greater than the stock battery's voltage of 3.7V (the above suggests that 4.5VDC should be fine) unless you know what you are doing.<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
!Battery Model<br />
!Capacity (mAh)<br />
!Charge info reported<br />
!Notes<br />
|-<br />
|NOKIA BL-4<br />
|<br />
|no<br />
|<br />
|-<br />
|NOKIA BL-4C<br />
|750<br />
|no<br />
|Slightly thinner than original.<br />
|-<br />
|NOKIA BL-5B<br />
|760/890<br />
|<br />
|<br />
|-<br />
|NOKIA BL-5C<br />
|950<br />
|no<br />
|<br />
|-<br />
|NOKIA BL-6C<br />
|1070<br />
|no<br />
|<br />
|-<br />
|NOKIA BR-6C<br />
|?<br />
|no<br />
|<br />
|-<br />
|Garmin GPS 10x<br />
|1100<br />
|no<br />
|<br />
|}<br />
<br />
== Alien Charging of Battery ==<br />
<br />
Nokia devices (phones and stand-alone chargers) usually will not charge<br />
non-Nokia batteries, most likely because they can't be sure they have<br />
the correct charging parameters (and of course Nokia isn't interested in supporting use of alien batteries with their phones).<br />
<br />
Most after-market or no-name brands of Nokia-compatible chargers don't<br />
test the make of the battery, most likely because adding the capability<br />
to perform this test would add to the cost of the charger and limit it's universal character (that's not the interest of second source manufacturers).<br />
<br />
Thus:<br />
* You can use a Nokia or Nokia-compatible BL-4C, BL-5C, or BL-6C in the Neo<br />
* You can charge the Neo battery in a Nokia-compatible charger that is not Nokia branded<br />
* You can NOT charge the Neo battery in a Nokia branded phone or charger<br />
<br />
Alternatively, the Garmin GPS 10X, a Bluetooth GPS device, uses a compatible battery to the OpenMoko FreeRunner. The device can be used to charge FreeRunner batteries at 100mA, 500mA or 1A over miniUSB (including deep-discharged batteries).<br />
<br />
For more information about USB battery chargers that can be used with the Neo FreeRunner see<br />
{{main|USB charger}}<br />
<br />
== DIY external battery pack from a Minty case ==<br />
<br />
<br />
'''Mintyboost:'''<br />
<br />
Charge from a couple of AA batteries: [http://www.ladyada.net/make/mintyboost/ Minty Boost!], [http://www.millions.ca/~stacy/mintyboost/ report on a Neo FreeRunner application].<br />
<br />
Adding the 47k resistor to the minty boost so that the Freerunner fast charges at 1A is a poor idea for a couple reasons, the biggest one being that the minty boost can't supply 1A the max is 600mA. as far as I know, there is no magic resistor to identify a 500mA charger to the Freerunner, it depends on USB host telling it that it can provide 500mA. Second, the ID pin is in the USB micro connector, so you would either need to put a micro connector on your minty boost (with the correct resistor installed) or use a hacked cable.<br />
<br />
Even if the Linear Technology step up voltage converter is supposed to be able to do 600mA, the AA cells seem to have a problem with supplying 500mA. They get a little toasty :-). One powerpack built using D cells doesn't seem to have any issues with supplying 500mA.<br />
<br />
<br />
[[Category:Battery]]<br />
[[Category:Neo FreeRunner Hardware]]</div>Phantomhttp://openmoko.org/wiki/Neo_FreeRunner_Battery/ruNeo FreeRunner Battery/ru2009-06-03T05:14:34Z<p>Phantom: Первый перевод оригинальной англоязычной страницы.</p>
<hr />
<div>{{Languages|Neo FreeRunner Battery}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
= GTA02 1200 mAh Smart Battery =<br />
<br />
* Внутри находится батарея Sanyo ёмкостью 1200 мА/ч, дополненная счётчиком заряда и цепями защиты. Учтите, что оригинальная батарея Sanyo не имеет счётчика заряда, поэтому её нельзя использовать в качестве замены батареи Neo FreeRunner.<br />
* [http://people.openmoko.org/tony_tu/GTA02/hardware/GTA02/CT-GTA02.pdf Детальная техническая информация о батарее]<br />
* Smart Battery следит за максимальной и минимальной ёмкостью для точного расчёта оставшегося заряда и времени до отключения.<br />
<br />
Дополнительную информацию вы можете получить в разделе [[Neo1973 Battery]].<br />
<br />
= Замечания о времени работы от аккумулятора =<br />
<br />
Время работы зависит от того, как вы работаете с устройством. Максимальное время работы составляет около 70 часов [[StandbyLifetime]], в основном в спящем режиме, с периодическими непродолжительными включениями.<br />
<br />
= Известные проблемы =<br />
<br />
== Никогда не допускайте полного разряда батареи ==<br />
<br />
Проблема в том, что внутренние цепи, управляющие зарядом батареи, не могут быть включены до тех пор, пока устройство не загрузилось, а загрузка с питанием от USB не работает на устройствах ранних серий A5/6. Если ваш FreeRunner с вынутой батареей (будучи подключенным к зарядному устройству) загружается и что-то показывает на экране, то данная проблема не касается вашего устройства.<br />
<br />
В зависимости от версии загрузчика NAND вы можете также заметить, что индикатор AUX вспыхивает красным, когда вы подключаете зарядное устройство. Это означает, что загрузка устройства отложена до момента, когда батарея наберёт необходимый минимум заряда. Просто оставьте смартфон подключенным к зарядному устройству, и оно автоматически загрузится через некоторое время. Вы также можете попробовать загрузить смартфон через меню NOR, если он не загрузился автоматически в течение десяти минут.<br />
<br />
=== Что делать, если батарея полностью разрядилась ===<br />
<br />
Ознакомьтесь с [[Neo_FreeRunner_Hardware_Issues#Can.27t_boot_with_discharged_or_missing_battery| описанием возможных путей решения]].<br />
<br />
=== Ещё кое-что ===<br />
<br />
''Вопрос: кто-нибудь знает, ПОЧЕМУ смартфон не заряжается, когда он выключен? Моя логика говорит мне, что это очень важно&nbsp;&mdash; дать возможность зарядить батарею, когда она полностью пуста.''<br />
<br />
Ответ: мы не можем дать вам простой ответ. Процесс заряда батареи управляется контроллером PCF50633 с учётом настроек, передаваемых ему из u-boot, Linux и пользовательских приложений. Некоторые из этих настроек сохраняются при полном отключении (PCF50633 имеет внутреннюю резервную батарею, которая также используется для RTC), поэтому поведение при запуске зависит от того, какое ПО вы использовали в предыдущей сессии.<br />
<br />
Другая сложность заключается в том, что некоторые устройства могут запускаться без батареи, но не все; возможно, это связано с отличающимися ёмкостями конденсаторов во внутренних цепях.<br />
<br />
Мы можем дать несколько советов:<br />
* Сегодняшняя (2 сентября 2008 г) версия u-boot содержит ошибку, из-за которой батарея не будет нормально заряжаться от зарядного устройства. Используйте USB-кабель, подключенный к вашему компьютеру.<br />
** Feb. 2009 -- Is the preceding comment still correct? Bug number?<br />
* Попробуйте загрузить устройство через меню NOR u-boot (нажмите и удерживайте кнопку AUX, затем нажмите кнопку включения), подключив устройство к зарядному устройству или USB-интерфейсу компьютера; в меню загрузки выберите Linux.<br />
* Попробуйте загрузить устройство через меню NAND u-boot (нажмите и удерживайте кнопку питания, затем нажмите кнопку AUX), после чего выберите &laquo;power off&raquo;. Такой приём может оставить устройство в состоянии, когда оно будет заряжаться. Подождите 15 минут, затем попробуйте нормальную загрузку.<br />
* Если устройство выключается во время выполнения одной из описанных выше инструкций, оставьте его в покое на несколько минут, после чего попробуйте повторить свои действия по тому же методу.<br />
<br />
Kudos to Mike Montour on the<br />
[http://lists.openmoko.org/pipermail/community/2008-September/029243.html Community mailing list].<br />
<br />
Ещё один способ реанимировать FreeRunner с разряженной батареей: нажмите и удерживайте кнопку AUX, затем подключите зарядное устройство. Этот метод предложен пользователем joerg, пользователи [http://wiki.openmoko.org/wiki/User:Azmodie azmodie], user [http://wiki.openmoko.org/wiki/User:Jhenkins jhenkins] и user [[User:Aragorn|aragorn]] подтверждают, что он работает даже без батареи.<br />
<br />
= Совместимые батареи =<br />
<br />
Помимо оригинальной батареи, с FreeRunner совместимы батареи Nokia серии BL (BL-4X, BL-5X), а также их аналоги, выпускаемые сторонними производителями. Они могут не сработать правильно при реанимации устройства [при полном разряде? смысл оригинальной фразы не вполне ясен&nbsp;&mdash; прим. phantom], также они могут не сообщать информацию о заряде. Желательно убедиться, что напряжение, которое даёт ваша батарея, не превышает штатные 3,7 В (хотя пользователи сообщают, что даже 4,5&nbsp;В должно быть нормально), если, конечно, вы не уверены, что знаете, что вы делаете.<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
!Батарея<br />
!Ёмкость (мА/ч)<br />
!Сообщает данные о заряде<br />
!Замечания<br />
|-<br />
|NOKIA BL-4<br />
|<br />
|нет<br />
|<br />
|-<br />
|NOKIA BL-4C<br />
|750<br />
|нет<br />
|немного тоньше оригинальной<br />
|-<br />
|NOKIA BL-5B<br />
|760/890<br />
|<br />
|<br />
|-<br />
|NOKIA BL-5C<br />
|950<br />
|нет<br />
|<br />
|-<br />
|NOKIA BL-6C<br />
|1070<br />
|нет<br />
|<br />
|-<br />
|NOKIA BR-6C<br />
|?<br />
|нет<br />
|<br />
|-<br />
|Garmin GPS 10x<br />
|1100<br />
|нет<br />
|<br />
|}<br />
<br />
= Зарядка батареи в других устройствах =<br />
<br />
Устройства Nokia (телефоны и зарядные устройства), как правило, не заряжают неоригинальные батареи&nbsp;&mdash; скорее всего, потому, что они не могут гарантировать правильные параметры заряда (ну и, конечно, потому, что Nokia не заинтересована в том, чтобы в её телефонах применялись сторонние батареи).<br />
<br />
Большинство зарядных устройств, сделанных сторонними производителями, напротив, не проверяют какие-либо параметры батареи&nbsp;&mdash; видимо, из соображений дешевизны и универсальности.<br />
<br />
Таким образом:<br />
* Можно использовать оригинальные батареи Nokia BL-4C, BL-5C или BL-6C, а также их аналоги, в Neo.<br />
* Можно заряжать оригинальную батарею Neo в зарядном устройстве, совместимом с Nokia, но не оригинальном Nokia.<br />
* Нельзя заряжать оригинальную батарею Neo в оригинальном телефоне или зарядном устройстве Nokia.<br />
<br />
Кроме того, GPS-приёмник Garmin GPS 10X использует батарею, совместимую с OpenMoko FreeRunner. Этот приёмник может зарядить батарею FreeRunner токами 100 мА, 500 мА или 1 А через кабель miniUSB, даже если батарея была полностью разряжена.<br />
<br />
Дополнительные сведения о зарядных устройствах USB, которые можно примерять с Neo FreeRunner, приведены в разделе {{main|USB charger}}<br />
<br />
= Сделай сам: внешняя батарея =<br />
<br />
'''Mintyboost:'''<br />
<br />
Заряд от пары батареек AA: [http://www.ladyada.net/make/mintyboost/ Minty Boost!], [http://www.millions.ca/~stacy/mintyboost/ отзыв об использовании с Neo FreeRunner].<br />
<br />
Добавление сопротивления 47 кОм, обеспечивающее ток заряда 1 А, не является хорошим решением по ряду причин, основная из которых заключается в том, что такой ток не может быть обеспечен подобным зарядным устройством (максимум около 600 мА). Далее, невозможно применением любых резисторов сообщить смартфону обеспечиваемый ток заряда, поскольку эта информация передаётся USB-хостом. Наконец, в разъёме microUSB есть контакт ID, так что требуется либо использовать с подобным зарядным устройством соответствующий разъём, либо использовать доработанный кабель.<br />
<br />
Даже несмотря на то, что применяемый конвертер Linear Technology предположительно обеспечивает ток 600 мА, батарейки AA испытывают проблемы даже с выдачей 500 мА (немного обугливаются). Внешняя батарея, построенная на батарейках форм-фактора D, не имеет подобных проблем.<br />
<br />
[[Category:Battery]]<br />
[[Category:Neo FreeRunner Hardware]]</div>Phantomhttp://openmoko.org/wiki/USB_Networking/ruUSB Networking/ru2009-06-03T03:45:59Z<p>Phantom: Перекрёстная ссылка заменена развёрнутым пояснением.</p>
<hr />
<div>[[Category:USB]]<br />
[[Category:Implemented]]<br />
[[Category:Networking]]<br />
<br />
{{Languages|USB_Networking}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
= Настройка соединения с Openmoko =<br />
<br />
Для того, чтобы связаться с вашим FreeRunner по TCP/IP, нужно понимать, что для этого потребуется. Стороны соединения USB образуют сегмент локальной сети (LAN segment), в котором одним узлом является смартфон, а другим&nbsp;&mdash; ваша настольная машина или ноутбук (будем называть её ПК).<br />
<br />
Примем как данность, что ваш ПК имеет настроенное соединение с интернетом, так что на ней тем или иным образом (статически или динамически, посредством DHCP) задан IP-адрес шлюза. Для того, чтобы выход в интернет появился на вашем Freerunner, нужно настроить на ПК маршрутизацию пакетов и маскарадинг.<br />
<br />
Как правило, маршрутизация и маскарадинг настраиваются легко, однако если окажется, что подсеть между смартфоном и ПК пересекается с подсетью, в которой находится шлюз, могут возникнуть проблемы, поскольку ПК, скорее всего, не догадается, как правильно перенаправлять пакеты.<br />
<br />
Другими словами, если ваши ПК и шлюз имеют IP-адреса вида 192.168.0.Х, то изменение их на что-нибудь вроде 192.168.1.Х избавит вас от множества проблем. Этот вопрос подробно обсуждается в [http://lists.openmoko.org/pipermail/support/2008-August/thread.html#1277 рассылке].<br />
<br />
== О чём следует помнить ==<br />
<br />
* Когда FreeRunner переходит в ждущий режим, он отключает свой сетевой интерфейс USB. Следовательно, если вы работаете с устройством через USB&nbsp;&mdash; выключите автоматический переход в ждущий режим. Это можно сделать вручную; кроме того, на [https://wiki.muc.ccc.de/openmoko веб-сайте клуба ССС] вы найдёте два скрипта, которые делают это при подключении внешнего источника питания ([https://wiki.muc.ccc.de/openmoko#disable_suspend_if_on_external_power для Om 2007] и [https://wiki.muc.ccc.de/openmoko#disable_suspend_if_on_external_power1 для Om 2008]).<br />
<br />
* Некоторые скрипты выполняют tail-grep на файлах журналов. Если syslog и/или klog отключены, то у вас могут быть проблемы с определением, подключено ли устройство к вашему ПК. Если такая проблема есть, убедитесь, что службы журналирования работают (для Debian и Ubuntu это можно сделать командами /etc/init.d/klogd restart; /etc/init.d/sysklog restart).<br />
<br />
== &laquo;usb0&raquo; или &laquo;eth1&raquo;? ==<br />
<br />
В данном руководстве мы предполагаем, что имя сетевого интерфейса на ПК&nbsp;&mdash; &laquo;usb0&raquo;. Тем не менее, это имя определяется операционной системой вашего ПК, и многие системы назовут этот интерфейс, руководствуясь MAC-адресом смартфона. Выполните ifconfig -a или dmesg, чтобы увидеть список всех сетевых интерфейсов или просмотреть вывод ядра ОС&nbsp;&mdash; в обоих случаях вы увидите, как называется интерфейс, если он вообще был создан. Если имя отличается от &laquo;usb0&raquo;, то оно почти наверняка будет следующим доступным &laquo;eth''N''&raquo;.<br />
<br />
Везде, где ниже мы упоминаем интерфейс &laquo;usb0&raquo;, замените его то имя, которое ваша система присвоила интерфейсу.<br />
<br />
Для интересующихся технической стороной, имя &laquo;usb0&raquo; выбирается системой в случае, если MAC-адрес устройства является локально сгенерированным (случайным), поскольку если адрес случаен, то возможность управления интерфейсом при помощи соответствующих инструментов оказывается под вопросом. На самом деле, смартфонам Freerunner при изготовлении назначаются MAC-адреса, в том числе и для USB-интерфейса. Если эти адреса правильно используются смартфоном (так делают Qi bootloader и некоторые дистрибутивы, но не все), то ОС вашего ПК получает официальный MAC-адрес и создаёт &laquo;постоянный&raquo; сетевой интерфейс, которому принято давать имя вида &laquo;eth''N''&raquo;. Однажды выданное имя запоминается и в дальнейшем используется только для этого устройства, что особенно удобно, если у вас несколько устройств, для которых вы настраиваете сетевые соединения через USB.<br />
<br />
На момент написания этой статьи (оригинальной англоязычной&nbsp;&mdash; прим. phantom) официальный MAC-адрес корректно передавали дистрибутивы Android и SHR.<br />
<br />
= Простая настройка вручную на Linux =<br />
<br />
Для начала попробуйте этот способ. Если он сработает, вы сможете сохранить настройку или попробовать более сложные способы, описанные ниже.<br />
<br />
Вам потребуются привилегии суперпользователя. Включите смартфон в обычном режиме и подключите его к USB-интерфейсу вашего ПК.<br />
<br />
=== Кратчайший путь ===<br />
<br />
Этот простой способ был испытан на множестве Linux-систем (Fedora, SuSE, Red Hat, Debian и др.) и сетевых конфигураций. Более того, он сработал при подключении к другим КПК под управлением Linux (типа TDS Nomad), так что мы с уверенность рекомендуем его для первой попытки. Мы предполагаем, что на вашем ПК работает достаточно свежий дистрибутив, имеющий поддержку сетевых соединений через USB, и что ваша сетевая конфигурация более или менее стандартна.<br />
<br />
Выполните от имени суперпользователя настройку интерфейса usb0:<br />
<pre><br />
sudo ip address add 192.168.0.200/24 dev usb0<br />
</pre><br />
или (устаревшее)<br />
<pre><br />
sudo ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
</pre><br />
<br />
Если ваш интерфейс eth0 находится в том же диапазоне IP-адресов (например, 192.168.0.105), сделайте следующее:<br />
<br />
1. Проверьте, что до смартфона доходят пакеты:<br />
# ping -I usb0 192.168.0.202<br />
2. Войдите в консоль смартфона (для этого суперпользователь не нужен):<br />
# ssh root@192.168.0.202<br />
Пароль суперпользователя на смартфоне по умолчанию пуст.<br />
<br />
Не забудьте, что для того, чтобы соединиться с устройством по SSH, нужно, чтобы на вашем локальном межсетевом экране (firewall) был разрешён порт 22. Если вы подозреваете, что соединиться с устройством не удаётся из-за работающего экрана, попробуйте физически отключить внешний Ethernet-кабель, после чего временно выключить межсетевой экран.<br />
<br />
Кроме того, некоторые старые или специфически настроенные системы могут не иметь поддержки сетевых соединений через USB. В таком случае необходимо обновить систему и добавить соответствующие модули.<br />
<br />
=== Более продвинутый путь ===<br />
<br />
Если описанный выше простой способ не сработал, попробуйте следующий, более сложный.<br />
<br />
<pre>iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
sysctl -w net.ipv4.ip_forward=1<br />
ip addr add 192.168.0.200/24 dev usb0</pre><br />
<br />
Если ваше соединение с интернетом использует IP-адрес в той же подсети (192.168.0.Х), попробуйте вместо этого следующее:<br />
<br />
<pre>ip addr add 192.168.0.200/28 dev usb0</pre><br />
<br />
Такая команда направит пакеты с адресов в диапазоне от 192.168.0.192 до 192.168.0.207 на интерфейс usb0. Если вы видите сообщение об ошибке 'Cannot find device "usb0"', проверьте, что смартфон включён и присоединён к USB-интерфейсу вашего ПК; если с этим всё в порядке, попробуйте отсоединить и присоединить USB-кабель.<br />
<br />
Далее, вам следует включить ARP-прокси для внешнего интерфейса ВМЕСТО того, чтобы применять iptables:<br />
<br />
<pre>sysctl net.ipv4.conf.eth2.proxy_arp=1</pre><br />
<br />
Команда дана для случая, когда внешний интерфейс&nbsp;&mdash; eth2.<br />
<br />
После этого:<br />
<pre>ip link set usb0 up</pre><br />
или (устаревшее)<br />
<pre>ifconfig usb0 up</pre><br />
<br />
И наконец (в идеале, не как суперпользователь):<br />
<br />
<pre>ssh root@192.168.0.202</pre><br />
<br />
Пароль суперпользователя по умолчанию пуст.<br />
<br />
Поскольку в большинстве случаев смартфон будет использовать те же DNS-серверы, что и ПК, можно автоматизировать процесс конфигурирования::<br />
<br />
<pre>#!/bin/sh<br />
/sbin/route add -host 192.168.0.202/32 dev usb0<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
iptables -P FORWARD ACCEPT<br />
sysctl -w net.ipv4.ip_forward=1<br />
scp /etc/resolv.conf root@192.168.0.202:/etc/resolv.conf</pre><br />
<br />
Повторимся, если ваша сеть имеет адреса 192.168.0.Х, замените строку с правилом POSTROUTING следующим:<br />
<pre>iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/28</pre><br />
<br />
Этот простой скрипт настроит маршрутизацию на вашем смартфоне и скопирует на него ваш resolv.conf. Всё, что вам нужно будет сделать, чтобы на смартфоне появился интернет&nbsp;&mdash; это соединить смартфон с ПК и выполнить этот скрипт.<br />
<br />
=== Изменение IP-адреса смартфона ===<br />
<br />
Как упоминалось выше, если подсеть, используемая смартфоном по умолчанию (192.168.0.X), уже используется, может потребоваться изменить IP-адрес и подсеть самого устройства. Для этого нужно отредактировать /etc/network/interfaces на Freerunner, после чего перезагрузить смартфон.<br />
<br />
В следующем примере для устройства задаётся IP-адрес 192.168.100.1 (вместо адреса по умолчанию 192.168.0.202) в подсети 192.168.100.X (вместо 192.168.0.X), другой [http://en.wikipedia.org/wiki/Private_network частной] сети класса C. ([http://en.wikipedia.org/wiki/Subnetwork#Binary_subnet_masks Маска подсети] показывает, что первые три байта используются для адресации подсети, а последний байт&nbsp;&mdash; для адресации машины в подсети.) Шлюз (ПК, к которому подключен смартфон) должен тоже быть узлом подсети, и в данном случае для него задаётся IP-адрес 192.168.100.254 (вместо 192.168.0.200).<br />
<br />
Изменения для /etc/network/interfaces:<br />
<br />
<pre><br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.100.1<br />
netmask 255.255.255.0<br />
network 192.168.100.0<br />
gateway 192.168.100.254<br />
</pre><br />
<br />
(Строка network, похоже, избыточна, поскольку эти данные могут быть получены сопоставлением строк address и netmask?) Обратите внимание, что адреса даны для примера, и вам наверняка потребуется изменить их так, чтобы они соответствовали вашей конфигурации.<br />
<br />
= Поддержка в ядре Linux =<br />
<br />
Необходимо, чтобы ваш Linux-ПК поддерживал необходимые функции, а именно сетевые соединения через USB и маскарадинг. Эти функции включены по умолчанию в большинстве современных дистрибутивов Linux.<br />
<br />
== Поддержка сетевых соединений через USB ==<br />
<br />
Следующие опции должны быть включены:<br />
<br />
* CONFIG_USB_USBNET (''Multi-purpose USB Networking Framework''. Модуль будет называться <tt>usbnet</tt>)<br />
* CONFIG_USB_NET_CDCETHER (''CDC Ethernet support''. Модуль будет называться <tt>cdc_ether</tt>)<br />
<br />
Эти опции находятся в группе ''Device Drivers -> USB support -> USB Network Adapters'' или ''Device Drivers -> Network Device Support -> USB Network Adapters''.<br />
<br />
Для того, чтобы соединения через USB заработали, вам нужно будет загрузить модуль <tt>cdc_ether</tt> (при загрузке <tt>cdc_ether</tt> модуль <tt>usbnet</tt> загрузится автоматически). Подробности описаны на [http://www.linux-usb.org/usbnet/ странице, посвящённой драйверу usbnet].<br />
<br />
== Поддержка маскарадинга ==<br />
<br />
Опции, относящиеся к маскарадингу, находятся в группе ''Networking ---> Networking options --->'' (проверено на Linux 2.6.26.3).<br />
<br />
Для того, чтобы включить требуемые опции, сначала вам нужно включить:<br />
<br />
* CONFIG_NETFILTER (''Network packet filtering framework (Netfilter)'')<br />
<br />
Затем в группе ''Networking ---> Networking options ---> [*] Network packet filtering framework (Netfilter) ---> Core Netfilter Configuration --->''&nbsp;&mdash; как минимум, следующие опции:<br />
<br />
* CONFIG_NF_CONNTRACK (''Netfilter connection tracking support'')<br />
* CONFIG_NF_CONNTRACK_FTP (''FTP protocol support'')<br />
* CONFIG_NETFILTER_XTABLES (''Netfilter Xtables support'')<br />
<br />
Остальные опции находятся в группе ''Networking ---> Networking options ---> [*] Network packet filtering framework (Netfilter) ---> IP: Netfilter Configuration --->''. Вам потребуются опции:<br />
<br />
* CONFIG_NF_CONNTRACK_IPV4 (''IPv4 connection tracking support (required for NAT)'')<br />
* CONFIG_IP_NF_IPTABLES (''IP tables support (required for filtering/masq/NAT)'')<br />
* CONFIG_NF_NAT (''Full NAT'')<br />
* CONFIG_IP_NF_TARGET_MASQUERADE (''MASQUERADE target support'')<br />
<br />
= Проблемы с межсетевыми экранами =<br />
<br />
На некоторых системах настройки межсетевого экрана по умолчанию мешают настройке соединения с Freerunner (как, например, iptables на Fedora). Можно просто отключить экран, либо попытаться найти, какие правила или политики могут вызывать затруднения.<br />
<br />
Первое, что нужно проверить&nbsp;&mdash; это таблица маршрутизации NAT, управляющая преобразованием IP-адресов:<br />
<br />
iptables -L -t nat -v -n<br />
<br />
Если в вашей настройке нет ничего специфического, то вам будут интересны только правило MASQUERADE, которое мы добавим ниже, и правило ACCEPT, являющееся политикой по умолчанию. Взгляните также на таблицу фильтрации:<br />
<br />
iptables -L -t filter -v -n<br />
<br />
Если эта таблица содержит что-либо в цепи FORWARD, это может помешать передаче пакетов. Сбросить правила можно командой:<br />
<br />
iptables -t filter -F FORWARD<br />
<br />
= DNS =<br />
<br />
Вдобавок к маршрутизации, вообще говоря, надо, чтобы была доступна служба DNS. В некоторых случаях у вас может уже быть настроен локальный сервер DNS, например, dnsmasq или bind9, и это предположение&nbsp;&mdash; что DNS-сервер работает на шлюзе&nbsp;&mdash; Freerunner делает по умолчанию. В других случаях вам потребуется указать, какой DNS-сервер следует использовать.<br />
<br />
== Настройка DNS ==<br />
<br />
DNS настраивается в файле /etc/resolv.conf вашего Freerunner.<br />
<br />
Добавьте IP-адрес DNS-сервера, предоставляемого вашим интернет-провайдером.<br />
<br />
<pre>echo nameserver xxx.xxx.xxx.xxx > /etc/resolv.conf</pre><br />
<br />
Вы можете также добавить публичный DNS-сервер, известный как openDNS:<br />
<br />
<pre>echo nameserver 208.67.222.222 > /etc/resolv.conf<br />
echo nameserver 208.67.220.220 >> /etc/resolv.conf</pre><br />
<br />
Эти настройки будут потеряны при перезагрузке. Можно сделать так, чтобы они сохранялись, добавив следующие строки в файл /etc/network/interfaces в конец секции, относящейся к usb0:<br />
<pre>up echo nameserver 208.67.222.222 > /etc/resolv.conf<br />
up echo nameserver 208.67.220.220 >> /etc/resolv.conf</pre><br />
<br />
== Получение DNS с ПК ==<br />
<br />
Если вы часто переезжаете с места на место, делать какие-либо заключения о настройке сети может быть не очень удобно. Вместо этого можно настроить получение настроек DNS с вашего ПК, для чего есть несколько способов.<br />
<br />
=== dnrd ===<br />
<br />
Разработан скрипт для настройки использования [http://dnrd.sourceforge.net/ dnrd] в качестве DNS-прокси. Доступны [http://buildhost.automated.it/gta01 сам скрипт] и [http://buildhost.automated.it/dnrd-2.20.3.tar.gz копия dnrd]. Помимо настройки DNS-прокси, скрипт выполняет первичную настройку соединения аналогично тому, как это описано выше в разделе, посвящённом ручной настройке.<br />
<br />
=== Пересылка UDP-пакетов (UDP forwarding) ===<br />
<br />
Другой простой способ заключается в использовании ПО, осуществляющего пересылку пакетов UDP&nbsp;&mdash; например, [http://www.tapor.com/udpf/ udpf]. Выполните его командой:<br />
<br />
<pre>udpf-elf -p=53-f=`awk '$1 == "nameserver"{print $2; exit(0);}' /etc/resolv.conf`:53</pre><br />
<br />
=== iptables ===<br />
<br />
Можно перенаправлять запросы DNS при помощи таблиц iptables, используя цель DNAT:<br />
<br />
<pre>iptables -t nat -A PREROUTING -p tcp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1<br />
iptables -t nat -A PREROUTING -p udp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1</pre><br />
<br />
Здесь <tt>192.168.0.1</tt>&nbsp;&mdash; это IP-адрес вашего маршрутизатора.<br />
<br />
Проверьте, что всё работает:<br />
<pre>ping www.google.com</pre><br />
<br />
Если ping сработал, то вопрос с доступом в интернет в целом можно считать решённым. Однако изменения в resolv.conf, сделанные вручную, могут быть утеряны, например, при использовании DHCP (а в особенности&nbsp;&mdash; WiFi), поэтому ручная настройка может оказаться неудобной.<br />
<br />
= Проверка соединения =<br />
<br />
У вас должна быть возможность соединиться с вашим Freerunner! Для начала убедитесь, что пакеты вообще проходят:<br />
<br />
ping 192.168.0.202<br />
<br />
После этого войдите в консоль по SSH:<br />
<br />
ssh root@192.168.0.202<br />
<br />
Пароль по умолчанию пуст (просто нажмите enter).<br />
<br />
Вы можете передавать файлы в обе стороны с помощью [[scp]]. Вы можете использовать telnet, SSH, SMB и всё остальное, что вам потребуется.<br />
<br />
Теперь убедитесь, что пакеты передаются в обратную сторону. Следующие команды нужно выполнить в консоли смартфона:<br />
<br />
ping 192.168.0.200<br />
<br />
(Имейте в виду, что некоторые системы, например, Vista, по умолчанию не отвечают на ICMP ping.)<br />
<br />
Проверьте доступ к внешнему миру (IP-адрес Google):<br />
<br />
ping 74.125.19.147<br />
<br />
Последняя команда покажет, работает ли маскарадинг на вашем ПК.<br />
<br />
Наконец, проверьте, что смартфон имеет доступ к DNS:<br />
<br />
ping www.google.com<br />
<br />
= Автоматическая и специфическая для ОС настройка =<br />
<br />
Раздел основывается на статье [http://blog.haerwu.biz/2007/03/22/hotpluging-usbnet/ Hotplugging usbnet] Маркина Юшкевича, известного под псевдонимом &laquo;Hrw&raquo; (Marcin 'Hrw' Juszkiewicz). Приведённые ниже рекомендации помогут вам настроить соединение один раз и пользоваться им в дальнейшем.<br />
<br />
Кроме того, в этом разделе вы можете найти полезную информацию на случай, если по каким-либо причинам описанные выше способы не работают в вашей операционной системе или в вашем дистрибутиве.<br />
<br />
== MacOS X ==<br />
См. [[MacOS_X#USB_Networking|MacOS X USB Networking]].<br />
<br />
== Windows ==<br />
См. [[Neo1973_and_Windows#USB_Ethernet_emulation|Windows USB Ethernet emulation for Neo1973]].<br />
<br />
Также есть очень полезное [http://sam.curren.ws/index.cfm/2008/7/14/Using-the-Neo-FreeRunner-with-Windows-XPVista руководство по настройке на Windows Vista].<br />
<br />
== FreeBSD ==<br />
Вам потребуется загрузить модуль cdce, если он ещё не загружен. Выполните от имени суперпользователя:<br />
<br />
# kldload cdce<br />
<br />
После этого Neo должен появиться в системе как интерфейс cdce0, и вы сможете выполнить остальную настройку так же, как описано для устройства usb0 под Linux. Дополнительную информацию вы найдёте в руководстве по cdce. Простой способ назначить IP-адрес интерфейсу cdce0 задействует демон devd(8). Создайте два файла:<br />
<br />
<tt>/usr/local/etc/devd/cdce.conf</tt>:<br />
<br />
<pre><br />
notify 1 {<br />
match "system" "IFNET";<br />
match "subsystem" "cdce0";<br />
match "type" "ATTACH";<br />
action "/usr/local/etc/devd/cdce.sh $subsystem $type";<br />
};<br />
</pre><br />
<br />
и <tt>/usr/local/etc/devd/cdce.sh</tt> as:<br />
<br />
<pre><br />
#!/bin/sh<br />
case $2 in<br />
'ATTACH')<br />
ifconfig cdce0 192.168.0.200 netmask 255.255.255.0<br />
exit 0 ;<br />
;;<br />
esac<br />
exit 0<br />
</pre><br />
<br />
После этого перезапустите демон devd(8):<br />
<br />
# /etc/rc.d/devd restart<br />
<br />
Теперь, когда вы подключите FreeRunner к USB-интерфейсу вашего ПК, автоматически будет создан интерфейс cdce0, и ему будет назначен IP-адрес.<br />
<br />
== Debian, Ubuntu и другие ==<br />
<br />
Откройте /etc/network/interfaces и добавьте в него следующие строки:<br />
<br />
<pre><br />
# freerunner<br />
allow-hotplug usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
up iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE<br />
up echo 1 > /proc/sys/net/ipv4/ip_forward<br />
down iptables -D POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE<br />
</pre><br />
<br />
Этот способ более изящен, чем ручная настройка. Трюк с автоматическим включением завязан на систему Linux hotplug, так что соответствующие действия по конфигурированию интерфейсов выполняются автоматически при подключении и отключении устройства.<br />
<br />
Вдобавок маска подсети на стороне ПК ограничена небольшим диапазоном, так что пересечение подсетей не является проблемой: Linux будет пользоваться специальными правилами для перенаправления пакетов.<br />
<br />
Альтернативное решение, добавляющее DNS forward и удаляющее изменения в таблице iptables после отключения устройства:<br />
<br />
В файле /etc/network/interfaces добавьте:<br />
<pre><br />
# freerunner<br />
allow-hotplug usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.192<br />
post-up /etc/network/freerunner start<br />
pre-down /etc/network/freerunner stop<br />
</pre><br />
<br />
Создайте файл /etc/network/freerunner:<br />
<pre><br />
#!/bin/sh<br />
#<br />
# configures the freerunner for internet<br />
#<br />
#<br />
<br />
DEVICE=usb0<br />
IPADDR=192.168.0.200<br />
REMOTE_IPADDR=192.168.0.202<br />
NETMASK=255.255.255.0<br />
<br />
# get first ip for dns<br />
DNSIP=$(awk '$1 == "nameserver"{print $2; exit(0);}' /etc/resolv.conf)<br />
<br />
case "$1" in<br />
start)<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR<br />
iptables -A PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
iptables -A PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
<br />
if [ "$(cat /proc/sys/net/ipv4/ip_forward)" = "0" ]; then<br />
echo "temoprarely allow ip_forward for openmoko" > /var/run/openmoko.ip_forward<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
fi<br />
;;<br />
stop)<br />
iptables -D POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR<br />
iptables -D PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
iptables -D PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
<br />
if [ -f /var/run/openmoko.ip_forward ]; then<br />
rm /var/run/openmoko.ip_forward<br />
echo 0 > /proc/sys/net/ipv4/ip_forward<br />
fi<br />
;;<br />
esac<br />
</pre><br />
<br />
Сделайте /etc/network/freerunner исполняемым:<br />
<br />
chmod +x /etc/network/freerunner<br />
<br />
Можно использовать network-manager, чтобы автоматически соединяться со смартфоном с помощью udev. Предлагаемый ниже способ использует udev для запуска скрипта, когда Freerunner подключается к системе. Скрипт использует команду ip, чтобы установить MAC-адрес сетевого интерфейса USB. Для начала создайте файл /etc/udev/rules.d/80-freerunner.rules :<br />
<br />
<pre><br />
# This file causes programs to be run on device insertion.<br />
# See udev(7) for syntax.<br />
# rule to assign a fixed mac address specified in /<br />
KERNEL=="usb[0-9]*", DRIVERS=="cdc_ether", ACTION=="add", RUN+="/usr/local/sbin/freerunner-usb-add.sh %k"<br />
</pre><br />
<br />
Затем создайте файл /usr/local/sbin/freerunner-usb-add.sh :<br />
<br />
<pre><br />
#!/bin/sh<br />
(<br />
busNum=$( printf %.2d $( expr match "$1" "usb\([0-9]*\)") )<br />
ip link set "$1" address 00:00:22:55:bb:$busNum &> /dev/null<br />
) &<br />
exit 0<br />
</pre><br />
<br />
Наконец, сделайте второй файл исполняемым:<br />
<br />
chmod +x /usr/local/sbin/freerunner-usb-add.sh<br />
<br />
Теперь вы можете использовать network-manager с настройками, привязанными к MAC-адресу, и настроить автоматическое подключение.<br />
<br />
=== Ubuntu 8.10, простой путь === <br />
<br />
:1. Соедините Neo с ПК и подождите примерно минуту, пока NetworkManager не закончит сканирование DHCP на USB (значок в системном лотке должен переключиться в нормальное состояние).<br />
<br />
:2. Откройте "nm-connection-editor", выберите "Auto usb0", нажмите "Edit", затем "IPv4 Settings". Выберите для "Method" значение "Manual", нажмите "Add". В поле "Address" напишите "192.168.0.200", "Netmask" - "255.255.255.0", оставьте поле "Gateway" пустым (или 0.0.0.0). Задайте "Connection name" и нажмите "Apply", затем "Close".<br />
<br />
:3. Теперь вы можете соединиться по SSH на адрес 192.168.0.202<br />
<br />
Внимание: после перепрошивки смартфона потребуется скопировать значение поля "MAC Address" из "Auto usb0" в настройки нового соединения.<br />
<br />
После этого, следуя [http://sebastian-bergmann.de/index.php?url=archives/801-OpenMoko-Freerunner-and-Ubuntu.html#feedback инструкциям], у вас должно получиться настроить маскарадинг следующими командами:<br />
<br />
<pre>sudo iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
sudo iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'</pre><br />
<br />
=== Проблемы Ubuntu ===<br />
<br />
* Ubuntu 8.10 не работает, как должно, если вы используете /etc/network/interfaces для автоматизации.<br />
* Network manager любит ковыряться в настройках сетевого устройства и добавлять маршрут по умолчанию через 192.168.0.202, что нарушает ваше соединение.<br />
* Network manager также сообщает, что вы не можете изменить это соединение или удалить его. Я думаю вернуться к тому, чтобы устанавливать соединение вручную.<br />
* Использование следующего скрипта /usr/local/sbin/freerunner-usb-add.sh может служить обходным путём:<br />
<pre><br />
#!/bin/sh<br />
(<br />
ip address add 192.168.0.200/26 netmask dev usb0 > /dev/null<br />
ip link set usb0 up > /dev/null<br />
/etc/network/freerunner start<br />
) &<br />
exit 0<br />
</pre><br />
* Ubuntu Feisty, Gutsy и Hardy имеют проблему: ifdown не срабатывает, если интерфейс отключён. Подробности описаны по адресу: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/130437<br />
<br />
Можно исправить /etc/udev/rules.d/85-ifupdown.rules. Перемещение строки DRIVERS=="*?" из верхнего GOTO в строку ACTION=="add" исправляет проблему:<br />
<pre><br />
SUBSYSTEM=="net", GOTO="net_start"<br />
GOTO="net_end"<br />
<br />
LABEL="net_start"<br />
<br />
# Bring devices up and down only if they're marked auto.<br />
# Use start-stop-daemon so we don't wait on dhcp<br />
ACTION=="add", DRIVERS=="?*", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifup -- --allow auto $env{INTERFACE}"<br />
ck<br />
ACTION=="remove", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifdown -- --allow auto $env{INTERFACE}"<br />
<br />
LABEL="net_end"<br />
</pre><br />
<br />
Проблема состоит в том, что переменная DRIVERS оказывается не установлена, когда устройство отключено.<br />
<br />
This appears to be fixed in Ubuntu 8.04 [[User:Mattt|Mattt]] 11:38, 30 July 2008 (UTC)<br />
:Actually it appears that it's not fixed, but patching that file and disconnecting and reconnecting the phone works perfectly. --[[User:Johndoesacc|Johndoesacc]] 18:37, 20 August 2008 (UTC)<br />
:Well, yes, it must be fixed because it worked for me out-of-the-box without tweaking the udev rule on 8.04 --[[User:EtienneG|EtienneG]] November 26th, 2008<br />
:It wasn't solved in my case, as of 3. February 2009 in 8.04 (AMD64), the patch above solved my problem thou. --[[User:VilleWitt|VilleWitt]] February 3td, 2009.<br />
<br />
====Настройка iptables через GUI====<br />
<br />
Firestarter пригодится, чтобы дать смартфону выход в интернет без необходимости модифицировать iptables вручную. Firestarter есть в репозитории Ubuntu, установить его можно командой:<br />
<br />
<pre>sudo aptitude install firestarter</pre><br />
<br />
В диалоге настроек Firestarter есть раздел Network, в котором вы найдёте раскрывающийся список "Local network connected device". Выберите Freerunner (как правило, его имя будет "Unknown device(usb0)") и установите флаг "Enable internet connection sharing". Снимите флаг, разрешающий локальный DHCP, после чего ваш смартфон должен получить выход в интернет<br />
<br />
-Tested in ubuntu 8.10--[[User:makito|Makito]] February 26, 2009<br />
<br />
Внимание: Firestarter нужно запускать от имени суперпользователя.<br />
<br />
=== Обходное решение для Ubuntu ===<br />
<br />
Попробуйте применить [http://wicd.sourceforge.net/ wicd] вместо networkmanager. Этот пакет разработан намного лучше, чем networkmanager, и не создаёт проблем с сетевыми соединениями через USB. С ним вы можете использовать &laquo;нормальные&raquo; установки в /network/interfaces.<br />
<br />
Внимание: wicd конфликтует по зависимостям с networkmanager, так что при установке одного пакета другой будет удалён.<br />
<br />
=== Ubuntu и QI ===<br />
<br />
Если у вас не получается соединиться со смартфоном после установки qi, проверьте, изменилось ли имя устройства на &laquo;eth''N''&raquo;. Как уже отмечалось выше, многие операционные системы присваивают устройству имя вида &laquo;eth''N''&raquo;, если для него обнаружен официальный (не сгенерированный локально) MAC-адрес. Qi, в отличие от u-boot, передаёт официальный MAC-адрес смартфона.<br />
<br />
== Mandriva ==<br />
<br />
Следующий файл задаёт настройку сетевого интерфейса usb0. Когда вы подключите смартфон к USB-интерфейсу, он автоматически будет настроен.<br />
<br />
<tt>/etc/sysconfig/network-scripts/ifcfg-usb0</tt>:<br />
<br />
<pre><br />
DEVICE=usb0<br />
BOOTPROTO=static<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
NETWORK=192.168.0.0<br />
BROADCAST=192.168.0.255<br />
ONBOOT=yes<br />
METRIC=10<br />
MII_NOT_SUPPORTED=no<br />
USERCTL=yes<br />
</pre><br />
<br />
Следующий файл настраивает статические маршруты, требуемые для связи между подсетями. Поскольку в имени файла присутствует &laquo;usb0&raquo;, система автоматически настроит эти маршруты при конфигурировании интерфейса usb0 (то есть, когда вы подключите смартфон).<br />
<br />
<tt>/etc/sysconfig/network-scripts/usb0-routes</tt>:<br />
<br />
<pre><br />
ADDRESS0=192.168.0.200<br />
NETMASK0=255.255.255.0<br />
</pre><br />
<br />
Теперь нужно перезапустить сетевые службы:<br />
<br />
service network restart<br />
<br />
This didn't work for me (Mandriva 2008.1), giving errors from Shorewall. However, simply using MCC, Network->Sharing Internet Access worked fine. You need to connect Neo when starting it. --[[User:Alih|Alih]] 18:50, 22 September 2008 (UTC)<br />
<br />
== SuSE ==<br />
<br />
/etc/sysconfig/network/ifcfg-usb0:<br />
<br />
# USB configuration for PDAs (openmoko)<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
STARTMODE=onboot<br />
<br />
Дополнительную информацию о настройке сети через USB с использованием YaST вы можете получить в статье [[USB Networking with openSUSE]].<br />
<br />
== Fedora ==<br />
<br />
=== Вариант A. Проверен на FC9, FC8 и FC5 ===<br />
<br />
Отредактируйте файл <tt>/etc/sysconfig/network-scripts/ifcfg-usb0</tt> следующим образом:<br />
<br />
# USB configuration for PDAs (openmoko)<br />
# from <nowiki>http://www.handhelds.org/moin/moin.cgi/UsbNet</nowiki><br />
DEVICE=usb0<br />
BOOTPROTO=none<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
ONBOOT=yes<br />
<br />
Перезапустите сетевые службы:<br />
<br />
service network restart<br />
<br />
Если ваш смартфон был присоединён в момент перезапуска служб, вы должны увидеть сообщение:<br />
<br />
<code>Bringing up interface usb0 [OK]</code><br />
<br />
=== Вариант B ===<br />
<br />
Этот вариант, вероятно, чересчур сложен:<br />
<br />
/etc/sysconfig/network-scripts/ifcfg-usb0:<br />
<br />
DEVICE=usb0<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
<br />
/etc/sysconfig/network-scripts/ifup-usb:<br />
<br />
#!/bin/bash<br />
./etc/init.d/functions<br />
cd /etc/sysconfig/network-scripts<br />
../network-functions<br />
[ -f ../network ] && . ../network<br />
CONFIG=${1}<br />
need_config ${CONFIG}<br />
source_config<br />
NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`<br />
/sbin/ip addr flush dev ${DEVICE} 2>/dev/null<br />
/sbin/ip link set dev ${DEVICE} up<br />
/sbin/ip addr add dev ${DEVICE} ${IPADDR}/${NETBITS}<br />
/sbin/iptables -I POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}<br />
/sbin/sysctl net.ipv4.ip_forward=1<br />
/sbin/iptables -I FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/iptables -I FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT<br />
<br />
Устанавливаем /etc/sysconfig/network-scripts/ifdown-usb:<br />
<br />
#!/bin/bash<br />
./etc/init.d/functions<br />
cd /etc/sysconfig/network-scripts<br />
../network-functions<br />
[ -f ../network ] && . ../network<br />
CONFIG=${1}<br />
need_config ${CONFIG}<br />
source_config<br />
NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`<br />
/sbin/iptables -D FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/iptables -D FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/sysctl net.ipv4.ip_forward=0<br />
/sbin/iptables -D POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}<br />
/sbin/ip link set dev ${DEVICE} down<br />
/sbin/ip addr flush dev ${DEVICE} 2>/dev/null<br />
<br />
Если вы используете NetworkManager, перезапустите его и разрешите устройство USB через меню, иначе он запретит ваше соединение вскоре после того, как вы его установили.<br />
<br />
/sbin/service NetworkManager restart<br />
<br />
=== Вариант C. Проверен на FC8, FC9 и F10 ===<br />
<br />
Подсоедините устройство. NetworkManager должен определить подключение автоматически, но это для нас не имеет значения.<br />
<br />
Откройте Network Configuration (System -> Administration -> Network) и выполните следующие шаги:<br />
<br />
# Нажмите '''New''' в верхней панели.<br />
# Нажмите '''Forward'''.<br />
# Выберите в списке устройств Openmoko.<br />
# Нажмите '''Forward'''.<br />
# Выберите 'Statically set IP address:' и введите address: 192.168.0.200, netmask 255.255.255.0 (или 255.255.255.240, если вам нужен только поддиапазон 192.168.0.192-192.168.0.207). Оставьте поле gateway пустым.<br />
# Нажмите '''Forward'''.<br />
# Нажмите '''Apply''' (диалог добавления устройства закроется).<br />
# Выберите вновь добавленное устройство usb0 из списка.<br />
# Нажмите '''Edit''' в верхней панели.<br />
# Возможно, вы решите снять флаг 'Activate device when computer starts'.<br />
# Нажмите '''Ok''' (диалог закроется).<br />
Сохраните настройки и закройте окно.<br />
<br />
Откройте Firewall Configuration (System -> Administration -> Firewall) и включите маскарадинг:<br />
# Выберите '''Masquerading''' в левой панели.<br />
# Выберите устройства, для которых вы бы хотели разрешить использование вашего интернет-соединения. Как правило, это устройства eth0 и wlan0.<br />
# Нажимте '''Apply''' и закройте окно.<br />
<br />
Откройте консоль и выполните от имени суперпользователя:<br />
# ifdown usb0<br />
# ifup usb0<br />
Первая команда удалит все текущие настройки, заданные NetworkManager, а вторая включит интерфейс с нужными настройками.<br />
<br />
Теперь у вас должна быть связь с внешним миром. Проверьте, так ли это, командой ping (например, 74.125.39.99 [www.google.com]) со смартфона. Настройте /etc/resolv.conf, и у вас будет полноценный доступ в интернет.<br />
<br />
==== Решение проблем ====<br />
<br />
Если Network Configuration не видит устройство usb0, попробуйте отсоединить USB-кабель и через несколько секунд присоединить его обратно, после чего подождать, пока NetworkManager не найдёт его.<br />
<br />
NetworkManager назначит смартфону новый IP-адрес, если соединение пропадёт. Это можно исправить, повторно выполнив '''ifup usb0'''.<br />
<br />
== Red Hat и аналоги (проверено на Workstation 5) ==<br />
<br />
Исправьте /etc/sysconfig/network-scripts/net.hotplug:<br />
<br />
После строк:<br />
<br />
<pre><br />
case $INTERFACE in<br />
# interfaces that are registered after being "up" (?)<br />
</pre><br />
<br />
добавьте<br />
<br />
<pre><br />
usb0)<br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
route add 192.168.0.202 usb0<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
exit 0<br />
;;<br />
</pre><br />
<br />
== Gentoo ==<br />
<br />
Откройте /etc/conf.d/net и добавьте:<br />
<br />
<pre><br />
# Neo<br />
config_usb0=( "192.168.0.200 netmask 255.255.255.0" )<br />
routes_usb0=( "192.168.0.202/32 via 192.168.0.200" )<br />
</pre><br />
<br />
Создайте новый скрипт init:<br />
<br />
<pre><br />
cd /etc/init.d<br />
ln -s net.lo net.usb0<br />
</pre><br />
<br />
=== Ручная настройка ===<br />
<br />
Добавьте правила iptables:<br />
<br />
<pre><br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
</pre><br />
<br />
Сохраните их:<br />
<br />
/etc/init.d/iptables save<br />
<br />
Если вы хотите сделать маршрутизацию по умолчанию, выполните:<br />
<br />
rc-update add iptables default<br />
<br />
Кроме того, нужно указать ядру, что требуется начать форвардинг:<br />
<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
=== Автоматическая настройка ===<br />
<br />
Автоматизировать всё и сразу можно, создав /etc/conf.d/net.usb0 согласно следующему листингу. Такой скрипт включает форвардинг пакетов и маршрутизацию в один приём, а также удаляет правила iptables и выключает форвардинг, когда вы отключаете устройство. Учтите, что служба net.usb0 service должна поддерживать горячее включение (/etc/rc.conf).<br />
<br />
<pre><br />
preup() {<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
return 0<br />
}<br />
<br />
postdown() {<br />
echo 0 > /proc/sys/net/ipv4/ip_forward<br />
iptables -D INPUT -s 192.168.0.202 -j ACCEPT<br />
iptables -D OUTPUT -s 192.168.0.200 -j ACCEPT<br />
iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
return 0<br />
}<br />
</pre><br />
<br />
== Slackware (проверено на 12.1) ==<br />
<br />
По мотивам решения, [http://www.enricozini.org/2008/tips/autodock-freerunner.html предложенного Энрико Зини (Enrico Zini)].<br />
<br />
Создайте новый файл с правилами для udev <tt>/etc/udev/rules.d/91-openmoko.rules</tt>:<br />
<br />
<pre><br />
SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="1457", ATTRS{idProduct}=="5122", RUN+="/sbin/om-usb $env{INTERFACE} start"<br />
SUBSYSTEM=="net", ACTION=="remove", ENV{INTERFACE}=="usb[0-9]", RUN+="/sbin/om-usb $env{INTERFACE} stop"<br />
</pre><br />
<br />
Затем создайте файл <tt>/sbin/om-usb</tt>:<br />
<br />
<pre><br />
#!/bin/sh<br />
INTERFACE=$1<br />
ACTION=$2<br />
<br />
# udev fails silently when the script fails, e.g. due to commands not<br />
# being found<br />
PATH=/usr/sbin:/sbin:/usr/bin:/bin<br />
<br />
case $ACTION in<br />
'start')<br />
# Put all your setup here<br />
;;<br />
'stop')<br />
# Put all your tear down here<br />
;;<br />
*)<br />
echo "Usage: $0 {start|stop}"<br />
exit 1<br />
;;<br />
esac<br />
</pre><br />
<br />
<tt>INTERFACE</tt> в большинстве случаев будет <tt>usb0</tt>.<br />
<br />
== Archlinux ==<br />
<br />
По мотивам решения, [http://xenos.altervista.org/blogs/index.php?blog=3&title=openmoko-usb-networking-su-archlinux предложенного пользователем furester].<br />
<br />
Установите [http://aur.archlinux.org/packages.php?ID=20220 openmoko-usb-networking] из AUR:<br />
<br />
$ yaourt -S openmoko-usb-networking<br />
<br />
= Дополнения по SSH =<br />
<br />
Сообщалось, что демон ssh daemon (dropbear 0.49) на FreeRunner содержит ошибку, из-за которой иногда вы можете получить код возврата 255 при выходе.<br />
<br />
Чтобы ssh не добавлял новую строку для каждого ssh host-key в ваш файл known_hosts, вы можете добавить в файл ~/.ssh/config в секцию phone следующее (или см. листинг в секции [[USB Networking#Changing_host_keys]] ниже):<br />
<br />
UserKnownHostsFile /dev/null<br />
<br />
Также вы можете использовать ключи, чтобы не вводить пароль.<br />
<br />
== Ключи SSH ==<br />
<br />
== С ПК на FreeRunner ==<br />
<br />
Чтобы сгенерировать ключи для ssh, выполните:<br />
<br />
user@host$ ssh-keygen -t rsa<br />
<br />
При запросе пароля просто нажмите enter, если вы хотите оставить пароль пустым (''не лучший вариант'') или введите пароль для данного ключа. Войдите в консоль смартфона и создайте директорию ~/.ssh:<br />
<br />
root@phone# mkdir ~/.ssh<br />
<br />
Потом скопируйте в эту директорию файл '''.pub''', созданный на ПК на предыдущем шаге:<br />
<br />
user@host$ scp ~/.ssh/id_rsa.pub root@phone:~/.ssh/authorized_keys<br />
<br />
Теперь вы можете соединяться со смартфоном по SSH от имени user@host без необходимости вводить пароль, поскольку ваш публичный ключ содержится в файле root@phone:~/.ssh/authorized_keys. Если вы делали всё по инструкции, то в данный момент в этом файле только один ключ, но вы можете добавить ключи для других пользователей, например, user@host, user@laptop и т. п.<br />
<br />
Чтобы сделать вход по умолчанию с правами суперпользователя, добавьте в файле ~/.ssh/config следующие строки:<br />
<br />
Host phone<br />
User root<br />
<br />
Замените ''phone'' именем хоста или IP-адресом вашего смартфона. Теперь вы сможете соединяться с устройством по SSH без необходимости каждый раз писать''root@''.<br />
<br />
Чтобы запретить вход с паролем ('''после настройки входа с ключом'''), исправьте /etc/init.d/dropbear, изменив следующую строку:<br />
<br />
DROPBEAR_EXTRA_ARGS=<br />
<br />
на<br />
<br />
DROPBEAR_EXTRA_ARGS="-s"<br />
<br />
После этого перезапустите dropbear, чтобы новые настройки вступили в силу.<br />
<br />
=== С Freerunner на ПК ===<br />
<br />
Создайте ключ:<br />
<br />
dropbearkey -t rsa -f id_rsa<br />
<br />
Выхлоп будет выглядеть приблизительно так:<br />
<br />
Will output 1024 bit rsa secret key to 'id_rsa'<br />
Generating key, this may take a while...<br />
Public key portion is:<br />
ssh-rsa AAAAB3Nza[...]<br />
Fingerprint: md5 ca:e8:f0:b7:f6:7b:c2:b6:b9:71:e4:45:86:a9:ff:b8<br />
<br />
Скопируйте строку, начинающуюся с 'ssh-rsa', и вставьте её в конец файла authorized_keys на ПК (как правило, этот файл содержится в директории ~/.ssh/).<br />
<br />
Со смартфона запустите ssh с ключом -i:<br />
<br />
ssh -i id_rsa user@host<br />
<br />
=== Изменение ключей ПК ===<br />
<br />
Если вы перепрошьёте устройство, ключи поменяются. Попробуйте следующую конфигурацию ~/.ssh/config на ПК:<br />
<br />
Host moko<br />
HostName 192.168.0.202<br />
StrictHostKeyChecking no<br />
UserKnownHostsFile /dev/null<br />
User root<br />
<br />
Это рекомендуется сделать, поскольку ssh на ПК может отказать в соединении, если ключ, записанный для определённого IP-адреса, изменился. После того, как вы изменили настройки ssh, как описано выше, вы сможете соединиться с устройством по SSH:<br />
<br />
ssh root@moko<br />
<br />
== GUI на ПК через SSH ==<br />
<br />
Чтобы вывести GUI со смартфона на экран вашего ПК, выполните на ПК следующее:<br />
<br />
xhost +<br />
ssh -l root -X -v 192.168.0.202<br />
<br />
Теперь запустите, например, openmoko-finger-demo, и он откроется на ПК. Чтобы переключиться в альбомный режим, просто измените размер окна на ПК.<br />
<br />
Если вы получаете ошибку вида:<br />
<br />
<tt><br />
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ExecFailed: dbus-launch failed to<br />
autolaunch D-Bus session: Autolaunch requested, but X11 support not compiled in.<br />
</tt><br />
<br />
то вам нужно установить переменную окружения DBUS_SESSION_BUS_ADDRESS на FreeRunner перед тем, как запускать процессы с ПК. Нужное значение можно узнать, выполнив на Freerunner команду:<br />
<br />
ps auxwwwwe | grep -m 1 DBUS_SESSION_BUS_ADDRESS<br />
<br />
Теперь, снова на ПК, запустите нужный вам процесс с установкой переменной окружения, примерно так:<br />
<br />
env DBUS_SESSION_BUS_ADDRESS=''dbus_address'' ''process'' #(вероятно, &laquo;env&raquo; здесь избыточно?)<br />
<br />
== Отображение удалённых приложений на FreeRunner ==<br />
<br />
Чтобы видеть приложения, запущенные на ПК, на экране смартфона, сначала соединитесь с ним по SSH:<br />
<br />
ssh -l root 192.168.0.202<br />
<br />
Затем выполните:<br />
<br />
DISPLAY=:0 xhost +192.168.0.200<br />
<br />
После этого можно закрыть соединение SSH. На ПК выполните:<br />
<br />
DISPLAY=openmoko:0 xclock<br />
<br />
Имейте в виду, что команда xhost даёт доступ к X-серверу любым приложениям с хоста 192.168.0.200, так что любой желающий, имеющий доступ к ПК сможет, в том числе, подглядывать за вами. Отключить удалённый доступ можно командой:<br />
<br />
DISPLAY=:0 xhost -192.168.0.200<br />
<br />
== sftp ==<br />
<br />
После того, как вы настроили SSH, можно использовать Konqueror, Nautilus или любое другое приложение, поддерживающее sftp, чтобы работать с файлами или загружать тестовые приложения. Просто наберите sftp://root@192.168.0.202 в строке адреса.<br />
<br />
== sshfs ==<br />
<br />
Вы можете использовать sshfs, чтобы примонтировать файловую систему смартфона к файловой системе ПК. Убедитесь, что установлен пакет fuse-sshfs, и что у вас есть права на использование fuse. После этого выполните:<br />
<br />
sshfs 192.168.0.202:REMOTE_PATH LOCAL_MOUNT_POINT<br />
<br />
REMOTE_PATH теперь доступен через LOCAL_PATH.<br />
<br />
== Автоматическая настройка сети и монтирование разделов ==<br />
<br />
См. [https://bugs.launchpad.net/ubuntu/+bug/289548 Ubuntu bug report in launchpad].</div>Phantomhttp://openmoko.org/wiki/USB_Networking/ruUSB Networking/ru2009-06-03T03:41:35Z<p>Phantom: Категории перенесены в верхнюю часть страницы.</p>
<hr />
<div>[[Category:USB]]<br />
[[Category:Implemented]]<br />
[[Category:Networking]]<br />
<br />
{{Languages|USB_Networking}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
= Настройка соединения с Openmoko =<br />
<br />
Для того, чтобы связаться с вашим FreeRunner по TCP/IP, нужно понимать, что для этого потребуется. Стороны соединения USB образуют сегмент локальной сети (LAN segment), в котором одним узлом является смартфон, а другим&nbsp;&mdash; ваша настольная машина или ноутбук (будем называть её ПК).<br />
<br />
Примем как данность, что ваш ПК имеет настроенное соединение с интернетом, так что на ней тем или иным образом (статически или динамически, посредством DHCP) задан IP-адрес шлюза. Для того, чтобы выход в интернет появился на вашем Freerunner, нужно настроить на ПК маршрутизацию пакетов и маскарадинг.<br />
<br />
Как правило, маршрутизация и маскарадинг настраиваются легко, однако если окажется, что подсеть между смартфоном и ПК пересекается с подсетью, в которой находится шлюз, могут возникнуть проблемы, поскольку ПК, скорее всего, не догадается, как правильно перенаправлять пакеты.<br />
<br />
Другими словами, если ваши ПК и шлюз имеют IP-адреса вида 192.168.0.Х, то изменение их на что-нибудь вроде 192.168.1.Х избавит вас от множества проблем. Этот вопрос подробно обсуждается в [http://lists.openmoko.org/pipermail/support/2008-August/thread.html#1277 рассылке].<br />
<br />
== О чём следует помнить ==<br />
<br />
* Когда FreeRunner переходит в ждущий режим, он отключает свой сетевой интерфейс USB. Следовательно, если вы работаете с устройством через USB&nbsp;&mdash; выключите автоматический переход в ждущий режим. Это можно сделать вручную; кроме того, на [https://wiki.muc.ccc.de/openmoko веб-сайте клуба ССС] вы найдёте два скрипта, которые делают это при подключении внешнего источника питания ([https://wiki.muc.ccc.de/openmoko#disable_suspend_if_on_external_power для Om 2007] и [https://wiki.muc.ccc.de/openmoko#disable_suspend_if_on_external_power1 для Om 2008]).<br />
<br />
* Некоторые скрипты выполняют tail-grep на файлах журналов. Если syslog и/или klog отключены, то у вас могут быть проблемы с определением, подключено ли устройство к вашему ПК. Если такая проблема есть, убедитесь, что службы журналирования работают (для Debian и Ubuntu это можно сделать командами /etc/init.d/klogd restart; /etc/init.d/sysklog restart).<br />
<br />
== &laquo;usb0&raquo; или &laquo;eth1&raquo;? ==<br />
<br />
В данном руководстве мы предполагаем, что имя сетевого интерфейса на ПК&nbsp;&mdash; &laquo;usb0&raquo;. Тем не менее, это имя определяется операционной системой вашего ПК, и многие системы назовут этот интерфейс, руководствуясь MAC-адресом смартфона. Выполните ifconfig -a или dmesg, чтобы увидеть список всех сетевых интерфейсов или просмотреть вывод ядра ОС&nbsp;&mdash; в обоих случаях вы увидите, как называется интерфейс, если он вообще был создан. Если имя отличается от &laquo;usb0&raquo;, то оно почти наверняка будет следующим доступным &laquo;eth''N''&raquo;.<br />
<br />
Везде, где ниже мы упоминаем интерфейс &laquo;usb0&raquo;, замените его то имя, которое ваша система присвоила интерфейсу.<br />
<br />
Для интересующихся технической стороной, имя &laquo;usb0&raquo; выбирается системой в случае, если MAC-адрес устройства является локально сгенерированным (случайным), поскольку если адрес случаен, то возможность управления интерфейсом при помощи соответствующих инструментов оказывается под вопросом. На самом деле, смартфонам Freerunner при изготовлении назначаются MAC-адреса, в том числе и для USB-интерфейса. Если эти адреса правильно используются смартфоном (так делают Qi bootloader и некоторые дистрибутивы, но не все), то ОС вашего ПК получает официальный MAC-адрес и создаёт &laquo;постоянный&raquo; сетевой интерфейс, которому принято давать имя вида &laquo;eth''N''&raquo;. Однажды выданное имя запоминается и в дальнейшем используется только для этого устройства, что особенно удобно, если у вас несколько устройств, для которых вы настраиваете сетевые соединения через USB.<br />
<br />
На момент написания этой статьи (оригинальной англоязычной&nbsp;&mdash; прим. phantom) официальный MAC-адрес корректно передавали дистрибутивы Android и SHR.<br />
<br />
= Простая настройка вручную на Linux =<br />
<br />
Для начала попробуйте этот способ. Если он сработает, вы сможете сохранить настройку или попробовать более сложные способы, описанные ниже.<br />
<br />
Вам потребуются привилегии суперпользователя. Включите смартфон в обычном режиме и подключите его к USB-интерфейсу вашего ПК.<br />
<br />
=== Кратчайший путь ===<br />
<br />
Этот простой способ был испытан на множестве Linux-систем (Fedora, SuSE, Red Hat, Debian и др.) и сетевых конфигураций. Более того, он сработал при подключении к другим КПК под управлением Linux (типа TDS Nomad), так что мы с уверенность рекомендуем его для первой попытки. Мы предполагаем, что на вашем ПК работает достаточно свежий дистрибутив, имеющий поддержку сетевых соединений через USB, и что ваша сетевая конфигурация более или менее стандартна.<br />
<br />
Выполните от имени суперпользователя настройку интерфейса usb0:<br />
<pre><br />
sudo ip address add 192.168.0.200/24 dev usb0<br />
</pre><br />
или (устаревшее)<br />
<pre><br />
sudo ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
</pre><br />
<br />
Если ваш интерфейс eth0 находится в том же диапазоне IP-адресов (например, 192.168.0.105), сделайте следующее:<br />
<br />
1. Проверьте, что до смартфона доходят пакеты:<br />
# ping -I usb0 192.168.0.202<br />
2. Войдите в консоль смартфона (для этого суперпользователь не нужен):<br />
# ssh root@192.168.0.202<br />
Пароль суперпользователя на смартфоне по умолчанию пуст.<br />
<br />
Не забудьте, что для того, чтобы соединиться с устройством по SSH, нужно, чтобы на вашем локальном межсетевом экране (firewall) был разрешён порт 22. Если вы подозреваете, что соединиться с устройством не удаётся из-за работающего экрана, попробуйте физически отключить внешний Ethernet-кабель, после чего временно выключить межсетевой экран.<br />
<br />
Кроме того, некоторые старые или специфически настроенные системы могут не иметь поддержки сетевых соединений через USB. В таком случае необходимо обновить систему и добавить соответствующие модули.<br />
<br />
=== Более продвинутый путь ===<br />
<br />
Если описанный выше простой способ не сработал, попробуйте следующий, более сложный.<br />
<br />
<pre>iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
sysctl -w net.ipv4.ip_forward=1<br />
ip addr add 192.168.0.200/24 dev usb0</pre><br />
<br />
Если ваше соединение с интернетом использует IP-адрес в той же подсети (192.168.0.Х), попробуйте вместо этого следующее:<br />
<br />
<pre>ip addr add 192.168.0.200/28 dev usb0</pre><br />
<br />
Такая команда направит пакеты с адресов в диапазоне от 192.168.0.192 до 192.168.0.207 на интерфейс usb0. Если вы видите сообщение об ошибке 'Cannot find device "usb0"', проверьте, что смартфон включён и присоединён к USB-интерфейсу вашего ПК; если с этим всё в порядке, попробуйте отсоединить и присоединить USB-кабель.<br />
<br />
Далее, вам следует включить ARP-прокси для внешнего интерфейса ВМЕСТО того, чтобы применять iptables:<br />
<br />
<pre>sysctl net.ipv4.conf.eth2.proxy_arp=1</pre><br />
<br />
Команда дана для случая, когда внешний интерфейс&nbsp;&mdash; eth2.<br />
<br />
После этого:<br />
<pre>ip link set usb0 up</pre><br />
или (устаревшее)<br />
<pre>ifconfig usb0 up</pre><br />
<br />
И наконец (в идеале, не как суперпользователь):<br />
<br />
<pre>ssh root@192.168.0.202</pre><br />
<br />
Пароль суперпользователя по умолчанию пуст.<br />
<br />
Поскольку в большинстве случаев смартфон будет использовать те же DNS-серверы, что и ПК, можно автоматизировать процесс конфигурирования::<br />
<br />
<pre>#!/bin/sh<br />
/sbin/route add -host 192.168.0.202/32 dev usb0<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
iptables -P FORWARD ACCEPT<br />
sysctl -w net.ipv4.ip_forward=1<br />
scp /etc/resolv.conf root@192.168.0.202:/etc/resolv.conf</pre><br />
<br />
Повторимся, если ваша сеть имеет адреса 192.168.0.Х, замените строку с правилом POSTROUTING следующим:<br />
<pre>iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/28</pre><br />
<br />
Этот простой скрипт настроит маршрутизацию на вашем смартфоне и скопирует на него ваш resolv.conf. Всё, что вам нужно будет сделать, чтобы на смартфоне появился интернет&nbsp;&mdash; это соединить смартфон с ПК и выполнить этот скрипт.<br />
<br />
=== Изменение IP-адреса смартфона ===<br />
<br />
Как упоминалось выше, если подсеть, используемая смартфоном по умолчанию (192.168.0.X), уже используется, может потребоваться изменить IP-адрес и подсеть самого устройства. Для этого нужно отредактировать /etc/network/interfaces на Freerunner, после чего перезагрузить смартфон.<br />
<br />
В следующем примере для устройства задаётся IP-адрес 192.168.100.1 (вместо адреса по умолчанию 192.168.0.202) в подсети 192.168.100.X (вместо 192.168.0.X), другой [http://en.wikipedia.org/wiki/Private_network частной] сети класса C. ([http://en.wikipedia.org/wiki/Subnetwork#Binary_subnet_masks Маска подсети] показывает, что первые три байта используются для адресации подсети, а последний байт&nbsp;&mdash; для адресации машины в подсети.) Шлюз (ПК, к которому подключен смартфон) должен тоже быть узлом подсети, и в данном случае для него задаётся IP-адрес 192.168.100.254 (вместо 192.168.0.200).<br />
<br />
Изменения для /etc/network/interfaces:<br />
<br />
<pre><br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.100.1<br />
netmask 255.255.255.0<br />
network 192.168.100.0<br />
gateway 192.168.100.254<br />
</pre><br />
<br />
(Строка network, похоже, избыточна, поскольку эти данные могут быть получены сопоставлением строк address и netmask?) Обратите внимание, что адреса даны для примера, и вам наверняка потребуется изменить их так, чтобы они соответствовали вашей конфигурации.<br />
<br />
= Поддержка в ядре Linux =<br />
<br />
Необходимо, чтобы ваш Linux-ПК поддерживал необходимые функции, а именно сетевые соединения через USB и маскарадинг. Эти функции включены по умолчанию в большинстве современных дистрибутивов Linux.<br />
<br />
== Поддержка сетевых соединений через USB ==<br />
<br />
Следующие опции должны быть включены:<br />
<br />
* CONFIG_USB_USBNET (''Multi-purpose USB Networking Framework''. Модуль будет называться <tt>usbnet</tt>)<br />
* CONFIG_USB_NET_CDCETHER (''CDC Ethernet support''. Модуль будет называться <tt>cdc_ether</tt>)<br />
<br />
Эти опции находятся в группе ''Device Drivers -> USB support -> USB Network Adapters'' или ''Device Drivers -> Network Device Support -> USB Network Adapters''.<br />
<br />
Для того, чтобы соединения через USB заработали, вам нужно будет загрузить модуль <tt>cdc_ether</tt> (при загрузке <tt>cdc_ether</tt> модуль <tt>usbnet</tt> загрузится автоматически). Подробности описаны на [http://www.linux-usb.org/usbnet/ странице, посвящённой драйверу usbnet].<br />
<br />
== Поддержка маскарадинга ==<br />
<br />
Опции, относящиеся к маскарадингу, находятся в группе ''Networking ---> Networking options --->'' (проверено на Linux 2.6.26.3).<br />
<br />
Для того, чтобы включить требуемые опции, сначала вам нужно включить:<br />
<br />
* CONFIG_NETFILTER (''Network packet filtering framework (Netfilter)'')<br />
<br />
Затем в группе ''Networking ---> Networking options ---> [*] Network packet filtering framework (Netfilter) ---> Core Netfilter Configuration --->''&nbsp;&mdash; как минимум, следующие опции:<br />
<br />
* CONFIG_NF_CONNTRACK (''Netfilter connection tracking support'')<br />
* CONFIG_NF_CONNTRACK_FTP (''FTP protocol support'')<br />
* CONFIG_NETFILTER_XTABLES (''Netfilter Xtables support'')<br />
<br />
Остальные опции находятся в группе ''Networking ---> Networking options ---> [*] Network packet filtering framework (Netfilter) ---> IP: Netfilter Configuration --->''. Вам потребуются опции:<br />
<br />
* CONFIG_NF_CONNTRACK_IPV4 (''IPv4 connection tracking support (required for NAT)'')<br />
* CONFIG_IP_NF_IPTABLES (''IP tables support (required for filtering/masq/NAT)'')<br />
* CONFIG_NF_NAT (''Full NAT'')<br />
* CONFIG_IP_NF_TARGET_MASQUERADE (''MASQUERADE target support'')<br />
<br />
= Проблемы с межсетевыми экранами =<br />
<br />
На некоторых системах настройки межсетевого экрана по умолчанию мешают настройке соединения с Freerunner (как, например, iptables на Fedora). Можно просто отключить экран, либо попытаться найти, какие правила или политики могут вызывать затруднения.<br />
<br />
Первое, что нужно проверить&nbsp;&mdash; это таблица маршрутизации NAT, управляющая преобразованием IP-адресов:<br />
<br />
iptables -L -t nat -v -n<br />
<br />
Если в вашей настройке нет ничего специфического, то вам будут интересны только правило MASQUERADE, которое мы добавим ниже, и правило ACCEPT, являющееся политикой по умолчанию. Взгляните также на таблицу фильтрации:<br />
<br />
iptables -L -t filter -v -n<br />
<br />
Если эта таблица содержит что-либо в цепи FORWARD, это может помешать передаче пакетов. Сбросить правила можно командой:<br />
<br />
iptables -t filter -F FORWARD<br />
<br />
= DNS =<br />
<br />
Вдобавок к маршрутизации, вообще говоря, надо, чтобы была доступна служба DNS. В некоторых случаях у вас может уже быть настроен локальный сервер DNS, например, dnsmasq или bind9, и это предположение&nbsp;&mdash; что DNS-сервер работает на шлюзе&nbsp;&mdash; Freerunner делает по умолчанию. В других случаях вам потребуется указать, какой DNS-сервер следует использовать.<br />
<br />
== Настройка DNS ==<br />
<br />
DNS настраивается в файле /etc/resolv.conf вашего Freerunner.<br />
<br />
Добавьте IP-адрес DNS-сервера, предоставляемого вашим интернет-провайдером.<br />
<br />
<pre>echo nameserver xxx.xxx.xxx.xxx > /etc/resolv.conf</pre><br />
<br />
Вы можете также добавить публичный DNS-сервер, известный как openDNS:<br />
<br />
<pre>echo nameserver 208.67.222.222 > /etc/resolv.conf<br />
echo nameserver 208.67.220.220 >> /etc/resolv.conf</pre><br />
<br />
Эти настройки будут потеряны при перезагрузке. Можно сделать так, чтобы они сохранялись, добавив следующие строки в файл /etc/network/interfaces в конец секции, относящейся к usb0:<br />
<pre>up echo nameserver 208.67.222.222 > /etc/resolv.conf<br />
up echo nameserver 208.67.220.220 >> /etc/resolv.conf</pre><br />
<br />
== Получение DNS с ПК ==<br />
<br />
Если вы часто переезжаете с места на место, делать какие-либо заключения о настройке сети может быть не очень удобно. Вместо этого можно настроить получение настроек DNS с вашего ПК, для чего есть несколько способов.<br />
<br />
=== dnrd ===<br />
<br />
Разработан скрипт для настройки использования [http://dnrd.sourceforge.net/ dnrd] в качестве DNS-прокси. Доступны [http://buildhost.automated.it/gta01 сам скрипт] и [http://buildhost.automated.it/dnrd-2.20.3.tar.gz копия dnrd]. Помимо настройки DNS-прокси, скрипт выполняет первичную настройку соединения согласно разделу [[USB_Networking#Manual_method]] выше.<br />
<br />
=== Пересылка UDP-пакетов (UDP forwarding) ===<br />
<br />
Другой простой способ заключается в использовании ПО, осуществляющего пересылку пакетов UDP&nbsp;&mdash; например, [http://www.tapor.com/udpf/ udpf]. Выполните его командой:<br />
<br />
<pre>udpf-elf -p=53-f=`awk '$1 == "nameserver"{print $2; exit(0);}' /etc/resolv.conf`:53</pre><br />
<br />
=== iptables ===<br />
<br />
Можно перенаправлять запросы DNS при помощи таблиц iptables, используя цель DNAT:<br />
<br />
<pre>iptables -t nat -A PREROUTING -p tcp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1<br />
iptables -t nat -A PREROUTING -p udp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1</pre><br />
<br />
Здесь <tt>192.168.0.1</tt>&nbsp;&mdash; это IP-адрес вашего маршрутизатора.<br />
<br />
Проверьте, что всё работает:<br />
<pre>ping www.google.com</pre><br />
<br />
Если ping сработал, то вопрос с доступом в интернет в целом можно считать решённым. Однако изменения в resolv.conf, сделанные вручную, могут быть утеряны, например, при использовании DHCP (а в особенности&nbsp;&mdash; WiFi), поэтому ручная настройка может оказаться неудобной.<br />
<br />
= Проверка соединения =<br />
<br />
У вас должна быть возможность соединиться с вашим Freerunner! Для начала убедитесь, что пакеты вообще проходят:<br />
<br />
ping 192.168.0.202<br />
<br />
После этого войдите в консоль по SSH:<br />
<br />
ssh root@192.168.0.202<br />
<br />
Пароль по умолчанию пуст (просто нажмите enter).<br />
<br />
Вы можете передавать файлы в обе стороны с помощью [[scp]]. Вы можете использовать telnet, SSH, SMB и всё остальное, что вам потребуется.<br />
<br />
Теперь убедитесь, что пакеты передаются в обратную сторону. Следующие команды нужно выполнить в консоли смартфона:<br />
<br />
ping 192.168.0.200<br />
<br />
(Имейте в виду, что некоторые системы, например, Vista, по умолчанию не отвечают на ICMP ping.)<br />
<br />
Проверьте доступ к внешнему миру (IP-адрес Google):<br />
<br />
ping 74.125.19.147<br />
<br />
Последняя команда покажет, работает ли маскарадинг на вашем ПК.<br />
<br />
Наконец, проверьте, что смартфон имеет доступ к DNS:<br />
<br />
ping www.google.com<br />
<br />
= Автоматическая и специфическая для ОС настройка =<br />
<br />
Раздел основывается на статье [http://blog.haerwu.biz/2007/03/22/hotpluging-usbnet/ Hotplugging usbnet] Маркина Юшкевича, известного под псевдонимом &laquo;Hrw&raquo; (Marcin 'Hrw' Juszkiewicz). Приведённые ниже рекомендации помогут вам настроить соединение один раз и пользоваться им в дальнейшем.<br />
<br />
Кроме того, в этом разделе вы можете найти полезную информацию на случай, если по каким-либо причинам описанные выше способы не работают в вашей операционной системе или в вашем дистрибутиве.<br />
<br />
== MacOS X ==<br />
См. [[MacOS_X#USB_Networking|MacOS X USB Networking]].<br />
<br />
== Windows ==<br />
См. [[Neo1973_and_Windows#USB_Ethernet_emulation|Windows USB Ethernet emulation for Neo1973]].<br />
<br />
Также есть очень полезное [http://sam.curren.ws/index.cfm/2008/7/14/Using-the-Neo-FreeRunner-with-Windows-XPVista руководство по настройке на Windows Vista].<br />
<br />
== FreeBSD ==<br />
Вам потребуется загрузить модуль cdce, если он ещё не загружен. Выполните от имени суперпользователя:<br />
<br />
# kldload cdce<br />
<br />
После этого Neo должен появиться в системе как интерфейс cdce0, и вы сможете выполнить остальную настройку так же, как описано для устройства usb0 под Linux. Дополнительную информацию вы найдёте в руководстве по cdce. Простой способ назначить IP-адрес интерфейсу cdce0 задействует демон devd(8). Создайте два файла:<br />
<br />
<tt>/usr/local/etc/devd/cdce.conf</tt>:<br />
<br />
<pre><br />
notify 1 {<br />
match "system" "IFNET";<br />
match "subsystem" "cdce0";<br />
match "type" "ATTACH";<br />
action "/usr/local/etc/devd/cdce.sh $subsystem $type";<br />
};<br />
</pre><br />
<br />
и <tt>/usr/local/etc/devd/cdce.sh</tt> as:<br />
<br />
<pre><br />
#!/bin/sh<br />
case $2 in<br />
'ATTACH')<br />
ifconfig cdce0 192.168.0.200 netmask 255.255.255.0<br />
exit 0 ;<br />
;;<br />
esac<br />
exit 0<br />
</pre><br />
<br />
После этого перезапустите демон devd(8):<br />
<br />
# /etc/rc.d/devd restart<br />
<br />
Теперь, когда вы подключите FreeRunner к USB-интерфейсу вашего ПК, автоматически будет создан интерфейс cdce0, и ему будет назначен IP-адрес.<br />
<br />
== Debian, Ubuntu и другие ==<br />
<br />
Откройте /etc/network/interfaces и добавьте в него следующие строки:<br />
<br />
<pre><br />
# freerunner<br />
allow-hotplug usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
up iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE<br />
up echo 1 > /proc/sys/net/ipv4/ip_forward<br />
down iptables -D POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE<br />
</pre><br />
<br />
Этот способ более изящен, чем ручная настройка. Трюк с автоматическим включением завязан на систему Linux hotplug, так что соответствующие действия по конфигурированию интерфейсов выполняются автоматически при подключении и отключении устройства.<br />
<br />
Вдобавок маска подсети на стороне ПК ограничена небольшим диапазоном, так что пересечение подсетей не является проблемой: Linux будет пользоваться специальными правилами для перенаправления пакетов.<br />
<br />
Альтернативное решение, добавляющее DNS forward и удаляющее изменения в таблице iptables после отключения устройства:<br />
<br />
В файле /etc/network/interfaces добавьте:<br />
<pre><br />
# freerunner<br />
allow-hotplug usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.192<br />
post-up /etc/network/freerunner start<br />
pre-down /etc/network/freerunner stop<br />
</pre><br />
<br />
Создайте файл /etc/network/freerunner:<br />
<pre><br />
#!/bin/sh<br />
#<br />
# configures the freerunner for internet<br />
#<br />
#<br />
<br />
DEVICE=usb0<br />
IPADDR=192.168.0.200<br />
REMOTE_IPADDR=192.168.0.202<br />
NETMASK=255.255.255.0<br />
<br />
# get first ip for dns<br />
DNSIP=$(awk '$1 == "nameserver"{print $2; exit(0);}' /etc/resolv.conf)<br />
<br />
case "$1" in<br />
start)<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR<br />
iptables -A PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
iptables -A PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
<br />
if [ "$(cat /proc/sys/net/ipv4/ip_forward)" = "0" ]; then<br />
echo "temoprarely allow ip_forward for openmoko" > /var/run/openmoko.ip_forward<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
fi<br />
;;<br />
stop)<br />
iptables -D POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR<br />
iptables -D PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
iptables -D PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
<br />
if [ -f /var/run/openmoko.ip_forward ]; then<br />
rm /var/run/openmoko.ip_forward<br />
echo 0 > /proc/sys/net/ipv4/ip_forward<br />
fi<br />
;;<br />
esac<br />
</pre><br />
<br />
Сделайте /etc/network/freerunner исполняемым:<br />
<br />
chmod +x /etc/network/freerunner<br />
<br />
Можно использовать network-manager, чтобы автоматически соединяться со смартфоном с помощью udev. Предлагаемый ниже способ использует udev для запуска скрипта, когда Freerunner подключается к системе. Скрипт использует команду ip, чтобы установить MAC-адрес сетевого интерфейса USB. Для начала создайте файл /etc/udev/rules.d/80-freerunner.rules :<br />
<br />
<pre><br />
# This file causes programs to be run on device insertion.<br />
# See udev(7) for syntax.<br />
# rule to assign a fixed mac address specified in /<br />
KERNEL=="usb[0-9]*", DRIVERS=="cdc_ether", ACTION=="add", RUN+="/usr/local/sbin/freerunner-usb-add.sh %k"<br />
</pre><br />
<br />
Затем создайте файл /usr/local/sbin/freerunner-usb-add.sh :<br />
<br />
<pre><br />
#!/bin/sh<br />
(<br />
busNum=$( printf %.2d $( expr match "$1" "usb\([0-9]*\)") )<br />
ip link set "$1" address 00:00:22:55:bb:$busNum &> /dev/null<br />
) &<br />
exit 0<br />
</pre><br />
<br />
Наконец, сделайте второй файл исполняемым:<br />
<br />
chmod +x /usr/local/sbin/freerunner-usb-add.sh<br />
<br />
Теперь вы можете использовать network-manager с настройками, привязанными к MAC-адресу, и настроить автоматическое подключение.<br />
<br />
=== Ubuntu 8.10, простой путь === <br />
<br />
:1. Соедините Neo с ПК и подождите примерно минуту, пока NetworkManager не закончит сканирование DHCP на USB (значок в системном лотке должен переключиться в нормальное состояние).<br />
<br />
:2. Откройте "nm-connection-editor", выберите "Auto usb0", нажмите "Edit", затем "IPv4 Settings". Выберите для "Method" значение "Manual", нажмите "Add". В поле "Address" напишите "192.168.0.200", "Netmask" - "255.255.255.0", оставьте поле "Gateway" пустым (или 0.0.0.0). Задайте "Connection name" и нажмите "Apply", затем "Close".<br />
<br />
:3. Теперь вы можете соединиться по SSH на адрес 192.168.0.202<br />
<br />
Внимание: после перепрошивки смартфона потребуется скопировать значение поля "MAC Address" из "Auto usb0" в настройки нового соединения.<br />
<br />
После этого, следуя [http://sebastian-bergmann.de/index.php?url=archives/801-OpenMoko-Freerunner-and-Ubuntu.html#feedback инструкциям], у вас должно получиться настроить маскарадинг следующими командами:<br />
<br />
<pre>sudo iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
sudo iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'</pre><br />
<br />
=== Проблемы Ubuntu ===<br />
<br />
* Ubuntu 8.10 не работает, как должно, если вы используете /etc/network/interfaces для автоматизации.<br />
* Network manager любит ковыряться в настройках сетевого устройства и добавлять маршрут по умолчанию через 192.168.0.202, что нарушает ваше соединение.<br />
* Network manager также сообщает, что вы не можете изменить это соединение или удалить его. Я думаю вернуться к тому, чтобы устанавливать соединение вручную.<br />
* Использование следующего скрипта /usr/local/sbin/freerunner-usb-add.sh может служить обходным путём:<br />
<pre><br />
#!/bin/sh<br />
(<br />
ip address add 192.168.0.200/26 netmask dev usb0 > /dev/null<br />
ip link set usb0 up > /dev/null<br />
/etc/network/freerunner start<br />
) &<br />
exit 0<br />
</pre><br />
* Ubuntu Feisty, Gutsy и Hardy имеют проблему: ifdown не срабатывает, если интерфейс отключён. Подробности описаны по адресу: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/130437<br />
<br />
Можно исправить /etc/udev/rules.d/85-ifupdown.rules. Перемещение строки DRIVERS=="*?" из верхнего GOTO в строку ACTION=="add" исправляет проблему:<br />
<pre><br />
SUBSYSTEM=="net", GOTO="net_start"<br />
GOTO="net_end"<br />
<br />
LABEL="net_start"<br />
<br />
# Bring devices up and down only if they're marked auto.<br />
# Use start-stop-daemon so we don't wait on dhcp<br />
ACTION=="add", DRIVERS=="?*", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifup -- --allow auto $env{INTERFACE}"<br />
ck<br />
ACTION=="remove", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifdown -- --allow auto $env{INTERFACE}"<br />
<br />
LABEL="net_end"<br />
</pre><br />
<br />
Проблема состоит в том, что переменная DRIVERS оказывается не установлена, когда устройство отключено.<br />
<br />
This appears to be fixed in Ubuntu 8.04 [[User:Mattt|Mattt]] 11:38, 30 July 2008 (UTC)<br />
:Actually it appears that it's not fixed, but patching that file and disconnecting and reconnecting the phone works perfectly. --[[User:Johndoesacc|Johndoesacc]] 18:37, 20 August 2008 (UTC)<br />
:Well, yes, it must be fixed because it worked for me out-of-the-box without tweaking the udev rule on 8.04 --[[User:EtienneG|EtienneG]] November 26th, 2008<br />
:It wasn't solved in my case, as of 3. February 2009 in 8.04 (AMD64), the patch above solved my problem thou. --[[User:VilleWitt|VilleWitt]] February 3td, 2009.<br />
<br />
====Настройка iptables через GUI====<br />
<br />
Firestarter пригодится, чтобы дать смартфону выход в интернет без необходимости модифицировать iptables вручную. Firestarter есть в репозитории Ubuntu, установить его можно командой:<br />
<br />
<pre>sudo aptitude install firestarter</pre><br />
<br />
В диалоге настроек Firestarter есть раздел Network, в котором вы найдёте раскрывающийся список "Local network connected device". Выберите Freerunner (как правило, его имя будет "Unknown device(usb0)") и установите флаг "Enable internet connection sharing". Снимите флаг, разрешающий локальный DHCP, после чего ваш смартфон должен получить выход в интернет<br />
<br />
-Tested in ubuntu 8.10--[[User:makito|Makito]] February 26, 2009<br />
<br />
Внимание: Firestarter нужно запускать от имени суперпользователя.<br />
<br />
=== Обходное решение для Ubuntu ===<br />
<br />
Попробуйте применить [http://wicd.sourceforge.net/ wicd] вместо networkmanager. Этот пакет разработан намного лучше, чем networkmanager, и не создаёт проблем с сетевыми соединениями через USB. С ним вы можете использовать &laquo;нормальные&raquo; установки в /network/interfaces.<br />
<br />
Внимание: wicd конфликтует по зависимостям с networkmanager, так что при установке одного пакета другой будет удалён.<br />
<br />
=== Ubuntu и QI ===<br />
<br />
Если у вас не получается соединиться со смартфоном после установки qi, проверьте, изменилось ли имя устройства на &laquo;eth''N''&raquo;. Как уже отмечалось выше, многие операционные системы присваивают устройству имя вида &laquo;eth''N''&raquo;, если для него обнаружен официальный (не сгенерированный локально) MAC-адрес. Qi, в отличие от u-boot, передаёт официальный MAC-адрес смартфона.<br />
<br />
== Mandriva ==<br />
<br />
Следующий файл задаёт настройку сетевого интерфейса usb0. Когда вы подключите смартфон к USB-интерфейсу, он автоматически будет настроен.<br />
<br />
<tt>/etc/sysconfig/network-scripts/ifcfg-usb0</tt>:<br />
<br />
<pre><br />
DEVICE=usb0<br />
BOOTPROTO=static<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
NETWORK=192.168.0.0<br />
BROADCAST=192.168.0.255<br />
ONBOOT=yes<br />
METRIC=10<br />
MII_NOT_SUPPORTED=no<br />
USERCTL=yes<br />
</pre><br />
<br />
Следующий файл настраивает статические маршруты, требуемые для связи между подсетями. Поскольку в имени файла присутствует &laquo;usb0&raquo;, система автоматически настроит эти маршруты при конфигурировании интерфейса usb0 (то есть, когда вы подключите смартфон).<br />
<br />
<tt>/etc/sysconfig/network-scripts/usb0-routes</tt>:<br />
<br />
<pre><br />
ADDRESS0=192.168.0.200<br />
NETMASK0=255.255.255.0<br />
</pre><br />
<br />
Теперь нужно перезапустить сетевые службы:<br />
<br />
service network restart<br />
<br />
This didn't work for me (Mandriva 2008.1), giving errors from Shorewall. However, simply using MCC, Network->Sharing Internet Access worked fine. You need to connect Neo when starting it. --[[User:Alih|Alih]] 18:50, 22 September 2008 (UTC)<br />
<br />
== SuSE ==<br />
<br />
/etc/sysconfig/network/ifcfg-usb0:<br />
<br />
# USB configuration for PDAs (openmoko)<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
STARTMODE=onboot<br />
<br />
Дополнительную информацию о настройке сети через USB с использованием YaST вы можете получить в статье [[USB Networking with openSUSE]].<br />
<br />
== Fedora ==<br />
<br />
=== Вариант A. Проверен на FC9, FC8 и FC5 ===<br />
<br />
Отредактируйте файл <tt>/etc/sysconfig/network-scripts/ifcfg-usb0</tt> следующим образом:<br />
<br />
# USB configuration for PDAs (openmoko)<br />
# from <nowiki>http://www.handhelds.org/moin/moin.cgi/UsbNet</nowiki><br />
DEVICE=usb0<br />
BOOTPROTO=none<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
ONBOOT=yes<br />
<br />
Перезапустите сетевые службы:<br />
<br />
service network restart<br />
<br />
Если ваш смартфон был присоединён в момент перезапуска служб, вы должны увидеть сообщение:<br />
<br />
<code>Bringing up interface usb0 [OK]</code><br />
<br />
=== Вариант B ===<br />
<br />
Этот вариант, вероятно, чересчур сложен:<br />
<br />
/etc/sysconfig/network-scripts/ifcfg-usb0:<br />
<br />
DEVICE=usb0<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
<br />
/etc/sysconfig/network-scripts/ifup-usb:<br />
<br />
#!/bin/bash<br />
./etc/init.d/functions<br />
cd /etc/sysconfig/network-scripts<br />
../network-functions<br />
[ -f ../network ] && . ../network<br />
CONFIG=${1}<br />
need_config ${CONFIG}<br />
source_config<br />
NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`<br />
/sbin/ip addr flush dev ${DEVICE} 2>/dev/null<br />
/sbin/ip link set dev ${DEVICE} up<br />
/sbin/ip addr add dev ${DEVICE} ${IPADDR}/${NETBITS}<br />
/sbin/iptables -I POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}<br />
/sbin/sysctl net.ipv4.ip_forward=1<br />
/sbin/iptables -I FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/iptables -I FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT<br />
<br />
Устанавливаем /etc/sysconfig/network-scripts/ifdown-usb:<br />
<br />
#!/bin/bash<br />
./etc/init.d/functions<br />
cd /etc/sysconfig/network-scripts<br />
../network-functions<br />
[ -f ../network ] && . ../network<br />
CONFIG=${1}<br />
need_config ${CONFIG}<br />
source_config<br />
NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`<br />
/sbin/iptables -D FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/iptables -D FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/sysctl net.ipv4.ip_forward=0<br />
/sbin/iptables -D POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}<br />
/sbin/ip link set dev ${DEVICE} down<br />
/sbin/ip addr flush dev ${DEVICE} 2>/dev/null<br />
<br />
Если вы используете NetworkManager, перезапустите его и разрешите устройство USB через меню, иначе он запретит ваше соединение вскоре после того, как вы его установили.<br />
<br />
/sbin/service NetworkManager restart<br />
<br />
=== Вариант C. Проверен на FC8, FC9 и F10 ===<br />
<br />
Подсоедините устройство. NetworkManager должен определить подключение автоматически, но это для нас не имеет значения.<br />
<br />
Откройте Network Configuration (System -> Administration -> Network) и выполните следующие шаги:<br />
<br />
# Нажмите '''New''' в верхней панели.<br />
# Нажмите '''Forward'''.<br />
# Выберите в списке устройств Openmoko.<br />
# Нажмите '''Forward'''.<br />
# Выберите 'Statically set IP address:' и введите address: 192.168.0.200, netmask 255.255.255.0 (или 255.255.255.240, если вам нужен только поддиапазон 192.168.0.192-192.168.0.207). Оставьте поле gateway пустым.<br />
# Нажмите '''Forward'''.<br />
# Нажмите '''Apply''' (диалог добавления устройства закроется).<br />
# Выберите вновь добавленное устройство usb0 из списка.<br />
# Нажмите '''Edit''' в верхней панели.<br />
# Возможно, вы решите снять флаг 'Activate device when computer starts'.<br />
# Нажмите '''Ok''' (диалог закроется).<br />
Сохраните настройки и закройте окно.<br />
<br />
Откройте Firewall Configuration (System -> Administration -> Firewall) и включите маскарадинг:<br />
# Выберите '''Masquerading''' в левой панели.<br />
# Выберите устройства, для которых вы бы хотели разрешить использование вашего интернет-соединения. Как правило, это устройства eth0 и wlan0.<br />
# Нажимте '''Apply''' и закройте окно.<br />
<br />
Откройте консоль и выполните от имени суперпользователя:<br />
# ifdown usb0<br />
# ifup usb0<br />
Первая команда удалит все текущие настройки, заданные NetworkManager, а вторая включит интерфейс с нужными настройками.<br />
<br />
Теперь у вас должна быть связь с внешним миром. Проверьте, так ли это, командой ping (например, 74.125.39.99 [www.google.com]) со смартфона. Настройте /etc/resolv.conf, и у вас будет полноценный доступ в интернет.<br />
<br />
==== Решение проблем ====<br />
<br />
Если Network Configuration не видит устройство usb0, попробуйте отсоединить USB-кабель и через несколько секунд присоединить его обратно, после чего подождать, пока NetworkManager не найдёт его.<br />
<br />
NetworkManager назначит смартфону новый IP-адрес, если соединение пропадёт. Это можно исправить, повторно выполнив '''ifup usb0'''.<br />
<br />
== Red Hat и аналоги (проверено на Workstation 5) ==<br />
<br />
Исправьте /etc/sysconfig/network-scripts/net.hotplug:<br />
<br />
После строк:<br />
<br />
<pre><br />
case $INTERFACE in<br />
# interfaces that are registered after being "up" (?)<br />
</pre><br />
<br />
добавьте<br />
<br />
<pre><br />
usb0)<br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
route add 192.168.0.202 usb0<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
exit 0<br />
;;<br />
</pre><br />
<br />
== Gentoo ==<br />
<br />
Откройте /etc/conf.d/net и добавьте:<br />
<br />
<pre><br />
# Neo<br />
config_usb0=( "192.168.0.200 netmask 255.255.255.0" )<br />
routes_usb0=( "192.168.0.202/32 via 192.168.0.200" )<br />
</pre><br />
<br />
Создайте новый скрипт init:<br />
<br />
<pre><br />
cd /etc/init.d<br />
ln -s net.lo net.usb0<br />
</pre><br />
<br />
=== Ручная настройка ===<br />
<br />
Добавьте правила iptables:<br />
<br />
<pre><br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
</pre><br />
<br />
Сохраните их:<br />
<br />
/etc/init.d/iptables save<br />
<br />
Если вы хотите сделать маршрутизацию по умолчанию, выполните:<br />
<br />
rc-update add iptables default<br />
<br />
Кроме того, нужно указать ядру, что требуется начать форвардинг:<br />
<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
=== Автоматическая настройка ===<br />
<br />
Автоматизировать всё и сразу можно, создав /etc/conf.d/net.usb0 согласно следующему листингу. Такой скрипт включает форвардинг пакетов и маршрутизацию в один приём, а также удаляет правила iptables и выключает форвардинг, когда вы отключаете устройство. Учтите, что служба net.usb0 service должна поддерживать горячее включение (/etc/rc.conf).<br />
<br />
<pre><br />
preup() {<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
return 0<br />
}<br />
<br />
postdown() {<br />
echo 0 > /proc/sys/net/ipv4/ip_forward<br />
iptables -D INPUT -s 192.168.0.202 -j ACCEPT<br />
iptables -D OUTPUT -s 192.168.0.200 -j ACCEPT<br />
iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
return 0<br />
}<br />
</pre><br />
<br />
== Slackware (проверено на 12.1) ==<br />
<br />
По мотивам решения, [http://www.enricozini.org/2008/tips/autodock-freerunner.html предложенного Энрико Зини (Enrico Zini)].<br />
<br />
Создайте новый файл с правилами для udev <tt>/etc/udev/rules.d/91-openmoko.rules</tt>:<br />
<br />
<pre><br />
SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="1457", ATTRS{idProduct}=="5122", RUN+="/sbin/om-usb $env{INTERFACE} start"<br />
SUBSYSTEM=="net", ACTION=="remove", ENV{INTERFACE}=="usb[0-9]", RUN+="/sbin/om-usb $env{INTERFACE} stop"<br />
</pre><br />
<br />
Затем создайте файл <tt>/sbin/om-usb</tt>:<br />
<br />
<pre><br />
#!/bin/sh<br />
INTERFACE=$1<br />
ACTION=$2<br />
<br />
# udev fails silently when the script fails, e.g. due to commands not<br />
# being found<br />
PATH=/usr/sbin:/sbin:/usr/bin:/bin<br />
<br />
case $ACTION in<br />
'start')<br />
# Put all your setup here<br />
;;<br />
'stop')<br />
# Put all your tear down here<br />
;;<br />
*)<br />
echo "Usage: $0 {start|stop}"<br />
exit 1<br />
;;<br />
esac<br />
</pre><br />
<br />
<tt>INTERFACE</tt> в большинстве случаев будет <tt>usb0</tt>.<br />
<br />
== Archlinux ==<br />
<br />
По мотивам решения, [http://xenos.altervista.org/blogs/index.php?blog=3&title=openmoko-usb-networking-su-archlinux предложенного пользователем furester].<br />
<br />
Установите [http://aur.archlinux.org/packages.php?ID=20220 openmoko-usb-networking] из AUR:<br />
<br />
$ yaourt -S openmoko-usb-networking<br />
<br />
= Дополнения по SSH =<br />
<br />
Сообщалось, что демон ssh daemon (dropbear 0.49) на FreeRunner содержит ошибку, из-за которой иногда вы можете получить код возврата 255 при выходе.<br />
<br />
Чтобы ssh не добавлял новую строку для каждого ssh host-key в ваш файл known_hosts, вы можете добавить в файл ~/.ssh/config в секцию phone следующее (или см. листинг в секции [[USB Networking#Changing_host_keys]] ниже):<br />
<br />
UserKnownHostsFile /dev/null<br />
<br />
Также вы можете использовать ключи, чтобы не вводить пароль.<br />
<br />
== Ключи SSH ==<br />
<br />
== С ПК на FreeRunner ==<br />
<br />
Чтобы сгенерировать ключи для ssh, выполните:<br />
<br />
user@host$ ssh-keygen -t rsa<br />
<br />
При запросе пароля просто нажмите enter, если вы хотите оставить пароль пустым (''не лучший вариант'') или введите пароль для данного ключа. Войдите в консоль смартфона и создайте директорию ~/.ssh:<br />
<br />
root@phone# mkdir ~/.ssh<br />
<br />
Потом скопируйте в эту директорию файл '''.pub''', созданный на ПК на предыдущем шаге:<br />
<br />
user@host$ scp ~/.ssh/id_rsa.pub root@phone:~/.ssh/authorized_keys<br />
<br />
Теперь вы можете соединяться со смартфоном по SSH от имени user@host без необходимости вводить пароль, поскольку ваш публичный ключ содержится в файле root@phone:~/.ssh/authorized_keys. Если вы делали всё по инструкции, то в данный момент в этом файле только один ключ, но вы можете добавить ключи для других пользователей, например, user@host, user@laptop и т. п.<br />
<br />
Чтобы сделать вход по умолчанию с правами суперпользователя, добавьте в файле ~/.ssh/config следующие строки:<br />
<br />
Host phone<br />
User root<br />
<br />
Замените ''phone'' именем хоста или IP-адресом вашего смартфона. Теперь вы сможете соединяться с устройством по SSH без необходимости каждый раз писать''root@''.<br />
<br />
Чтобы запретить вход с паролем ('''после настройки входа с ключом'''), исправьте /etc/init.d/dropbear, изменив следующую строку:<br />
<br />
DROPBEAR_EXTRA_ARGS=<br />
<br />
на<br />
<br />
DROPBEAR_EXTRA_ARGS="-s"<br />
<br />
После этого перезапустите dropbear, чтобы новые настройки вступили в силу.<br />
<br />
=== С Freerunner на ПК ===<br />
<br />
Создайте ключ:<br />
<br />
dropbearkey -t rsa -f id_rsa<br />
<br />
Выхлоп будет выглядеть приблизительно так:<br />
<br />
Will output 1024 bit rsa secret key to 'id_rsa'<br />
Generating key, this may take a while...<br />
Public key portion is:<br />
ssh-rsa AAAAB3Nza[...]<br />
Fingerprint: md5 ca:e8:f0:b7:f6:7b:c2:b6:b9:71:e4:45:86:a9:ff:b8<br />
<br />
Скопируйте строку, начинающуюся с 'ssh-rsa', и вставьте её в конец файла authorized_keys на ПК (как правило, этот файл содержится в директории ~/.ssh/).<br />
<br />
Со смартфона запустите ssh с ключом -i:<br />
<br />
ssh -i id_rsa user@host<br />
<br />
=== Изменение ключей ПК ===<br />
<br />
Если вы перепрошьёте устройство, ключи поменяются. Попробуйте следующую конфигурацию ~/.ssh/config на ПК:<br />
<br />
Host moko<br />
HostName 192.168.0.202<br />
StrictHostKeyChecking no<br />
UserKnownHostsFile /dev/null<br />
User root<br />
<br />
Это рекомендуется сделать, поскольку ssh на ПК может отказать в соединении, если ключ, записанный для определённого IP-адреса, изменился. После того, как вы изменили настройки ssh, как описано выше, вы сможете соединиться с устройством по SSH:<br />
<br />
ssh root@moko<br />
<br />
== GUI на ПК через SSH ==<br />
<br />
Чтобы вывести GUI со смартфона на экран вашего ПК, выполните на ПК следующее:<br />
<br />
xhost +<br />
ssh -l root -X -v 192.168.0.202<br />
<br />
Теперь запустите, например, openmoko-finger-demo, и он откроется на ПК. Чтобы переключиться в альбомный режим, просто измените размер окна на ПК.<br />
<br />
Если вы получаете ошибку вида:<br />
<br />
<tt><br />
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ExecFailed: dbus-launch failed to<br />
autolaunch D-Bus session: Autolaunch requested, but X11 support not compiled in.<br />
</tt><br />
<br />
то вам нужно установить переменную окружения DBUS_SESSION_BUS_ADDRESS на FreeRunner перед тем, как запускать процессы с ПК. Нужное значение можно узнать, выполнив на Freerunner команду:<br />
<br />
ps auxwwwwe | grep -m 1 DBUS_SESSION_BUS_ADDRESS<br />
<br />
Теперь, снова на ПК, запустите нужный вам процесс с установкой переменной окружения, примерно так:<br />
<br />
env DBUS_SESSION_BUS_ADDRESS=''dbus_address'' ''process'' #(вероятно, &laquo;env&raquo; здесь избыточно?)<br />
<br />
== Отображение удалённых приложений на FreeRunner ==<br />
<br />
Чтобы видеть приложения, запущенные на ПК, на экране смартфона, сначала соединитесь с ним по SSH:<br />
<br />
ssh -l root 192.168.0.202<br />
<br />
Затем выполните:<br />
<br />
DISPLAY=:0 xhost +192.168.0.200<br />
<br />
После этого можно закрыть соединение SSH. На ПК выполните:<br />
<br />
DISPLAY=openmoko:0 xclock<br />
<br />
Имейте в виду, что команда xhost даёт доступ к X-серверу любым приложениям с хоста 192.168.0.200, так что любой желающий, имеющий доступ к ПК сможет, в том числе, подглядывать за вами. Отключить удалённый доступ можно командой:<br />
<br />
DISPLAY=:0 xhost -192.168.0.200<br />
<br />
== sftp ==<br />
<br />
После того, как вы настроили SSH, можно использовать Konqueror, Nautilus или любое другое приложение, поддерживающее sftp, чтобы работать с файлами или загружать тестовые приложения. Просто наберите sftp://root@192.168.0.202 в строке адреса.<br />
<br />
== sshfs ==<br />
<br />
Вы можете использовать sshfs, чтобы примонтировать файловую систему смартфона к файловой системе ПК. Убедитесь, что установлен пакет fuse-sshfs, и что у вас есть права на использование fuse. После этого выполните:<br />
<br />
sshfs 192.168.0.202:REMOTE_PATH LOCAL_MOUNT_POINT<br />
<br />
REMOTE_PATH теперь доступен через LOCAL_PATH.<br />
<br />
== Автоматическая настройка сети и монтирование разделов ==<br />
<br />
См. [https://bugs.launchpad.net/ubuntu/+bug/289548 Ubuntu bug report in launchpad].</div>Phantomhttp://openmoko.org/wiki/USB_Networking/ruUSB Networking/ru2009-06-03T03:35:29Z<p>Phantom: Первый перевод оригинальной англоязычной страницы.</p>
<hr />
<div>{{Languages|USB_Networking}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
= Настройка соединения с Openmoko =<br />
<br />
Для того, чтобы связаться с вашим FreeRunner по TCP/IP, нужно понимать, что для этого потребуется. Стороны соединения USB образуют сегмент локальной сети (LAN segment), в котором одним узлом является смартфон, а другим&nbsp;&mdash; ваша настольная машина или ноутбук (будем называть её ПК).<br />
<br />
Примем как данность, что ваш ПК имеет настроенное соединение с интернетом, так что на ней тем или иным образом (статически или динамически, посредством DHCP) задан IP-адрес шлюза. Для того, чтобы выход в интернет появился на вашем Freerunner, нужно настроить на ПК маршрутизацию пакетов и маскарадинг.<br />
<br />
Как правило, маршрутизация и маскарадинг настраиваются легко, однако если окажется, что подсеть между смартфоном и ПК пересекается с подсетью, в которой находится шлюз, могут возникнуть проблемы, поскольку ПК, скорее всего, не догадается, как правильно перенаправлять пакеты.<br />
<br />
Другими словами, если ваши ПК и шлюз имеют IP-адреса вида 192.168.0.Х, то изменение их на что-нибудь вроде 192.168.1.Х избавит вас от множества проблем. Этот вопрос подробно обсуждается в [http://lists.openmoko.org/pipermail/support/2008-August/thread.html#1277 рассылке].<br />
<br />
== О чём следует помнить ==<br />
<br />
* Когда FreeRunner переходит в ждущий режим, он отключает свой сетевой интерфейс USB. Следовательно, если вы работаете с устройством через USB&nbsp;&mdash; выключите автоматический переход в ждущий режим. Это можно сделать вручную; кроме того, на [https://wiki.muc.ccc.de/openmoko веб-сайте клуба ССС] вы найдёте два скрипта, которые делают это при подключении внешнего источника питания ([https://wiki.muc.ccc.de/openmoko#disable_suspend_if_on_external_power для Om 2007] и [https://wiki.muc.ccc.de/openmoko#disable_suspend_if_on_external_power1 для Om 2008]).<br />
<br />
* Некоторые скрипты выполняют tail-grep на файлах журналов. Если syslog и/или klog отключены, то у вас могут быть проблемы с определением, подключено ли устройство к вашему ПК. Если такая проблема есть, убедитесь, что службы журналирования работают (для Debian и Ubuntu это можно сделать командами /etc/init.d/klogd restart; /etc/init.d/sysklog restart).<br />
<br />
== &laquo;usb0&raquo; или &laquo;eth1&raquo;? ==<br />
<br />
В данном руководстве мы предполагаем, что имя сетевого интерфейса на ПК&nbsp;&mdash; &laquo;usb0&raquo;. Тем не менее, это имя определяется операционной системой вашего ПК, и многие системы назовут этот интерфейс, руководствуясь MAC-адресом смартфона. Выполните ifconfig -a или dmesg, чтобы увидеть список всех сетевых интерфейсов или просмотреть вывод ядра ОС&nbsp;&mdash; в обоих случаях вы увидите, как называется интерфейс, если он вообще был создан. Если имя отличается от &laquo;usb0&raquo;, то оно почти наверняка будет следующим доступным &laquo;eth''N''&raquo;.<br />
<br />
Везде, где ниже мы упоминаем интерфейс &laquo;usb0&raquo;, замените его то имя, которое ваша система присвоила интерфейсу.<br />
<br />
Для интересующихся технической стороной, имя &laquo;usb0&raquo; выбирается системой в случае, если MAC-адрес устройства является локально сгенерированным (случайным), поскольку если адрес случаен, то возможность управления интерфейсом при помощи соответствующих инструментов оказывается под вопросом. На самом деле, смартфонам Freerunner при изготовлении назначаются MAC-адреса, в том числе и для USB-интерфейса. Если эти адреса правильно используются смартфоном (так делают Qi bootloader и некоторые дистрибутивы, но не все), то ОС вашего ПК получает официальный MAC-адрес и создаёт &laquo;постоянный&raquo; сетевой интерфейс, которому принято давать имя вида &laquo;eth''N''&raquo;. Однажды выданное имя запоминается и в дальнейшем используется только для этого устройства, что особенно удобно, если у вас несколько устройств, для которых вы настраиваете сетевые соединения через USB.<br />
<br />
На момент написания этой статьи (оригинальной англоязычной&nbsp;&mdash; прим. phantom) официальный MAC-адрес корректно передавали дистрибутивы Android и SHR.<br />
<br />
= Простая настройка вручную на Linux =<br />
<br />
Для начала попробуйте этот способ. Если он сработает, вы сможете сохранить настройку или попробовать более сложные способы, описанные ниже.<br />
<br />
Вам потребуются привилегии суперпользователя. Включите смартфон в обычном режиме и подключите его к USB-интерфейсу вашего ПК.<br />
<br />
=== Кратчайший путь ===<br />
<br />
Этот простой способ был испытан на множестве Linux-систем (Fedora, SuSE, Red Hat, Debian и др.) и сетевых конфигураций. Более того, он сработал при подключении к другим КПК под управлением Linux (типа TDS Nomad), так что мы с уверенность рекомендуем его для первой попытки. Мы предполагаем, что на вашем ПК работает достаточно свежий дистрибутив, имеющий поддержку сетевых соединений через USB, и что ваша сетевая конфигурация более или менее стандартна.<br />
<br />
Выполните от имени суперпользователя настройку интерфейса usb0:<br />
<pre><br />
sudo ip address add 192.168.0.200/24 dev usb0<br />
</pre><br />
или (устаревшее)<br />
<pre><br />
sudo ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
</pre><br />
<br />
Если ваш интерфейс eth0 находится в том же диапазоне IP-адресов (например, 192.168.0.105), сделайте следующее:<br />
<br />
1. Проверьте, что до смартфона доходят пакеты:<br />
# ping -I usb0 192.168.0.202<br />
2. Войдите в консоль смартфона (для этого суперпользователь не нужен):<br />
# ssh root@192.168.0.202<br />
Пароль суперпользователя на смартфоне по умолчанию пуст.<br />
<br />
Не забудьте, что для того, чтобы соединиться с устройством по SSH, нужно, чтобы на вашем локальном межсетевом экране (firewall) был разрешён порт 22. Если вы подозреваете, что соединиться с устройством не удаётся из-за работающего экрана, попробуйте физически отключить внешний Ethernet-кабель, после чего временно выключить межсетевой экран.<br />
<br />
Кроме того, некоторые старые или специфически настроенные системы могут не иметь поддержки сетевых соединений через USB. В таком случае необходимо обновить систему и добавить соответствующие модули.<br />
<br />
=== Более продвинутый путь ===<br />
<br />
Если описанный выше простой способ не сработал, попробуйте следующий, более сложный.<br />
<br />
<pre>iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
sysctl -w net.ipv4.ip_forward=1<br />
ip addr add 192.168.0.200/24 dev usb0</pre><br />
<br />
Если ваше соединение с интернетом использует IP-адрес в той же подсети (192.168.0.Х), попробуйте вместо этого следующее:<br />
<br />
<pre>ip addr add 192.168.0.200/28 dev usb0</pre><br />
<br />
Такая команда направит пакеты с адресов в диапазоне от 192.168.0.192 до 192.168.0.207 на интерфейс usb0. Если вы видите сообщение об ошибке 'Cannot find device "usb0"', проверьте, что смартфон включён и присоединён к USB-интерфейсу вашего ПК; если с этим всё в порядке, попробуйте отсоединить и присоединить USB-кабель.<br />
<br />
Далее, вам следует включить ARP-прокси для внешнего интерфейса ВМЕСТО того, чтобы применять iptables:<br />
<br />
<pre>sysctl net.ipv4.conf.eth2.proxy_arp=1</pre><br />
<br />
Команда дана для случая, когда внешний интерфейс&nbsp;&mdash; eth2.<br />
<br />
После этого:<br />
<pre>ip link set usb0 up</pre><br />
или (устаревшее)<br />
<pre>ifconfig usb0 up</pre><br />
<br />
И наконец (в идеале, не как суперпользователь):<br />
<br />
<pre>ssh root@192.168.0.202</pre><br />
<br />
Пароль суперпользователя по умолчанию пуст.<br />
<br />
Поскольку в большинстве случаев смартфон будет использовать те же DNS-серверы, что и ПК, можно автоматизировать процесс конфигурирования::<br />
<br />
<pre>#!/bin/sh<br />
/sbin/route add -host 192.168.0.202/32 dev usb0<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
iptables -P FORWARD ACCEPT<br />
sysctl -w net.ipv4.ip_forward=1<br />
scp /etc/resolv.conf root@192.168.0.202:/etc/resolv.conf</pre><br />
<br />
Повторимся, если ваша сеть имеет адреса 192.168.0.Х, замените строку с правилом POSTROUTING следующим:<br />
<pre>iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/28</pre><br />
<br />
Этот простой скрипт настроит маршрутизацию на вашем смартфоне и скопирует на него ваш resolv.conf. Всё, что вам нужно будет сделать, чтобы на смартфоне появился интернет&nbsp;&mdash; это соединить смартфон с ПК и выполнить этот скрипт.<br />
<br />
=== Изменение IP-адреса смартфона ===<br />
<br />
Как упоминалось выше, если подсеть, используемая смартфоном по умолчанию (192.168.0.X), уже используется, может потребоваться изменить IP-адрес и подсеть самого устройства. Для этого нужно отредактировать /etc/network/interfaces на Freerunner, после чего перезагрузить смартфон.<br />
<br />
В следующем примере для устройства задаётся IP-адрес 192.168.100.1 (вместо адреса по умолчанию 192.168.0.202) в подсети 192.168.100.X (вместо 192.168.0.X), другой [http://en.wikipedia.org/wiki/Private_network частной] сети класса C. ([http://en.wikipedia.org/wiki/Subnetwork#Binary_subnet_masks Маска подсети] показывает, что первые три байта используются для адресации подсети, а последний байт&nbsp;&mdash; для адресации машины в подсети.) Шлюз (ПК, к которому подключен смартфон) должен тоже быть узлом подсети, и в данном случае для него задаётся IP-адрес 192.168.100.254 (вместо 192.168.0.200).<br />
<br />
Изменения для /etc/network/interfaces:<br />
<br />
<pre><br />
auto usb0<br />
iface usb0 inet static<br />
address 192.168.100.1<br />
netmask 255.255.255.0<br />
network 192.168.100.0<br />
gateway 192.168.100.254<br />
</pre><br />
<br />
(Строка network, похоже, избыточна, поскольку эти данные могут быть получены сопоставлением строк address и netmask?) Обратите внимание, что адреса даны для примера, и вам наверняка потребуется изменить их так, чтобы они соответствовали вашей конфигурации.<br />
<br />
= Поддержка в ядре Linux =<br />
<br />
Необходимо, чтобы ваш Linux-ПК поддерживал необходимые функции, а именно сетевые соединения через USB и маскарадинг. Эти функции включены по умолчанию в большинстве современных дистрибутивов Linux.<br />
<br />
== Поддержка сетевых соединений через USB ==<br />
<br />
Следующие опции должны быть включены:<br />
<br />
* CONFIG_USB_USBNET (''Multi-purpose USB Networking Framework''. Модуль будет называться <tt>usbnet</tt>)<br />
* CONFIG_USB_NET_CDCETHER (''CDC Ethernet support''. Модуль будет называться <tt>cdc_ether</tt>)<br />
<br />
Эти опции находятся в группе ''Device Drivers -> USB support -> USB Network Adapters'' или ''Device Drivers -> Network Device Support -> USB Network Adapters''.<br />
<br />
Для того, чтобы соединения через USB заработали, вам нужно будет загрузить модуль <tt>cdc_ether</tt> (при загрузке <tt>cdc_ether</tt> модуль <tt>usbnet</tt> загрузится автоматически). Подробности описаны на [http://www.linux-usb.org/usbnet/ странице, посвящённой драйверу usbnet].<br />
<br />
== Поддержка маскарадинга ==<br />
<br />
Опции, относящиеся к маскарадингу, находятся в группе ''Networking ---> Networking options --->'' (проверено на Linux 2.6.26.3).<br />
<br />
Для того, чтобы включить требуемые опции, сначала вам нужно включить:<br />
<br />
* CONFIG_NETFILTER (''Network packet filtering framework (Netfilter)'')<br />
<br />
Затем в группе ''Networking ---> Networking options ---> [*] Network packet filtering framework (Netfilter) ---> Core Netfilter Configuration --->''&nbsp;&mdash; как минимум, следующие опции:<br />
<br />
* CONFIG_NF_CONNTRACK (''Netfilter connection tracking support'')<br />
* CONFIG_NF_CONNTRACK_FTP (''FTP protocol support'')<br />
* CONFIG_NETFILTER_XTABLES (''Netfilter Xtables support'')<br />
<br />
Остальные опции находятся в группе ''Networking ---> Networking options ---> [*] Network packet filtering framework (Netfilter) ---> IP: Netfilter Configuration --->''. Вам потребуются опции:<br />
<br />
* CONFIG_NF_CONNTRACK_IPV4 (''IPv4 connection tracking support (required for NAT)'')<br />
* CONFIG_IP_NF_IPTABLES (''IP tables support (required for filtering/masq/NAT)'')<br />
* CONFIG_NF_NAT (''Full NAT'')<br />
* CONFIG_IP_NF_TARGET_MASQUERADE (''MASQUERADE target support'')<br />
<br />
= Проблемы с межсетевыми экранами =<br />
<br />
На некоторых системах настройки межсетевого экрана по умолчанию мешают настройке соединения с Freerunner (как, например, iptables на Fedora). Можно просто отключить экран, либо попытаться найти, какие правила или политики могут вызывать затруднения.<br />
<br />
Первое, что нужно проверить&nbsp;&mdash; это таблица маршрутизации NAT, управляющая преобразованием IP-адресов:<br />
<br />
iptables -L -t nat -v -n<br />
<br />
Если в вашей настройке нет ничего специфического, то вам будут интересны только правило MASQUERADE, которое мы добавим ниже, и правило ACCEPT, являющееся политикой по умолчанию. Взгляните также на таблицу фильтрации:<br />
<br />
iptables -L -t filter -v -n<br />
<br />
Если эта таблица содержит что-либо в цепи FORWARD, это может помешать передаче пакетов. Сбросить правила можно командой:<br />
<br />
iptables -t filter -F FORWARD<br />
<br />
= DNS =<br />
<br />
Вдобавок к маршрутизации, вообще говоря, надо, чтобы была доступна служба DNS. В некоторых случаях у вас может уже быть настроен локальный сервер DNS, например, dnsmasq или bind9, и это предположение&nbsp;&mdash; что DNS-сервер работает на шлюзе&nbsp;&mdash; Freerunner делает по умолчанию. В других случаях вам потребуется указать, какой DNS-сервер следует использовать.<br />
<br />
== Настройка DNS ==<br />
<br />
DNS настраивается в файле /etc/resolv.conf вашего Freerunner.<br />
<br />
Добавьте IP-адрес DNS-сервера, предоставляемого вашим интернет-провайдером.<br />
<br />
<pre>echo nameserver xxx.xxx.xxx.xxx > /etc/resolv.conf</pre><br />
<br />
Вы можете также добавить публичный DNS-сервер, известный как openDNS:<br />
<br />
<pre>echo nameserver 208.67.222.222 > /etc/resolv.conf<br />
echo nameserver 208.67.220.220 >> /etc/resolv.conf</pre><br />
<br />
Эти настройки будут потеряны при перезагрузке. Можно сделать так, чтобы они сохранялись, добавив следующие строки в файл /etc/network/interfaces в конец секции, относящейся к usb0:<br />
<pre>up echo nameserver 208.67.222.222 > /etc/resolv.conf<br />
up echo nameserver 208.67.220.220 >> /etc/resolv.conf</pre><br />
<br />
== Получение DNS с ПК ==<br />
<br />
Если вы часто переезжаете с места на место, делать какие-либо заключения о настройке сети может быть не очень удобно. Вместо этого можно настроить получение настроек DNS с вашего ПК, для чего есть несколько способов.<br />
<br />
=== dnrd ===<br />
<br />
Разработан скрипт для настройки использования [http://dnrd.sourceforge.net/ dnrd] в качестве DNS-прокси. Доступны [http://buildhost.automated.it/gta01 сам скрипт] и [http://buildhost.automated.it/dnrd-2.20.3.tar.gz копия dnrd]. Помимо настройки DNS-прокси, скрипт выполняет первичную настройку соединения согласно разделу [[USB_Networking#Manual_method]] выше.<br />
<br />
=== Пересылка UDP-пакетов (UDP forwarding) ===<br />
<br />
Другой простой способ заключается в использовании ПО, осуществляющего пересылку пакетов UDP&nbsp;&mdash; например, [http://www.tapor.com/udpf/ udpf]. Выполните его командой:<br />
<br />
<pre>udpf-elf -p=53-f=`awk '$1 == "nameserver"{print $2; exit(0);}' /etc/resolv.conf`:53</pre><br />
<br />
=== iptables ===<br />
<br />
Можно перенаправлять запросы DNS при помощи таблиц iptables, используя цель DNAT:<br />
<br />
<pre>iptables -t nat -A PREROUTING -p tcp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1<br />
iptables -t nat -A PREROUTING -p udp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1</pre><br />
<br />
Здесь <tt>192.168.0.1</tt>&nbsp;&mdash; это IP-адрес вашего маршрутизатора.<br />
<br />
Проверьте, что всё работает:<br />
<pre>ping www.google.com</pre><br />
<br />
Если ping сработал, то вопрос с доступом в интернет в целом можно считать решённым. Однако изменения в resolv.conf, сделанные вручную, могут быть утеряны, например, при использовании DHCP (а в особенности&nbsp;&mdash; WiFi), поэтому ручная настройка может оказаться неудобной.<br />
<br />
= Проверка соединения =<br />
<br />
У вас должна быть возможность соединиться с вашим Freerunner! Для начала убедитесь, что пакеты вообще проходят:<br />
<br />
ping 192.168.0.202<br />
<br />
После этого войдите в консоль по SSH:<br />
<br />
ssh root@192.168.0.202<br />
<br />
Пароль по умолчанию пуст (просто нажмите enter).<br />
<br />
Вы можете передавать файлы в обе стороны с помощью [[scp]]. Вы можете использовать telnet, SSH, SMB и всё остальное, что вам потребуется.<br />
<br />
Теперь убедитесь, что пакеты передаются в обратную сторону. Следующие команды нужно выполнить в консоли смартфона:<br />
<br />
ping 192.168.0.200<br />
<br />
(Имейте в виду, что некоторые системы, например, Vista, по умолчанию не отвечают на ICMP ping.)<br />
<br />
Проверьте доступ к внешнему миру (IP-адрес Google):<br />
<br />
ping 74.125.19.147<br />
<br />
Последняя команда покажет, работает ли маскарадинг на вашем ПК.<br />
<br />
Наконец, проверьте, что смартфон имеет доступ к DNS:<br />
<br />
ping www.google.com<br />
<br />
= Автоматическая и специфическая для ОС настройка =<br />
<br />
Раздел основывается на статье [http://blog.haerwu.biz/2007/03/22/hotpluging-usbnet/ Hotplugging usbnet] Маркина Юшкевича, известного под псевдонимом &laquo;Hrw&raquo; (Marcin 'Hrw' Juszkiewicz). Приведённые ниже рекомендации помогут вам настроить соединение один раз и пользоваться им в дальнейшем.<br />
<br />
Кроме того, в этом разделе вы можете найти полезную информацию на случай, если по каким-либо причинам описанные выше способы не работают в вашей операционной системе или в вашем дистрибутиве.<br />
<br />
== MacOS X ==<br />
См. [[MacOS_X#USB_Networking|MacOS X USB Networking]].<br />
<br />
== Windows ==<br />
См. [[Neo1973_and_Windows#USB_Ethernet_emulation|Windows USB Ethernet emulation for Neo1973]].<br />
<br />
Также есть очень полезное [http://sam.curren.ws/index.cfm/2008/7/14/Using-the-Neo-FreeRunner-with-Windows-XPVista руководство по настройке на Windows Vista].<br />
<br />
== FreeBSD ==<br />
Вам потребуется загрузить модуль cdce, если он ещё не загружен. Выполните от имени суперпользователя:<br />
<br />
# kldload cdce<br />
<br />
После этого Neo должен появиться в системе как интерфейс cdce0, и вы сможете выполнить остальную настройку так же, как описано для устройства usb0 под Linux. Дополнительную информацию вы найдёте в руководстве по cdce. Простой способ назначить IP-адрес интерфейсу cdce0 задействует демон devd(8). Создайте два файла:<br />
<br />
<tt>/usr/local/etc/devd/cdce.conf</tt>:<br />
<br />
<pre><br />
notify 1 {<br />
match "system" "IFNET";<br />
match "subsystem" "cdce0";<br />
match "type" "ATTACH";<br />
action "/usr/local/etc/devd/cdce.sh $subsystem $type";<br />
};<br />
</pre><br />
<br />
и <tt>/usr/local/etc/devd/cdce.sh</tt> as:<br />
<br />
<pre><br />
#!/bin/sh<br />
case $2 in<br />
'ATTACH')<br />
ifconfig cdce0 192.168.0.200 netmask 255.255.255.0<br />
exit 0 ;<br />
;;<br />
esac<br />
exit 0<br />
</pre><br />
<br />
После этого перезапустите демон devd(8):<br />
<br />
# /etc/rc.d/devd restart<br />
<br />
Теперь, когда вы подключите FreeRunner к USB-интерфейсу вашего ПК, автоматически будет создан интерфейс cdce0, и ему будет назначен IP-адрес.<br />
<br />
== Debian, Ubuntu и другие ==<br />
<br />
Откройте /etc/network/interfaces и добавьте в него следующие строки:<br />
<br />
<pre><br />
# freerunner<br />
allow-hotplug usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.0<br />
up iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE<br />
up echo 1 > /proc/sys/net/ipv4/ip_forward<br />
down iptables -D POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE<br />
</pre><br />
<br />
Этот способ более изящен, чем ручная настройка. Трюк с автоматическим включением завязан на систему Linux hotplug, так что соответствующие действия по конфигурированию интерфейсов выполняются автоматически при подключении и отключении устройства.<br />
<br />
Вдобавок маска подсети на стороне ПК ограничена небольшим диапазоном, так что пересечение подсетей не является проблемой: Linux будет пользоваться специальными правилами для перенаправления пакетов.<br />
<br />
Альтернативное решение, добавляющее DNS forward и удаляющее изменения в таблице iptables после отключения устройства:<br />
<br />
В файле /etc/network/interfaces добавьте:<br />
<pre><br />
# freerunner<br />
allow-hotplug usb0<br />
iface usb0 inet static<br />
address 192.168.0.200<br />
netmask 255.255.255.192<br />
post-up /etc/network/freerunner start<br />
pre-down /etc/network/freerunner stop<br />
</pre><br />
<br />
Создайте файл /etc/network/freerunner:<br />
<pre><br />
#!/bin/sh<br />
#<br />
# configures the freerunner for internet<br />
#<br />
#<br />
<br />
DEVICE=usb0<br />
IPADDR=192.168.0.200<br />
REMOTE_IPADDR=192.168.0.202<br />
NETMASK=255.255.255.0<br />
<br />
# get first ip for dns<br />
DNSIP=$(awk '$1 == "nameserver"{print $2; exit(0);}' /etc/resolv.conf)<br />
<br />
case "$1" in<br />
start)<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR<br />
iptables -A PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
iptables -A PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
<br />
if [ "$(cat /proc/sys/net/ipv4/ip_forward)" = "0" ]; then<br />
echo "temoprarely allow ip_forward for openmoko" > /var/run/openmoko.ip_forward<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
fi<br />
;;<br />
stop)<br />
iptables -D POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR<br />
iptables -D PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
iptables -D PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP<br />
<br />
if [ -f /var/run/openmoko.ip_forward ]; then<br />
rm /var/run/openmoko.ip_forward<br />
echo 0 > /proc/sys/net/ipv4/ip_forward<br />
fi<br />
;;<br />
esac<br />
</pre><br />
<br />
Сделайте /etc/network/freerunner исполняемым:<br />
<br />
chmod +x /etc/network/freerunner<br />
<br />
Можно использовать network-manager, чтобы автоматически соединяться со смартфоном с помощью udev. Предлагаемый ниже способ использует udev для запуска скрипта, когда Freerunner подключается к системе. Скрипт использует команду ip, чтобы установить MAC-адрес сетевого интерфейса USB. Для начала создайте файл /etc/udev/rules.d/80-freerunner.rules :<br />
<br />
<pre><br />
# This file causes programs to be run on device insertion.<br />
# See udev(7) for syntax.<br />
# rule to assign a fixed mac address specified in /<br />
KERNEL=="usb[0-9]*", DRIVERS=="cdc_ether", ACTION=="add", RUN+="/usr/local/sbin/freerunner-usb-add.sh %k"<br />
</pre><br />
<br />
Затем создайте файл /usr/local/sbin/freerunner-usb-add.sh :<br />
<br />
<pre><br />
#!/bin/sh<br />
(<br />
busNum=$( printf %.2d $( expr match "$1" "usb\([0-9]*\)") )<br />
ip link set "$1" address 00:00:22:55:bb:$busNum &> /dev/null<br />
) &<br />
exit 0<br />
</pre><br />
<br />
Наконец, сделайте второй файл исполняемым:<br />
<br />
chmod +x /usr/local/sbin/freerunner-usb-add.sh<br />
<br />
Теперь вы можете использовать network-manager с настройками, привязанными к MAC-адресу, и настроить автоматическое подключение.<br />
<br />
=== Ubuntu 8.10, простой путь === <br />
<br />
:1. Соедините Neo с ПК и подождите примерно минуту, пока NetworkManager не закончит сканирование DHCP на USB (значок в системном лотке должен переключиться в нормальное состояние).<br />
<br />
:2. Откройте "nm-connection-editor", выберите "Auto usb0", нажмите "Edit", затем "IPv4 Settings". Выберите для "Method" значение "Manual", нажмите "Add". В поле "Address" напишите "192.168.0.200", "Netmask" - "255.255.255.0", оставьте поле "Gateway" пустым (или 0.0.0.0). Задайте "Connection name" и нажмите "Apply", затем "Close".<br />
<br />
:3. Теперь вы можете соединиться по SSH на адрес 192.168.0.202<br />
<br />
Внимание: после перепрошивки смартфона потребуется скопировать значение поля "MAC Address" из "Auto usb0" в настройки нового соединения.<br />
<br />
После этого, следуя [http://sebastian-bergmann.de/index.php?url=archives/801-OpenMoko-Freerunner-and-Ubuntu.html#feedback инструкциям], у вас должно получиться настроить маскарадинг следующими командами:<br />
<br />
<pre>sudo iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
sudo iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'</pre><br />
<br />
=== Проблемы Ubuntu ===<br />
<br />
* Ubuntu 8.10 не работает, как должно, если вы используете /etc/network/interfaces для автоматизации.<br />
* Network manager любит ковыряться в настройках сетевого устройства и добавлять маршрут по умолчанию через 192.168.0.202, что нарушает ваше соединение.<br />
* Network manager также сообщает, что вы не можете изменить это соединение или удалить его. Я думаю вернуться к тому, чтобы устанавливать соединение вручную.<br />
* Использование следующего скрипта /usr/local/sbin/freerunner-usb-add.sh может служить обходным путём:<br />
<pre><br />
#!/bin/sh<br />
(<br />
ip address add 192.168.0.200/26 netmask dev usb0 > /dev/null<br />
ip link set usb0 up > /dev/null<br />
/etc/network/freerunner start<br />
) &<br />
exit 0<br />
</pre><br />
* Ubuntu Feisty, Gutsy и Hardy имеют проблему: ifdown не срабатывает, если интерфейс отключён. Подробности описаны по адресу: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/130437<br />
<br />
Можно исправить /etc/udev/rules.d/85-ifupdown.rules. Перемещение строки DRIVERS=="*?" из верхнего GOTO в строку ACTION=="add" исправляет проблему:<br />
<pre><br />
SUBSYSTEM=="net", GOTO="net_start"<br />
GOTO="net_end"<br />
<br />
LABEL="net_start"<br />
<br />
# Bring devices up and down only if they're marked auto.<br />
# Use start-stop-daemon so we don't wait on dhcp<br />
ACTION=="add", DRIVERS=="?*", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifup -- --allow auto $env{INTERFACE}"<br />
ck<br />
ACTION=="remove", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifdown -- --allow auto $env{INTERFACE}"<br />
<br />
LABEL="net_end"<br />
</pre><br />
<br />
Проблема состоит в том, что переменная DRIVERS оказывается не установлена, когда устройство отключено.<br />
<br />
This appears to be fixed in Ubuntu 8.04 [[User:Mattt|Mattt]] 11:38, 30 July 2008 (UTC)<br />
:Actually it appears that it's not fixed, but patching that file and disconnecting and reconnecting the phone works perfectly. --[[User:Johndoesacc|Johndoesacc]] 18:37, 20 August 2008 (UTC)<br />
:Well, yes, it must be fixed because it worked for me out-of-the-box without tweaking the udev rule on 8.04 --[[User:EtienneG|EtienneG]] November 26th, 2008<br />
:It wasn't solved in my case, as of 3. February 2009 in 8.04 (AMD64), the patch above solved my problem thou. --[[User:VilleWitt|VilleWitt]] February 3td, 2009.<br />
<br />
====Настройка iptables через GUI====<br />
<br />
Firestarter пригодится, чтобы дать смартфону выход в интернет без необходимости модифицировать iptables вручную. Firestarter есть в репозитории Ubuntu, установить его можно командой:<br />
<br />
<pre>sudo aptitude install firestarter</pre><br />
<br />
В диалоге настроек Firestarter есть раздел Network, в котором вы найдёте раскрывающийся список "Local network connected device". Выберите Freerunner (как правило, его имя будет "Unknown device(usb0)") и установите флаг "Enable internet connection sharing". Снимите флаг, разрешающий локальный DHCP, после чего ваш смартфон должен получить выход в интернет<br />
<br />
-Tested in ubuntu 8.10--[[User:makito|Makito]] February 26, 2009<br />
<br />
Внимание: Firestarter нужно запускать от имени суперпользователя.<br />
<br />
=== Обходное решение для Ubuntu ===<br />
<br />
Попробуйте применить [http://wicd.sourceforge.net/ wicd] вместо networkmanager. Этот пакет разработан намного лучше, чем networkmanager, и не создаёт проблем с сетевыми соединениями через USB. С ним вы можете использовать &laquo;нормальные&raquo; установки в /network/interfaces.<br />
<br />
Внимание: wicd конфликтует по зависимостям с networkmanager, так что при установке одного пакета другой будет удалён.<br />
<br />
=== Ubuntu и QI ===<br />
<br />
Если у вас не получается соединиться со смартфоном после установки qi, проверьте, изменилось ли имя устройства на &laquo;eth''N''&raquo;. Как уже отмечалось выше, многие операционные системы присваивают устройству имя вида &laquo;eth''N''&raquo;, если для него обнаружен официальный (не сгенерированный локально) MAC-адрес. Qi, в отличие от u-boot, передаёт официальный MAC-адрес смартфона.<br />
<br />
== Mandriva ==<br />
<br />
Следующий файл задаёт настройку сетевого интерфейса usb0. Когда вы подключите смартфон к USB-интерфейсу, он автоматически будет настроен.<br />
<br />
<tt>/etc/sysconfig/network-scripts/ifcfg-usb0</tt>:<br />
<br />
<pre><br />
DEVICE=usb0<br />
BOOTPROTO=static<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
NETWORK=192.168.0.0<br />
BROADCAST=192.168.0.255<br />
ONBOOT=yes<br />
METRIC=10<br />
MII_NOT_SUPPORTED=no<br />
USERCTL=yes<br />
</pre><br />
<br />
Следующий файл настраивает статические маршруты, требуемые для связи между подсетями. Поскольку в имени файла присутствует &laquo;usb0&raquo;, система автоматически настроит эти маршруты при конфигурировании интерфейса usb0 (то есть, когда вы подключите смартфон).<br />
<br />
<tt>/etc/sysconfig/network-scripts/usb0-routes</tt>:<br />
<br />
<pre><br />
ADDRESS0=192.168.0.200<br />
NETMASK0=255.255.255.0<br />
</pre><br />
<br />
Теперь нужно перезапустить сетевые службы:<br />
<br />
service network restart<br />
<br />
This didn't work for me (Mandriva 2008.1), giving errors from Shorewall. However, simply using MCC, Network->Sharing Internet Access worked fine. You need to connect Neo when starting it. --[[User:Alih|Alih]] 18:50, 22 September 2008 (UTC)<br />
<br />
== SuSE ==<br />
<br />
/etc/sysconfig/network/ifcfg-usb0:<br />
<br />
# USB configuration for PDAs (openmoko)<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
STARTMODE=onboot<br />
<br />
Дополнительную информацию о настройке сети через USB с использованием YaST вы можете получить в статье [[USB Networking with openSUSE]].<br />
<br />
== Fedora ==<br />
<br />
=== Вариант A. Проверен на FC9, FC8 и FC5 ===<br />
<br />
Отредактируйте файл <tt>/etc/sysconfig/network-scripts/ifcfg-usb0</tt> следующим образом:<br />
<br />
# USB configuration for PDAs (openmoko)<br />
# from <nowiki>http://www.handhelds.org/moin/moin.cgi/UsbNet</nowiki><br />
DEVICE=usb0<br />
BOOTPROTO=none<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
ONBOOT=yes<br />
<br />
Перезапустите сетевые службы:<br />
<br />
service network restart<br />
<br />
Если ваш смартфон был присоединён в момент перезапуска служб, вы должны увидеть сообщение:<br />
<br />
<code>Bringing up interface usb0 [OK]</code><br />
<br />
=== Вариант B ===<br />
<br />
Этот вариант, вероятно, чересчур сложен:<br />
<br />
/etc/sysconfig/network-scripts/ifcfg-usb0:<br />
<br />
DEVICE=usb0<br />
IPADDR=192.168.0.200<br />
NETMASK=255.255.255.0<br />
<br />
/etc/sysconfig/network-scripts/ifup-usb:<br />
<br />
#!/bin/bash<br />
./etc/init.d/functions<br />
cd /etc/sysconfig/network-scripts<br />
../network-functions<br />
[ -f ../network ] && . ../network<br />
CONFIG=${1}<br />
need_config ${CONFIG}<br />
source_config<br />
NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`<br />
/sbin/ip addr flush dev ${DEVICE} 2>/dev/null<br />
/sbin/ip link set dev ${DEVICE} up<br />
/sbin/ip addr add dev ${DEVICE} ${IPADDR}/${NETBITS}<br />
/sbin/iptables -I POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}<br />
/sbin/sysctl net.ipv4.ip_forward=1<br />
/sbin/iptables -I FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/iptables -I FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT<br />
<br />
Устанавливаем /etc/sysconfig/network-scripts/ifdown-usb:<br />
<br />
#!/bin/bash<br />
./etc/init.d/functions<br />
cd /etc/sysconfig/network-scripts<br />
../network-functions<br />
[ -f ../network ] && . ../network<br />
CONFIG=${1}<br />
need_config ${CONFIG}<br />
source_config<br />
NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`<br />
/sbin/iptables -D FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/iptables -D FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT<br />
/sbin/sysctl net.ipv4.ip_forward=0<br />
/sbin/iptables -D POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}<br />
/sbin/ip link set dev ${DEVICE} down<br />
/sbin/ip addr flush dev ${DEVICE} 2>/dev/null<br />
<br />
Если вы используете NetworkManager, перезапустите его и разрешите устройство USB через меню, иначе он запретит ваше соединение вскоре после того, как вы его установили.<br />
<br />
/sbin/service NetworkManager restart<br />
<br />
=== Вариант C. Проверен на FC8, FC9 и F10 ===<br />
<br />
Подсоедините устройство. NetworkManager должен определить подключение автоматически, но это для нас не имеет значения.<br />
<br />
Откройте Network Configuration (System -> Administration -> Network) и выполните следующие шаги:<br />
<br />
# Нажмите '''New''' в верхней панели.<br />
# Нажмите '''Forward'''.<br />
# Выберите в списке устройств Openmoko.<br />
# Нажмите '''Forward'''.<br />
# Выберите 'Statically set IP address:' и введите address: 192.168.0.200, netmask 255.255.255.0 (или 255.255.255.240, если вам нужен только поддиапазон 192.168.0.192-192.168.0.207). Оставьте поле gateway пустым.<br />
# Нажмите '''Forward'''.<br />
# Нажмите '''Apply''' (диалог добавления устройства закроется).<br />
# Выберите вновь добавленное устройство usb0 из списка.<br />
# Нажмите '''Edit''' в верхней панели.<br />
# Возможно, вы решите снять флаг 'Activate device when computer starts'.<br />
# Нажмите '''Ok''' (диалог закроется).<br />
Сохраните настройки и закройте окно.<br />
<br />
Откройте Firewall Configuration (System -> Administration -> Firewall) и включите маскарадинг:<br />
# Выберите '''Masquerading''' в левой панели.<br />
# Выберите устройства, для которых вы бы хотели разрешить использование вашего интернет-соединения. Как правило, это устройства eth0 и wlan0.<br />
# Нажимте '''Apply''' и закройте окно.<br />
<br />
Откройте консоль и выполните от имени суперпользователя:<br />
# ifdown usb0<br />
# ifup usb0<br />
Первая команда удалит все текущие настройки, заданные NetworkManager, а вторая включит интерфейс с нужными настройками.<br />
<br />
Теперь у вас должна быть связь с внешним миром. Проверьте, так ли это, командой ping (например, 74.125.39.99 [www.google.com]) со смартфона. Настройте /etc/resolv.conf, и у вас будет полноценный доступ в интернет.<br />
<br />
==== Решение проблем ====<br />
<br />
Если Network Configuration не видит устройство usb0, попробуйте отсоединить USB-кабель и через несколько секунд присоединить его обратно, после чего подождать, пока NetworkManager не найдёт его.<br />
<br />
NetworkManager назначит смартфону новый IP-адрес, если соединение пропадёт. Это можно исправить, повторно выполнив '''ifup usb0'''.<br />
<br />
== Red Hat и аналоги (проверено на Workstation 5) ==<br />
<br />
Исправьте /etc/sysconfig/network-scripts/net.hotplug:<br />
<br />
После строк:<br />
<br />
<pre><br />
case $INTERFACE in<br />
# interfaces that are registered after being "up" (?)<br />
</pre><br />
<br />
добавьте<br />
<br />
<pre><br />
usb0)<br />
ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
route add 192.168.0.202 usb0<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
exit 0<br />
;;<br />
</pre><br />
<br />
== Gentoo ==<br />
<br />
Откройте /etc/conf.d/net и добавьте:<br />
<br />
<pre><br />
# Neo<br />
config_usb0=( "192.168.0.200 netmask 255.255.255.0" )<br />
routes_usb0=( "192.168.0.202/32 via 192.168.0.200" )<br />
</pre><br />
<br />
Создайте новый скрипт init:<br />
<br />
<pre><br />
cd /etc/init.d<br />
ln -s net.lo net.usb0<br />
</pre><br />
<br />
=== Ручная настройка ===<br />
<br />
Добавьте правила iptables:<br />
<br />
<pre><br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
</pre><br />
<br />
Сохраните их:<br />
<br />
/etc/init.d/iptables save<br />
<br />
Если вы хотите сделать маршрутизацию по умолчанию, выполните:<br />
<br />
rc-update add iptables default<br />
<br />
Кроме того, нужно указать ядру, что требуется начать форвардинг:<br />
<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
=== Автоматическая настройка ===<br />
<br />
Автоматизировать всё и сразу можно, создав /etc/conf.d/net.usb0 согласно следующему листингу. Такой скрипт включает форвардинг пакетов и маршрутизацию в один приём, а также удаляет правила iptables и выключает форвардинг, когда вы отключаете устройство. Учтите, что служба net.usb0 service должна поддерживать горячее включение (/etc/rc.conf).<br />
<br />
<pre><br />
preup() {<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT<br />
iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT<br />
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
return 0<br />
}<br />
<br />
postdown() {<br />
echo 0 > /proc/sys/net/ipv4/ip_forward<br />
iptables -D INPUT -s 192.168.0.202 -j ACCEPT<br />
iptables -D OUTPUT -s 192.168.0.200 -j ACCEPT<br />
iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24<br />
return 0<br />
}<br />
</pre><br />
<br />
== Slackware (проверено на 12.1) ==<br />
<br />
По мотивам решения, [http://www.enricozini.org/2008/tips/autodock-freerunner.html предложенного Энрико Зини (Enrico Zini)].<br />
<br />
Создайте новый файл с правилами для udev <tt>/etc/udev/rules.d/91-openmoko.rules</tt>:<br />
<br />
<pre><br />
SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="1457", ATTRS{idProduct}=="5122", RUN+="/sbin/om-usb $env{INTERFACE} start"<br />
SUBSYSTEM=="net", ACTION=="remove", ENV{INTERFACE}=="usb[0-9]", RUN+="/sbin/om-usb $env{INTERFACE} stop"<br />
</pre><br />
<br />
Затем создайте файл <tt>/sbin/om-usb</tt>:<br />
<br />
<pre><br />
#!/bin/sh<br />
INTERFACE=$1<br />
ACTION=$2<br />
<br />
# udev fails silently when the script fails, e.g. due to commands not<br />
# being found<br />
PATH=/usr/sbin:/sbin:/usr/bin:/bin<br />
<br />
case $ACTION in<br />
'start')<br />
# Put all your setup here<br />
;;<br />
'stop')<br />
# Put all your tear down here<br />
;;<br />
*)<br />
echo "Usage: $0 {start|stop}"<br />
exit 1<br />
;;<br />
esac<br />
</pre><br />
<br />
<tt>INTERFACE</tt> в большинстве случаев будет <tt>usb0</tt>.<br />
<br />
== Archlinux ==<br />
<br />
По мотивам решения, [http://xenos.altervista.org/blogs/index.php?blog=3&title=openmoko-usb-networking-su-archlinux предложенного пользователем furester].<br />
<br />
Установите [http://aur.archlinux.org/packages.php?ID=20220 openmoko-usb-networking] из AUR:<br />
<br />
$ yaourt -S openmoko-usb-networking<br />
<br />
= Дополнения по SSH =<br />
<br />
Сообщалось, что демон ssh daemon (dropbear 0.49) на FreeRunner содержит ошибку, из-за которой иногда вы можете получить код возврата 255 при выходе.<br />
<br />
Чтобы ssh не добавлял новую строку для каждого ssh host-key в ваш файл known_hosts, вы можете добавить в файл ~/.ssh/config в секцию phone следующее (или см. листинг в секции [[USB Networking#Changing_host_keys]] ниже):<br />
<br />
UserKnownHostsFile /dev/null<br />
<br />
Также вы можете использовать ключи, чтобы не вводить пароль.<br />
<br />
== Ключи SSH ==<br />
<br />
== С ПК на FreeRunner ==<br />
<br />
Чтобы сгенерировать ключи для ssh, выполните:<br />
<br />
user@host$ ssh-keygen -t rsa<br />
<br />
При запросе пароля просто нажмите enter, если вы хотите оставить пароль пустым (''не лучший вариант'') или введите пароль для данного ключа. Войдите в консоль смартфона и создайте директорию ~/.ssh:<br />
<br />
root@phone# mkdir ~/.ssh<br />
<br />
Потом скопируйте в эту директорию файл '''.pub''', созданный на ПК на предыдущем шаге:<br />
<br />
user@host$ scp ~/.ssh/id_rsa.pub root@phone:~/.ssh/authorized_keys<br />
<br />
Теперь вы можете соединяться со смартфоном по SSH от имени user@host без необходимости вводить пароль, поскольку ваш публичный ключ содержится в файле root@phone:~/.ssh/authorized_keys. Если вы делали всё по инструкции, то в данный момент в этом файле только один ключ, но вы можете добавить ключи для других пользователей, например, user@host, user@laptop и т. п.<br />
<br />
Чтобы сделать вход по умолчанию с правами суперпользователя, добавьте в файле ~/.ssh/config следующие строки:<br />
<br />
Host phone<br />
User root<br />
<br />
Замените ''phone'' именем хоста или IP-адресом вашего смартфона. Теперь вы сможете соединяться с устройством по SSH без необходимости каждый раз писать''root@''.<br />
<br />
Чтобы запретить вход с паролем ('''после настройки входа с ключом'''), исправьте /etc/init.d/dropbear, изменив следующую строку:<br />
<br />
DROPBEAR_EXTRA_ARGS=<br />
<br />
на<br />
<br />
DROPBEAR_EXTRA_ARGS="-s"<br />
<br />
После этого перезапустите dropbear, чтобы новые настройки вступили в силу.<br />
<br />
=== С Freerunner на ПК ===<br />
<br />
Создайте ключ:<br />
<br />
dropbearkey -t rsa -f id_rsa<br />
<br />
Выхлоп будет выглядеть приблизительно так:<br />
<br />
Will output 1024 bit rsa secret key to 'id_rsa'<br />
Generating key, this may take a while...<br />
Public key portion is:<br />
ssh-rsa AAAAB3Nza[...]<br />
Fingerprint: md5 ca:e8:f0:b7:f6:7b:c2:b6:b9:71:e4:45:86:a9:ff:b8<br />
<br />
Скопируйте строку, начинающуюся с 'ssh-rsa', и вставьте её в конец файла authorized_keys на ПК (как правило, этот файл содержится в директории ~/.ssh/).<br />
<br />
Со смартфона запустите ssh с ключом -i:<br />
<br />
ssh -i id_rsa user@host<br />
<br />
=== Изменение ключей ПК ===<br />
<br />
Если вы перепрошьёте устройство, ключи поменяются. Попробуйте следующую конфигурацию ~/.ssh/config на ПК:<br />
<br />
Host moko<br />
HostName 192.168.0.202<br />
StrictHostKeyChecking no<br />
UserKnownHostsFile /dev/null<br />
User root<br />
<br />
Это рекомендуется сделать, поскольку ssh на ПК может отказать в соединении, если ключ, записанный для определённого IP-адреса, изменился. После того, как вы изменили настройки ssh, как описано выше, вы сможете соединиться с устройством по SSH:<br />
<br />
ssh root@moko<br />
<br />
== GUI на ПК через SSH ==<br />
<br />
Чтобы вывести GUI со смартфона на экран вашего ПК, выполните на ПК следующее:<br />
<br />
xhost +<br />
ssh -l root -X -v 192.168.0.202<br />
<br />
Теперь запустите, например, openmoko-finger-demo, и он откроется на ПК. Чтобы переключиться в альбомный режим, просто измените размер окна на ПК.<br />
<br />
Если вы получаете ошибку вида:<br />
<br />
<tt><br />
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ExecFailed: dbus-launch failed to<br />
autolaunch D-Bus session: Autolaunch requested, but X11 support not compiled in.<br />
</tt><br />
<br />
то вам нужно установить переменную окружения DBUS_SESSION_BUS_ADDRESS на FreeRunner перед тем, как запускать процессы с ПК. Нужное значение можно узнать, выполнив на Freerunner команду:<br />
<br />
ps auxwwwwe | grep -m 1 DBUS_SESSION_BUS_ADDRESS<br />
<br />
Теперь, снова на ПК, запустите нужный вам процесс с установкой переменной окружения, примерно так:<br />
<br />
env DBUS_SESSION_BUS_ADDRESS=''dbus_address'' ''process'' #(вероятно, &laquo;env&raquo; здесь избыточно?)<br />
<br />
== Отображение удалённых приложений на FreeRunner ==<br />
<br />
Чтобы видеть приложения, запущенные на ПК, на экране смартфона, сначала соединитесь с ним по SSH:<br />
<br />
ssh -l root 192.168.0.202<br />
<br />
Затем выполните:<br />
<br />
DISPLAY=:0 xhost +192.168.0.200<br />
<br />
После этого можно закрыть соединение SSH. На ПК выполните:<br />
<br />
DISPLAY=openmoko:0 xclock<br />
<br />
Имейте в виду, что команда xhost даёт доступ к X-серверу любым приложениям с хоста 192.168.0.200, так что любой желающий, имеющий доступ к ПК сможет, в том числе, подглядывать за вами. Отключить удалённый доступ можно командой:<br />
<br />
DISPLAY=:0 xhost -192.168.0.200<br />
<br />
== sftp ==<br />
<br />
После того, как вы настроили SSH, можно использовать Konqueror, Nautilus или любое другое приложение, поддерживающее sftp, чтобы работать с файлами или загружать тестовые приложения. Просто наберите sftp://root@192.168.0.202 в строке адреса.<br />
<br />
== sshfs ==<br />
<br />
Вы можете использовать sshfs, чтобы примонтировать файловую систему смартфона к файловой системе ПК. Убедитесь, что установлен пакет fuse-sshfs, и что у вас есть права на использование fuse. После этого выполните:<br />
<br />
sshfs 192.168.0.202:REMOTE_PATH LOCAL_MOUNT_POINT<br />
<br />
REMOTE_PATH теперь доступен через LOCAL_PATH.<br />
<br />
== Автоматическая настройка сети и монтирование разделов ==<br />
<br />
См. [https://bugs.launchpad.net/ubuntu/+bug/289548 Ubuntu bug report in launchpad].<br />
<br />
[[Category:USB]]<br />
[[Category:Implemented]]<br />
[[Category:Networking]]</div>Phantomhttp://openmoko.org/wiki/Distributions/ruDistributions/ru2009-06-01T04:38:02Z<p>Phantom: /* Замечания */ Исправлены опечатки.</p>
<hr />
<div>{{Languages|Distributions}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
== Предисловие ==<br />
Дистрибутивы Openmoko предназначены для использования на различных портативных устройствах, но в первую очередь&nbsp;&mdash; на смартфонах Openmoko [[GTA01:Neo 1973|Neo 1973]] и [[Neo FreeRunner]]. Эти дистрибутивы относятся к семейству GNU/Linux и представляют собой полные версии операционных систем и прикладного ПО. Вы можете [[Download|загрузить]] любой дистрибутив и установить его согласно [[Flashing the Neo FreeRunner|инструкциям по установке]]; можно также сделать систему с мультизагрузкой.<br />
<br />
Добавим, что дистрибутивы Openmoko работают на [[Supported devices/ru|ряде других устройств]], а также ряд других дистрибутивов работает на смартфонах Openmoko.<br />
<br />
=== Выбор дистрибутива ===<br />
В настоящее время наиболее широко используются [[Om 2008]] (предустанавливается производителем на Neo FreeRunner) и [[Stable Hybrid Release|SHR]] (см. [http://spreadsheets.google.com/pub?key=p2ZQdcRSVg9XfYLwBVsZicg]).<br />
<br />
В будущем основным дистрибутивом станет [[Om 2009]]. В настоящий момент ведётся разработка, выпуск ожидается в июне 2009 года. Подобно дистрибутиву SHR, Om 2009 построен на основе [[freesmartphone.org]].<br />
<br />
Кроме этого, существует ряд других дистрибутивов, таких как [[Qt Extended]] (стабильные базовые функции), Google [[Android]] и несколько дистрибутивов, основанных на [[Debian]].<br />
<br />
{| class="wikitable" style="float:right;width:200px;background-color:#FF6600;text-align:center;border-collapse:collapse;font-weight:bold"<br />
|<font color=white>Distributions</font><br />
|-<br />
! style='background-color:#333333;color:#FFFFFF'|<br />
<div align=left><br />
* <font color='#BBBBBB'>Openmoko (официальные)</font><br />
** [[Om2009]]<br />
** [[Om 2008.12 Update]]<br />
** [[Om 2008.9 Update]]<br />
** [[Om 2008.8]]<br />
** [[Om 2007.2]]<br />
** [[OpenmokoFramework|FSO]]<br />
* <font color='#BBBBBB'>Сообщество</font><br />
** [[SHR]]<br />
** [[FDOM]]<br />
* <font color='#BBBBBB'>Другие</font><br />
** [[Qtopia]]<br />
** [[Debian]]<br />
** [[Gentoo]]<br />
** [[Android]]<br />
** [[Hackable:1]]<br />
** [[neovento]]<br />
</div><br />
|-<br />
|}<br />
<br />
=== Замечания ===<br />
<br />
* Слово &laquo;стабильный&raquo; (stable) в мире FreeRunner означает не то же самое, что в мире Debian.<br />
* Большинство дистрибутивов используют одни и те же загрузчики ядра, ядро, драйверы и аппаратное обеспечение. Следовательно, низкоуровневые аппаратные проблемы одинаково проявляются в разных дистрибутивах. Самое свежее ПО, как правило, содержит наибольшее количество исправленных старых проблем, но имеет также ряд новых.<br />
* Большинство дистрибутивов имеет свои собственные репозитории пакетов. Пытаться установить пакеты из чужого репозитория&nbsp;&mdash; ПЛОХАЯ ИДЕЯ!<br />
* Переход от одного дистрибутива к другому, как правило, не испытан, поэтому изменение пути к репозиторию и последующее обновление системы, скорее всего, приведёт к поломке множества пакетов, а то и к невозможности загрузить систему. Рекомендованный способ смены дистрибутива&nbsp;&mdash; перезаписывать целиком всю файловую систему с помощью [[dfu-util]] (напомним, возможен также вариант с альтернативной загрузкой с карты памяти или из сети (?).<br />
<br />
== Официальные выпуски Openmoko ==<br />
<br />
Предоставляемые компанией Openmoko Inc. дистрибутивы построены на основе различных ветвей [[OpenEmbedded]].<br />
<br />
=== Серия Om ===<br />
<br />
* '''[[Om 2009]]''' станет принципиально новым дистрибутивом, он не является развитием [[Om 2008.12 Update]]. '''В настоящее время Om 2009 находится в стадии разработки и никоим образом не может считаться готовым к использованию.''' Om 2009 построен на каркасе [http://freesmartphone.org freesmartphone.org] версии 5.5.<br />
<br />
{{Main|Om 2009}}<br />
<br />
* '''[[Om 2008.12 Update]]'''&nbsp;&mdash; это второе обновление Om 2008, следующее после выпуска ''Om 2008.9''.<br />
<br />
{{Main|Om 2008.12 Update}}<br />
<br />
* '''[[Om 2008.9 Update]]'''&nbsp;&mdash; это первое обновление Om 2008, следующее после выпуска ''Om 2008.8''. Для всех более старых версий Openmoko рекомендуется обновление, как минимум, до этой версии, которая всё ещё далека от совершенства, но включает ряд существенных исправлений, повышающих общую стабильность. Кроме этого, в новой версии изменён экран загрузки. Каких-либо изменений в наборе предоставляемых приложений нет. Нетребовательные пользователи могут счесть данную версию вполне сносной для бытового использования устройства в качестве телефона.<br />
<br />
{{Main|Om 2008.9 Update}}<br />
<br />
* '''[[Om 2008.8]]''' выпущен в августа 2008 года в качестве замены 2007.2. До момента выпуска данный дистрибутив имел кодовое имя ASU (April/August Software Update); это имя сохранилось в системе контроля версий как имя соответствующей ветви. Эта версия объединяет телефонный стек [http://trolltech.com/products/qtopia Qtopia] с набором новых приложений Openmoko, основанных на Enlightenment Foundation Libraries ([[EFL_Documentation|EFL]]). Qtopia является более зрелым продуктом, чем GNOME Mobile stack, и стандартные приложения (номеронабиратель, контакты, калькулятор, календарь) работают лучше, чем в 2007.2. Qtopia, использованная в версии 2008.8, перенесена на X11, в отличие от стандартной Qtopia, использующей фреймбуфер. Это изменение позволяет приложениям, не основанным на Qt, использовать экран совместно с приложениями на Qt. Данный выпуск имеет условную версию .0 и имеет множество нерешённых низкоуровневых проблем (управление питанием, звук, WiFi и т.&nbsp;п.).<br />
<br />
{{Main|Om 2008.8}}<br />
<br />
* '''[[Om 2007.2]]''' был первым дистрибутивом, созданным Openmoko. Интерфейс был разработан для управления пальцем (оптимизирован для разрешения 285 ppi) и выполнен в ярких оранжевых тонах. В нём использовался телефонный стек GTK+ stack, являющийся частью платформы [http://www.gnome.org/mobile/ GNOME Mobile]. В настоящее время данный дистрибутив считается устаревшим и более не поддерживается ни Openmoko Inc, ни OpenedHand. <br />
<br />
{{Main|Om 2007.2}}<br />
<br />
=== Серия FSO ===<br />
<br />
'''FSO'''&nbsp;&mdash; это аббревиатура, образованная от названия FreeSmartphone.Org. Openmoko работает над стабильной поддержкой системных служб. Основные усилия сфокусированы на стабильных высокоуровневых службах, доступных для любого языка программирования или пользовательского интерфейса, имеющего поддержку [http://dbus.freesmartphone.org/ dbus]. Этот каркас будет использоваться в следующих выпусках Openmoko. FSO является, по сути, промежуточным программным обеспечением (middleware), но если совместить его с ПО нижнего (bootloader+kernel) и верхнего (телефонные приложения) уровней, получится работающий дистрибутив. По такой схеме строятся дистрибутивы серии FSO (так называемые Milestones). <br />
<br />
* '''FSO Milestone V''' был выпущен под лозунгом 'Calling All Stations'. В качестве телефонного приложения используется Zhone; это простое приложение, написанное на Python и совмещающее номеронабиратель и главный экран, которое было разработано больше для испытания возможностей FSO. Несмотря на симпатичную реализацию, Zhone недостаточно хорошо протестирован. Подробности см. [http://wiki.openmoko.org/wiki/OpenmokoFramework/Status_Update_6 Status Update 6]. Получить образ дистрибутива можно по адресу: http://downloads.freesmartphone.org/fso-stable/milestone5.1/ . <br />
<br />
{{Main|FSO}}<br />
<br />
== Дистрибутивы сообществ ==<br />
<br />
=== SHR&nbsp;&mdash; Stable Hybrid Release ===<br />
<br />
SHR&nbsp;&mdash; это дистрибутив, разрабатываемый сообществом. Он содержит некоторые приложения, основанные на EFL и использующие (?) FSO. На данный момент доступны простой номеронабиратель, приложения для работы с сообщениями и контактами (написанные на Си), а также управление настройками, написанное на Python. На 12 апреля 2009 года не существовало стабильной версии данного дистрибутива, поскольку команда разработки не считает его доведённым до должного уровня. Тем не менее, вы можете получить образ дистрибутива [http://shr.bearstech.com/shr-testing на сборочном сервере SHR].<br />
<br />
{{Main|Stable Hybrid Release}}<br />
<br />
=== FDOM (FAT and Dirty Openmoko) ===<br />
<br />
[[FDOM]]&nbsp;&mdash; это дистрибутив, основанный на последнем выпуске официального Openmoko и включающий множество исправлений и дополнительных приложений. Сохранена возможность обновлять ПО из официального репозитория.<br />
<br />
{{Main|FDOM}}<br />
<br />
=== Не основанные на Openmoko ===<br />
<br />
Далее коротко описаны альтернативные дистрибутивы, не основанные на Openmoko (или OE).<br />
<br />
==== Qt Extended ====<br />
Qt Extended имеет несколько имён. Сейчас он называется <b>Qt Extended Improved</b>. Сообщество Openmoko-based (?) развивает Qt Extended Improved как проект Free Software. Qt Extended Improved построен на основе Qt Extended/Qtopia/Qt, разработке Qt Software/Trolltech. Qt Extended Improved предоставляет надёжный телефонный стек, веб-браузер, основанный на webkit, и другие функции, характерные для смартфонов.<br />
<br />
5 марта 2009 года Qt Software выпустила Qt Extended 4.4.3. 3 марта 2009 Qt Software объявила, что Qt Extended 4.4.3 будет последним выпуском продукта. До версии 4.3, Qt Extended назывался Qtopia.<br />
<br />
{{Main|Qtopia / Qt Extended on FreeRunner}}<br />
<br />
==== Debian ====<br />
Debian&nbsp;&mdash; это &laquo;универсальная операционная система&raquo;. Debian содержит тысячи и тысячи пакетов (хотя большинство разработаны для серверов и настольных машин). По словам Йохима Брейтнера из [http://wiki.debian.org/Teams/DebianFSO команды pkg-fso], (известного как nomeata, Joachim "nomeata" Breitner), Debian&nbsp;&mdash; это не дистрибутив в том смысле, как это понимается для Openmoko, но, скорее, альтернативная базовая система, отличная от предоставляемых Openmoko. На данный момент доступно ПО из набора FSO, но есть также надежда на получение Stable Hybrid Release. Так что сегодня можно считать Debian альтернативным способом установки FSO, занимающим больше места, но предоставляющим больше разнообразного ПО.<br />
<br />
{{Main|Debian}}<br />
<br />
==== [[Gentoo ]]====<br />
Gentoo&nbsp;&mdash; это воплощение выбора. Это становится ясным несколько раз ещё во время установки: вы выбираете, что вы желаете скомпилировать самостоятельно, как вы желаете установить Gentoo, какую службу для ведения системного журнала вы желаете использовать и т. д. Gentoo&nbsp;&mdash; быстрая и современная система с понятным и гибким устройством, построенная на открытом ПО. Менеджер пакетов Portage, используемый в Gentoo, написан на Python, что даёт возможность легко модифицировать его при необходимости. Пакетная система Gentoo использует исходные коды (хотя заранее собранные двоичные пакеты тоже поддерживаются), и настройка системы сводится к редактированию текстовых файлов. Другими словами, полная и повсеместная открытость.<br />
<br />
{{Main|Gentoo}}<br />
<br />
==== Android ====<br />
[http://code.google.com/android/ Android]&nbsp;&mdash; это надстройка ПО для мобильных устройств, разрабатываемая [http://www.openhandsetalliance.com/ The Open Handset Alliance.] Openmoko полностью поддерживает Android на Freerunner.<br />
<br />
Android уже доведён до состояния, в котором его можно использовать на FreeRunner в качестве обычного телефона. Тем не менее, существует ряд недостатков. Подробности приведены в соответствующем разделе.<br />
<br />
{{Main|Android}} См. также домашнюю страницу [http://wiki.openmoko.org/wiki/User:Seanmcneil3 Sean McNeil].<br />
<br />
====Slackware====<br />
<br />
С версии 12.2, Slackware официально поддерживается Neo Freerunner.<br />
<br />
[http://armedslack.org/]<br />
<br />
<br />
==== Hackable:1====<br />
<br />
Hackable1&nbsp;&mdash; это дистрибутив для устройств, допускающих вмешательство пользователя (как Freerunner), поддерживаемый сообществом. Он основан на Debian и Om 2007.2 (который более не поддерживается Openmoko), и развивается в направлении GNOME mobile platform.<br />
<br />
{{Main|Hackable:1}}<br />
<br />
====[[neovento]]====<br />
<br />
neovento (бывший FYP)&nbsp;&mdash; это дистрибутив, основанный на [[Debian|Debian on Freerunner]] и использующий [http://lxde.org/ LXDE] и [[Zhone]] на верхнем уровне. Является проектом сообщества [http://freeyourphone.de FreeYourPhone.de].<br />
<br />
{{Main|neovento}}<br />
<br />
====[[OpenWRT]]====<br />
<br />
OpenWRT Development Trunk также поддерживает Freerunner. [http://www.openwrt.org/] <br />
<br />
==== Другие / не выпущенные ====<br />
<br />
* The [http://www.neopwn.com/software.php NeoPwn] network auditng system's core is a modified Linux 2.6.24 kernel, with cross-compiled module driver support for the numerous compatible addon devices running on a FULL Debian (ARMEL) operating system. The filesystem has been optimized for performance and size and includes the NeoPwn menu system and several GUI dialogs for hardware control and attack automation. ''Status: Unknown, the GPL requires source code to be distributed only to customers''.<br />
* [http://runningbear.org/trac RunningBear] is an innovative, yet free and open-source Operating System for hackable devices driven by Bearstech. Lightweight, Portable, Secure, Friendly and Useful. ''Status: In development''.<br />
* [http://pokylinux.org/ Poky] and Sato, by OpenedHand/Intel. An open source platform build tool derived from OE. It is a complete software development environment for the creation of Linux devices. It enables you to design, develop, build, debug, and test a complete, modern, software stack using Linux, the X Window System and GNOME Mobile based application frameworks for both ARM and x86 based platforms. ''Status: The "Nightly Build" Image works fine on Neo Freerunner, but phone functionality doesn't.''<br />
* [http://pyneo.org/ PyNeo] pyneo is a stack for mobile devices excessivly using dbus, glib and evas. pyneo can be considered FSO milestone 0. Afterwards, FSO evolved into an own project with different goals. ''Status: still active, ask around on #pyneo.org ''<br />
* [http://www.quantum-step.com/ mySTEP] by Openmoko distributor Golden Delicious Computers is based on GNUstep and brings a Objective-C API to the Neo. Core GUI frameworks are "Foundation" & "AppKit". It has been shown on FOSDEM 2008, LinuxTag 2008 and SYSTEMS 2008 to run on the Neo 1973. If someone reengineers UIKit, (open) source code compatibility to iPhone apps appears achievable. ''Status: it does not have its own kernel so a Freerunner distribution waits for a solid basis and an arm-linux-gnueabi toolchain that runs natively on Mac OS X is currently lacking.''<br />
<br />
== Возможности различных дистрибутивов ==<br />
<br />
В целом дистрибутивы отличаются в одной или нескольких компонентах из следующего перечня:<br />
* Экран загрузки системы. Чисто декоративное отличие.<br />
* Загрузчик (bootloader). Теоретически, любая версия ''uboot'' может быть использована с любым дистрибутивом. В будущем ''uboot'' будет заменён на ''Qi''.<br />
* Ядро. В разных дистрибутивах используются ядра GNU/Linux версий 2.6.24, 2.6.26 и 2.6.28. Некоторые ядра содержат также встроенные модули; в других случаях модули собираются отдельно, и тогда они могут быть как в одном пакете с ядром, так и отдельно.<br />
* Промежуточное ПО (middleware): демоны, управляющие GSM и GPS, аудиосистема, хранение личных данных и т. п. Qt и Android используют собственные подсистемы, FreeSmartphone.Org (FSO) развивается в направлении стандартного Free Software.<br />
* Драйвер дисплея. Оригинальная система ''Qt Extended'' использовала framebuffer, но большинство других дистрибутивов сегодня используют ''X11''.<br />
* Библиотеки и общий каркас (графический интерфейс, виджеты и т. п.): EFL, Qt, Gtk+, Java...<br />
* Основные функции телефона: голосовые вызовы, SMS, будильник...<br />
* Приложения смартфона: GPS, мультимедиа, игры, веб-браузер...<br />
* Приложения Open source: дополнительные игры, научные приложения и всё остальное...<br />
<br />
=== Аппаратная поддержка ===<br />
<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTA01 || ?? || ?? || ?? || {{Yes}} || ?? || {{Yes}} || {{Yes}} || ?? || ??<br />
|-<br />
| GTA02 || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Connectivity ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Telephony || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| SMS || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| [[GPRS]] || Not through UI || Not through UI|| Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || Not through UI || {{Yes}}<br />
|-<br />
| [[WiFi]] || {{Yes}} (*) || {{Yes}} || Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || Not through UI || {{Yes}}<br />
|-<br />
| VoIP || ?? || ?? || ?? || ?? || {{Yes}} || {{Yes}} (1) || {{Yes}} || ?? || {{no}}<br />
|-<br />
| Bluetooth || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
| GPS (1) || {{Yes}} (1) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}} (1) || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Питание ===<br />
<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Suspend || {{Yes}} || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Resumes on Event || ?? || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Functions after Resume || {{Yes}} || ?? || ?? || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Интерактивность ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|Om2008.8 !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Stylus friendly || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Finger friendly || Partially || Partially || Partially || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Accelerometer || {{Yes}} [[Rotate|(1)]][[Gestures|(1)]] || {{No}} || {{No}} || {{yes}} (1) || {{Yes}} || {{No}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== ПО ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Terminal || {{Yes}} (1) || Basic (2) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}}<br />
|-<br />
| PIM || {{Yes}} || {{Yes}} || {{No}} || N/A || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || ??<br />
|-<br />
| Phonebook || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Dialer || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Web Browser || {{Yes}} (1) || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Mail Client || {{Yes}} || ? || ? || ? || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| XMPP Client || {{Yes}} [[Instant Messaging|(1)]] || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || || ??<br />
|-<br />
| Media Player || {{Yes}} (1) || {{Yes}} || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Toolkits / Runtimes ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTK+ || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Qt/Qt Extended || {{Yes}} || {{No}} || {{Yes}} ? || {{Yes}}? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Middleware || qtopia-x11 || gsmd/neod || FSO || FSO || qtopia-x11 || Qt Extended || FSO || FSO || ??<br />
|-<br />
| [[Java]] || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes}} || ?? || {{Yes|CacaoVM, JamVM}} || ?? || ??<br />
|-<br />
| [[Python]] || {{Yes}} || {{Yes}} || {{Yes}} || {{yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| [[Mono]] || {{Yes}} (1) || {{Yes}} (1) || ?? || {{no}} || ?? || ?? || {{Yes}} (1) || ?? || ??<br />
|-<br />
| [[Ruby]] || {{Yes}} || ?? || ?? || ?? || ?? || ?? || {{Yes}} (1) || {{Yes}} (1) || ??<br />
|}<br />
<br />
=== Образы ===<br />
Latest and stable combinations for Neo FreeRunner gta02<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
| || OM || FDOM || Qt Extended || Android<br />
|-<br />
| current bootloader || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/distro/releases/Om2008.9/ OM daily] version [http://downloads.openmoko.org/] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] ||<br />
|-<br />
| future bootloader || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu ||<br />
|-<br />
| splash || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz ||<br />
|-<br />
| kernel || [[Linux]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest uImage.bin || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest uImage-gta02-mwester-stable.bin or from [http://downloads.tuxfamily.org/3v1deb/openmoko/ treviño] latest uImage-gta02-stable-3v1n0.bin || [[Linux]] see [[Qt_Extended]] page for latest version || [[Linux]] from [http://koolu.org/releases/ koolu]<br />
|-<br />
| modules || ? || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz ||<br />
|-<br />
| rootfs || [[Main_Page|OM]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest rootfs.jffs2 || [[FDOM]] from [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/ TuxBrain] version [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/Fat_and_Dirty_OM.200809_20081023.rootfs.jff2 200809_20081023] || See [[Qt_Extended]] for latest rootfs || [[Android]] from [http://koolu.org/releases/ koolu]<br />
|}<br />
<br />
Примечания:<br />
<br />
(1) работает, но требует установки дополнительного ПО<br />
<br />
(2) непригодно к использованию из-за отсутствия на клавиатуре некоторых символов. Впрочем, [[Switching_Keyboards#Matchbox_keyboard|есть решения]].<br />
<br />
(*) нестабильно<br />
<br />
== Quick download page ==<br />
<br />
[[Download]]<br />
<br />
== См. также ==<br />
<br />
* Заметка Мики Лауэра (Mickey Lauer) "[http://www.vanille-media.de/site/index.php/2008/06/28/gtk-asu-fso-tmtla/ GTK, ASU, FSO, TMTLA!]" описывает различия между дистрибутивами Om 2007.2, ASU и FSO.<br />
<br />
* [[Community Updates|Свежие новости и советы]]<br />
<br />
* [[Kustomizer]]&nbsp;&mdash; как сделать приличный телефон на основе 2008.12<br />
<br />
[[Category:Distributions| ]]</div>Phantomhttp://openmoko.org/wiki/Distributions/ruDistributions/ru2009-06-01T04:36:15Z<p>Phantom: /* Предисловие */ Перекомпонованы некоторые фразы.</p>
<hr />
<div>{{Languages|Distributions}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
== Предисловие ==<br />
Дистрибутивы Openmoko предназначены для использования на различных портативных устройствах, но в первую очередь&nbsp;&mdash; на смартфонах Openmoko [[GTA01:Neo 1973|Neo 1973]] и [[Neo FreeRunner]]. Эти дистрибутивы относятся к семейству GNU/Linux и представляют собой полные версии операционных систем и прикладного ПО. Вы можете [[Download|загрузить]] любой дистрибутив и установить его согласно [[Flashing the Neo FreeRunner|инструкциям по установке]]; можно также сделать систему с мультизагрузкой.<br />
<br />
Добавим, что дистрибутивы Openmoko работают на [[Supported devices/ru|ряде других устройств]], а также ряд других дистрибутивов работает на смартфонах Openmoko.<br />
<br />
=== Выбор дистрибутива ===<br />
В настоящее время наиболее широко используются [[Om 2008]] (предустанавливается производителем на Neo FreeRunner) и [[Stable Hybrid Release|SHR]] (см. [http://spreadsheets.google.com/pub?key=p2ZQdcRSVg9XfYLwBVsZicg]).<br />
<br />
В будущем основным дистрибутивом станет [[Om 2009]]. В настоящий момент ведётся разработка, выпуск ожидается в июне 2009 года. Подобно дистрибутиву SHR, Om 2009 построен на основе [[freesmartphone.org]].<br />
<br />
Кроме этого, существует ряд других дистрибутивов, таких как [[Qt Extended]] (стабильные базовые функции), Google [[Android]] и несколько дистрибутивов, основанных на [[Debian]].<br />
<br />
{| class="wikitable" style="float:right;width:200px;background-color:#FF6600;text-align:center;border-collapse:collapse;font-weight:bold"<br />
|<font color=white>Distributions</font><br />
|-<br />
! style='background-color:#333333;color:#FFFFFF'|<br />
<div align=left><br />
* <font color='#BBBBBB'>Openmoko (официальные)</font><br />
** [[Om2009]]<br />
** [[Om 2008.12 Update]]<br />
** [[Om 2008.9 Update]]<br />
** [[Om 2008.8]]<br />
** [[Om 2007.2]]<br />
** [[OpenmokoFramework|FSO]]<br />
* <font color='#BBBBBB'>Сообщество</font><br />
** [[SHR]]<br />
** [[FDOM]]<br />
* <font color='#BBBBBB'>Другие</font><br />
** [[Qtopia]]<br />
** [[Debian]]<br />
** [[Gentoo]]<br />
** [[Android]]<br />
** [[Hackable:1]]<br />
** [[neovento]]<br />
</div><br />
|-<br />
|}<br />
<br />
=== Замечания ===<br />
<br />
* Слово "стабильный" (stable) в мире FreeRunner означает не то же самое, что в мире Debian.<br />
* Большинство дистрибутивов используют одни и те же загрузчики ядра, ядро, драйверы и аппаратное обеспечение. Следовательно, низкоуровневые аппаратные проблемы одинаково проявляются в разных дистрибутивах. Самое свежее ПО, как правило, содержит наибольшее количество исправленных старых проблем, но имеет также ряд новых.<br />
* Большинство дистрибутивов имеет свои собственные репозитории пакетов. Пытаться установить пакеты из чужого репозитория&nbsp;&mdash; ПЛОХАЯ ИДЕЯ!<br />
* Переход от одного дистрибутива к другому, как правило, не испытан, поэтому изменение пути к репозиторию и последующее обновление системы, скорее всего, приведёт к поломке множества пакетов, а то и к невозможности загрузить систему. Рекомендованный способ смена дистрибутива&nbsp;&mdash; перезаписывать целиком всю файловую систему с помощью [[dfu-util]] (напомним, возможен также вариант с альтернативной загрузкой с карты памяти или из сети (?).<br />
<br />
== Официальные выпуски Openmoko ==<br />
<br />
Предоставляемые компанией Openmoko Inc. дистрибутивы построены на основе различных ветвей [[OpenEmbedded]].<br />
<br />
=== Серия Om ===<br />
<br />
* '''[[Om 2009]]''' станет принципиально новым дистрибутивом, он не является развитием [[Om 2008.12 Update]]. '''В настоящее время Om 2009 находится в стадии разработки и никоим образом не может считаться готовым к использованию.''' Om 2009 построен на каркасе [http://freesmartphone.org freesmartphone.org] версии 5.5.<br />
<br />
{{Main|Om 2009}}<br />
<br />
* '''[[Om 2008.12 Update]]'''&nbsp;&mdash; это второе обновление Om 2008, следующее после выпуска ''Om 2008.9''.<br />
<br />
{{Main|Om 2008.12 Update}}<br />
<br />
* '''[[Om 2008.9 Update]]'''&nbsp;&mdash; это первое обновление Om 2008, следующее после выпуска ''Om 2008.8''. Для всех более старых версий Openmoko рекомендуется обновление, как минимум, до этой версии, которая всё ещё далека от совершенства, но включает ряд существенных исправлений, повышающих общую стабильность. Кроме этого, в новой версии изменён экран загрузки. Каких-либо изменений в наборе предоставляемых приложений нет. Нетребовательные пользователи могут счесть данную версию вполне сносной для бытового использования устройства в качестве телефона.<br />
<br />
{{Main|Om 2008.9 Update}}<br />
<br />
* '''[[Om 2008.8]]''' выпущен в августа 2008 года в качестве замены 2007.2. До момента выпуска данный дистрибутив имел кодовое имя ASU (April/August Software Update); это имя сохранилось в системе контроля версий как имя соответствующей ветви. Эта версия объединяет телефонный стек [http://trolltech.com/products/qtopia Qtopia] с набором новых приложений Openmoko, основанных на Enlightenment Foundation Libraries ([[EFL_Documentation|EFL]]). Qtopia является более зрелым продуктом, чем GNOME Mobile stack, и стандартные приложения (номеронабиратель, контакты, калькулятор, календарь) работают лучше, чем в 2007.2. Qtopia, использованная в версии 2008.8, перенесена на X11, в отличие от стандартной Qtopia, использующей фреймбуфер. Это изменение позволяет приложениям, не основанным на Qt, использовать экран совместно с приложениями на Qt. Данный выпуск имеет условную версию .0 и имеет множество нерешённых низкоуровневых проблем (управление питанием, звук, WiFi и т.&nbsp;п.).<br />
<br />
{{Main|Om 2008.8}}<br />
<br />
* '''[[Om 2007.2]]''' был первым дистрибутивом, созданным Openmoko. Интерфейс был разработан для управления пальцем (оптимизирован для разрешения 285 ppi) и выполнен в ярких оранжевых тонах. В нём использовался телефонный стек GTK+ stack, являющийся частью платформы [http://www.gnome.org/mobile/ GNOME Mobile]. В настоящее время данный дистрибутив считается устаревшим и более не поддерживается ни Openmoko Inc, ни OpenedHand. <br />
<br />
{{Main|Om 2007.2}}<br />
<br />
=== Серия FSO ===<br />
<br />
'''FSO'''&nbsp;&mdash; это аббревиатура, образованная от названия FreeSmartphone.Org. Openmoko работает над стабильной поддержкой системных служб. Основные усилия сфокусированы на стабильных высокоуровневых службах, доступных для любого языка программирования или пользовательского интерфейса, имеющего поддержку [http://dbus.freesmartphone.org/ dbus]. Этот каркас будет использоваться в следующих выпусках Openmoko. FSO является, по сути, промежуточным программным обеспечением (middleware), но если совместить его с ПО нижнего (bootloader+kernel) и верхнего (телефонные приложения) уровней, получится работающий дистрибутив. По такой схеме строятся дистрибутивы серии FSO (так называемые Milestones). <br />
<br />
* '''FSO Milestone V''' был выпущен под лозунгом 'Calling All Stations'. В качестве телефонного приложения используется Zhone; это простое приложение, написанное на Python и совмещающее номеронабиратель и главный экран, которое было разработано больше для испытания возможностей FSO. Несмотря на симпатичную реализацию, Zhone недостаточно хорошо протестирован. Подробности см. [http://wiki.openmoko.org/wiki/OpenmokoFramework/Status_Update_6 Status Update 6]. Получить образ дистрибутива можно по адресу: http://downloads.freesmartphone.org/fso-stable/milestone5.1/ . <br />
<br />
{{Main|FSO}}<br />
<br />
== Дистрибутивы сообществ ==<br />
<br />
=== SHR&nbsp;&mdash; Stable Hybrid Release ===<br />
<br />
SHR&nbsp;&mdash; это дистрибутив, разрабатываемый сообществом. Он содержит некоторые приложения, основанные на EFL и использующие (?) FSO. На данный момент доступны простой номеронабиратель, приложения для работы с сообщениями и контактами (написанные на Си), а также управление настройками, написанное на Python. На 12 апреля 2009 года не существовало стабильной версии данного дистрибутива, поскольку команда разработки не считает его доведённым до должного уровня. Тем не менее, вы можете получить образ дистрибутива [http://shr.bearstech.com/shr-testing на сборочном сервере SHR].<br />
<br />
{{Main|Stable Hybrid Release}}<br />
<br />
=== FDOM (FAT and Dirty Openmoko) ===<br />
<br />
[[FDOM]]&nbsp;&mdash; это дистрибутив, основанный на последнем выпуске официального Openmoko и включающий множество исправлений и дополнительных приложений. Сохранена возможность обновлять ПО из официального репозитория.<br />
<br />
{{Main|FDOM}}<br />
<br />
=== Не основанные на Openmoko ===<br />
<br />
Далее коротко описаны альтернативные дистрибутивы, не основанные на Openmoko (или OE).<br />
<br />
==== Qt Extended ====<br />
Qt Extended имеет несколько имён. Сейчас он называется <b>Qt Extended Improved</b>. Сообщество Openmoko-based (?) развивает Qt Extended Improved как проект Free Software. Qt Extended Improved построен на основе Qt Extended/Qtopia/Qt, разработке Qt Software/Trolltech. Qt Extended Improved предоставляет надёжный телефонный стек, веб-браузер, основанный на webkit, и другие функции, характерные для смартфонов.<br />
<br />
5 марта 2009 года Qt Software выпустила Qt Extended 4.4.3. 3 марта 2009 Qt Software объявила, что Qt Extended 4.4.3 будет последним выпуском продукта. До версии 4.3, Qt Extended назывался Qtopia.<br />
<br />
{{Main|Qtopia / Qt Extended on FreeRunner}}<br />
<br />
==== Debian ====<br />
Debian&nbsp;&mdash; это &laquo;универсальная операционная система&raquo;. Debian содержит тысячи и тысячи пакетов (хотя большинство разработаны для серверов и настольных машин). По словам Йохима Брейтнера из [http://wiki.debian.org/Teams/DebianFSO команды pkg-fso], (известного как nomeata, Joachim "nomeata" Breitner), Debian&nbsp;&mdash; это не дистрибутив в том смысле, как это понимается для Openmoko, но, скорее, альтернативная базовая система, отличная от предоставляемых Openmoko. На данный момент доступно ПО из набора FSO, но есть также надежда на получение Stable Hybrid Release. Так что сегодня можно считать Debian альтернативным способом установки FSO, занимающим больше места, но предоставляющим больше разнообразного ПО.<br />
<br />
{{Main|Debian}}<br />
<br />
==== [[Gentoo ]]====<br />
Gentoo&nbsp;&mdash; это воплощение выбора. Это становится ясным несколько раз ещё во время установки: вы выбираете, что вы желаете скомпилировать самостоятельно, как вы желаете установить Gentoo, какую службу для ведения системного журнала вы желаете использовать и т. д. Gentoo&nbsp;&mdash; быстрая и современная система с понятным и гибким устройством, построенная на открытом ПО. Менеджер пакетов Portage, используемый в Gentoo, написан на Python, что даёт возможность легко модифицировать его при необходимости. Пакетная система Gentoo использует исходные коды (хотя заранее собранные двоичные пакеты тоже поддерживаются), и настройка системы сводится к редактированию текстовых файлов. Другими словами, полная и повсеместная открытость.<br />
<br />
{{Main|Gentoo}}<br />
<br />
==== Android ====<br />
[http://code.google.com/android/ Android]&nbsp;&mdash; это надстройка ПО для мобильных устройств, разрабатываемая [http://www.openhandsetalliance.com/ The Open Handset Alliance.] Openmoko полностью поддерживает Android на Freerunner.<br />
<br />
Android уже доведён до состояния, в котором его можно использовать на FreeRunner в качестве обычного телефона. Тем не менее, существует ряд недостатков. Подробности приведены в соответствующем разделе.<br />
<br />
{{Main|Android}} См. также домашнюю страницу [http://wiki.openmoko.org/wiki/User:Seanmcneil3 Sean McNeil].<br />
<br />
====Slackware====<br />
<br />
С версии 12.2, Slackware официально поддерживается Neo Freerunner.<br />
<br />
[http://armedslack.org/]<br />
<br />
<br />
==== Hackable:1====<br />
<br />
Hackable1&nbsp;&mdash; это дистрибутив для устройств, допускающих вмешательство пользователя (как Freerunner), поддерживаемый сообществом. Он основан на Debian и Om 2007.2 (который более не поддерживается Openmoko), и развивается в направлении GNOME mobile platform.<br />
<br />
{{Main|Hackable:1}}<br />
<br />
====[[neovento]]====<br />
<br />
neovento (бывший FYP)&nbsp;&mdash; это дистрибутив, основанный на [[Debian|Debian on Freerunner]] и использующий [http://lxde.org/ LXDE] и [[Zhone]] на верхнем уровне. Является проектом сообщества [http://freeyourphone.de FreeYourPhone.de].<br />
<br />
{{Main|neovento}}<br />
<br />
====[[OpenWRT]]====<br />
<br />
OpenWRT Development Trunk также поддерживает Freerunner. [http://www.openwrt.org/] <br />
<br />
==== Другие / не выпущенные ====<br />
<br />
* The [http://www.neopwn.com/software.php NeoPwn] network auditng system's core is a modified Linux 2.6.24 kernel, with cross-compiled module driver support for the numerous compatible addon devices running on a FULL Debian (ARMEL) operating system. The filesystem has been optimized for performance and size and includes the NeoPwn menu system and several GUI dialogs for hardware control and attack automation. ''Status: Unknown, the GPL requires source code to be distributed only to customers''.<br />
* [http://runningbear.org/trac RunningBear] is an innovative, yet free and open-source Operating System for hackable devices driven by Bearstech. Lightweight, Portable, Secure, Friendly and Useful. ''Status: In development''.<br />
* [http://pokylinux.org/ Poky] and Sato, by OpenedHand/Intel. An open source platform build tool derived from OE. It is a complete software development environment for the creation of Linux devices. It enables you to design, develop, build, debug, and test a complete, modern, software stack using Linux, the X Window System and GNOME Mobile based application frameworks for both ARM and x86 based platforms. ''Status: The "Nightly Build" Image works fine on Neo Freerunner, but phone functionality doesn't.''<br />
* [http://pyneo.org/ PyNeo] pyneo is a stack for mobile devices excessivly using dbus, glib and evas. pyneo can be considered FSO milestone 0. Afterwards, FSO evolved into an own project with different goals. ''Status: still active, ask around on #pyneo.org ''<br />
* [http://www.quantum-step.com/ mySTEP] by Openmoko distributor Golden Delicious Computers is based on GNUstep and brings a Objective-C API to the Neo. Core GUI frameworks are "Foundation" & "AppKit". It has been shown on FOSDEM 2008, LinuxTag 2008 and SYSTEMS 2008 to run on the Neo 1973. If someone reengineers UIKit, (open) source code compatibility to iPhone apps appears achievable. ''Status: it does not have its own kernel so a Freerunner distribution waits for a solid basis and an arm-linux-gnueabi toolchain that runs natively on Mac OS X is currently lacking.''<br />
<br />
== Возможности различных дистрибутивов ==<br />
<br />
В целом дистрибутивы отличаются в одной или нескольких компонентах из следующего перечня:<br />
* Экран загрузки системы. Чисто декоративное отличие.<br />
* Загрузчик (bootloader). Теоретически, любая версия ''uboot'' может быть использована с любым дистрибутивом. В будущем ''uboot'' будет заменён на ''Qi''.<br />
* Ядро. В разных дистрибутивах используются ядра GNU/Linux версий 2.6.24, 2.6.26 и 2.6.28. Некоторые ядра содержат также встроенные модули; в других случаях модули собираются отдельно, и тогда они могут быть как в одном пакете с ядром, так и отдельно.<br />
* Промежуточное ПО (middleware): демоны, управляющие GSM и GPS, аудиосистема, хранение личных данных и т. п. Qt и Android используют собственные подсистемы, FreeSmartphone.Org (FSO) развивается в направлении стандартного Free Software.<br />
* Драйвер дисплея. Оригинальная система ''Qt Extended'' использовала framebuffer, но большинство других дистрибутивов сегодня используют ''X11''.<br />
* Библиотеки и общий каркас (графический интерфейс, виджеты и т. п.): EFL, Qt, Gtk+, Java...<br />
* Основные функции телефона: голосовые вызовы, SMS, будильник...<br />
* Приложения смартфона: GPS, мультимедиа, игры, веб-браузер...<br />
* Приложения Open source: дополнительные игры, научные приложения и всё остальное...<br />
<br />
=== Аппаратная поддержка ===<br />
<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTA01 || ?? || ?? || ?? || {{Yes}} || ?? || {{Yes}} || {{Yes}} || ?? || ??<br />
|-<br />
| GTA02 || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Connectivity ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Telephony || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| SMS || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| [[GPRS]] || Not through UI || Not through UI|| Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || Not through UI || {{Yes}}<br />
|-<br />
| [[WiFi]] || {{Yes}} (*) || {{Yes}} || Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || Not through UI || {{Yes}}<br />
|-<br />
| VoIP || ?? || ?? || ?? || ?? || {{Yes}} || {{Yes}} (1) || {{Yes}} || ?? || {{no}}<br />
|-<br />
| Bluetooth || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
| GPS (1) || {{Yes}} (1) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}} (1) || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Питание ===<br />
<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Suspend || {{Yes}} || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Resumes on Event || ?? || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Functions after Resume || {{Yes}} || ?? || ?? || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Интерактивность ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|Om2008.8 !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Stylus friendly || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Finger friendly || Partially || Partially || Partially || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Accelerometer || {{Yes}} [[Rotate|(1)]][[Gestures|(1)]] || {{No}} || {{No}} || {{yes}} (1) || {{Yes}} || {{No}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== ПО ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Terminal || {{Yes}} (1) || Basic (2) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}}<br />
|-<br />
| PIM || {{Yes}} || {{Yes}} || {{No}} || N/A || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || ??<br />
|-<br />
| Phonebook || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Dialer || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Web Browser || {{Yes}} (1) || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Mail Client || {{Yes}} || ? || ? || ? || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| XMPP Client || {{Yes}} [[Instant Messaging|(1)]] || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || || ??<br />
|-<br />
| Media Player || {{Yes}} (1) || {{Yes}} || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Toolkits / Runtimes ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTK+ || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Qt/Qt Extended || {{Yes}} || {{No}} || {{Yes}} ? || {{Yes}}? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Middleware || qtopia-x11 || gsmd/neod || FSO || FSO || qtopia-x11 || Qt Extended || FSO || FSO || ??<br />
|-<br />
| [[Java]] || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes}} || ?? || {{Yes|CacaoVM, JamVM}} || ?? || ??<br />
|-<br />
| [[Python]] || {{Yes}} || {{Yes}} || {{Yes}} || {{yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| [[Mono]] || {{Yes}} (1) || {{Yes}} (1) || ?? || {{no}} || ?? || ?? || {{Yes}} (1) || ?? || ??<br />
|-<br />
| [[Ruby]] || {{Yes}} || ?? || ?? || ?? || ?? || ?? || {{Yes}} (1) || {{Yes}} (1) || ??<br />
|}<br />
<br />
=== Образы ===<br />
Latest and stable combinations for Neo FreeRunner gta02<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
| || OM || FDOM || Qt Extended || Android<br />
|-<br />
| current bootloader || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/distro/releases/Om2008.9/ OM daily] version [http://downloads.openmoko.org/] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] ||<br />
|-<br />
| future bootloader || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu ||<br />
|-<br />
| splash || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz ||<br />
|-<br />
| kernel || [[Linux]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest uImage.bin || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest uImage-gta02-mwester-stable.bin or from [http://downloads.tuxfamily.org/3v1deb/openmoko/ treviño] latest uImage-gta02-stable-3v1n0.bin || [[Linux]] see [[Qt_Extended]] page for latest version || [[Linux]] from [http://koolu.org/releases/ koolu]<br />
|-<br />
| modules || ? || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz ||<br />
|-<br />
| rootfs || [[Main_Page|OM]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest rootfs.jffs2 || [[FDOM]] from [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/ TuxBrain] version [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/Fat_and_Dirty_OM.200809_20081023.rootfs.jff2 200809_20081023] || See [[Qt_Extended]] for latest rootfs || [[Android]] from [http://koolu.org/releases/ koolu]<br />
|}<br />
<br />
Примечания:<br />
<br />
(1) работает, но требует установки дополнительного ПО<br />
<br />
(2) непригодно к использованию из-за отсутствия на клавиатуре некоторых символов. Впрочем, [[Switching_Keyboards#Matchbox_keyboard|есть решения]].<br />
<br />
(*) нестабильно<br />
<br />
== Quick download page ==<br />
<br />
[[Download]]<br />
<br />
== См. также ==<br />
<br />
* Заметка Мики Лауэра (Mickey Lauer) "[http://www.vanille-media.de/site/index.php/2008/06/28/gtk-asu-fso-tmtla/ GTK, ASU, FSO, TMTLA!]" описывает различия между дистрибутивами Om 2007.2, ASU и FSO.<br />
<br />
* [[Community Updates|Свежие новости и советы]]<br />
<br />
* [[Kustomizer]]&nbsp;&mdash; как сделать приличный телефон на основе 2008.12<br />
<br />
[[Category:Distributions| ]]</div>Phantomhttp://openmoko.org/wiki/Distributions/ruDistributions/ru2009-06-01T04:34:54Z<p>Phantom: /* Предисловие */ Перекомпонованы некоторые фразы.</p>
<hr />
<div>{{Languages|Distributions}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
== Предисловие ==<br />
Дистрибутивы Openmoko предназначены для использования на различных портативных устройствах, но в первую очередь&nbsp;&mdash; на смартфонах Openmoko [[GTA01:Neo 1973|Neo 1973]] и [[Neo FreeRunner]]. Эти дистрибутивы относятся к семейству GNU/Linux и представляют собой полные версии операционных систем и прикладного ПО. Вы можете установить на ваше устройство любой дистрибутив или даже сделать систему с мультизагрузкой. Вы можете [[Download|загрузить]] любой дистрибутив и установить его согласно [[Flashing the Neo FreeRunner|инструкциям по установке]].<br />
<br />
Добавим, что дистрибутивы Openmoko работают на [[Supported devices/ru|ряде других устройств]], а также ряд других дистрибутивов работает на смартфонах Openmoko.<br />
<br />
=== Выбор дистрибутива ===<br />
В настоящее время наиболее широко используются [[Om 2008]] (предустанавливается производителем на Neo FreeRunner) и [[Stable Hybrid Release|SHR]] (см. [http://spreadsheets.google.com/pub?key=p2ZQdcRSVg9XfYLwBVsZicg]).<br />
<br />
В будущем основным дистрибутивом станет [[Om 2009]]. В настоящий момент ведётся разработка, выпуск ожидается в июне 2009 года. Подобно дистрибутиву SHR, Om 2009 построен на основе [[freesmartphone.org]].<br />
<br />
Кроме этого, существует ряд других дистрибутивов, таких как [[Qt Extended]] (стабильные базовые функции), Google [[Android]] и несколько дистрибутивов, основанных на [[Debian]].<br />
<br />
{| class="wikitable" style="float:right;width:200px;background-color:#FF6600;text-align:center;border-collapse:collapse;font-weight:bold"<br />
|<font color=white>Distributions</font><br />
|-<br />
! style='background-color:#333333;color:#FFFFFF'|<br />
<div align=left><br />
* <font color='#BBBBBB'>Openmoko (официальные)</font><br />
** [[Om2009]]<br />
** [[Om 2008.12 Update]]<br />
** [[Om 2008.9 Update]]<br />
** [[Om 2008.8]]<br />
** [[Om 2007.2]]<br />
** [[OpenmokoFramework|FSO]]<br />
* <font color='#BBBBBB'>Сообщество</font><br />
** [[SHR]]<br />
** [[FDOM]]<br />
* <font color='#BBBBBB'>Другие</font><br />
** [[Qtopia]]<br />
** [[Debian]]<br />
** [[Gentoo]]<br />
** [[Android]]<br />
** [[Hackable:1]]<br />
** [[neovento]]<br />
</div><br />
|-<br />
|}<br />
<br />
=== Замечания ===<br />
<br />
* Слово "стабильный" (stable) в мире FreeRunner означает не то же самое, что в мире Debian.<br />
* Большинство дистрибутивов используют одни и те же загрузчики ядра, ядро, драйверы и аппаратное обеспечение. Следовательно, низкоуровневые аппаратные проблемы одинаково проявляются в разных дистрибутивах. Самое свежее ПО, как правило, содержит наибольшее количество исправленных старых проблем, но имеет также ряд новых.<br />
* Большинство дистрибутивов имеет свои собственные репозитории пакетов. Пытаться установить пакеты из чужого репозитория&nbsp;&mdash; ПЛОХАЯ ИДЕЯ!<br />
* Переход от одного дистрибутива к другому, как правило, не испытан, поэтому изменение пути к репозиторию и последующее обновление системы, скорее всего, приведёт к поломке множества пакетов, а то и к невозможности загрузить систему. Рекомендованный способ смена дистрибутива&nbsp;&mdash; перезаписывать целиком всю файловую систему с помощью [[dfu-util]] (напомним, возможен также вариант с альтернативной загрузкой с карты памяти или из сети (?).<br />
<br />
== Официальные выпуски Openmoko ==<br />
<br />
Предоставляемые компанией Openmoko Inc. дистрибутивы построены на основе различных ветвей [[OpenEmbedded]].<br />
<br />
=== Серия Om ===<br />
<br />
* '''[[Om 2009]]''' станет принципиально новым дистрибутивом, он не является развитием [[Om 2008.12 Update]]. '''В настоящее время Om 2009 находится в стадии разработки и никоим образом не может считаться готовым к использованию.''' Om 2009 построен на каркасе [http://freesmartphone.org freesmartphone.org] версии 5.5.<br />
<br />
{{Main|Om 2009}}<br />
<br />
* '''[[Om 2008.12 Update]]'''&nbsp;&mdash; это второе обновление Om 2008, следующее после выпуска ''Om 2008.9''.<br />
<br />
{{Main|Om 2008.12 Update}}<br />
<br />
* '''[[Om 2008.9 Update]]'''&nbsp;&mdash; это первое обновление Om 2008, следующее после выпуска ''Om 2008.8''. Для всех более старых версий Openmoko рекомендуется обновление, как минимум, до этой версии, которая всё ещё далека от совершенства, но включает ряд существенных исправлений, повышающих общую стабильность. Кроме этого, в новой версии изменён экран загрузки. Каких-либо изменений в наборе предоставляемых приложений нет. Нетребовательные пользователи могут счесть данную версию вполне сносной для бытового использования устройства в качестве телефона.<br />
<br />
{{Main|Om 2008.9 Update}}<br />
<br />
* '''[[Om 2008.8]]''' выпущен в августа 2008 года в качестве замены 2007.2. До момента выпуска данный дистрибутив имел кодовое имя ASU (April/August Software Update); это имя сохранилось в системе контроля версий как имя соответствующей ветви. Эта версия объединяет телефонный стек [http://trolltech.com/products/qtopia Qtopia] с набором новых приложений Openmoko, основанных на Enlightenment Foundation Libraries ([[EFL_Documentation|EFL]]). Qtopia является более зрелым продуктом, чем GNOME Mobile stack, и стандартные приложения (номеронабиратель, контакты, калькулятор, календарь) работают лучше, чем в 2007.2. Qtopia, использованная в версии 2008.8, перенесена на X11, в отличие от стандартной Qtopia, использующей фреймбуфер. Это изменение позволяет приложениям, не основанным на Qt, использовать экран совместно с приложениями на Qt. Данный выпуск имеет условную версию .0 и имеет множество нерешённых низкоуровневых проблем (управление питанием, звук, WiFi и т.&nbsp;п.).<br />
<br />
{{Main|Om 2008.8}}<br />
<br />
* '''[[Om 2007.2]]''' был первым дистрибутивом, созданным Openmoko. Интерфейс был разработан для управления пальцем (оптимизирован для разрешения 285 ppi) и выполнен в ярких оранжевых тонах. В нём использовался телефонный стек GTK+ stack, являющийся частью платформы [http://www.gnome.org/mobile/ GNOME Mobile]. В настоящее время данный дистрибутив считается устаревшим и более не поддерживается ни Openmoko Inc, ни OpenedHand. <br />
<br />
{{Main|Om 2007.2}}<br />
<br />
=== Серия FSO ===<br />
<br />
'''FSO'''&nbsp;&mdash; это аббревиатура, образованная от названия FreeSmartphone.Org. Openmoko работает над стабильной поддержкой системных служб. Основные усилия сфокусированы на стабильных высокоуровневых службах, доступных для любого языка программирования или пользовательского интерфейса, имеющего поддержку [http://dbus.freesmartphone.org/ dbus]. Этот каркас будет использоваться в следующих выпусках Openmoko. FSO является, по сути, промежуточным программным обеспечением (middleware), но если совместить его с ПО нижнего (bootloader+kernel) и верхнего (телефонные приложения) уровней, получится работающий дистрибутив. По такой схеме строятся дистрибутивы серии FSO (так называемые Milestones). <br />
<br />
* '''FSO Milestone V''' был выпущен под лозунгом 'Calling All Stations'. В качестве телефонного приложения используется Zhone; это простое приложение, написанное на Python и совмещающее номеронабиратель и главный экран, которое было разработано больше для испытания возможностей FSO. Несмотря на симпатичную реализацию, Zhone недостаточно хорошо протестирован. Подробности см. [http://wiki.openmoko.org/wiki/OpenmokoFramework/Status_Update_6 Status Update 6]. Получить образ дистрибутива можно по адресу: http://downloads.freesmartphone.org/fso-stable/milestone5.1/ . <br />
<br />
{{Main|FSO}}<br />
<br />
== Дистрибутивы сообществ ==<br />
<br />
=== SHR&nbsp;&mdash; Stable Hybrid Release ===<br />
<br />
SHR&nbsp;&mdash; это дистрибутив, разрабатываемый сообществом. Он содержит некоторые приложения, основанные на EFL и использующие (?) FSO. На данный момент доступны простой номеронабиратель, приложения для работы с сообщениями и контактами (написанные на Си), а также управление настройками, написанное на Python. На 12 апреля 2009 года не существовало стабильной версии данного дистрибутива, поскольку команда разработки не считает его доведённым до должного уровня. Тем не менее, вы можете получить образ дистрибутива [http://shr.bearstech.com/shr-testing на сборочном сервере SHR].<br />
<br />
{{Main|Stable Hybrid Release}}<br />
<br />
=== FDOM (FAT and Dirty Openmoko) ===<br />
<br />
[[FDOM]]&nbsp;&mdash; это дистрибутив, основанный на последнем выпуске официального Openmoko и включающий множество исправлений и дополнительных приложений. Сохранена возможность обновлять ПО из официального репозитория.<br />
<br />
{{Main|FDOM}}<br />
<br />
=== Не основанные на Openmoko ===<br />
<br />
Далее коротко описаны альтернативные дистрибутивы, не основанные на Openmoko (или OE).<br />
<br />
==== Qt Extended ====<br />
Qt Extended имеет несколько имён. Сейчас он называется <b>Qt Extended Improved</b>. Сообщество Openmoko-based (?) развивает Qt Extended Improved как проект Free Software. Qt Extended Improved построен на основе Qt Extended/Qtopia/Qt, разработке Qt Software/Trolltech. Qt Extended Improved предоставляет надёжный телефонный стек, веб-браузер, основанный на webkit, и другие функции, характерные для смартфонов.<br />
<br />
5 марта 2009 года Qt Software выпустила Qt Extended 4.4.3. 3 марта 2009 Qt Software объявила, что Qt Extended 4.4.3 будет последним выпуском продукта. До версии 4.3, Qt Extended назывался Qtopia.<br />
<br />
{{Main|Qtopia / Qt Extended on FreeRunner}}<br />
<br />
==== Debian ====<br />
Debian&nbsp;&mdash; это &laquo;универсальная операционная система&raquo;. Debian содержит тысячи и тысячи пакетов (хотя большинство разработаны для серверов и настольных машин). По словам Йохима Брейтнера из [http://wiki.debian.org/Teams/DebianFSO команды pkg-fso], (известного как nomeata, Joachim "nomeata" Breitner), Debian&nbsp;&mdash; это не дистрибутив в том смысле, как это понимается для Openmoko, но, скорее, альтернативная базовая система, отличная от предоставляемых Openmoko. На данный момент доступно ПО из набора FSO, но есть также надежда на получение Stable Hybrid Release. Так что сегодня можно считать Debian альтернативным способом установки FSO, занимающим больше места, но предоставляющим больше разнообразного ПО.<br />
<br />
{{Main|Debian}}<br />
<br />
==== [[Gentoo ]]====<br />
Gentoo&nbsp;&mdash; это воплощение выбора. Это становится ясным несколько раз ещё во время установки: вы выбираете, что вы желаете скомпилировать самостоятельно, как вы желаете установить Gentoo, какую службу для ведения системного журнала вы желаете использовать и т. д. Gentoo&nbsp;&mdash; быстрая и современная система с понятным и гибким устройством, построенная на открытом ПО. Менеджер пакетов Portage, используемый в Gentoo, написан на Python, что даёт возможность легко модифицировать его при необходимости. Пакетная система Gentoo использует исходные коды (хотя заранее собранные двоичные пакеты тоже поддерживаются), и настройка системы сводится к редактированию текстовых файлов. Другими словами, полная и повсеместная открытость.<br />
<br />
{{Main|Gentoo}}<br />
<br />
==== Android ====<br />
[http://code.google.com/android/ Android]&nbsp;&mdash; это надстройка ПО для мобильных устройств, разрабатываемая [http://www.openhandsetalliance.com/ The Open Handset Alliance.] Openmoko полностью поддерживает Android на Freerunner.<br />
<br />
Android уже доведён до состояния, в котором его можно использовать на FreeRunner в качестве обычного телефона. Тем не менее, существует ряд недостатков. Подробности приведены в соответствующем разделе.<br />
<br />
{{Main|Android}} См. также домашнюю страницу [http://wiki.openmoko.org/wiki/User:Seanmcneil3 Sean McNeil].<br />
<br />
====Slackware====<br />
<br />
С версии 12.2, Slackware официально поддерживается Neo Freerunner.<br />
<br />
[http://armedslack.org/]<br />
<br />
<br />
==== Hackable:1====<br />
<br />
Hackable1&nbsp;&mdash; это дистрибутив для устройств, допускающих вмешательство пользователя (как Freerunner), поддерживаемый сообществом. Он основан на Debian и Om 2007.2 (который более не поддерживается Openmoko), и развивается в направлении GNOME mobile platform.<br />
<br />
{{Main|Hackable:1}}<br />
<br />
====[[neovento]]====<br />
<br />
neovento (бывший FYP)&nbsp;&mdash; это дистрибутив, основанный на [[Debian|Debian on Freerunner]] и использующий [http://lxde.org/ LXDE] и [[Zhone]] на верхнем уровне. Является проектом сообщества [http://freeyourphone.de FreeYourPhone.de].<br />
<br />
{{Main|neovento}}<br />
<br />
====[[OpenWRT]]====<br />
<br />
OpenWRT Development Trunk также поддерживает Freerunner. [http://www.openwrt.org/] <br />
<br />
==== Другие / не выпущенные ====<br />
<br />
* The [http://www.neopwn.com/software.php NeoPwn] network auditng system's core is a modified Linux 2.6.24 kernel, with cross-compiled module driver support for the numerous compatible addon devices running on a FULL Debian (ARMEL) operating system. The filesystem has been optimized for performance and size and includes the NeoPwn menu system and several GUI dialogs for hardware control and attack automation. ''Status: Unknown, the GPL requires source code to be distributed only to customers''.<br />
* [http://runningbear.org/trac RunningBear] is an innovative, yet free and open-source Operating System for hackable devices driven by Bearstech. Lightweight, Portable, Secure, Friendly and Useful. ''Status: In development''.<br />
* [http://pokylinux.org/ Poky] and Sato, by OpenedHand/Intel. An open source platform build tool derived from OE. It is a complete software development environment for the creation of Linux devices. It enables you to design, develop, build, debug, and test a complete, modern, software stack using Linux, the X Window System and GNOME Mobile based application frameworks for both ARM and x86 based platforms. ''Status: The "Nightly Build" Image works fine on Neo Freerunner, but phone functionality doesn't.''<br />
* [http://pyneo.org/ PyNeo] pyneo is a stack for mobile devices excessivly using dbus, glib and evas. pyneo can be considered FSO milestone 0. Afterwards, FSO evolved into an own project with different goals. ''Status: still active, ask around on #pyneo.org ''<br />
* [http://www.quantum-step.com/ mySTEP] by Openmoko distributor Golden Delicious Computers is based on GNUstep and brings a Objective-C API to the Neo. Core GUI frameworks are "Foundation" & "AppKit". It has been shown on FOSDEM 2008, LinuxTag 2008 and SYSTEMS 2008 to run on the Neo 1973. If someone reengineers UIKit, (open) source code compatibility to iPhone apps appears achievable. ''Status: it does not have its own kernel so a Freerunner distribution waits for a solid basis and an arm-linux-gnueabi toolchain that runs natively on Mac OS X is currently lacking.''<br />
<br />
== Возможности различных дистрибутивов ==<br />
<br />
В целом дистрибутивы отличаются в одной или нескольких компонентах из следующего перечня:<br />
* Экран загрузки системы. Чисто декоративное отличие.<br />
* Загрузчик (bootloader). Теоретически, любая версия ''uboot'' может быть использована с любым дистрибутивом. В будущем ''uboot'' будет заменён на ''Qi''.<br />
* Ядро. В разных дистрибутивах используются ядра GNU/Linux версий 2.6.24, 2.6.26 и 2.6.28. Некоторые ядра содержат также встроенные модули; в других случаях модули собираются отдельно, и тогда они могут быть как в одном пакете с ядром, так и отдельно.<br />
* Промежуточное ПО (middleware): демоны, управляющие GSM и GPS, аудиосистема, хранение личных данных и т. п. Qt и Android используют собственные подсистемы, FreeSmartphone.Org (FSO) развивается в направлении стандартного Free Software.<br />
* Драйвер дисплея. Оригинальная система ''Qt Extended'' использовала framebuffer, но большинство других дистрибутивов сегодня используют ''X11''.<br />
* Библиотеки и общий каркас (графический интерфейс, виджеты и т. п.): EFL, Qt, Gtk+, Java...<br />
* Основные функции телефона: голосовые вызовы, SMS, будильник...<br />
* Приложения смартфона: GPS, мультимедиа, игры, веб-браузер...<br />
* Приложения Open source: дополнительные игры, научные приложения и всё остальное...<br />
<br />
=== Аппаратная поддержка ===<br />
<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTA01 || ?? || ?? || ?? || {{Yes}} || ?? || {{Yes}} || {{Yes}} || ?? || ??<br />
|-<br />
| GTA02 || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Connectivity ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Telephony || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| SMS || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| [[GPRS]] || Not through UI || Not through UI|| Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || Not through UI || {{Yes}}<br />
|-<br />
| [[WiFi]] || {{Yes}} (*) || {{Yes}} || Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || Not through UI || {{Yes}}<br />
|-<br />
| VoIP || ?? || ?? || ?? || ?? || {{Yes}} || {{Yes}} (1) || {{Yes}} || ?? || {{no}}<br />
|-<br />
| Bluetooth || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
| GPS (1) || {{Yes}} (1) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}} (1) || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Питание ===<br />
<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Suspend || {{Yes}} || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Resumes on Event || ?? || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Functions after Resume || {{Yes}} || ?? || ?? || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Интерактивность ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|Om2008.8 !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Stylus friendly || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Finger friendly || Partially || Partially || Partially || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Accelerometer || {{Yes}} [[Rotate|(1)]][[Gestures|(1)]] || {{No}} || {{No}} || {{yes}} (1) || {{Yes}} || {{No}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== ПО ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Terminal || {{Yes}} (1) || Basic (2) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}}<br />
|-<br />
| PIM || {{Yes}} || {{Yes}} || {{No}} || N/A || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || ??<br />
|-<br />
| Phonebook || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Dialer || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Web Browser || {{Yes}} (1) || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Mail Client || {{Yes}} || ? || ? || ? || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| XMPP Client || {{Yes}} [[Instant Messaging|(1)]] || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || || ??<br />
|-<br />
| Media Player || {{Yes}} (1) || {{Yes}} || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Toolkits / Runtimes ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTK+ || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Qt/Qt Extended || {{Yes}} || {{No}} || {{Yes}} ? || {{Yes}}? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Middleware || qtopia-x11 || gsmd/neod || FSO || FSO || qtopia-x11 || Qt Extended || FSO || FSO || ??<br />
|-<br />
| [[Java]] || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes}} || ?? || {{Yes|CacaoVM, JamVM}} || ?? || ??<br />
|-<br />
| [[Python]] || {{Yes}} || {{Yes}} || {{Yes}} || {{yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| [[Mono]] || {{Yes}} (1) || {{Yes}} (1) || ?? || {{no}} || ?? || ?? || {{Yes}} (1) || ?? || ??<br />
|-<br />
| [[Ruby]] || {{Yes}} || ?? || ?? || ?? || ?? || ?? || {{Yes}} (1) || {{Yes}} (1) || ??<br />
|}<br />
<br />
=== Образы ===<br />
Latest and stable combinations for Neo FreeRunner gta02<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
| || OM || FDOM || Qt Extended || Android<br />
|-<br />
| current bootloader || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/distro/releases/Om2008.9/ OM daily] version [http://downloads.openmoko.org/] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] ||<br />
|-<br />
| future bootloader || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu ||<br />
|-<br />
| splash || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz ||<br />
|-<br />
| kernel || [[Linux]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest uImage.bin || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest uImage-gta02-mwester-stable.bin or from [http://downloads.tuxfamily.org/3v1deb/openmoko/ treviño] latest uImage-gta02-stable-3v1n0.bin || [[Linux]] see [[Qt_Extended]] page for latest version || [[Linux]] from [http://koolu.org/releases/ koolu]<br />
|-<br />
| modules || ? || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz ||<br />
|-<br />
| rootfs || [[Main_Page|OM]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest rootfs.jffs2 || [[FDOM]] from [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/ TuxBrain] version [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/Fat_and_Dirty_OM.200809_20081023.rootfs.jff2 200809_20081023] || See [[Qt_Extended]] for latest rootfs || [[Android]] from [http://koolu.org/releases/ koolu]<br />
|}<br />
<br />
Примечания:<br />
<br />
(1) работает, но требует установки дополнительного ПО<br />
<br />
(2) непригодно к использованию из-за отсутствия на клавиатуре некоторых символов. Впрочем, [[Switching_Keyboards#Matchbox_keyboard|есть решения]].<br />
<br />
(*) нестабильно<br />
<br />
== Quick download page ==<br />
<br />
[[Download]]<br />
<br />
== См. также ==<br />
<br />
* Заметка Мики Лауэра (Mickey Lauer) "[http://www.vanille-media.de/site/index.php/2008/06/28/gtk-asu-fso-tmtla/ GTK, ASU, FSO, TMTLA!]" описывает различия между дистрибутивами Om 2007.2, ASU и FSO.<br />
<br />
* [[Community Updates|Свежие новости и советы]]<br />
<br />
* [[Kustomizer]]&nbsp;&mdash; как сделать приличный телефон на основе 2008.12<br />
<br />
[[Category:Distributions| ]]</div>Phantomhttp://openmoko.org/wiki/Distributions/ruDistributions/ru2009-06-01T04:28:59Z<p>Phantom: A brand new Russian translation (the existing one was obsolete).</p>
<hr />
<div>{{Languages|Distributions}}<br />
<br />
{|align=left<br />
|__TOC__<br />
|}<br />
<br />
== Предисловие ==<br />
Дистрибутивы Openmoko предназначены для использования на различных портативных устройствах, но в первую очередь&nbsp;&mdash; на смартфонах Openmoko [[GTA01:Neo 1973|Neo 1973]] и [[Neo FreeRunner]]. Эти дистрибутивы относятся к семейству GNU/Linux и представляют собой полные версии операционных систем и прикладного ПО. Вы можете установить на ваше устройство любой дистрибутив или даже сделать систему с двойной загрузкой. Загрузить дистрибутив можно в разделе [[Download/ru]], инструкции по установке приведены в разделе [[Flashing the Neo FreeRunner/ru]].<br />
<br />
Добавим, что дистрибутивы Openmoko работают на [[Supported devices/ru|ряде других устройств]], а также ряд других дистрибутивов работает на смартфонах Openmoko.<br />
<br />
=== Выбор дистрибутива ===<br />
В настоящее время наиболее широко используются [[Om 2008]] (предустанавливается производителем на Neo FreeRunner) и [[Stable Hybrid Release|SHR]] (см. [http://spreadsheets.google.com/pub?key=p2ZQdcRSVg9XfYLwBVsZicg]).<br />
<br />
В будущем основным дистрибутивом станет [[Om 2009]]. В настоящий момент ведётся разработка, выпуск ожидается в июне 2009 года. Подобно дистрибутиву SHR, Om 2009 построен на основе [[freesmartphone.org]].<br />
<br />
Кроме этого, существует ряд других дистрибутивов, таких как [[Qt Extended]] (стабильные базовые функции), Google [[Android]] и несколько дистрибутивов, основанных на [[Debian]].<br />
<br />
{| class="wikitable" style="float:right;width:200px;background-color:#FF6600;text-align:center;border-collapse:collapse;font-weight:bold"<br />
|<font color=white>Distributions</font><br />
|-<br />
! style='background-color:#333333;color:#FFFFFF'|<br />
<div align=left><br />
* <font color='#BBBBBB'>Openmoko (официальные)</font><br />
** [[Om2009]]<br />
** [[Om 2008.12 Update]]<br />
** [[Om 2008.9 Update]]<br />
** [[Om 2008.8]]<br />
** [[Om 2007.2]]<br />
** [[OpenmokoFramework|FSO]]<br />
* <font color='#BBBBBB'>Сообщество</font><br />
** [[SHR]]<br />
** [[FDOM]]<br />
* <font color='#BBBBBB'>Другие</font><br />
** [[Qtopia]]<br />
** [[Debian]]<br />
** [[Gentoo]]<br />
** [[Android]]<br />
** [[Hackable:1]]<br />
** [[neovento]]<br />
</div><br />
|-<br />
|}<br />
<br />
=== Замечания ===<br />
<br />
* Слово "стабильный" (stable) в мире FreeRunner означает не то же самое, что в мире Debian.<br />
* Большинство дистрибутивов используют одни и те же загрузчики ядра, ядро, драйверы и аппаратное обеспечение. Следовательно, низкоуровневые аппаратные проблемы одинаково проявляются в разных дистрибутивах. Самое свежее ПО, как правило, содержит наибольшее количество исправленных старых проблем, но имеет также ряд новых.<br />
* Большинство дистрибутивов имеет свои собственные репозитории пакетов. Пытаться установить пакеты из чужого репозитория&nbsp;&mdash; ПЛОХАЯ ИДЕЯ!<br />
* Переход от одного дистрибутива к другому, как правило, не испытан, поэтому изменение пути к репозиторию и последующее обновление системы, скорее всего, приведёт к поломке множества пакетов, а то и к невозможности загрузить систему. Рекомендованный способ смена дистрибутива&nbsp;&mdash; перезаписывать целиком всю файловую систему с помощью [[dfu-util]] (напомним, возможен также вариант с альтернативной загрузкой с карты памяти или из сети (?).<br />
<br />
== Официальные выпуски Openmoko ==<br />
<br />
Предоставляемые компанией Openmoko Inc. дистрибутивы построены на основе различных ветвей [[OpenEmbedded]].<br />
<br />
=== Серия Om ===<br />
<br />
* '''[[Om 2009]]''' станет принципиально новым дистрибутивом, он не является развитием [[Om 2008.12 Update]]. '''В настоящее время Om 2009 находится в стадии разработки и никоим образом не может считаться готовым к использованию.''' Om 2009 построен на каркасе [http://freesmartphone.org freesmartphone.org] версии 5.5.<br />
<br />
{{Main|Om 2009}}<br />
<br />
* '''[[Om 2008.12 Update]]'''&nbsp;&mdash; это второе обновление Om 2008, следующее после выпуска ''Om 2008.9''.<br />
<br />
{{Main|Om 2008.12 Update}}<br />
<br />
* '''[[Om 2008.9 Update]]'''&nbsp;&mdash; это первое обновление Om 2008, следующее после выпуска ''Om 2008.8''. Для всех более старых версий Openmoko рекомендуется обновление, как минимум, до этой версии, которая всё ещё далека от совершенства, но включает ряд существенных исправлений, повышающих общую стабильность. Кроме этого, в новой версии изменён экран загрузки. Каких-либо изменений в наборе предоставляемых приложений нет. Нетребовательные пользователи могут счесть данную версию вполне сносной для бытового использования устройства в качестве телефона.<br />
<br />
{{Main|Om 2008.9 Update}}<br />
<br />
* '''[[Om 2008.8]]''' выпущен в августа 2008 года в качестве замены 2007.2. До момента выпуска данный дистрибутив имел кодовое имя ASU (April/August Software Update); это имя сохранилось в системе контроля версий как имя соответствующей ветви. Эта версия объединяет телефонный стек [http://trolltech.com/products/qtopia Qtopia] с набором новых приложений Openmoko, основанных на Enlightenment Foundation Libraries ([[EFL_Documentation|EFL]]). Qtopia является более зрелым продуктом, чем GNOME Mobile stack, и стандартные приложения (номеронабиратель, контакты, калькулятор, календарь) работают лучше, чем в 2007.2. Qtopia, использованная в версии 2008.8, перенесена на X11, в отличие от стандартной Qtopia, использующей фреймбуфер. Это изменение позволяет приложениям, не основанным на Qt, использовать экран совместно с приложениями на Qt. Данный выпуск имеет условную версию .0 и имеет множество нерешённых низкоуровневых проблем (управление питанием, звук, WiFi и т.&nbsp;п.).<br />
<br />
{{Main|Om 2008.8}}<br />
<br />
* '''[[Om 2007.2]]''' был первым дистрибутивом, созданным Openmoko. Интерфейс был разработан для управления пальцем (оптимизирован для разрешения 285 ppi) и выполнен в ярких оранжевых тонах. В нём использовался телефонный стек GTK+ stack, являющийся частью платформы [http://www.gnome.org/mobile/ GNOME Mobile]. В настоящее время данный дистрибутив считается устаревшим и более не поддерживается ни Openmoko Inc, ни OpenedHand. <br />
<br />
{{Main|Om 2007.2}}<br />
<br />
=== Серия FSO ===<br />
<br />
'''FSO'''&nbsp;&mdash; это аббревиатура, образованная от названия FreeSmartphone.Org. Openmoko работает над стабильной поддержкой системных служб. Основные усилия сфокусированы на стабильных высокоуровневых службах, доступных для любого языка программирования или пользовательского интерфейса, имеющего поддержку [http://dbus.freesmartphone.org/ dbus]. Этот каркас будет использоваться в следующих выпусках Openmoko. FSO является, по сути, промежуточным программным обеспечением (middleware), но если совместить его с ПО нижнего (bootloader+kernel) и верхнего (телефонные приложения) уровней, получится работающий дистрибутив. По такой схеме строятся дистрибутивы серии FSO (так называемые Milestones). <br />
<br />
* '''FSO Milestone V''' был выпущен под лозунгом 'Calling All Stations'. В качестве телефонного приложения используется Zhone; это простое приложение, написанное на Python и совмещающее номеронабиратель и главный экран, которое было разработано больше для испытания возможностей FSO. Несмотря на симпатичную реализацию, Zhone недостаточно хорошо протестирован. Подробности см. [http://wiki.openmoko.org/wiki/OpenmokoFramework/Status_Update_6 Status Update 6]. Получить образ дистрибутива можно по адресу: http://downloads.freesmartphone.org/fso-stable/milestone5.1/ . <br />
<br />
{{Main|FSO}}<br />
<br />
== Дистрибутивы сообществ ==<br />
<br />
=== SHR&nbsp;&mdash; Stable Hybrid Release ===<br />
<br />
SHR&nbsp;&mdash; это дистрибутив, разрабатываемый сообществом. Он содержит некоторые приложения, основанные на EFL и использующие (?) FSO. На данный момент доступны простой номеронабиратель, приложения для работы с сообщениями и контактами (написанные на Си), а также управление настройками, написанное на Python. На 12 апреля 2009 года не существовало стабильной версии данного дистрибутива, поскольку команда разработки не считает его доведённым до должного уровня. Тем не менее, вы можете получить образ дистрибутива [http://shr.bearstech.com/shr-testing на сборочном сервере SHR].<br />
<br />
{{Main|Stable Hybrid Release}}<br />
<br />
=== FDOM (FAT and Dirty Openmoko) ===<br />
<br />
[[FDOM]]&nbsp;&mdash; это дистрибутив, основанный на последнем выпуске официального Openmoko и включающий множество исправлений и дополнительных приложений. Сохранена возможность обновлять ПО из официального репозитория.<br />
<br />
{{Main|FDOM}}<br />
<br />
=== Не основанные на Openmoko ===<br />
<br />
Далее коротко описаны альтернативные дистрибутивы, не основанные на Openmoko (или OE).<br />
<br />
==== Qt Extended ====<br />
Qt Extended имеет несколько имён. Сейчас он называется <b>Qt Extended Improved</b>. Сообщество Openmoko-based (?) развивает Qt Extended Improved как проект Free Software. Qt Extended Improved построен на основе Qt Extended/Qtopia/Qt, разработке Qt Software/Trolltech. Qt Extended Improved предоставляет надёжный телефонный стек, веб-браузер, основанный на webkit, и другие функции, характерные для смартфонов.<br />
<br />
5 марта 2009 года Qt Software выпустила Qt Extended 4.4.3. 3 марта 2009 Qt Software объявила, что Qt Extended 4.4.3 будет последним выпуском продукта. До версии 4.3, Qt Extended назывался Qtopia.<br />
<br />
{{Main|Qtopia / Qt Extended on FreeRunner}}<br />
<br />
==== Debian ====<br />
Debian&nbsp;&mdash; это &laquo;универсальная операционная система&raquo;. Debian содержит тысячи и тысячи пакетов (хотя большинство разработаны для серверов и настольных машин). По словам Йохима Брейтнера из [http://wiki.debian.org/Teams/DebianFSO команды pkg-fso], (известного как nomeata, Joachim "nomeata" Breitner), Debian&nbsp;&mdash; это не дистрибутив в том смысле, как это понимается для Openmoko, но, скорее, альтернативная базовая система, отличная от предоставляемых Openmoko. На данный момент доступно ПО из набора FSO, но есть также надежда на получение Stable Hybrid Release. Так что сегодня можно считать Debian альтернативным способом установки FSO, занимающим больше места, но предоставляющим больше разнообразного ПО.<br />
<br />
{{Main|Debian}}<br />
<br />
==== [[Gentoo ]]====<br />
Gentoo&nbsp;&mdash; это воплощение выбора. Это становится ясным несколько раз ещё во время установки: вы выбираете, что вы желаете скомпилировать самостоятельно, как вы желаете установить Gentoo, какую службу для ведения системного журнала вы желаете использовать и т. д. Gentoo&nbsp;&mdash; быстрая и современная система с понятным и гибким устройством, построенная на открытом ПО. Менеджер пакетов Portage, используемый в Gentoo, написан на Python, что даёт возможность легко модифицировать его при необходимости. Пакетная система Gentoo использует исходные коды (хотя заранее собранные двоичные пакеты тоже поддерживаются), и настройка системы сводится к редактированию текстовых файлов. Другими словами, полная и повсеместная открытость.<br />
<br />
{{Main|Gentoo}}<br />
<br />
==== Android ====<br />
[http://code.google.com/android/ Android]&nbsp;&mdash; это надстройка ПО для мобильных устройств, разрабатываемая [http://www.openhandsetalliance.com/ The Open Handset Alliance.] Openmoko полностью поддерживает Android на Freerunner.<br />
<br />
Android уже доведён до состояния, в котором его можно использовать на FreeRunner в качестве обычного телефона. Тем не менее, существует ряд недостатков. Подробности приведены в соответствующем разделе.<br />
<br />
{{Main|Android}} См. также домашнюю страницу [http://wiki.openmoko.org/wiki/User:Seanmcneil3 Sean McNeil].<br />
<br />
====Slackware====<br />
<br />
С версии 12.2, Slackware официально поддерживается Neo Freerunner.<br />
<br />
[http://armedslack.org/]<br />
<br />
<br />
==== Hackable:1====<br />
<br />
Hackable1&nbsp;&mdash; это дистрибутив для устройств, допускающих вмешательство пользователя (как Freerunner), поддерживаемый сообществом. Он основан на Debian и Om 2007.2 (который более не поддерживается Openmoko), и развивается в направлении GNOME mobile platform.<br />
<br />
{{Main|Hackable:1}}<br />
<br />
====[[neovento]]====<br />
<br />
neovento (бывший FYP)&nbsp;&mdash; это дистрибутив, основанный на [[Debian|Debian on Freerunner]] и использующий [http://lxde.org/ LXDE] и [[Zhone]] на верхнем уровне. Является проектом сообщества [http://freeyourphone.de FreeYourPhone.de].<br />
<br />
{{Main|neovento}}<br />
<br />
====[[OpenWRT]]====<br />
<br />
OpenWRT Development Trunk также поддерживает Freerunner. [http://www.openwrt.org/] <br />
<br />
==== Другие / не выпущенные ====<br />
<br />
* The [http://www.neopwn.com/software.php NeoPwn] network auditng system's core is a modified Linux 2.6.24 kernel, with cross-compiled module driver support for the numerous compatible addon devices running on a FULL Debian (ARMEL) operating system. The filesystem has been optimized for performance and size and includes the NeoPwn menu system and several GUI dialogs for hardware control and attack automation. ''Status: Unknown, the GPL requires source code to be distributed only to customers''.<br />
* [http://runningbear.org/trac RunningBear] is an innovative, yet free and open-source Operating System for hackable devices driven by Bearstech. Lightweight, Portable, Secure, Friendly and Useful. ''Status: In development''.<br />
* [http://pokylinux.org/ Poky] and Sato, by OpenedHand/Intel. An open source platform build tool derived from OE. It is a complete software development environment for the creation of Linux devices. It enables you to design, develop, build, debug, and test a complete, modern, software stack using Linux, the X Window System and GNOME Mobile based application frameworks for both ARM and x86 based platforms. ''Status: The "Nightly Build" Image works fine on Neo Freerunner, but phone functionality doesn't.''<br />
* [http://pyneo.org/ PyNeo] pyneo is a stack for mobile devices excessivly using dbus, glib and evas. pyneo can be considered FSO milestone 0. Afterwards, FSO evolved into an own project with different goals. ''Status: still active, ask around on #pyneo.org ''<br />
* [http://www.quantum-step.com/ mySTEP] by Openmoko distributor Golden Delicious Computers is based on GNUstep and brings a Objective-C API to the Neo. Core GUI frameworks are "Foundation" & "AppKit". It has been shown on FOSDEM 2008, LinuxTag 2008 and SYSTEMS 2008 to run on the Neo 1973. If someone reengineers UIKit, (open) source code compatibility to iPhone apps appears achievable. ''Status: it does not have its own kernel so a Freerunner distribution waits for a solid basis and an arm-linux-gnueabi toolchain that runs natively on Mac OS X is currently lacking.''<br />
<br />
== Возможности различных дистрибутивов ==<br />
<br />
В целом дистрибутивы отличаются в одной или нескольких компонентах из следующего перечня:<br />
* Экран загрузки системы. Чисто декоративное отличие.<br />
* Загрузчик (bootloader). Теоретически, любая версия ''uboot'' может быть использована с любым дистрибутивом. В будущем ''uboot'' будет заменён на ''Qi''.<br />
* Ядро. В разных дистрибутивах используются ядра GNU/Linux версий 2.6.24, 2.6.26 и 2.6.28. Некоторые ядра содержат также встроенные модули; в других случаях модули собираются отдельно, и тогда они могут быть как в одном пакете с ядром, так и отдельно.<br />
* Промежуточное ПО (middleware): демоны, управляющие GSM и GPS, аудиосистема, хранение личных данных и т. п. Qt и Android используют собственные подсистемы, FreeSmartphone.Org (FSO) развивается в направлении стандартного Free Software.<br />
* Драйвер дисплея. Оригинальная система ''Qt Extended'' использовала framebuffer, но большинство других дистрибутивов сегодня используют ''X11''.<br />
* Библиотеки и общий каркас (графический интерфейс, виджеты и т. п.): EFL, Qt, Gtk+, Java...<br />
* Основные функции телефона: голосовые вызовы, SMS, будильник...<br />
* Приложения смартфона: GPS, мультимедиа, игры, веб-браузер...<br />
* Приложения Open source: дополнительные игры, научные приложения и всё остальное...<br />
<br />
=== Аппаратная поддержка ===<br />
<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTA01 || ?? || ?? || ?? || {{Yes}} || ?? || {{Yes}} || {{Yes}} || ?? || ??<br />
|-<br />
| GTA02 || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Connectivity ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Telephony || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| SMS || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| [[GPRS]] || Not through UI || Not through UI|| Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || Not through UI || {{Yes}}<br />
|-<br />
| [[WiFi]] || {{Yes}} (*) || {{Yes}} || Not through UI || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || Not through UI || {{Yes}}<br />
|-<br />
| VoIP || ?? || ?? || ?? || ?? || {{Yes}} || {{Yes}} (1) || {{Yes}} || ?? || {{no}}<br />
|-<br />
| Bluetooth || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
| GPS (1) || {{Yes}} (1) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}} (1) || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Питание ===<br />
<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|Om 2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Suspend || {{Yes}} || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Resumes on Event || ?? || ?? || ?? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Functions after Resume || {{Yes}} || ?? || ?? || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Интерактивность ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|Om2008.8 !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Stylus friendly || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Finger friendly || Partially || Partially || Partially || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}}<br />
|-<br />
| Accelerometer || {{Yes}} [[Rotate|(1)]][[Gestures|(1)]] || {{No}} || {{No}} || {{yes}} (1) || {{Yes}} || {{No}} || {{Yes}} || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== ПО ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0" width=100%<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| Terminal || {{Yes}} (1) || Basic (2) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || {{Yes}}<br />
|-<br />
| PIM || {{Yes}} || {{Yes}} || {{No}} || N/A || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || ??<br />
|-<br />
| Phonebook || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Dialer || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Web Browser || {{Yes}} (1) || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| Mail Client || {{Yes}} || ? || ? || ? || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
| XMPP Client || {{Yes}} [[Instant Messaging|(1)]] || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || || ??<br />
|-<br />
| Media Player || {{Yes}} (1) || {{Yes}} || ? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}<br />
|-<br />
|}<br />
<br />
=== Toolkits / Runtimes ===<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
! width=10%| !! width=8%|[[Om 2008.8]] !! width=8%|2007.2 !! width=8%|FSO !! width=8%|SHR !! width=8%|FDOM !! width=8%|Qt Extended !! width=8%|Debian !! width=8%|Gentoo !! width=8%|Android<br />
|-<br />
| GTK+ || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Qt/Qt Extended || {{Yes}} || {{No}} || {{Yes}} ? || {{Yes}}? || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| Middleware || qtopia-x11 || gsmd/neod || FSO || FSO || qtopia-x11 || Qt Extended || FSO || FSO || ??<br />
|-<br />
| [[Java]] || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes}} || ?? || {{Yes|CacaoVM, JamVM}} || ?? || ??<br />
|-<br />
| [[Python]] || {{Yes}} || {{Yes}} || {{Yes}} || {{yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || ??<br />
|-<br />
| [[Mono]] || {{Yes}} (1) || {{Yes}} (1) || ?? || {{no}} || ?? || ?? || {{Yes}} (1) || ?? || ??<br />
|-<br />
| [[Ruby]] || {{Yes}} || ?? || ?? || ?? || ?? || ?? || {{Yes}} (1) || {{Yes}} (1) || ??<br />
|}<br />
<br />
=== Образы ===<br />
Latest and stable combinations for Neo FreeRunner gta02<br />
{|class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
| || OM || FDOM || Qt Extended || Android<br />
|-<br />
| current bootloader || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/distro/releases/Om2008.9/ OM daily] version [http://downloads.openmoko.org/] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/repository/experimental/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] ||<br />
|-<br />
| future bootloader || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu ||<br />
|-<br />
| splash || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz ||<br />
|-<br />
| kernel || [[Linux]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest uImage.bin || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest uImage-gta02-mwester-stable.bin or from [http://downloads.tuxfamily.org/3v1deb/openmoko/ treviño] latest uImage-gta02-stable-3v1n0.bin || [[Linux]] see [[Qt_Extended]] page for latest version || [[Linux]] from [http://koolu.org/releases/ koolu]<br />
|-<br />
| modules || ? || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz ||<br />
|-<br />
| rootfs || [[Main_Page|OM]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest rootfs.jffs2 || [[FDOM]] from [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/ TuxBrain] version [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/Fat_and_Dirty_OM.200809_20081023.rootfs.jff2 200809_20081023] || See [[Qt_Extended]] for latest rootfs || [[Android]] from [http://koolu.org/releases/ koolu]<br />
|}<br />
<br />
Примечания:<br />
<br />
(1) работает, но требует установки дополнительного ПО<br />
<br />
(2) непригодно к использованию из-за отсутствия на клавиатуре некоторых символов. Впрочем, [[Switching_Keyboards#Matchbox_keyboard|есть решения]].<br />
<br />
(*) нестабильно<br />
<br />
== Quick download page ==<br />
<br />
[[Download]]<br />
<br />
== См. также ==<br />
<br />
* Заметка Мики Лауэра (Mickey Lauer) "[http://www.vanille-media.de/site/index.php/2008/06/28/gtk-asu-fso-tmtla/ GTK, ASU, FSO, TMTLA!]" описывает различия между дистрибутивами Om 2007.2, ASU и FSO.<br />
<br />
* [[Community Updates|Свежие новости и советы]]<br />
<br />
* [[Kustomizer]]&nbsp;&mdash; как сделать приличный телефон на основе 2008.12<br />
<br />
[[Category:Distributions| ]]</div>Phantomhttp://openmoko.org/wiki/Openmoko_supported_devices/ruOpenmoko supported devices/ru2009-05-29T06:32:00Z<p>Phantom: The Languages template is fixed.</p>
<hr />
<div>{{Languages|Supported devices}}<br />
<br />
'''Openmoko''' работает на разных устройствах. Следующий перечень содержит устройства, которые хотя бы частично поддерживаются:<br />
<br />
* [[Neo1973|Neo 1973]] и [[Neo FreeRunner|Neo FreeRunner]]&nbsp;&mdash; наилучшая поддержка, референсная (?) платформа<br />
<br />
* [[HXD8]]&nbsp;&mdash; некоторые части ПО Openmoko работают на этой GPS-системе<br />
<br />
* Treo 650&nbsp;&mdash; [http://blog.mikeasoft.com/2007/07/01/openmoko-on-a-treo-650/ развивается, но пока хромает] (?)<br />
<br />
* Palm TX&nbsp;&mdash; есть некоторые проблемы: [http://www.palminfocenter.com/news/9371/openmoko-running-on-a-palm-tx/ 1], [http://hackndev.com/node/701 2]<br />
<br />
* Motorola E680i&nbsp;&mdash; [http://www.motorolafans.com/forums/showthread.php?t=10763 подробности]<br />
<br />
* Motorola A780&nbsp;&mdash; [http://www.vanille-media.de/images/openmoko-on-a780.jpg OM2007.2]<br />
<br />
* Motorola A1200E&nbsp;&mdash; [http://blog.myspace.cn/index.cfm?fuseaction=blog.view&friendID=1303227936&blogID=304760192 Openmoko 2007.2]<br />
<br />
* [http://en.wikipedia.org/wiki/HTC_Universal HTC Universal]&nbsp;&mdash; работает номеронабиратель [http://linuxtogo.org/~htcpxa/htcuniversal/index.html code:linuxtogo] [http://www.handhelds.org/moin/moin.cgi/UniversalStatus status:handhelds.org]<br />
<br />
* [http://en.wikipedia.org/wiki/HTC_Magician HTC Magician]&nbsp;&mdash; работает номеронабиратель [http://linuxtogo.org/~htcpxa/htcmagician/index.html code:linuxtogo] [http://www.handhelds.org/moin/moin.cgi/Magician status:handhelds.org]<br />
<br />
* [http://www.etencorp.com/products/Communication/G500.php E-TEN G500]&nbsp;&mdash; работает номеронабиратель, однако есть [http://article.gmane.org/gmane.comp.handhelds.openmoko.community/9306 проблемы с разрешением экрана]<br />
<br />
* HP iPAQ hx4700&nbsp;&mdash; [http://dominion.kabel.utwente.nl/koen/cms/openmoko-running-on-an-ipaq подробности]<br />
<br />
== См. также ==<br />
<br />
* Вы можете запускать приложения Openmoko [[How_to_run_Openmoko_Apps_on_PC | на вашем настольном ПК с Linux]]<br />
<br />
* [[Другие ОС]]<br />
<br />
<br />
[[Category:Hardware ]]<br />
[[Category:Phones| ]]<br />
[[Category:Basic End User]]</div>Phantomhttp://openmoko.org/wiki/Openmoko_supported_devices/ruOpenmoko supported devices/ru2009-05-29T06:30:26Z<p>Phantom: The first Russian version (translation of the original English page).</p>
<hr />
<div>{{Languages|Устройства, поддерживающие Openmoko}}<br />
<br />
'''Openmoko''' работает на разных устройствах. Следующий перечень содержит устройства, которые хотя бы частично поддерживаются:<br />
<br />
* [[Neo1973|Neo 1973]] и [[Neo FreeRunner|Neo FreeRunner]]&nbsp;&mdash; наилучшая поддержка, референсная (?) платформа<br />
<br />
* [[HXD8]]&nbsp;&mdash; некоторые части ПО Openmoko работают на этой GPS-системе<br />
<br />
* Treo 650&nbsp;&mdash; [http://blog.mikeasoft.com/2007/07/01/openmoko-on-a-treo-650/ развивается, но пока хромает] (?)<br />
<br />
* Palm TX&nbsp;&mdash; есть некоторые проблемы: [http://www.palminfocenter.com/news/9371/openmoko-running-on-a-palm-tx/ 1], [http://hackndev.com/node/701 2]<br />
<br />
* Motorola E680i&nbsp;&mdash; [http://www.motorolafans.com/forums/showthread.php?t=10763 подробности]<br />
<br />
* Motorola A780&nbsp;&mdash; [http://www.vanille-media.de/images/openmoko-on-a780.jpg OM2007.2]<br />
<br />
* Motorola A1200E&nbsp;&mdash; [http://blog.myspace.cn/index.cfm?fuseaction=blog.view&friendID=1303227936&blogID=304760192 Openmoko 2007.2]<br />
<br />
* [http://en.wikipedia.org/wiki/HTC_Universal HTC Universal]&nbsp;&mdash; работает номеронабиратель [http://linuxtogo.org/~htcpxa/htcuniversal/index.html code:linuxtogo] [http://www.handhelds.org/moin/moin.cgi/UniversalStatus status:handhelds.org]<br />
<br />
* [http://en.wikipedia.org/wiki/HTC_Magician HTC Magician]&nbsp;&mdash; работает номеронабиратель [http://linuxtogo.org/~htcpxa/htcmagician/index.html code:linuxtogo] [http://www.handhelds.org/moin/moin.cgi/Magician status:handhelds.org]<br />
<br />
* [http://www.etencorp.com/products/Communication/G500.php E-TEN G500]&nbsp;&mdash; работает номеронабиратель, однако есть [http://article.gmane.org/gmane.comp.handhelds.openmoko.community/9306 проблемы с разрешением экрана]<br />
<br />
* HP iPAQ hx4700&nbsp;&mdash; [http://dominion.kabel.utwente.nl/koen/cms/openmoko-running-on-an-ipaq подробности]<br />
<br />
== См. также ==<br />
<br />
* Вы можете запускать приложения Openmoko [[How_to_run_Openmoko_Apps_on_PC | на вашем настольном ПК с Linux]]<br />
<br />
* [[Другие ОС]]<br />
<br />
<br />
[[Category:Hardware ]]<br />
[[Category:Phones| ]]<br />
[[Category:Basic End User]]</div>Phantom