26

(33 odpowiedzi, napisanych Oprogramowanie / Software)

Jak cos sie zrobi zle, to ta bestia zamiast uwalic tylko jeden demon , moze jakas wybrana funkcjonalnosc, to nie , to od razu wpada w petle restartow. Nie da sie do niej zalogowac. Flaga ktora steruje wspomniany skrypt , zapobiegnie uruchomieniu systemu z externala, co pozwoli dostac sie do externala i go poprawic / odtworzyc.  Jest to potrzebne jesli external jest we wnetrzu obudowy routera albo jesli grzebiemy w nim zdalnie.

27

(33 odpowiedzi, napisanych Oprogramowanie / Software)

Idea skryptu /etc/init.d/S96canrunexternal jest przekazanie internalowi informacji , ze konfiguracja w externalu powalila sie i nie mozna sie do niego dostac. Sluzy do tego flaga /sbin/donotrunexternal, jesli istnieje, system nie przelaczy roota na externala. Czemu ? Po prostu mam memorystika we wnetrzu routera i dostep do niego po rozkreceniu obudowy.
To czy dzialaja LANy w routerze sprawdzam pingujac otoczenie. Bedzie to dzialac jesli w otoczeniu zdefiniowane urzadzenia beda dzialac. Ewentualnie mozna jeszcze pingowac urzadzenia po wanie ... ale
- jesli bedzie modem eternet to pewnie LAN-WAN jesli bedzie dzialal to i LAN lany tez
- ale jesli modem usb to moze to dzialac a LANy nie
- poza tym test przeprowadzam w init.d wiec polaczenie z neostrada pewnie nie bedzie jeszcze dzialac

Nie bardzo moge odczekac z przeprowadzeniem tego testu az modem nawiaze polaczenie , bo zaobserwowalem ze czesto jest uwal i router natychmiast sie resetuje. Tak wiec musze bardzo szybko przeprowadzic test aby zdarzyc ustawic flage zanim router sie zrestartuje.

Po drugie jesli nawet w lanie bede mial jakis komputer zawsze dzialajacy , to co w przypadku przerwy w zasilaniu z elektrowni jest klopot. Po przywroceniu zasilania router na pewno wstanie szybciej , nic nie spinguje - ustawi flage ... tylko dobre to ze nie zresetuje sie. Ale przy nastepnym restarcie routera , flaga bedzie i system z externala juz sie nie uruchomi , a odpali sie z internala gdzie jest tylko podstawowa konfiguracja, bo na 2M jffs to praktycznie nic nie wejdzie.

Skrypt moglby odpalic np. sam siebie jako watek ze sleepem np. 10 minutowym. Po 10 minutach jak bedzie sie pingowac moglby skasowac flage .... ale moze ktos ma inne pomysly ?

28

(33 odpowiedzi, napisanych Oprogramowanie / Software)

tylko tam sa narzedzia do formatowania i fdisk

ver 1.1

Miejsca w ruterku zawsze za malo. Podlaczmy wiec pamiec flash poprzez USB i przeniesmy na nia root-a.
We flashu wewnetrznym trzymajmy tylko to to co niezbedne:
- system (white russion 0.9)
- moduly potrzebne odpaleniu usb
- aplikacje konieczne do formatowania dysku
- jakis kompresor do robienia backupu i odtwarzania dysku
- ftp demon aby plik backupu mozna bylo kopiowac po sieci
- no i ntp coby logowac kiedy byly wykonywane backupy

Jesli mamy swiezo zainstalowany system to nie musimy robic firstboot, w przeciwnym wypadku najlepij wyczyscic caly /jffs tym sposobem.

> firstboot

Polecenie to zainicjuje na partycje /jffs flasha wewnetrznego usuwajac wszystko to , co do tej pory dodatkowo zainstalowalismy i skonfigurowalismy.
Znajdziemy sie w sytuacji identycznej jak tuz po instalacji systemu. Tak wiec po reboocie logujemy sie telnetem, zmieniamy haslo:
passwd
i ponownie logujemy sie juz za pomoca ssh.
Do  podzialu flasha bedziemy potrzebowac fdisk oraz formatery.

cp /rom/etc/ipkg.conf /etc/ipkg.conf
echo "src rc5-backports http://downloads.openwrt.org/backports/rc5" >> /etc/ipkg.conf
ipkg update

i dalej

#instalujemy obsluge usb:
ipkg install kmod-usb-core                                                #usbcore    
ipkg install kmod-usb-uhci                                                #uhci
ipkg install kmod-usb2                                                    #ehci-hcd
ipkg install kmod-usb-storage                                            #usb-storage
#instalujemy system plikow uzywany przez windows w memorystickach:
ipkg install kmod-vfat                                                    #vfat
#instalujemy system plikow linuxa:
ipkg install kmod-ext2                                                    #ext2
ipkg install kmod-ext3                                                    #ext3
#instalujemy programy do obslugi flasha:
ipkg install fdisk
ipkg install e2fsprogs
#instalujemy ftp i zegarek
ipkg install vsftpd
ipkg install ntpclient
reboot

aby ftp uruchamial sie po starcie systemu

ln -s /etc/init.d/vsftpd /etc/init.d/S90vsftpd
ln -s /proc/mounts /etc/mtab

Jesli flash byl sformatowany pod windows odmontowujemy go:

umount /mnt/disc0_1

i dalej wszystkie kolejne partycje jesli sa.
Flasha dzielimy na partycje jakie sa nam potrzebne:

fdisk /dev/scsi/host0/bus0/target0/lun0/disc

a nastepnie partycje formatujemy:

mke2fs -j /dev/scsi/host0/bus0/target0/lun0/part1
# i od razu druga
mke2fs -j /dev/scsi/host0/bus0/target0/lun0/part2

Kopiowanie na zewnetrzny flash:

mount -t ext3 /dev/scsi/host0/bus0/target0/lun0/part1 /mnt
mkdir /tmp/root
mount -o bind /rom /tmp/root
cp /tmp/root/* /mnt -a
umount /tmp/root
umount /mnt

Podmiana pliku init:

rm /sbin/init

i sam ten plik w internalu

#!/bin/sh
# /sbin/init in internal flash
boot_dev="/dev/scsi/host0/bus0/target0/lun0/part1"
sec_dev="/dev/scsi/host0/bus0/target0/lun0/part2" 
# load all needed modules 
#for module in usbcore uhci scsi_mod sd_mod usb-storage ehci-hcd jbd ext3 # - use this line for better transfer over USB
for module in usbcore uhci scsi_mod sd_mod usb-storage jbd ext3                 # - or use this line if you see problems with previous line
do
  insmod $module
done

# if disk is slow let him init
sleep 4s
mount "$boot_dev" /mnt

# if all ok (usb exists and last run external has seen lan), do the pivot root
if [ -x /mnt/sbin/init -a ! -e /mnt/sbin/donotrunexternal ]
then
      mount -o move /proc /mnt/proc && \
      pivot_root /mnt /mnt/mnt && {
            mount -o move /mnt/dev /dev
            mount -o move /mnt/tmp /tmp
            mount -o move /mnt/jffs2 /jffs2 2>&-
            mount -o move /mnt/sys /sys 2>&-
      }
      mount $sec_dev /mnt/disc0_2 
else # if something wrong, clean changes
    umount /mnt
fi

# run the real init on the end (from USB hopefully)
exec /bin/busybox init

Plik ten trzeba zrobic wykonywalnym

chmod 755 /sbin/init

http://wiki.openwrt.org/UsbStorageHowto … 9fc64dc92b

Po rebbocie system odpala sie z externala. Wyglada to tak:

df

Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/root                 1024      1024         0 100% /mnt/rom
none                     15256        32     15224   0% /tmp
/dev/mtdblock/4           2240      1112      1128  50% /mnt/jffs
/jffs                     1024      1024         0 100% /mnt
/dev/scsi/host0/bus0/target0/lun0/part1   232641     12198    208431   6% /mnt/mnt/disc0_1
/dev/scsi/host0/bus0/target0/lun0/part1   232641     12198    208431   6% /
/mnt/dev/scsi/host0/bus0/target0/lun0/part2   723588     31736    655096   5% /mnt/disc0_2

Mozna powiedziec , ze wszystko jest w przadku jesli /jffs jest zamontowana na /mnt a nie na / .

Warto powtorzyc instalacje wszyskich do tej pory zainstalowanych pakietow i dodatkowo nowe:

ipkg install kmod-usb-core
ipkg install kmod-usb-uhci
#ipkg install kmod-usb2    - nie instalowac bo powoduje niestabilnosc systemu! dlaczego?
ipkg install kmod-usb-storage
ipkg install kmod-vfat                                                    
#ipkg install kmod-ext2    - nie powinien byc potrzebny
ipkg install kmod-ext3
ipkg install fdisk
ipkg install e2fsprogs
ipkg install vsftpd
ipkg install ntpclient
no i nowe:
ipkg install http://ftp.berlios.de/pub/xwrt/webif_latest_stable.ipk
ipkg install http://ftp.berlios.de/pub/xwrt/webif_latest_stable.ipk        #www
ipkg install ez-ipupdate.list                                    #dyndns client
ipkg install samba                                       #samba
ln -s /etc/init.d/samba /etc/init.d/S90samba

Ponizszy skrypt po wystartowaniu systemu z externala sprawdza czy dzalaja porty LAN - czyli czy z ssh bedzie sie mozna dostac do rutera. Jesli nie , to jest ustawiana flaga, ktora spowoduje przy nastepnym reboocie ,ze system wystartuje z internala. Aby startowal z externala trzeba ja skasowac:

rm /mnt/disc0_1/sbin/donotrunexternal

albo stworzyc sobie takie 2 helperki:

#!/bin/sh
# /sbin/bootexternal.sh (place it in internal flash)
rm /mnt/disc0_1/sbin/donotrunexternal 
reboot
#!/bin/sh
# /sbin/bootinternal.sh (place it in external flash)
touch /sbin/donotrunexternal 
reboot

W skrypcie nalezy wstawic adresy ip sprzetu w swoim lanie, ktory chodzi nonstop aby bylo co pingowac. (Zakladam ze podobnie jak ja, wiekszosc wstawi sobie flasha do wnetrza rutera i w przypadku uwalu interfejsow LAN bedzie musiala albo zdac sie na ten skrypt, albo rozkrecac obudowe i wyciagac memory sticka.) Jesli memory stick bedzie wetkniety do usb na zewnatrz obudowy, to mozna to pominac. Wyjecie memorystika z usb i zbootowanie routera spowoduje podniesienie sie go na systemie z internal flasha , ktory napeno nie bedzie uszkodzony.
Skrypt uruchamia sie wraz z systemem. Nastepuje pingowanie zdefiniowanych adresow ip. Jesli choc jeden odpowie to znaczy ze porty LAN dzialaja i wrazie czego mozna sie do rutera dostac za pomoca ssh. Jesli nie ma odpwiedzi, tworzony jest semafor , ktory spowoduje , ze przy nastepnym reboocie system odpali sie z internala. Skrypt zawiesza dzialanie na 1000 sekund, po czym znow pinguje adresy. Jesli jest ok to kasuje semafor i konczy dzialanie. Pozwala to zabezpieczyc sie przez wlaczeniem rutera bez podlaczonego kabla ethernet i dolaczenia go potem. JEsli jednak wlaczymy ruter bez kabla i nie podlaczymy go do sieci przed wylaczeniem rutera, to przy nastepnym wlaczeniu rutera odpali sie z wewnetrznego flasha. Aby powrocic do externala nalezy w takim przypadku wykonac pod ssh:

bootexternal.sh

/etc/init.d/S49islanifok w externalu

#!/bin/sh
# Run it in external flash. If router will not be able ping one from list , it can be possible LAN if does not work - set flag for boot from internal
CHECKLATER="CHECKLATER"
PROBLEMFLAG="/sbin/donotrunexternal"
OKTOFIND="0% packet"
ADDRTOTEST1="192.168.0.23"
ADDRTOTEST2="192.168.0.33"
ADDRTOTEST3="192.168.0.22"
ADDRTOTEST4="checkip.dyndns.org"
ADDRTOTEST5="www.google.com"

AllIsOk()
{
    [ -e $PROBLEMFLAG ] && rm -f $PROBLEMFLAG
    exit 0
}

NoPing()
{
    [ ! -e $PROBLEMFLAG ] && echo "no ping to LAN" > $PROBLEMFLAG
    /etc/init.d/S49islanifok CHECKLATER &
    exit 0
}

[ "$1" = "$CHECKLATER" ] && sleep 1000
ISOK=`ping -c 1 $ADDRTOTEST1 | grep "$OKTOFIND"`
[ "$ISOK" != "" ] && AllIsOk
ISOK=`ping -c 1 $ADDRTOTEST2 | grep "$OKTOFIND"`
[ "$ISOK" != "" ] && AllIsOk
ISOK=`ping -c 1 $ADDRTOTEST3 | grep "$OKTOFIND"`
[ "$ISOK" != "" ] && AllIsOk
ISOK=`ping -c 1 $ADDRTOTEST4 | grep "$OKTOFIND"`
[ "$ISOK" != "" ] && AllIsOk
ISOK=`ping -c 1 $ADDRTOTEST5 | grep "$OKTOFIND"`
[ "$ISOK" != "" ] && AllIsOk
NoPing

exit 0
chmod 755 /etc/init.d/S49islanifok

Ponizszy skrypt ma za zadanie zautomatyzowac robienie i odtwarzanie backupu externala. Zalozenie ze external jest na /mnt/disc0_1 a miejsce na przechowywanie backupow na /mnt/disc0_2 .

/sbin/backup.sh do internala

#!/bin/sh 
# /sbin/backup.sh - script for backup/restore internal and external flash
# prepared for call it only from internal flash
# be sure /dev/scsi/host0/bus0/target0/lun0/part1 is your external flash

STARTTIME=`date "+%d.%m.%Y %H:%M"` 
echo "backup.sh $1 $2 $3 starts at $STARTTIME"
case $1 in 
    backup) 
        [ ! -e /mnt/disc0_2/asus_backup ] && mkdir /mnt/disc0_2/asus_backup 
        case $2 in
        #internal)
        #    [ ! -e /mnt/disc0_2/asus_backup/internal ] && mkdir /mnt/disc0_2/asus_backup/internal 
        #    [ -e /mnt/disc0_2/asus_backup/internal/wrt-backup-internal.trx ] && mv -f /mnt/disc0_2/asus_backup/internal/wrt-backup-internal.trx /mnt/disc0_2/asus_backup/internal/wrt-backup-internal.trx.old 
        #    [ -e /mnt/disc0_2/asus_backup/internal/wrt-backup-nvram.bin ]    && mv -f /mnt/disc0_2/asus_backup/internal/wrt-backup-nvram.bin /mnt/disc0_2/asus_backup/internal/wrt-backup-nvram.bin.old 
        #    [ -e /mnt/disc0_2/asus_backup/internal/nvram-list ]              && mv -f /mnt/disc0_2/asus_backup/internal/nvram-list /mnt/disc0_2/asus_backup/internal/nvram-list.old 
        #       
        #    dd if=/dev/mtdblock/1 > /mnt/disc0_2/asus_backup/internal/wrt-backup-internal.trx 
        #    dd if=/dev/mtdblock/3 > /mnt/disc0_2/asus_backup/internal/wrt-backup-nvram.bin 
        #    nvram show > /mnt/disc0_2/asus_backup/internal/nvram-list 
        #;;
        external)
            [ ! -e /mnt/disc0_2/asus_backup/external ] && mkdir /mnt/disc0_2/asus_backup/external
            if [ "$3" = "" ]
            then
                EXTERNALNAME="external"
            else
                EXTERNALNAME="$3"
            fi
            [ -e /mnt/disc0_2/asus_backup/external/$EXTERNALNAME.tar.gz ] && mv -f /mnt/disc0_2/asus_backup/external/$EXTERNALNAME.tar.gz /mnt/disc0_2/asus_backup/external/$EXTERNALNAME.tar.gz.old
            [ ! -e /tmp/root ] && mkdir /tmp/root 
            mount -o bind /mnt/disc0_1 /tmp/root
            cd /tmp/root
            tar -c -f - . | gzip - > /mnt/disc0_2/asus_backup/external/$EXTERNALNAME.tar.gz 
            cd /
            umount /tmp/root
        ;;
        esac 
    ;; 
    restore) 
        case $2 in
        #internal)
        #    [ -e /mnt/disc0_2/asus_backup/internal/wrt-backup-internal.trx ] && mtd -r write /mnt/disc0_2/asus_backup/internal/wrt-backup-internal.trx linux 
        #;;
        external)
            # Be shure if disc0_1 is your disc with external firmware ! Call this only if router is booted from internal flash !
            if [ -e /mnt/disc0_2/asus_backup/external/external.tar.gz ]                                        # only if is something to use
            then
               [ "$3" != "" ] && /sbin/backup.sh backup external emergency                                  # create backup of external
               umount /mnt
               umount /mnt/disc0_1                                                                            # prepare external 
               mke2fs -j /dev/scsi/host0/bus0/target0/lun0/part1                                            # clean all on external
               mount /dev/scsi/host0/bus0/target0/lun0/part1 /mnt/disc0_1                                   # mount external 
               cd /mnt/disc0_1
               gzip -cd /mnt/disc0_2/asus_backup/external/external.tar.gz | tar -x -f - -C /mnt/disc0_1      # fill external using stored data
               cd /
            fi
        ;;
        extinitial)
            # Be shure if disc0_1 is your disc with external firmware ! Call this only if router is booted from internal flash !
            [ "$3" != "" ] && /sbin/backup.sh backup external emergency                                  # create backup of external
            umount /mnt/disc0_1                                                                             # prepare external 
            mke2fs -j /dev/scsi/host0/bus0/target0/lun0/part1                                             # clean all on external
            mount -t ext3 /dev/scsi/host0/bus0/target0/lun0/part1 /mnt                                   # mount external 
            [ ! -e /tmp/root ] && mkdir /tmp/root
            mount -o bind /rom /tmp/root
            cp /tmp/root/* /mnt -a
            umount /tmp/root
            umount /mnt
            mount /dev/scsi/host0/bus0/target0/lun0/part1 /mnt/disc0_1
        ;;
        esac
    ;; 
    *) 
        #echo "baskup.sh [backup|restore] [internal|external||extinitial] [||emergency]- script for create firmware file for program internal or external (/mnt/disc0_1) flash and store on /mnt/disc0_2 for use only if firmware from internal flash is run" 
        echo "baskup.sh [backup|restore] [external||extinitial] [|emergency]- script for create firmware file for program external (/mnt/disc0_1) flash and store on /mnt/disc0_2 for use only if firmware from internal flash is run" 
    ;; 
esac 
ENDTIME=`date "+%d.%m.%Y %H:%M"` 
echo "The script was called $STARTTIME with params: 1:$1, 2:$2, 3:$3 and ended $ENDTIME" >> /mnt/disc0_2/asus_backup/backup.log 
echo "backup.sh $1 $2 $3 ends at $STARTTIME"
exit 0
chmod 755 /sbin/backup.sh

Mala podpowiedz dla uzytkownikow windows. Przytoczone skrypty kopiujemy CTRL+C i wklejamy do UltraEdita CTRL+V, menu->Edit->Hex Edit, CTRL + Home, CTRL + r, Find what: 0d, Replace with: 20, Replace All, CTRL + s i zapisujemy skrypt wpelni kompatybilny z linuxem.

Juz sporo czasu poswiecilem na zabawe z rootem na usbsticku szukajac przyczyny - co jest nie tak. Przenosilem tylko /rom , i nastepnie instalowalem wszystkie te pakiety , ktore wczeniej instalowalem we flashu wewnetrznym .
Zauwazylem , ze po takiej instalacji dziala ping na adres ip a nie dziala na adres symboliczny (np. www.wp.pl) . Jak dalem dmesg to znajdowalem informacje o blednych blokach flasha.
No to zaczelem instalowac po kolei wszystko i zawsze reboot:
kmod-usb-core
kmod-usb-uhci
kmod-usb2   

Po zainstalowaniu usb2 router nie podnosi sie (no LANa nie podnosi). Reboot w internalu i z externala usunalem wszystkie pliki jakie niosl pakiet kond-usb2. Reboot z externala i wszystko dziala. Ogladnalem /sbin/init w internalu - tu w petli tego co jest lsmod-owane o dziwo nie bylo usb2.

Czy to znaczy , ze w przypadku przeniesienia roota na externala trzeba zrezygnowac z usb2 i wszystkich sprzetow usb , ktore nie sa usb2 ? Oraz z szybkosci usb2 ? Nie bardzo tego rozumiem.

Z routera chcialbym sprawdzic czy dzialaja LANy po ip. Moge oczywiscie wykonac pinga jakiegos adresu w lanie i zanalizowac odpowiedz. Moze jest jakas inna metoda np. analiza stanu interfejsu ethernet ?
Chce w ten sposob uzyskac odpowiedz , czy interfejs LAN routera jest widziany w lanie przez inne sprzety po ip czy nie.
Dodatkowo chcialbym wiedziec w ktorym momencie warstwa ip juz dziala i mozna taki test przeprowadzic - czyli skrypt w /etc/init.d/ sprawdzajacy to jaki powinien miec numerek po S ... SXXchecklanif  ?
Gdzie jest lista aplikacji znajdujacych sie w roznych .ipk ?

32

(56 odpowiedzi, napisanych Oprogramowanie / Software)

To wlasciwie kiedy w systemie pojawia sie interfejs ppp0? Po wyslaniu drivera do modemu i zainicjowaniu polaczenia neostrady ?

33

(56 odpowiedzi, napisanych Oprogramowanie / Software)

jkdobro napisał/a:

Instalacja modemu USB Alcatel/Thomsom SpeedTouch330 w OpenWTR (neostrada)

Pozostał nam już tylko zestawienie połączenia i kilka spraw porządkowych. W pierwszej kolejności ustawiamy zmienne nvram, żeby skonfigurować prawidłowo firewall, DNS i route.

nvram set wan_device=ppp0
nvram set wan_ifname=ppp0
nvram set lan_dns="194.204.152.34 217.98.63.164"    # jesli jest juz ustawione, to mozna nie zmieniać
nvram commit

Dajmy na to firewall. Po zainstalowaniu wszystkich pakietow:

root@OpenWrt1:~# nvram show | grep "ppp"
size: 1245 bytes (31523 left)
pppoe_ifname=
pppoe_ifnames=

Wramach wykonywania /etc/firewall.user system ma predefiniowana zmienna WAN , ktora przyjmie wartosc wan_ifname czyli ppp0 i do niego jesli sie nie myle beda sie odnosic predefiniowane filtry: prerouting_wan i forwarding_wan. No i pytanie. A skad system bedzie wiedzial co to jest ppp0. W nvram nie mam definicji ppp0 .

Hehe, na razie zakupilem mem sticka 1G kingstona za 39zl.  Teoretycznie 10G powinno wiec kosztowac 390zl.

35

(56 odpowiedzi, napisanych Oprogramowanie / Software)

jkdobro,
ten modem jest zasilany poprzez zlacze usb. Delux ma zasilacz 5V /2A , choc te 2A sa bardzo problematyczne. Jak sie czyta cokolwiek o podlaczaniu urzadzen po usb, zawsze ludzie pisza aby zwraca uwage jaki power bedzie pobierac urzadzenie bo zasilacz ruterka nie podola.
Jaki zasilacz jest do premium ? Lepszy czy taki sam? A moze wymieniles go na inny , wiekszy ? A moze jest taki sam i radzi sobie zasilac dodatkowo modem ?

Nie udalo mi sie zrobic tego do /mnt/jakas nazwa, natomiast do /mnt tak.

Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/root                 1024      1024         0 100% /mnt/rom
none                     15256        28     15228   0% /tmp
/dev/mtdblock/4           2240      1792       448  80% /mnt/jffs
/jffs                     1024      1024         0 100% /mnt
/dev/scsi/host0/bus0/target0/lun0/part1    15041      7623      6642  53% /

Skoro ma to sens , to ide zakupic wiekszy flash.

poniewaz:
- mam bardzo malo ramu
- mam dosc powolny procesor
- raczej waska specjalizacje oprogramowania jakie bede uruchamial (nie ma sensu wbijac gwozdzia siekiera)
- doswiadczenie w "malych" linuxach
- podlaczam flash memory a nie hdd

Pomysl jest taki.
- zrobic firstboota
- zainstalowac wszystkie pakiety niezbedne do podmontowania flasha w usb do systemu
- zainstalowac pakiet tarujaco/kopresujacy (chyba gzip) do archiwizacji odtwarzania danych
- zainstalowac jakis demon sieciowego systemu plikow do kopiowania archiwum (chyba ftpserver)
To wszystko jesli chodzi o jffs

Nie usuwac /sbin/init ale sprawdzac czy jest flash, jesli jest to montowac go w odpowiednie miejsce , sprawdzic czy jest na nim kopia roota:
- jesli jest uruchamiac /sbin/init z wiki
- jesli nie ma uruchamiac standardowy /sbin/init i bootowac system z flasha wewnetrznego

Jeszcze jednej rzeczy nie rozumiem:

mount -o move /proc /mnt/proc && \
        pivot_root /mnt /mnt/mnt && {
                mount -o move /mnt/dev /dev
                mount -o move /mnt/tmp /tmp
                mount -o move /mnt/jffs2 /jffs2 2>&-
                mount -o move /mnt/sys /sys 2>&-

To chyba pisano bardzo dawno temu do jakiejs b.starej wersji openwrt ? W wr9 nie ma przeciez /sys . Czy w takim razie powinno sie w ten sposob montowac wszystkie podkatalogi roota z wyjatkiem /var i /rom  ? Co o tym myslisz ?

A co sadzisz o tym:
http://wiki.openwrt.org/UsbStorageHowto … a50d94382a
punkt4.2:  How do I boot from the USB device

czyli przeniesc sobie wszystko na externala i traktowac go jako roota ?


W opisie widze jedna niescislosc:
# if you're using squashfs, you want to copy the squashfs contents,
# not the jffs2 symlinks, so use the command:
mount -o bind /rom /tmp/root

# if you're using jffs2 then use the command /
mount -o bind / /tmp/root


WhireRussian jest laczony - squashfs + to co sie sciagnie na jffs. Sciagnie sie napewno demony usb i ext3. Tak wiec jak sie da pierwszy mount , to skopiuje sie wszystko z wyjatkiem plikow odpowiedzialnych za usb i ext3, jak drugiego to skopiuje sie te pliki ale zamiast reszty skopiuja sie symlinki. Jak to pogodzic ? Choc widze ze /jffs jest w osobnej strukturze podkatalogow a potem ten podkatalog jest montowany z opcja move ....
Moze trzebaby to tak (chyba mozna zamiast /mnt uzyc /mnt/myflash ?):

mount -o bind /rom /tmp/root
cp /tmp/root/* /mnt/myflash -a
umount /tmp/root

mount -o bind /jffs /tmp/root
cp /tmp/root/* /mnt/myflash/jffs -a
umount /tmp/root

???

Nie rozumiem tez tego :
ln -s /proc/mounts /etc/mtab
bo nie wiem co oba podkatalogi zawieraja.

Po zrobieniu tego z opisu, zainstalowanie jakiegos ipkg (jesli wszystko ok) powinno zmniejszyc ilosc wolnego miejsca na zewnetrznym flashu a nie na /jffs - monitorujac za pomoca df ?

Dzieki. Widze ze i tak mnie czeka firtboot jeszcze raz w celu oczyszczenia jffs. Zainstaluje tylko i wylacznie usb_storage i ext3 , podlacze flasha i zrobie to co w linku powyzej , aby cala reszta trafiala tam , gdzie nie powinno byc problemu z miejscem. smile

Na wiki zdanie "lub tylko zwiększenia pamięci dla WL-500g Premium" powinno byc chyba "lub tylko zwiększenia pamięci dla WL-500g Delux" .
Bo wykonanie tego co jest ponizej na premium spowoduje to samo co tego co jest powyzej na delux - czyli uwal .

Na poczatku to nawet zdarzylo sie podczas wprowadzania polecenia ls. Teraz od ponad 2 godzin nie powtorzylo sie.

Zainstalowalem sobie (mount) flash memory poprzez usb do /opt . Jak instaluje jakies pakiety to wszystko trafia do jffs i zaraz mi sie przepelni.
Czy jest jakas mozliwosc przekierowania tego do zewnetrznego flasha ? Czy tez tylko reczne skopiowanie i linkowanie ?

Czy to normalne ze jak wydaje mu komende zrobienia czegos linuxowego (np. mke2fs -L optware -M /opt /mnt/disc0_1/optware.ext2, ale duzo mniejsze rzeczy tez) to na jakis czas przestaje sie pingowac , rozlacza sie ssh... ?

Jestem w pracy. Wieczorkiem sprobuje.

Wstawilem sdraminit i zrobilem kilka testowych rebootow. Za kazdym razem po okolo 4-5 minutach byl w pelni funkcjonalny. No to mu zmienilem ip na takie , ktore nie wymaga zmiany ip mojego kompa i wyglada, ze od tego momentu jest w ciaglej petli restartowania sie.
Pinguje go i co jakis czas kilka pingow odpowiada, a poza tym ledami robi dyskoteke.

Poniewaz nie moglem sie zalogowac aby wykonac firstboota, to po prostu wyslalem tftp na nowo firmware co wyszlo chyba na to samo.
W tej chwili ruter znow zyje. Dzieki za pomoc.

Na podstawie
http://wl500g.info/showthread.php?t=1627
500g delux powinien miec ustawiane:

nvram set sdram_init=0x2008
nvram set sdram_ncdl=0x0000
nvram commit
reboot

Autor dokumentu na wiki powinien albo usunac z tytulu delux , albo w zaleznosci od wersji podawac rozne wartosci parametrow.

Z powyszego opisu wynikaloby, ze premium ma pamiec ddr a delux sdr .

No przciez wylistowalem wszystko co tylko bylo w nvramie.

Znalazlem 2 listingi parametrow deluxa. Maja sdram_init=0x2008 . Ostatnie 2 znaki ozanczaja chyba ilosc bitow adresujacych pamiec. Ktos podaje ze po upgrade pamieci do 128MB musi zmienic to do 2010 aby miec (to have 10 bits column addressing) . Co w takim razie oznacza 20 ?

Paramer sdram_ncdl jest rozny w obu przykladach ale tez nie rowny 0.

Nie udalo mi sie z konsola ale ...

Uzylem metody zwarcia pinu 10 scalaka flasha pamieci MX... do masy, wlaczenia zasilania, poczekania az led power zapali sie i odlaczenia tego pina.
Po kilku minutach zapala sie tez led air i moge pingowac sprzet. Polaczylem sie za pomoca ssh i:

root@OpenWrt:~# mtd erase nvram
Unlocking nvram ...
Erasing nvram ...
root@OpenWrt:~# nvram show
os_ram_addr=80001000
wan_device=vlan1
boardrev=0x10
et0macaddr=00:15:F2:6A:E7:96
watchdog=5000
boot_wait=on
rescueflag=disable
wl0_infra=1
et0mdcport=0
reset_gpio=7
pmon_ver=CFE 1.3.2.0
wl0_ifname=eth1
vlan0ports=1 2 3 4 5*
wl0_mode=ap
os_flash_addr=bfc40000
boardtype=bcm95365r
lan_netmask=255.255.255.0
wl0_ssid=OpenWrt
wl0id=0x4320
wan_proto=dhcp
wifi_ifnames=
lan_ifnames=vlan0 eth2
pppoe_ifname=
wan_ifnames=
lan_proto=static
lan_ipaddr=192.168.1.1
clkfreq=200
vlan1hwname=et0
sdram_config=0x32
vlan1ports=0 5
scratch=a0180000
lan_ifname=br0
sdram_refresh=0x0
sdram_ncdl=0x00020239
hardware_version=WL500gd-01-04-01-50
et0phyaddr=254
wifi_ifname=
wan_ifname=vlan1
wl0_radio=1
sdram_init=0x0009
vlan0hwname=et0
dl_ram_addr=a0001000
regulation_domain=0X30DE
boardnum=45
pppoe_ifnames=
size: 808 bytes (31960 left)

No to mam zle zdefiniowany co najmniej jeden parametr, a wiec

nvram set lan_ifnames="vlan0 eth1"
nvram commit && reboot

Bootuje sie... miga power , po jakims czasie mam zapalony air (power gasnie) wyglada ze wszystko jest ok ...
ale nie pinguje sie adres 192.168.1.1 . No ale  moze teraz juz bedzie dzialac failsafe mode ...
Kolejny reboot (power off/on) nie zapala sie power ani air (????). Oczywiscie nie pinguje sie. Wrocilo to z czym caly dzien dzis walczylem.
No to znow pin 10 do masy. Zapala sie power, odlaczam pin, gasnie power , po chwili zapala sie air ...
ip routera pinguje sie.

root@OpenWrt:~# nvram show
i dostaje to co powyzej ale zamiast
lan_ifnames=vlan0 eth2
jest tak jak zmienilem:
lan_ifnames=vlan0 eth1

Przystepuje do ponownego zaprogramowania RC6 za pomoca tftp. Niestety tftp nie dziala. Timeout.
DiscoveryR.exe nie znajduje nic. RescueR.exe takze nie znajduje nic , co mogloby zaprogramowac.

W sumie moge w kazdej chwili wejsc do ssh i zmodyfikowav nvram. Skoro po restarcie nie podnosi poprawnie LANu
to cos tu musi byc zle zdeefiniowane, albo czegos brakuje. A moze jednak nalezy zrobic cos innego ?

Edit:
bardzo niepokoi mnie : sdram_init=0x0009

Zrobilem interfejs rs232.
Czy terminal w pc powinen byc ustawiony : baud=9600, data=8, parity=none, stop=1, flow=none ?
Konsola jest na rx0/tx0 ? Czyli jak podlaczam to do wejsc 9/10 MAX3232 to do PC uzywam nozek 8/7 .
No i rodzi sie pytanie bo znalazlem schematy opisujace oba rozwiazania:
czy nozke 8 lacze z wejsciem 2 czy 3 rs232 ?
czy nozke 7 lacze z wejsciem 3 czy 2 rs232 ?

W chwili obecnej zrobilem 8->2 i 7->3 (masa 15->5) i z ustawieniami jak w drugim zdaniu nic mi sie nie loguje na hyperterminalu po wlaczeniu asusa do pradu. (Drugi com mam 14->3 i 13->2 ) Uzywam null modem kabel.

Gdzies znalazlem ze baud rate chyba powinien byc 11520. Poprawne polaczenia chyba tez sa : 7->2, 8->3 i 14->2, 13->3 . Zmienilem na to. W dalszym ciagu jak otwieram polaczenie w hyperterminalu i wlaczam asusa do sieci nic mi sie nie loguje. Juz nawet podmienilem kabel na przedluzacz do myszki i tez nic. Inne moje polaczenia w gniezdzie rs232 po stronie asusa to zwarcia 8-7 i 4-1-6.

Nie mam dorobionego rs-a. Dolozylem sobie tylko wewnetrzne usb z pamiecia flash. Nie przypuszczalem ze rs bedzie do czegokolwiek potrzebny.  Czy po rs jest konsola i to czyszczenie jest opcja z menu konsolowego?

Premium i delux maja wan na vlan1 wiec ok, lan na vlan0 oraz wifi eth1/eth2. Wiec do lanu przyporzadkowalem istniejace lany i nieistniejacy wifi ? To nie powinno wplynac na to co sie stalo. Pozostal jeszcze nvram set sdram_init=0x0009 ...

Ustawienia te zapodalem bezmyslnie, zakladajac ze na stronie http://artekw.suwalki.kom.pl/wiki/doku. … instalacja , gdzie jest opis instalacji openwrt WhiteRussian 0.9 wiedza co pisza.
Co do podnoszenia sprzetu znalazlem dwa opisy:
http://forum.openwrt.org/viewtopic.php?id=8705 dla RC6+ - nie zadzialalo
http://wiki.openwrt.org/OpenWrtDocs/Troubleshooting :
- 2.1.1. All Models (RC5+) po udp nie zlapalo nic
- 2.1.3. Non-Linksys models
Plug in the power, wait 2 secs, then press and hold the reset button for 10-15 seconds. - tez nic

Zaraz zabieram sie za przeczytanie twojego linka. Dzieki za odzew.

Edit.

Ruter dziala mi w chwili obecnej w trybie bidgowania LAN1-4 i WAN , taki drozszy switch. Jak go wlaczam na 3s zapalaja sie tylko diody LAN1-4 i WAN.
Wlaczajac go z trzymaniem reset i zwolnienie po 15s nie powoduje , ze power zaczyna migac. Nawet nie zapala sie. Router nie pinguje sie na 192.168..1.1.
Jak wlaczam go trzymajac reset i zwalniam reset jak tylko diody LAN1-4 i WAN gasna , nic sie nie dzieje. Power nie zapala sie , nie pinguje 192.168.1.1.