جهاز Sysadmin EDC: Linux في جيبك

ربما كان لدى كل مشرف حالة عندما ينهار شيء فجأة ، وتكون في مكان ما على الطريق: تذهب بالسيارة ، أو تستقل القطار أو ، بشكل عادي ، تجلس في مكان ما على مقعد الحديقة وتتحرر وتندفع إلى مكان ما الرغبة ليست أدنى. وتحتاج إلى إصلاحه. أو ، على الأقل ، قم بتقييم حجم الحيوان الأبيض الذي يحمل الفراء الذي وصل.

من الواضح أنه يمكنك القيام بهاتف ذكي أو جهاز لوحي ، خاصة إذا كنت بحاجة فقط إلى الانتقال عبر ssh. ولكن استخدام شاشة تعمل باللمس في مثل هذه الحالات ، بالنسبة لي ، هو الألم والمعاناة.



يمكنك شراء لوحة مفاتيح خارجية أو حامل أو حامل للجهاز اللوحي ، ولكن أعتقد أنه من الأسهل حمل جهاز كمبيوتر محمول كامل معك. ستأخذ الأماكن نفس الشيء.

بعض الذكريات والمنطق


كسول جدا للقراءة ، يمكنك الذهاب على الفور إلى الجزء العملي.

في وقت من الأوقات ، عندما لم يكن نظام androids و iPhones موجودًا بعد ، استخدمت مثل هذه الأشياء جهاز Nokia N810 “Internet tablet”. يحتوي الهاتف على أبعاد مع هاتف ذكي حديث ، مع وجود لوحة مفاتيح qwerty وحتى مع لينكس كامل على متن الطائرة. Ssh ، vnc ، rdesktop - نعم لا شك! بالإضافة إلى ذلك ، استخدمت بنشاط CAS Maxima عندما احتجت إلى حساب شيء بسرعة وإظهار النتيجة.





ولكن مع مرور الوقت ، بدأت الهواتف الذكية التي تعمل بنظام Android في الظهور. فكرت هنا: لينكس كامل تقريبا ، في نفس الوقت ، ليست هناك حاجة لحمل جهاز آخر معك لتوزيع الإنترنت. بدأت في الاعتناء بالجهاز مع qwerty ، والذي سيحل محل n810 القديم ، والذي كان في ذلك الوقت متعبًا جدًا (كابل الشاشة ، بطارية مستبدلة مرتين ، لوحة المفاتيح ، حالة مكسورة). وقع الاختيار على Motorola Milestone.

ها هو ، بجانب ، بجانب بلدي بالم الخامس القديم و N810:



يجب أن أقول أن المنتج لم يبرر الثقة. كانت لوحة المفاتيح خيبة أمل كاملة. ليس حتى بسبب التصميم ، ولكن بسبب الصنعة الضعيفة للغاية: بعد ستة أشهر من الاستخدام ، بدأ التقشير والتسكع.

أضاف محمل الإقلاع المشفر أظافره إلى التابوت: عدم القدرة على استخدام النواة المخصصة مع جميع العواقب ، استهلك ديبيان البطارية كما لو كانت في حد ذاتها ، بسبب خصوصيات مصدر الطاقة ، ولكن لا يزال ، بطريقة ما ، يحل المنتج المهام الموكلة إليه.

على الأقل ، استمر استخدامه بعد انتهاء فترة التقادم المخطط لها والتي حددتها الشركة المصنعة ، عندما تم إصدار العديد من النماذج الحديثة (مختلفة ، ربما مع تخطيط متغير قليلاً والكثير من ذاكرة الوصول العشوائي) ، وكانت عربات التي تجرها الدواب وبطيئة للغاية.

حسنًا ، نظرًا لأن محطة ssh ستنخفض والهاتف الذكي (بالطبع ، سوف يلتهم كمية معينة من الخلايا العصبية). ولكن هناك حالات عندما تحتاج إلى التمسك بقطعة من الحديد باستخدام كابل وحدة التحكم ، أو إزالة tcpdump باستخدام جهاز IP لا يستجيب بحيث يمكنك القيام بشيء باستخدامه.

إنه ببساطة ساحر عندما ، بسبب وجود منفذ COM في محطة الإرساء ، يسحب شخص أحمق HP shnuy 17 بوصة ضخمًا مع رصيف ومورد طاقة 1.5 كجم ، ثم يعلق مع كل هذه الأشياء على السلالم أمام العداد.

في الآونة الأخيرة ، استخدمت 12 "ThinkPad x220 مع محول usb2com. ولكنني بدأت أكثر فأكثر في ترك الكمبيوتر المحمول في المنزل حتى يوم واحد (مرة أخرى)" اسم مستخدم $ ، كل شيء تعطل! "، وكان لدي هاتف ذكي فقط على جهاز Android.

ها هي سمكة أحلامي (في الحقيقة لا)


وبمجرد أن صادفت منتجًا يسمى GPD Pocket. كمبيوتر محمول متكامل في شكل هاتف ذكي أو جهاز لوحي صغير الحجم. 7 "، لوحة مفاتيح qwerty ، هامش لائق من الاستقلالية - آه ، عليك أن تأخذه. لقد طلبت ، تلقيت ، تفريغها.

للمقارنة مع x220 و n810:



لن أصف خصائص أولئك الذين يحتاجون إليها - سيجدونها على الإنترنت ، خاصة وأن هناك مراجعة مستعجلة من girbest هنا مؤخرًا. فقط قم بإعطاء العادم lshw و lspci:

lshw:

نص مخفي
:   : Default string (Default string) : Default string : Default string  №: Default string : 64 bits : smbios-3.0 dmi-3.0 vsyscall32 : boot=normal chassis=desktop family=Default string sku=Default string uuid=00020003-0004-0005-0006-000700080009 *-core :   : Default string : AMI Corporation  ID: 0 : Default string  №: Default string : Default string *-firmware : BIOS : American Megatrends Inc.  ID: 0 : 5.11 date: 08/07/2017 : 64KiB capacity: 4032KiB : pci upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int14serial int17printer acpi usb biosbootspecification uefi *-memory :    ID: 28 :      : 8GiB *-bank:0 : DIMM DDR3 1066 MHz (0,9 ns) : 00000000 : Hynix Semiconductor  ID: 0  №: 00000000 : A1_DIMM0 : 4GiB : 8 bits : 1066MHz (0.9ns) *-bank:1 : DIMM DDR3 1066 MHz (0,9 ns) : 00000000 : Hynix Semiconductor  ID: 1  №: 00000000 : A1_DIMM1 : 4GiB : 8 bits : 1066MHz (0.9ns) *-cache:0 : L1   ID: 32 : CPU Internal L1 : 224KiB capacity: 224KiB : internal write-back : level=1 *-cache:1 : L2   ID: 33 : CPU Internal L2 : 2MiB capacity: 2MiB : internal write-back unified : level=2 *-cpu :  : Intel(R) Atom(TM) x7-Z8750 CPU @ 1.60GHz : Intel Corp.  ID: 34   : cpu@0 : Intel(R) Atom(TM) x7-Z8750 CPU @ 1.60GHz : SOCKET 0 : 889MHz capacity: 2560MHz : 64 bits : 80MHz : x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch epb pti tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat cpufreq : cores=4 enabledcores=4 threads=4 *-pci : Host bridge : Intel Corporation : Intel Corporation  ID: 100   : pci@0000:00:00.0 : 34 : 32 bits : 33MHz : driver=iosf_mbi_pci : IRQ:0 *-display : VGA compatible controller : Intel Corporation : Intel Corporation  ID: 2   : pci@0000:00:02.0 : 34 : 64 bits : 33MHz : pm msi vga_controller bus_master cap_list rom : driver=i915 latency=0 : IRQ:123 :a0000000-a0ffffff :80000000-9fffffff ioport:f000(=64) :c0000-dffff *-generic:0 : Signal processing controller : Intel Corporation : Intel Corporation  ID: b   : pci@0000:00:0b.0 : 34 : 64 bits : 33MHz : msi pm cap_list : driver=proc_thermal latency=0 : IRQ:129 :a1a3b000-a1a3bfff *-usb : USB controller : Intel Corporation : Intel Corporation  ID: 14   : pci@0000:00:14.0 : 34 : 64 bits : 33MHz : pm msi xhci bus_master cap_list : driver=xhci_hcd latency=0 : IRQ:121 :a1a00000-a1a0ffff *-usbhost:0 : xHCI Host Controller : Linux 4.15.0-rc7-stockmind-gpdpocket xhci-hcd  ID: 0   : usb@1  : usb1 : 4.15 : usb-2.00 : driver=hub slots=7 speed=480Mbit/s *-usb:0 :  : Gaming Keyboard : SINO WEALTH  ID: 2   : usb@1:2 : 1.00 : usb-1.10 : driver=usbhid maxpower=100mA speed=1Mbit/s *-usb:1 :  USB- : BCM2045A0 : Broadcom Corp  ID: 3   : usb@1:3 : 1.12  №: B0F1ECED56A9 : usb-2.00 : driver=btusb maxpower=100mA speed=12Mbit/s *-usbhost:1 : xHCI Host Controller : Linux 4.15.0-rc7-stockmind-gpdpocket xhci-hcd  ID: 1   : usb@2  : usb2 : 4.15 : usb-3.00 : driver=hub slots=6 speed=5000Mbit/s *-generic:1 : Encryption controller : Intel Corporation : Intel Corporation  ID: 1a   : pci@0000:00:1a.0 : 34 : 32 bits : 33MHz : pm msi bus_master cap_list : driver=mei_txe latency=0 : IRQ:130 :a1900000-a19fffff :a1800000-a18fffff *-pci : PCI bridge : Intel Corporation : Intel Corporation  ID: 1c   : pci@0000:00:1c.0 : 34 : 32 bits : 33MHz : pci pciexpress msi pm normal_decode bus_master cap_list : driver=pcieport : IRQ:117 :a1000000-a14fffff *-network :   : BCM4356 802.11ac Wireless Network Adapter : Broadcom Corporation  ID: 0   : pci@0000:01:00.0  : wlp1s0 : 02  №: b0:f1:ec:ed:56:a8 : 64 bits : 33MHz : pm msi pciexpress bus_master cap_list ethernet physical wireless : broadcast=yes driver=brcmfmac driverversion=7.35.180.119 firmware=01-1a5c4016 ip=192.168.1.142 latency=0 multicast=yes wireless=IEEE 802.11 : IRQ:125 :a1400000-a1407fff :a1000000-a13fffff *-isa : ISA bridge : Intel Corporation : Intel Corporation  ID: 1f   : pci@0000:00:1f.0 : 34 : 32 bits : 33MHz : isa bus_master cap_list : driver=lpc_ich latency=0 : IRQ:0 

lspci:

نص مخفي
 00:00.0 Host bridge: Intel Corporation Device 2280 (rev 34) 00:02.0 VGA compatible controller: Intel Corporation Device 22b0 (rev 34) 00:0b.0 Signal processing controller: Intel Corporation Device 22dc (rev 34) 00:14.0 USB controller: Intel Corporation Device 22b5 (rev 34) 00:1a.0 Encryption controller: Intel Corporation Device 2298 (rev 34) 00:1c.0 PCI bridge: Intel Corporation Device 22c8 (rev 34) 00:1f.0 ISA bridge: Intel Corporation Device 229c (rev 34) 01:00.0 Network controller: Broadcom Corporation BCM4356 802.11ac Wireless Network Adapter (rev 02) 

جودة البناء جيدة ، فهي لا تلعب أي شيء ، ولا تصيح ، ولا تنحني. العلبة من الألمنيوم وبشكل عام ، يعطي الجهاز انطباعًا بنوع من كتلة متجانسة. هذا زائد.

ولكن هناك أيضًا ما يكفي من السلبيات. شاشة لامعة. لا ، إنه ليس لامعًا فحسب - إنه حرفيا مرآة. أي أنك ستلاحظ انعكاسك في ظروف الإضاءة غير الصفرية. كان هناك فيلم واقية في المجموعة ، لكنه لم يحل المشكلة.

والثاني هو لوحة المفاتيح. حقيقة أنها رائعة.



لكن كيف يتم تنفيذه أمر مخجل ورعب. تحاول الاختراق تحت macbook ، مع هذه الفجوات الضخمة بين الأزرار - حسنًا ، لماذا؟ بعد كل شيء ، يبدو أن الجمهور المستهدف ليس مجرد قطط براقة - فهم يأخذون جهاز iPad أو macbook التالي فقط. لا تملك هذه الفجوات غير السعيدة ، يمكن تكبير حجم المفاتيح.

يحتوي زر Fn على طبقة ضئيلة للغاية: هذان زران لضبط السطوع و F1-F12 و Insert. لماذا نحتاج الصف العلوي؟ يمكن تنفيذه كطبقة منفصلة.

مستخدمي Vim مؤلمون بشكل خاص ويعانون من القولون الموجود في الصف السفلي بجوار ctrl.

حسنًا ، كل شيء سيئ ، سنتعامل معه ، نظرًا لوجود بعض الطرق (المزيد عن هذا أدناه).

أوه نعم ، هناك نقطة مسار هنا. ما لي ، كمستخدم ثينك باد من ذوي الخبرة ، يسخن روحي. شيء واحد فقط ولكن: تقع نقطة التعقب في المكان الخطأ ومن أجل استخدامها ، يجب عليك ثني إبهامك. هذا ، للأسف ، غير قابل للشفاء. ولكن لبضع قبعات حمراء إضافية في المجموعة ، بالطبع ، شكرًا.

نقطة تعقب الشخص السليم:


نقطة تعقب المدخن:


قم بتثبيت Linux وتكوينه على Pocket GPD


من الواضح أن "windows" و "windows 10" بشكل خاص ، ليسا ما أحتاجه على هذا الجهاز ، ولكنهما ببساطة موانع.

نظرًا لميزات الجهاز ، مثل اتجاه الشاشة (يتم تدويرها إلى الجانب) ، فمن المستحيل ببساطة أخذ وتثبيت دبيان المفضل لديك دون الرقص مع الدف.



من حيث المبدأ ، يحتوي الموقع الرسمي على الصورة الرسمية لـ Ubuntu LTS 16.04 (والتي تبدو كبديل جيد لـ Debian المستقر) ، ولكن بعد قراءة المناقشات على الإنترنت ، تقرر استخدام مشروع GPD Pocket Ubuntu Respin

أؤكد بشكل عام أن الأمر الواضح هو أن الصورة المبنية على Ubuntu فقط مناسبة لاستخدام وتغذية البرنامج النصي ، على سبيل المثال ، Debian ، لن تعمل:

 $./build.sh debian-9.3.0-amd64-netinst.iso Display setting: Xorg-Standard Looking for kernel image... Extracting kernel files... Archive: gpdpocket-20180115-kernel-files.zip inflating: linux-headers-4.15.0-rc7-stockmind-gpdpocket_4.15.0-rc7-stockmind-gpdpocket-1_amd64.deb inflating: linux-image-4.15.0-rc7-stockmind-gpdpocket_4.15.0-rc7-stockmind-gpdpocket-1_amd64.deb inflating: linux-libc-dev_4.15.0-rc7-stockmind-gpdpocket-1_amd64.deb ./isorespin.sh: 'debian-9.3.0-amd64-netinst.iso' must be an Ubuntu (or Ubuntu flavour), Linux Mint, neon, elementary, BackBox or Peppermint desktop ISO. 

عند الإخراج ، نحصل على ملف linuxium-xubuntu-16.04-desktop-amd64.iso ، الذي نكتبه إلى محرك أقراص USB المحمول:

 #dd if=linuxium-xubuntu-16.04-desktop-amd64.iso of=/dev/sdX 

نقوم بالتمهيد منه عن طريق ضبط جهاز التمهيد ، والذهاب إلى إعدادات UEFI مع الزر حذف في التمهيد.

إجراء التثبيت تافه ، لا أرى أي معنى في التشتت. ألاحظ فقط أنه من الأفضل إنتاجه من الوضع المباشر ، لذلك لن يتم تحويل الشاشة إلى الجانب.

أستخدم تشفير القرص بالكامل ، في حالة فقدان الجهاز أو سرقته فجأة. لذا ، على الأقل ، ستظل جميع مفاتيح ssh الخاصة بك (نعم ، أعرف عن حماية كلمة المرور وعامل ssh) وعمليات تسجيل الدخول على موارد الإنترنت كما هي. لذلك ، أضع LVM على LUKS ، والذي أتمنى لك أيضًا.

قم بتصحيح المنحنيات


النوم والسبات


سيكون من الجيد أن تكون قادرًا على إلقاء جهاز كمبيوتر محمول في حقيبة ونسيانها حتى الحاجة إليها. لحسن الحظ ، يسمح الحجم والوزن. سيكون من الجيد عدم بدء تشغيل التطبيقات الضرورية يدويًا في كل مرة ، ولكن ببساطة استمر في العمل من المكان الذي توقفت عنده.

يبدو أن وضع السكون يعمل خارج الصندوق. يتم تنفيذه بالوسائل العادية ، أي من خلال تعليق systemctl. ومع ذلك ، من الناحية التجريبية ، وجد أن استهلاك الطاقة في هذا الوضع ليس أقل من استهلاك الخمول. على ما يبدو ، يقوم الجهاز ببساطة بإطفاء الشاشة وواجهات الشبكة وإيقاف تشغيل المبرد. ونتيجة لذلك ، ستهبط البطارية في صفر يوم لمدة يومين.

بحاجة الى سبات. تحول السبات المنتظم في النظام إلى أن يكون معطلاً: يتم التخلص من الحالة في مبادلة ، ولكن لا يمكن استردادها عند التمهيد.

تذكرت أن هناك مثل هذا المشروع - برنامج Userpace Software Suspend وحزمه موجودة في المستودع.

 #apt install hibernate 

نتحقق من:

 #hibernate-disk 

Voila ، يعمل! تم تفريغ النظام وإغلاقه. بعد إدخال كلمة المرور LUKS ، تعافى. ولكن تم تغطية الصوت وواي فاي ، وتمت إعادة ضبط سطوع الإضاءة الخلفية للشاشة إلى أقصى حد. سننتهي منه.

قم بتثبيت ما يلزم


قبل الشروع في تكوين ACPI ، ستحتاج إلى تثبيت العديد من الأدوات المساعدة.

لذا فإن ضبط سطوع الشاشة هو المسؤول عن xbacklight.

 #apt install xbacklight 

الكمبيوتر المحمول ليس محرك أقراص ثابتة ، ولكنه محرك أقراص محمول ، لذلك لا أريد قتله بمبادلة. هناك شيء مثل ZRam ، هنا سنستخدمه . الآن كل شيء بسيط مع هذا ، لا تحتاج إلى وصف الأوراق في rc.local ، وتحتاج فقط إلى القيام بما يلي:

 #apt install zram-config #sudo systemctl enable zram-config.service 

يقوم البرنامج النصي نفسه بحساب المقدار المطلوب من الذاكرة وإنشاء swapon.

كما لوحظ بشكل صحيح في التعليقات ، لا يأكل مورد الفلاش المبادلة فحسب ، بل أيضًا التسجيل. لذلك ، سيتم وضع / tmp و / var / log في ذاكرة الوصول العشوائي على tmpfs. للقيام بذلك ، أضف سطرين إلى / etc / fstab:

 tmpfs /tmp tmpfs nodev,nosuid,size=256M 0 0 tmpfs /var/log tmpfs nodev,nosuid,size=512M 0 0 


ننتهي من acpi


بادئ ذي بدء ، تعطيل معالجات systemg'shnyh. لأنها تفعل كل شيء بوسائلها الخاصة ، لكنها غير عاملة. شعار - نحن نفعل كل شيء ، لكننا نقوم بعمل ضعيف. على سبيل المثال ، لم يتعلم كيفية التعامل مع اتصال محول الطاقة أو سماعات الرأس أو ضغطات المفاتيح أو ما شابه.

لقد أكل حمضًا وما زال جائعًا! (4 ميغابايت)

/etc/systemd/logind.conf

 HandlePowerKey=ignore HandleLidSwitch=ignore 

 #systemctl restart systemd-logind.service 

البرنامج الخفي acpid مسؤول عن معالجة أحداث acpi ، التي يتم تخزين ملفات التكوين الخاصة بها فجأة في / etc / acpi.

سنرسل الكمبيوتر المحمول إلى وضع الإسبات بالضغط على زر الطاقة. للقيام بذلك ، قم بتحرير الملفات التالية (إذا لم تكن كذلك ، تحتاج إلى إنشاء):

/ etc / acpi / events / powerbtn

 event=button[ /]power action=/etc/acpi/hibernate.sh 

/etc/acpi/hibernate.sh (مع التعليقات)

نص مخفي
 #!/bin/bash #    ,        LUKS mv /home/user/bin/lock /home/user/bin/nolock # - killall -9 pulseaudio # zram   swap systemctl stop zram-config.service swapon /dev/xubuntu-vg/swap_1 #    DISPLAY=:0.0 su user -c "xbacklight >/tmp/xbl" #    umount -alt nfs4 umount -alt cifs # wpa_supplicant /sbin/wpa_cli suspend hibernate-disk sleep 2 #   DISPLAY=:0.0 su user -c "xbacklight -set `cat /tmp/xbl`" # wpa_supplicant /sbin/wpa_cli resume #  alsa,    . -     /sbin/alsa force-reload #     .  ,      DAC1,            amixer -c 1 set 'DAC1' 90% #    ,        killall i3lock #    mv /home/user/bin/nolock /home/user/bin/lock # zram systemctl start zram-config.service #    swapoff /dev/xubuntu-vg/swap_1 

الإسبات التلقائي بتكلفة منخفضة ليس من السهل تنفيذه ، ولكنه بسيط للغاية:

 #apt install acpi 

/etc/acpi/ifbatlowgotosleep.sh

 #!/bin/bash level=`/usr/bin/acpi -b|sed '/unava/d'|awk -F\ '{ print $4 }'|sed -e 's/,//' -e's/%//'` if [ "$level" -lt "10" ] then /etc/acpi/hibernate.sh fi 

يتحقق البرنامج النصي من حالة الشحن. إذا كان أقل من 10٪ ، فإنه ينفذ نص الإسبات أعلاه.

يتم تنفيذ التنفيذ الدوري عبر crontab:

 $sudo crontab -e */3 * * * * /etc/acpi/ifbatlowgotosleep.sh 2>/dev/null 

في حالتي ، يتم فحص البطارية كل 3 دقائق.

وضع السكون (تعليق systemctl) ، كما هو مذكور أعلاه ، لا فائدة منه. لذلك ، لا أرى أي سبب لتنشيطه عند إغلاق الغطاء. علاوة على ذلك ، قد تكون هناك رغبة ، على سبيل المثال ، في الاستماع إلى الموسيقى من جهاز كمبيوتر محمول مغلق في جيبك (لا يعني ذلك أنه "جيب").

لذلك ، نقوم ببساطة بإيقاف تشغيل الشاشة عند الإغلاق وتشغيلها عند الفتح.

حذف / etc / acpi / lidbtn.

نقوم بإنشاء وتحرير:

/ etc / acpi / events / lidclose:

 event=button/lid LID close action=/etc/acpi/lidclose.sh 

/ etc / acpi / events / lidopen:

 event=button/lid LID open action=/etc/acpi/lidopen.sh 

/etc/acpi/lidopen.sh

 DISPLAY=:0.0 su user -c "xrandr --output DSI1 --off" 

/etc/acpi/lidclose.sh

 DISPLAY=:0.0 su user -c "xrandr --output DSI1 --auto --rotate right --dpi 200" 

قم بتعيين قيمة DPI حسب رغبتك ، والمستخدم هو الاسم غير المعقد لحسابي (قم بتغييره إلى حسابك).

تكوين مفاتيح التحكم في الصوت والسطوع


نقوم بذلك من خلال جميع أحداث ACPI نفسها.

/ etc / acpi / events / voldown

 event=button[ /]volumedown action=/etc/acpi/volume-down.sh 

/ etc / acpi / events / volup

 event=button[ /]volumeup action=/etc/acpi/volume-up.sh 

/ etc / acpi / events / mute

 event=button[ /]mute action=/etc/acpi/volume-toggle.sh 

مخطوطات:

/etc/acpi/volume-toggle.sh

 amixer -c 1 set 'Speaker Channel' toggle amixer -c 1 set 'Headphone Channel' toggle 

/etc/acpi/volume-up.sh

 amixer -c 1 set 'Headphone' 5%+ amixer -c 1 set 'Speaker' 5%+ 

/etc/acpi/volume-down.sh

 amixer -c 1 set 'Headphone' 5%- amixer -c 1 set 'Speaker' 5%- 

وبالمثل للسطوع:
/ etc / acpi / events / bdown

 event=button[ /]brightnessdown action=/etc/acpi/bdown.sh 

/ etc / acpi / events / bup

 event=button[ /]brightnessup action=/etc/acpi/bup.sh 

/etc/acpi/bup.sh

 DISPLAY=:0.0 su user -c "xbacklight -inc 5%" 

/etc/acpi/bdown.sh

 DISPLAY=:0.0 su user -c "xbacklight -dec 5%" 

دعني أذكرك ، المستخدم هو اسم حسابي. أدخل خاصتك.

سماعة الرأس


Shit ^ W شريحة Realtek ALC5645 الخاصة غير قادرة على إيقاف تشغيل السماعات بشكل مستقل عند توصيل سماعات الرأس. يجب عليك تعليم النظام كيفية القيام بذلك بنفسك.

هناك مثل هذا السيناريو في respin:

نص مخفي
 #!/bin/bash set -e -u if [ "$1" = "jack/headphone" -a "$2" = "HEADPHONE" ]; then case "$3" in plug) sink="[Out] Headphones" ;; *) sink="[Out] Speaker" ;; esac for userdir in /run/user/*; do uid="$(basename $userdir)" user="$(id -un $uid)" if [ -f "$userdir/pulse/pid" ]; then su "$user" -c "pacmd set-sink-port alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645__sink $sink" fi done fi 

لكنها لا تعمل. يحاول إجراء تبديل من خلال التحكم في مزامنة الصوت ، ولكنه يفشل. لأن:

 $sudo su #su user -c "pacmd set-sink-port alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645__sink '[Out] Speaker'"    PulseAudio,        . 

الحل بسيط: عندما لا يتم استدعاء العملية الصوتية من قبل العميل ، فلا يوجد شيء للاتصال بـ pacmd معه. يمكنك بالطبع إضافة خط إطلاق هذا الخط إلى rc.local أو xinitrc أو حتى كتابة وحدة نظام منفصلة ، لكني اعتقدت أنه من الأفضل تخطيط عكاز خاص بي بدلاً من إصلاح الآخرين. وكتبت نصي الخاص بي ، أقل وحشية وتعقيدًا ، على ما أعتقد.

/etc/acpi/headphone-jack.sh

 #!/bin/bash set -e -u if [ "$3" = "plug" ]; then amixer -c 1 set 'Speaker Channel' mute >/dev/null amixer -c 1 set 'Headphone Channel' unmute >/dev/null else amixer -c 1 set 'Speaker Channel' unmute >/dev/null amixer -c 1 set 'Headphone Channel' mute >/dev/null fi 

نتعامل مع التخطيط وأشياء صغيرة أخرى


كما ذكرنا من قبل ، فإن التصميم يزعجني. زر الحذف هو المكان الذي يجب أن يكون فيه الخط المائل العكسي والشريط ، النقطتين في الصف السفلي ، ليس من الواضح لماذا القائمة الرئيسية ، علامة التبويب هي مكان الهروب في لوحات المفاتيح العادية ...

لن أرسم بالتفصيل ، مع التحليل ، سأحضر ~ / .xmodmaprc فقط وأشرح كيف يتم ذلك.

للبدء ، نحتاج إلى التقاط رمز المفتاح. يتم ذلك باستخدام برنامج xev (#apt install xev ، نعم). تشغيل ، اضغط على المفتاح المطلوب والحصول على إخراج مثل:

 KeyPress event, serial 33, synthetic NO, window 0x3200001, root 0x2c0, subw 0x0, time 187713326, (979,493), root:(982,1078), state 0x0, keycode 119 (keysym 0xffff, Delete), same_screen YES, XLookupString gives 1 bytes: (7f) "" XmbLookupString gives 1 bytes: (7f) "" XFilterEvent returns: False 

نحتاج إلى القيمة "keycode 119".

بعد ذلك ، افتح ~ / .xmodmaprc واكتب هناك

 keycode 119 = backslash bar backslash bar 

ونقدم تنفيذ "xmodmap ~ / .xmodmaprc" في xinitrc الخاص بك أو أي شيء يسمى عند بدء DE أو WM المفضلة لديك.

~ / .xmodmaprc الخاص بي:

نص مخفي
 pointer = 1 2 3 4 5 remove Lock = Caps_Lock remove Control = Control_L keycode 0x42 = Control_L keycode 135 = Alt_R keycode 0x25 = Super_R keycode 133 = Super_R add Control = Control_L keycode 113 = Left keycode 111 = Up keycode 114 = Right keycode 116 = Down keycode 110 = Home keycode 115 = End keycode 108 = ISO_Next_Group keycode 136 = ISO_First_Group keycode 49 = asciitilde grave asciitilde grave keycode 119 = backslash bar backslash bar keycode 51 = Delete keycode 48 = colon semicolon Cyrillic_zhe Cyrillic_ZHE keycode 47 = apostrophe quotedbl Cyrillic_e Cyrillic_E keycode 130 = XF86Explorer keycode 121 = XF86AudioMute keycode 198 = XF86AudioMicMute keycode 122 = XF86AudioLowerVolume keycode 123 = XF86AudioRaiseVolume keycode 37 = Tab clear mod5 add mod5 = XF86Explorer keycode 166 = Prior keycode 167 = Next 

يستخدم مثل هذه الأشياء المريبة لمعظم المستخدمين مثل نقل ctrl إلى مفتاح caps-lock ، والتبويب إلى ctrl_l ، و alt_gr إلى القائمة وتبديل التخطيط إلى موضع altgr القديم.

يمكنني أيضًا استخدام xcape لمحاكاة الضغط على escape بنقرة واحدة على ctrl_l. تسمى بهذا الشكل:

  xcape -t 1000 -e "Control_L=Escape" 

نظرًا لأنني أفضل الموضوعات الداكنة الأكثر راحة (لدي رأي ، قد يجادل الفجل) في ظروف الإضاءة المنخفضة ، ولكن غالبًا ما يجب أن تعمل في ضوء النهار الساطع ، هناك خدعة صغيرة: يمكن عكس ألوان الصورة. للقيام بذلك ، تحتاج إلى برنامج xcalib:

 #apt install xcalib 

عكس:

 $xcalib -i -a 

يمكنك الربط بأي مفتاح اختصار مناسب باستخدام مدير النوافذ. أنا معلقة على Super_L + Backspace.

الملخص


انطباعات الجهاز أكثر إيجابية من السلبية. أنا لست نادما على الأموال التي أنفقت. لا يشغل الجهاز مساحة كبيرة في الحقيبة ، ويتناسب مع جيب بنطال البضائع وسترة تشبه الدخان.



يعمل لفترة طويلة من البطارية ، للاختبار قمت بتمرير الأفلام لمدة ثلاث ساعات ونصف مع تشغيل wifi ، وتفريغها في مكان ما بمقدار النصف. رسوم من paverbank مع USB-A من خلال محول التيار المتردد.

تم علاج جميع المنحنيات الناعمة التي تمت مواجهتها بنجاح.

من المؤسف أنه لا يوجد منفذ rj45 ، ولكن آمل أن يتم حله بواسطة المحول المطلوب مع USB. الافتقار إلى الاتصالات المحمولة والكاميرات ، الآن ، في ظروف المراقبة الشاملة ، أعتقد أنه زائد.

Source: https://habr.com/ru/post/ar409945/


All Articles