Uživatelské nástroje

Nástroje pro tento web


homerouteriii

Toto je starší verze dokumentu!


Instalace HomeRouterIII

Zakladni image

  • stazeni zakladnich zdrojaku a aktualizace sablon balicku
svn co svn://svn.openwrt.org/openwrt/branches/attitude_adjustment
cd attitude_adjustment
scripts/feeds update
  • pridani pozadovnych balicku do menuconfig (prehlednejsi nez tam narvat vsechny pomoci parametru -a)
  • seznam balicku jsem vygeneroval pomoci vypisu balicku v HomeRouterII prikazem:
scripts/feeds install `ssh gate opkg list_installed | cut -d " " -f 1 | tr "\n" " "`

aiccu aircrack-ng base-files block-extroot block-hotplug block-mount busybox crda dnsmasq dropbear dsniff e2fsprogs ettercap firewall fprobe getstream-poempel hotplug2 iftop ip ip6tables iperf iptables iptables-mod-conntrack iptables-mod-nat iw kernel kismet-server kmod-button-hotplug kmod-cfg80211 kmod-crc-ccitt kmod-crc-itu-t kmod-crc7 kmod-crypto-aes kmod-crypto-arc4 kmod-crypto-core kmod-crypto-sha1 kmod-dvb-core kmod-dvb-siano-usb kmod-dvb-usb kmod-dvb-usb-af9015 kmod-fs-ext3 kmod-fs-vfat kmod-gre kmod-i2c-core kmod-input-core kmod-input-gpio-buttons kmod-input-polldev kmod-ip6tables kmod-ipt-conntrack kmod-ipt-core kmod-ipt-nat kmod-ipt-nathelper kmod-iptunnel4 kmod-ipv6 kmod-leds-gpio kmod-mac80211 kmod-madwifi kmod-mppe kmod-nls-base kmod-nls-cp437 kmod-nls-iso8859-1 kmod-ppp kmod-scsi-core kmod-sit kmod-spi-gpio-old kmod-tun kmod-usb-core kmod-usb-ohci kmod-usb-printer kmod-usb-serial kmod-usb-storage kmod-usb2 libblkid libc libcharset libdnet libevent libexpat libext2fs libffi libgcc libgdbm libiconv libiptc libltdl libncurses libnet0 libnet1 libnids libnl-tiny libopenssl libpcap libpcre libpthread librt libsqlite3 libuci libuuid libxtables lighttpd lighttpd-mod-access lighttpd-mod-alias lighttpd-mod-auth lighttpd-mod-cgi lighttpd-mod-fastcgi lighttpd-mod-redirect lighttpd-mod-simple-vhost n2n nmap nprobe ntpclient opkg php5 php5-cgi php5-fastcgi php5-mod-openssl php5-mod-session php5-mod-xml ppp pptp python python-expat python-mini python-sqlite3 radvd swconfig tcpdump tvheadend uci uclibcxx udevtrigger wireless-tools wget wol wpad-mini zlib

  • vyber balicku pres make menuconfig
  • do image jsem dal naproste minimum (aby fungoval extroot a aby sel router v nouzi i trochu pouzit), zbytek je formou balicku. Image bude ve flash routeru, ostatni balicky budou na SD karte pomoci extroot.
  • do image jsem pridal nasledujici balicky:

kmod-usb-storage libc opkg kmod-usb-core libpthread ubus busybox kmod-lib-crc-ccitt kmod-ipt-conntrack kmod-lib-crc16 base-files libcom_err netifd kmod-usb-ohci libblkid ubusd block-mount kmod-usb2 libuci libip4tc uci kmod-fs-ext4 dropbear kmod-crypto-aes kmod-crypto-core libgcc libuuid libubox libjson kmod-usb-serial swap-utils libblobmsg-json iptables hotplug2 kmod-ipt-nathelper jshn kmod-ipt-core e2fsprogs libubus libxtables libext2fs kernel libnl-tiny blkid kmod-nls-base

  • nasledne klasicky kompilace pomoci make

