Jump to content
Александр Рыжов

Debian stable на кинетике

Recommended Posts

Предлагаемое решение позволяет использовать среду Debian 8.11 "Jessie" или Debian 9.9 "Stretch" прямо на роутере.

Хороший пример использования этого решения — работающий сервер http://files.keenopt.ru/

 

Требования

  • кинетик с USB-портом,
  • draft-прошивка на основе kernel 3.x.
  • флешка, отформатированная в Ext2/Ext3/Ext4. В Windows для форматирования можно воспользоваться EaseUS Partition Master free.

 

Установка

Наберитесь терпения: роутер «уйдёт в себя» на время до полутора минут. В это время будет вестись распаковка архива с флешки. Каждый следующий запуск среды будет происходить практически мгновенно. Признаком того, что всё прошло нормально будут следующие события в системном логе:

[I] Jul 19 13:24:28 ndm: Opkg::Manager: disk is set to: fb4e34d1-3cab-fd19-b96d-4bb3a2d5ec84:
[I] Jul 19 13:24:28 ndm: Opkg::Manager: init script reset to default: /opt/etc/initrc.
[I] Jul 19 13:24:28 ndm: kernel: EXT4-fs (sda1): re-mounted. Opts: (null)
[I] Jul 19 13:24:28 ndm: Opkg::Manager: /tmp/mnt/FIT8GB/ mounted to /tmp/mnt/FIT8GB/.
[I] Jul 19 13:24:28 ndm: Opkg::Manager: /tmp/mnt/FIT8GB/ mounted to /opt/.
[I] Jul 19 13:24:28 npkg: inflating "debian-keenetic.tar.gz".
[I] Jul 19 13:24:28 ndm: Core::ConfigurationSaver: saving configuration...
[I] Jul 19 13:26:10 ndm: Opkg::Manager: /tmp/mnt/FIT8GB/ initialized.
[I] Jul 19 13:26:10 ndm: Core::ConfigurationSaver: configuration saved.
[I] Jul 19 10:26:10 root: Starting Debian services...
[W] Jul 19 13:26:11 ndm: kernel: Algorithmics/MIPS FPU Emulator v1.5
[I] Jul 19 13:26:11 ndm: Opkg::Manager: /opt/etc/initrc: Starting OpenBSD Secure Shell server: sshd.
[I] Jul 19 13:26:11 ndm: Opkg::Manager: /opt/etc/initrc: Done.
[I] Jul 19 10:26:11 sshd[448]: Server listening on 0.0.0.0 port 22.
[I] Jul 19 10:26:11 sshd[448]: Server listening on :: port 22.
Скрытый текст

...
[I] Feb 19 12:26:45 ndm: Opkg::Manager: disk is set to: debian:/.
[I] Feb 19 12:26:45 ndm: kernel: EXT4-fs (sde): re-mounted. Opts: (null)
[I] Feb 19 12:26:45 ndm: Opkg::Manager: /tmp/mnt/bc2a2eb6-f889-4366-83ba-2cc3b93646f9 mounted to /tmp/mnt/bc2a2eb6-f889-4366-83ba-2cc3b93646f9.
[I] Feb 19 12:26:45 ndm: Opkg::Manager: /tmp/mnt/bc2a2eb6-f889-4366-83ba-2cc3b93646f9 mounted to /opt/.

[I] Feb 19 12:26:45 npkg: inflating "debian-stretch-9_8-mipsel.tar.gz".

[I] Feb 19 12:27:13 ndm: Opkg::Manager: /tmp/mnt/bc2a2eb6-f889-4366-83ba-2cc3b93646f9 initialized.
[I] Feb 19 12:27:13 ndm: Opkg::Manager: init script reset to default: /opt/etc/initrc.
[I] Feb 19 12:27:13 ndm: Core::ConfigurationSaver: saving configuration...
[I] Feb 19 12:27:13 ndm: Dns::Manager: RPC-only mode enabled.
[I] Feb 19 12:27:13 ndnproxy: ndnproxy stopped.

[I] Feb 19 09:27:13 0: Starting Debian services...
[I] Feb 19 09:27:14 sshd[8096]: Server listening on 0.0.0.0 port 222.
[I] Feb 19 12:27:14 ndm: Opkg::Manager: /opt/etc/initrc: Starting OpenBSD Secure Shell server: sshd.
[I] Feb 19 12:27:14 ndm: Opkg::Manager: /opt/etc/initrc: Done.
[I] Feb 19 09:27:14 sshd[8096]: Server listening on :: port 222.

[I] Feb 19 12:27:15 ndnproxy: ndnproxy 1.3.0b22 started.
[I] Feb 19 12:27:15 ndnproxy: PID file: /var/ndnproxymain.pid.
[I] Feb 19 12:27:15 ndnproxy: stats. file: /var/ndnproxymain.stat.
[I] Feb 19 12:27:17 ndm: Core::ConfigurationSaver: configuration saved.

[I] Feb 19 09:27:55 sshd[8308]: Connection closed by 192.168.1.60 port 48314 [preauth]
[I] Feb 19 09:28:34 sshd[8476]: Accepted password for root from 192.168.1.60 port 48318 ssh2
[I] Feb 19 09:28:34 sshd[8476]: pam_unix(sshd:session): session opened for user root by (uid=0)
[E] Feb 19 09:28:34 sshd[8476]: pam_env(sshd:session): Unable to open env file: /etc/default/locale: No such file or directory

[I] Feb 19 09:29:56 chroot: Hello, World!

[I] Feb 19 09:31:13 sshd[8476]: Received disconnect from 192.168.1.60 port 48318:11: disconnected by user
[I] Feb 19 09:31:13 sshd[8476]: Disconnected from 192.168.1.60 port 48318
[I] Feb 19 09:31:13 sshd[8476]: pam_unix(sshd:session): session closed for user root

[I] Feb 19 12:31:30 ndm: Opkg::Manager: unmount existing /opt disk: debian:/.
[I] Feb 19 09:31:30 0: Stopping Debian services...
[I] Feb 19 09:31:31 sshd[8096]: Received signal 15; terminating.
[I] Feb 19 12:31:31 ndm: Opkg::Manager: /opt/etc/initrc: Stopping OpenBSD Secure Shell server: sshd.
[I] Feb 19 12:31:31 ndm: Opkg::Manager: /opt/etc/initrc: Done.
[I] Feb 19 12:31:31 ndm: Opkg::Manager: disk unmounted.

[I] Feb 19 12:31:31 ndnproxy: ndnproxy stopped.
[I] Feb 19 12:31:31 ndm: Dns::Manager: RPC-only mode disabled.
[I] Feb 19 12:31:31 ndm: Opkg::Manager: disk is unset.
[I] Feb 19 12:31:31 ndm: Opkg::Manager: init script reset to default: /opt/etc/initrc.
[I] Feb 19 12:31:31 ndm: Core::ConfigurationSaver: saving configuration...
[I] Feb 19 12:31:33 ndnproxy: ndnproxy 1.3.0b22 started.
[I] Feb 19 12:31:33 ndnproxy: PID file: /var/ndnproxymain.pid.
[I] Feb 19 12:31:33 ndnproxy: stats. file: /var/ndnproxymain.stat.
[I] Feb 19 12:31:34 ndm: Core::ConfigurationSaver: configuration saved.
...

 

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

Подключитесь с помощью SSH-клиента к роутеру:

  • хост: my.keenetic.net,
  • порт: 222
  • имя пользователя: root,
  • пароль: debian.

Перед вами user space среда Debian, использование которой ограничено лишь вашей фантазией и здравым смыслом. Вам доступны десятки тысяч пакетов репозитория и решения одного из самых крупных linux-комьюнити.

На Omni II среда ворочается довольно тяжело. На устройствах с 64МБ RAM рекомендуется в веб-интерфейсе включить Swap-файл.

 

Технические детали

При SSH-логине вы попадаете в chroot-среду, подготовленную по этому алгоритму. За пределами chroot-среды на роутере лишь busybox и скрипт /opt/etc/initrc, который запускает сервисы Debian при старте роутера и грациозно завершает их работу при перезагрузке и\или отмонтировании носителя:

[I] Jul 19 10:28:36 root: Stopping Debian services...
[I] Jul 19 10:28:36 sshd[448]: Received signal 15; terminating.
[I] Jul 19 13:28:36 ndm: Opkg::Manager: /opt/etc/initrc: Stopping OpenBSD Secure Shell server: sshd.
[I] Jul 19 13:28:36 ndm: Opkg::Manager: /opt/etc/initrc: Done.
[I] Jul 19 13:28:36 ndm: Opkg::Manager: disk unmounted.

В chroot-среде вы найдёте файл /chroot-services.list, в котором по одному на строчку перечислены те Debian-сервисы, что должны запускаться при старте роутера. Изначально там только ssh. Строчки в этом файле соответствуют именам стартовых скриптов из /etc/init.d.


Удачи в начинаниях.

deb.png

Edited by TheBB
new release 9.9
  • Thanks 8

Share this post


Link to post
Share on other sites
В 26.05.2018 в 09:59, alexsey bobrovitch сказал:

А как-то это можно пофиксить?

 

2 основных как варианта если раздел на диске один, то создать на диске под swap дополнительный раздел примерно на1/4 больше необходимого размера swap-файла (к примеру: если 256 мб swap - то раздел на 320 МБ) и отформатировать его в ext4 или ext3. В NTFS только если на диске всего 2 раздела (к примеру: ext4  - под OPKG и 2ой раздел  NTFS - отдан под хранение файлов - тогда этот же раздел используйте под создание swap - файла, но, мне показалось немного упала производительность) .  Не забывайте после подключения диска к Keenetic`у дать права на запись\чтение для доступа к разделам перед созданием включением swap. В Вашем случае просто создайте допраздел в ext4 и укажите его при включении swap.

Edited by Pesec

Share this post


Link to post
Share on other sites

На deb9 пароль debian не подходит, как можно решить? И порт ssh выставлен 22

Share this post


Link to post
Share on other sites

да-а у-уж, знатный фейл ))) залил, да не то (уже перезалито и перепроверено).

3 часа назад, iteelion сказал:

На deb9 пароль debian не подходит, как можно решить?

Надо добраться до debian/etc/ssh/sshd_config , раскомментировать `PermitRootLogin` и выставить `yes`

3 часа назад, iteelion сказал:

И порт ssh выставлен 22 

Раскомментировать `Port` и изменить его номер (или перекачать архив).

  • Thanks 1

Share this post


Link to post
Share on other sites

установил Debian 9.6 "Stretch" на роутере.

Подключаюсь по SSH на 222 - удачно.., но в логе:

pam_unix(sshd:session): session opened for user root by (uid=0)

pam_env(sshd:session): Unable to open env file: /etc/default/locale: No such file or directory
что бы это значило?
PS после обновления сгенерировался пустой вроде.
Edited by Pesec

Share this post


Link to post
Share on other sites

Обычно это означает нехватку RAM при генерации локалей. Можно решить установкой пакета:

apt-get install locales-all

 

  • Thanks 1

Share this post


Link to post
Share on other sites
dpkg-reconfigure locales

Как раз после этого упадёт при генерации выбранных локалей. Проверено на дешёвых VPS с малым количеством RAM.

  • Thanks 1

Share this post


Link to post
Share on other sites

На DSL (128 МБ) вполне себе нормально (вчера проверял)

  • Thanks 1

Share this post


Link to post
Share on other sites

Перечитал несколько раз тему. Так и не понял как подключить подключенные по usb диски! Через mount не хочет, выдаёт ошибку. 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...