Instalace oleg firmware na Asus WL500g Premium
Toto je postup, jak nainstalovat oleg firmware na router Asus WL500gP. Zvládne to i kdejaký uživatel začátečník, otázka však je, jestli ten to bude potřebovat...
24.03.2008
v 12:46
Důvodů pro instalaci oleg formwaru je mnoho. Mojí motivací byla naprostá nemožnost jakýmkoliv způsobem zasáhnout do routeru, připojit se na něj přes SSH, případně z linuxu stahovat bittorentem soubory. Pravda, Asus nabízí download manager, ale ten je jen pro windows a pod wine šlo přidávat pouze ftp a http požadavky. Takové drobnosti, jako nemožnost změnit login administrátora, rozšířený syslog atd. bych už překousnul.
Základním předpokladem pro možnost rozšířené konfigurace je připojený externí USB disk, ale pro instalaci oleg to není bezpodmínečně nutné. Já nyní používám USB flash disk 4GB.
Postupoval jsem podle návodu na http://wl500g.info/showthread.php?t=10307. Návod je naprosto dokonalý, leč například cron se mi podle jejich návodu nepodařilo zprovoznit, proto uvedu mírnou modifikaci v mém případě.
Na stránce http://oleg.wl500g.info/ je ke stažení nejnovější firmware. Já použil verzi 1.9.2.7-9. Stáhnul jsem si balíček WL500gp-1.9.2.7-9.zip, který obsahuje .trx firmware. Před samotnou instalací je nutné resetovat nastavení routeru. Pro případ, že by se upgrade nepovedl, nebo v případě, že bych se chtěl vrátit jsem si v administračním rozhraní stáhnul ještě stávající konfiguraci. Pro jistotu jsem si také stáhnul původním firmware ze stránek Asusu.
Upgrade firmware
Ve výše uvedeném návodu doporučují upgrade pomocí nástroje firmware restoration. Jelikož používám linux, netroufl jsem si firmware upgradovat přes wine, proto jsem upgrade udělal přes admin rozhraní. Proces trval cca 3 minuty, stránka se automaticky sama načte. Pokud IP adresu získáváte přes DHCP, měl by vám internet začít hned chodit. Pokud ne, musíte si router nakonfigurovat podle poskytovatele, návod by měl být identický jako v případě originálního firmware.
Před dalším postupem je doporučováno vypnout FTP, sambu a NFS. Pro prvotní instalaci musí být povolen telnet a je dobré si také změnit login (defaltní je admin) a heslo (admin).
Připojte se přes telnet k routeru (ve windows je asi nejlepší volbou putty). Adresa routeru je 192.168.1.1. Po připojení zkuste pignout nějaký vnější server, například:
.
ping www.abclinuxu.cz
PING abicko.abclinuxu.cz (195.70.150.7): 56 data bytes
84 bytes from 195.70.150.7: icmp_seq=0 ttl=56 time=7.9 ms
84 bytes from 195.70.150.7: icmp_seq=1 ttl=56 time=13.8 ms
84 bytes from 195.70.150.7: icmp_seq=2 ttl=56 time=7.2 ms
--- abicko.abclinuxu.cz ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 7.2/9.6/13.8 ms
CTRL+C zruší pingování. Když nebude chodit internet, nedoporučuji pokračovat a zabívat se rozchozením internetu PING abicko.abclinuxu.cz (195.70.150.7): 56 data bytes
84 bytes from 195.70.150.7: icmp_seq=0 ttl=56 time=7.9 ms
84 bytes from 195.70.150.7: icmp_seq=1 ttl=56 time=13.8 ms
84 bytes from 195.70.150.7: icmp_seq=2 ttl=56 time=7.2 ms
--- abicko.abclinuxu.cz ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 7.2/9.6/13.8 ms
.Instalace SSH daemona
Jako SSH daemon je na routeru předinstalován dropbear. Rozdíly oproti openssh neznám, nicméně vypadá to, že umožňuje stejné základní funkce, které potřebuji. Je zapotřebí vytvořit adresář s konfigurací daemona:
). Po spuštění dropbear by měl už být vidět ve výpisu procesů (ps aux). Protože změny provádíme zatím pouze v RAMce, je nutné je ještě flashnout příkazem flashfs save && flashfs commit && flashfs enable && reboot.
mkdir -p /usr/local/etc/dropbear
, vygenerovat klíčedropbearkey -t dss -f /usr/local/etc/dropbear/dropbear_dss_host_key
dropbearkey -t rsa -f /usr/local/etc/dropbear/dropbear_rsa_host_key
a vytvořit spouštěcí skripty dropbearkey -t rsa -f /usr/local/etc/dropbear/dropbear_rsa_host_key
mkdir -p /usr/local/sbin/
touch /usr/local/sbin/post-boot
touch /usr/local/sbin/post-firewall
touch /usr/local/sbin/post-mount
touch /usr/local/sbin/pre-shutdown
chmod +x /usr/local/sbin/*
a vložit spouštění dropbear po spuštění systému touch /usr/local/sbin/post-boot
touch /usr/local/sbin/post-firewall
touch /usr/local/sbin/post-mount
touch /usr/local/sbin/pre-shutdown
chmod +x /usr/local/sbin/*
echo "#!/bin/sh" >> /usr/local/sbin/post-boot
echo "dropbear" >> /usr/local/sbin/post-boot
(Kdo chce, může použít editor vi, ale já ho pro svojí ne-user friendly rozhraní přímo nenávidím, ale nevyheme se muecho "dropbear" >> /usr/local/sbin/post-boot
). Po spuštění dropbear by měl už být vidět ve výpisu procesů (ps aux). Protože změny provádíme zatím pouze v RAMce, je nutné je ještě flashnout příkazem flashfs save && flashfs commit && flashfs enable && reboot.Po rebootu doporučuji vypnout telnet a již nadále používat pouze ssh (ve windows pořád putty, jen se změní protokol).
Příprava disku
Zde je nutné vědět na co vlastně router chcete, co s ním budete dělat. Po připojení externího disku je dobré minimálně vytvořit swap a partition pro data. Pokud nebudete dál pokračovat v instalaci, asi vystačíte se swapem i jen 32MB, klidně i bez něj, a zbytek na data. Pokud budete instalovat další balíčky, stačí také 32MB, jeden oddíl na souborový systém /opt o velikosti řekněme 128MB až 256MB (i to už je hodně) a zbytek na data. Pokud si chcete s routerem hrát a budete instalovat gcc jako já, asi je dobrá použít swap 64MB, ipkg 1GB a zbytek data. Při instalaci podle výše uvedeného návodu jsem se nechal unést doporučením a na swap použil 256MB, ipkg 1GB a zbytek data. Nicméně zkušeností jsem zjistil, že i SWAP 128MB booohatě stačí (zjistil jsem, že systém téměř vůbec neswapuje), na IPKG tak tak stačí 512MB (po instalaci gcc mám na ipkg použitých 351MB) a zbytek můžou být data. otázkou zůstává, zda zmíněných 32MB na swap není zbytečná paranoia, jestli by nestačilo i méně. Netroufám si říci s jistotou, ale pokud router funguje i bez swapu, tak bych řekl že bude fungovat i s 4MB swapem
. Zde je důležité zmínit, že router umí číst i psát FAT32 a ext2/ext3. Pokud nehodláte tahat disk k lidem co fungujou na windowsech, doporučuji ext3 souborový systém, už jen kvůli podpoře souborů větších než 2GB.
. Zde je důležité zmínit, že router umí číst i psát FAT32 a ext2/ext3. Pokud nehodláte tahat disk k lidem co fungujou na windowsech, doporučuji ext3 souborový systém, už jen kvůli podpoře souborů větších než 2GB.Po rozmyšlení problému doporučuji přistoupit k samotnému rozdělení disku. Možná bude potřeba nainstalovat moduly pro podporu USB disků (nicméně u mě to nebylo potřebné, ale za zkoušku nic nedáte
):
): insmod scsi_mod
insmod sd_mod
insmod usb-storage
. Po zasunutí disku do USB konektoru je zapotřebí zjistit, do kterého místa byl disk připojen a to příkazem df. Výsledek by měl být zhruba následující:insmod sd_mod
insmod usb-storage
Filesystem Size Used Avail Use% Mounted on
rootfs 3.0M 3.0M 0 100% /
/dev/root 3.0M 3.0M 0 100% /
/dev/discs/disc0/part2
965M 351M 566M 39% /opt
/dev/discs/disc0/part3
2.6G 65M 2.4G 3% /tmp/mnt/disc0_3
, s tím, že bude pravděpodobně existovat jen jeden přípojný bod /tmp/mnt/disc0, resp. /tmp/harddisk (to je link na skutečné umístění). Příkazem umount /přípojný_bod odmountujte disk. Pokud se to nezdaří, asi bude zapotřebí vypnout sambu, nebo FTP daemony.rootfs 3.0M 3.0M 0 100% /
/dev/root 3.0M 3.0M 0 100% /
/dev/discs/disc0/part2
965M 351M 566M 39% /opt
/dev/discs/disc0/part3
2.6G 65M 2.4G 3% /tmp/mnt/disc0_3
Následuje rozdělení disk fdiskem. POZOR! při tomto procesu příjdete o svá data, pokud je to třeba, zálohujte. Příkazem fdisk /dev/discs/disc0/disc rozdělte disk na požadovaný počet partition. Příkaz m zobrazí nápovědu, p zobrazí dostupné oddíly, d smaže oddíly a n vytvoří nový oddíl. Vytvořte primární oddíly, první swap (typ 82), další linux (83) a poslední také. Zvolené počty oddílů upravte podle svých požadavků. Příkazem w zapíšete změny na disk.
Příkazem fdisk -l byste měli vidět přibližně následující seznam oddílů:
Disk /dev/scsi/host0/bus0/target0/lun0/disc: 4110 MB, 4110417920 bytes
127 heads, 62 sectors/track, 1019 cylinders
Units = cylinders of 7874 * 512 = 4031488 bytes
Device Boot Start End Blocks Id System
/dev/scsi/host0/bus0/target0/lun0/part1 1 65 255874 82 Linux swap
/dev/scsi/host0/bus0/target0/lun0/part2 66 320 1003935 83 Linux
/dev/scsi/host0/bus0/target0/lun0/part3 321 1019 2751963 83 Linux
.127 heads, 62 sectors/track, 1019 cylinders
Units = cylinders of 7874 * 512 = 4031488 bytes
Device Boot Start End Blocks Id System
/dev/scsi/host0/bus0/target0/lun0/part1 1 65 255874 82 Linux swap
/dev/scsi/host0/bus0/target0/lun0/part2 66 320 1003935 83 Linux
/dev/scsi/host0/bus0/target0/lun0/part3 321 1019 2751963 83 Linux
Teď můžeme přistoupit k zapnutí swapu:
mkswap /dev/discs/disc0/part1
swapon /dev/discs/disc0/part1
. Příkazem free je možné zjistit dostupnou paměť:swapon /dev/discs/disc0/part1
total used free shared buffers cached
Mem: 30172 29020 1152 0 3472 14952
-/+ buffers/cache: 10596 19576
Swap: 255864 2348 253516
(zde je vidět, že zrovna swap není moc používán).Mem: 30172 29020 1152 0 3472 14952
-/+ buffers/cache: 10596 19576
Swap: 255864 2348 253516
Příkazy
mke2fs -j /dev/discs/disc0/part2
mke2fs -j /dev/discs/disc0/part3
vytvoříte ext3 oddíly. Přepínač -j specifikuje vytvoření žurnálu na oddílu (bez tohoto přepínače by se vytvořil ext2).mke2fs -j /dev/discs/disc0/part3
Pomocí editoru vi /usr/local/sbin/post-boot vyeditujeme post-boot soubor následujícím způsobem:
mount /dev/discs/disc0/part2 /opt
i=0
while [ $i -le 30 ]
do
if [ -d /opt/etc ]
then
break
fi
sleep 1
i=`expr $i + 1`
done
mount /dev/discs/disc0/part3 /tmp/harddisk
swapon /dev/discs/disc0/part1
/opt/etc/init.d/rc.unslung
. To zabezpečí po startu namountování /opt oddílu (viz dále), největšího oddílu harddisku do /tmp/harddisk, zapnutí swapu a spuštění všech zaváděcích skriptů v /opt/etc/init.d/* (viz dále).i=0
while [ $i -le 30 ]
do
if [ -d /opt/etc ]
then
break
fi
sleep 1
i=`expr $i + 1`
done
mount /dev/discs/disc0/part3 /tmp/harddisk
swapon /dev/discs/disc0/part1
/opt/etc/init.d/rc.unslung
Následuje flashnutí změn příkazy flashfs save && flashfs commit && flashfs enable && reboot a reboot systému.
Příkazy free a df -h je možné ověřit dostupnost swapu a namountovaných diskových oddílů.
Protože adresář /opt/etc/init.d neexistuje (včetně zaváděcího skriptu rc.unslung) je nutné je vytvořit:
mkdir /opt/etc
mkdir /opt/etc/init.d
vi /opt/etc/init.d/rc.unslung
, do rc.unslung vložit následující příkazy:mkdir /opt/etc/init.d
vi /opt/etc/init.d/rc.unslung
#!/bin/sh
#
for i in /opt/etc/init.d/S??* ;do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
done
a udělat rc.unslung spustitelný chmod +x /opt/etc/init.d/rc.unslung. Skript rc.unslung zabezpečí spuštění všech skriptů v init.d začínajících písmenem S a to podle abecedy/pořadí (např. S01, S50, S99 atd.).#
for i in /opt/etc/init.d/S??* ;do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
done
IPKG - správce balíčků
IPKG je správce balíčků (něco jako synaptic, yast apod.). Existují dva správci, výchozí ipkg a pokročilý ipkg-opt. Liší se pouze tím, jaký používají adresář. ipkg-opt pracuje v /opt, to je důvod proč byl vytvořen samostatný oddíl /opt, do kterého se budou stahovat balíčky a instalovat aplikace (samozřejmě, že by to šlo řešit také jedním oddílem a link /tmp/harddisk jednoduše bude odkazovat do /opt/data, ale oddělené oddíly mají své kouzlo například v zálohování). Příkazy
mkdir /opt/tmp
mkdir /opt/tmp/ipkg
cd /opt/tmp/ipkg
se vytvoří adresář pro dočasné soubory .ipk a zároveň se tam přesuneme. Následuje sekvence příkazů mkdir /opt/tmp/ipkg
cd /opt/tmp/ipkg
wget http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/ipkg-opt_0.99.163-9_mipsel.ipk
ipkg.sh install ipkg-opt_0.99.163-9_mipsel.ipk
wget http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/uclibc-opt_0.9.28-13_mipsel.ipk
ipkg.sh install uclibc-opt_0.9.28-13_mipsel.ipk
ipkg update
, která stáhne balíčky ipkg-opt, knihovnu uclibc (o té nic bližšího nevím, ale asi je zapotřebí), nainstaluje je a nový správce ipkg (ten je nyní v systému v /opt/bin) updatuje databázi balíčků. Nyní je možné kdykoliv příkazem ipkg list_installed kdykoliv zjistit, jaké balíčky jsou nainstalované. Příkaz ipkg remove odstraní vybraný balíček a ipkg upgrade provede upgrade nainstalovaných balíčků do nové verze (pokud je dostupná).ipkg.sh install ipkg-opt_0.99.163-9_mipsel.ipk
wget http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/uclibc-opt_0.9.28-13_mipsel.ipk
ipkg.sh install uclibc-opt_0.9.28-13_mipsel.ipk
ipkg update
Midnight commander
ipkg install mc nainstaluje midnight commander.
Pro mc je dobré nastavit alias pro barvu a externí proměnnou TERMINFO:
echo "export TERMINFO=/opt/share/terminfo">>/opt/etc/profile
echo "alias mc=\"mc -c\"">>/opt/etc/profile
. Protože /opt/etc/profile je spuštěn z /usr/etc/profile jako spustitelný, musí se nastavit ještě příznak spustitelného souboru chmod +x /opt/etc/profile. Podobným způsobem je dobré nastavit ještě alias pro alias df="df -h", aby čísla byla srozumitelná lidem. Zde bych ještě zdůraznil na nastavení cesty LD_LIBRARY_PATH=/opt/lib:${LD_LIBRARY_PATH} v /opt/etc/profile. Toto nastavení dělá problémy se zrušením cest ke spustitelným souborům. Potom přestanou záhadně fungovat některé programy (man, prohlížení .bz souborů apod). Pokud se vám toto kdykoliv stane, je to pravděpodobně způsobeno tímto nastavením (program potom hlásí Permission denied).echo "alias mc=\"mc -c\"">>/opt/etc/profile
Nástroje
Instalace dalších nástrojů:
. Doporučuji do /opt/etc/profile (nano /opt/etc/profile) zapsat
ipkg install coreutils
ipkg install findutils
ipkg install diffutils
ipkg install screen
ipkg install nano
ipkg install procps
ipkg install less
ipkg install unzip
ipkg install hdparm
ipkg install man
ipkg install man-pages
umožní mj. zobrazování manuálních stránek, hledání souborů a zejména (z mého hlediska) je možné používat už editor nano, který je proti vi snad tisíckrát vyspělejšíipkg install findutils
ipkg install diffutils
ipkg install screen
ipkg install nano
ipkg install procps
ipkg install less
ipkg install unzip
ipkg install hdparm
ipkg install man
ipkg install man-pages
. Doporučuji do /opt/etc/profile (nano /opt/etc/profile) zapsat export EDITOR="/opt/bin/nano"
a to z důvodu budoucí úpravy tabulky cronu, případně úpravy dalších souborů. od teď je možné získat nápovědu z manuálních stránek (např. man ps).CRON
ipkg install cron
nainstaluje cron daemona. Vytvoříme adresáře:mkdir /opt/etc/cron.5mins
mkdir /opt/etc/cron.hourly
mkdir /opt/etc/cron.daily
mkdir /opt/etc/cron.weekly
mkdir /opt/etc/cron.monthly
, příkazem mkdir /opt/etc/cron.hourly
mkdir /opt/etc/cron.daily
mkdir /opt/etc/cron.weekly
mkdir /opt/etc/cron.monthly
nano /opt/var/cron/cron.allow
vložíme do nového souboru jméno zvoleného uživatele a root (chceme abysme měli přístup ke cronu), a příkazem crontab -e
vyeditujeme tabulku cronu uživatele následujícím způsobem:# m h dom mon dow command
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
# Syntax for lines is : minute hour day month dayofweek command #
*/5 * * * * run-parts /opt/etc/cron.5mins
0 * * * * run-parts /opt/etc/cron.hourly
0 0 * * * run-parts /opt/etc/cron.daily
0 0 * * 0 run-parts /opt/etc/cron.weekly
0 0 1 * * run-parts /opt/etc/cron.monthly
a příkazem SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
# Syntax for lines is : minute hour day month dayofweek command #
*/5 * * * * run-parts /opt/etc/cron.5mins
0 * * * * run-parts /opt/etc/cron.hourly
0 0 * * * run-parts /opt/etc/cron.daily
0 0 * * 0 run-parts /opt/etc/cron.weekly
0 0 1 * * run-parts /opt/etc/cron.monthly
nano /opt/sbin/run-parts
vytvoříme následující soubor:#!/bin/sh
#
# runparts.sh by macsat@macsat.com
# intended for use with cron
#
# based on rc.unslung by unslung guys :-)
#
if [ -z "$1" ]
then
echo "Usage : $0 "
fi
RUNDIR=$1"/*"
for i in $RUNDIR ;do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
done
(ten je standardně v každé distribuci). Zde musím poznamenat, že návod z http://wl500g.info/showthread.php?t=10307 s /opt/etc/crontab mi nefungoval (a nevím, kde donutit cron, aby bral tuto systémovou tabulku). Navíc jsem musel ještě ručně povolit cron uživateli (viz výše soubor cron.allow). Nastavíme ještě spustitelný příznak pro run-parts:#
# runparts.sh by macsat@macsat.com
# intended for use with cron
#
# based on rc.unslung by unslung guys :-)
#
if [ -z "$1" ]
then
echo "Usage : $0 "
fi
RUNDIR=$1"/*"
for i in $RUNDIR ;do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
done
chmod +x /opt/sbin/run-parts
.Příkazem
nano /opt/etc/cron.daily/ipkgupdate
vytvoříme nový soubor s obsahem:#!/bin/sh
#
# update the ipkg
/opt/bin/ipkg update
a bastavíme příznak spustitelného souboru #
# update the ipkg
/opt/bin/ipkg update
chmod +x /opt/etc/cron.daily/ipkgupdate
Tím zajistíme denní aktualizaci databáze balíčků.Následuje opět reboot flashfs save && flashfs commit && flashfs enable && reboot. Po rebootu by měl být v procesech již spuštěný cron. Pokud ne, někde jste udělali chybu
.
.Podle výše (a dále níže) uvedených návodů je možné místo editoru nano používat také editor vi anebo midnight commander.
Torrent a nastavení rotování logu
Konečně se dostáváme k té části, která přispěla k tomu, abych změnil firmware.
ipkg install logrotate
ipkg install gnuplot
ipkg install libbt
ipkg install transmission
. Po trošku delší instalaci (možná že znáte GNUPlot také z windows systému, já jej používal už na vysoký škole) vytvoříme adresáře ipkg install gnuplot
ipkg install libbt
ipkg install transmission
mkdir /tmp/harddisk/torrent
mkdir /tmp/harddisk/torrent/source
mkdir /tmp/harddisk/torrent/work
mkdir /tmp/harddisk/torrent/target
a nastavíme jim příznaky pro zápis všem uživatelůmmkdir /tmp/harddisk/torrent/source
mkdir /tmp/harddisk/torrent/work
mkdir /tmp/harddisk/torrent/target
chmod ugoa+w /tmp/harddisk/torrent
chmod ugoa+w /tmp/harddisk/torrent/source
chmod ugoa+w /tmp/harddisk/torrent/target
chmod ugoa+w /tmp/harddisk/torrent/work
chmod ugoa+w /tmp/harddisk/torrent/source
chmod ugoa+w /tmp/harddisk/torrent/target
chmod ugoa+w /tmp/harddisk/torrent/work
Vyeditujte soubor /opt/etc/transmission.conf
nano /opt/etc/transmission.conf
a případně si změňte nastavení torrent klienta:MAX_ACTIVE_TORRENTS=5
pro maximálně 5 aktivním torrentů, UPLOAD_SPEED=10
pro maximální upload 10kB/s,DOWNLOAD_SPEED=200
pro maximální download 200kB/s apod.Pomocí crontab -e vyeditujte crontab a vložte řádek
*/30 * * * * nice transmission_watchdog
, který zajistí spuštění torrenta každou půlhodinu (resp. zajistí kontrolu, zda byl přidán nový zdroj, viz dále).Nastavení rotování logu zajistíme řádkem
0 0 * * * /opt/sbin/logrotate -f /opt/etc/logrotate.conf &>/dev/null
v crontab. Řádek zajistí spuštění logrotate s konfigurací /opt/etc/logrotate.conf, výstup přesměruje do /dev/null a spustí se na pozadí. Zároveň upravíme /opt/etc/logrotate.conf:compress
/var/log/messages {
size 1024k
weekly
rotate 9
postrotate
killall -HUP syslogd
endscript
}
include /opt/etc/logrotate.d
a zajistíme spuštění syslog daemona vytvořením souboru /opt/etc/init.d/S05syslogd (nano /opt/etc/init.d/S05syslogd):/var/log/messages {
size 1024k
weekly
rotate 9
postrotate
killall -HUP syslogd
endscript
}
include /opt/etc/logrotate.d
#!/bin/sh
#
# Startup script for syslogd
if [ -n "`pidof syslogd`" ]; then
killall syslogd >>/dev/null
fi
# copy content of original syslogd to new syslog.
cat /tmp/syslog.log >> /opt/var/log/messages
# remove old syslog.log
rm /tmp/syslog.log
# add symlink so log is available at old location (e.g. for webinterface)
ln -s /opt/var/log/messages /tmp/syslog.log
/sbin/syslogd -m 0 -O /opt/var/log/messages -S -l 7
Nastavíme mu spustitelný příznak chmod +x /opt/etc/init.d/S05syslogd, zapíšeme do flashky a restartujeme flashfs save && flashfs commit && flashfs enable && reboot.#
# Startup script for syslogd
if [ -n "`pidof syslogd`" ]; then
killall syslogd >>/dev/null
fi
# copy content of original syslogd to new syslog.
cat /tmp/syslog.log >> /opt/var/log/messages
# remove old syslog.log
rm /tmp/syslog.log
# add symlink so log is available at old location (e.g. for webinterface)
ln -s /opt/var/log/messages /tmp/syslog.log
/sbin/syslogd -m 0 -O /opt/var/log/messages -S -l 7
Po rebootu zkuste příkaz transmission_watchdog. Transmission by měl být nyní ve výpise procesů (ps aux). Na adrese http://router_ip:8008/cgi-bin/transmission.cgi je nyní k dispozici manager pro sledování přenosů. Pokud přidáte do adresáře /tmp/harddisk/torrent/source jakýkoliv .torrent zdroj. Po kliknutí na update v manageru lze updatovat zdroje. (Update - updatuje zdroje, Push - vloží/suspenduje zdroje, List - výpis všech zdrojů, Log - výpis logu plus statistika z GNUPlot, Pause - pozastaví stahování, Watchdog - spuštění watchdogu z webového rozhraní, Remove - odstranění stahování (lze jen suspendovaný zdroj), Fetch - vloží .torrent zdroj do fronty)
Další nástroje
Doporučuji nainstalovat ještě balíček lynx (konzolový webový prohlížeč) nload (statistika sítě)
Vývoj aplikací
Balíčkem ipkg-opt -t /opt install optware-devel je možné nainstalovat podporu vývoje aplikací a balíčkem ipkg -t /opt install buildroot se nainstaluje gcc/g++. Přepínač -t je nutný v případě, ze používáte výchozí ipkg a ne ipkg-opt. Instalace zabere nějaký ten čas, takže si skočte na kafíčko
.
.Zkuste jednoduchou aplikaci:
.
#include
int main()
{
printf("Hello World\n");
return 0;
}
a přeločte příkazem gcc pokus.c a testněte svou první embedded aplikaci int main()
{
printf("Hello World\n");
return 0;
}
.To je zatím vše.

Komentáře
Zobrazit vše Počet příspěvků: 89 , poslední 07.03.2020 01:26:21