abatapa спасибо за внимание, скажите пожалуйста, а влияет ли как нибудь загрузка с флеша на скорость работы роутера? Я имею ввиду, не разружается ли частично проц или оперативка роутера?
abatapa спасибо за внимание, скажите пожалуйста, а влияет ли как нибудь загрузка с флеша на скорость работы роутера? Я имею ввиду, не разружается ли частично проц или оперативка роутера?
Кому-то удалось грузить ядра по NFS командами из CFE, но лично я этот труд не осилил.
Что-то я сомневаюсь. Либо CFE другое. У нас нет поддержки nfs. Есть tftp, но в этом случае всё равно программируется флешка.
В том-то и дело что наше - http://wl500g.info/showthread.php?t=4175
tftp:
boot -elf -tftp 192.168.1.6:vmlinux_nfs
Ядро - да, tftp - но флешка то в этом случае не должна шиться? Или я опять очевидного не заметил? А root'овая FS по NFS.
Судя по выводу ядро действительно не шьётся.
Сегодня у меня возникла острая потребность грузить по сетке компы с роутера. Может быть кому понадобится, так что расскажу как и что делать. Тем более ни одного внятного объяснения в этом форуме я так и не нашёл.
На самом деле всё ну очень быстро и легко, минут 15 максимум (если не считать время закачек)
*при работе с именами файлов соблюдайте правильный регистр
1) Подготовка образа BartPE
- Скачать PEbuilder
- Скачать дистрибутив Windows Server 2003 R2 SP2 x86 En (где брать решайте сами, можно абсолютно легально и с microsoft.com триал скачать, всё равно активировать не надо)
- Прочитать одну из многочисленных инструкций про BartPE (хотя можно и без них разобраться, там и так проще не придумаешь)
- Собрать систему и записать её в файл BARTPE.ISO
- Теперь надо разобраться с загрузочными файлами:
из папки I386 взять файлы:
NTDETECT.COM (переименовываем в ntdetect.com)
STARTROM.N1_ (распаковать с помощью expand -> startrom.n12)
SETUPLDR.EX_ (распаковать с помощью expand и переименовать его в NTLDR)
создать файл winnt.sif с таким содержанием:
Code:[SetupData] BootDevice = "ramdisk(0)" BootPath = "\i386\System32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso"
2) Настройка роутера
- Установить tftp-hpa (вместе с ним установится ещё и xinetd)
Code:ipkg install tftp-hpa- Создать папку на диске где будет храниться загрузочный образ (дефолтовая папка: /opt/tftpboot, хотя можно и любую другую использовать; у меня, например, /opt/files/boot), и скинуть 5 имеющихся файлов туда.
- Прописать в файл /usr/local/etc/dnsmasq.conf такую строчку (если файла нет, то надо создать):
после чего сохранить его в флешпамяти роутераCode:dhcp-boot=startrom.n12
Code:flashfs save && flashfs commit && flashfs enable- При необходимости отредактировать файл /opt/etc/xinetd.conf под свои нужды (мне же было достаточно и дефолтовых настроек)
- Отредактировать файл /opt/etc/xinetd.d/tftp
Он должен выглядеть примерно так:
параметр user, разумеется, должен соответствовать вашему администраторскому логину; в server_args должен быть указан путь к загрузчику;Code:service tftp { flags = REUSE socket_type = dgram protocol = udp instances = 30 wait = yes user = admin server = /opt/sbin/in.tftpd server_args = -s /opt/files/boot cps = 100 2 log_on_success = HOST PID log_on_failure = HOST disable = no }
- Если не используете rc.unslung, то не забудьте прописать в автозапуск /opt/sbin/xinetd
Теперь можно ребутнуть роутер и проверить работоспособность.
Для эконмии времени при разработке ядро можно грузить не с флеша, а по сети.
CFE> boot -elf -tftp host:vmlinux
однако, в новых рутерах памяти, доступной CFE не хватает для размещения ядра. Вот распределение памяти WL-500g Premium V1:
А это WL-500g Deluxe:Code:Total memory used by CFE: 0x80800000 - 0x8089AF40 (634688) Initialized Data: 0x808313D0 - 0x80833790 (9152) BSS Area: 0x80833790 - 0x80834F40 (6064) Local Heap: 0x80834F40 - 0x80898F40 (409600) Stack Area: 0x80898F40 - 0x8089AF40 (8192) Text (code) segment: 0x80800000 - 0x808313D0 (201680) Boot area (physical): 0x0089B000 - 0x008DB000 Relocation Factor: I:00000000 - D:00000000
Обратите внимание на размер Local Heap.Code:Total memory used by CFE: 0x80300000 - 0x80436F10 (1273616) Initialized Data: 0x803313D0 - 0x80333760 (9104) BSS Area: 0x80333760 - 0x80334F10 (6064) Local Heap: 0x80334F10 - 0x80434F10 (1048576) Stack Area: 0x80434F10 - 0x80436F10 (8192) Text (code) segment: 0x80300000 - 0x803313D0 (201680) Boot area (physical): 0x00437000 - 0x00477000 Relocation Factor: I:00000000 - D:00000000
Собственно, вопрос: как можно увеличить размер Local Heap?
Точно не помню. Но сомнений нет -- ругается именно на то, что ядро не лезет в память. Ну и собственно, на премиуме я не могу по сети загрузиться, а в делюксе могу.
Ребутнулся ради истины:
Code:CFE> boot -elf -tftp 192.168.254.2:vmlinux Loader:elf Filesys:tftp Dev:eth0 File:192.168.254.2:vmlinux Options:(null) Loading: TFTP Client. 0x80300000/899654 Failed. Could not load 192.168.254.2:vmlinux: Section would load outside available DRAM *** command status = -17 CFE> reboot
Last edited by Sanvean; 29-01-2009 at 20:08.
Тогда ой. Запастись программатором (или другом с программатором) на случай краха, и, перекрестившись ,перекомпилить и перепрошить CFE.
У меня для такого случая есть WL-500gE с горелым WiFi =)
Где взять исходники CFE?