Modifikace rootfs

  • po kompilaci jsem jeste musel upravit fstab (build_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/etc/config/fstab), aby obsahoval extroot na SD karte:
config mount
	option target	/
	option device	/dev/sda1
	option fstype	ext4
	option options	rw
	option enabled	1
	option enabled_fsck 0

TIP: bacha - u SD karty nesmi byt options sync, jinak je ukladani na kartu pekelne pomale!!

  • krome fstab jsem take pridal authorized_keys, passwd, system, timeserver, ..
    • /etc/dropbear/authorized_keys musí být chmod 600
    • /etc/dropbear/ musí být chmod 0700
    • klíč doporučuji RSA, u DSA je nejspíš povolena jen délka 1024
  • při změně výběru balíčků a překompilování se rootfs složka přepíše, proto je vhodné modifikované soubory zálohovat bokem. Vykopíroval jsem je do samostatné složky s názvem modifikace_dev_rootfs
  • úpravy cílového rootfs se do image promítnou pomoci make target/install

Nahrání do zařízení

  • nahrani image do routeru
    • do upload rezimu (reboot, drzet tlacitko reset dokud nezacne odpovidat na ping na 192.168.1.20)
    • pouzil jsem image s r/w souborovym systemem jffs2 (squashfs fungoval taky, ale nejak neukladal zmeny konfigurace na rootfsdata jffs2)
tftp 192.168.1.20
binary
trace
put openwrt-ar71xx-generic-ubnt-rspro-jffs-factory.bin
  • image se nahral za cca 1.6s, pak probehl automaticky restart, po restartu zacal router odpovidat na 192.168.1.1 (na teto IP router nabehne po vytazeni SD karty)

Příprava SD karty

  • kartu jsem pripravoval primo v routeru, zastrcil jsem ji tam az kdyz byl nastartovany
  • kartu to detekovalo az tak po 30s po vlozeni
  • na karte jsem vytvoril ext4 filesystem a zkopiroval cely rootfs image
mkfs.ext4 /dev/sda1
mkdir /tmp/newroot
mkdir /tmp/currroot
mount --bind / /tmp/currroot
mount /dev/sda1 /tmp/newroot/
tar -C /tmp/currroot -cvf - . | tar -C /tmp/newroot -xvf -
sync
  • upravil jsem banner, abych rozlisil system z image a SD karty
echo "This OS is runned from extroot" >> /tmp/newroot/etc/banner
  • na kartě jsem postupně vytvořil konfiguraci celého systému
    • přidal pomocné skripty do /bin: set_radio, aircrack_gen, sigmon, …
    • přidal webové stránky routeru
    • konfigurační soubory pro: dvb, samba, lighttpd, …
  • rootfs na sd kartě se časem mění podle potřeb, je vhodné ho průběžně zálohovat

Přidání balíčku

Zde budu uvádět balíčky, které jsem byl nucen dokompilovat, protože chybí. Automaticky je přidávám do seznamu balíčku základního image. Obecný postup přidání si ukážeme na příkladu s wget.

scripts/feeds install wget
make menuconfig
make package/wget/compile
make package/wget/install
make package/index
opkg update
opkg install wget

Poznámky

  • držet si celý build tree
    • občas je potřeba nějakou novou funkci (php, python, …)
    • a není nic horšího než zjistit, že build tree není k dispozici a že balíček není jak vytvořit
  • nový tvheadend (současný má časté memory problémy)
  • jelikož router aktivně používám, bylo by dobré si nový systém nejprve vyzkoušet :)
  • v router station pro je bootloader RedBoot
  • našel jsem radu, jak spustit kernel z tftp (místo flash)
    • takže.. vytáhl bych asi sd kartu, dal bych tam úplně čistou
    • spustil bych si na svém stroji ten tftp server… s novým kernelem…,
    • spustil by se kernel a v něm bych pokračoval s výrobou sd karty :)
    • když by to bylo všechno ok.. tak bych to pak smahl na flash … jinak triviální revert: vyměnit karty a reboot
homerouteriii.1485033136.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki