INHOUDSOPGAWE:

Orange PI HowTo: Stel Sunxi Tool saam vir Windows onder Windows: 14 stappe (met foto's)
Orange PI HowTo: Stel Sunxi Tool saam vir Windows onder Windows: 14 stappe (met foto's)

Video: Orange PI HowTo: Stel Sunxi Tool saam vir Windows onder Windows: 14 stappe (met foto's)

Video: Orange PI HowTo: Stel Sunxi Tool saam vir Windows onder Windows: 14 stappe (met foto's)
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, November
Anonim
Orange PI HowTo: Stel Sunxi Tool saam vir Windows onder Windows
Orange PI HowTo: Stel Sunxi Tool saam vir Windows onder Windows

VOORSKRIFTE:

Jy sal nodig hê

  1. 'N (lessenaar) rekenaar met Windows.
  2. 'N Internetverbinding.
  3. 'N Oranje PI -bord.

Die laaste is opsioneel, maar ek is seker dat u dit reeds het. Anders lees u nie hierdie instruksies nie.

As u die Orange PI -enkelbordrekenaar koop, bly dit net 'n stuk dooie metaal totdat dit korrek opgestel is. En die belangrikste konfigurasie lêer: "script.bin" is die eerste sleutel om dit lewendig te maak. Hierdie lêer is geleë in die opstartpartisie van u opstartbare SD -kaart. En gelukkig vir ons, in die meeste Linux -verspreidings vanaf die amptelike webwerf (https://www.orangepi.org/downloadresources/) is hierdie partisie FAT32 en kan dit maklik deur enige Windows -rekenaar gesien word. Dit vereenvoudig dinge regtig, aangesien daar nog steeds geen betroubare manier is om in die Linux ext2 -partisies onder die Windows in te skryf nie.

Ongelukkig vir ons het die konfigurasie -lêer script.bin 'n binêre formaat wat heeltemal onvriendelik is vir menslike redigering. 'N Mens het 'n soort sagteware nodig om dit te ontsyfer en terug te kryputeer nadat die nodige wysigings aangebring is. En so 'n gereedskapstel bestaan wel. Dit is berugte SUNXI-GEREEDSKAP. Die salf is dat dit bedoel is om onder Linux te werk, en ons moet óf 'n toegewyde Linux-masjien hou om slegs die sunxi-gereedskap te gebruik, of om 'n manier te vind om dit vir vensters op te stel.

Ek kan dit eenvoudig saamstel en die uitvoerbare deel, maar 'n mens weet nooit of hulle 'n nuwe weergawe wil maak nie en jy sal so gou moontlik 'n nuwe samestelling nodig hê. Daarom het ek besluit om 'n gids te maak oor hoe om die belangrikste hulpmiddel uit die bronne saam te stel. Laat ons begin.

Stap 1: Laai Sunxi-tools af

Laai Sunxi-tools af
Laai Sunxi-tools af
Laai Sunxi-tools af
Laai Sunxi-tools af

Kry die nuutste (of noodsaaklike) weergawe van die bronkode van sunxi-tools. Gaan na die URL: https://github.com/linux-sunxi/sunxi-tools/releases en kies om dit as zip-argief af te laai.

Stap 2: Pak die bronkode uit

Pak die bronkode uit
Pak die bronkode uit

As die aflaai klaar is, pak die bronkode uit in die gids van u keuse. (verder neem ek aan dat hierdie gids c: / sunxitools / is, dus vervang hierdie pad deur u eie pad).

Stap 3: Laai kode:: blokke af

Aflaai kode:: blokke
Aflaai kode:: blokke

As u 'n geïnstalleerde kopie van 'n operasionele c ++ - samesteller vir Windows het. en as u weet hoe u dit moet gebruik, kan u direk na stap 3 gaan. Ander moet 'n behoorlike c ++ - samesteller en 'n dop (IDE) kry om dit gemaklik te gebruik. Die keuse van my is kode:: blokke vir Windows, asook vooraf geïnstalleerde MinGW -werktuigketting. U kan dit hiervandaan kry:

Laai dit af en installeer dit.

Stap 4: Toets u IDE

Toets u IDE
Toets u IDE

Om te toets of dit goed gaan, begin kodeblokke, klik op 'skep 'n nuwe projek', kies 'konsole -toepassing', kies c of c ++, tik die titel van die afrekenprojek, hou die standaard in die volgende venster onaangeraak en klik op 'voltooi'.

Stap 5: Voltooi die toets

Voltooi toets
Voltooi toets

Klik dan op 'n groen driehoek in die boonste paneel van die IDE, of gebruik die menu-menu Build-> Run. As dit reg gaan, moet u 'n boodskap van u outomatiese "Hallo wêreld" -program in die swart "DOS" -venster sien.

Indien nie, beteken dit dat die IDE en die samesteller nie behoorlik werk nie, en u sal moet ondersoek hoe u dit reg kan stel. Waarskynlik, u sal 'n ander weergawe van die programmeerhulpmiddels moet aflaai of hul toestemmings in u firewall/antivirusprogrammatuur moet nagaan.

Stap 6: Skep nuwe projek

Skep nuwe projek
Skep nuwe projek
Skep nuwe projek
Skep nuwe projek
Skep nuwe projek
Skep nuwe projek
Skep nuwe projek
Skep nuwe projek

Nou moet u 'n operasionele gereedskapstel vir C/C ++ programmeerders en die bronkode van sunxi-tools in u c: / sunxitools / gids op u rekenaar hê. Dit is tyd om 'n projek saam te stel. Skep 'n nuwe projek in u IDE. Kies die gewone C (nie c ++) projek van die tipe "konsole -toepassing".

Maak seker dat u 'n projek in die gids c: / sunxitools / skep en nie op 'n ander plek nie. (EG -kodeblokke is geneig om 'n subgids met dieselfde naam as die projek te maak. As u u projek 'n naam gegee het, sê 'toets' en probeer dit in c: / sunxitools / plaas, dan kan die projek eindig na c: / sunxitools / test / as u nie oplettend genoeg is nie.) Sunxi-gereedskap bevat verskeie hulpmiddels, maar vir ons doel benodig ons slegs een: die sogenaamde 'fexc' nut.

Stap 7: Voeg lêers by die projek

Voeg lêers by die projek
Voeg lêers by die projek

Presies die "fexc" nut is verantwoordelik vir die omskakeling van die script.bin in teksformaat en vir die omskakeling in binêre. Dit is noodsaaklik dat die uitvoerbare program van hierdie program die naam 'fexc.exe' het, dus dit is goed as u u projek as 'fexc' noem. U kan egter 'n ander naam van die projek gebruik, aangesien u die uitvoerbare naam altyd na die opstel kan hernoem, of u kan 'Projek-> Eienskappe' kies in die keuselys bo en klik op die blad 'Bou teikens', en wysig die veld "Uitvoer lêernaam" daar om die uitvoerbare naam te ignoreer.

By u outogegenereerde projek moet u slegs vyf bronlêers byvoeg:

  • feksc.c
  • script.c
  • script_bin.c
  • script_fex.c
  • script_uboot.c

en sewe koplêers:

  • list.h (skuif dit van c: / sunxitools / include / folder na c: / sunxitools / folder)
  • fexc.h
  • script.h
  • script_bin.h
  • script_fex.h
  • script_uboot.h
  • weergawe.h

Sluit die outo -gegenereerde main.c van die projek uit, omdat fexc.c reeds die 'int main' -funksie bevat. (Onthou dat enige program slegs een hooffunksie moet hê?).

Al die nodige bronkode lêers is reeds in die submap waarheen u die bronkodes uitgepak het. Die koplêers verdien 'n paar woorde, waar om dit te kry. "list.h" - is gewoonlik in die "include" submap van die pakket wat nie uitgepak is nie. "version.h" - skep dit self. Sit daar 'n tou soos:

#define VERSIE "Win32"

Stoor en sluit dan die lêer. (U kan dit versier met #define's en #ifdef's as u wil.)

As u nou die projek probeer saamstel, kla dit oor baie foute en 'n ontbrekende lêer. Die foute is meestal te wyte aan 'n bietjie buitensporige stylvryheid, die programmeerders van sunxi-tools wat vroeër toegepas is, en die ontbrekende lêer is die afhanklikheid wat nie in die bronkode is nie. Laat ons hierdie stap vir stap hanteer.

Stap 8: Laat Gcc die 1999 ISO C -taalstandaard volg

Laat Gcc die 1999 ISO C -taalstandaard volg
Laat Gcc die 1999 ISO C -taalstandaard volg

Om te verseker dat die samesteller nie kla nie, stel die te gratis programmeerstyl die "99" standaard van die samestelling in. Gaan in kodeblokke na die spyskaart "Projek -> Bouopsies" en in die "Samestellerinstellings -> Opstellervlae", merk die boks "Laat gcc die 1999 ISO C -taalstandaard volg". Of u kan net "-std = c99" by u string opstelopsies van u samesteller voeg. Nou as u probeer om die projek saam te stel, behoort daardie tonne foute te begin en is u een tot een met die ontbrekende afhanklikheid.

Stap 9: Soek die ontbrekende afhanklikheid

Vind die ontbrekende afhanklikheid
Vind die ontbrekende afhanklikheid

Die ontbrekende afhanklikheid is 'mman.h' lêer - die kop van 'n soort Linux geheue bestuurder. Windows C het oorspronklik nie so 'n lêer nie, maar gelukkig is daar 'n vensterspoort daarvan. Gaan na https://github.com/witwall/mman-win32 vir Windows. Laai die momentopname van git repository af.

Stap 10: Pak die Mman uit

Pak die Mman uit
Pak die Mman uit

Pak die mman.c- en mman.h -lêers uit, plaas dit in die c: / sunxitools / folder.

Stap 11: en voeg dit by die projek

En voeg hulle by die projek
En voeg hulle by die projek

Stap 12: Korrekte pad

Die regte pad
Die regte pad

En in die lêer "fex.c" raplece line:

#insluit

na die

#sluit "mman.h" in

In hierdie stap moet u samesteller niks kla nie, en u kry die lang wag fexc.exe as die uitvoer. Moenie te vroeg gelukkig wees nie. Die nut is steeds nie ten volle funksioneel nie. U kan dit verseker deur 'n geldige script.bin -lêer in die teksvorm - script.fex -lêer te ontsyfer, met die gevolglike versleuteling van die script.fex -lêer terug na die script.bin. U kan opmerk dat die grootte van die resulterende script.bin effens verskil van die grootte van die oorspronklike script.bin. En as u weer die resultate probeer ontsyfer, sal dit misluk. Die Orange PI sal nie met hierdie script.bin werk nie. Om die funksionele nut te kry, moet ons 'n kodebom aflaai wat iemand in die bronkode van sunxi-tools geplaas het. Dit sal ons volgende stap wees.

Stap 13: Uitdrywing

Uitdrywing
Uitdrywing

Om die kodebom te laai, maak die fexc.c -kode lêer oop en vind daar 'n teksstring van die volgende inhoud:

anders as ((uit = oop (lêernaam, O_WRONLY | O_CREAT | O_TRUNC, 0666)) <0) {

Vervang dit net met die volgende string:

anders as ((out = open (lêernaam, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 512)) <0) {

Indien nie die slegte syfers "666" in die eerste string nie, sou ek dink dat die kodeerder net vergeet het om die O_BINARY vlag te gebruik. Maar The Number of The Beast verduidelik sy bedoelings deursigtig. Besef, hoe vernuftig dit is: as gevolg van die subtiele verskil in hoe die lêers in Windows en Linux verwerk word, het die bom geen effek wanneer die program saamgestel en gebruik word onder Linux. Maar dit verwoes alles as die program onder Windows gebruik word.

Nadat die bom ontwapen is, kan u uiteindelik die feks -nut op u Windows -tafelrekenaar opstel en veilig gebruik.

Stap 14: NOTAS

NOTAS
NOTAS

1) Om die feks -nut gemaklik te gebruik, moet u twee bondellêers kry:

bin2fex.bat - en - fex2bin.bat.

U kan dit by 'n feksc.exe -gebou vir Windows kry, of u kan dit self tik:

  • bin2fex.bat moet "fexc -I bin -O fex script.bin script.fex" bevat
  • fex2bin.bat moet "fexc -O bin -I fex script.fex script.bin" bevat

2) As dit moeilik is om die mman -bestuurder vir Windows te vind, kan u dit glad nie vermy nie. Dit verg egter veel meer redigering van die fexc.c -lêer en vereis ten minste kennis van c. Vir u oortuiging deel ek die bewerkte bronkode van die feksc van die sunxi-tools v1.4 vry van die afhanklikheid van mman.h saam met die codeblocks-projeklêer en met voorbeeld script.bin van 'n paar oranje pi. U kan fexc_nomman.zip aflaai

3) Dit is moontlik dat hulle in die daaropvolgende weergawes van sunxi-gereedskap nog meer afhanklikhede sal toevoeg. U kan dit gerus op die internet vind en dit by u versamelingsprojek voeg.

5) Laastens is hier die vooraf saamgestelde weergawe van fexc.exe vir Win32:

fexc_nomman.zip

As u lui genoeg is, gebruik gerus ver. Pasop egter dat dit nie opgedateer sal word as/wanneer die nuwer weergawes van SunxiTools/Windows beskikbaar sal wees nie. Ek veronderstel dus dat dit beter is om te leer hoe om dit op te stel as om afhanklik te wees van 'n vaste binêre opbou.

4) Die "Orange PI", "Code:: Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner", ens … is die korrespondent-handelsmerke van hul onderskeie eienaars.

5) As u samesteller kla dat u nie mman -funksies vind nie, soos:

ongedefinieerde verwysing na '_imp_mmap'

Let daarop dat liefhebbers van die ontwikkelingsgemeenskap van mman vergeet het dat die kode nie net as dll -biblioteek saamgestel kan word nie. Dit kan ook 'n statiese biblioteek of 'n selfstandige kode wees soos ons hier het. Om die probleem op te los, wysig 'mman.h' lêer soos volg:

a) vind die snare:

#as gedefinieer (MMAN_LIBRARY)

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

b) voeg die string by

#definieer MMANSHARED_EXPORT

net onder die snare wat by die vorige stap gevind is

Aanbeveel: