Perangkat Sysadmin EDC: Linux di saku Anda

Setiap admin, mungkin, memiliki kasus ketika sesuatu tiba-tiba rusak, dan Anda berada di suatu tempat di jalan: Anda pergi dengan mobil, naik kereta api, atau, biasanya, duduk di suatu tempat di bangku taman dan melepaskan diri dan bergegas ke suatu tempat keinginan tidak sedikit pun. Dan Anda harus memperbaikinya. Atau, paling tidak, mengevaluasi skala hewan pembawa bulu putih yang telah tiba.

Jelas bahwa Anda dapat melakukannya dengan smartphone atau tablet, terutama jika Anda hanya perlu melalui ssh. Tetapi untuk menggunakan layar sentuh dalam kasus seperti itu, seperti bagi saya, adalah rasa sakit dan penderitaan.



Anda dapat membeli keyboard eksternal, penahan, atau dudukan untuk tablet, tetapi saya pikir lebih mudah untuk membawa laptop lengkap bersama Anda. Tempat akan memakan waktu yang hampir sama.

Beberapa kenangan dan alasan


Terlalu malas membaca, Anda bisa langsung menuju ke bagian praktis.

Pada suatu waktu, ketika android dan iPhone belum ada, untuk hal-hal seperti itu saya menggunakan "tablet Internet" Nokia N810. Handset ini memiliki dimensi dengan smartphone modern, sementara memiliki qwerty-keyboard dan bahkan dengan Linux penuh. Ssh, vnc, rdesktop - ya tidak ada pertanyaan! Plus, saya secara aktif menggunakan CAS Maxima ketika saya perlu menghitung sesuatu dengan cepat dan menunjukkan hasilnya.





Namun waktu berlalu, smartphone android mulai muncul. Ini dia, saya pikir: Linux yang hampir lengkap, pada saat yang sama, tidak perlu membawa perangkat lain bersama Anda untuk mendistribusikan Internet. Saya mulai melihat perangkat dengan qwerty, yang akan menggantikan saya dengan n810 tua yang baik, yang pada saat itu cukup lelah (kabel layar, dua kali mengganti baterai, keyboard, case rusak). Pilihan jatuh pada Motorola Milestone.

Ini dia, sebagian, di sebelah Palm V dan N810 tua saya yang baik:



Saya harus mengatakan bahwa produk itu tidak membenarkan kepercayaan. Keyboardnya benar-benar mengecewakan. Bukan karena tata letak, tetapi karena pengerjaan yang sangat buruk: setelah enam bulan digunakan, mulai terkelupas dan hang out.

Bootloader terenkripsi menambahkan paku ke peti mati: ketidakmampuan untuk menggunakan inti kustom dengan semua konsekuensi, chroot debian memakan baterai seolah-olah dalam dirinya sendiri, karena kekhasan catu daya, tetapi bagaimanapun, produk entah bagaimana menyelesaikan tugas yang ditugaskan untuk itu.

Paling tidak, itu terus digunakan setelah berakhirnya periode keusangan yang direncanakan ditentukan oleh pabrikan, ketika beberapa model yang lebih baru dirilis (berbeda, mungkin dengan tata letak yang sedikit berubah dan banyak RAM), dan itu sangat buggy dan lambat.

Oke, karena terminal ssh akan turun dan smartphone (tentu saja, itu akan melahap sejumlah sel saraf Anda). Tetapi ada beberapa kasus ketika Anda perlu menempel pada sepotong besi dengan kabel konsol, atau menghapus tcpdump dengan perangkat IP yang tidak responsif sehingga Anda dapat melakukan sesuatu dengan itu.

Itu hanya mempesona ketika, karena kehadiran port COM di stasiun dok, seseorang menyeret HP shnuy bodoh dengan 17 "kekar dengan dok dan catu daya 1,5 kilogram, dan kemudian menggantung dengan semua barang-barang ini di tangga di depan meja.

Baru-baru ini, saya menggunakan 12 "ThinkPad x220 dengan adaptor usb2com. Tetapi semakin banyak saya mulai meninggalkan laptop di rumah, sampai suatu hari (sekali lagi)" $ username, semuanya rusak! ", Dan saya hanya punya smartphone Android.

Ini dia, ikan impian saya (pada kenyataannya, tidak)


Dan begitu saya menemukan produk yang disebut GPD Pocket. Laptop yang lengkap dalam bentuk faktor smartphone ulang atau tablet berukuran kecil. 7 ", qwerty-keyboard, margin otonomi yang layak - eh, Anda harus menerimanya. Saya memesan, menerima, membongkar.

Untuk perbandingan dengan x220 dan n810:



Saya tidak akan menjelaskan karakteristik dari mereka yang membutuhkannya - mereka akan menemukannya di Internet, terutama karena baru-baru ini ada ulasan yang menarik dari girbest di sini. Berikan saja knalpot lshw dan lspci:

lshw:

Teks tersembunyi
:   : 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:

Teks tersembunyi
 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) 

Bangun kualitas bagus, tidak bisa apa-apa, tidak berderit, tidak bengkok. Kasing ini terbuat dari aluminium dan secara umum, perangkat ini memberi kesan semacam blok monolitik. Ini merupakan nilai tambah.

Tapi ada cukup banyak kekurangan juga. Layar glossy. Tidak, ini bukan hanya mengkilap - itu benar-benar sebuah cermin. Artinya, Anda akan mengamati refleksi Anda dalam kondisi pencahayaan yang tidak nol. Ada film pelindung dalam kit, tetapi itu tidak menyelesaikan masalah.

Yang kedua adalah keyboard. Fakta bahwa dia luar biasa.



Tetapi bagaimana penerapannya adalah rasa malu dan ngeri. Mencoba meretas di bawah macbook, dengan celah besar di antara tombol - well, mengapa? Lagipula, target audiens, tampaknya, bukanlah kucing yang glamor - mereka hanya mengambil ipad atau macbook berikutnya. Tidak memiliki celah yang tidak bahagia ini, ukuran kunci bisa dibuat lebih besar.

Tombol Fn memiliki lapisan yang sangat sedikit: ini adalah 2 tombol untuk menyesuaikan kecerahan, F1-F12 dan Sisipan. Mengapa kita membutuhkan baris paling atas? Itu bisa diimplementasikan sebagai lapisan terpisah.

Pengguna Vim sangat menyakitkan dan menderita dengan titik dua ditempatkan di baris bawah di sebelah ctrl.

Oke, semuanya buruk, kami akan mengobatinya, karena ada beberapa cara (lebih lanjut tentang ini di bawah).

Oh ya, ada trackpoint di sini. Apa yang bagi saya, sebagai pengguna ThinkPad yang berpengalaman, menghangatkan jiwa saya. Hanya satu hal tetapi: trackpoint terletak di tempat yang salah dan untuk menggunakannya, Anda harus menekuk ibu jari Anda. Sayangnya, ini tidak dapat disembuhkan. Tetapi untuk beberapa topi merah tambahan dalam kit, tentu saja, terima kasih.

Trackpoint orang sehat:


Trackpoint Perokok:


Instal dan konfigurasikan Linux pada GPD Pocket


Jelas bahwa "windows", dan "windows 10" khususnya, bukan yang saya butuhkan pada perangkat ini, tetapi hanya merupakan kontraindikasi.

Karena fitur perangkat, seperti orientasi layar (diputar ke samping), mustahil untuk mengambil dan memasang Debian favorit Anda tanpa menari dengan rebana.



Pada prinsipnya, situs web resmi memiliki gambar resmi Ubuntu LTS 16.04 (yang bagi saya merupakan alternatif yang baik untuk Debian yang stabil), tetapi setelah membaca diskusi di Internet, diputuskan untuk menggunakan proyek GPD Pocket Ubuntu Respin

Saya menekankan, secara umum, hal yang jelas bahwa hanya gambar yang dibuat di Ubuntu yang cocok untuk digunakan dan memberi makan skrip, misalnya, Debian, tidak akan berfungsi:

 $./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. 

Pada output, kita mendapatkan file linuxium-xubuntu-16.04-desktop-amd64.iso, yang kita tulis ke USB flash drive:

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

Kami boot darinya dengan mengatur perangkat boot, pergi ke pengaturan UEFI dengan tombol Hapus saat boot.

Prosedur pemasangannya sepele, saya tidak merasakan adanya hamburan. Saya hanya mencatat bahwa lebih baik memproduksinya dari mode Live, jadi layar tidak akan diputar ke samping.

Saya menggunakan enkripsi disk penuh, seandainya perangkat tiba-tiba hilang atau dicuri. Jadi, setidaknya, semua kunci ssh Anda (ya, saya tahu tentang perlindungan kata sandi dan ssh-agent) dan login pada sumber daya Internet akan tetap utuh. Oleh karena itu, saya memakai LVM di atas LUKS, yang saya juga berharap Anda.

Perbaiki curvulin


Tidur dan hibernasi


Alangkah baiknya bisa melempar laptop ke dalam tas dan melupakannya sampai dibutuhkan. Untungnya, ukuran dan berat memungkinkan. Alangkah baiknya untuk tidak memulai, setiap kali, aplikasi yang diperlukan secara manual, tetapi cukup terus bekerja dari tempat di mana Anda tinggalkan.

Mode tidur, tampaknya, bekerja di luar kotak. Diimplementasikan dengan cara biasa, yaitu, melalui systemctl menangguhkan. Namun, secara empiris, ditemukan bahwa konsumsi daya dalam mode ini tidak jauh lebih rendah daripada konsumsi idle. Rupanya, perangkat hanya memadamkan layar, antarmuka jaringan dan mematikan pendingin. Akibatnya, baterai akan mendarat dalam nol hari selama dua hari.

Perlu hibernasi. Systemctl hibernate biasa ternyata tidak beroperasi: status dibuang ke swap, tetapi tidak dapat pulih saat boot.

Saya ingat ada proyek seperti itu - Userspace Software Suspend dan paket-paketnya ada di dalam repositori.

 #apt install hibernate 

Kami memeriksa:

 #hibernate-disk 

Voila, berhasil! Sistem dicampakkan dan dimatikan. Setelah memasukkan kata sandi LUKS, pulih. Tapi suara dan wifi tertutup, kecerahan lampu latar layar diatur ulang ke maksimum. Kami akan menyelesaikannya.

Instal yang diperlukan


Sebelum melanjutkan untuk mengkonfigurasi ACPI, Anda perlu menginstal beberapa utilitas.

Jadi untuk mengatur kecerahan layar bertanggung jawab xbacklight.

 #apt install xbacklight 

Laptop bukan hard drive, tetapi flash drive, jadi saya tidak ingin membunuhnya dengan swap. Ada yang namanya ZRam , di sini kita akan menggunakannya. Sekarang semuanya sederhana dengan ini, Anda tidak perlu meresepkan sheet di rc.local, dan Anda hanya perlu melakukan hal berikut:

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

Script itu sendiri akan menghitung jumlah memori yang diperlukan dan melakukan swapon.

Sebagaimana dicatat dengan benar di komentar, sumber daya flash memakan tidak hanya swap, tetapi juga logging. Karena itu, / tmp dan / var / log akan dimasukkan ke ram pada tmpfs. Untuk melakukan ini, tambahkan dua baris ke / etc / fstab:

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


Kami menyelesaikan acpi


Pertama-tama, nonaktifkan penangan systemg'shnyh. Karena ia melakukan semuanya dengan caranya sendiri, tetapi mereka tidak beroperasi. Moto - kami melakukan segalanya, tetapi kami melakukan dengan buruk. Misalnya, belum belajar cara menangani koneksi adaptor daya atau headphone, penekanan tombol, atau sejenisnya.

Dia makan acpid dan masih lapar! (4 MB)

/etc/systemd/logind.conf

 HandlePowerKey=ignore HandleLidSwitch=ignore 

 #systemctl restart systemd-logind.service 

Daemon acpid bertanggung jawab untuk memproses kejadian acpi, file config yang disimpan secara tiba-tiba di / etc / acpi.

Kami akan mengirim laptop ke mode hibernasi dengan menekan tombol daya. Untuk melakukan ini, edit file berikut (jika tidak, Anda harus membuat):

/ etc / acpi / events / powerbtn

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

/etc/acpi/hibernate.sh (dengan komentar)

Teks tersembunyi
 #!/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 

Hibernasi otomatis dengan biaya rendah tidak mudah diterapkan, tetapi sangat sederhana:

 #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 

Script memeriksa status penagihan. Jika kurang dari 10%, ia menjalankan skrip hibernasi di atas.

Eksekusi berkala diatur melalui crontab:

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

Dalam kasus saya, baterai disurvei setiap 3 menit.

Mode tidur (menangguhkan systemctl), seperti yang disebutkan di atas, sangat tidak berguna. Karena itu, saya tidak melihat alasan untuk mengaktifkannya saat menutup tutupnya. Selain itu, mungkin ada keinginan, misalnya, untuk mendengarkan musik dari laptop tertutup di saku Anda (bukan tanpa alasan bahwa itu adalah "saku").

Karena itu, kita cukup mematikan layar saat menutup dan menyalakannya saat membuka.

Hapus / etc / acpi / lidbtn.

Kami membuat dan mengedit:

/ 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" 

Tetapkan nilai DPI sesuai keinginan Anda, dan pengguna adalah nama akun saya yang tidak rumit (ubah ke milik Anda).

Mengkonfigurasi tombol kontrol suara dan kecerahan


Kami melakukan ini melalui semua acara acpi yang sama.

/ 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 

Skrip:

/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%- 

Demikian pula untuk kecerahan:
/ 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%" 

Biarkan saya mengingatkan Anda, pengguna adalah nama akun saya. Masukkan milikmu.

Headphone


Sial ^ W Chip Realtek ALC5645 yang aneh tidak dapat mematikan speaker secara independen saat headphone tersambung. Anda harus mengajarkan sistem bagaimana melakukannya sendiri.

Ada skrip seperti itu dalam respin:

Teks tersembunyi
 #!/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 

Tapi itu tidak berhasil. Mencoba melakukan peralihan melalui kontrol sinkronisasi audio, tetapi gagal. Karena:

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

Solusinya sederhana: ketika proses audio belum dipanggil oleh klien, tidak ada yang bisa dihubungi pacmd. Anda dapat, tentu saja, menambahkan baris untuk meluncurkan yang ini di rc.local, xinitrc, atau bahkan menulis unit systemg terpisah, tetapi saya pikir lebih baik untuk merencanakan tongkat saya sendiri daripada memperbaiki yang lain. Dan saya menulis skrip saya sendiri, apalagi mengerikan dan canggih, saya pikir.

/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 

Kami memperlakukan tata letak dan hal-hal kecil lainnya


Seperti yang telah disebutkan, tata letak membuat saya marah. Tombol hapus adalah tempat garis miring terbalik dan bilah seharusnya, titik dua di baris bawah, tidak jelas mengapa menu tombol, tab adalah tempat pelarian di keyboard normal ...

Saya tidak akan melukis secara detail, dengan analisis, saya hanya akan membawa ~ / .xmodmaprc saya dan menjelaskan bagaimana hal itu dilakukan.

Untuk memulai, kita perlu menangkap kode kunci. Ini dilakukan dengan menggunakan program xev (#apt install xev, yes). Jalankan, tekan tombol yang diinginkan dan dapatkan output seperti:

 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 

Kami membutuhkan nilai "kode kunci 119".

Selanjutnya, buka ~ / .xmodmaprc dan tulis di sana

 keycode 119 = backslash bar backslash bar 

Dan kami memperkenalkan eksekusi "xmodmap ~ / .xmodmaprc" ke dalam xinitrc Anda atau apa pun namanya saat Anda memulai DE atau WM favorit Anda.

My ~ / .xmodmaprc:

Teks tersembunyi
 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 

Ini menggunakan hal-hal yang meragukan bagi sebagian besar pengguna seperti mentransfer ctrl ke caps-lock, tab ke ctrl_l, alt_gr ke menu dan mengubah tata letak ke posisi altgr yang lama.

Saya juga menggunakan xcape untuk mengemulasi escape escape dengan satu klik pada ctrl_l. Disebut seperti ini:

  xcape -t 1000 -e "Control_L=Escape" 

Karena saya lebih suka tema gelap yang lebih nyaman (saya punya pendapat, lobak akan berpendapat) dalam kondisi cahaya rendah, tetapi sering harus bekerja di siang hari yang cerah, ada trik kecil: warna gambar dapat dibalik. Untuk melakukan ini, Anda memerlukan program xcalib:

 #apt install xcalib 

Balikkan:

 $xcalib -i -a 

Anda dapat mengikat hotkey yang nyaman menggunakan window manager. Saya bergantung pada Super_L + Backspace.

Ringkasan


Tayangan perangkat lebih positif daripada negatif. Saya tidak menyesal dengan uang yang dihabiskan. Perangkat ini tidak memakan banyak ruang di tas, pas di saku celana kargo dan jaket seperti asap.



Ini bekerja untuk waktu yang lama dari baterai, untuk tes saya menggulung film tiga setengah jam dengan wifi aktif, habis di suatu tempat setengah. Biaya dari paverbank dengan usb-a melalui adaptor ac.

Semua curvulin lunak yang ditemukan berhasil diobati.

Sangat disayangkan bahwa tidak ada port rj45, tapi saya harap itu akan diselesaikan oleh adaptor yang dipesan dengan usb. Kurangnya komunikasi seluler dan kamera, sekarang, dalam kondisi pengawasan total, saya pikir agak plus.

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


All Articles