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-session php5-mod-xml ppp pptp python python-expat python-mini python-sqlite3 radvd swconfig tcpdump tvheadend uci uclibcxx udevtrigger wireless-tools 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íč RSA
  • 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

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
  • například aktuálně mi chybí balíčky
    • openssl pro wget, php, …
    • 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.1485026879.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki