[ ! ] : Добавить потом все прочитанные мануалы в рефы
[ ! ] : Конфиг самбы нуждается в серьёзной доработке по поддержке расшары принтера по p910nd (сейчас не работает)
[ ! ] : Т.к. от самбы сейчас толку нет, то целесообразно не ставить её вообще пока что. Сильно много весит
[ ! ] : На данный момент работает автоподхват на ОС Линукс со стороны клиента (удобненько, avahi + cups отрабатывают нормально). На ОС Windows автоподхват не работает, нужно руками настраивать - нужно выяснить почему и доработать
[ ! ] : На линуксе можно ограничиться набором пакетов: p910nd, umdns - для автоматики достаточно
[ ! ] : На линуксе всё работает как положено, а в винде нужно на клиенте выключать "двунаправленную передачу данных" в настройках/свойствах принтера (по крайней мере конкретно у меня, и непонятно на что влияет). Если с вашим принтером в целом есть проблема с передачей файлов на печать, то попробуйте выключить "bidirectional mode" в конфиге сервера
[ ! ] : Если осилите CLI настройку, то можно не ставить пакеты отвечающие за LuCI (они сами бестолковые, а там в целом легко всё). Также можно не ставить SNMP, UPNP, SAMBA
[ ! ] : OWRT версии 19.07.10 (и вроде бы 22.03.6) не имеет автокорректировки mDNS в конфиге /etc/config/p910nd, а 23.05.3 имеет. Так что возможно лучше использовать её, т.к. меньше гемора, но она имеет в 2 раза меньше свободного места
[ ! ] : Есть короче идея. Реализовать поддержку всех девайсов разом, через samba и ftp (преимущественно). Суть короче в том, что мы расшариваем свободную условную /var/tmp/spool и клиенты будут кидать файлы на печать. А crontab-скрипт будет её проверять, обходить и печатать файлы по очереди, а потом удалять их (освобождать очередь, идемпотентность, проверки и все дела). Делать либо напрямую в /dev/usb/lp0 либо echo file | netcat 9100 или типо того. Но нужно разобраться как работать с принтером напрямую. В openwrt нема lp lpr lpd cups и всякого такого. У меня лично не получается ни напрямую ни netcat'ом. Смотрел исходиники p910nd - не одупляю, как он работает. Хотя походу начинаю понимать - на клиенте выбираются дрова и raw данные соответственно. Нужно короче брать билдить .prn файл и засылать так и по идее должно работать
- https://danieru.com/2013/06/06/what-is-port-9100-how-to-print-to-it
- https://book.hacktricks.xyz/network-services-pentesting/9100-pjl
- https://stackoverflow.com/questions/30130190/linux-print-directly-to-network-printer-that-is-not-installed
- https://askubuntu.com/questions/432746/print-from-command-line
- https://openwrt.org/docs/guide-user/services/print_server/printer.ssh
- https://stackoverflow.com/questions/60578368/postscript-printing-with-netcat
- https://github.com/beginner3456789/postscript-printing-with-bash-dev-tcp
- https://tosiek.pl/pjl-send-commands-to-printer-in-raw-bin-file/
- https://www.siski.de/~carsten/pjl.html
- https://askubuntu.com/questions/836644/sending-raw-commands-to-connected-prnter
- https://man.cx/p910nd
- https://github.com/kenyapcomau/p910nd
- https://unix.stackexchange.com/questions/163548/cannot-print-text-via-dev-usb-lp0-on-recent-printers
[ ! ] : Нужно потом будет написать скрипт коррекции работы типо добавлять ссылку на lp0 в dev и т.д (прим. внизу) в кронтаб его
[ ! ] : Короче можно расшарить клиентам usb порт напрямую с принтером сразу. usbip и usbipd на сервере (https://github.com/cezanne/usbip-win - клиент для винды, рабочий, проверял). По крайней мере реальный вариант под винду. Но проблема в том, что при запуске и бинде на сервере, пропадает /dev/usb/lp0 - это косяк, нужно будет обработать (там нужно будет повозиться с конфигом p910nd на файл lp0)
Установка:
opkg update
opkg remove --force-depends libudev-fbsd
opkg install http://downloads.openwrt.org/releases/17.01.7/packages/mipsel_24kc/packages/libudev_3.2-1_mipsel_24kc.ipk
reboot
opkg update
opkg install kmod-usb-ohci usbip-server usbip-client
Рефы:
- https://openwrt.org/docs/guide-user/services/usb.iptunnel
- https://habr.com/ru/articles/308860/
- https://habr.com/ru/companies/selectel/articles/668590/
- https://habr.com/ru/articles/504338/
- openwrt/packages#10133
- openwrt/openwrt#8102
- https://github.com/cezanne/usbip-win
[ ! ]: Хукаем пакеты netcat'ом, которые идут на интерфейс принтера (так можно даже печатать, вместо p910nd юзать, работает). Там внатуре всё дело в клиентских запросах. Они шлют уже готовый под принтер файл. Поэтому если просто netcat'ом кинуть строку на порт ничо не сработает
Команды
# Установка
opkg update
opkg install netcat
# Запуск на сервере
while true; do netcat -l -p 9100 | tee -a file.log /dev/usb/lp0; done;
# Смотрим
ls -hal /root
# Выгружаем
scp root@192.168.1.1:/root/file.log ./
# Грузим на принтер
cat file.log | netcat 192.168.1.1 9100
[ ! ]: Для получения возможности использования USB-Flash накопителей:
Команды:
# базовая установка
opkg update
opkg install block-mount kmod-usb kmod-usb2 kmod-usb3 kmod-usb-storage kmod-usb-storage-uas kmod-usb-storage-extras
# для fat
opkg install kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 dosfstools
# для ext
opkg install e2fsprogs kmod-fs-ext4
# для f2fs
opkg install f2fs-tools kmod-fs-f2fs
# для ntfs
opkg install ntfs-3g ntfsprogs_ntfs-3g
# для exfat
opkg install kmod-fs-exfat exfat-fsck
# проверка. Должно показать 2 устройства
ls -hal /dev/sd*
# монтирование
mkdir -p /mnt/sda1
mount /dev/sda1 /mnt/sda1
# тестирование
echo "test" > /mnt/sda1/test.txt
# размонтирование
umount /mnt/sda1
rm -rf /mnt/sda1
# форматирование
mkfs.fat /dev/sda1
mkfs.ext4 /dev/sda1
# создание разделов и форматирование в gui
opkg install cfdisk
cfdisk /dev/sda
# дальнейшее автомонтирование уже подключеной флешки в /mnt
block detect | uci import fstab
uci set fstab.@mount[-1].enabled='1' && uci set fstab.@global[0].check_fs='1' && uci set fstab.@global[0].auto_mount='1' && uci commit fstab && service fstab boot
[ ! ]: Можно ещё попробовать chroot. Лично у меня не получилось. Вероятно из-за архитектуры устройства. По мануалам вам не понадобится даже binutils. Всё что нужно - отформатированная в ext4 другим компом флешка, выбранная версия debian (с обязательным наличием сборки под mips и/или mipsel) и одна из зеркал:
- http://archive.debian.org/debian
- http://ftp.debian.org/debian
- http://ftp.ru.debian.org/debian
- http://ftp.de.debian.org/debian
- http://mirror.yandex.ru/debian
Команды:
# базовая установка
opkg update
opkg install kmod-usb-storage kmod-fs-ext4 debootstrap
# монтируем подключенную флешку
mkdir -p /mnt/sda1
mount /dev/sda1 /mnt/sda1
cd /mnt/sda1
# качаем нужную версию debian
debootstrap --verbose --no-check-gpg --arch=<нужная архитектура (mips/mipsel)> <выбранная версия debian> /mnt/sda1 <url, выбранное зеркало>
# биндим системные директории
mount --bind /dev /mnt/sda1/dev
mount --bind /sys /mnt/sda1/sys
mount --bind /proc /mnt/sda1/proc
# чрутимся
chroot /mnt/sda1 /bin/bash
[ ! ]: Нужно составить конфиг для wsdd2 в связках с sabma и ksmbd и p910nd. Я не смог найти нормальный мануал для этого + мне уже стало тупо влом этим заниматься
[ ! ]: Расшариваем общую анонимную FTP-директорию. Будет использоваться /var/tmp, которая находится в оперативной памяти (которой обычно свободно около 20мб, со всеми вытекающими). Это вполне годится для передачи мелких файлов и документов между устройствами по сети. FTP протокол поддерживают подавляющее большинство устройств в том или ином виде
Установка:
okpg update
opkg install vsftpd
Конфиг: /etc/vsftpd.conf
####################
# DEFAULT TEMPLATE #
####################
#background=YES
#listen=YES
#anonymous_enable=YES
#local_enable=NO
#write_enable=YES
#local_umask=022
#check_shell=NO
#dirmessage_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#session_support=NO
#syslog_enable=YES
#userlist_enable=NO
#userlist_deny=NO
#userlist_file=/etc/vsftpd/vsftpd.users
#xferlog_enable=YES
#xferlog_file=/var/log/vsftpd.log
#xferlog_std_format=YES
###
### TLS/SSL options
### example key generation: openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd_privkey.pem -out /etc/vsftpd/vsftpd_cert.pem -subj /C="DE"/ST="Saxony"/L="Leipzig"/CN="OpenWrt"
#ssl_enable=YES
#allow_anon_ssl=NO
#force_local_data_ssl=NO
#force_local_logins_ssl=NO
#ssl_tlsv1=YES
#ssl_sslv2=NO
#ssl_sslv3=NO
#rsa_cert_file=/etc/vsftpd/vsftpd_cert.pem
#rsa_private_key_file=/etc/vsftpd/vsftpd_privkey.pem
####################
# GENERAL SETTINGS #
####################
background=YES
listen=YES
write_enable=YES
local_umask=022
check_shell=NO
syslog_enable=YES
dirmessage_enable=YES
use_localtime=YES
log_ftp_protocol=YES
connect_from_port_20=YES
listen_port=21
chroot_local_user=YES
secure_chroot_dir=/var/tmp/ftp/
pam_service_name=vsftpd
ssl_enable=NO
setproctitle_enable=YES
force_dot_files=YES
local_root=/var/tmp/ftp/
allow_writeable_chroot=YES
userlist_enable=NO
userlist_deny=NO
userlist_file=/etc/vsftpd/vsftpd.users
user_sub_token=nobody
######################
# ANONYMOUS SETTINGS #
######################
local_enable=NO
anonymous_enable=YES
anon_root=/var/tmp/ftp/
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
no_anon_password=YES
hide_ids=YES
ftp_username=nobody
anon_umask=000
chown_uploads=YES
chown_username=nobody
guest_enable=YES
Пользователи: /etc/vsftpd/vsftpd.users
anonymous
guest
nobody
root
ftp
Автозапуск: /etc/rc.local
# ...
if [[ -e "/var/tmp/ftp/" ]]
then
sleep 0
else
mkdir -p "/var/tmp/ftp/"
chown -R ftp:ftp "/var/tmp/ftp/"
chmod -R 755 "/var/tmp/ftp/"
if [[ -e "/var/tmp/ftp/Shared/" ]]
then
sleep 0
else
mkdir -p "/var/tmp/ftp/Shared/"
chown -R nobody:nogroup "/var/tmp/ftp/Shared/"
chmod -R 777 "/var/tmp/ftp/Shared/"
fi
service vsftpd restart
fi
# ...
exit 0
[ ! ]: Делаем кастомный секундомер запуска системы (а-ля systemd-analyze). Подойдёт для любых систем без systemd
Автозапуск: /etc/rc.local
# ...
echo $(date) > /var/log/boottime.log
echo $(cat /proc/uptime) >> /var/log/boottime.log
echo $(uptime) >> /var/log/boottime.log
exit 0
- https://www.tp-link.com/ru/support/download/tl-mr3020/#Firmware
- https://static.tp-link.com/upload/firmware/2022/202204/20220412/TL-MR3020(EU)_V3.20_211118.zip
- https://www.youtube.com/watch?v=qQUu5i_ThBc
- https://www.youtube.com/watch?v=zb9wHkrQEmo
- https://4pda.to/forum/index.php?showtopic=911457
- https://4pda.to/forum/index.php?showtopic=504279
- https://4pda.to/forum/index.php?showtopic=504279&st=4180#entry78883659
- https://4pda.to/forum/index.php?showtopic=504279&st=7400#entry99812955
- https://4pda.to/forum/index.php?showtopic=504279&st=8400#entry107511439
- https://4pda.to/forum/index.php?showtopic=504279&st=3820#entry76151001
- https://4pda.to/forum/index.php?showtopic=504279&st=6580#entry93826017
- https://4pda.to/forum/index.php?showtopic=504279&st=8280#entry106241118
- https://4pda.to/forum/index.php?showtopic=504279&st=4460#entry80623776
- https://4pda.to/forum/index.php?showtopic=911457
- https://openwrt.org/toh/tp-link/tl-mr3020_v3
- https://downloads.openwrt.org/releases/19.07.10/targets/ramips/mt76x8
- https://downloads.openwrt.org/releases/19.07.10/targets/ramips/mt76x8/openwrt-19.07.10-ramips-mt76x8-tplink_tl-mr3020-v3-squashfs-tftp-recovery.bin
- https://cdimage.ubuntu.com/xubuntu/releases/16.04/release
- https://cdimage.ubuntu.com/xubuntu/releases/16.04/release/xubuntu-16.04.6-desktop-amd64.iso
- https://unetbootin.github.io/linux_download.html
- https://rufus.ie
- https://askubuntu.com/questions/201505/how-do-i-install-and-run-a-tftp-server
- https://www.ibm.com/docs/en/power9/0009-ESS?topic=notebook-setting-ip-address-in-linux
install packages:
sudo apt update
sudo apt install -y zram-config htop xinetd tftp tftpd snmp nmap iproute2 nano wireless-tools
sudu apt install -y samba smbclient python-smbc python3-smbc fusesmb
sudo systemctl start zram-config
install packages:
opkg update
opkg install zram-swap kmod-lib-lz4
opkg install kmod-usb2 kmod-lp kmod-usb-printer hplip-common usbutils hplip nano kmod-fs-fscache
opkg install luci-app-opkg luci-i18n-opkg luci-i18n-opkg-ru luci-i18n-opkg-en
opkg install luci-app-base luci-i18n-base luci-i18n-base-en luci-i18n-base-ru
opkg install luci-app-advanced-reboot luci-i18n-advanced-reboot luci-i18n-advanced-reboot-ru luci-i18n-advanced-reboot-en
opkg install luci-app-commands luci-i18n-commands luci-i18n-commands-ru luci-i18n-commands-en
opkg install luci-theme-bootstrap luci-theme-material luci-theme-openwrt
opkg install umdns
opkg install p910nd luci-app-p910nd luci-i18n-p910nd luci-i18n-p910nd-ru luci-i18n-p910nd-en
opkg install miniupnpd luci-app-upnp luci-i18n-upnp luci-i18n-upnp-ru luci-i18n-upnp-en
opkg install mini_snmpd luci-app-snmpd luci-i18n-snmpd luci-i18n-snmpd-en luci-i18n-snmpd-ru
opkg install samba36-server samba36-hotplug luci-app-samba luci-i18n-samba luci-i18n-samba-en luci-i18n-samba-ru wsdd2
opkg install kmod-fs-ksmbd ksmbd-server ksmbd-utils luci-app-ksmbd luci-i18n-ksmbd luci-i18n-ksmbd luci-i18n-ksmbd-ru wsdd2
root@OpenWrt:~# lsusb
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 03f0:002a HP, Inc LaserJet P1102
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@OpenWrt:~# lsusb -v -d 03f0:002a
Bus 001 Device 002: ID 03f0:002a HP, Inc LaserJet P1102
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x03f0 HP, Inc
idProduct 0x002a LaserJet P1102
bcdDevice 1.00
iManufacturer 1 Hewlett-Packard
iProduct 2 HP LaserJet Professional P1102
iSerial 3 000000000Q8CGRB3PR1a
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 62
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 98mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 2 Bidirectional
iInterface 4 Printer
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 2
bInterfaceProtocol 16
iInterface 6 HP EWS
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 12
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0001
Self Powered
root@OpenWrt:~#
config: /etc/config/p910nd
#config p910nd
# option device '/dev/usb/lp0'
# option port '0'
# option bidirectional '1'
# option runas_root '0'
# option mdns '0'
# option mdns_ty 'My Printer Manufacturer/Model'
# option mdns_note 'Basement'
# option enabled '1'
config p910nd
option device '/dev/usb/lp0'
option port '0'
option bidirectional '0'
option usbvidpid '03f0/002a'
option runas_root '0'
option mdns '1'
option mdns_mfg 'Hewlett-Packard'
option mdns_sn '000000000Q8CGRB3PR1a'
option mdns_note 'HP LaserJet Pro P1102s custom print server'
option mdns_mdl 'HP LaserJet Professional P1102'
option mdns_cls 'PRINTER'
option mdns_ty 'HP LaserJet Professional P1102'
option mdns_product '(HP LaserJet Professional P1102)'
option mdns_cmd 'ZJS,PJL,ACL,HTTP'
option enabled '1'
file patch: /etc/init.d/p910nd
#!/bin/sh /etc/rc.common
# Copyright (C) 2007 OpenWrt.org
START=99
USE_PROCD=1
append_bool() {
local section="$1"
local option="$2"
local value="$3"
local _val
config_get_bool _val "$section" "$option" '0'
[ "$_val" -gt 0 ] && append args "$3"
}
append_string() {
local section="$1"
local option="$2"
local value="$3"
local _val
config_get _val "$section" "$option"
[ -n "$_val" ] && append args "$3$_val"
}
start_service() {
config_load "p910nd"
config_foreach start_p910nd p910nd
}
start_p910nd() {
local section="$1" runas_root
config_get_bool "enabled" "$section" "enabled" '1'
if [ "$enabled" -gt 0 ]; then
args="-d "
config_get port "$section" port
name=p910${port}d
append_bool "$section" bidirectional "-b"
append_string "$section" device "-f "
append_string "$section" bind "-i "
append_string "$section" port ""
procd_open_instance $name
procd_set_param stdout 1 # <--- add this for enable syslog debug
procd_set_param stderr 1 # <--- add this for enable syslog debug
procd_set_param command /usr/sbin/p910nd $args
procd_set_param respawn
config_get_bool runas_root "$section" runas_root 0
[ "$runas_root" -ne 1 ] && procd_set_param user p910nd
config_get_bool "mdns" "$section" "mdns" '0'
config_get mdns_note "$section" mdns_note
config_get mdns_ty "$section" mdns_ty
config_get mdns_product "$section" mdns_product
config_get mdns_mfg "$section" mdns_mfg
config_get mdns_mdl "$section" mdns_mdl
config_get mdns_cmd "$section" mdns_cmd
[ "$mdns" -gt 0 ] && procd_add_mdns "pdl-datastream" "tcp" "$((port+9100))" "note=$mdns_note" "ty=$mdns_ty" "product=$mdns_product" "usb_MFG=$mdns_mfg" "usb_MDL=$mdns_mdl" "usb_CMD=$mdns_cmd"
procd_close_instance
fi
}
commands:
ln -s /dev/usb/lp0 /dev/lp0
service p910nd enable
service p910nd start
service p910nd restart
nmap 192.168.0.<host> -p 9100
config: /etc/dnsmasq.conf
# Change the following lines if you want dnsmasq to serve SRV
# records.
# You may add multiple srv-host lines.
# The fields are <name>,<target>,<port>,<priority>,<weight>
# A SRV record sending LDAP for the example.com domain to
# ldapserver.example.com port 289
#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389
# Two SRV records for LDAP, each with different priorities
#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,1
#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,2
# A SRV record indicating that there is no LDAP server for the domain
# example.com
#srv-host=_ldap._tcp.example.com
# The following line shows how to make dnsmasq serve an arbitrary PTR
# record. This is useful for DNS-SD.
# The fields are <name>,<target>
#ptr-record=_http._tcp.dns-sd-services,"New Employee Page._http._tcp.dns-sd-services"
# Change the following lines to enable dnsmasq to serve TXT records.
# These are used for things like SPF and zeroconf.
# The fields are <name>,<text>,<text>...
#Example SPF.
#txt-record=example.com,"v=spf1 a -all"
#Example zeroconf
#txt-record=_http._tcp.example.com,name=value,paper=A4
# Provide an alias for a "local" DNS name. Note that this _only_ works
# for targets which are names from DHCP or /etc/hosts. Give host
# "bert" another name, bertrand
# The fields are <cname>,<target>
#cname=bertand,bert
expand-hosts
domain=lan
local=/lan/
txt-record=lan,"v=spf1 a -all"
# Default Base
ptr-record=b._dns-sd._udp.0.1.168.192.in-addr.arpa,lan
ptr-record=db._dns-sd._udp.0.1.168.192.in-addr.arpa,lan
ptr-record=r._dns-sd._udp.0.1.168.192.in-addr.arpa,lan
ptr-record=dr._dns-sd._udp.0.1.168.192.in-addr.arpa,lan
ptr-record=lb._dns-sd._udp.0.1.168.192.in-addr.arpa,lan
# Services
ptr-record=_services._dns-sd._udp.lan,_pdl-datastream._tcp.lan
# Printer
ptr-record=_pdl-datastream._tcp.lan,HP-LaserJet-P1102._pdl-datastream._tcp.lan
srv-host=HP-LaserJet-P1102._pdl-datastream._tcp.lan,HP-LaserJet-P1102.lan,9100
txt-record=HP-LaserJet-P1102._pdl-datastream._tcp.lan,ty=HP LaserJet Professional P1102,note=HP LaserJet Pro P1102s custom print server,product=(HP LaserJet Professional P1102),usb_MFG=Hewlett-Packard,usb_MDL=HP LaserJet Professional P1102,txtvers=1,qtotal=1,priority=20,Color=F,pdl=application/vnd.hp-PCL
commands:
service dnsmasq enable
service dnsmasq start
service dnsmasq restart
nmap 192.168.0.<host> -p 53,67,5353
sudo nmap 192.168.0.<host> -sU -p 53,67,5353
config: /etc/config/mini_snmpd
# you may add more than the 'default' mini_snmpd instances provided they all bind to different ports/interfaces
# to get around max 4 interface or mountpoint limit constrained by mini_snmpd's mib
config mini_snmpd 'default'
option enabled 1
option ipv6 0
# Verbose flag given to mini_snmpd, extra verbose is only possible with compile time config flags
option debug 0
# Turn on community authentication (snmp agent must use community name)
option auth 0
option community 'public'
option contact '192.168.0.100'
option location '192.168.0.100'
# to listen on all interfaces you need to set option listen_interface ''
option listen_interface ''
option udp_port '161'
option tcp_port '161'
#option vendor_oid ''
option mib_timeout 1
# enable basic disk usage statistics on specified mountpoint
list disks '/overlay'
list disks '/tmp'
list disks '/dev'
list disks '/var/run'
# enable basic network statistics on specified interface
# 4 interfaces maximum per instance, as named in /etc/config/network and luci
# not physical device names
list interfaces 'lan'
# list interfaces 'wan'
list interfaces 'wwan'
commands:
service mini_snmpd enable
service mini_snmpd start
service mini_snmpd restart
snmpwalk -m ALL -v 2c -c public 192.168.1.<host>
snmpwalk -Os -c public -v1 192.168.0.<host>
nmap 192.168.0.<host> -p 161
sudo nmap -Pn -sUC -p 161 192.168.0.<host>
config: /etc/config/umdns
config umdns
option jail 1
list network lan
list network wwan
# list network wan
# list network dmz
# list network both
config: /etc/umdns/service.json
# check local/system services to share
ubus call service list | jsonfilter -e "$[*]['instances'][*]['data']['mdns']"
# output to /etc/umdns/<service-name>.json
commands:
service umdns enable
service umdns start
# restart service
service umdns restart
# test via avahi
avahi-browse --all --terminate
# test via nmap
sudo nmap -Pn -sUC -p 5353 192.168.0.<host>
# update net services list
ubus call umdns update
# browse founded services
ubus call umdns browse
# browser founded hosts
ubus call umdns hosts
config: /etc/samba/smb.conf.template
[global]
netbios name = |NAME|
display charset = |CHARSET|
interfaces = |INTERFACES|
server string = |DESCRIPTION|
unix charset = |CHARSET|
workgroup = |WORKGROUP|
bind interfaces only = yes
deadtime = 30
enable core files = no
invalid users = root
map to guest = Bad User
min receivefile size = 16384
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
use sendfile = yes
printing = /usr/sbin/p910nd -b -f /dev/usb/lp0
printcap name = p910nd
load printers = yes
use client driver = yes
wins support = yes
local master = yes
preferred master = yes
public = yes
guest only = yes
guest ok = yes
guest account = nobody
client min protocol = SMB1
client max protocol = SMB3
min protocol = SMB1
max protocol = SMB3
null passwords = yes
encrypt passwords = no
security = share
usershare allow guests = yes
dns proxy = yes
[Public]
path = /var/tmp/public
browsable = yes
public = yes
guest only = yes
guest ok = yes
guest account = nobody
read only = no
writeable = yes
create mask = 0777
directory mask = 0777
force create mode = 0777
force directory mode = 0777
security mask = 0777
force security mode = 0777
[printers]
printing = /usr/sbin/p910nd -b -f /dev/usb/lp0
printcap name = p910nd
load printers = yes
use client driver = yes
path = /var/tmp/spool
printable = yes
print ok = yes
browsable = yes
public = yes
guest only = yes
guest ok = yes
guest account = nobody
read only = no
writeable = yes
create mask = 0777
directory mask = 0777
force create mode = 0777
force directory mode = 0777
security mask = 0777
force security mode = 0777
[HP_LaserJet_Professional_P1102]
printing = /usr/sbin/p910nd -b -f /dev/usb/lp0
printcap name = p910nd
load printers = yes
use client driver = yes
printer name = HP_LaserJet_Professional_P1102
comment = HP Professional LaserJet P1102s custom print server based on OpenWRT and p910nd
path = /var/tmp/spool
printable = yes
print ok = yes
browsable = yes
public = yes
guest only = yes
guest ok = yes
guest account = nobody
read only = no
writeable = yes
create mask = 0777
directory mask = 0777
force create mode = 0777
force directory mode = 0777
security mask = 0777
force security mode = 0777
config: /etc/config/samba
config samba
option workgroup 'WORKGROUP'
option homes '1'
option name 'HP-LaserJet-P1102s-Server'
option description 'HP Professional LaserJet P1102s custom print server based on OpenWRT and p910nd'
option 'charset' 'UTF-8'
option 'interface' 'loopback lan wwan'
commands:
mkdir /var/tmp/spool
chmod 777 -R /var/tmp/spool
mkdir /var/tmp/public
chmod 777 -R /var/tmp/public
service samba enable
service samba start
service samba restart