Sadržaj:

Orange PI HowTo: Sastavite Sunxi alat za Windows u sustavu Windows: 14 koraka (sa slikama)
Orange PI HowTo: Sastavite Sunxi alat za Windows u sustavu Windows: 14 koraka (sa slikama)

Video: Orange PI HowTo: Sastavite Sunxi alat za Windows u sustavu Windows: 14 koraka (sa slikama)

Video: Orange PI HowTo: Sastavite Sunxi alat za Windows u sustavu Windows: 14 koraka (sa slikama)
Video: Week 5 2024, Studeni
Anonim
Orange PI HowTo: Sastavite Sunxi alat za Windows pod Windowsima
Orange PI HowTo: Sastavite Sunxi alat za Windows pod Windowsima

PREDUVJETI:

Trebat će vam

  1. Računalo (stolno računalo) sa sustavom Windows.
  2. Internet veza.
  3. Narančasta PI ploča.

Posljednje nije obavezno, ali siguran sam da ga već imate. Inače nećete čitati ove upute.

Kad kupite jednokrilno računalo Orange PI, ono ostaje samo komad mrtvog metala sve dok se pravilno ne konfigurira. Njegova glavna konfiguracijska datoteka: "script.bin" prvi je ključ koji ga oživljava. Ova datoteka se nalazi na particiji za pokretanje vaše SD kartice za pokretanje. Srećom po nas, u većini distribucija Linuxa sa službene stranice (https://www.orangepi.org/downloadresources/) ova particija je FAT32 i lako ju je vidjeti bilo koje računalo sa sustavom Windows. To doista pojednostavljuje stvari jer još uvijek nema pouzdanog načina za pisanje na Linux ext2 particije ispod Windowsa.

Na našu nesreću, konfiguracijska datoteka script.bin ima binarni format potpuno neprikladan za ljudsko uređivanje. Potrebna je neka vrsta softverskog alata za njegovo dešifriranje i kriptiranje nakon što su izvršene potrebne izmjene. A takav skup alata postoji. To je zloglasni SUNXI-ALAT. Zanimljivo je to što se namjerava izvesti pod Linuxom i moramo ili zadržati namjenski Linux stroj samo za korištenje sunxi alata ili pronaći način kako ih sastaviti za Windows.

Mogao sam ga jednostavno sastaviti i podijeliti izvršnu datoteku, ali nikad se ne zna bi li htjeli napraviti novo izdanje i trebat će vam nova kompilacija što je prije moguće. Stoga sam odlučio napraviti vodič kako sastaviti bitni alat iz izvora. Započnimo.

Korak 1: Preuzmite Sunxi-alate

Preuzmite Sunxi-alate
Preuzmite Sunxi-alate
Preuzmite Sunxi-alate
Preuzmite Sunxi-alate

Nabavite najnoviju (ili neophodnu) verziju izvornog koda sunxi-alata. Idite na URL: https://github.com/linux-sunxi/sunxi-tools/releases i odaberite preuzimanje kao zip arhivu.

Korak 2: Raspakirajte izvorni kod

Raspakirajte izvorni kod
Raspakirajte izvorni kod

Nakon što preuzimanje završi, raspakirajte izvorni kod u mapu po vašem izboru. (nadalje ću pretpostaviti da je ova mapa c: / sunxitools \, pa zamijenite ovu stazu svojom stazom).

Korak 3: Preuzmite Code:: blocks

Preuzmi kod:: blokovi
Preuzmi kod:: blokovi

Ako imate instaliranu kopiju nekog operativnog c ++ kompajlera za Windows. i ako znate kako ga koristiti, možete izravno prijeći na korak 3. Ostali bi trebali nabaviti odgovarajući c ++ prevoditelj i ljusku (IDE) za udobnu upotrebu. Moj izbor je code::blocks za Windows zajedno s unaprijed instaliranim MinGW lancem alata. Možete ga preuzeti odavde:

Preuzmite ga i instalirajte.

Korak 4: Testirajte svoj IDE

Testirajte svoj IDE
Testirajte svoj IDE

Da biste provjerili je li sve u redu, pokrenite blokove kodova, kliknite "izradi novi projekt", odaberite "konzolna aplikacija", odaberite c ili c ++, upišite naslov projekta odjave, zadržite zadane vrijednosti netaknutima u sljedećem prozoru i kliknite "završi" ".

Korak 5: Dovršite test

Kompletan test
Kompletan test

Zatim kliknite zeleni trokut na gornjoj ploči IDE-a ili upotrijebite točku izbornika Build-> Run. Ako su stvari krenule kako treba, trebali biste vidjeti poruku iz svoje automatski generirane aplikacije "Hello world" u crnom "DOS" prozoru.

Ako ne, to znači da IDE i prevoditelj ne rade ispravno i morat ćete istražiti kako to ispravno postaviti. Vjerojatno ćete morati preuzeti drugu verziju programskih alata ili provjeriti njihova dopuštenja u svom vatrozidu/antivirusnom softveru.

Korak 6: Izradite novi projekt

Izradi novi projekt
Izradi novi projekt
Izradi novi projekt
Izradi novi projekt
Izradi novi projekt
Izradi novi projekt
Izradi novi projekt
Izradi novi projekt

Sada biste na računalu trebali imati operativni komplet programera za C/C ++ i raspakirane izvorne kodove sunxi alata u mapi c: / sunxitools \. Vrijeme je za sastavljanje projekta. Izradite novi projekt u svom IDE -u. Odaberite običan C (ne c ++) projekt tipa "konzolna aplikacija".

Provjerite stvarate li projekt u mapi c: / sunxitools \, a ne na nekom drugom mjestu. (EG kodni blokovi obično stvaraju podmapu s istim imenom kao i projekt. Stoga, ako ste nazvali svoj projekt, recite "test" i pokušajte ga postaviti u c: / sunxitools \, možda ćete projekt završiti u c: / sunxitools / test / ako niste dovoljno pažljivi.) Sunxi alati sadrže nekoliko pomoćnih programa, ali za našu svrhu trebat će nam samo jedan: takozvani "fexc" uslužni program.

Korak 7: Dodajte datoteke u projekt

Dodajte datoteke u Project
Dodajte datoteke u Project

Upravo je "fexc" uslužni program odgovoran za pretvaranje script.bin u tekstualni format i za povratnu konverziju u binarni. Bitno je da izvršna datoteka ovog uslužnog programa ima naziv "fexc.exe", pa je dobro ako ste svom projektu dali ime "fexc". Međutim, možete koristiti bilo koji drugi naziv projekta, budući da izvršnu datoteku uvijek možete preimenovati nakon kompilacije ili možete odabrati "Projekt-> Svojstva" s gornjeg padajućeg izbornika i u prozoru koji se pojavi kliknite karticu "Izradi ciljeve", i tamo uredite polje "Naziv izlazne datoteke" kako biste nadjačali naziv izvršne datoteke.

U svoj automatski generirani projekt trebali biste dodati samo pet izvornih datoteka:

  • fexc.c
  • skripta.c
  • script_bin.c
  • script_fex.c
  • script_uboot.c

i sedam datoteka zaglavlja:

  • list.h (premjestite ga iz mape c: / sunxitools / include / u mapu c: / sunxitools / mapa)
  • fexc.h
  • skripta.h
  • script_bin.h
  • script_fex.h
  • script_uboot.h
  • verzija.h

Svakako isključite autogenerirani main.c iz projekta jer fexc.c već ima funkciju "int main" u sebi. (Sjetite se da bi svaki program trebao imati samo jednu glavnu funkciju?).

Sve potrebne datoteke izvornog koda već su u podmapi, u koju ste raspakirali izvorne kodove. Datoteke zaglavlja zaslužuju par riječi, gdje ih dobiti. "list.h" - obično se nalazi u podmapi "include" raspakiranih izvornih kodova. "version.h" - samo je stvorite sami. Stavite niz poput:

#define VERZIJA "Win32"

Zatim spremite i zatvorite datoteku. (Možete ga ukrasiti s #define's i #ifdef ako želite.)

Ako sada pokušate sastaviti projekt, žalit će se na mnogo pogrešaka i jednu datoteku koja nedostaje. Pogreške su uglavnom posljedica malo pretjerane slobode stila, koju su koristili programeri sunxi-alata, a datoteka koja nedostaje ovisnost je koja nije uključena u paket izvornog koda. Riješimo ovo korak po korak.

Korak 8: Neka Gcc slijedi jezični standard ISO C iz 1999. godine

Neka Gcc slijedi jezični standard ISO C iz 1999. godine
Neka Gcc slijedi jezični standard ISO C iz 1999. godine

Kako se prevoditelj ne bi žalio na previše slobodan stil programiranja, postavite "s99" standard kompilacije. U blokovima kodova idite na izbornik "Project -> Build Options" i u "Compiler Settings -> Compiler Flags" potvrdite okvir "Neka gcc slijedi jezični standard ISO C 1999". Ili možete jednostavno dodati "-std = c99" u svoj niz mogućnosti kompajlera. Sada ako pokušate sastaviti projekt te tone grešaka bi trebale nestati i vi ste jedan na jedan s nedostatkom ovisnosti.

Korak 9: Pronađite nedostajuću ovisnost

Pronađite nedostajuću ovisnost
Pronađite nedostajuću ovisnost

Ovisnost koja nedostaje je datoteka "mman.h" - zaglavlje neke vrste upravitelja memorije za Linux. Windows C izvorno nema takvu datoteku, ali srećom postoji Windows port. Idite na https://github.com/witwall/mman-win32 za Windows. Preuzmite snimku git spremišta.

Korak 10: Raspakirajte Mman

Raspakirajte Mman
Raspakirajte Mman

Raspakirajte datoteke mman.c i mman.h, stavite ih u mapu c: / sunxitools \.

Korak 11: Dodajte ih u projekt

I dodajte ih u projekt
I dodajte ih u projekt

Korak 12: Ispravan put

Ispravan put
Ispravan put

I u datoteci "fex.c" raplece linija:

#uključi

prema

#uključuje "mman.h"

U ovom koraku vaš prevoditelj se ne bi trebao ništa žaliti, a kao izlaz dobit ćete dugo čekanje fexc.exe. Ne budi sretan prerano. Uslužni program još uvijek nije u potpunosti funkcionalan. To možete osigurati dešifriranjem neke valjane datoteke script.bin u tekstualni obrazac - datotekom script.fex s posljedičnim šifriranjem datoteke script.fex natrag u script.bin. Možda ćete primijetiti da se veličina rezultirajućeg script.bin neznatno razlikuje od veličine izvornog script.bin. Ako pokušate dešifrirati rezultat još jednom, neće uspjeti. Niti Orange PI neće raditi s ovom skriptom.bin. Da bismo dobili funkcionalni uslužni program, moramo isprazniti kodnu bombu koju je netko stavio u izvorni kod sunxi-alata. To će biti naš sljedeći korak.

Korak 13: Egzorcizam

Egzorcizam
Egzorcizam

Kako biste ispraznili kodnu bombu, otvorite datoteku koda fexc.c i tamo pronađite tekstualni niz sljedećeg sadržaja:

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

Zamijenite ga sljedećim nizom:

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

Da nisu zle znamenke "666" u prvom nizu, pomislio bih da je koder upravo zaboravio upotrijebiti zastavu O_BINARY. No, Broj zvijeri transparentno pojašnjava njegove namjere. Zamislite, koliko je to genijalno: zbog suptilne razlike u načinu na koji se datoteke obrađuju u sustavu Windows i Linux, bomba nema učinka kada se uslužni program sastavlja i koristi pod Linuxom. No, sve uništava kada se uslužni program koristi u sustavu Windows.

Nakon što je bomba razoružana, konačno možete sastaviti i sigurno koristiti uslužni program fexc na stolnom računalu sa sustavom Windows.

Korak 14: BILJEŠKE

BILJEŠKE
BILJEŠKE

1) Da biste udobno koristili uslužni program fexc, trebali biste nabaviti dvije paketne datoteke:

bin2fex.bat - i - fex2bin.bat.

Možete ih nabaviti iz neke poznate verzije fexc.exe za Windows ili ih možete sami upisati:

  • bin2fex.bat bi trebao sadržavati "fexc -I bin -O fex script.bin script.fex"
  • fex2bin.bat bi trebao sadržavati "fexc -O bin -I fex script.fex script.bin"

2) Ako je teško pronaći mman manager za Windows, uopće možete izbjeći njegovu upotrebu. Međutim, potrebno je mnogo više uređivanja datoteke fexc.c i zahtijeva barem malo znanja o c. Radi vaše udobnosti, dijelim uređeni izvorni kod fexc iz sunxi-tools v1.4 bez ovisnosti o mman.h zajedno s datotekom projekta codeblocks i uzorkom script.bin s nekog narančastog pi. Možete preuzeti fexc_nomman.zip

3) Moguće je da će u slijedećim verzijama sunxi-alata dodati još neke ovisnosti. Slobodno ih pronađite na internetu i dodajte u svoj projekt kompilacije.

5) Na kraju, ovdje je predkompilirana verzija fexc.exe za Win32:

fexc_nomman.zip

Ako ste dovoljno lijeni, slobodno upotrijebite ver. Međutim, pazite da se neće ažurirati ako/kada će biti dostupne novije verzije programa SunxiTools/Windows. Zato je bolje naučiti kako ih sastaviti nego ovisiti o nekoj fiksnoj binarnoj verziji, pretpostavljam.

4) "Orange PI", "Code:: Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner", itd … odgovarajući su zaštitni znakovi njihovih vlasnika.

5) Ako se kompajler žali da ne nalazi mman funkcije, poput:

nedefinirana referenca na '_imp_mmap'

Imajte na umu da su ljubitelji definicije razvojne zajednice mman zaboravili da se kôd može sastaviti ne samo kao dll knjižnica. To također može biti statička biblioteka ili samostalan kod kakav imamo ovdje. Da biste riješili problem, uredite datoteku "mman.h" na sljedeći način:

a) pronaći nizove:

#ako je definirano (MMAN_LIBRARY)

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

b) dodaj niz

#define MMANSHARED_EXPORT

odmah ispod nizova pronađenih u prethodnom koraku

Preporučeni: