Na DVD dodaném k mini2440 jsou k dispozici image OS Linux, WinCE a uCos. Na internetu je k nalezení i image OS Android. Systém uCos mi nic neříká a Android je ještě v plenkách, proto nemám žádnou motivaci k jejich zkoušení. Protože však stále nejsem rozhodnut, zda pro ten přehrávač použiju Linux nebo WinCE, bude ke změnám image docházet zřejmě poměrně často.
Co je potřeba:
Pro změnu image jsou zapotřebí jen sériový a USB-kabely. Oba jsou obsaženy v dodávce, já však měl ze začátku tu smůlu, že USB-kabel byl "nějaký divný" - elektricky je v pořádku, dokonce jiné periferie přes něj pracují, ale navázat spojení mezi PC a mini2440 se mi podařilo až po výměně kabelu za jiný, s feritem. Ono i s USB ovladačem to není jednoduché - než se mi to podařilo zprovoznit, tak jsem vyzkoušel asi tři ovladače (jeden byl na přiloženém DVD, jeden byl stažen z webu esky-sh.com a ten třetí někde z friendlyarm.net), bohužel už nevím, který z nich byl funkční, takže postup nepopíšu.
Je důležité připojovat mini2440 s přepínačem NOR/NAND v poloze NOR. Sice při tomto nastavení nedochází k automatickému bootování OS, ale jedině takto se dá uploadovat image. Také je zapotřebí propojit mini2440 s PC oběma kabely - přes RS232 se zadávají příkazy, přes USB pak uploadují data.
Vlastní flashování se provádí pomocí programu dnw.exe. Po jeho spuštění by se v horním okraji měl objevit text [COM:x][USB:OK]. To "OK" u USB je důležité - pokud zde zůstane text USB:x, je něco prohnilého s ovladačem. Také se tento program moc nemá rád s běžícím ActiveSync (vyjmutí PDAčka z kolébky nestačilo, musel jsem v ActiveSync zakázat USB-komunikaci). V dalším kroku se v menu "SerialPort" volbou "Connect" otevře spojení přes sériový port (text COM:x se změní na COM1:115200). A buď již v tomto okamžiku, nebo po stisknutí ENTER, se zobrazí nabídka zavaděče (BIOS).
##### FriendlyARM BIOS 2.0 for 2440 #####
[x] format NAND FLASH for Linux
[v] Download vivi
[k] Download linux kernel
[y] Download root_yaffs image
[a] Absolute User Application
[n] Download Nboot for WinCE
[l] Download WinCE boot-logo
[w] Download WinCE NK.bin
[d] Download & Run
[z] Download zImage into RAM
[g] Boot linux from RAM
[f] Format the nand flash
[b] Boot the system
[s] Set the boot parameters
[u] Backup NAND Flash to HOST through USB(upload)
[r] Restore NAND Flash from HOST through USB
[q] Goto shell of vivi
Enter your selection:
Zadávání příkazů přes RS232 a odesílání dat přes USB jsou na sobě nezávislé. Já jsem například použil pro zasílání příkazů přes RS232 program Putty (rychlost nastavit na 115200) a na odesílání dat ten program dnw.exe. Ovšem jenom proto, že dnw.exe neumožňuje ze sériové konzole cut&paste a mně se nechtělo ukázkové texty opisovat.... Pro linux však existuje program s3c210_boot_usb, který umí jen upload potřebných souborů přes USB a zde se bez samostatné sériové konzole neobejdeme.
Zálohování původního image:
V BIOSu mini2440 je sice volba "[u] Backup NAND Flash to HOST through USB(upload)", ale autoří mají zřejmě smysl pro humor - po jejím výběru se dozvime "Use dnw.exe to receive backup". Takže pro backup (ale i pro restore) se v programu dnw.exe zvolí v nabidce menu "USB Port" a zde je již nabídka "Backup NANDFlash to File". Jak záloha, tak i restore je i přes USB poměrně pomalá a trvá několik minut.
Instalace vybraného OS vždy začíná příkazrm "format NAND-Flash". Toho se není potřeba v žádném případě obávat, protože BIOS i zavaděč jsou uloženy v paměti NOR-Flash. Pokud tedy dojde k nějakému problému během formátování nebo před nahráním OS, stačí reset a může se pokračovat (ověřeno prakticky - když mi napájecí kabel uvázl za kolečko od židle a já vstával od stolu....).
Nahrání image s linuxem:
Image linuxu se překvapivě nachází na dodaném DVD v adresáři /images/linux :-) Jsou zde umístěny i další potřebné soubory. Zavaděč Supervivi i file-systém zde jsou ve verzích jak pro starší 64MB verzi, tak i pro novější 128M verzi. A kernel je zde hned v 5 variantách dle připojeného displeje. Já mám verzi 128MB a displej 7", takže i ukázkovou instalaci budu uvádět pro tuto kombinaci.
Telegraficky je postup následující:
x
v supervivi-128M
k zImage_A70
y root_qtopia-128M.img
b
Nyní k jednotlivým krokům. Volba [x] provede formát paměti NAND-Flash a provede i rozdělení oddílů (partition). V následujících ukázkách zde bude jen text za poslední volbou menu ("Enter your selection")
Enter your selection: x
Found block size = 0x00020000
Erasing... ... done
Writing... ... done
Written 49152 bytes
Saved vivi private data
Následuje nahrání Supervivi. Nevím, zda je to nutné, já jsem na to jednou zapoměl a vše startovalo tak, jak mělo... V každém případě je zavaděč Supervivi nahrán stejně ještě jednou v NOR-Flash, takže pokud by vznikl nějaký problém, vždy je možnost nastartovat a opravit z NOR.
Enter your selection: v
USB host is connected. Waiting a download.
Now, Downloading [ADDRESS:30000000h,TOTAL:253922]
RECEIVED FILE SIZE: 253922 (247KB/S, 1S)
Downloaded file at 0x30000000, size = 253912 bytes
Found block size = 0x00040000
Erasing... ... done
Writing... ... done
Written 253912 bytes
Dalším krokem je nahrání kernelu. Zde je zapotřebí vybrat správný kernel dle připojeného displeje.
Enter your selection: k
USB host is connected. Waiting a download.
Now, Downloading [ADDRESS:30000000h,TOTAL:2022354]
RECEIVED FILE SIZE: 2022354 (987KB/S, 2S)
Downloaded file at 0x30000000, size = 2022344 bytes
Found block size = 0x00200000
Erasing... ... done
Writing... ... done
Written 2022344 bytes
Posledním krokem je nahrání file-systému. Standardně je dodáván file-systém s rozhraním Qtopia, i když jsem na internetu zahlédl i jiná rozhraní - zatím jsem je nezkoušel. Ovšem trochu problém je v tom, že i když je u image rozlišována anglická a čínská varianta, po nahrání jsou obě v čínštině. Nikde jsem zatím nenalezl opravdu anglickou variantu. Někde však existovat musí, protože počítač mini2440 ji má v sobě implicitně. Proto zde znovu zdůrazňuji nutnost si původní image dobře uložit. File-systém je dodáván ve pro 64MB a 128MB variantu počítače, je zapotřebí vybrat tu správnou. Download tohoto souboru trvá něco přes minutu.
Enter your selection: y
USB host is connected. Waiting a download.
Now, Downloading [ADDRESS:30000000h,TOTAL:58487626]
Downloaded file at 0x30000000, size = 58487616 bytes
Flash params: oobsize = 64, oobblock = 2048, erasesize = 131072, partition size = 131 596288
Erasing and programming NAND with yaffs image
Block erasing(addr/count) --- Block bad(addr/count) --- Block processed/All(%)
--------------------------------------------------------------------------------
0x07fc0000/01002 0x07e40000/00002 01004/01004=100%
Load yaffs OK:
Blocks scanned: 1004, Blocks erased: 1002, Blocks are bad: 2
RECEIVED and Writed FILE SIZE:58487626 (713KB/S, 80S)
Nyní je již možné příkazem [b] linux nabootovat. Pokud chceme automatický boot po zapnutí/resetu, je zapotřebí přepnout přepínač zpět do polohy "NAND".
Po nabootování je zapotřebí nejprve zkalibrovat displej, no a potom nás již přivítá "anglická" verze linuxu s rozhraním Qtopia:
Nahrání image s WIN CE:
Windows CE 5.0 jsou na distribučním DVD v adresáři /images/wince5.0. V podstatě zde platí vše jako pro linux. Takže opět nejprve telegrafický postup:
f
v supervivi-128M
n nboot_A70.bin
w NK_A70_English.bin
Formátování pomocí volby [f] jen jako výsledek vypíše asi 11 řádků teček. Následuje opět zavaděč Supervivi
Enter your selection: v
USB host is connected. Waiting a download.
Now, Downloading [ADDRESS:30000000h,TOTAL:253922]
RECEIVED FILE SIZE: 253922 (247KB/S, 1S)
Downloaded file at 0x30000000, size = 253912 bytes
Found block size = 0x00040000
Erasing... ... done
Writing... ... done
Written 253912 bytes
Následuje bootloader pro WINCE - soubor nboot. Opět zde nutno zvolit variantu dle připojeného displeje.
Enter your selection: n
USB host is connected. Waiting a download.
Now, Downloading [ADDRESS:30000000h,TOTAL:3366]
RECEIVED FILE SIZE: 3366 (3KB/S, 1S)
Downloaded file at 0x30000000, size = 3356 bytes
Erase flash ok: start address = 0x0, size = 0x20000
Write to flash ok: start address = 0x0, size = 0xd1c
Posledním krokem je nahrání vlastních WINCE. Po zadání příkazu [w] se vybere soubor NK_A70_English.bin - ta přípona .bin je důležitá - v adresáři je obsažen i stejnojmenný soubor s příponou .nb0. To sice zatím nevím, k čemu je dobré, ale zato již vím, že s tímto souborem WIN nenastartují.
Enter your selection: w
Clear the free memory
Please send the Image through USB.
Download Address=0x80200000 Length=0x19170d8
........................Done.
Low Level Format: Start = 0x0500, Num = 0x3fb00
..............................................................
.........................................Done.
Create Partition: Start = 0x600, Num = 0xc900.
.............................................Done.
Create Partition: Start = 0xcf00, Num = 0x32800.
...Done.
Start Windows CE...
Nahrání image je poměrně zdlouhavé. Po jeho nahrání se však spustí automatický boot Windows, není tedy jako v linuxu potřeba v menu zadávat [b].
Nyní je však k mini2440 potřeba připojit USB-myš a spustit program pro kalibraci displeje (je možné však i ovládání bez myši, pomocí uživatelských tlačítek).
Nahrání testovacího image:
Image pro otestování funkcí počítače mini2440 se nenahrává do Flash-paměti, ale pouze do RAM. Po resetu je tedy dostupný původní OS. Pro nahrání se v menu Supervivi stiskne [d] . Počítač začne očekávat data. Nyní se v menu "USB port" zvolí "Transmit/Restore" a z dodaného DVD se z adresáře "/image/2440test" vybere správný image (pro 7" displej je to 2400test_A70.bin). Image se nahraje do RAM a spustí - je to velice rychlé. Na displeji mini2400 se zobrazí testovací obrázek a v menu programu dnw.exe se zobrazí nabídka jednotlivých testů.
Image s ucos2
Tento OS je mi neznámý, ale nakonec jsem si přeci jen vyzkoušel, jak vypadá. Při nahrávání není potřeba žádný zavaděč, jen se volbou [a] zvolí "Absolute User Application" a jako image se v adresáři /images/uCos2 vybere správný .bin soubor - opět dle připojeného displeje. Protože zde se nenahrává žádný zavaděč, jediná možnost startu je přepnout přepínač NAND/NOR do polohy NAND a počítač zresetovat. Opět zde však není zkalibrován displej, na uživatelská tlačítka to nereaguje a mně se nechce odpojovat od PC myš, takže si s tímto možná někdy pohraju, ale teď se vracím k vyzkoušeným OS.
Update
dne 23.12.2009 mi přišel mail, že je již pro tento počítač dostupná "předběžná" verze WindowsCE 6.0. Zatím jsem však neměl čas to vyzkoušet, ostatně nyní se věnuji důležitějším projektům, takže stejně je momentálně vývoj s tímto počítačem trošku "u ledu".
Update 2
Tak uz je k mání (5.5.2010) i finální verze WindowcCE 6.0