Uživatelské nástroje

Nástroje pro tento web


openwrt

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
openwrt [2013/05/05 10:53] djbuldogopenwrt [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
-====== OpenWrt ======+====== OpenWRT tipy, finty ======
  
 ===== nastaveni time zone ===== ===== nastaveni time zone =====
Řádek 36: Řádek 36:
   * celkem ~ 800K   * celkem ~ 800K
  
-===== chroot na usb (extroot) =====+===== Generovani NetFlow na embedded zarizeni ===== 
 +  * zkousel jsem generovat NetFlow pomoci fprobe/nprobe na mem RSpro .. pri 4Mbit to zralo asi 30% fprobe a 60% nprobe CPU, pamet minimalne 
 +  * dnes jsem videl v akci router board 750 GL s Atheros AR7242 400MHz a 64 MB RAM, CPU bylo kolem 20% pri nf9, rikaji tomu traffic-flow 
 +  * fprobe ma nejaky special modul pro cteni paketu z jadra, ale neumi nf9 a pry obsahuje hodne chyb 
 +  * nadeje vkladam do ipt-netflow projektu :) pry je hodne rychly :)
  
-**extroot** - pouzivani externiho uloziste jako korenovy adresar / (root) [[http://wiki.openwrt.org/doc/howto/extroot/extroot.theory|teorie extroot]], [[http://wiki.openwrt.org/doc/howto/extroot|extroot]] 
- 
-Embeded zarizeni ([[http://en.wikipedia.org/wiki/System-on-a-chip|SoC]]) vetsinou nepodporuji [[http://wiki.openwrt.org/doc/techref/process.boot|bootovani]] primo z USB (FTL flash), musi se nejprve spustit system ulozeny na flash chipu (raw flash). 
- 
-Extroot lze v takovych pripadech realizovat pouze tak, ze do flash chipu se ulozi system, ktery behem startu prepne na nove externi uloziste. Je potreba pripravit image pro raw flash routeru a souborovy system na externim ulozisti. 
- 
-Omezeni (upgradovani) pri pouzivani externiho uloziste 
-  * nesmi se pouzivat balicky kompilovane s jinou verzi uClibc nez image. Nemusi byt kompatibilni. 
-  * nesmi se upgradovat kernel na jinou verzi nebo z jineho build prostredi. Zpusobilo by nekompatibilitu. 
-  * nesmi se pouzivat balicky, ktere byly kompilovane vuci jine verzi kernelu (treba iptables) 
- 
-OpenWRT od verze Attitude Adjustment se snazi detekovat takove nekonzistence a predejit problemum vypnutim bootovani z externiho zarizeni. V takovem pripade je extroot pripojen do /tmp/overlay-disabled, aby se mohl opravit. Pokud je potreba upgradovat kernel, musi se upgradovat jak na extroot, tak v image.  
- 
-OpenWRT podporuje dva rezimy extroot: 
-  * **pivot-overlay** - externi uloziste tvori "prekryv" - do puvodniho souboroveho systemu pridava/odstranuje polozky. Je vytvoren virtualni souborovy system, ktery se sklada z read-only casti ve flash a read-write na externim ulozisti. 
-  * **pivot-root** - pouziva se vyhradne externi uloziste 
-   
-==== image pro raw flash ==== 
-  * image se vetsinou vytvari se souborovym system squashfs (read-only) + jffs (rw), aby bylo mozne ukladat konfiguracni zmeny nebo provadet upgrade balicku. 
-  * v kernelu je potreba drivery: 
-    * **kmod-usb-storage mod-usb-core kmod-usb2** - zakladni usb subsystem 
-    * **kmod-mmc** - driver pro SD/MMC karty 
-    * **kmod-fs-ext4** - pro pouzity filesystem na externim ulozisti 
-  * i kdyz mame tyto drivery v jadre.. stale je potreba neco, co by v init pripojilo souborovy system na externim ulozisti bez jineho souboroveho systemu, kde by tato akce byla popsana. K tomu se pouziva modul **block-mount** (drive navic block-extroot, block-hotplug) 
-  * v image je dobre mit take nastroj **e2fsprogs**, pro vytvareni filesystemu na externim ulozisit (neni nutne)   
- 
-Pro image si udelam vlastni build, chci tam mit jen minimum veci nezbytnych pro pro boot z externiho uloziste. Pokud bych pouzil image primo z openwrt, musel bych tam jeste doinstalovat chybejici balicky a image by byl zbytecne velky. Bude se mi take lepe udrzovat konzistence mezi externim ulozistem a image, protoze budu mit stejne buildovaci prostredi. 
- 
-  * vybereme zakladni balicky plus nasledujici 
-<code> 
-block-mount kmod-usb-storage kmod-fs-ext4 mod-usb-core kmod-usb2 kmod-mmc 
-</code> 
- 
-  * do fstab pridame (az po bootu nebo modfifikujeme cilovy fs) 
-<code> 
-config mount 
-        option target        / 
-        option device        /dev/sda1 
-        option fstype        ext4 
-        option options       rw,sync 
-        option enabled       1 
-        option enabled_fsck  0 
-</code> 
- 
-==== priprava externiho uloziste (pivot-root) ==== 
- 
-  * externi uloziste se nejcasteji vytvari primo v nastarovanem OpenWrt na cilovem zarizeni. 
-  * nejprve se vytvori filesystem (v tomto pripade ext4 na externim zarizeni /dev/sda1) 
-  * v root filesystemu jsou pripojeny specialni soubory ve slozkach jako /dev /proc .., abychom nekopirovaly tyto systemove soubory, vytvari se bind souboroveho systemu do jineho adresare 
-  * nevim, proc se pouziva tar misto cp, mozna je to flexibilnejsi (kopirovani po siti) 
-     
-<code> 
-mkfs.ext4 /dev/sda1 
-mount /dev/sda1 /mnt 
-mkdir /tmp/cproot 
-mount --bind / /tmp/cproot 
-tar -C /tmp/cproot -cvf - . | tar -C /mnt -xvf - 
-sync ; umount /mnt 
-umount /tmp/cproot 
-</code> 
- 
-**TIP**: aby se dalo ihned rozlisit, zda nastartoval image nebo extroot je mozne ulozit do /etc/banner info o tom, ze je to z extroot :) 
- 
-==== stary pokus ==== 
- 
-Takto jsem se znazil, jeste nez vznikla oficialni podpora pro chroot v OpenWRT. Jsou zde zajimave veci, ktere se mohou hodit jinde. 
- 
-  * cil: pripravit USB disk s ext3 
-  * [[http://www.denx.de/wiki/bin/view/Know/MiniFOFAQ|jak funguje spojeni R a W fs?]] 
-  * problem - jak spustit chroot pred bootem init skriptu? prej to jde jen predanim options kernelu... ale do redboot preci zasahovat nemuzu ne? 
-  * model A 
-     * instalace 
-       * nakopirovat obsah /dev/mtdblock3 on /overlay type jffs2 na usb 
-     * inicializace 
- 
-<code> 
-mkdir /tmp/sto /tmp/new_root 
-mount /dev/sda1 /tmp/sto 
-</code> 
- 
-     * vytvorime novy R/W FS zalozeny na ROM 
- 
-<code> 
-mount -t mini_fo -o base=/rom,sto=/tmp/sto /rom /tmp/new_root 
-</code> 
- 
-     * premountujeme adr, do ktereho se instaluji nove balicky 
- 
-<code> 
-mount --bind /tmp/sto /overlay 
-</code> 
- 
-     * premountujeme zakladni adresare :-D 
- 
-<code> 
-mount --bind /tmp/new_root/etc  /etc 
-mount --bind /tmp/new_root/lib /lib 
-mount --bind /tmp/new_root/sbin /sbin 
-mount --bind /tmp/new_root/usr /usr 
-mount --bind /tmp/sto/root /root 
-</code> 
- 
-    * slo by neco odmountovat?   
-    * '''nejspis je potreba ext3!! na fat mi to hazelo nejake chyby.. nejde nastavit napriklad suid bit''' 
-    * script pro rspro :) 
-      * haze mi to seg.fault.. mam podezreni na FAT (misto ext3)... mozna chyba pri mountovani etc?  - zkusim preskocit 
- 
-<code> 
-mkdir /tmp/sto /tmp/new_root 
-mount /dev/sda1 /tmp/sto  
-mount --bind /tmp/sto/chroot /jffs 
-mount -t mini_fo -o base=/rom,sto=/tmp/sto/chroot /rom /tmp/new_root 
- 
-mount --bind /tmp/new_root/lib /lib 
-which  
-Segmentation fault :( 
-</code> 
- 
-  * zjednodusena verze 
- 
-<code> 
-mkdir /tmp/new_root 
-mount -t mini_fo -o base=/rom,sto=/mnt/sdcard/chroot /rom /tmp/new_root 
-ls -l /tmp/new_root/lib/ 
-Segmentation fault 
-</code> 
- 
-<code> 
-logread -f 
-Jul  3 20:11:41 HomeRouterII user.alert kernel: CPU 0 Unable to handle kernel paging request at virtual address 0000008c, epc == 87b921a0, ra == 800e1afc 
-Jul  3 20:11:41 HomeRouterII user.warn kernel: Oops[#1]: 
-Jul  3 20:11:41 HomeRouterII user.warn kernel: Cpu 0 
-Jul  3 20:11:41 HomeRouterII user.warn kernel: $ 0   : 00000000 00000001 00000000 0000002e 
-Jul  3 20:11:41 HomeRouterII user.warn kernel: $ 4   : 874e6380 874e859c 873a1d90 00000009 
-Jul  3 20:11:41 HomeRouterII user.warn kernel: $ 8   : 8732e011 874e635b 87b3bbe0 fffffff4 
-Jul  3 20:11:41 HomeRouterII user.warn kernel: $12   : 00000025 00000807 00000800 00480000 
-Jul  3 20:11:41 HomeRouterII user.warn kernel: $16   : 874e8580 874e8590 874e6300 873a1d90 
-Jul  3 20:11:41 HomeRouterII user.warn kernel: $20   : 00000009 8732e012 23d0d3f8 873fa700 
-Jul  3 20:11:41 HomeRouterII user.warn kernel: $24   : 00482398 87b92194                   
-Jul  3 20:11:41 HomeRouterII user.warn kernel: $28   : 873a0000 873a1d08 873a1d80 800e1afc 
-</code> 
- 
-  * zajimave.. ok je: /tmp/new_root/, /tmp/new_root/etc, /tmp/new_root/usr,  
-  * nok je .. /tmp/new_root/rom, /tmp/new_root/bin, /tmp/new_root/lib, /tmp/new_root/usr/*/ 
 ===== build konkretni vereze kernel ===== ===== build konkretni vereze kernel =====
 Tweak the LINUX_VERSION variable in target/linux/ar71xx/Makefile. Tweak the LINUX_VERSION variable in target/linux/ar71xx/Makefile.
 Supported Kernels are listed in include/kernel-version.mk  Supported Kernels are listed in include/kernel-version.mk 
   * https://forum.openwrt.org/viewtopic.php?pid=91808   * https://forum.openwrt.org/viewtopic.php?pid=91808
openwrt.1367744015.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki