Назад   
   GOR    

Установка DebWrt на DIR-320

аппаратных ревизий A1/A2


Оглавление

Необходимые материалы

Я использую прошивку DebWrt ревизии 116 от 22 июня 2011 года с ядром версии 2.6.34.5. Немного тухло, но в сборках с более свежими ядрами мне не удалось заставить работать интерфейс wlan0 (видимо - из-за этого), а пересобирать прошивку - лениво. Работает - и пусть работает :-) Прошивки беру с официального сайта DebWrt.

Перейти к оглавлению

Подготовка накопителя

Команды выполняются от имени пользователя root или используется sudo. Допустим, что USB-флеш-накопитель объявлен в системе как /dev/sdb

Последовательность действий следующая:

Разбивка накопителя на разделы

/dev/sdb1 - метка тома DEBWRT_ROOT, тип - Linux (ext3), весь объём накопителя, кроме свопа
/dev/sdb2 - метка тома DEBWRT_SWAP, тип - Linux Swap, объём - 128 Мб

Создание файловых систем
mkfs.ext3 -L DEBWRT_ROOT /dev/sdb1
tune2fs -c 0 -i 0 /dev/sdb1
mkswap -L DEBWRT_SWAP /dev/sdb2
Монтирование корневого раздела ext3
mkdir -p /mnt/debwrt
mount /dev/sdb1 /mnt/debwrt
cd /mnt/debwrt
Распаковка архива с корневым образом в /mnt/debwrt (/dev/sdb1)
tar xjvf ~/debwrt-rootfs-mipsel-2.0-1.tar.bz2
Распаковка архива с модулями ядра в /mnt/debwrt (/dev/sdb1)
tar xzvf ~/debwrt-modules-brcm47xx-Broadcom-b43-2.6.34.5-angel-2.0-1.tar.gz --no-same-owner
Размонтирование и извлечение накопителя
cd
sync
umount /mnt/debwrt
eject /dev/sdb
Перейти к оглавлению

Прошивка устройства

Устройство перепрошивается DebWrt-прошивкой по инструкции с сайта OpenWrt, затем необходимо перезагрузить маршрутизатор.

Вариант для  Шindoшs

tftp -i 192.168.0.1 put debwrt-firmware-brcm47xx-squashfs.trx

Вариант для  Linux

atftp --trace --option "timeout 1" --option "mode octet" --put --local-file debwrt-firmware-brcm47xx-squashfs.trx 192.168.0.1

После перепрошивки действуют следующие установки по умолчанию:

  • пользователь : root
  • пароль : debwrt
  • IP-адрес : 192.168.1.1

При первой загрузке (в случае самостоятельной сборки образа) выполняются сервисы SSHD и telnetd

При обычной загрузке

  • запущены сервисы SSHD и telnetd
  • eth0 настроен в /etc/network/interfaces
  • настройки switch не произведены (используется пакет robocfg или swconfig)
  • предустановлены пакеты DebWrt
    • robocfg
    • nvram
    • libnl
    • hostapd (nl80211, madwifi, WPA, WEP, режим ТД)
    • iw

Перейти к оглавлению

Действия после перепрошивки

Необходимо:

  • настроить MAC-адрес (опционально, MAC'и выдуманы)
  • nvram set et0macaddr=1c:af:f7:96:3b:0e
    nvram set il0macaddr=1c:af:f7:96:3b:10
    nvram commit
    reboot
  • установить новый пароль пользователя root
  • установить пакет locales (опционально)
  • настроить timezone
  • сбросить секретный ключ SSHD
  • проверить, что настройки /etc/securetty позволяют пользователю root логиниться на pts/0 ... pts/6

Для запуска сервиса robocfg установите ENABLED=1 в файле /etc/default/robocfg, добавьте символическую ссылку от файла /etc/init.d/robocfg в /etc/rcS.d (сервис должен стартовать до службы "networking"), удалите файл /etc/network/interfaces (если это символическая ссылка) и создайте его заново.

Перейти к оглавлению

Использование NetConsole

nc -l -p 6666 -u
Перейти к оглавлению

Дополнительные советы по настройке свежей системы

Следует иметь в виду, что у свежеперепрошитого устройства на LAN-интерфейсе настроен IP-адрес 192.168.1.1/24. Если используются другие сети, то правим сетевые настройки (возможно, сеанс удалённого входа отвалится, если изменился IP-адрес). Для этого необходимо удалить /etc/network/interfaces (это симлинк на /etc/network/interfaces.firstboot), создать его с необходимым содержимым и перегрузить службу networking:

rm /etc/network/interfaces
touch /etc/network/interfaces
cat << EOF > /etc/network/interfaces
auto lo eth0
iface lo inet loopback
 
iface eth0 inet dhcp
 
iface wlan0 inet dhcp
wpa-ssid <имя WiFi-сети>
wpa-psk <ключ WiFi-сети>
EOF
service networking restart
echo "<DNS-сервер>" > /etc/resolv.conf

Изначально настроен только один пользователь - root с паролём debwrt. Из-за того, что при старте таймер времени равен нулю, то есть системные время и дата установлены на полночь 1 января 1970 года (Thu Jan 1 00:00:00 UTC 1970),то при входе ssh’ем (или telnet’ом) система потребует смену пароля. Необходимо выставить правильное время.


Способ I. Применим даже с ненастроеной сетевой подсистемой.
date --set="<дата> <месяц> <год> <часы>:<минуты>:<секунды>"
date --set="<номер месяца>/<дата>/<год> <часы>:<минуты>:<секунды>"

Примеры:

date --set="16 January 2018 17:57:00"
date --set="01/16/2018 17:57:00"

Способ II. Правим время с помощью ntpdate (требуется доступ в сеть Интернет). Останавливаем сервис ntp и синхронизируем время с любым рабочим NTP-сервером.
service ntp stop
ntpdate time.nist.gov
service ntp start

Команды

hwclock -w
hwclock --hctosys
не сработают, так как у системы нет аппаратных часов.

Меняем репозиторий с ftp.debian.org на archive.debian.org и обновляем систему:

echo "deb http://archive.debian.org/debian squeeze main" > /etc/apt/sources.list
apt-get update
apt-get upgrade

Донастраиваем систему и устанавливаем нужные пакеты:

passwd
hostname <имя узла>
echo "<имя узла>" > /etc/hostname
echo -e "127.0.0.2\t<имя узла>" > /etc/hosts
apt-get install mc sudo most locales bash-completion nload htop ccze telnet wpasupplicant
dpkg-reconfigure locales
dpkg-reconfigure tzdata
adduser <пользователь>
echo -e "<пользователь>\tALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers
apt-get install apache2 php7 mysql-server
Перейти к оглавлению

Последнее изменение страницы: пятница, 26 января 2018 года, 16 часов 58 минут.

© Павел  Гладилов, 2024 

Наверх