Raspberry Pi Zero αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž’αŸαž€αŸ’αžšαž„αŸ‹ Handy Tech Active Star 40 braille display

Raspberry Pi Zero αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž’αŸαž€αŸ’αžšαž„αŸ‹ Handy Tech Active Star 40 braille display

αž’αŸ’αž“αž€β€‹αž“αž·αž–αž“αŸ’αž’β€‹αž”αžΆαž“β€‹αžŠαžΆαž€αŸ‹ Raspberry Pi Zero, αž•αŸ’αž›αž»αŸ†β€‹αž”αŸŠαŸ’αž›αžΌαž’αžΌαžŸ αž“αž·αž„β€‹αžαŸ’αžŸαŸ‚β€‹αž˜αž½αž™β€‹αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž’αŸαž€αŸ’αžšαž„αŸ‹β€‹αž’αž€αŸ’αžŸαžšβ€‹αž”αŸŠαŸ’αž›αžΌαž’αžΌαžŸ Handy Tech Active Star 40 αžαŸ’αž˜αžΈβ€‹αžšαž”αžŸαŸ‹β€‹αž‚αžΆαžαŸ‹β€‹αžŠαŸ‚αž›β€‹αž—αŸ’αž‡αžΆαž”αŸ‹β€‹αž˜αž€β€‹αž‡αžΆαž˜αž½αž™β€‹αžšαž“αŸ’αž’ USB αž•αŸ’αžαž›αŸ‹β€‹αžαžΆαž˜αž–αž›αŸ” αž›αž‘αŸ’αž’αž•αž›αž‚αžΊαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž˜αŸ‰αžΌαž“αžΈαž‘αŸαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αž“αŸ…αž›αžΎ ARM αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž›αžΈαž“αž»αž… αž”αŸ†αž–αžΆαž€αŸ‹αžŠαŸ„αž™αž€αŸ’αžαžΆαžšαž…αž»αž… αž“αž·αž„αž’αŸαž€αŸ’αžšαž„αŸ‹αž’αž€αŸ’αžŸαžš Braille αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžΆαž€/αžαžΆαž˜αž–αž›αžœαžΆαžαžΆαž˜αžšαž™αŸˆ USB αžšαž½αž˜αž‘αžΆαŸ†αž„αŸ” αž–αžΈ power bank αž¬αž†αŸ’αž“αžΆαŸ†αž„αžŸαžΆαž€αž–αž“αŸ’αž›αžΊαž–αŸ’αžšαŸ‡αž’αžΆαž‘αž·αžαŸ’αž™αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αžαžΆαž˜αž–αž›αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž…αŸ’αžšαžΎαž“αž˜αŸ‰αŸ„αž„αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž…αŸ’αžšαžΎαž“αžαŸ’αž„αŸƒαŸ”

Raspberry Pi Zero αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž’αŸαž€αŸ’αžšαž„αŸ‹ Handy Tech Active Star 40 braille display

αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž“αŸƒαžœαž·αž˜αžΆαžαŸ’αžšαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž’αž€αŸ’αžŸαžšαžŸαŸ’αž‘αžΆαž”

αžŠαŸ†αž”αžΌαž„αž”αž„αŸ’αž’αžŸαŸ‹αž–αž½αž€αž‚αŸαžαž»αžŸαž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαžœαŸ‚αž„αž”αž“αŸ’αž‘αžΆαžαŸ‹αŸ” αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αž˜αžΆαž“αžŸαž˜αžαŸ’αžαž—αžΆαž– 60 αž¬αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž“αŸαŸ‡αž‚αžΊαž›αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž›αžΎαžαž» αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αž˜αžΆαž“αžŸαž˜αžαŸ’αžαž—αžΆαž– 40 αž‚αžΊαž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαžΆαž€αŸ‹αž‡αžΆαž˜αž½αž™αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡β€‹αž˜αžΆαž“β€‹αž’αŸαž€αŸ’αžšαž„αŸ‹β€‹αž’αž€αŸ’αžŸαžšβ€‹αžŸαŸ’αž‘αžΆαž”β€‹αž—αŸ’αž‡αžΆαž”αŸ‹β€‹αž‡αžΆαž˜αž½αž™β€‹αžŸαŸ’αž˜αžΆαžαž αŸ’αžœαžΌαž“ αž“αž·αž„β€‹αžαŸαž”αŸ’αž›αŸαž αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αž”αŸ’αžšαžœαŸ‚αž„β€‹αž”αž“αŸ’αž‘αžΆαžαŸ‹ 14 ឬ 18 αžαž½αž’αž€αŸ’αžŸαžšαŸ”

αž€αžΆαž›αž–αžΈαž˜αž»αž“ αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž’αž€αŸ’αžŸαžšαžŸαŸ’αž‘αžΆαž”αž‚αžΊαž˜αžΆαž“αž‘αŸ†αž αŸ†αž’αŸ†αžŽαžΆαžŸαŸ‹αŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒ 40 αž€αŸ…αž’αžΈ αž˜αžΆαž“αž‘αŸ†αž αŸ† αž“αž·αž„αž‘αž˜αŸ’αž„αž“αŸ‹αž“αŸƒαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαž‘αŸ†αž αŸ† 13 αž’αŸŠαžΈαž‰αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž…αŸ†αž“αž½αž“αž’αŸ’αž“αž€αžŸαŸ’αž‚αžΆαž›αŸ‹αžŠαžΌαž…αž‚αŸ’αž“αžΆ αž–αž½αž€αž‚αŸαž˜αžΆαž“αž‘αŸ†αž αŸ†αžαžΌαž…αž›αŸ’αž˜αž˜ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αžŠαžΆαž€αŸ‹αž’αŸαž€αŸ’αžšαž„αŸ‹αž“αŸ…αž–αžΈαž˜αž»αžαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαž‡αžΆαž‡αžΆαž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαž“αŸ…αž›αžΎαž’αŸαž€αŸ’αžšαž„αŸ‹αŸ”

αž“αŸαŸ‡αž–αž·αžαž‡αžΆαž›αŸ’αž’αž‡αžΆαž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž“αŸ…αžαŸ‚αž˜αž·αž“αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž‘αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αžΆαž“αŸ‹αž§αž”αž€αžšαžŽαŸαž–αžΈαžšαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž“αŸ…αž›αžΎαž—αŸ’αž›αŸ…αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž’αŸ’αžœαžΎαž€αžΆαžšαž“αŸ…αžαž»αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαžαŸ’αž’αžΌαž‰αžαŸ’αž’αŸ‚αžšαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž‚αž½αžšαž’αŸ„αž™αž…αž„αž…αžΆαŸ†αžαžΆαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαžαžΆαž˜αžˆαŸ’αž˜αŸ„αŸ‡αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž αžΎαž™αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž„αŸ’αž αžΆαž‰αž’αŸ†αž–αžΈαž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒαžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹αžœαžΆαž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž”αž„αŸ’αž αžΆαž‰αžαžΆαž’αŸαž€αŸ’αžšαž„αŸ‹αžαžΌαž… 40 αžαž½αž’αž€αŸ’αžŸαžšαž‚αžΊαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž”αžΆαž“αžšαž„αŸ‹αž…αžΆαŸ†αž˜αŸ‰αžΌαžŠαŸ‚αž›αžαŸ’αž˜αžΈαžŠαŸ‚αž›αž”αžΆαž“αžŸαž“αŸ’αž™αžΆαž‡αžΆαž™αžΌαžšαž˜αž€αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸŠαŸαžšαžΈ Handy Tech Star αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αŸ” αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αž†αŸ’αž“αžΆαŸ† 2002 αž˜αŸ‰αžΌαžŠαŸ‚αž›αž˜αž»αž“ Handy Tech Braille Star 40 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŠαŸ‚αž›αž•αŸ’αž‘αŸƒαžšαžΆαž„αž€αžΆαž™αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαžΆαž€αŸ‹αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαž“αŸ…αž›αžΎαž€αŸ†αž–αžΌαž›αŸ” αž αžΎαž™β€‹αž”αŸ’αžšαžŸαž·αž“β€‹αž”αžΎβ€‹αžœαžΆβ€‹αž˜αž·αž“β€‹αžŸαž˜β€‹αž‘αŸ αž˜αžΆαž“β€‹αž‡αŸ†αž αžšβ€‹αž’αžΆαž…β€‹αžŠαž€β€‹αž”αžΆαž“αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž˜αŸ‰αžΌαžŠαŸ‚αž›αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ†αž“αž½αžŸαžŠαŸ„αž™ Active Star 40 αžŠαŸ‚αž›αžŸαŸ’αž‘αžΎαžšαžαŸ‚αžŠαžΌαž…αž‚αŸ’αž“αžΆαž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‚αŸ’αžšαžΏαž„αž’αŸαž‘αž·αž…αžαŸ’αžšαžΌαž“αž·αž…αžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αŸ”

Raspberry Pi Zero αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž’αŸαž€αŸ’αžšαž„αŸ‹ Handy Tech Active Star 40 braille display

αž αžΎαž™αž‡αŸ†αž αžšαžŠαŸ‚αž›αž’αžΆαž…αžŠαž€αž”αžΆαž“αž“αŸ…αžαŸ‚αž˜αžΆαž“αŸ–

Raspberry Pi Zero αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž’αŸαž€αŸ’αžšαž„αŸ‹ Handy Tech Active Star 40 braille display

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ†αž•αž»αžαž’αŸ†αž–αžΈαž•αž›αž·αžαž•αž›αžαŸ’αž˜αžΈαž‚αžΊαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž€αž”αŸ’αžšαž αŸ‚αž›αž‘αŸ†αž αŸ†αž“αŸƒαžŸαŸ’αž˜αžΆαžαž αŸ’αžœαžΌαž“ (αžŸαžΌαž˜αž˜αžΎαž› KDPV) αŸ” αžœαžΆαž”αžΎαž€αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαŸαž‘αž·αž€αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αŸ” αžœαžΆαž”αŸ’αžšαŸ‚αž‡αžΆαž˜αžΆαž“αž—αžΆαž–αžšαž’αžΆαž€αŸ‹αžšαž’αž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αžΆαž“αŸ‹αžŸαŸ’αž˜αžΆαžαž αŸ’αžœαžΌαž“αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΎαž”αž“αŸ’αž‘αž”αŸ‹αž‘αž‘αŸ αžŠαŸ„αž™αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡αž˜αžΆαž“αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž–αŸ’αžšαžΈαž—αŸ’αž›αžΎαž„αŸ”

αžšαžΏαž„αžŠαŸ†αž”αžΌαž„αžŠαŸ‚αž›αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž‚αžΊαžŠαžΆαž€αŸ‹ Raspberry Pi αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αžΆαžšαžαžΆαŸ†αž„αž”αž„αŸ’αž αžΆαž‰αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž·αž‰ αžœαžΆαž”αžΆαž“αž”αŸ’αžšαŸ‚αž€αŸ’αž›αžΆαž™αžαžΆ αž€αž“αŸ’αž›αŸ‚αž„αžŠαžΆαž€αŸ‹αžŠαŸ‚αž›αž‚αŸ’αžšαž”αž›αžΎαž”αž“αŸ’αž‘αž”αŸ‹αž“αŸ„αŸ‡αž˜αž·αž“αžšαž’αž·αž›αž‡αžΆαž˜αž½αž™ "raspberry" αž“αŸ„αŸ‡αž‘αŸαŸ” αž₯αž‘αžΌαžœβ€‹αž“αŸαŸ‡β€‹αž”αžΎβ€‹αž”αž“αŸ’αž‘αŸ‡β€‹αžŸαŸ’αžαžΎαž„β€‹αž‡αžΆαž„ ៣ ម...

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαž αžŸαŸαžœαž·αž€αž˜αŸ’αž“αžΆαž€αŸ‹αž”αžΆαž“αž”αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž‰αž»αŸ†αž’αŸ†αž–αžΈαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ Raspberry Pi Zero αžŠαŸ‚αž›αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαžαžΌαž…αžŽαžΆαžŸαŸ‹αžŠαŸ‚αž›αž–αž½αž€αžœαžΆαž–αžΈαžšαž’αžΆαž…αžŠαžΆαž€αŸ‹αž€αŸ’αž“αž»αž„αž”αž“αŸ’αž‘αž”αŸ‹ ... αž¬αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž”αžΈαŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αž—αŸ’αž›αžΆαž˜αŸ— αžšαž½αž˜αž‡αžΆαž˜αž½αž™αž€αžΆαžαž˜αŸαž˜αŸ‰αžΌαžšαžΈ 64 GB αž”αŸŠαŸ’αž›αžΌαž’αžΌαžŸ β€œαž αž½αž…β€ αž“αž·αž„αžαŸ’αžŸαŸ‚ Micro USB αŸ” αž–αžΈαžšαž”αžΈαžαŸ’αž„αŸƒαž€αŸ’αžšαŸ„αž™αž˜αž€αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹ αž αžΎαž™αž˜αž·αžαŸ’αžαž—αž€αŸ’αžαž·αžŠαŸ‚αž›αž”αžΆαž“αžƒαžΎαž‰αž”αžΆαž“αž‡αž½αž™αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αžšαŸ€αž”αž…αŸ†αž•αŸ‚αž“αž‘αžΈαŸ” αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž—αŸ’αž›αžΆαž˜αŸ—αžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž‚αž½αžšαžαŸ‚αŸ”

αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž“αŸαŸ‡αŸ”

αž“αŸ…αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αž“αŸƒ Handy Tech Active Star 40 αž˜αžΆαž“αžšαž“αŸ’αž’ USB αž–αžΈαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαžŠαžΌαž…αž‡αžΆαž€αŸ’αžαžΆαžšαž…αž»αž…αŸ” αž€αŸ’αžŠαžΆαžšαž…αž»αž…β€‹αžαžΌαž…β€‹αž˜αž½αž™β€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αž˜αŸ‰αŸ„αž“β€‹αž˜αŸ‰αžΆαž‰αŸαž‘αž·αž€β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αžšαž½αž˜β€‹αž”αž‰αŸ’αž…αžΌαž›αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αŸ’αžαžΆαžšαž…αž»αž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹ αž αžΎαž™αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαžΆαž˜αžšαž™αŸˆαž”αŸŠαŸ’αž›αžΌαž’αžΌαžŸ αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž€αŸαž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αžœαžΆαž‡αžΆαž€αŸ’αžαžΆαžšαž…αž»αž…αž”αŸŠαŸ’αž›αžΌαž’αžΌαžŸαž•αž„αžŠαŸ‚αžšαŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž—αŸ’αž‡αžΆαž”αŸ‹αž”αŸŠαŸ’αž›αžΌαž’αžΌαžŸ β€œαž•αŸ’αž›αž»αŸ†αž€αž‰αŸ’αž…αŸ‚β€ αž‘αŸ…αž“αžΉαž„ Raspberry Pi Zero αžŠαŸ‚αž›αžŠαžΆαž€αŸ‹αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžŸαŸ’αž˜αžΆαžαž αŸ’αžœαžΌαž“ αž“αŸ„αŸ‡αžœαžΆαž“αžΉαž„αž’αžΆαž…αž‘αžΆαž€αŸ‹αž‘αž„αž‡αžΆαž˜αž½αž™αž’αŸαž€αŸ’αžšαž„αŸ‹αž’αž€αŸ’αžŸαžšαžŸαŸ’αž‘αžΆαž”αžαžΆαž˜αžšαž™αŸˆαž”αŸŠαŸ’αž›αžΌαž’αžΌαžŸαžŠαŸ„αž™αž”αŸ’αžšαžΎ BRLTTYαž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž—αŸ’αž‡αžΆαž”αŸ‹αž€αŸ’αžαžΆαžšαž…αž»αž…αž‘αŸ…αž’αŸαž€αŸ’αžšαž„αŸ‹αž“αŸ„αŸ‡ "raspberry" αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžœαžΆαž•αž„αžŠαŸ‚αžšαŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ„αŸ‡αž˜αž·αž“αž˜αŸ‚αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αŸαŸ” "raspberry" αžαŸ’αž›αž½αž“αžœαžΆαž•αŸ’αž‘αžΆαž›αŸ‹αž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎαž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαžαžΆαž˜αžšαž™αŸˆ Bluetooth PAN αž–αžΈαž§αž”αž€αžšαžŽαŸαžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαžœαžΆαŸ” αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαŸ’αž˜αžΆαžαž αŸ’αžœαžΌαž“ αž“αž·αž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αž“αŸ…αž•αŸ’αž‘αŸ‡ αž“αž·αž„αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αž’αŸ’αžœαžΎαž€αžΆαžšαžαžΆαž˜αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž–αŸαž›αž’αž“αžΆαž‚αžαž‚αžΆαžαŸ‹αž‚αŸ’αžšαŸ„αž„αž“αžΉαž„αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž› "raspberry" αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαžΏαž„αž“αŸαŸ‡ - αž”αž»αžšαžΆαžŽαž˜αž·αž“αž˜αŸ‚αž“αžŸαžΌαž“αŸ’αž™αž‘αŸ αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž’αŸŠαžΈαžŸαžΊαžšαžŽαž·αž αž“αž·αž„αž”αŸŠαŸ’αž›αžΌαž’αžΌαžŸαž˜αž½αž™αž‘αŸ€αžαŸ”

BlueZ 5 αž“αž·αž„ PAN

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ PAN αžŠαŸ„αž™αž”αŸ’αžšαžΎ αž”αŸ’αž›αžΌαž αŸ’αžŸαŸ αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αŸ” αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž”αžΆαž“αžšαž€αžƒαžΎαž‰αžŸαŸ’αž‚αŸ’αžšαžΈαž” bt-pan Python (αžŸαžΌαž˜αž˜αžΎαž›αžαžΆαž„αž€αŸ’αžšαŸ„αž˜) αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ PAN αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ GUI αŸ”

αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαŸ” αžŠαŸ„αž™αž”αžΆαž“αž‘αž‘αž½αž›αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŸαž˜αžšαž˜αŸ’αž™αžαžΆαž˜αžšαž™αŸˆ D-Bus αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ αžœαžΆαž”αž„αŸ’αž€αžΎαžαž§αž”αž€αžšαžŽαŸαž”αžŽαŸ’αžαžΆαž‰αžαŸ’αž˜αžΈ bnep0 αž—αŸ’αž›αžΆαž˜αŸ—αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ” αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ DHCP αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αžαž›αŸ‹αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž‘αŸ…αž€αžΆαž“αŸ‹αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž“αŸαŸ‡αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ BlueZ αž‘αžΆαž˜αž‘αžΆαžšαžˆαŸ’αž˜αŸ„αŸ‡αž§αž”αž€αžšαžŽαŸαžŸαŸ’αž–αžΆαž“ αžŠαŸ‚αž›αžœαžΆαž’αžΆαž…αž”αž“αŸ’αžαŸ‚αž˜αž§αž”αž€αžšαžŽαŸαž”αž˜αŸ’αžšαžΎ αžŠαžΎαž˜αŸ’αž”αžΈαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαž“αžΈαž˜αž½αž™αŸ—αŸ” αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαžŸαŸ’αž–αžΆαž“ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ DHCP αž”αžΌαž€αž“αžΉαž„αž€αžΆαžšαž€αŸ’αž›αŸ‚αž„αž”αž“αŸ’αž›αŸ† IP αž“αŸ…αž›αžΎαžŸαŸ’αž–αžΆαž“ αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αž…αŸ†αžŽαž»αž…αž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸŠαŸ’αž›αžΌαž’αžΌαžŸ PAN αž‡αžΆαž˜αž½αž™ Systemd

αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαŸ’αž–αžΆαž“ αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž”αžΆαž“αž”αŸ’αžšαžΎ 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

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αž„αŸ’αžαŸ† BlueZ αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ NAP αŸ” αžœαžΆαž”αžΆαž“αž”αŸ’αžšαŸ‚αž€αŸ’αž›αžΆαž™αžαžΆαžœαžΆαž˜αž·αž“αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš BlueZ 5.36 αž‘αŸαŸ” αž”αžΎαž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αžαž»αžŸ αž€αŸ‚αž‚αžΆαžαŸ‹αŸ– mlang (αž’αžΆαž…αžšαžΎαžαŸ’αžšαž…αŸ€αž€αž”αžΆαž“) αž–αž·αž€αžΆαžšαž—αŸ’αž“αŸ‚αž€ (αž–αŸαž›αžαŸ’αž›αŸ‡αž’αžΆαž…αž…αžΌαž›αž”αžΆαž“ αž“αž·αž„ quantum) guru

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αžΆαžαŸ‹αž”αžΆαž“αžšαž€αžƒαžΎαž‰ αž€αžΆαžšαž”αŸ’αžšαž€αžΆαžŸαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž”αžŽαŸ’αžŠαžΆαž‰ ΠΈ αž’αž€αŸ’αžŸαžš Python αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹ D-Bus αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž› αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž”αžΆαž“αž”αŸ’αžšαžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ 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

αž―αž€αžŸαžΆαžšαž‘αžΈαž–αžΈαžšαž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαž‘αŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎ Debian αž˜αžΆαž“ IPMasquerade= support (αžŸαžΌαž˜αž˜αžΎαž›αžαžΆαž„αž€αŸ’αžšαŸ„αž˜)αŸ” #787480).

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ systemctl daemon-reload ΠΈ systemctl αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰ systemd-networkd αž’αŸ’αž“αž€αž’αžΆαž…αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ Bluetooth PAN αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ systemctl αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžαŸ’αž‘αŸ‡

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ Bluetooth PAN αžŠαŸ„αž™αž”αŸ’αžšαžΎ Systemd

αž•αŸ’αž“αŸ‚αž€αž’αžαž·αžαž·αž‡αž“αž€αŸαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ„αž™αž”αŸ’αžšαžΎ Systemd αŸ”

αž―αž€αžŸαžΆαžš /etc/systemd/network/pan-client.network

[Match]
Name=bnep*

[Network]
DHCP=yes

αž―αž€αžŸαžΆαžš /etc/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

αž€αžΆαžšαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ

αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸƒαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαžαŸ’αžšαžΌαžœαžαŸ‚αž’αŸ’αžœαžΎαž‘αžΎαž„αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αž–αž½αž€αžœαžΆαžαžΆαž˜αžšαž™αŸˆαž”αŸŠαŸ’αž›αžΌαž’αžΌαžŸαŸ” αž“αŸ…αž›αžΎ server αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš bluetoothctl αž αžΎαž™αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αžœαžΆαž“αžΌαžœαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ–

power on
agent on
default-agent
scan on
scan off
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XX

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαŸ’αž€αŸαž“ αžŸαžΌαž˜αžšαž„αŸ‹αž…αžΆαŸ†αž–αžΈαžšαž”αžΈαžœαž·αž“αžΆαž‘αžΈαžšαž αžΌαžαžŠαž›αŸ‹αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαŸ” αžŸαžšαžŸαŸαžšαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹αžœαžΆ αž αžΎαž™αž”αŸ’αžšαžΎαžœαžΆαžŠαŸ„αž™αž…αŸαž‰αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‚αžΌ αž αžΎαž™αž”αžΎαž…αžΆαŸ†αž”αžΆαž…αŸ‹ αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αž»αž€αž…αž·αžαŸ’αžαŸ”

αž“αŸ…αžαžΆαž„αž’αžαž·αžαž·αž‡αž“ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαžŠαžΌαž…αž‚αŸ’αž“αžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αž»αž€αž…αž·αžαŸ’αžαž‚αžΊαž–αž·αžαž‡αžΆαž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαž‘αŸαŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž™αž€αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‘αž˜αŸ’αžšαž„αŸ‹ NAP αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŠαŸ„αž™αžŠαŸƒαžŠαŸ„αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ”

αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž˜αž·αž“αž”αŸ’αžšαžΆαž€αžŠαžαžΆαž“αŸαŸ‡αž‚αžΊαž‡αžΆαž›αŸ†αžŠαžΆαž”αŸ‹αžŠαŸαž›αŸ’αž’αž”αŸ’αžšαžŸαžΎαžšαž“αŸƒαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸ„αŸ‡αž‘αŸαŸ” αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαž‚αžΊαžαŸ’αžšαžΌαžœαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž αžΎαž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αž»αž€αž…αž·αžαŸ’αžαž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αžΆαžαŸ‹αž˜αž·αž“αž‘αžΆαž“αŸ‹αž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αžœαžΆαž“αŸ…αž‘αžΎαž™αž‘αŸαŸ”

αž€αŸ†αž–αž»αž„αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαžœαžαŸ’αžαž·αžšαžΌαž” Bluetooth HID

αžœαžΆαžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™ Raspberry αžŸαŸ’αž‚αžΆαž›αŸ‹αž€αŸ’αžαžΆαžšαž…αž»αž…αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž’αŸαž€αŸ’αžšαž„αŸ‹αž’αž€αŸ’αžŸαžš Braille αžŠαŸ„αž™αžαŸ’αžŸαŸ‚ αž αžΎαž™αž”αž‰αŸ’αž‡αžΌαž“αžŠαŸ„αž™αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αžœαžΆαžαžΆαž˜αžšαž™αŸˆαž”αŸŠαŸ’αž›αžΌαž’αžΌαžŸαŸ” αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžαžΆαž˜αžšαž”αŸ€αž”αžŠαžΌαž…αž‚αŸ’αž“αžΆ αžαŸ‚αž‡αŸ†αž“αž½αžŸαžœαž·αž‰αŸ” αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž“αŸ…αž›αžΎ αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž•αŸ’αžαž›αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš KeyboardOnly αž αžΎαž™ bluetoothctl αž“αžΉαž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αž˜αžΆαž“αž‘αž˜αŸ’αžšαž„αŸ‹ HID αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž”αŸŠαŸ’αž›αžΌαž’αžΌαžŸαžαžΆαž˜αžšαž™αŸˆαž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‚αžΊαž˜αžΆαž“αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž”αž“αŸ’αžαž·αž…

αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž€αŸαžŠαŸ„αž™αž€αŸαž‚αžΆαžαŸ‹αž™αž›αŸ‹αžαžΆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ BlueZ αžαžΆαž˜αžšαž™αŸˆαž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‚αžΊαž‡αžΆαž€αžΆαžšαžšαž’αžΆαž€αŸ‹αžšαž’αž½αž›αŸ” αžŠαŸ†αž”αžΌαž„αž‚αžΆαžαŸ‹αž‚αž·αžαžαžΆαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž…αžΌαž›αž€αžΌαžŠ PIN αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž”αŸ’αžšαŸ‚αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαžαžΆ αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αž‘αž˜αŸ’αžšαž„αŸ‹ HID αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžœαžΆαž™ "αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš KeyboardOnly" αŸ” αžœαžΆαž‚αž½αžšαž±αŸ’αž™αž—αŸ’αž‰αžΆαž€αŸ‹αž•αŸ’αž’αžΎαž›αžŠαŸ‚αž›αžαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸŠαŸ’αž›αžΌαž’αžΌαžŸ PAN αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‘αžΎαž„αžαžΆαž˜αžšαž™αŸˆαžƒαŸ’αž›αžΆαŸ†αž„αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ” αž‚αžΆαžαŸ‹αž…αž„αž…αžΆαŸ†αžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αž˜αž»αž“αžšαž”αžŸαŸ‹ BlueZ αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αžαŸ’αžšαŸ€αž˜αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαžΏαž„αž“αŸαŸ‡ αž•αŸαž“ - αžαžΎαž‚αžΆαžαŸ‹αž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž“αŸ…αž€αŸ’αž“αž»αž„ BlueZ 5? αžŸαŸ’αžšαžΆαž”αŸ‹αžαŸ‚β€‹αž˜αžΆαž“β€‹αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αžαŸ’αž˜αžΈβ€‹αž˜αž½αž™β€‹αž”αžΆαž“β€‹αž›αŸαž…β€‹αž‘αžΎαž„ αžŠαŸ„αž™β€‹αž˜αž·αž“β€‹αžŸαŸ’αž‚αžΆαž›αŸ‹β€‹αž’αŸ’αž“αž€β€‹αž“αž·αž–αž“αŸ’αž’ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžŠαŸαž€β€‹αž›αžΎβ€‹αž•αŸ’αž‘αŸƒ?

αž•αž›αž·αžαž—αžΆαž–

αž›αŸ’αž”αžΏαž“αž•αŸ’αž‘αŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž‚αžΊαž”αŸ’αžšαž αŸ‚αž› 120 kbit/s αžŠαŸ‚αž›αžœαžΆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž αžΎαž™αŸ” αžαž½αžšαž€αŸ’αž”αžΆαž› 1GHz ARM αž˜αžΆαž“αž›αŸ’αž”αžΏαž“αž›αžΏαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ” αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž“αŸ…αžαŸ‚αž˜αžΆαž“αž‚αž˜αŸ’αžšαŸ„αž„αž”αŸ’αžšαžΎαž‡αžΆαž…αž˜αŸ’αž”αž„ ssh αž“αž·αž„ emacs αž“αŸ…αž›αžΎαž§αž”αž€αžšαžŽαŸαŸ”

αž€αž»αž„αžŸαžΌαž›αž–αž»αž˜αŸ’αž–αž’αž€αŸ’αžŸαžš αž“αž·αž„αž‚αž»αžŽαž—αžΆαž–αž”αž„αŸ’αž αžΆαž‰αž’αŸαž€αŸ’αžšαž„αŸ‹

αž‚αž»αžŽαž—αžΆαž–αž”αž„αŸ’αž αžΆαž‰αž’αŸαž€αŸ’αžšαž„αŸ‹αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžŠαŸ‚αž›αž”αŸ’αžšαžΎαžŠαŸ„αž™ framebuffer αž“αŸ…αž›αžΎ Raspberry Pi Zero αž‚αžΊαž…αž˜αŸ’αž›αŸ‚αž€αžŽαžΆαžŸαŸ‹αŸ– fbset αžšαžΆαž™αž€αžΆαžšαžŽαŸαžαžΆαžœαžΆαž‡αžΆ 656x416 αž—αžΈαž€αžŸαŸ‚αž› (αž–αž·αžαžŽαžΆαžŸαŸ‹αž˜αž·αž“αž˜αžΆαž“αž˜αŸ‰αžΌαž“αžΈαž‘αŸαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ)αŸ” αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž–αž»αž˜αŸ’αž–αž’αž€αŸ’αžŸαžšαž€αž»αž„αžŸαžΌαž› 8 Γ— 16 αž˜αžΆαž“ 82 αžαž½αž’αž€αŸ’αžŸαžšαž€αŸ’αž“αž»αž„αž˜αž½αž™αž”αž“αŸ’αž‘αžΆαžαŸ‹ αž“αž·αž„ 26 αž”αž“αŸ’αž‘αžΆαžαŸ‹αŸ”

