Kazalo:

Orange PI HowTo: Compile Sunxi Tool za Windows v sistemu Windows: 14 korakov (s slikami)
Orange PI HowTo: Compile Sunxi Tool za Windows v sistemu Windows: 14 korakov (s slikami)

Video: Orange PI HowTo: Compile Sunxi Tool za Windows v sistemu Windows: 14 korakov (s slikami)

Video: Orange PI HowTo: Compile Sunxi Tool za Windows v sistemu Windows: 14 korakov (s slikami)
Video: Fix It Or Blow It Up - 1986 Range Rover | Workshop Diaries | Edd China 2024, December
Anonim
Orange PI HowTo: Prenesite orodje Sunxi za Windows v sistemu Windows
Orange PI HowTo: Prenesite orodje Sunxi za Windows v sistemu Windows

PREDPOSTAVKI:

Boste potrebovali

  1. (Namizni) računalnik z operacijskim sistemom Windows.
  2. Internetna povezava.
  3. Oranžna PI plošča.

Zadnji je neobvezen, vendar sem prepričan, da ga že imate. V nasprotnem primeru tega navodila ne boste prebrali.

Ko kupite enokanalni računalnik Orange PI, ostane le kos mrtve kovine, dokler ni pravilno konfiguriran. Njegova glavna konfiguracijska datoteka: "script.bin" je prvi ključ, ki jo oživi. Ta datoteka se nahaja na zagonski particiji vaše zagonske kartice SD. Na našo srečo je v večini distribucij Linuxa z uradnega spletnega mesta (https://www.orangepi.org/downloadresources/) ta particija FAT32 in jo lahko zlahka vidi kateri koli računalnik z operacijskim sistemom Windows. Resnično poenostavlja stvari, saj še vedno ni zanesljivega načina za pisanje v particije Linux ext2 iz sistema Windows.

Nimamo sreče, da ima konfiguracijska datoteka script.bin binarno obliko, ki je popolnoma neprijazna za urejanje. Za dešifriranje in kriptiranje po opravljenih potrebnih spremembah potrebujete nekakšno programsko orodje. In tak nabor orodij obstaja. To je zloglasni SUNXI-TOOLS. Muha v mazilu je, da je namenjen izvajanju pod Linuxom, zato moramo bodisi hraniti namenski Linux-stroj samo za uporabo orodij sunxi ali pa najti način, kako jih sestaviti za okna.

Lahko bi ga preprosto sestavil in delil izvedljivo datoteko, vendar nikoli ne veš, ali bi radi naredili novo izdajo, zato boš čim prej potreboval novo kompilacijo. Zato sem se odločil narediti vodič, kako sestaviti bistveno orodje iz virov. Začnimo.

1. korak: Prenesite orodja Sunxi

Prenesite orodja Sunxi
Prenesite orodja Sunxi
Prenesite orodja Sunxi
Prenesite orodja Sunxi

Pridobite najnovejšo (ali potrebno) različico izvorne kode orodij sunxi. Pojdite na URL: https://github.com/linux-sunxi/sunxi-tools/releases in izberite prenos kot zip arhiv.

2. korak: Odpakirajte izvorno kodo

Razpakirajte izvorno kodo
Razpakirajte izvorno kodo

Ko je prenos končan, razpakirajte izvorno kodo v izbrano mapo. (nadalje bom domneval, da je ta mapa c: / sunxitools \, zato to pot zamenjajte s svojo potjo).

3. korak: Prenesite Code:: bloki

Prenesite Code:: bloki
Prenesite Code:: bloki

Če imate nameščeno kopijo operacijskega prevajalnika c ++ za Windows. in če veste, kako ga uporabljati, lahko neposredno nadaljujete s 3. korakom. Drugi bi morali dobiti ustrezen prevajalnik c ++ in lupino (IDE), da bi ga udobno uporabljali. Moja izbira je code:: bloki za Windows skupaj z vnaprej nameščenim orodjem MinGW. Lahko ga dobite tukaj:

Prenesite in namestite.

4. korak: Preizkusite svoj IDE

Preizkusite svoj IDE
Preizkusite svoj IDE

Če želite preveriti, ali je vse v redu, zaženite kodne bloke, kliknite »ustvari nov projekt«, izberite »konzolna aplikacija«, izberite bodisi c ali c ++, vnesite naslov projekta za odjavo, privzete nastavitve naj bodo nedotaknjene v naslednjem oknu in kliknite »končaj«.

5. korak: Dokončajte preizkus

Popoln test
Popoln test

Nato kliknite zeleni trikotnik na zgornji plošči IDE ali uporabite točko menija Build-> Run. Če je šlo vse v redu, bi morali v črnem oknu "DOS" videti sporočilo vaše samodejno ustvarjene aplikacije "Hello world".

Če ne, to pomeni, da IDE in prevajalnik ne delujeta pravilno, zato boste morali raziskati, kako ga pravilno nastaviti. Verjetno boste morali prenesti drugo različico programskih orodij ali preveriti njihova dovoljenja v požarnem zidu/protivirusni programski opremi.

6. korak: Ustvarite nov projekt

Ustvari nov projekt
Ustvari nov projekt
Ustvari nov projekt
Ustvari nov projekt
Ustvari nov projekt
Ustvari nov projekt
Ustvari nov projekt
Ustvari nov projekt

Zdaj bi morali imeti v računalniku delujoč nabor programerjev za C/C ++ in nepakirane izvorne kode orodij sunxi v mapi c: / sunxitools \. Čas je, da sestavite projekt. Ustvarite nov projekt v svoji IDE. Izberite navaden projekt C (ne c ++) tipa "konzolna aplikacija".

Prepričajte se, da projekt ustvarjate v mapi c: / sunxitools / in ne na drugem mestu. (EG kodni bloki ponavadi naredijo podmapo z istim imenom, kot ga ima projekt. Če ste torej poimenovali svoj projekt, recite "test" in ga poskusite postaviti v c: / sunxitools \, lahko projekt končate v c: / sunxitools / test / če niste dovolj pozorni.) Orodja Sunxi vsebujejo več pripomočkov, za naš namen pa bomo potrebovali le enega: tako imenovani "fexc" pripomoček.

7. korak: Dodajte datoteke v projekt

Dodajte datoteke v Project
Dodajte datoteke v Project

Natančno "fexc" pripomoček je odgovoren za pretvorbo script.bin v besedilno obliko in za povratno pretvorbo v binarno datoteko. Bistveno je, da ima izvršljiva datoteka tega pripomočka ime "fexc.exe", zato je dobro, če ste svoj projekt poimenovali "fexc". Lahko pa uporabite katero koli drugo ime projekta, saj lahko po prevajanju vedno preimenujete izvedljivo datoteko ali pa izberete »Projekt-> Lastnosti« v zgornjem spustnem meniju in v pojavnem oknu kliknite zavihek »Sestavi cilje«, in tam uredite polje "Ime izhodne datoteke", da preglasite ime izvršljive datoteke.

V svoj samodejno ustvarjen projekt morate dodati le pet izvornih datotek:

  • fexc.c
  • script.c
  • script_bin.c
  • script_fex.c
  • script_uboot.c

in sedem datotek z glavo:

  • list.h (premaknite jo iz mape c: / sunxitools / include / v mapo c: / sunxitools )
  • fexc.h
  • script.h
  • script_bin.h
  • script_fex.h
  • script_uboot.h
  • različica.h

Iz projekta izključite samodejno ustvarjen main.c, ker fexc.c že ima funkcijo "int main". (Ne pozabite, da bi moral vsak program imeti samo eno glavno funkcijo?).

Vse potrebne datoteke izvorne kode so že v podmapi, kamor ste razpakirali izvorne kode. Datoteke z glavo si zaslužijo par besed, kje jih dobiti. "list.h" - je ponavadi v podmapi "include" nerazpakiranih izvornih kod. "version.h" - ustvarite ga sami. Vnesite niz, kot je:

#define VERZIJA "Win32"

Nato shranite in zaprite datoteko. (Če želite, ga lahko okrasite z #define in #ifdef.)

Če zdaj poskusite sestaviti projekt, se bo pritožil nad veliko napakami in eno manjkajočo datoteko. Napake so večinoma posledica pretirane svobode sloga, ki so jih uporabljali programerji orodij sunxi, manjkajoča datoteka pa je odvisnost, ki ni vključena v paket izvorne kode. S tem se lotimo korak za korakom.

8. korak: Naj Gcc upošteva jezikovni standard ISO C 1999

Naj Gcc upošteva jezikovni standard ISO C 1999
Naj Gcc upošteva jezikovni standard ISO C 1999

Da se prevajalnik ne bi pritoževal glede preveč svobodnega programskega sloga, nastavite standard kompilacije "с99". V kodnih blokih pojdite v meni »Projekt -> Možnosti izdelave« in v »Nastavitve prevajalnika -> Zastavice prevajalnika« potrdite polje »Naj gcc upošteva jezikovni standard ISO C 1999«. Ali pa lahko preprosto dodate "-std = c99" v niz možnosti prevajalnika. Če poskusite sestaviti projekt, bi se morale te tone napak odpraviti in ste ena proti ena z manjkajočo odvisnostjo.

9. korak: Poiščite manjkajočo odvisnost

Poiščite manjkajočo odvisnost
Poiščite manjkajočo odvisnost

Manjkajoča odvisnost je datoteka "mman.h" - glava neke vrste upravitelja pomnilnika linux. Windows C izvorno nima te datoteke, a na srečo obstaja okno Windows. Za okna pojdite na https://github.com/witwall/mman-win32. Prenesite posnetek skladišča git.

10. korak: Razpakirajte Mman

Razpakirajte Mman
Razpakirajte Mman

Razpakirajte datoteke mman.c in mman.h, jih vstavite v mapo c: / sunxitools \.

11. korak: In jih dodajte projektu

In jih dodajte projektu
In jih dodajte projektu

12. korak: Pravilna pot

Pravilna pot
Pravilna pot

In v datoteki "fex.c" raplece line:

#vključi

do

#vključi "mman.h"

Na tem koraku se vaš prevajalnik ne bi smel pritoževati in kot rezultat boste dobili dolgo čakanje fexc.exe. Ne bodite srečni prezgodaj. Pripomoček še vedno ni popolnoma funkcionalen. To lahko zagotovite z dešifriranjem neke veljavne datoteke script.bin v besedilni obrazec - datoteko script.fex s posledičnim šifriranjem datoteke script.fex nazaj v script.bin. Morda boste opazili, da se velikost nastalega script.bin nekoliko razlikuje od velikosti izvirnega script.bin. In če poskusite znova dešifrirati nastalo, ne bo uspelo. Niti Orange PI ne bo deloval s tem script.bin. Za pridobitev funkcionalnega pripomočka moramo izstreliti kodno bombo, ki jo je nekdo vstavil v izvorno kodo orodja sunxi. To bo naš naslednji korak.

13. korak: Egzorcizem

Egzorcizem
Egzorcizem

Če želite razstreliti kodno bombo, odprite kodno datoteko fexc.c in tam poiščite besedilni niz naslednje vsebine:

else if ((out = open (ime datoteke, O_WRONLY | O_CREAT | O_TRUNC, 0666)) <0) {

Samo zamenjajte ga z naslednjim nizom:

else if ((out = open (ime datoteke, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 512)) <0) {

Če ne zlobne številke "666" v prvem nizu, bi mislil, da je kodirnik pravkar pozabil uporabiti zastavo O_BINARY. Toda Število zveri transparentno pojasnjuje njegove namene. Pojdi, kako genialno je: zaradi subtilne razlike v načinu obdelave datotek v operacijskih sistemih Windows in Linux bomba nima učinka, ko se pripomoček sestavi in uporablja v Linuxu. Toda vse to uniči, ko se pripomoček uporablja v sistemu Windows.

Ko je bomba razorožena, lahko končno sestavite in varno uporabite pripomoček fexc na namiznem računalniku z operacijskim sistemom Windows.

14. korak: OPOMBE

OPOMBE
OPOMBE

1) Za udobno uporabo pripomočka fexc bi morali dobiti dve paketni datoteki:

bin2fex.bat - in - fex2bin.bat.

Dobite jih lahko v kateri koli ponarejeni zgradbi fexc.exe za Windows ali pa jih vnesete sami:

  • bin2fex.bat mora vsebovati "fexc -I bin -O fex script.bin script.fex"
  • fex2bin.bat mora vsebovati "fexc -O bin -I fex script.fex script.bin"

2) Če je težko najti upravitelja mman za Windows, se lahko njegovi uporabi sploh izognete. Vendar pa zahteva veliko več urejanja datoteke fexc.c in zahteva vsaj nekaj znanja o c. Za vašo udobje delim urejeno izvorno kodo fexc iz orodij sunxi v1.4 brez odvisnosti od mman.h skupaj s projektno datoteko kodnih blokov in z vzorčnim script.bin iz neke oranžne pi. Lahko prenesete fexc_nomman.zip

3) Možno je, da bodo v naslednjih različicah orodij sunxi dodali še nekaj odvisnosti. Poiščite jih po internetu in jih dodajte v svoj kompilacijski projekt.

5) Na koncu je predkompilirana različica fexc.exe za Win32:

fexc_nomman.zip

Če ste dovolj leni, uporabite ver. Vendar pazite, da ne bo posodobljen, če/kdaj bodo na voljo novejše različice programa SunxiTools/Windows. Zato se je bolje naučiti, kako jih sestaviti, kot pa da sem odvisen od neke fiksne binarne gradnje, predvidevam.

4) "Orange PI", "Code:: Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner" itd … so ustrezne blagovne znamke njihovih lastnikov.

5) Če se prevajalnik pritožuje, da ne najde funkcij mman, na primer:

nedoločen sklic na '_imp_mmap'

Zavedajte se, da so ljubitelji definicije razvojne skupnosti mman pozabili, da je koda lahko sestavljena ne le kot knjižnica dll. Lahko je tudi statična knjižnica ali samostojna koda, kot jo imamo tukaj. Če želite odpraviti težavo, uredite datoteko "mman.h" na naslednji način:

a) poiščite nize:

#if definirano (MMAN_LIBRARY)

#define MMANSHARED_EXPORT _declspec (dllexport) #else #define MMANSHARED_EXPORT _declspec (dllimport) #endif

b) dodajte niz

#define MMANSHARED_EXPORT

tik pod nizi v prejšnjem koraku

Priporočena: