Toto je starší verze dokumentu!
Obsah
Instalace HomeRouterIII
- kompletni postup, jak jsem instaloval HomeRouterIII podle HomeRouterII
- cilem bylo postup zdokumentovat (spojit vsechny poznamky), aktualizovat router (Router Station Pro) 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 wget 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, ../etc/dropbear/authorized_keysmusí býtchmod 600/etc/dropbear/musí býtchmod 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
