Toto je starší verze dokumentu!
Instalace HomeRouterIII
- kompletni postup, jak jsem instaloval HomeRouterIII podle HomeRouterII
- cilem bylo postup zdokumentovat (spojit vsechny poznamky), aktualizovat router na novejsi verze programu a pokusit zprovoznit oba DVB-T tunery (jeden se kousal, jeden se neinicializoval)
- zalozeno na stabilnim OpenWRT Attitude_Adjustment
- svn://svn.openwrt.org/openwrt/branches/attitude_adjustment, svn revize 36547
- svn://svn.openwrt.org/openwrt/branches/packages_12.09, svn revize 36547
- http://svn.luci.subsignal.org/luci/tags/0.11.1/contrib/package, svn revize 9813
- http://x-wrt.googlecode.com/svn/trunk/package, svn revize 4987
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 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, .. - 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
Nápady pro příští upgrade
- držet si celý build tree
- občas chci zkusit nějakou novou funkci (php, python, …) a zjistím, že mi chybí balíček. Chtělo by to zachovat celé build prostředí v počítači pro snadné vytváření nových balíčků.
- 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
