Temat: LuCi na zewnętrznym dysku

Witam,

Niedawno zainteresowałem się OpenWRT. Wcześniej korzystałem z Tomato ND USB.

Wgrałem gotowca stąd http://mightyohm.com/blog/2008/11/build … g-openwrt/

Wszystko fajnie, ale luci nie miała ta kompilacja, a mi zależy na webowym GUI.

Trochę się pomęczyłem, ale się udało i skompilowałem z trunka wersję z luci.

Niestety zostało mi dość niewiele miejsca (1.3MB) bo mój Asus WL-520GU ma tylko 4MB flasha, a ja chciałbym niemal wszystkie komponenty luci. Doinstalowałem obsługę USB, FS'a ext2 i podmontowałem pendrive'a.

Luci w menu components wykrywa zainstalowane moduły na podmontowanym dysku ale w gui nie ma tych funkcji hmm

Próbowałem też w ten sposób, że zrobiłem builda bez luci i próbowałem na pendrive'a wrzucić całe luci ale robi się sieczka i nie działa hmm
Wolałbym czyste luci na routerze i wszystkie pluginy na pendrive, da się ? Szukałem na googlach, a forum openwrt cały czas pada, dobrze ze cache google'a działa, ale i tak nie znalazłem żadnego tematu z componentami luci na mountowanym dysku.

2

Odp: LuCi na zewnętrznym dysku

Umieść całe luci na dysku i zrób linka pomiędzy z tego dysku na flash.

Rezultat taki, że system będzie normalnie widział pliki od luci za to fizycznie będą one znajdowały się na zewnętrznym nośniku.

PS. To już lepiej gargoyle, chociaż o usb i filesystemie sobie nie wyklikasz w nim.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: LuCi na zewnętrznym dysku

Gargoyle nie przypadł mi do gustu.

Następny problem jest taki, że mimo iż usunąłem wszystko związane z luci w make menuconfig to lua zostało i nie mogę go usunąć, ani dać ln -s bo plik już istnieje.

Kompiluje na czysto, od nowa. Może jeszcze dziś uda mi się sprawdzić.

4

Odp: LuCi na zewnętrznym dysku

Lua niech zostanie, aż już Ci nie przeszkadza.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: LuCi na zewnętrznym dysku

A może po prostu bootować z USB ? Nie będę musiał się bawić w ln -s tongue I tak nie będę używać flasha w routerze tongue
BTW dzięki za bardzo szybkie odpowiedzi big_smile

6

Odp: LuCi na zewnętrznym dysku

Można, tu na forum masz opis jak to zrobić.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: LuCi na zewnętrznym dysku

Ok, a więc próbowałem metody z wątku http://eko.one.pl/forum/viewtopic.php?id=50.

Niestety ten skrypt u mnie nie działa hmm

Po rebocie widzę :

BusyBox v1.11.2 (2009-08-25 21:05:04 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 KAMIKAZE (8.09.1, r17398) ----------------------------
  * 10 oz Vodka       Shake well with ice and strain
  * 10 oz Triple sec  mixture into 10 shot glasses.
  * 10 oz lime juice  Salute!
 ---------------------------------------------------
root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                    1.6M      1.6M         0 100% /
/dev/root                 1.6M      1.6M         0 100% /rom
tmpfs                     7.0M     40.0k      7.0M   1% /tmp
/dev/mtdblock/4           1.7M    408.0k      1.3M  24% /jffs
mini_fo:/jffs             1.6M      1.6M         0 100% /

Tak wygląda mój /sbin/init :

#!/bin/sh
# /sbin/init in internal flash
boot_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 # - us
for module in usbcore ohci scsi_mod usb-storage ext2                 # - or use
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 && \
     /sbin/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>&-
      }
else # if something wrong, clean changes
    umount /mnt
fi

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

Gdy odpalam ręcznie ten /sbin/init to:

root@OpenWrt:/sbin# ./init
insmod: a module named usbcore already exists
insmod: Loading module failed: No such file or directory #to akurat nieistotne :P
insmod: a module named scsi_mod already exists
insmod: a module named usb-storage already exists
insmod: a module named ext2 already exists
mount: /proc is not a block device
BusyBox v1.11.2 (2009-08-25 21:05:04 CEST) multi-call binary

Usage: init

Init is the parent of all processes

Jak to się wyświetli to już nic się nie dzieje, mogę to tylko zakończyć ctrl+c.

Mój OpenWRT to Kamikadze 8.09.

Używam pendrive'a 2GB, part1 to swap kilkumegowy, który kiedyś może użyje, part 2 to ext2.
On po zamontowaniu:

root@OpenWrt:/sbin# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                    1.6M      1.6M         0 100% /
/dev/root                 1.6M      1.6M         0 100% /rom
tmpfs                     7.0M     40.0k      7.0M   1% /tmp
/dev/mtdblock/4           1.7M    408.0k      1.3M  24% /jffs
mini_fo:/jffs             1.6M      1.6M         0 100% /
/dev/scsi/host0/bus0/target0/lun0/part2
                          1.8G      5.9M      1.7G   0% /mnt

8

Odp: LuCi na zewnętrznym dysku

Pytanie: a masz na stale wkompilowane moduły od USB? Jeżeli zainstalowałeś je jako paczki, to moduły znajdują się /jffs, którego w ogóle nie montujesz. A gdzies musi mieć te moduły zapisane żeby ten insmod zrobić.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: LuCi na zewnętrznym dysku

Moduły od USB, fdisk i e2fsprogs mam wkompilowane.

To dobrze, że wkompilowane ?

10

Odp: LuCi na zewnętrznym dysku

To dobrze.

Jak robisz insmod $module to zrob insmod $module >> /tmp/log.txt będziesz miał info czy w ogóle się to ładuje. Zwiększ także czas z 4s na 10, czasami usb wymaga czasu do działania.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: LuCi na zewnętrznym dysku

~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
- /tmp/log.txt 0/0 100%

Zawartość logu.
Czas sleepa zwiększyłem do 20s.
Dalej to samo hmm

12

Odp: LuCi na zewnętrznym dysku

To inaczej: po sleep i mount daj

lsmod >> /tmp/log.txt
mount >> /tmp/log.txt

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13 (edytowany przez System666 2009-08-26 19:16:21)

Odp: LuCi na zewnętrznym dysku

Ok po dodaniu tych linijek wygląda to tak (dla pewności):

#!/bin/sh
# /sbin/init in internal flash
boot_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 # - us
for module in usbcore ohci scsi_mod usb-storage ext2                 # - or use
do
  insmod $module  # >> /tmp/log.txt
done

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

lsmod >> /tmp/log.txt
mount >> /tmp/log.txt

# 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 && \
     /sbin/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>&-
      }
else # if something wrong, clean changes
    umount /mnt
fi

# run the real init on the end (from USB hopefully)
exec /bin/busybox init
~
~
- /sbin/init 1/33 3%

A to log:

Module                  Size  Used by    Tainted: P
ipt_multiport            748   0 (unused)
ipt_mac                  556   0 (unused)
ipt_limit                892   1
iptable_mangle          2156   0 (unused)
iptable_filter          1676   1
ip_tables              16960  13 [ipt_MASQUERADE iptable_nat ipt_state ipt_REJEC
ppp_async               8044   0 (unused)
ppp_generic            22380   0 [ppp_async]
slhc                    6064   0 [ppp_generic]
wl                    666560   0 (unused)
ext2                   40304   1
usb-storage            69648   1
scsi_mod               66048   2 [sd_mod usb-storage]
usbcore                71296   1 [usb-ohci usb-storage]
switch-robo             5180   0 (unused)
switch-core             5104   0 [switch-robo]
diag                   50448   0 (unused)
rootfs on / type rootfs (rw)
/dev/root on /rom type squashfs (ro)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw)
- /tmp/log.txt 17/43 39%
Module                  Size  Used by    Tainted: P
wlcompat                9504   0 (unused)
usb-ohci               19252   0 (unused)
ip_conntrack_tftp       1724   0 (unused)
ip_nat_irc              2360   0 (unused)
ip_conntrack_irc        3140   1
ip_nat_ftp              2984   0 (unused)
ip_conntrack_ftp        4284   1
ipt_MASQUERADE          1316   2
iptable_nat            21000   3 [ip_nat_irc ip_nat_ftp ipt_MASQUERADE]
ipt_state                408   6
ip_conntrack           22576   3 [ip_conntrack_tftp ip_nat_irc ip_conntrack_irc ip_nat_ftp ip_conntrack_ftp ipt_MASQUERADE iptable_nat ipt_state]
sd_mod                 12500   2
ipt_REJECT              3932   2
ipt_TCPMSS              2316   2
ipt_LOG                 3804   0 (unused)
ipt_multiport            748   0 (unused)
ipt_mac                  556   0 (unused)
ipt_limit                892   1
iptable_mangle          2156   0 (unused)
iptable_filter          1676   1
ip_tables              16960  13 [ipt_MASQUERADE iptable_nat ipt_state ipt_REJECT ipt_TCPMSS ipt_LOG ipt_multiport ipt_mac ipt_limit iptable_mangle iptable_f
ppp_async               8044   0 (unused)
ppp_generic            22380   0 [ppp_async]
slhc                    6064   0 [ppp_generic]
wl                    666560   0 (unused)
ext2                   40304   1
usb-storage            69648   1
scsi_mod               66048   2 [sd_mod usb-storage]
usbcore                71296   1 [usb-ohci usb-storage]
switch-robo             5180   0 (unused)
switch-core             5104   0 [switch-robo]
diag                   50448   0 (unused)
rootfs on / type rootfs (rw)
/dev/root on /rom type squashfs (ro)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw)
/dev/mtdblock/4 on /jffs type jffs2 (rw)
mini_fo:/jffs on / type mini_fo (rw)
none on /proc/bus/usb type usbfs (rw)
/dev/scsi/host0/bus0/target0/lun0/part2 on /mnt type ext2 (rw)
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
- /tmp/log.txt 1/43 2%

14

Odp: LuCi na zewnętrznym dysku

I co dalej ? tongue