Operativsystem linux eller android som er bedre. Transmigration of the soul: linux på et Android-nettbrett

Mange eiere av Android-telefoner har problemer med å kjøre ekte Linux-programvare på enhetene sine. Etter alle lover ser det ut til at det skal fungere her, men av en eller annen grunn trenger du rotrettigheter for å installere det, det er i seg selv distribuert i noen hjemmelagde installatører, og utvalget av programmer er svært begrenset. Denne artikkelen vil gi et svar på spørsmålet om hvorfor dette skjedde og vil foreslå en løsning - en praktisk måte å installere og kjøre nesten hvilken som helst Linux-programvare på Android.

Linux eller ikke Linux?

Som du vet, er Android basert på Linux-kjernen og inkluderer et sett med standardbiblioteker og kommandolinjeverktøy som er typiske for en vanlig Linux-distribusjon. Å lansere klassisk Linux-programvare her er imidlertid veldig vanskelig på grunn av mange årsaker, inkludert ABI-inkompatibilitet, mangel på en pakkebehandling, proprietært sikkerhetssystem og fraværet av mange komponenter i et standard Linux-system.

Så til tross for tilstedeværelsen av standardbiblioteket libc og andre i Android, er implementeringen deres i de fleste tilfeller inkompatibel med biblioteker fra GNU-prosjektet og er sterkt redusert i funksjonalitet. Av denne grunn må Linux-programvare i det minste bygges om spesifikt for Android- og ARM-prosessorer, og i mange tilfeller også lappes, og legge til funksjonalitet som mangler i bibliotekene.

BotBrew: liste over støttede enheter

BotBrew har blitt testet på følgende enheter: Barnes & Noble NOOK Color, LG P970 Optimus Black, Huawei Ascend M860, HTC Desire, HTC Evo 4G, HTC Evo 3D, HTC Inspire 4G, HTC Droid Eris, HTC Hero, Samsung Galaxy Nexus, Samsung Galaxy S2 (GT-I9100), Samsung Galaxy Y (GT-S5360), Motorola Atrix 4G, Motorola Droid/Milestone, Sony Ericsson Xperia X8, Asus EeePad Transformer TF101.

Android-sikkerhetssystemet, som avskjærer applikasjonsprivilegier til det fulle og ikke lar dem gå utover sin egen katalog, hindrer også alvorlig driften av standard Linux-programvare. Derfor er det ofte nødvendig å skaffe rotrettigheter, noe som fjerner disse begrensningene. Mangelen på en pakkebehandling som lar deg installere vanlig Linux-programvare, og ikke bare Java-applikasjoner, tvinger utviklere til å skrive applikasjoner som bare trengs for å installere andre applikasjoner. Dette er hvordan alle disse tilpassede installatørene vises.

Vel, for å fullføre bildet har Android ganske enkelt ikke mange standard Linux-komponenter, inkludert for eksempel integrerte som X Window-grafikkstakken eller GTK+-biblioteket. Det gjøres noen forsøk på å bringe alt dette hit, selvfølgelig, men ting beveger seg ikke lenger enn semi-arbeidende alfaversjoner.

Likevel er muligheten til å overføre funksjonaliteten til et fullverdig Linux-system til Android en for fristende idé for entusiaster til ikke å prøve å løse problemene som oppstår i prosessen og gi oss en fullverdig universell løsning. Den mest åpenbare og enkle måten er å kjøre en "virtualisert" versjon av en fullverdig Linux-distribusjon, som vi allerede har skrevet om i detalj. Denne metoden er interessant, men lider av problemet med å dele systemet inn i to områder, som hver fungerer uavhengig av hverandre.

BotBrew-prosjektet ser mye mer interessant ut - innenfor rammen av det utvikles en pakkebehandler og depot som er ganske vanlig for Linux-systemer, ved hjelp av dette kan du installere Linux-programvare i en egen katalog inne i Android. På en gang ble det også oppfunnet mange forskjellige skript som gjør det enkelt og uten unødvendige problemer å sette sammen Linux-programvare som egner seg for å jobbe inne i Android på storebroren. Resten av artikkelen vil være viet disse to prosjektene.

BotBrew

BotBrew-prosjektet er designet for å løse mange problemer med å installere Linux-programvare som en bruker kan ha, og forberede Android-systemet til å akseptere programmer som er fremmede for det. I hovedsak består systemet av fire komponenter:
  • et depot med forhåndskompilerte Android-applikasjoner, som du kan bruke til å installere mange Linux-applikasjoner ved å bruke en enkelt kommando;
  • pakkebehandling, som bruker lettvekts Opkg eller dpkg sammen med apt-get i den eksperimentelle versjonen av BotBrew Bazil;
  • runit-prosessbehandleren, som er nødvendig for å starte og vedlikeholde driften av demoner på riktig måte, hvis noen er installert;
  • et proprietært byggesystem som inneholder alle verktøyene som trengs for å krysskompilere applikasjoner ved å bruke enhver desktop Linux-distribusjon.
For å fungere krever dette mirakelet med programmeringstanke ingenting i det hele tatt: rotrettigheter og litt ledig plass i det interne minnet til smarttelefonen eller på minnekortet. Dessuten er det første alternativet å foretrekke, siden i tilfelle SD vil filene bli dumpet på en virtuell disk, som ikke støttes av alle kjerner.


Initialisering

For øyeblikket lar den klassiske versjonen av BotBrew, som bruker sitt eget depot, installere programvare som dcron, GCC, Git, dropbear SSH-server, Lynx-konsollnettleser, Nmap-sikkerhetsskanner, rsync backup-verktøy, Vim-editor, lighttpd web server, skriptspråk Python og Ruby, samt flere dusin andre pakker. Forresten, alt dette er installert i en dedikert katalog i internminnet til smarttelefonen/nettbrettet og roter ikke til hovedsystemet på noen måte. Med andre ord kan du bli kvitt BotBrew og alt du installerte ved å slette én katalog.

Installer programvaren

Så hvordan bruker du BotBrew til å installere Linux-programvare? Først trenger vi en pakke med selve programmet. Den er tilgjengelig på Google Play (merk at du trenger BotBrew-rot, ikke den eksperimentelle Bazil) og veier mindre enn en megabyte. Etter installasjonen, start og klikk på "Fortsett"-knappen nederst på skjermen slik at programvaren laster ned alle komponentene som er nødvendige for driften, for eksempel konsollpakkebehandleren og andre verktøy (i Debian Linux-termer - bootstrap). De veier bare noen få megabyte, så du slipper å vente lenge. Når installasjonen er fullført, vil BotBrew vise et vindu med den offisielle nettsiden til prosjektet, som du trygt kan lukke.

Nå på skjermen skal du se en liste over pakker som er tilgjengelige for installasjon. Det er ganske mange av dem, men av grunnene beskrevet ovenfor vil du ikke finne grafiske applikasjoner blant dem. Men det finnes en rekke servere, kompilatorer og tolker, så alle som seriøst vil "leke" med en smarttelefon vil ha plass til å snu seg rundt. For å installere en pakke, trykk bare på navnet og på neste skjerm som inneholder informasjon om applikasjonen, klikk på "Installer"-knappen.

Dans med tamburiner

Hvis du støter på problemer med BotBrew bootstrap, kan du prøve å installere den manuelt ved å bruke følgende kommando:

Wget http://repo.botbrew.com/anise/bootstrap/install.sh -O - | su
Hvis dette ikke hjelper, kan du prøve å fjerne alle installasjoner (“Remove BotBrew” i innstillingene) og deretter prøve å kjøre denne kommandoen.

Etter dette vil pakken vises på "Installert"-fanen, men du vil ikke se noen "Kjør"-knapp eller noe sånt. Applikasjonen må startes uavhengig av konsollen, noe som imidlertid er logisk. Selve applikasjonen er installert i katalogstrukturen /data/botbrew, der det virkelige miljøet til Linux-distribusjonen med katalogene /etc, /usr og andre er "emulert". Og for ikke å plage brukere med behovet for å skrive hele banen til kommandoen, har BotBrew-utviklerne gitt en wrapper-kommando med samme navn. For å bruke den til å starte, for eksempel, den installerte Lynx-konsollnettleseren, bør du skrive inn følgende kommando:

$ botbrew gaupe http://xakep.ru
Alternativt kan /data/botbrew/bin-katalogen legges til PATH-miljøvariabelen, men dette må gjøres etter hver start av terminalen:

$ export PATH="$PATH:/data/botbrew/bin"
Det går forresten mye bedre med demoner og ulike nettverkstjenester. Etter oppstart vil demonene bli lansert umiddelbart, og du kan kontrollere deres inkludering gjennom det grafiske grensesnittet, tilgjengelig ved å klikke på "Spill"-knappen nederst i BotBrew-grensesnittet. Noen applikasjoner kan kreve å opprette flere brukere og endre innstillingene deres, dette kan gjøres på samme måte som på et vanlig Linux-system:

  1. Opprette en bruker:
    $ botbrew adduser Vasya
  2. Åpne Internett-tilgang for brukeren:
    $ botbrew addgroup vasya inet
  3. Bytt BotBrew til en annen bruker:
    $ botbrew su vasya
Vær oppmerksom på at alle disse endringene kun vil påvirke det virtuelle BotBrew-miljøet og vil ikke påvirke hovedsystemet på noen måte. Konsollen kan også brukes til å installere applikasjoner som omgår GUI. For å gjøre dette bør du bruke konsollpakkebehandleren Opkg, hvis kommandosyntaks er fullt kompatibel med apt-get:

$ botbrew opkg installer dropbear
Omvendt operasjon:

$ botbrew opkg fjern dropbear
For å være "i forkant av fremdriften", må BotBrew-depotet oppdateres fra tid til annen ved å klikke på den tilsvarende knappen i det grafiske grensesnittet (det kan ikke forveksles med noe annet). Nye versjoner av pakker vil vises på fanen "Oppgraderbar". Bare trykk på navnet hans og klikk "Oppgrader".

BotBrew basilikum

Du kan også finne en applikasjon kalt BotBrew Basil på markedet, som er merket som eksperimentell. I hovedsak er dette fortsatt den samme BotBrew, men med en veldig viktig forskjell. I stedet for sine egne depoter og Opkg-pakkebehandler, bruker den Debian Linux ARM-lagre og apt-get-pakkebehandleren. Dette betyr at mengden programvare som kan installeres ved hjelp av den "brasilianske versjonen" av applikasjonen er mye større. Ti ganger mer.

I tillegg til å bruke Debian-depoter, har Basil også et litt modifisert grensesnitt. For eksempel, umiddelbart etter oppstart ber den deg velge en installasjonskatalog. Standard er /data/botbrew-basil, som etter min mening er ganske logisk, men du kan velge hvilken som helst annen, inkludert på ext2-partisjonen på minnekortet (FAT vil ikke fungere).

Den andre viktige forskjellen er muligheten til å velge hvordan applikasjonen skal brukes, som vises umiddelbart etter å ha klikket på "Fortsett". Det er fire alternativer her:

  1. Bruk BotBrew på kommandolinjen - egentlig en analog av installasjon i stil med vanlig BotBrew.
  2. Bruk dpkg/APT-systemet - installasjon sammen med apt-get og Debian-depoter. Anbefalt installasjonsalternativ.
  3. Kjør Python-programmer er en analog av det første alternativet med automatisk installasjon av Python.
  4. Installer en minimal Debian - minimalistisk installasjon av Debian.
La meg forklare det andre og det fjerde punktet. Den første BotBrew og det første elementet på denne listen gjør ingenting mer enn å installere et minimalistisk Linux-system (bestående av bare noen få kommandoer og biblioteker), der Linux-programvaren lanseres. Imidlertid krever apt-get, i motsetning til den minimalistiske Opkg, en mer eller mindre komplett Linux-installasjon. Derfor, ved å velge det andre alternativet, vil du få en slags mikro-Linux på smarttelefonen din. Og hvis vi kan installere en mikroversjon, hvorfor ikke installere en mer eller mindre fullverdig distribusjon. Det er derfor det er et fjerde punkt.

Etter BotBrew Basil bootstrap vil det samme administrasjonsgrensesnittet for applikasjonsinstallasjon, kjent for oss fra den klassiske versjonen av applikasjonen, vises på skjermen, og botbrew2-kommandoen vises i systemet, som du kan starte programvaren med. Det er ingen signifikante forskjeller i administrasjonen her, bortsett fra kanskje apt-get-kommandoen i stedet for opkg og muligheten til å koble til flere repositorier (inkludert det første BotBrew-depotet) direkte gjennomnittet.

La oss ta saken i egne hender

Forhåndskompilerte applikasjoner og repositories med ferdige pakker er bra, men hva om applikasjonen du trenger ikke er tilgjengelig for installasjon? Tross alt, til og med den samme BotBrew Basil, som lar deg koble til Debian-depoter med en enorm mengde programvare, på grunn av dens eksperimentelle natur, vil ikke fungere på alle smarttelefoner.

I dette tilfellet kan vi prøve å bygge applikasjonen selv. Imidlertid venter flere vanskeligheter på oss her: faktum er at for å bygge programvare for en smarttelefon, må du forberede de nødvendige krysskompileringsverktøyene, deretter ta hensyn til alle avhengighetene til applikasjonen som settes sammen, og til slutt, i noen tilfeller, gjør de nødvendige endringene i koden. Dette er alle ganske plagsomme saker som neppe er verdt å kaste bort tid på.

Imidlertid kan vi bruke andres arbeid til å automatisere prosessen med å bygge programvare. En av de mest utviklede og interessante løsningene på dette området er et sett med SCRIPTSET-skript, utviklet av brukeren smitna fra XDA Developers. Den lar deg bokstavelig talt sette sammen et bredt utvalg av applikasjoner i bare et par kommandoer, inkludert htop, ImageMagick, iptables, ELinks, Screen, mc, node.js, Samba, strace, QEMU, Parted, SANE (den kan brukes til direkte utskrift til en skriver med telefon!) og mange andre. Selve skriptet vil laste ned krysskompilatoren, alle nødvendige avhengigheter og applikasjoner, installere patcher der det er nødvendig, og generere et arkiv klart for utpakking på telefonen.

SCRIPTSET fungerer bare på Linux, men hvis du har Windows kan du installere Ubuntu i en virtuell maskin. Deretter bør du åpne en terminal og installere verktøyene som er nødvendige for å bygge krysskompilatoren:

$ sudo apt-get install build-essential cmake autoconf2.13 scons
Etter dette kan du hente selve SCRIPTSET og pakke det ut:

$ cd ~ $ wget http://goo.gl/zvnom -O scriptset-2.6.zip $ unzip scriptset-2.6.zip
Som et resultat av utpakking vil vi motta... et annet arkiv: scriptset-2.6.tar.bz2. Men det er ikke alt, arkivet er pakket uten den tradisjonelle rotkatalogen for tar, så du må lage den selv. Og pakk allerede ut i den:

$ mkdir skriptsett $ cd skriptsett $ tar -xjf ../scriptset-2.6.tar.bz2

Etter utpakking vil flere skript, konfigurasjoner, samt en README-fil av imponerende størrelse som inneholder instruksjoner for bruk av skriptene vises i katalogen. Skriptene har ikke en utførelsesbit (noe som ikke er overraskende, gitt de tidligere problemene), så du må angi det selv:

$ chmod 755 *.sh

# vi ~/scriptset/configuration.conf // Katalog for å installere applikasjoner på smarttelefonen TARGET_SYSROOT="/data/sysroot" // Målprosessor TARGET_MARCH="armv7-a" TARGET_MTUNE="cortex-a9" TARGET_MFPU="neon" TARGET_MFLOAT =" softfp"

Dette vil være nok til å bygge en applikasjon på riktig måte; Målprosessoren vil være en standard ARMv7 med et ekstra NEON-instruksjonssett. Dette er installert i alle smarttelefoner som er utgitt i løpet av de siste tre til fire årene. Katalogen /data/sysroot vil bli brukt til å installere applikasjoner på smarttelefonen, men merkelig nok må den også opprettes på skrivebordsmaskinen:

$ sudo mkdir -p /data/sysroot $ sudo chown bruker:brukere /data/sysroot $ sudo chmod 777 /data/sysroot
Som forfatteren av skriptene forklarer, er denne handlingen nødvendig fordi banene for nøkkelkataloger i noen applikasjoner er sydd inn på byggestadiet. Derfor, hvis vi skulle bygge en applikasjon med gjeldende og en hvilken som helst annen katalog som rot, ville den rett og slett ikke fungere på en smarttelefon på grunn av forskjeller i stier. Jeg er sikker på at det ville være mer riktig å løse dette problemet ved å bruke chroot, men det er enklere og raskere å lage ønsket katalog, og slette den når du er ferdig.

Deretter må vi angi listen over søknader som vi planlegger å samle inn. For å gjøre dette, åpne filen package_selection.conf og endre nei til ja i de nødvendige alternativene. For å bygge bash, ImageMagick og Screen, må du for eksempel endre følgende tre linjer:

# vi ~/scriptset/package_selection.conf BASH=ja IMAGEMAGICK=ja SCREEN=ja
Husk at innstillingene mellom # ALLTID NEEDED-linjene ikke kan endres. Disse applikasjonene og bibliotekene er alltid nødvendige, og uten dem kan andre applikasjoner rett og slett ikke bygges. Nå kan du kompilere applikasjonene. For å gjøre dette, kjør bare build.sh-skriptet uten argumenter:

$./build.sh
Hvis alle nødvendige pakker ble installert og kompilatoren ikke genererte noen feil under byggingen, vil to arkiver vises i gjeldende katalog som et resultat av byggingen: cs-sysroot.tar.bz2 og android-mysysroot.tar.bz2. Det første er miljøet som trengs for å kjøre applikasjoner, opprettet av krysskompilatoren, og det andre er selve settet med applikasjoner. Begge disse arkivene må overføres til smarttelefonens minnekort, og deretter kjøre en terminalemulator på den eller koble til via ADB, utføre to kommandoer:

$ tar xjf /sdcard/cs-sysroot.tar.bz2 $ tar xjf /sdcard/android-mysysroot.tar.bz2
Som et resultat vil katalogen /data/sysroot vises i det interne minnet til smarttelefonen, der applikasjoner vil være plassert. De skal startes fra samme terminal, og indikerer hele banen. For eksempel:

$ /data/sysroot/usr/bin/bash
Vel, eller etter å ha startet terminalen, legg til /data/sysroot/usr/bin til PATH:

$ export PATH="$PATH:/data/sysroot/usr/bin"

konklusjoner

Til tross for de ganske alvorlige forskjellene mellom Android og en typisk Linux-distribusjon, er det ikke så vanskelig å installere Linux-konsollapplikasjoner på en smarttelefon. Dessverre er det ikke snakk om grafiske applikasjoner ennå, men det finnes allerede prosjekter for å portere Qt-biblioteket og Wayland grafiske server til Android, og snart, håper jeg, får vi en fungerende løsning.


Først publisert i Hacker magazine, 08/2013.

Det er veldig populært, spesielt blant systemadministratorer og programvareutviklere. Et stort antall forskjellige enheter fungerer under dens kontroll. Dessverre er det praktisk talt ingen mobile enheter, for eksempel et nettbrett, som støtter Linux. For øyeblikket er det kun utgitt én modell som kjører på Ubuntu. Men det er kanskje ikke så lett å kjøpe det, siden det ikke er tilgjengelig i alle land.

Om ønskelig kan du installere Linux på nettbrettet ditt, og erstatte Android.

Naturligvis kan mange lure på om det er mulig å installere Linux på et nettbrett som opprinnelig kjører Android i stedet for dette operativsystemet. Offisielt har både Android og Linux samme kjerne, men dessverre vil Linux ikke fungere fullt ut på et Android-nettbrett. Utviklingen er i gang i denne retningen, og mange programmerere jobber aktivt med å løse problemet, men realiteten i dag er at du må være sofistikert for å kjøre en Linux-distribusjon på et Android-nettbrett.

I dette materialet vil vi gi en oversikt og trinnvise trinn for hvordan du installerer en Linux-distribusjon på nettbrettet ditt. Vi vil fortelle deg hvilke betingelser som må oppfylles, hvordan du forbereder enheten din, og også fortelle deg om funksjonene til prosedyren.

Hva du trenger:

  • Android-nettbrett.
  • SD-kort med en kapasitet på 3,5 GB eller mer.
  • rot tilgang
  • en fullstendig sikkerhetskopi av alle data for hundre prosent sikkerhet for et sikkert utfall. Du flytter store filer og utfører mange operasjoner, så dette er et must.

VIKTIG. ANSVARSNEKTING. Til tross for at denne prosessen ikke forårsaker noen skade, er nettstedets redaktører ikke ansvarlige hvis noe skjer med Android-enheten din under installasjonen eller lanseringen av Ubuntu.

Sørg for at du har superbrukerrettigheter. På nesten alle enheter kan du gjøre dette ved å sjekke om du har Superuser-appen. Hvis du ikke har root-rettigheter, kan du få dem. For å gjøre dette, finn ut instruksjonene som er spesifikke for enheten din.

BusyBox-biblioteker vil hjelpe deg med å samhandle med Android-systemet. Du kan laste ned installasjonsprogrammet fra Play Store (eller Android Market) ved å gå hit (https://play.google.com/store/apps/details?id=stericson.busybox) og laste det ned. Gå til fanen BusyBox Installation og klikk på Installer-knappen. Når verktøyet er installert, kan du gå videre til neste trinn ved å installere en terminalemulator.

Trinn 2: Installer terminalemulatoren og kontroller at den fungerer som den skal.

Den mest populære terminalemulatoren for Android er på denne siden (https://play.google.com/store/apps/details?id=jackpal.androidterm) i Play Market. Ved å følge koblingen, last den ned, installer den på nettbrettet og kjør det.

Etter at programvinduet åpnes, skriv inn ordet "su". Verktøyet vil be deg om å gi root-tilgang, og du må gi det fordi verktøyet kjører systemskript som vi senere skal bruke for å starte Ubuntu.

For å sjekke om BusyBox-terminalen og bibliotekene fungerer som de skal, skriv inn kommandoen "busybox arping –help". Hvis terminalen gir deg en tekst med mange alternativer, for eksempel -f -q -b, fungerer alt. Hvis ikke, sjekk om telefonen din er forankret, om BusyBox ble installert riktig, og om terminalen har tillatelser. Hvis alt er i orden, kan du fortsette.

Hvis du har fullført alle nødvendige trinn i trinn 1 og 2, er det ingen grunn til bekymring. De neste trinnene er veldig enkle. Start med å koble telefonen til datamaskinen. Du må aktivere USB-stasjonen, som lar deg åpne SD-kortet på datamaskinen (de fleste av dere vil vite dette når du har flyttet musikk og andre filer fra datamaskinen til Android).

Deretter må du opprette en mappe kalt "Ubuntu" på SD-kortet. Da bør du laste ned denne (https://sourceforge.net/projects/linuxonandroid/files/Ubuntu/10.10/ubuntuV5-image.zip/download) og denne (https://sourceforge.net/projects/linuxonandroid/files /Ubuntu /10.10/ubuntuV5-script.zip/download) filer. Dette er ZIP-filer som inneholder 2 viktige ting: oppstartsskriptet og Ubuntu-filsystemet. Hvis du åpner det første ZIP-arkivet, finner du IMG-filen, og hvis du pakker ut den andre filen, finner du SH-filen.

Pakk ut begge arkivene og flytt filene til "Ubuntu"-mappen. Du bør nå ha to filer i mappen. De fleste av de nødvendige prosessene er fullført.

Trinn 4: Start Ubuntu System

Gå tilbake til terminalapplikasjonen og skriv "su" igjen, og skriv deretter "cd/mnt/sdcard". For å være sikker på at alt fungerer, prøv å skrive "ls" og se om du kan gjenkjenne mappene dine (du bør også kunne finne Ubuntu-mappen).

For å starte Ubuntu, skriv "cd /ubuntu" etterfulgt av "sh ubuntu.sh". Dette vil føre til at mange prosesser kjører som vil prøve å installere systemet ditt. Deretter vil verktøyet be deg velge en skjermoppløsning. Skriv den inn i formatet bredde x høyde, for eksempel 1280 x 720. Velg en lavere oppløsning for bedre ytelse, slik at nettbrettet ikke går tregere. Nå er alt gjort.

Ubuntu-systemet fungerer, men vi kan ikke se det. For å se GUI, må du bruke VNC-protokollklienten. Vi kan laste ned hvilken som helst av dem fra Play Store.

Kjør programmet og skriv inn følgende data:

  • pålogging: bruker
  • passord: ubuntu
  • adresse: localhost

MERK FØLGENDE. Hvis du ikke vil skade Ubuntu-systemet ditt, skriv alltid "exit" i terminalen før du slår av eller slår av nettbrettet.

Konklusjon

Vi fortalte deg om den mest fungerende og minst problematiske måten å installere Linux på et nettbrett. Hvis du vil kjøre systemet fullt ut, i stedet for Android, må du være programmerer og i det minste kunne omprogrammere partisjoner i tilfelle feil.

Klarte du å kjøre Linux på nettbrettet ditt? Fortell oss i kommentarene.

Det gikk veldig kort tid fra lanseringen av de første smarttelefonene som kjører Android OS før entusiaster lærte å kjøre fullverdige Linux-distribusjoner på dem. I dag er metoder for å installere Linux-distribusjoner på Android-enheter viden kjent, og Google Play-depotet har til og med automatiserte systemer for å installere og kjøre Linux. I denne artikkelen vil jeg prøve å samle all den akkumulerte erfaringen med å jobbe med Linux på smarttelefoner, fortelle deg hvorfor dette er nødvendig, og vise hvordan du unngår mulige fallgruver når du overfører Linux til en smarttelefon eller nettbrett.

For hva?

Ved første øyekast kan det virke rart at noen prøver å kjøre et operativsystem på en mobil enhet som i prinsippet ikke er laget for å fungere med en liten skjerm og uten en tilstrekkelig presis manipulator (mus) og tastatur. Du bør imidlertid ikke trekke forhastede konklusjoner. En Linux-distribusjon kan gi en smarttelefoneier ganske mange fordeler, inkludert et sett med gamle velprøvde verktøy som kommandolinjeverktøy, avanserte redaktører, FTP- og SSH-servere, nettverksverktøy og applikasjonsutviklingsverktøy. Ved å kjøre Linux uten grafisk skall på en smarttelefon med maskinvaretastatur (Motorola Droid, for eksempel), kan du bruke alt dette ganske komfortabelt mens du er på farten uten å måtte forlate Android selv. Alle verktøyene er tilgjengelige når som helst, og smarttelefonen fortsetter å være en smarttelefon, slik at du kan motta anrop og lytte til internettradio.

Det andre argumentet for å installere Linux på en smarttelefon er muligheten til å bruke den som en bærbar arbeidsstasjon som kan kobles til en hvilken som helst PC og umiddelbart få tilgang til terminalen ved hjelp av en SSH/Telnet-klient eller en VNC/RDesktop-klient. Dette er per definisjon bedre enn flash-stasjoner med Linux installert, siden det for det første ikke er behov for å starte maskinen på nytt, og for det andre å kjøre data frem og tilbake; resultatene av arbeidet ditt vil være tilgjengelig umiddelbart etter at du har koblet smarttelefonen fra datamaskinen.

Til slutt gir Linux størst fordel på nettbrett, hvis skjerm lar deg jobbe mer eller mindre tålelig i et grafisk miljø, og muligheten til å koble til mus og tastatur via en OTG-kabel gir generelt sjansen til å gjøre nettbrettet om til en fullverdig arbeidsstasjon. Samtidig er det ingen spesiell forskjell mellom å installere en Linux-distribusjon på et nettbrett og en smarttelefon.

Hvordan?

Det er veldig enkelt å portere Linux til Android og Linux-kjernen spiller en stor rolle her. Enhver Linux-distribusjon er et sett med applikasjoner og biblioteker som kjører på toppen av Linux-kjernen, og siden Android i seg selv er basert på en nesten uendret Linux-kjerne, kan disse applikasjonene og bibliotekene kjøres inne i Android-miljøet uten problemer. Du trenger bare å finne en distribusjon som det er en port til ARM-plattformen for (ikke glem at 99% av alle Android-enheter kjører på ARM), installer den ved å bruke en ARM-emulator på en virtuell harddisk (det vil si å en fil), slipp denne filen på SD-kortet til enheten, åpne en terminal, monter bildet som en loopback-enhet og chroot det inni. Alle! Det er like enkelt som å kjøre en FTP-server i et chrooted miljø - en enkel og flere tiår testet metode.

Den eneste snublesteinen når du bestemmer deg for å kjøre en Linux-distribusjon i Android er det grafiske miljøet. Selv om det ikke er noen problemer med å få tilgang til konsollen takket være tilstedeværelsen av en fullverdig terminalemulator, begynner problemer med grafiske applikasjoner - det er ingen innebygd X-server for Android, og det er umulig å kjøre en vanlig X-server i selve distribusjonen på grunn av grunnleggende forskjeller i grafikkarkitekturen grønne robotundersystemer. Til tross for det faktum at den bruker en standard Linux Framebuffer som du kan kjøre en X-server på, tilhører den eksklusive retten til å bruke den i utgangspunktet Android-biblioteker på høyere nivå, så du sitter igjen med enten å laste en Linux-distribusjon i stedet for Android ( som er helt upraktisk) eller komme opp med løsninger .

Kontrollere driften av de nødvendige modulene

Husk at støtte for loopback-enheter og ext2/ext3-filsystemer som kreves for å montere bildet, ikke er tilgjengelig i alle Linux-kjerner installert på Android-smarttelefoner. Du kan se etter støtte ved å bruke lsmod | grep -e loop -e ext2.

Entusiaster kom seg ut av denne situasjonen ved å bruke en enkel metode for "eksternt" å koble til skrivebordet ved å bruke en hvilken som helst VNC-klient tilgjengelig for Android. Inne i chroot-miljøet kjører Xvnc X-serveren og alle applikasjoner kjører under dens kontroll. Brukeren trenger bare å installere VNC-klienten, skrive inn den lokale adressen - og vips, et fullverdig skrivebord dukker opp på skjermen.

Den eneste flaskehalsen ved bruk av Remote Desktop er ytelsen. Selv når du arbeider lokalt, kan ikke VNC gi riktig kraftnivå, noe som ville være nok for jevn rulling eller flytting av vinduer uten etterslep. Det har ennå ikke vært mulig å løse dette problemet; prosjekter for å utvikle en innebygd X-server som vil bruke Android-grafikkundersystemet er fortsatt veldig grove og kan ikke brukes til å kjøre fullverdige grafiske miljøer. Men ingen forbyr å bruke dem; for eksempel er X Server fra Darkside Technologies Pty Ltd (goo.gl/ap3uD) ganske egnet for å kjøre enkel programvare.

Opprinnelig eksisterte Linux for Android bare i form av et bilde med et allerede installert system, samt forklarende instruksjoner om hvordan du kobler til og bruker dette bildet. Da dukket det opp skript som automatiserte prosessen med å koble bildet og starte Linux, men de krevde også litt hjernearbeid. Endelig har det nylig vært installeringsprogrammer tilgjengelig på Google Play (for eksempel goo.gl/RSA1j), som til en viss grad automatiserer prosessen med å lansere distribusjonen, selv om dette i hovedsak fortsatt er den samme installasjonsveiledningen, men interaktiv, med direkte lenker til nedlasting av bilder og skript.

Alternative alternativer

Jeg har allerede nevnt ovenfor at Linux-distribusjonen kan lastes i stedet for Android, takket være at det vil være mulig å bruke Framebuffer for direkte tilgang til videoadapteren og øke hastigheten på driften av det grafiske grensesnittet betydelig. Men å gjøre dette på en smarttelefon er nesten meningsløst - Linux er uegnet som hovedsystem på små skjermer, og det vil være umulig å motta anrop og bruke Internett. Men på et nettbrett vil Linux se ganske anstendig ut.

Vanligvis er den såkalte native versjonen av Linux-distribusjonen installert på en enhet som i utgangspunktet kjører Android som følger. En ekstra partisjon opprettes på nettbrettets interne NAND-stasjon, som Linux-distribusjonen kopieres til. U-Boot-oppstartslasteren (brukes av de fleste nettbrett) er deretter konfigurert til å bruke denne partisjonen som oppstartspartisjon. Som et resultat vil nettbrettet automatisk starte opp i Linux-systemet etter at strømmen er slått på.

For å forlate muligheten for å starte Android, rekonfigureres U-Boot oppstartslasteren slik at partisjonen med Linux-systemet ikke er den viktigste, men fungerer som en "gjenopprettingspartisjon" (gjenopprettingsmodus), tilgjengelig ved å slå på enheten med volumtasten holdt nede (den samme som brukes til å flashe enheten og utføre ulike gjenopprettingsoperasjoner). På denne måten kan du få en dual-boot-enhet: Android som standard og en Linux-distribusjon når du starter opp i gjenopprettingsmodus. Selve gjenopprettingsmodusen forblir bare tilgjengelig ved hjelp av spesialverktøy.

Hvis NAND-minnet ikke er nok til å romme et fullverdig Linux-system, flyttes deler av det (vanligvis /usr-partisjonen) til et bilde eller en partisjon på et SD-kort. Forresten, ext2-partisjonen på minnekortet kan også brukes til å installere Linux som kjører i et chroot-miljø.

Å installere en innebygd Linux-distribusjon er vanskeligere enn å installere en som kjører i et chroot-miljø, men det er verdt det hvis du har et nettbrett og en OTG-kabel som du kan koble til et tastatur og en mus.

Praktisk leksjon

Som jeg allerede har sagt, er det bare distribusjoner som er portet til ARM-arkitekturen som er egnet for å kjøre Android. For det første er disse Ubuntu og Debian, og den første er av åpenbare grunner av mye større interesse blant robotikk. Du kan også installere Gentoo og flere spesialiserte distribusjoner, for eksempel Backtrack. La oss vurdere det mest typiske tilfellet, det vil si å installere Ubuntu i henhold til standardskjemaet, uten å bruke noen automatiserte installatører eller noe annet.


Først trenger vi et harddiskbilde med distribusjonen installert. Du kan lage den selv ved å bruke QEMU-emulatoren, men på grunn av det faktum at installasjonsprosedyren er helt standard og typisk, vil jeg ikke beskrive den, men vil ganske enkelt henvise deg til adressen goo.gl/9nvBi. Her er et arkiv med et bilde der Ubuntu 12.04 med det grafiske miljøet LXDE er forhåndsinstallert (det ville være uklokt å kjøre Unity/Gnome på en telefon/nettbrett). Arkivet skal pakkes ut og filen ubuntu.img skal plasseres på minnekortet.

Deretter må du montere bildet og chroot det inn i distribusjonsmiljøet. For å gjøre dette trenger du rotrettigheter, firmware med støtte for blokkering av loopback-enheter, og busybox installert (søk markedet etter "busybox installer"; CyanogenMod har det som standard). Sekvensering:

  1. Åpne terminalemulatoren i Android (hvis ikke, kan du installere Terminal Emulator fra Market). Eller vi kobler smarttelefonen/nettbrettet til datamaskinen og får tilgang til terminalen ved å bruke adb: $ cd path-to-Android-SDK/platform-tools $ sudo ./adb shell

    Ikke glem at feilsøkingsmodusen i dette tilfellet må være aktivert: "Innstillinger -> For utviklere -> Android Debugging".

  2. Vi får root-rettigheter:$su
  3. Vi lager en blokk tilbakekoblingsenhet, kobler et diskbilde til det og monterer det:# mknod /dev/block/loop255 b 7 255 # mount -o remount,rw / # mkdir /mnt/ubuntu # mount -o loop,noatime -t ext2 \ /sdcard/ubuntu.img /mnt/ubuntu

    Innholdet i bildet skal vises i /sdcard/ubuntu-katalogen. Sjekk at dette er tilfelle.

  4. Vi kobler til alle virtuelle filsystemer som er nødvendige for at distribusjonen skal fungere:# mount -t proc proc /mnt/ubuntu/proc # mount -t sysfs sysfs /mnt/ubuntu/sys # mount -o bind /dev /mnt/ubuntu/dev
  5. Vi konfigurerer det slik at du kan få full tilgang til nettverket fra chroot-miljøet:# sysctl -w net.ipv4.ip_forward=1 # echo "navneserver 8.8.8.8" > /mnt/ubuntu/etc/resolv.conf # echo "navneserver 8.8.4.4" >> /mnt/ubuntu/etc/resolv.conf # echo "127.0.0.1 localhost" > /mnt/ubuntu/etc/hosts
  6. La oss gå til chroot-miljøet:# chroot /mnt/ubuntu

Det er faktisk her installasjonen slutter. Nå kan du starte konsollprogramvare, oppdatere systemet, starte nettverkstjenester og gjøre nesten alt som kan gjøres med et vanlig desktop Linux-system, og selvfølgelig ikke glemme at noe programvare som direkte samhandler med maskinvare og ulike spesialiserte pseudoenheter vil ikke fungerer. Ikke glem at virtuell FS skal demonteres etter fullført arbeid.

Nå må vi installere og kjøre Xvnc X-serveren, som eksporterer skjerm- og inndataenheter ved hjelp av VNC-protokollen. TightVNCserver er allerede i det presenterte bildet og er til og med konfigurert, men slik at du bedre kan forstå prosessen og være i stand til å løse eventuelle problemer som oppstår, vil jeg beskrive i detalj prosessen med å installere og starte den.

  1. Oppdater og installer TightVNCserver:# apt-get update # apt-get install tightvncserver
  2. Lag en fil /root/.vnc/xstartup og skriv følgende inn i den:#!/bin/sh xrdb $HOME/.Xresources xsetroot -solid grå eksport XKL_XMODMAP_DISABLE=1 icewm & lxsession

    Den tredje kommandoen er nødvendig her for å fikse problemer som kan oppstå på grunn av det fysiske fraværet av et tastatur på enheten.

  3. Vi lanserer Xvnc ved å bruke vncserver wrapper med rotrettigheter:# eksport BRUKER=rot # vncserver -geometri 1024x800

    Som et resultat av å utføre den siste kommandoen, vil en forespørsel om et passord for å få tilgang til VNC-serveren vises på skjermen; det er bedre å spesifisere noe enkelt som "123". Du kan stille inn praktisk talt hvilken som helst oppløsning, men det er bedre hvis den samsvarer med den fysiske oppløsningen på enhetens skjerm.

  4. Installer AndroidVNC-applikasjonen på smarttelefonen din, start den, spesifiser IP-adressen og port 5901, og koble til. LXDE-skrivebordet skal vises på skjermen.

For ikke å bry deg med å legge inn alle kommandoene manuelt, kan du bruke ubuntu.sh-skriptet som ligger her: goo.gl/xSpK4. Bare legg det og ubuntu.img-bildet i ubuntu-katalogen på SD-kortet og kjør skriptet med kommandoen sh ubuntu.sh, og etter 5-10 sekunder koble til skrivebordet ved hjelp av AndroidVNC. Husk at skriptet monterer bildet til /data/local/mnt-katalogen.


Installerer Gentoo på en ext2-partisjon

Så vi installerte Ubuntu ved å bruke et bilde med et filsystem og triks med en loopback-enhet og et chroot-miljø. Dette viste seg å være enkelt å gjøre, og med bruk av skript er det generelt veldig enkelt, men hva om vi går videre og installerer en mer hardcore-distribusjon, og ikke bruker bilder, men på en dedikert ext2-partisjon på minnekortet? På denne måten kan vi løse problemet med noen fastvare og kjerner uten støtte for loopback-enheter, og dessuten kan vi glede oss over en normal distribusjon installert i henhold til alle reglene.


La oss ta Gentoo som et eksperimentelt system. For å installere den på en ext2-partisjon trenger vi et minnekort med en kapasitet på minst 2 GB og en forankret smarttelefon med busybox installert. Rekkefølgen av handlinger er som følger.

  1. Vi tar en sikkerhetskopi av dataene fra minnekortet og lager en ekstra partisjon på det, med en kapasitet på minst to gigabyte. Dette kan gjøres ved å bruke et hvilket som helst diskpartisjonsprogram, men husk at hvis du vil fortsette å bruke SD-kortet til det tiltenkte formålet, bør du lage en FAT32-partisjon i begynnelsen av kortet, slik at det blir det første. en, og en ekstra partisjon for å installere distribusjonen bør være den andre.
  2. Formatering av SD-kortpartisjoner:$ sudo mkfs.vfat /dev/sdc1 $ sudo mkfs.ext2 /dev/sdc2
  3. Vi tar telefonen, går til "Innstillinger -> Om telefonen" og ser på hvilken prosessor som er installert. Gå deretter til siden goo.gl/PRfux og last ned stage3 for ønsket arkitektur, for eksempel er stage3 for ARM v7 i current-stage3-armv7a katalogen.
  4. Vi monterer ext2-partisjonen til minnekortet på datamaskinen og pakker ut innholdet i det resulterende arkivet i det:$ sudo mount /dev/sdc2 /mnt $ sudo tar -xxpf stage3-*.bz2 -C /mnt

    Vi redigerer umiddelbart konfigurasjonene og alt du trenger, etter din smak, inkludert redigering av /etc/resolv.conf i henhold til eksemplet fra forrige seksjon.

  5. Vi starter terminalemulatoren (eller kjører "adb-skallet"), monterer alt vi trenger og går til chroot (nesten det samme som i tilfellet med Ubuntu): # mount -o remount,rw / # mkdir /mnt/gentoo # mount /dev/ block/mmcblk0p2 /mnt/gentoo # mount -t proc proc /mnt/ubuntu/proc # mount -t sysfs sysfs /mnt/ubuntu/sys # mount -o bind /dev /mnt/ubuntu/dev # sysctl -w net. ipv4.ip_forward=1 # chroot /mnt/gentoo

Tilgang til skrivebordet gjøres på samme måte som i Ubuntu, bortsett fra at nå må du sette sammen en haug med programvare direkte på telefonen :). Du kan imidlertid sette opp et miljø for krysskompilering på datamaskinen din, men dette er et emne for en egen artikkel.


Innebygd installasjon

Etter å ha lansert Ubuntu ved hjelp av en VNC-server, vil du legge merke til tregheten i driften, som er assosiert med VNC-protokolloverhead for overføring av bilder "over nettverket". For å unngå dette problemet kan du installere Ubuntu som hovedsystem ved siden av Android, slik at det kan bruke videoadapteren direkte. Dessverre er det ingen universell måte å gjøre dette på. Hver enhet er unik på sin egen måte, inkludert ulike partisjonstabeller for NAND-minnet den er installert på, ulike enheter og drivere for driften.


Heldigvis er prosessen med å installere den opprinnelige versjonen av distribusjonen godt beskrevet for mange enheter i russiskspråklige fora, så det vil ikke være vanskelig å finne instruksjoner. Imidlertid er det verdt å umiddelbart være oppmerksom på flere funksjoner ved denne typen installasjon:

  • Separat eller hoved NAND-partisjon. Linux-distribusjonen kan installeres enten i en forhåndsopprettet partisjon i NAND-minnet eller i hovedoppstartspartisjonen. I det første tilfellet forlater fastvareutvikleren vanligvis muligheten til å laste Android ved hjelp av et spesielt skript eller ved å laste en Linux-distribusjon i gjenopprettingsmodus; i det andre vil det bli installert i stedet for Android og for å gi tilbake muligheten til å laste ned roboten, må du laste ned enheten på nytt.
  • Mulighet for dobbel oppstart. Hvis Linux-distribusjonen er installert på en separat partisjon, kan utvikleren la muligheten til å starte opp Android. Du bør imidlertid umiddelbart være oppmerksom på hvordan denne nedlastingen skjer: ved å bruke gjenopprettingsmodus eller et skript som er lansert fra en vanlig datamaskin. Likevel vil den andre metoden være upraktisk på veien.
  • Maskinvarestøtte. Den originale Linux-kjernen til Android-fastvaren inkluderer allerede alle nødvendige drivere som kan være nødvendige for driften av et fullverdig Linux-system, men ikke alle Linux-fastvarene vil starte alt av seg selv. Det oppstår ofte problemer med Wi-Fi-adapteren og berøringsskjermen, som ikke reagerer tilstrekkelig på berøring. Derfor, før du installerer fastvaren, bør du lese nøye om mulige komplikasjoner.

I alle fall, vær forberedt på at under installasjonen av Linux-distribusjonen vil alle dataene dine bli ødelagt. Det er ingen vei uten dette.

Hva blir det neste

En Linux-distribusjon installert ved siden av det originale Android-systemet kan bli et veldig praktisk arbeidsverktøy, men for øyeblikket anses "Linux inne i Android" mer som et leketøy og en måte å vise frem til venner enn en seriøs løsning. Jeg er sikker på at snart, når en fullverdig implementering av Wayland grafiske server vises for Android, vil situasjonen begynne å endre seg og vi vil se distribusjoner med et grensesnitt tilpasset små skjermer, samt fullverdige Linux-applikasjoner distribuert i i form av vanlige APK-pakker. Ikke glem prosjektet "Ubuntu for Android" - innenfor rammen av det pågår arbeidet med en offisiell port av Ubuntu for Android, som lar deg bruke smarttelefonen din som en bærbar systemenhet koblet til en hvilken som helst skjerm.

Hei, jeg har en mini-PC ug 802, hvordan kan jeg installere Linux på den? teltar

Dette er et veldig interessant emne for meg, venner, siden jeg profesjonelt administrerer Linux-servere. På servere er det interessant, men for meg er det allerede hverdagslig og vanlig. Men å installere Linux-distribusjoner på enheter med ARM-arkitektur er en størrelsesorden mer interessant.

Hva er forskjellen mellom en datamaskin og en smarttelefon eller nettbrett?

Faktisk, konseptuelt, er forskjellen liten - både mobile og stasjonære enheter, eller til og med servere, er laget etter de samme prinsippene. For mobile enheter brukes imidlertid en annen prosessorarkitektur. Desktop-CPUer er designet på x86- eller amd64-arkitekturer. Og de fleste mobile enheter har en prosessor basert på ARM-arkitektur. Historisk sett skyldes dette at slike prosessorer har betydelig lavere strømforbruk, noe som er en livsnødvendighet for mobile enheter.

Hvilket operativsystem kan installeres på mobile enheter?

Så alle programmer, inkludert operativsystemet, må utvikles spesielt for denne arkitekturen for å kunne fungere på denne maskinvaren. Derfor vil vanlige versjoner av Linux installert på skrivebord eller servere ikke fungere her. Heldigvis finnes det mange distribusjoner og versjoner for denne arkitekturen. Starter med den beryktede Android, som de fleste smarttelefoner er utstyrt med, og slutter med eksotiske distribusjoner, som den spesialiserte Backtrack (nå Kali Linux). Men av større interesse er selvfølgelig noen mer kjente distribusjoner.

Hva er Android?

Android er et operativsystem Linux basert, utviklet av Google for mobile enheter. Verdens mest populære mobiloperativsystem. Det skal forstås at LInux faktisk bare er kjernen i operativsystemet. Og mange operativsystemer er bygget på grunnlaget, og Android er bare ett av dem.

Kjernen er den grunnleggende funksjonaliteten som lar deg bruke alle enheter og alternativer på maskinvareplattformen – det vil si drivere og enhetsadministrasjon. Kjernen inkluderer også noen grunnleggende programmer og kommandolinjeverktøy. Faktum er at i Linux-familien (dette er meningen som oftest menes - en familie av operativsystemer basert på denne kjernen, og ikke selve kjernen) - er det grafiske skallet en separat del, sitt eget abstraksjonsnivå.

Og minimumskonfigurasjonen av disse OS-ene er nettopp uten et grafisk skall, bare et tekstkommandolinjegrensesnitt. Dette gjør at disse OS-ene kan bygges inn på de mest uvanlige stedene. For eksempel i nettverksutstyr, maskinverktøy, datamaskiner og andre komplekse enheter, for eksempel i fly og biler. Til og med vaskemaskinen og mikrobølgeovnen din kan ha noe lignende installert :)

Dette er en Android-enhet. Følgelig bør Android være installert som standard. Som faktisk er Linux. Men med noen alvorlige restriksjoner. Å installere noen andre Linux kan utvide mulighetene til en mobil enhet betydelig. Bruksmulighetene blir tilnærmet ubegrensede. Vel, tenk å bruke en mobiltelefon som server! Mange verktøy blir tilgjengelige. Hvis det er et nettbrett, ved å koble eksterne enheter til det via en OTG-kabel, kan du bruke det som en fullverdig datamaskin! For hva? Det er et annet spørsmål. Jeg håper leseren vår vil dele ideene sine i kommentarene.

Hvordan installere Linux på en Android-enhet?

Så, installasjon.

Det er to alternativer - du kan gjøre en fullverdig installasjon, som de sier, på maskinvare. Dette er faktisk en blinking av enheten. Samtidig mister vi den opprinnelige funksjonaliteten til enheten levert av produsenten. Og dette var kanskje ikke i det hele tatt det vi ønsket. For eksempel er minidatamaskinen UG 802, som leseren vår er interessert i, en enhet designet for å utvide funksjonaliteten til TV-er. Fordi den kan settes direkte inn i HDMI-porten på hvilken som helst TV, og gjør den om til Smart.

Heldigvis finnes det en annen måte å installere Linux på - rett inne i enhetens hovedoperativsystem, i dette tilfellet Android. Dette lar deg kjøre et såkalt chroot-miljø inne i Android. I dette tilfellet vil du motta to relaterte operativsystemer som kjører parallelt på én kjerne - Android. Og du kan bytte mellom dem.

Denne tilnærmingen er praktisk for smarttelefoner og nettbrett, men er kanskje ikke egnet for UG 802. I dette tilfellet må du kanskje flashe det nødvendige operativsystemet. Og dette er allerede en viss risiko for at enheten kan bli skadet.

Jeg har dessverre ingen erfaring med slike eksperimenter. Men det er nok informasjon på Internett om dette. Studer, prøv å installere.

Derfor vil jeg gi noen lenker der du kan begynne å bli kjent med verden av hacking av mobilenheter :)

Hvem er hackere?

Ja, ja, ikke bli overrasket, dette er akkurat hacking - ikke-standard interferens i drift og design av systemer og programmer, endre dem og utvide funksjonaliteten. Dette er nettopp den opprinnelige betydningen av dette ordet. Og en hacker er ikke en cracker eller en virusskribent, slik de fleste er vant til å tenke. Dette er først og fremst en forsker. Ja, han bryter systemer, avslører det som ikke var ment å åpnes, men han gjør dette med mål om å lære, ikke skade.

https://xakep.ru/2012/10/22/android-tablet-linux-install/ - en artikkel om installering av Linux på smarttelefoner i det eldste magasinet, som nettopp er en refleksjon av essensen av hacking.

https://habrahabr.ru/post/221543/ - Habr, en like gammel og enda mer kjent ressurs. Og artikkelen her er fersk, og beskriver i stor detalj opplevelsen av å installere Arch Linux på toppen av Android, i form av et chroot-miljø.

https://geektimes.ru/post/44220/ - Giktimes - et nettsted fra skaperne av Habr, og på det var det en detaljert manual for å installere Debian over Android på en smarttelefon. Artikkelen, selv om den er veldig gammel, berører grunnleggende ting som må forstås før man går i gang med en slik operasjon. Selv om dette ikke hjelper deg med å etablere, vil det hjelpe deg å få kunnskap, uten hvilken videreutvikling av emnet og løsningen på problemet er umulig. Og etter å ha studert slike artikler, vil du føle deg mer selvsikker og vil kunne søke etter informasjon om emnet mer spesifikt, om spesifikke problemer som må tas opp under installasjonen.

