dns-k8凯发
-
диски
(стандартно)
-
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
- com порт
-
персборка ядра
- загрузить toolchain
- распаковать в /home
- cd ~/gmini/sources/kernel/linux
- make menuconfig && make
- arch/arm/boot/zimage - готовое ядро
- добавить заголовки в ядро
- скопировать в sda3/.boot/
- система управления через web webmin
-
установка 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
#include
- make
- make clean
- в стандартнем ядре есть arch/arm/mach-gemini/
возможно это то, что нужно