ասք օփենմոկո֊ի ջիէսէմ ֆիրմուերը փոխելու մասին

Օփենմոկո համայնքի էլ․ փոստի ցանկում ոմն Միքայել Սփեյսֆալկոնը, ով չի օգտագործում իր իսկական անունը համացանցում, յայտարարել է, որ իրեն հաջաղուեց հայթայթել Թեքսաս Ինսթրումենթսից հոսած ջիէսեմ ֆիրմուերի ելատեքստ։ Հաղորդագրութեան թեման է՝ First small steps towards free GSM firmware.

I am very pleased to announce that after many years of searching, I have finally found a copy of TI’s firmware deliverable package for their Leonardo development board, i.e., for their Calypso/Iota/Rita chipset reference platform. It is the package which TI must have given to all of their chipset customers including Nokia, Motorola, Compal, FIC/Openmoko, LG, BenQ and many others, and which was used by all of these companies as the starting point for making their unique proprietary firmwares.

Իրօք, դրանք դեռ առաջին քայլերն են, որպէսզի մենք ունենանք ազատ ԾԱ որ կառավարում է մեր սարքերի ջիէսէմ մոդեմը։

Լաւ նորութիւնն այն է, որ մենք այժմ ունենք, ոչ միայն ֆիրմուերի ելատեքստը, որը, գուցէ լեգալ չի կարելի օգտագործել (որոշ ռեպրեսիվ երկրներում) այլեւ լրիւ ազատ գործիքներ, այն սարքի մէջ լցնելու, ֆլեշելու համար։ Մինչ այդ օփենմոկո օգտագործողները պէտք է կիրառէին Թեքսաս Ինսթրումենթսի սեփականատիրական գործիքը նոյնիսկ ԾԱ֊ն ֆլեշելու համար։

Ահա, ես որոշեցի փորձել, եւ սրանք իմ նոթերն են՝ ինչպէս կոմպիլյացիա անել եւ տեղակայել leo2moko ֆիրմուերը։

Փոխարէնը օգտագործել քրոսկոմպիլյատորներ, եւ նախընտրում եմ կոմպիլացնել ելատեքստը հենց սարքի վրայ, չէ՞ որ օփենմոկոն ազատ սարք է, ու ես կարող եմ տեղադրել կոմպիլյատոր։ Սոյն նոթերը արուած են SHR օպերացիոն համակարգն օգտագործելիս։ Եթէ ձեր համակարգն այլ է, պէտք է մի քիչ փոփոխէք գործընթացը։

Տեղակայում ենք կոմպիլյատոր եւ նախագծման գործիքներ սարքի վրայ

opkg install gcc
opkg install gcc-symlinks
opkg install libc6-dev
opkg install binutils
opkg install make 
opkg install coreutils

Լաւ կլինի ժամանակը սինխրոնացնել մինչեւ գործի անցնելը։

/etc/init.d/fsotdld restart

Քաշում ենք ֆլեշերի ելատեքստը՝

wget ftp://ftp.ifctf.org/pub/GSM/FreeCalypso/loadtools-r1.tar.bz2

Բացում՝

mkdir loadtools
cd loadtools

tar ĵvf ../loadtools-r1.tar.bz2

խմբագրում makefile֊ը, ինչպէս խորհուրդ է տրւում readme֊ում, նշէք CFLAGS֊ը որպես

CFLAGS= -O2 -march=armv4t -mtune=arm920t -DGTA0x_AP_BUILD

եւ

EXTRA_OBJ=gtapower.o

հապա make անենք

make
make install

այս երեկ բինարնիկները այժմ տեղակայուած են /usr/local/bin֊ում

fc-iram fc-loadtool fc-xram

ֆիրմուերի կոմպիլյացիան

Բաց թողէք այս քայլը, եթե ուզում էք ֆլեշել արդեն իսկ նախապէս քոմփայլ արուած ֆիրմուերը։

Աւաղ, այժմ անհնար է կոմպիլացնել ֆիրմուերը ազատ կոմպիլյատոր՝ օրինակ ջիսիսի օգտագործելով, ու մեզ պէտք են ուինդոուս գործիքներ Թեքսաս Ինսթրումենթսից։ Լաւ նորութիւնն այն է, որ դրանք աշխատում են wine֊ի տակ, ու մենք կարող ենք աշխատացնել դրանք ուայնով ցանկացած ԳՆՈՒ/Լինուքս մեքենայի մէջ։ ԹիԱյ֊ի միջավայրը իրականում օգտագործում է մեզ քաջ ծանոթ յունիքսական գործիքների ուինդոուս պորտերը։ Այնպէս որ անհամեմատ աւելի հեշտ կլիներ, եթէ մենք կարողանայինք նոյն գործիքներն օգտագործել բնիկ(նեյթիւ) կերպով։

Ահա, վերցնում ենք այս երեք նիշքը՝

ftp://ftp.ifctf.org/pub/GSM/FreeCalypso/leo2moko-r1.tar.xz — ելատեքստը

ftp://ftp.ifctf.org/pub/GSM/TI_src/wine/installed-env.tar.xz — միջավայր, այն քոմփայլ անելու համար

wget ftp://ftp.ifctf.org/pub/GSM/TI_src/wine/nowhine.c ու այսպիսի հաւէս վրափեր։

gcc -o nowhine nowhine.c
  
cp nowhine /usr/local/bin

nowhine կտրում է անկապ անպէտք բլթբլթոցը (whining) wine ծրագրի ելքից։ Փաստօրէն, սա ուայնի ուրափեր է, կարելի է այն եւ չօգտագործել։

Հետո ամեն ինչ շատ տրիւիալ է՝ բացում ենք արխիւները, աշխատացնում յատուկ բիլդ սկրիպտն, ու այն ամէնն անում է։

արդեն իսկ քոմփայլ արուած ֆիրմուեր

wget ftp://ftp.ifctf.org/pub/GSM/FreeCalypso/leo2moko-r1-bin.tar.bz2 — ահա սա, կամ եթէ նախապէս բիլդ էք արել, ապա օգտագործէք ձերը։

լցնում ենք ֆիրմւերը

պէտք է նախապէս սպանել որոշ դեմոններին, որ բնակւում են մեր օփենմոկոյի մէջ՝ որ չխանգարեն լցնելու պրոցեսին՝

killall fsodeviced
killall fsoaudiod
killall fsousaged
killall fsodatad
killall fsonetworkd
killall fsogsmd
killall phonefsod
killall phoneuid
killall frameworkd

Աշխատեցնում ենք ֆլեշերը՝

s3c24xx-gpio b7=0

fc-loadtool -h gta02 /dev/ttySAC0

Պէտք է անկապ հաղորդագրութիւններ տեսնէք, ու յետոյ՝ loadtool> հրաւէրը։

Այստեղ շատ կարեւոր է բեքափել հեռախօսի միջի կալիբրացիայի տուեալները, դրանք մեզ պէտք կլինեն, եթէ ինչ֊որ բան այնպէս չգնայ։

flash dump2bin my-flashdump.bin

scp արէք այն ձեր կարգիչ, պահէք որեւէ տեղ, ոչ միայն հեռախօսի մէջ։

Անցանք գործի՝

flash erase 0 0x300000
flash program-m0 gsm-fw.m0

quit


reboot

imei

Շատ հետաքրքիր նախագիծ է սա՝

ftp://ftp.ifctf.org/pub/GSM/FreeCalypso/mpffs-tools-r1.tar.bz2

այն մասին է, ինչպէս գրել֊կարդալ ջիէսեմ մոդեմի փաստացի առանձին կարգչի նիշքային համակարգը։

Ահա, մոկոյի ջիէսեմ֊ի վարկածը պիտի որ սրա պէս լինի՝

openmoko firmware screenshot

եւ այդպէս

պիտակներ՝ ազատ ծրագրային ապահովում  ազատութիւն  անհնազանդութիւն  համացանց  մոբայլ  տեքնոլոգիաներ  տեղեկատուական տեքնոլոգիաներ  օփենմոկո