á á á˛áą ááᲠá´á á áá˛á áľáłá 40 á¨áĽáŹáá ááłáŤ ááľáĽ Raspberry Pi Zeroᣠá¨áĽááąá áá˝áŤ áĽá áŹáĽá á áľáááŤááᢠá áĽáŽ á¨á°á°áŤá á¨áŠá¤áľá˘ áá°áĽ ááá áá°áŁáᢠáá¤áąá áĽáŤáąá á¨áťá ááá°áŞ á áᣠáŽáááŠá°á á ARM áá á¨ááááľ áŚááŹá˛áá á˛áľá°á ááᣠáŞáŚááľ áĽá á¨áĽáŹáá áľááŞá á¨á°áá áááľ áá áᢠá áŠá¤áľá˘ á áŠá áťáá
ááľá¨á áá˝ááᣠá¨ááŽá˘ á¨ááá áŁáá ááá á¨ááá ááá áááŤ. áľááá
, áŤá á ááłá¨ áá¨áĽ ááĽá á°ááłáľ áłááá ááĽá áááľ ááľá¨á áá˝áá.
á¨áĽáŹáá ááłáŤáá˝ ááŹáľ ááŠááľ
á ááááŞáŤ á°á¨á, á ááľáá ááááľ áááŤáŤá. 60 áĽá á¨á፠á áá á¨ááŤáá ááłáŞáŤáá˝ á¨á´áľááśá áŽáááŠá°á áá á˛á°áŠ áĽáŠ áá¸á, 40 á¨áááśá áá á áĽáŽ áááŤá ááš áá¸á. á áá á°áá 14 ááá 18 ááááá˝ á¨ááľáá ááááľ áŤáá¸á á¨áľáááľááá˝ áĽá áłáĽááśá˝ áá á¨á°ááá á¨áĽáŹáá ááłáŤáá˝ á áá˘
áá°á áŁááľ áááŤáľ á¨áĽáŹáá ááłáŤáá˝ á áŁá ááá áá áŠá˘ áááłá áŁá 40 ááááá˝ áá áĽáá° 13 á˘áá˝ áááśá á°ááłáłá áá á áĽá ááĽá°áľ áá á¨áᢠá áá ᣠá á°ááłáłá á¨áłáá á°áὠᣠááłáŤáá á¨áááśá ááľ áááľ áááľááἠᣠáĽá áááśáá á ááłáŤá áá ááááľááἠá á áá¸á á˘
áá á áĽááἠá¨á°áťá ááᣠááá áá áááľ á¨á°ááŤáŠ ááłáŞáŤáá˝á á ááá áá áááŤá á ááá á áŁá ááš á áá°ááᢠá á á¨á´á áá á áá°áŠá áľ áá ááá á áŹáłáá˝ á¨áá ᣠáá áááśá á áá ááááľ áááśá á°áĽá áĽáá°áá ፠áĽá áľáá áááľá¨áłáľ ááá¨áŠ á áá áá ᣠááááŤáąá áľáá˝ áŁá 40-ááá ááłáŤ áĽááłá áŤáá° ááš ááá˘
áľááá á°áŤá˛á áá¨á á áá á°áľá á¨á°á°á¨áááľá á á˛áľ áá´á á ááᲠá´á áľáłá á°á¨áłáłá ááľáĽ áĽáľáŞáᣠáľá¨áľ á á áᢠáĽ.á¤.á . á 2002 ᣠá¨ááľáá áá´á ááᲠá´á áĽáŹáá áľáłá 40 á°ááá ᣠá¨á°áááľ á áŤáŁá˘ áááśáá á áአáá áááľááἠá á ááᢠáĽá á¨ááááĽá á¨áá, áááá áľ á¨áá˝á ááá፠ááááŁá. á áá áá áá´á á Active Star 40 á°á°ááˇá, áĽáąá á á°ááŁá á°ááłáłá áá, ááá áá á á°áťáťá á¤áááľáŽáááľ.
áĽá áááá áľ á¨áá˝á ááááŤá áá¨áĄ-
áá áľá á á˛áľááą á áŁá áášá ááá á¨áľáááľáá áá á áŤáá áĽá¨ááľ áá (KDPV áááá¨áą)ᢠááľá¨áŠ áá° áá á˛áá¨á áá¨ááłáᢠáľáááľáá áĽá፠ááá¨áľ á¨áááá˝ áá á°ááᣠáá á ááľ á°á á áá ááááľ áŁáśáá ááá áá áá á áá ᾠᣠá ááľáĄá á¨ááá áá¨áá፠áĽááłá á¨áá¨á á˘
á°áŤá˛á áŤááŁá á¨ááááŞáŤá ááá Raspberry Pi á ááľááἠáá, ááá áá ááłáŤá á˛áá, áááá á¨ááá ááá፠ᨠ"raspberry" áá áĽáá°áááááłááľ áłáá. á áá áŚááą 3 áá áĽáť ááá á¨áá ...
ááá áá á ááľ á¨áľáŤ áŁáá°á¨áŁá áľá Raspberry Pi Zero áááá á°áááŻáᣠáĽáąá á áŁá áľáá˝ áá á°ááᣠáááą á áŁá á áá˝áἠááľáĽ áĽáá°ááľáá ... ááá ááááŁáľá áśáľáľá˘ áá˛áŤáá á¨64 áᢠáá᪠áŤááľáŁ áĽááąáᣠáá˝áŤ áĽá áááᎠáŠá¤áľá˘ áááľ áá áłáááᢠá¨áĽááľ áááľ á áá, áá áá ááŁ, áĽá áá¨áľ á¨á°áłáá¸á áá°áá˝ á°áŤá˛áá áŤááłáá áĽáá˛áŤááá á¨áľá°ááłá. ááá ááá áá áĽáá° áááŁá áá˛áŤáá á°áŤá˘
ááá áá á°á°á¨á
á ááᲠá´á á áá˛á áľáłá 40 ááᣠáá áĽáá° áŞáŚááľ áááľ ááłáŞáŤáá˝ áááľ á¨áŠá¤áľá˘ áá°áŚá˝ á áᢠáááá˘áłá á áŁáŞ á°áŤáľáˇá á¨áłáá ááá á°ááłá˘ á¨ááá á°ááłá á˛ááá áĽá ááłáŤá áŤáą á áĽááąá á áŠá á˛á°áŤ, áŽáááŠá°áŠ á á°á¨á᪠áĽáá° áĽááąá ááá á°ááł áááááŁá.
áľááá
á¨áĽááąá áá˝áŤ á áľáááľáá ááá ááľáĽ á¨á°ááá á Raspberry Pi Zero áá á¨á°ááá á áĽáŹáá ááłáŤ á áĽááąá á áŠá áááááľ áá˝ááá˘
áá ፠áĽáť á áá°ááᢠRaspberry áŤáą á á áŠá á áááá¨áĽá á¨áá°ááá ááłáŞáŤ á áĽááąá áá á áŠá ááááľ áá˝ááᢠá¸ááá áľáááľ áľááŽášá áĽá áŽáááá°áŽáťá¸áá á á¤áľ áĽá á áľáŤ áá á áá á¨ááłá ááá áá ááá°ááľ ááá áá "áŤáľá áŞ" áááľáááľ á á áˇá - ááá˛á áĽáá áᎠá áá°áá á¨á¤á°áááľ áĽá á¨áá á¨áĽááąá "áá¨áľ" áá á¨á°áááá˘
BlueZ5 áĽá PAN
á áá áá ᨠPAN áá
á áá´
á áĽáą á ááŤáááľ á ááááŠá áĽá á°áá ááá áááąáá áááá áá˝ááᢠá á°áá á ááľ ááľáĽ á áá°áŤá áľ áá á°áá˘áá áľááá á Რá ááśáĄáľ á¨á°áá á á áá á¨á áááአáá áááááľ á¨áá ᨠá áá áá˛áŤáá á á˛áľ á¨á ááłá¨ áá¨áĽ ááłáŞáŤ bnep0 áááĽáŤáᢠá á°áááśáŁ DHCP ááá á áááá˝ á¨á áá á áľáŤáť áááá°áĽ áá á ááᢠá á áááá ááľ áĽáá á¨áľááľá ááłáŞáŤ áľá áŤáľáááááᢠááľááľáŠ ááłáŞáŤ á áľáŤáť áááá áĽá á¨DHCP á áááá áĽá á áľááľáŠ áá á¨á á á ááľáŹáľ ááľáŹáľ áĽá áá á¨ááŤáľáááá áĽáť ááá˘
á¨áĽááąá PAN á¨ááłá¨áť ááĽáĽ á¨áľáááľ áá
á°áŤá˛á áľááľáŠá ááááá systemd-networkd á°á á áááĄ-
ááá /etc/systemd/network/pan.netdev
[NetDev]
Name=pan
Kind=bridge
ForwardDelaySec=0
ááá /etc/systemd/network/pan.network
[Match]
Name=pan
[Network]
Address=0.0.0.0/24
DHCPServer=yes
IPMasquerade=yes
á áá ᨠNAP ááááŤá ááááá áĽáááľá ááááľ á ááĽáᢠBlueZ 5.36 áá°á á áááááŤáá˝ áá áá ááľá¨á áĽáá°ááá˝á áłááᢠá¸ááá á¨á°áłáłá° á áľá°áŤáááᥠmlang (ááŽáá áĽáá´áľ áĽáá°ááŤáááłá áľ áŤááá) ááá áľáá (á ááłááľ áá ááľá¨áľ áĽá áłáá°á) ááŠ
áá á áá
ááááťá¸áľ á°áŤá˛á áľááŞááąá áááľáŹáľ áĽá áĽááá˝ á¨á°ááą áááá¸áá ááá¨ááἠá¨Systemd á áááááľá á°á á ááá˘
ááá /etc/systemd/system/pan.service
[Unit]
Description=Bluetooth Personal Area Network
After=bluetooth.service systemd-networkd.service
Requires=systemd-networkd.service
PartOf=bluetooth.service
[Service]
Type=notify
ExecStart=/usr/local/sbin/pan
[Install]
WantedBy=bluetooth.target
ááá/usr/local/sbin/pan
#!/bin/sh
# Ugly hack to work around #787480
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
exec /usr/local/sbin/bt-pan --systemd --debug server pan
á°á˘áŤá á IPMasquerade= (á¨áá
á áłá˝ áááá¨áą) áľáá á˘áá¨á ááá°áá ááá á áŤáľáááá áá áá˘
áľáĽááášá á¨áá¸á á áá systemctl daemon-reload и systemctl systemd-networkd áĽáá°áá á áľááá á áľáĽáá áĽááąá áá áááá áá˝ááᢠsystemctl ááá ááĽá áť
Systemd á áá áá á¨áĽááąá PAN á°áá á
á¨á°áá áá áá Systemd á á áá áá ááááá ááá ááá˘
ááá /etc/systemd/network/pan-client.network
[Match]
Name=bnep*
[Network]
DHCP=yes
ááá /ááá°/systemd/system/[á˘áá á¨á°á á á]
[Unit]
Description=Bluetooth Personal Area Network client
[Service]
Type=notify
ExecStart=/usr/local/sbin/bt-pan --debug --systemd client %I --wait
á ááᣠá ááááŠá áĽáá°áá á¨áŤá á ááᣠá¨á°á áá°á á¨áĽááąá ááłá¨áť ááĽáĽ áá áĽáá°áá¨á°áá áááááľ áá˝ááá˘
systemctl start pan@00:11:22:33:44:55
á¨áľáĽáá ááľááá á áá áá ááŁáá
á áĽááἠá¨á áááአáĽá á¨á°áá áá˝ áá á á áĽááąá á áŠá á¨á°áŁáአá áá áá°á¨á á ááŁá¸áᢠá á áááአáá áĽááąáľááłáá ááľáŹáľ áĽá áľáááá˝á ááľá áľ áŤáľáááááłááĄ-
power on
agent on
default-agent
scan on
scan off
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XX
áá°áťáá á¨ááአá áá á¨ááŤáľáááááľ ááŁáŞáŤ á áááአááľáĽ áĽáľáŞáłá áľá¨áľ ááĽááľ á°á¨ááśá˝ áá áĽá. á áľáŤáťáá ááá áĽá á áĽááľ áľááá áĽá á áľááá á¨áá ᣠá áłááááľ áľááá áá ááá˘
á¨á°áá áá áá, á°ááłáłá ááá ááľá¨á áŤáľáááááłá, ááá áá á¨áłááááľ áľááá á áĽááá áááľ á áŤáľáááá. á á°á ááá á áĽá áá¨áá፠áłááá á¨á¤áá¤á ááŽááá áááááľá áááá á á áááአáŤáľáááááá˘
á°áŤá˛á áá áľááááá á¨áľááá á á°á á°á¨á°á áááá áĽááá á á áá°ááᢠááááŁáľ á¨ááŤáľáááá á°áá áá á¨á áááአáá á ááŁáá áĽá á á áááአáá áŤááá á¨áłááááľ áľááá ááľáŹáľ áĽáť ááᣠáá áŤáá áĽáľáŤáá á ááá¨á¨áá˘
á¨áĽááąá HID ááááŤá ááááľ
"áŤáľá áŞ" á¨áĽáŹáá ááłáŤ áá á á˝áŚ á¨á°ááááá á¨ááá á°ááł áĽáá˛áŤáá áĽá á áŤáą ááłáŤ á áĽááąá áĽáá˛á°ááá áŤáľááááᢠá°ááłáłá ááá áŤáľáá, áá á ááľáŠ ááŞá á ááˇá áľáĽáá ááľá áľ á ááĽá ááŞá á¨ááá á°ááł áĽáť áĽá bluetoothctl HID ááá፠áŤáá ááłáŞáŤ áŤáááá˘
ááá áá áĽááąáá á áľáĽáá ááľáá áááá á áľá¸á᪠ááá˘
ááá áĽááłá á°áŤá˛á áááá ááá áááá á˘á˝áá áĽáááľá á áľáĽáá ááľáá áááá á¨áááá˝ áááá á°á¨áľáˇáᢠááááŞáŤ áá ááŞáá˝ á¨áááááľ áá áŽáľ áááľááŁáľ áĽáť áá áĽá á á°á ᣠááá áá á°ááá ᣠáááłáᣠá¨á¤á˝á áᲠááŽáááá áááááľ âá¤áááľ áŞáŚááľ áĽáťâ á¨áááá áá°á¨áĽ áŤáľáááááłáᢠá áááá áááł áĽááąá áá ááááá áľáááááá áľááŞááľ ááááá á áá¨ááťááš ááľáĽ áááŁáľ áŤáľáááááłáᢠá ááľáá á¨áĽáá áľáŞáľ ááá ááá á¨áá ááłáŞáŤ áĽáá°áá ᨠáŤáľáłááłá. áááľ - á BlueZ 5 ááľáĽ á¨áľ áĽá¨á°áŤ áá? áá˛áŤá á á˛áľ áááľá áĽá á áᣠá°áŤá˛á á¨ááŤáááᣠáá áá á°ááś?
áááłáááľ
á¨ááἠáááአáá á áá° 120 áŞ.á˘.ᢠáŤá á áá áᣠáá á á áŁá á á ááᢠ1GHz ARM ááŽá°á°á ááľáĽáá ááľáá á áááá˝ á áŁá ááŁá ááᢠá°áŤá˛á á ááá á ááááľ ssh áĽá emacs á ááłáŞáŤá áá ááá áá á á áˇáá˘
á¨áŽááśá á áá¸-ááááá˝ áĽá á¨á፠áá˝ áĽáŤáľ
á Raspberry Pi Zero áá áŁáá ááŹááĄáá áĽá á áá á¨ááá ááŁáŞ á¨áľááŞá áĽáŤáľ áĽáááł ááᥠfbset áĽáá° 656x416 áááľá áááŚáłá (á áĽááἠááá ááłáŤ á áá°áááá)ᢠá áŽááśá áááľ 8x16 á á ááľ ááľáá 82 ááááá˝ áĽá 26 ááľááŽá˝ á ááá°ááá˘
á áá áááł á¨40-ááá áĽáŹáá ááłáŤ áá ááľáŤáľ á¨áááá˝ ááᢠáĽáá˛ááᣠá°áŤá˛á á¨áŠááŽáľ ááááá˝ á áĽáŹáá áĽáá˛áłáŠ áááááᢠáĽáá° áĽáľá áá, ááááľ 512 ááááá˝á áá°ááá, áĽá á áĽááááš á¨áŽááśá á áḠááááá˝ 256 ááááá˝ á áá¸á. á áŽááśá-áááá, áááľ áŁá 256 ááááá˝á á ááľ áá áá áá áá˝áá. á°áŤá˛á á¨áá¨á°ááľá ááľááŽá˝ áá° /etc/default/console-setup ááá á áááááĄ
SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"
ááľáłááťáĄ á¨brl-16x8.psf á áá¸-ááá áĽáá˛áá áááľá¨á áŽááśá-áĽáŹááá ááŤá áŤáľáááááłáá˘
ááĽá áááľáá?
á¨áĽáŹáá ááłáŤá 3,5 áá áá°áŞáŤ á ááᣠáá á¸ááá á¨áá-á¤á˝á˛á¤áá á áŚá˛áŽá ááááłáľ á áľáááá˝á á áŤáá áᢠá°áŤá˛á á "raspberry" ááľáĽ á¨á°á°áŤáá á¨áľáá˝ áŤááľ áá áá á ááťáá (á¨áááá áá, á°áááá áᎠá ááľ áĽáá°ááá áĽááá á áá á, ááá áá á PWM áá° GPIO áľáá˝ ááááŁáľ ááááśá˝ á á). á¨áŠá¤áľá˘-OTG ááááá ááá áá áĽá á¨áá áŤááľ áĽá á¨áá¤áľ áľáá˝á á áĽáŹáá ááłáŤ ááľáĽ á¨á°á°áŤá áľáá˝ áá፠áá ááááááľ á á áˇáᢠá áá ááááŤáľ, áááľ ááŤá áŤááśá˝ á áá°áŠá, á áá á á°áᨠáşáá´áľ áá á°ááłáłá ááłáŞáŤ áĽá¨ááá áá.
áĽáá˛áá "raspberry" á á áĽá ááĽááľ, áĽááľ á°á¨ááśá˝á áá á á áĽá á¨áĽáŹáá ááłáŤáá ááĽááľ á¨áááá˝ áá. áĽá ááá ááááŤáąá á˛á á á ááá ááľáĽ áŤáá áááá áááá áŤáľáááłá. á°áŤá˛á á ááá ááľáĽ áľáá˝ ááľ áŁáľáŞ áááľááἠá á áˇá áĽá á ááá áጠá áŠá "raspberry" ááłáŤáá ááĽááľ áĽáá˛ááá áŤáłáááᢠá áĽáá á ááľáĽ áĽáá°áá áŤá UPS ááá˘
á¨áľáááľ ááľá
á°ááłáłáŠ á¨áĽáŹáá ááłáŤ áŤáááľ áĽá á áąá áĽáá˛á ááľá¨á á¨ááá á°áŤá˛á ááá á¨áá á¨áľáááľ ááľá (á áŤáľáá˘áŤá áľáľáŞáľá˝ áá á¨á°áá á¨á°) á áá á¨áĽ á°áľá°á ááᢠáľá áĽáą á¨áá áŁáá á áľáŤáť áťáááľ. ááááľ áŤáá¸á á á á°áá˝ áŤá, ááĽáá°áá á áááľ áľáá áááľáŤáľ á áľááá á¨áááľá áá á¨ááŤáŤáľáą áľáĽáľáŚá˝á áááá áĽááłá ááťáá.
ááľáááá˝
á˝ááá áľáá¨á á´á ááᏠá áá°ááááá˘
áááś ááłááá˝ áá˛áá áŤááá á áá°ááááá˘
á°áŤá˛áá ᨠRaspberry Pi á áá áá á ááĽááľ áľááľá°ááá á ááŤá á¨á´áááá áŠáá¨áá˛á˛ áŁáá°á¨áŚá˝ áĽááá°ááááá˘
PS
ááá: hab.com