αžœαžΆαž˜αžΆαž“αž€αžΆαžšαžšαž’αžΆαž€αŸ‹αžšαž’αž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž’αž€αŸ’αžŸαžš Braille 40 αžαž½αž’αž€αŸ’αžŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž“αŸαŸ‡αŸ” αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž€αŸαž…αž„αŸ‹αžƒαžΎαž‰αžαž½αž’αž€αŸ’αžŸαžšαž™αžΌαž“αžΈαž€αžΌαžŠαž”αž„αŸ’αž αžΆαž‰αž‡αžΆαž’αž€αŸ’αžŸαžšαžŸαŸ’αž‘αžΆαž”αž•αž„αžŠαŸ‚αžšαŸ” αž‡αžΆαžŸαŸ†αžŽαžΆαž„αž›αŸ’αž’ αž›αžΈαž“αž»αž…αž‚αžΆαŸ†αž‘αŸ’αžš 512 αžαž½αž’αž€αŸ’αžŸαžš αž αžΎαž™αž–αž»αž˜αŸ’αž–αž’αž€αŸ’αžŸαžšαž€αž»αž„αžŸαžΌαž›αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž˜αžΆαž“ 256 αŸ” αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αž»αž„αžŸαžΌαž› αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž–αž»αž˜αŸ’αž–αž’αž€αŸ’αžŸαžšαž–αžΈαžš 256 αžαž½αž’αž€αŸ’αžŸαžšαžšαž½αž˜αž‚αŸ’αž“αžΆαŸ” αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž”αž“αŸ’αž‘αžΆαžαŸ‹αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž‘αŸ…αž―αž€αžŸαžΆαžš /etc/default/console-setupαŸ–

SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"

αž…αŸ†αžŽαžΆαŸ†αŸ– αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αž–αž»αž˜αŸ’αž–αž’αž€αŸ’αžŸαžš brl-16 Γ— 8.psf αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαŸ†αž‘αžΎαž„αž€αž»αž„αžŸαžΌαž›αž’αž€αŸ’αžŸαžšαžαžΌαž…αŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž‡αžΆαž”αž“αŸ’αž‘αžΆαž”αŸ‹?

αž’αŸαž€αŸ’αžšαž„αŸ‹ Braille αž˜αžΆαž“ Jack 3,5 mm αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž˜αž·αž“αžŠαžΉαž„αž’αŸ†αž–αžΈαž’αžΆαžŠαžΆαž”αŸ‹αž‘αŸαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‘αž‘αž½αž›αžŸαž‰αŸ’αž‰αžΆαžŸαŸ†αž‘αŸαž„αž–αžΈ Mini-HDMI αž‘αŸαŸ” αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαžΎαž€αžΆαžαžŸαŸ†αž‘αŸαž„αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž“αŸ…αž€αŸ’αž“αž»αž„ Raspberry αž”αžΆαž“αž‘αŸ (αž…αž˜αŸ’αž›αŸ‚αž€αžŽαžΆαžŸαŸ‹αž’αŸ’αž“αž€αž”αž€αž”αŸ’αžšαŸ‚αž”αŸ’αžšαžΆαž€αžŠαžαžΆαžŸαžΌαž“αŸ’αž™αž˜αž·αž“αž˜αžΆαž“αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžœαž·αž’αžΈαž”αž‰αŸ’αž…αŸαž‰αžŸαŸ†αž‘αŸαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎ PWM αž‘αŸ… GPIO) αŸ” αž‚αžΆαžαŸ‹αž‚αŸ’αžšαŸ„αž„αž“αžΉαž„αž”αŸ’αžšαžΎ USB-OTG hub αž“αž·αž„αž—αŸ’αž‡αžΆαž”αŸ‹αž€αžΆαžαžαžΆαž„αž€αŸ’αžšαŸ… αž“αž·αž„αž”αž‰αŸ’αž…αŸαž‰αžŸαŸ†αž‘αŸαž„αž‘αŸ…αž€αžΆαž“αŸ‹αž§αž”αž€αžšαžŽαŸαž”αŸ†αž–αž„αžŸαž˜αŸ’αž›αŸαž„αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αž’αŸαž€αŸ’αžšαž„αŸ‹αž”αž„αŸ’αž αžΆαž‰αž’αž€αŸ’αžŸαžšαžŸαŸ’αž‘αžΆαž”αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αž˜αž½αž™αž…αŸ†αž“αž½αž“ αž€αžΆαžαžαžΆαž„αž€αŸ’αžšαŸ…αž–αžΈαžšαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸ αž₯αž‘αžΌαžœαž“αŸαŸ‡αž‚αžΆαžαŸ‹αž€αŸ†αž–αž»αž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αž§αž”αž€αžšαžŽαŸαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αž•αŸ’αžŸαŸαž„αŸ”

αžœαžΆαž€αŸαž˜αžΆαž“αž€αžΆαžšαžšαž’αžΆαž€αŸ‹αžšαž’αž½αž›αž•αž„αžŠαŸ‚αžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž·αž‘ "raspberry" αžŠαŸ„αž™αžŠαŸƒ αžšαž„αŸ‹αž…αžΆαŸ†αž–αžΈαžšαž”αžΈαžœαž·αž“αžΆαž‘αžΈ αž αžΎαž™αž”αž·αž‘αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž’αž€αŸ’αžŸαžšαžŸαŸ’αž‘αžΆαž”αŸ” αž αžΎαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αžœαžΆαžŠαž€αžαžΆαž˜αž–αž›αž…αŸαž‰αž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž“αŸ’αž‘αž”αŸ‹αŸ” αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž‚αŸ’αžšαŸ„αž„αž“αžΉαž„αžŠαžΆαž€αŸ‹αžαŸ’αž˜αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžαžΌαž…αž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž“αŸ’αž‘αž”αŸ‹ αž αžΎαž™αžαžΆαž˜αžšαž™αŸˆ GPIO αž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αžŠαž›αŸ‹ Raspberry αž’αŸ†αž–αžΈαž€αžΆαžšαž”αž·αž‘αž’αŸαž€αŸ’αžšαž„αŸ‹ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž’αžΆαž…αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αž·αž‘αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αžŸαŸ‹αžœαžΆαŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆ UPS αžαŸ’αž“αžΆαžαžαžΌαž…αŸ”

αžšαžΌαž”αž—αžΆαž–αž”αŸ’αžšαž–αŸαž“αŸ’αž’

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž’αŸαž€αŸ’αžšαž„αŸ‹αž’αž€αŸ’αžŸαžš Braille αžŠαžΌαž…αž‚αŸ’αž“αžΆ αž αžΎαž™αž…αž„αŸ‹αž’αŸ’αžœαžΎαžŠαžΌαž…αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αžœαžΆ αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αžαž›αŸ‹αž“αžΌαžœαžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αžαŸ’αžšαŸ€αž˜αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž…αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’ (αž•αŸ’αž’αŸ‚αž€αž›αžΎ Raspbian Stretch)αŸ” αžŸαžšαžŸαŸαžšαž‘αŸ…αž‚αžΆαžαŸ‹αž’αŸ†αž–αžΈαžšαžΏαž„αž“αŸαŸ‡αžαžΆαž˜αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰αžαžΆαž„αž›αžΎαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž˜αž“αž»αžŸαŸ’αžŸαž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹ αžœαžΆαžαŸ‚αž˜αž‘αžΆαŸ†αž„αž’αžΆαž…αž”αž‰αŸ’αž…αŸαž‰αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž€αŸ‚αž”αŸ’αžšαŸ‚αž”αŸ‚αž”αž“αŸαŸ‡αŸ”

αž€αžΆαžšαžŠαžΉαž„αž‚αž»αžŽ

αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαžŠαž›αŸ‹ Dave Mielke αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αžΆαž“αž’αžαŸ’αžαž”αž‘αŸ”

αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαžŠαž›αŸ‹ Simon Kainz αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαžΌαž”αž—αžΆαž–αž‚αŸ†αž“αžΌαžšαŸ”

αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαžŠαž›αŸ‹αžŸαž αž€αžΆαžšαžΈαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž“αŸ…αžŸαžΆαž€αž›αžœαž·αž‘αŸ’αž™αžΆαž›αŸαž™αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ Graz αžŠαŸ‚αž›αž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž‘αŸ…αž€αžΆαž“αŸ‹αž–αž·αž—αž– Raspberry Pi αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸαŸ”

PS tweet αžŠαŸ†αž”αžΌαž„ αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž›αžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸαŸ‡ (αž˜αž·αž“αž”αžΎαž€ - αž’αŸ’αž“αž€αž”αž€αž”αŸ’αžšαŸ‚) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αžαŸ‚αž”αŸ’αžšαžΆαŸ†αžαŸ’αž„αŸƒαž˜αž»αž“αž–αŸαž›αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αžŠαžΎαž˜αž“αŸƒαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž αžΎαž™αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαžŠαŸ„αž™αž›αžΎαž€αž›αŸ‚αž„αžαŸ‚αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŸαŸ†αž‘αŸαž„αž—αžΆαžšαž€αž·αž…αŸ’αž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž™αŸ‰αžΆαž„αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ” αžŠαŸ„αž™αžœαž·αž’αžΈαž“αŸαŸ‡ αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž”αžΆαž“αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž€αŸ†αžŽαŸ‚αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž“αŸƒαž’αžαŸ’αžαž”αž‘αž–αžΈ "αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž’αž€αŸ’αžŸαžšαžŸαŸ’αž‘αžΆαž”αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„" αžŠαŸ‚αž›αž‚αžΆαžαŸ‹αž”αžΆαž“αž’αŸ’αžœαžΎ αžŠαŸ„αž™αž—αŸ’αž‡αžΆαž”αŸ‹αžœαžΆαžαžΆαž˜αžšαž™αŸˆ SSH αž‘αŸ…αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž“αŸ…αž•αŸ’αž‘αŸ‡αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