For eksempel er disse artiklene om emnet sannsynligvis ikke de eneste på de ovennevnte nettstedene. Du kan alltid prøve å se etter flere artikler om dette på slike spesialiserte ressurser. Jeg fant og så på et par emner om installasjon av Linux på mobile enheter på 4pda.ru som dette, For eksempel

Det var alt for i dag. Men det kan alltid skje at jeg vil fortsette banketten med dette emnet :)

Hvis det oppstår problemer (og de vil oppstå med 99 % sannsynlighet :)), kan du også stille spørsmål her, vi samler informasjon, løser problemer sammen, dette er jeg også veldig interessert i.

Deretter bestemte jeg meg for å kjøpe et mirakel av kinesisk nettbrettproduksjon: en superpad. Dette nettbrettet ble tatt som et leketøy for å «grave litt», deltid, en leser, et spill for par og en klokke på en lang reise... Jeg skal umiddelbart legge merke til at jeg har to USB-harddisker på 500 GB og 1TB, hvor alt som er viktigst for et morsomt liv er lagret, og de er delt opp i ntfs og ext4. Og naturligvis ser ikke nettbrettet dem.

Her er min frivillige

Dette er den første grunnen til å grave dypere. Etter å ha sett 200 forumsider på xda-developers.com, sikkert

På dette stadiet er alle forsøk på å åpne nettbrettet lagt på hylla. Frem til den strålende tiden for studenten - økten. Og siden i løpet av økten elevene gjør absolutt alt, så lenge de ikke er i faget, har de morsomme kveldssamlingene på Internett på åpenbart borgerlige sider gjenopptatt. Og den geniale ideen kom om å installere ortodokse Linux på dette nettbrettet, i mitt tilfelle - ubuntu.
Hva som kom ut av dette, se nedenfor.

Det er tydelig at du ikke bare kan plukke den opp og installere den ... vel, hvor ble det av vår ...

Vi trenger:

La oss se på hovedstadiene for å laste Android og Linux
1. Slå på og kjøring av ROM-kode Slå på og kjøring av ROM-kode
2. Oppstartslasteren Oppstartslasteren
3. Linux-kjernen Linux-kjernen
4. Init-prosessen Init-prosessen
5. Zygote og Dalvik konsoll(bash, zsh...) / wm(kde, gnome...)
6. Systemserveren Oppstart fullført
7. Oppstart fullført

Som du kan se, starter forskjellene fra utførelsesfasen.
Det er det enkleste å endre.

Jeg skal skrive ærlig, jeg trodde at du bare kunne bruke Android-init og at den var tett skrudd til kjernen. Og selv etter å ha mottatt et eksempel på en fungerende ramdisk fra et annet nettbrett, trodde jeg ikke det ville starte ...

ramdisk innhold
bin dev etc home init init.rc lib linuxrc mnt newroot opt​proc root sbin sys tmp usr var
I /bin er det busybox, i /sbin er det switch_root med en lenke til den.
Init-kode fra ramdisk fra zt-180

#!/bin/sh ekko Starter fra initram-bilde. Ekko Venter på SD-KORT-våkne... sleep 3 ekko "Monterer nye rootfs"-montering -t ext2 /dev/mmcblk0p2 /newroot && echo OK echo Hold på, bytter root... exec switch_root /newroot /sbin/init ekko hrm, ha et skall i stedet for exec /bin/ash

Alt som gjenstår er å flashe ramdisken inn i minnet (jeg brukte burntool under xp) og - voila, oppstartsstadiet. Ja, jeg flashet fastvaren i stedet for gjenoppretting, så for å starte Linux må du holde nede tastene ved oppstart.

Så lastestadiet er fullført, og du bør være tålmodig, siden konsollen ikke viser tegn til liv, og alt laster ganske sakte.

Sette opp autologin for den første konsollen
I /etc/init/tty1.conf erstatt den siste linjen med exec /bin/login -f Yor_Login< /dev/tty1 >/dev/tty1 2>&1 så i din ~/.bashrc kan du skrive kommandoer som vil starte under automatisk pålogging.
Vi kjemper mot X-serveren
For meg fungerte det definitivt ikke bra med berøringsskjermen, xorg.conf og xterm... Jeg fjernet den synaptiske driveren og la inn følgende i ~/.xinitrc:
#!/bin/bash # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $ # /etc/X11/xinit/xinitrc # # global xinitrc-fil, brukt av alle X-sesjoner startet av xinit (startx) # påkall global X-sesjonsskript #. /etc/X11/Xsession xclock -geometry 50x50-1+1 & exec xterm -geometry 80x66+0+0 -name login
Kamp mot arbeidsmiljøet
Jeg ønsket å installere kde fordi jeg virkelig liker grafikkgjengivelsen med qt-biblioteket. Jeg vil si med en gang: ja, den installerte og startet, men HVORDAN ...
Først satte jeg umiddelbart opp autologin:
i /etc/kde4/kdm/kdmrc finner og endrer vi følgende for å passe oss selv
AutoLoginEnable=true # Hvis sant, logg på automatisk etter utlogging. Hvis falsk, utføres automatisk pålogging kun # når en visningsøkt starter. # Standard er falsk #AutoLoginAgain=true # Forsinkelsen i sekunder før automatisk pålogging starter. # Standard er 0 AutoLoginDelay=3 # Brukeren skal logge på automatisk. ALDRI spesifiser root! # Standard er "" AutoLoginUser=Logg inn # Passordet for at brukeren skal logge på automatisk. Dette er IKKE nødvendig # med mindre brukeren er logget på et NIS- eller Kerberos-domene. Hvis du bruker dette # alternativet, bør du "chmod 600 kdmrc" av åpenbare grunner. # Standard er "" AutoLoginPass=Passord
og, som skrevet, gjør vi chmod 600 kdmrc i konsollen under root slik at dårlige mennesker ikke spionerer på passordet vårt.
For det andre, ved inngangen hang skjermspareren mistenkelig lenge, og jeg var i tvil og ringte startkde fra konsollen. Etter en lang og kjedelig visning av alle slags feil, ble plasmaen endelig lastet i netbook-modus. Grafiske effekter er slått av, siden vi sitter under en rammebuffer, og noen steder er det ville nedganger, men fortsatt er dette kde og det har lastet!
Finjusterer alt slik at det passer deg
Hver har sin egen, jeg har ikke gjort noen optimalisering ennå, men det er mye som skal gjøres: få fart på lasting, optimaliser arbeidsområdet. Jeg ser mot en mer lett wm – e16 – men har ikke gjort den til den viktigste ennå. Du må også kalibrere berøringsskjermen, heldigvis finnes det allerede et virtuelt tastatur i kde.
Jeg ser mot openbox + razor-qt.
"La oss nyte!"
Resultater

Jeg koblet til debian 6-lagrene. Lyden fungerer ikke, berøringsskjermen og arbeidsområdet er ikke konfigurert. Det er virkelig ikke nok kjernemoduler, så jeg skal prøve å montere og skru den på...
Mange tjenester og retningslinjer har blitt slått ned, Internett kan bare nås som root, men Internett er konfigurert og det er gode nyheter.

Ps: Ja, uten kjernemoduler er kun fat- og ext2-partisjoner koblet til, noe som ikke er oppmuntrende.
Et usb-tastatur + mus vil være svært verdifullt ved feilsøking og konfigurering.

Nå om hva som kan brukes i prosessen
ramdisk fra zt-180
brent verktøy
Ramdisk ompakkingssett. Binærfilene må plasseres i PATH.