openrouter.info
https://openrouter.info/forum/

[minihowto] Debian na routerze
https://openrouter.info/forum/viewtopic.php?f=21&t=553
Strona 1 z 2

Autor:  obsy [ 9 sty 2011, 17:26 ]
Tytuł:  [minihowto] Debian na routerze

Na naszych routerach nie często pojawia się oryginalne firmware, za to często jest to alternatywa: DD-WRT, OpenWrt lub Tomato. Nic nie stoi na przeszkodzie, aby uruchomić na routerze "normalny" system, linuksa, który będzie dysponował ogromną bazą pakietów.

W tym przykładzie pokażę jak szybko uruchomić debiana na naszym routerze z wykorzystaniem pewnego mechanizmu zwanego chroot (a dzięki czemu będzie można się go pozbyć bez utraty podstawowego systemu).

Zasada działania jest prosta - uruchamiamy normalny router, ładuje się kernel linuksowy, a później wykonujemy opcję przełączenia na innych system. Brzmi prosto i jest proste do wykonania. Niestety wymagany jest do spełnienia jeden warunek - kernel musi mieć wkompilowaną emulację FPU. Jeżeli samodzielnie kompilujemy obraz, należy w kernelu zaznaczyć tą opcję.

Co jest potrzebne:
- router z USB: Linksys WRT160NL, TP-Link TL-WR1043ND i inne na ar71xx - to jest architektura MIPS. Jeżeli użyjemy np. Asusa WL-500gP - to jest MIPSEL
- pendrive z systemem plików ext2/ext3/ext4
- dostęp do komputera z linuksem (może być ubuntu LiveCD)
- normlany firmware do routera, np. openwrt.

1. Generujemy system plików
Ściągamy system plików debiana przy użyciu narzędzia debootstrap na normalnym linuksie. W debianie/ubuntu można go doinstalować poleceniem apt-get install debootstrap, w gentoo emerge dev-util/debootstrap. Następnie wykonujemy polecenia
mkdir -p /tmp/fs
cd /tmp
debootstrap --arch=mips lenny fs http://ftp.pl.debian.org/debian

Ściągnie odpowiednie pakiety i rozpakuje je do katalogu fs. Zapewne zakończy się to błędem, ale należy zignorować bo ściągamy pakiety dla innej architektury i nie można wykonać binarek.
Dla Broadcoma należy oczywiście podać mipsel zamiast mips.
2. Kopiujemy zawartość katalogu na pendrive
Nie sam katalog fs tylko jego zawartość
3. Instalujemy OpenWrt na routerze.
Należy pamiętać o potrzebie zaznaczenia odpowiedniej opcji
make kernel_menuconfig -> [x] Enable FPU emulation. Bez tego może się nie dać uruchomić debiana. Później należy doinstalować obsługę USB/usb_storage i system plików, np. ext2 jeżeli takiego używamy na pendrive.
4. Dokończenie instalacji
Teraz należy włożyć pendrive do USB, zamontować nośnik i dokończyć instalację.
mkdir -p /tmp/debian
mount /dev/sda1 /tmp/debian

Teraz należy wykonać chroot
chroot /tmp/debian /bin/bash

A następnie dokończyć instalację pakietów:
cd /var/cache/apt/archives/
dpkg --force-all -i dpkg*deb
dpkg --force-all -i libc6*deb
dpkg -iGREB .

ponieważ instalacja i konfiguracja pakietów nie jest wykonywana we właściwej kolejności to po ostatnim poleceniu mogą pojawić się błędy. Należy powtórzyć ostatnie polecenie aż nie będzie błędów (5 czy 6 razy). Zostaje tylko konfiguracja niektórych rzeczy
dpkg-reconfigure -a
exit


I mamy gotowego debiana.
5. Skrypty startowe
Wystarczy np. w /etc/rc.local dodać następujące linie:

sleep 20
mkdir -p /tmp/debian
mount /dev/sda1 /tmp/debian
chroot /tmp/debian /bin/bash
exit 0


Tym samym mamy system, który normalnie uruchamia jądro pochodzące w tym przypadku z openwrt a następnie uruchamiające samego debiana. Wszystkie niezbędne moduły można albo dodać do debiana (wypakować odpowiednie pliki z pakietów openwrt) lub prościej po prostu zainstalować w openwrt i pozwolić samodzielnie załadować je przez openwrt.

Debian dysponuje znacznie większą liczbą pakietów, wiec może więc być bardziej użyteczny pod tym względem. Należy pamiętać że 32MB dla wielu usług może być za małą wartością; warto zrobić odpowiedni swap.

Autor:  tymmej [ 10 sty 2011, 19:23 ]
Tytuł:  Re: [minihowto] Debian na routerze

Tak z ciekawości: rzeczy związane z siecią (DHCP, limitowanie łącza, ustawienia WiFI, WAN) ustawiamy pod OpenWRT czy już Debianem?

Autor:  obsy [ 10 sty 2011, 20:00 ]
Tytuł:  Re: [minihowto] Debian na routerze

W sumie to jak chcesz. Jak wystartuje openwrt to wszystko możesz już mieć ustawione.

Autor:  rpc [ 10 sty 2011, 22:04 ]
Tytuł:  Re: [minihowto] Debian na routerze

ja jednak wolę właściwy system a nie chroot. Debian bezpośrednio na routerku było by fajniej

Autor:  obsy [ 11 sty 2011, 00:07 ]
Tytuł:  Re: [minihowto] Debian na routerze

Od tego jest DebWrt. Ale on i tak korzysta z kernela openwrt. Nic nie stoi na przeszkodzie, aby usb i systemy plików wkompilować w kernel, wtedy możesz debiana natywnie z usb uruchomić.

Autor:  rpc [ 11 sty 2011, 01:13 ]
Tytuł:  Re: [minihowto] Debian na routerze

nawet nie wiedziałem że coś takiego jest :)

Autor:  adi1121 [ 3 kwie 2012, 19:18 ]
Tytuł:  Re: [minihowto] Debian na routerze

Próbował ktoś tego na tomato?

Autor:  obsy [ 3 kwie 2012, 19:19 ]
Tytuł:  Re: [minihowto] Debian na routerze

Najpierw musiał byś skompilować sobie tomato z emulacją FPU. Reszta jest tak samo.

Autor:  adi1121 [ 3 kwie 2012, 21:49 ]
Tytuł:  Re: [minihowto] Debian na routerze

U mnie przy uruchamianiu routera wyświetla się w logu:
Jan 1 01:00:49 mm user.warn kernel: Algorithmics/MIPS FPU Emulator v1.5
Co wskazywało by na to ze emulacja FPU jest juz w tomato zawarta

Autor:  obsy [ 3 kwie 2012, 22:01 ]
Tytuł:  Re: [minihowto] Debian na routerze

Więc instaluj.

Autor:  adi1121 [ 4 kwie 2012, 00:26 ]
Tytuł:  Re: [minihowto] Debian na routerze

Ehh zasilacz od dysku mi się spalił, jestem daleko od domu będę dopiero w czwartek ale próbowałem już to instalować mam rt-n16 fw to najnowsza kompilacja shibbiego wiec ściągnąłem paczkę pod mipsel i podczas wykonywania chroota poleceniem:
chroot /tmp/debian /bin/bash wyskakuje mi
chroot: can't execute '/bin/bash': Permission denied
Wszystko robilem jak napisane w tutku nie wiesz o co tu moze chodzic?
jedyna różnica jest taka ze ja wykorzystałem paczkę stable a nie lenny no ale moim zdaniem on nawet nie zaczyna nic z tym robic tylko odrazu ten komunikat

Autor:  obsy [ 4 kwie 2012, 06:54 ]
Tytuł:  Re: [minihowto] Debian na routerze

Że nie masz uprawnień do wykonania tego. Albo zrobiłeś to systemie plików np. fat czy ntfs albo coś jednak zrobiłeś inaczej, skoro /bin/bash na nośniku nie jest wykonywalny.

Trzymaj się wg opisów i tak rób. Później sobie zrobisz upgrade jak już wszystko będzie działać.

Autor:  adi1121 [ 6 kwie 2012, 15:38 ]
Tytuł:  Re: [minihowto] Debian na routerze

Zrobilem wszystko od nowa ale dalej jest to samo nie wiem juz o co moze chodzic, jakies pomysly?

Autor:  obsy [ 6 kwie 2012, 15:47 ]
Tytuł:  Re: [minihowto] Debian na routerze

Masz na nośniku w ogóle bin/bash? ma on prawa wykonania?

Autor:  adi1121 [ 7 kwie 2012, 06:49 ]
Tytuł:  Re: [minihowto] Debian na routerze

No cos poszlo do przodu ale znowu jest problem, gdy chroot uruchomiony i probuje dokonczyc instalacje pakietow
root@mm:/tmp/debian# chroot /tmp/debian /opt/bin/bash
I have no name!@mm:/# cd /var/cache/apt/archives/
I have no name!@mm:/var/cache/apt/archives# dpkg --force-all -i dpkg*deb
bash: /usr/bin/dpkg: Permission denied
I have no name!@mm:/var/cache/apt/archives# /bin
bash: /bin: is a directory
I have no name!@mm:/var/cache/apt/archives# cd /bin
I have no name!@mm:/bin# bash
I have no name!@mm:/bin# dpkg --force-all -i dpkg*deb
bash: /usr/bin/dpkg: Permission denied
I have no name!@mm:/bin# ls
bash: /bin/ls: Permission denied
I have no name!@mm:/bin# chmod +x /bin/ls
bash: /bin/chmod: Permission denied
Tak jak by do niczego nie było uprawnień a chmody ustawione są na wykonywalne

Autor:  obsy [ 7 kwie 2012, 07:55 ]
Tytuł:  Re: [minihowto] Debian na routerze

Raczej jak byś sam usunął te uprawnienia, bo jak je nadasz do działa. Jaki system plików masz na nośniku?

Autor:  adi1121 [ 7 kwie 2012, 09:49 ]
Tytuł:  Re: [minihowto] Debian na routerze

System plików to ext3, kopiuje to wszystko na router przez ftp może mieć to jakieś znaczenie?

Autor:  obsy [ 7 kwie 2012, 10:07 ]
Tytuł:  Re: [minihowto] Debian na routerze

Tak. Ty nie ma masz tego kopiować, bo właśnie w ten sposób pozbywasz się atrybutów poszczególnych plików które system musi mieć. Sam więc sobie przeczysz, nie robisz tak jak napisano w tutorialu. Nic tam o kopiowaniu przez ftp nie było.

Autor:  adi1121 [ 7 kwie 2012, 10:17 ]
Tytuł:  Re: [minihowto] Debian na routerze

1. Generujemy system plików
Ściągamy system plików debiana przy użyciu narzędzia debootstrap na normalnym linuksie. W debianie/ubuntu można go doinstalować poleceniem apt-get install debootstrap, w gentoo emerge dev-util/debootstrap.

Ściągnie odpowiednie pakiety i rozpakuje je do katalogu fs. Zapewne zakończy się to błędem, ale należy zignorować bo ściągamy pakiety dla innej architektury i nie można wykonać binarek.
Dla Broadcoma należy oczywiście podać mipsel zamiast mips.
2. Kopiujemy zawartość katalogu na pendrive

Nie wiem, ja zrozumiałem z tego ze mam wytworzyć system plików np na maszynie wirtualnej a następnie skopiować na nośnik docelowy, nie było sprecyzowane jaką metodą

Autor:  obsy [ 7 kwie 2012, 10:19 ]
Tytuł:  Re: [minihowto] Debian na routerze

Podłączając pendrive pod maszynę wirtualną w Twoim przypadku.

Strona 1 z 2 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/