-
Диски
(стандартно)
-
sda
- sda1
- sda2
- sda3
- sda4
-
Порядок загрузки
(стандартный)
- REDBOOT
- ядро /dev/sda3/zImage
-
rootfs в пямять из /dev/sda3/rd.gz
- обработка /etc/inittab
- обработка /etc/init.d/rcS
-
обрабртка /etc/rc.d/rcS.d/S??*
-
S00sda3
- распаковка /dev/sda3/rootfs.gz в /mnt/sda3
- S01mount
-
S03oldsh
- вызов /mnt/sda3/etc/rc.sh
- вызов /mnt/HD_a2/fun_plug
- S04standby
-
знания
-
упаковка файлов для использования
- скачать mkimage
- посмотреть заговок от существующего
rd.gz из прошивки
- поправить kernel.cfg
- добвить заголовок к архиву
-
распаковка файлов прошивки для редактирования
- обрезать заголовок
- распаковать файл
- смонтировать файл как устройство или расраковать архив
- поддерживаемые файловые системы /proc/filesystems
- для работы с debian armel вместо arm
нужно в ядре включить опцию CONFIG_AEABI=y
для обратной совместимости еще CONFIG_OABI_COMPAT=y
-
сборка ядра кросскомпилятором
- в Makefile указать:
ARCH = arm
CROSS_COMPILE = префикс компилятора
-
изменение прошивки
(кривовато)
-
разбиение диска
- sda1 500M swap
- sda2 место под хранилище
- sda3 2Gb ext2 active part место под систему
- поправить rd.gz (убрать зачистку /mnt/sda3)
-
копирование файлов
- скопировать модифицированый rd.gz в sda3/.boot
- распаковать fun_plug.tgz в sda3/ffp
- скопировать запускающий скрипт fun_plug в sda3/etc/rc.sh
- поправить sda3/etc/rc.sh
- загрузить
-
инсталятор debian
- распаковать
- смонтировать
- сделать папку под инсталятор
- скопировать содержимое ramdisk в папку для инсталяции
-
сделать chroot
- сделать точки монтирования
- перемонтировать /dev, /proc, /sys и тп
- поправить etc новой системы
- сделать chroot
- запустить debian-install
-
персборка ядра
- загрузить toolchain
- распаковать в /home
- cd ~/Gmini/sources/kernel/linux
- make menuconfig && make
- arch/arm/boot/zImage - готовое ядро
- добавить заголовки в ядро
- скопировать в sda3/.boot/
- система управления через web webmin
-
Железо
- COM порт
-
Процессор SL3512
-
Производитель StorLink
- В 2008 куплен Cortina Systems
- Сейчас называется CS3512
- 300 MHz ARM9 Processor
- FA526
-
в kernel - SystemType = sl2312
- в драйверах sl351x
-
Память
- 64Mb
- Флеш
- Сеть
-
установка Lenny
-
разбить диск
- sda1 - 500M Swap
- sda3 - 2Gb Ext2
- sda2 - все остальное Ext3
- на sda3 распаковать архив
-
заменить файлы в .boot
-
собрать ядро
- boot опция root=/dev/sda3 mem=64M
- поддержка ext3
- поддержка NFS
-
сделать пустой rd.gz
- сделать пустой файл
- отформатировать в ext2
- упаковать gzip
- сделать пустой rootfs.tgz
- добавить заголовки во все файлы
- настроить сеть в etc/network.d/interfaces
- логин root пароль passwd через telnet или консоль
-
Настройка spindown для диска
(не нужно, т.к. torrent не даст уснуть)
-
убрать постоянную запись на диски логов
- mv /var/log /var/log.save
mkdir /var/spool/log
ln -s /var/spool/log /var/log
- сохранить текущие логи при перезагрузке, остановке
- подгрузить старые логи при загрузке, сразу после монтирования
- взять утилиту pwrmgm из rd.gz/bin стандартной прошики
- убрать из /etc/rc.local hdparm,
вставить pwrmgm 10 &
- исправление telnet
cd /mnt/dns313 (or wherever the box is mounted...)
chown 0:102 usr/lib/telnetlogin
chmod 4754 usr/lib/telnetlogin
- поставить locale
LANG="ru_RU.UTF-8"
- APT::Architecture "armel"
(не работает, т.к. ядро без EABI)
- sudo apt-get dist-upgrade
- обновление всех пакетов
- установка screen
- установка webmin(долго идет)
(не нужно, т.к. мало памяти)
- установка transmission
(не работает перемещение, плохо раздает)
- установка NFS
- установка samba
- установка swat
web-морда самбы
-
Ядро с поддержкой EABI
- ошибки в синтаксисе ядра 2.6.15
- нужно собирать c gcc4.*
- компилятор http://www.codesourcery.com/
-
процессор
- стотит SL3512
- при сборке выбран sl2312
-
исходники ядра
- на kernel.org такого поцессора нету
- на SF http://openwrtstorlink.svn.sourceforge.net 2.6.24.4
-
на dd-wrt http://svn.dd-wrt.com:8000 2.6.23
- mkdir dd-wrt
- cd dd-wrt
- svn co svn://svn.dd-wrt.com/DD-WRT/src/linux/sl2312/linux-2.6.23 .
-
vi Makefile
- SUBARCH := arm
- CROSS_COMPILE = arm-none-eabi-
- cp .config_storm .config
-
make menuconfig
- убрать File systems->
Miscellaneous filesystems->
Journalling Flash File System v2
- убрать Networking->
Networking options->
The IPv6 protocol
- cp ../Gemini_v2_6_3-n_BSP/source/kernel/linux/drivers/char/sl2312_*.c drivers/char/
- vi drivers/char/sl2312_rtc.c
-#include <linux/config.h>
+#include <linux/autoconf.h>
- make
- make clean
- в стандартнем ядре есть arch/arm/mach-gemini/
возможно это то, что нужно
-
openwrt gemini 2.6.30.10
- wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.10.tar.bz2
- mkdir openwrt
- cd openwrt
- svn co svn://svn.openwrt.org/openwrt/trunk/target/linux/gemini/ ./gemini
- tar -xvf ../linux-2.6.30.10.tar.bz2
- cd linux-2.6.30.10
- Subtopic 7
-
openwrt storm
- mkdir trunk.16273
- svn co svn://svn.openwrt.org/openwrt/trunk@16273 .
- wget http://www.wilibox.com/~edmundas/downloads/storm.tgz
- cp storm.gz/storm/config-build trunk/.config
- edit .config
- patch unifdef.c
- make menuconfig && save
- make
-
ссылки
- http://storlinkdevices.memoriedigitali.com/index.php
- http://forum.dsmg600.info/viewforum.php?id=9
- http://forum.dlink.ru/viewforum.php?f=16
- http://opengemini.free.fr/wiki/doku.php
- http://www.cortina-systems.com.cn/
- Плата http://www.wiligear.com/?q=products/cpu-boards/wbd-111
- ftp://wilibox.com/gpl/wili-box-4.xx/