Qnapware на PC - минимальные системные требования

Используем пакеты, расширяющие возможности оборудования
Dr.Acid
Сообщения: 145
Зарегистрирован: 26 авг 2015, 22:46

Сообщение Dr.Acid » 05 сен 2015, 19:47

Долго думал, как назвать тему, решил так(хотя м.б. надо было "Проблема с dropbear в Qnapware").
Итак, имеется:
1) Система, состоящая из kernel + busybox(Static linked)
 

Код: Выделить всё

/ # uname -a
Linux 192.168.2.133 3.18.0 #4 SMP Wed Dec 10 00:24:12 MSK 2014 x86_64 GNU/Linux
/ # busybox
BusyBox v1.21.1 (2013-07-08 10:38:34 CDT) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2012.
Licensed under GPLv2. See source distribution for detailed
copyright notices.

Usage: busybox [function [arguments]...]
   or: busybox --list[-full]
   or: busybox --install [-s] [DIR]
   or: function [arguments]...

	BusyBox is a multi-call binary that combines many common Unix
	utilities into a single executable.  Most people will create a
	link to busybox for each function they wish to use and BusyBox
	will act like whatever it was invoked as.

Currently defined functions:
	[, [[, acpid, add-shell, addgroup, adduser, adjtimex, arp, arping, ash,
	awk, base64, basename, beep, blkid, blockdev, bootchartd, brctl,
	bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr, chgrp, chmod,
	chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm,
	conspy, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd,
	deallocvt, delgroup, deluser, depmod, devmem, df, dhcprelay, diff,
	dirname, dmesg, dnsd, dnsdomainname, dos2unix, du, dumpkmap,
	dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake,
	expand, expr, fakeidentd, false, fbset, fbsplash, fdflush, fdformat,
	fdisk, fgconsole, fgrep, find, findfs, flock, fold, free, freeramdisk,
	fsck, fsck.minix, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty,
	grep, groups, gunzip, gzip, halt, hd, hdparm, head, hexdump, hostid,
	hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifenslave,
	ifplugd, ifup, inetd, init, insmod, install, ionice, iostat, ip,
	ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute, iprule, iptunnel,
	kbd_mode, kill, killall, killall5, klogd, last, less, linux32, linux64,
	linuxrc, ln, loadfont, loadkmap, logger, login, logname, logread,
	losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lsof, lspci, lsusb, lzcat,
	lzma, lzop, lzopcat, makedevs, makemime, man, md5sum, mdev, mesg,
	microcom, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.minix,
	mkfs.vfat, mknod, mkpasswd, mkswap, mktemp, modinfo, modprobe, more,
	mount, mountpoint, mpstat, mt, mv, nameif, nanddump, nandwrite,
	nbd-client, nc, netstat, nice, nmeter, nohup, nslookup, ntpd, od,
	openvt, passwd, patch, pgrep, pidof, ping, ping6, pipe_progress,
	pivot_root, pkill, pmap, popmaildir, poweroff, powertop, printenv,
	printf, ps, pscan, pstree, pwd, pwdx, raidautorun, rdate, rdev,
	readahead, readlink, readprofile, realpath, reboot, reformime,
	remove-shell, renice, reset, resize, rev, rm, rmdir, rmmod, route, rpm,
	rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir, rx, script,
	scriptreplay, sed, sendmail, seq, setarch, setconsole, setfont,
	setkeycodes, setlogcons, setserial, setsid, setuidgid, sh, sha1sum,
	sha256sum, sha3sum, sha512sum, showkey, slattach, sleep, smemcap,
	softlimit, sort, split, start-stop-daemon, stat, strings, stty, su,
	sulogin, sum, sv, svlogd, swapoff, swapon, switch_root, sync, sysctl,
	syslogd, tac, tail, tar, tcpsvd, tee, telnet, telnetd, test, tftp,
	tftpd, time, timeout, top, touch, tr, traceroute, traceroute6, true,
	tty, ttysize, tunctl, udhcpc, udhcpd, udpsvd, umount, uname, unexpand,
	uniq, unix2dos, unlzma, unlzop, unxz, unzip, uptime, users, usleep,
	uudecode, uuencode, vconfig, vi, vlock, volname, wall, watch, watchdog,
	wc, wget, which, who, whoami, whois, xargs, xz, xzcat, yes, zcat, zcip
/ # 
Свернуть

. /Apps/opt/etc/profile
вписал в /etc/profile , пути работают.
Поставил пакеты nano, mc, dropbear, strace
Dropbear не запускается(вывод strace):
 

Код: Выделить всё

execve("/Apps/opt/sbin/dropbear", ["dropbear", "-a"], [/* 10 vars */]) = 0
brk(0)                                  = 0x8781000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf76fe000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/Apps/opt/lib/tls/i686/sse2/libutil.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/Apps/opt/lib/tls/i686/sse2", 0xfffe4f50) = -1 ENOENT (No such file or directory)
open("/Apps/opt/lib/tls/i686/libutil.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/Apps/opt/lib/tls/i686", 0xfffe4f50) = -1 ENOENT (No such file or directory)
open("/Apps/opt/lib/tls/sse2/libutil.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/Apps/opt/lib/tls/sse2", 0xfffe4f50) = -1 ENOENT (No such file or directory)
open("/Apps/opt/lib/tls/libutil.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/Apps/opt/lib/tls", 0xfffe4f50) = -1 ENOENT (No such file or directory)
open("/Apps/opt/lib/i686/sse2/libutil.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/Apps/opt/lib/i686/sse2", 0xfffe4f50) = -1 ENOENT (No such file or directory)
open("/Apps/opt/lib/i686/libutil.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/Apps/opt/lib/i686", 0xfffe4f50) = -1 ENOENT (No such file or directory)
open("/Apps/opt/lib/sse2/libutil.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/Apps/opt/lib/sse2", 0xfffe4f50) = -1 ENOENT (No such file or directory)
open("/Apps/opt/lib/libutil.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\n\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=9756, ...}) = 0
mmap2(NULL, 12432, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf76fa000
mmap2(0xf76fc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xf76fc000
close(3)                                = 0
open("/Apps/opt/lib/libcrypt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\10\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=34296, ...}) = 0
mmap2(NULL, 196988, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf76c9000
mmap2(0xf76d1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0xf76d1000
mmap2(0xf76d3000, 156028, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf76d3000
close(3)                                = 0
open("/Apps/opt/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \233\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1698972, ...}) = 0
mmap2(NULL, 1706588, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7528000
mprotect(0xf76c2000, 4096, PROT_NONE)   = 0
mmap2(0xf76c3000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19a000) = 0xf76c3000
mmap2(0xf76c6000, 10844, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf76c6000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7527000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7526000
set_thread_area({entry_number:-1, base_addr:0xf7526700, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 (entry_number:12)
mprotect(0xf76c3000, 8192, PROT_READ)   = 0
mprotect(0xf76d1000, 4096, PROT_READ)   = 0
mprotect(0xf76fc000, 4096, PROT_READ)   = 0
mprotect(0xf7722000, 4096, PROT_READ)   = 0
setrlimit(RLIMIT_CORE, {rlim_cur=0, rlim_max=0}) = 0
brk(0)                                  = 0x8781000
brk(0x87a2000)                          = 0x87a2000
rt_sigaction(SIGINT, {0x80617f0, [INT], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTERM, {0x80617f0, [TERM], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN, [PIPE], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGCHLD, {0x806182f, [], SA_NOCLDSTOP}, NULL, 8) = 0
rt_sigaction(SIGSEGV, {0x80617fb, [SEGV], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
open("/opt/etc/dropbear/dropbear_rsa_host_key", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
time(NULL)                              = 1441468974
open("/etc/localtime", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
getpid()                                = 1773
socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_LOCAL, sun_path="/dev/log"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
open("/opt/etc/dropbear/dropbear_dss_host_key", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
time(NULL)                              = 1441468974
socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_LOCAL, sun_path="/dev/log"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
open("/opt/etc/dropbear/dropbear_ecdsa_host_key", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
time(NULL)                              = 1441468974
socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_LOCAL, sun_path="/dev/log"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
time(NULL)                              = 1441468974
socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_LOCAL, sun_path="/dev/log"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
exit_group(1)                           = ?
+++ exited with 1 +++ 
Свернуть

Видно, что:
1) Хочет кучку либов, некоторых из них нет (причем всё по пути /Apps/opt/)
2) Хочет ключи в /opt/etc/dropbear/ причем сразу 3 (В Zyxware ключ dropbear_ecdsa_host_key был не нужен, а как здесь?)
3) Если нужен dropbear_ecdsa_host_key , как его сгенерить?

Вообще в Qnapware dropbear тестировался?

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1309
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 05 сен 2015, 21:05

Dr.Acid писал(а):Источник цитаты Хочет ключи в /opt/etc/dropbear/

Должен искать в /Apps/opt.... - вернусь из отпуска - проверю, может забыл пути подправить...
Dr.Acid писал(а):Источник цитаты Если нужен dropbear_ecdsa_host_key

Не нужен.

Скорее всего dropbear в Qnapware никто не проверял. Я использую в таком нестандартном случае (Entware.arm) - http://www.zyxmon.org/2015/05/10/ustana ... -zhelezki/
Точно знаю, что Openssh сервер в Qnapware рабочий. От потяжелее dropbear!

Dr.Acid
Сообщения: 145
Зарегистрирован: 26 авг 2015, 22:46

Сообщение Dr.Acid » 05 сен 2015, 21:54

Zyxmon писал(а):Источник цитаты может забыл пути подправить

Вот и я о том же...
Zyxmon писал(а):Источник цитаты Я использую в таком нестандартном случае (Entware.arm)

Возможно, потом доберемся, но пока... как бы... архитектура(x86). Статейку видал - сейчас перечитаю ещё ;)

P.S.
Сейчас пока закинул ключи в /opt/etc/dropbear - dropbear завелся!
Теперь буду разбираться с авторизацией(root какбы без пароля - не дает зайти)

Dr.Acid
Сообщения: 145
Зарегистрирован: 26 авг 2015, 22:46

Сообщение Dr.Acid » 05 сен 2015, 22:19

Поставил пароль на рута. Putty выдал

Код: Выделить всё

Server refused to allocate pty

и отключился. Буду искать.

P.S.
Еще выскакивает окошко(от PuTTY) с надписью:
Server refused to start a shell/command

Файл /etc/shells создал - не помогло. Создал также pty0

Код: Выделить всё

mknod /dev/pty0 c 2 0

Не знаю, какой должен быть major/minor у pty
Может, что-то с правами?

Dr.Acid
Сообщения: 145
Зарегистрирован: 26 авг 2015, 22:46

Сообщение Dr.Acid » 06 сен 2015, 11:17

Похоже, дело в ядре. Возьму таймаут на несколько дней(или на недельку).(Надо пересобирать ядро(включить поддержку pty), но я совсем забыл, что я там включал раньше, чтоб работал NFSboot)

Dr.Acid
Сообщения: 145
Зарегистрирован: 26 авг 2015, 22:46

Сообщение Dr.Acid » 07 сен 2015, 00:25

Уф... пересобрал ядро...
Итак, подытожу:
1) Для того, чтобы можно было подключиться к системе удаленно по сети(dropbear, telnetd и т.д.), в ядре должна быть включена поддержка виртуальных терминалов, причем не просто, а Unix98 PTY support и Legacy (BSD) PTY support (в Device Drivers > Character devices) По крайней мере, я включил обе опции, после этого у меня заработало.
2) . /Apps/opt/etc/profile можно написать в /root.profile , а можно и в /etc/profile (если вдруг нет(возможности создать) /root.profile) - тогда эти параметры будут глобальны(например, доступны в шелле без выполнения входа). Но для нас это вроде как не актуально.
3) Файл /etc/passwd нужен обязательно(равно как и /etc/shells) - без него dropbear не будет подключать клиентов к консоли, причем, если используем в качестве логина root , у него ДОЛЖЕН быть задан пароль(не пустой), иначе - не подключит!
А вот наличие /etc/group как раз не обязательно, хотя и полезно!(на будущее) ;)
Ну вот. - Если чего забыл... допишу потом... пока продолжу изучение.

P.S.
Ах, вот ещё - mc у меня выглядит так:
 

Код: Выделить всё

  Left     File     Command     Options     Right
l<q ~ qqqqqqqqqqqqqqqqqqqqqqqqqqqq.[^]>kl<q ~ qqqqqqqqqqqqqqqqqqqqqqqqqqqq.[^]>k
x.n     Name      x Size  xModify time xx.n     Name      x Size  xModify time x
x/..              xUP--DIRxSep  6 21:28xx/..              xUP--DIRxSep  6 21:28x
x/.cache          x   4096xSep  6 20:46xx/.cache          x   4096xSep  6 20:46x
x/.config         x   4096xSep  6 20:46xx/.config         x   4096xSep  6 20:46x
x/.local          x   4096xSep  6 20:46xx/.local          x   4096xSep  6 20:46x
x .ash_history    x     93xSep  6 21:29xx .ash_history    x     93xSep  6 21:29x
x .profile        x    109xSep  6 20:59xx .profile        x    109xSep  6 20:59x
x                 x       x            xx                 x       x            x
x                 x       x            xx                 x       x            x
x                 x       x            xx                 x       x            x
x                 x       x            xx                 x       x            x
x                 x       x            xx                 x       x            x
x                 x       x            xx                 x       x            x
x                 x       x            xx                 x       x            x
x                 x       x            xx                 x       x            x
x                 x       x            xx                 x       x            x
tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqutqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
xUP--DIR                               xxUP--DIR                               x
mqqqqqqqqqqqqqqqqqqqq 164G/314G (52%) qjmqqqqqqqqqqqqqqqqqqqq 164G/314G (52%) qj
Hint: Completion works on all input lines in all dialogs. Just press M-Tab.
#                                                                            [^]
 1Help   2Menu   3View   4Edit   5Copy   6RenMov 7Mkdir  8Delete 9PullDn10Quit
Свернуть

притом что /Apps/opt/etc/profile экспортирован.
Что-то похожее уже было... запамятовал, поищу.

Подключил локали - mc стал выглядить отлично, русский есть.
Всем спасибо.

Аватара пользователя
alllexx88
Сообщения: 23
Зарегистрирован: 13 авг 2015, 17:06

Сообщение alllexx88 » 25 сен 2015, 21:47

Разрешение подключения с пустым паролем можно включить запустив dropbear с флагом "-B":
(из help'а dropbear)
-B Allow blank password logins


dropbear можно пропатчить так, чтобы он работал и без /etc/passwd:
https://github.com/alllexx88/Optware-ng ... roid.patch

Android Mode:
-A Enable Android Mode
-N UserName
Login user name
-C Password
Login password
-U UID
Login UID
-G GID
Login GID


В Optware-ng это "dropbear-android" пакет.

Думаю, mc можно исправить добавив куда-то в профайл такие строки:

Код: Выделить всё

export TERM=xterm
export TERMINFO=/Apps/opt/share/terminfo
export LC_ALL=en_US.UTF-8

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1309
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 25 сен 2015, 22:19

Патчи dropbear /etc/passwd на другой файл есть в Zyxware. https://github.com/zyxmon/zyxel-keeneti ... etic.patch
Там же патч для mc - для работы в системе без локалей (с этого патча я начинал свой путь "разработчика linux"):
https://github.com/zyxmon/zyxel-keeneti ... _fix.patch

Dr.Acid
Сообщения: 145
Зарегистрирован: 26 авг 2015, 22:46

Сообщение Dr.Acid » 25 сен 2015, 22:45

alllexx88 писал(а):Источник цитаты Разрешение подключения с пустым паролем можно включить запустив dropbear с флагом "-B":

Хм, интересная инфа... попробовал, но что-то не получается. Более того, есть вроде и более интересные опции -s -g но тоже не работают у меня.

Насчет mc - это я давно уже разобрался. Просто раскомментировал строки

Код: Выделить всё

export LANG='ru_RU.UTF-8'
export LC_ALL='ru_RU.UTF-8'
в файле /Apps/opt/etc/profile
(т.е. включил локали)


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 2 посетителя :: 1 зарегистрированный, 0 скрытых и 1 гость (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: floppik и 1 гость