Benutzer-Werkzeuge

Webseiten-Werkzeuge


allgemein:minix:minix_script

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
allgemein:minix:minix_script [2014/05/05 15:47] richardallgemein:minix:minix_script [2025/11/19 16:39] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-~~DISCUSSION|Ergänzungen~~ +~~DISCUSSION:closed|Ergänzungen~~ 
-====== Minix Neo X5 build_mini_x5_sys_V2.sh ======+====== Minix Neo X5 build_mini_x5_sys_v2.sh ====== 
 + 
 +**Es wird keine Haftung für Schäden, die durch hier veröffentlichte Programme verursacht werden, übernommen.  
 + 
 +Nutzung auf eigene Gefahr!**
  
 Das folgende Skript  basiert auf verschiedenen Quellen. Besonders hervorzuheben ist die Seite [[http://www.myria.de/computer/864-linux-auf-dem-minix-x5| myria.de]]. Diese Seite legt die Basis für diese Arbeit. Nochmals vielen Dank an dieser Stelle!! Das folgende Skript  basiert auf verschiedenen Quellen. Besonders hervorzuheben ist die Seite [[http://www.myria.de/computer/864-linux-auf-dem-minix-x5| myria.de]]. Diese Seite legt die Basis für diese Arbeit. Nochmals vielen Dank an dieser Stelle!!
Zeile 57: Zeile 61:
 | ''adb'' | Laden und einrichten der ''adb''-Tools. Damit kann der minix per ''adb reboot recovery'' veranlasst werden in gezielt den recovery-Mode zu starten. |  | ''adb'' | Laden und einrichten der ''adb''-Tools. Damit kann der minix per ''adb reboot recovery'' veranlasst werden in gezielt den recovery-Mode zu starten. | 
  
-Und hier nun das Skript+ 
-<file bash build_minix_x5_sys_v2.sh >+===== Das eigentliche Script build_minix_x5_sys_v2_1.sh ===== 
 + 
 +Falls das Script über die Konsole laden werden soll, wenn z.B. kein Browser zur Hand ist, dann kann dieser Befehl genutzt werden: 
 +<code>wget -O skript.sh "http://www.kopfload.de/doku.php?do=export_code&id=allgemein:minix:minix_script&codeblock=2"</code> 
 + 
 +Und hier nun das Script
 +<file bash build_minix_x5_sys_v2.sh>
 #!/bin/bash #!/bin/bash
 #SDCARDDIR=/media/linuxroot #SDCARDDIR=/media/linuxroot
-SDCARDDIR=/media/wichy/linuxroot+SDCARDDIR=/media/$USERNAME/linuxroot
 RED='\e[1;31m' RED='\e[1;31m'
 GREEN='\e[1;32m' GREEN='\e[1;32m'
Zeile 73: Zeile 83:
 SHARUTILS=sharutils SHARUTILS=sharutils
 LIBUSBDEV=libusb-1.0-0-dev # libusb LIBUSBDEV=libusb-1.0-0-dev # libusb
-CROSSCOMPILER=arm-linux-gnueabihf-gcc-4.7 # Crosscompiler für ARM-Architektur+CROSSCOMPILER_DEB=gcc-arm-linux-gnueabihf # Paket des Crosscompilers 
 +#CROSSCOMPILER=arm-linux-gnueabihf-gcc-4.7 # Crosscompiler für ARM-Architektur; wird nur bei älteren Version <4.8 benötigt
 BESSENTIAL=build-essential BESSENTIAL=build-essential
 LIBNCURSES=libncurses5-dev LIBNCURSES=libncurses5-dev
Zeile 79: Zeile 90:
 VARIANT=minbase VARIANT=minbase
  
-#HOMEDIR=`pwd` # akutelles Home-Verzeichnis +HOMEDIR=`pwd` # akutelles Home-VerzeichnisStart-Pfad, in den der Unterordner "minix" erstellt wird
-HOMEDIR=/data Start-Pfad, in den der Unterordner "minix" erstellt wird+
  
 WORKDIR=minix WORKDIR=minix
Zeile 86: Zeile 96:
 ROOTFSDIR=${BASEDIR}/$WORKDIR-rootfs ROOTFSDIR=${BASEDIR}/$WORKDIR-rootfs
 KERNELDIR=${BASEDIR}/$WORKDIR-kernel KERNELDIR=${BASEDIR}/$WORKDIR-kernel
 +ANDROIDDIR=${BASEDIR}/android/tools
 +ADBDIR=${BASEDIR}/android/platform-tools
 KERNELNAME=rk3066-kernel KERNELNAME=rk3066-kernel
  
Zeile 91: Zeile 103:
  
 # Konfiguration des Minix System # Konfiguration des Minix System
-MINIXROOTUSER=wichy  # setzen des sudo-User des minix;+MINIXROOTUSER=root  # setzen des sudo-User des minix;
 MINIXHOSTNAME=minix # Systemname des minix MINIXHOSTNAME=minix # Systemname des minix
-MINIXSSID=testwlan # WLAN SSID des minix +MINIXSSID=wlanssid # WLAN SSID des minix 
-MINIXPSK=mypass # WLAN PSK des minix+MINIXPSK=wlanpass # WLAN PSK des minix
 # Liste mit zusätzlichen Tools, die auf dem Minix Neo installiert werden sollen. # Liste mit zusätzlichen Tools, die auf dem Minix Neo installiert werden sollen.
 MINIXEXTRATOOLS="nano,openssh-server,ifupdown,netbase,net-tools,isc-dhcp-client,keyboard-configuration,vim,sudo" MINIXEXTRATOOLS="nano,openssh-server,ifupdown,netbase,net-tools,isc-dhcp-client,keyboard-configuration,vim,sudo"
  
-DIST_MAIN=debian # debian oder ubuntu als Zielsystem festlegen; Version wird unten über UBUNTU_VERSION bzw. DEBIAN_VERSION festgelegt; wenn leer, dann wird der Wert erfragt+DIST_MAIN=debian # debian oder ubuntu als Zielsystem festlegen; Version wird unten über UBUNTU_VERSION bzw. DEBIAN_VERSION festgelegt; wenn LEER, dann wird der Wert erfragt
 DIST_VERSION=wheezy # percise für Ubuntu 12.04 ODER wheezy für Debian 7.0; wenn leer, dann wird der Wert erfragt DIST_VERSION=wheezy # percise für Ubuntu 12.04 ODER wheezy für Debian 7.0; wenn leer, dann wird der Wert erfragt
  
Zeile 145: Zeile 157:
 SOURCES_DEBIAN="deb $MIRROR_DEBIAN $DIST_VERSION main contrib non-free SOURCES_DEBIAN="deb $MIRROR_DEBIAN $DIST_VERSION main contrib non-free
 deb-src $MIRROR_DEBIAN $DIST_VERSION main contrib non-free" deb-src $MIRROR_DEBIAN $DIST_VERSION main contrib non-free"
- 
  
 # Variablen für Distributionsauswahl vorbereiten. # Variablen für Distributionsauswahl vorbereiten.
Zeile 160: Zeile 171:
   ;;   ;;
 esac esac
- 
  
 [ $UID -ne 0 ] && {  [ $UID -ne 0 ] && { 
-    echo "${RED}Fehler: Das Script benötigt root-Rechte.${NC}"+    echo -e "${RED}Fehler: Das Script benötigt root-Rechte.${NC}"
     echo -e "Aufruf mit \"${GREEN}sudo $0${NC}\""     echo -e "Aufruf mit \"${GREEN}sudo $0${NC}\""
     exit 1     exit 1
 } }
  
 +# Arbeitsarchive sichern
 alles_packen() { alles_packen() {
 echo -e "Packe rootfs und kernel in ${GREEN}minix.tar.bz2${NC}" echo -e "Packe rootfs und kernel in ${GREEN}minix.tar.bz2${NC}"
Zeile 175: Zeile 186:
 } }
  
 +# Arbeitsarchive wiederherstellen
 alles_auspacken() { alles_auspacken() {
 echo -e "Packe ${GREEN}minix.tar.bz2${NC} aus nach ${GREEN}$WORKDIR${NC}" echo -e "Packe ${GREEN}minix.tar.bz2${NC} aus nach ${GREEN}$WORKDIR${NC}"
Zeile 197: Zeile 208:
 } }
  
 +# System vorbereiten
 prepare() { prepare() {
 echo -e "-------- BEGIN Vorbereitungen (${CYAN}prepare${NC}) ---------" echo -e "-------- BEGIN Vorbereitungen (${CYAN}prepare${NC}) ---------"
Zeile 212: Zeile 223:
 if [ -z $(which ${GIT}) ] || [ -z $(which arm-linux-gnueabihf-gcc) ] || [ ! -e /usr/share/build-essential/essential-packages-list ] || [ -z $(which uudecode) ] || [ ! -d /usr/include/libusb-1.0 ] if [ -z $(which ${GIT}) ] || [ -z $(which arm-linux-gnueabihf-gcc) ] || [ ! -e /usr/share/build-essential/essential-packages-list ] || [ -z $(which uudecode) ] || [ ! -d /usr/include/libusb-1.0 ]
 then then
-  echo -e "Installiere ${RED}${GIT}, ${CROSSCOMPILER}, ${SHARUTILS}, ${LIBUSBDEV} und ${BESSENTIAL}${NC}." +  echo -e "Installiere ${RED}${GIT}, ${CROSSCOMPILER_DEB}, ${SHARUTILS}, ${LIBUSBDEV} und ${BESSENTIAL}${NC}." 
   apt-get update   apt-get update
-  apt-get -y install $GIT $CROSSCOMPILER $SHARUTILS $LIBUSBDEV $BESSENTIAL+  apt-get -y install $GIT $CROSSCOMPILER_DEB $SHARUTILS $LIBUSBDEV $BESSENTIAL
 # gcc wird als arm-linux-gnueabihf-gcc-4.7 installiert, make erwartet aber arm-linux-gnueabihf-gcc # gcc wird als arm-linux-gnueabihf-gcc-4.7 installiert, make erwartet aber arm-linux-gnueabihf-gcc
 # LÖSUNG: sym-link anlegen # LÖSUNG: sym-link anlegen
-  ln -s $(dirname `which $CROSSCOMPILER`)/$CROSSCOMPILER /usr/bin/arm-linux-gnueabihf-gcc+#  ln -s $(dirname `which $CROSSCOMPILER`)/$CROSSCOMPILER /usr/bin/arm-linux-gnueabihf-gcc
 else else
   echo -e "${GIT}, ${CROSSCOMPILER}, ${SHARUTILS}, ${LIBUSBDEV} und ${BESSENTIAL} sind bereits installiert. ${GREEN}OK${NC}."     echo -e "${GIT}, ${CROSSCOMPILER}, ${SHARUTILS}, ${LIBUSBDEV} und ${BESSENTIAL} sind bereits installiert. ${GREEN}OK${NC}."  
Zeile 243: Zeile 254:
  
  
-bootstrap anlegen+rootFS anlegen
 bootstrap() { bootstrap() {
 echo -e "-------- BEGIN RootFS erzeugen (${CYAN}bootstrap${NC}) ---------" echo -e "-------- BEGIN RootFS erzeugen (${CYAN}bootstrap${NC}) ---------"
Zeile 332: Zeile 343:
 then  then 
   rm flash_kernel.sh   rm flash_kernel.sh
-  echo "flash_kernel.sh vorsichtshalber gelöscht!" +  echo "flash_kernel.sh vorsichtshalber gelöscht!"  # mit falschen Parameter kann es den minix zerstören 
-  echo "statt flash_kernel.sh bitte ${GREEN}flash2minix.sh${NC} nutzen."+  echo -e "statt flash_kernel.sh bitte ${GREEN}flash2minix.sh${NC} nutzen."
 fi fi
  
Zeile 381: Zeile 392:
 } }
  
-#######+recovery.img auf minix flashen
 flash_recovery() { flash_recovery() {
 if [ -d ${KERNELDIR}/rkflashtool ] if [ -d ${KERNELDIR}/rkflashtool ]
Zeile 428: Zeile 439:
   echo -e "Größe Image   : \${GREEN}\$offset\${NC}"   echo -e "Größe Image   : \${GREEN}\$offset\${NC}"
   echo -e "Start-Adresse : \${GREEN}\$addr\${NC}"   echo -e "Start-Adresse : \${GREEN}\$addr\${NC}"
-  echo -e "\${GREEN}Verwende folgende Befehl zum Flashen:\${RED}"+  echo -e "\${GREEN}Verwende folgenden Befehl zum Flashen:\${RED}"
   echo -e "\${RED}./rkflashtool w \$addr \$offset < recovery.img\${NC}"   echo -e "\${RED}./rkflashtool w \$addr \$offset < recovery.img\${NC}"
   read -p "Parameter korrekt? [j|N]" choice   read -p "Parameter korrekt? [j|N]" choice
Zeile 453: Zeile 464:
  
  
-##############################################+in neues rootFS wechseln und letzte Änderungen vornehmen
 rootfs() { rootfs() {
 echo -e "-------- BEGIN In rootFS wechseln (${CYAN}rootfs${NC}) ---------" echo -e "-------- BEGIN In rootFS wechseln (${CYAN}rootfs${NC}) ---------"
Zeile 477: Zeile 488:
 echo -e "-------- END rootFS vorbereiten (${CYAN}rootfs${NC}) ---------" echo -e "-------- END rootFS vorbereiten (${CYAN}rootfs${NC}) ---------"
 } }
-#########################################+ 
 +rootFS Grundkonfiguration vornehmen
 prepare_rootfs() { prepare_rootfs() {
 echo -e "-------- BEGIN Vorbereitung rootFS (${CYAN}prepare_rootfs${NC}) ---------" echo -e "-------- BEGIN Vorbereitung rootFS (${CYAN}prepare_rootfs${NC}) ---------"
Zeile 491: Zeile 503:
 echo -e "Hostname für minix in ${RED}/etc/hostname${NC} auf ${RED}$MINIXHOSTNAME${NC} setzen." echo -e "Hostname für minix in ${RED}/etc/hostname${NC} auf ${RED}$MINIXHOSTNAME${NC} setzen."
 echo ${MINIXHOSTNAME} >  ${ROOTFSDIR}/etc/hostname echo ${MINIXHOSTNAME} >  ${ROOTFSDIR}/etc/hostname
-echo "127.0.1.1 ${MINIXHOSTNAME}" >>  ${ROOTFSDIR}/etc/host+echo "127.0.1.1 ${MINIXHOSTNAME}" >>  ${ROOTFSDIR}/etc/hosts
  
 #fstab #fstab
Zeile 512: Zeile 524:
  
 # WLAN interface eth1 # WLAN interface eth1
-auto eth1 +#auto eth1 
-iface eth1 inet dhcp +#iface eth1 inet dhcp 
-wpa-ssid $MINIXSSID +#wpa-ssid $MINIXSSID 
-wpa-psk $MINIXPSK+#wpa-psk $MINIXPSK
 EOF EOF
  
Zeile 596: Zeile 608:
 install_adb() { install_adb() {
 apt-get --no-install-recommends install openjdk-7-jre apt-get --no-install-recommends install openjdk-7-jre
 +if !(uname -m | grep -i 32)
 +then
 +  echo -e "Aktuelles System ist kein 32-bit-System. Android-Umgebung benötigt ia32-libs. Wird installiert."
 +  apt-get install ia32-libs
 +fi
 cd $BASEDIR cd $BASEDIR
 wget -c http://dl.google.com/android/android-sdk_r22.3-linux.tgz wget -c http://dl.google.com/android/android-sdk_r22.3-linux.tgz
Zeile 629: Zeile 646:
 fi fi
  
-cd ${BASEDIR}/android/tools +cd ${ANDROIDDIR} 
-su $SUDO_USER ./android+echo -e "Es werden noch die ADB-Tools benötigt. ${GREEN}Bitte die Lizenzen akzeptieren, damit der Download startet.${NC}" 
 +su $SUDO_USER ./android update sdk --no-ui
 } }
  
Zeile 683: Zeile 701:
  
  
-===== Change-Notes V2 =====+===== Das Flash-Script flash2minix.sh ===== 
 + 
 +Falls jemand nur das ''flash2minix.sh'' Script genötigt, hier eine direkt lauffähige Version.  
 +**ACHTUNG:** Das Script muss im Ordner ''HOMEDIR/minix/minix-kernel/rkflashtool'' liegen und ''rkflashtool'' muss existieren, damit alle Dateien gefunden werden und das Script läuft.  
 + 
 +<file bash flash2minix.sh> 
 +#!/bin/bash 
 +# flash2minix.sh is a script for flashing a recovery.img to a Minix NEO X5 Mediaplayer 
 +# No warranty for damages, use at your own risk 
 +# Diese Script kann recovery.img Dateien auf einen Minix NEO X5 Mediaplayer flashen. 
 +# Ich übernehme keine Verantwortung für Schäden am Gerät. Benutzung auf eigene Gefahr! 
 +# Machine-Model: NEO-X5-116A 
 +# Machine-ID: 007 
 +# Manufactorer: RK30SDK 
 +#  
 +# Partitionmap  
 +# Partition @Addr length 
 +# misc 0x2000 0x2000 
 +# kernel 0x4000 0x6000 
 +# boot 0xA000 0x8000 
 +# recovery 0x12000 0x8000 
 +# backup 0x1A000 0xC0000 
 +# cache 0xDA000 0x40000 
 +# userdata 0x11A000 0x800000 
 +# kpanic 0x91A000 0x2000 
 +# system 0x91C000 0x100000 
 +# syntax: rkflashtool w ADDR LEN < IMG_NAME.img 
 +# example: flash w 0x12000 0x8000 < recovery.img 
 +RED='\e[1;31m' 
 +GREEN='\e[1;32m' 
 +NC='\e[0m' 
 +  
 +if [ -f recovery.img ];  
 +then 
 +  echo -e "${RED}ACHTUNG: Die Startwerte MÜSSEN korrekt sein!${NC}" 
 +  echo "Wenn die Adresse oder der Offset falsch ist, dann kann das Gerät beschädigt werden!" 
 +  echo "Lese Speicher von Minix aus!!" 
 +  sudo ./rkflashtool r 0x0 0x1 > read.img 
 +  echo -e "Dump-Format:              ${GREEN}OFFSET@ADRESSE(NAME)${NC}" 
 +  echo -e "Dump des Minix-Speichers:${RED} \c" 
 +  cat read.img | strings | grep --color -Po '(?<=\(boot\)\,).*(?=\(backup)' | grep -Po '^.*(?=\,)'  
 +  echo -e "${NC}Ermittelte Werte für den Flash-Vorgang:" 
 +  offset=$(cat read.img | strings | grep -Po '(?<=\(boot\)\,).*(?=\(recovery)' | grep -o '^0x[0-9]\{8\}')  
 +  addr=$(cat read.img | strings | grep -Po '(?<=\(boot\)\,).*(?=\(recovery)' | grep -o '0x[0-9]\{8\}$'
 +  
 +  rm read.img 
 +  echo "Ermittelte Werte für recovery.img:"   
 +  echo -e "Größe Image   : ${GREEN}$offset${NC}" 
 +  echo -e "Start-Adresse : ${GREEN}$addr${NC}" 
 +  echo -e "${GREEN}Verwende folgenden Befehl zum Flashen:${RED}" 
 +  echo -e "${RED}./rkflashtool w $addr $offset < recovery.img${NC}" 
 +  read -p "Parameter korrekt? [j|N]" choice 
 +  case "$choice" in  
 +    j|J )  
 +      echo -e "\n${RED}!!Gerät nicht abschalten schreibe image!!${NC}" 
 +      echo -e "./rkflashtool w $addr $offset < recovery.img" 
 +      sudo ./rkflashtool w $addr $offset < recovery.img 
 +  ;; 
 +  * ) echo -e "Nichts passiert. ${GREEN}OK${NC}." 
 +  ;; 
 +  esac 
 +else 
 +  echo -e "Es muss zunächst ein kernel übersetzt werden und eine gültige ${GREEN}recovery.img${NC} Datei existieren," 
 +  echo "um dieses Skript zu nutzen!" 
 +fi 
 +</file> 
 + 
 + 
 + 
 +===== Change-Notes build_minix_x5_sys_v2_1.sh ===== 
 +  * Android SDK wird jetzt ohne GUI automatisch aktualisiert. ''su $SUDO_USER ./android update sdk --no-ui'' 
 +  * Falls die Basismaschine ein 64-Bit Linux hat, wird für die Android-Unterstützung noch das ''ia32-libs'' Paket benötigt. Dies wird jetzt geprüft und ggf. automatisch nachgeladen. S. auch den neuen Abschnitt zu ''adb''
 +  * Korrektur: Der Hostname wurde in ''/etc/host'' statt ''/etc/hosts'' gesetzt. 
 +  * WLAN-Konfig muss manuell durchgeführt werden. Falls keine korrekten Daten im Script stehen, bleibt sonst der Minix beim Booten hängen. Der folgende Bereich wurde in ''/etc/network/interfaces'' auskommentiert. 
 + 
 +<code> 
 +# WLAN interface eth1 
 +#auto eth1 
 +#iface eth1 inet dhcp 
 +#wpa-ssid $MINIXSSID 
 +#wpa-psk $MINIXPSK 
 +</code> 
 + 
 +===== Change-Notes build_minix_x5_sys_v2.sh =====
   * ''auspacken'' ist neu. Es packt das zuvor mit ''packen'' eingepackte Arbeitsverzeichnis wieder aus.    * ''auspacken'' ist neu. Es packt das zuvor mit ''packen'' eingepackte Arbeitsverzeichnis wieder aus. 
   * Debian 7 / wheezy als Distribution auswählbar. Default: ''DIST_MAIN=debian'' und ''DIST_VERSION=wheezy'', sind die beiden Variablen nicht gesetzt, dann wird die Distribution abgefragt.   * Debian 7 / wheezy als Distribution auswählbar. Default: ''DIST_MAIN=debian'' und ''DIST_VERSION=wheezy'', sind die beiden Variablen nicht gesetzt, dann wird die Distribution abgefragt.
allgemein/minix/minix_script.1399304843.txt.gz · Zuletzt geändert: (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki