بعد از آپدیت مانجارو به نسخه 20.2 و تغییرات اندکی که در دسکتاپ گنوم در نسخه ۳.۳۸ داشت متوجه شدم که موقع shutdown یا restart دو دقیقه طول میکشه.
در بررسی لاگ ها به جایی نرسیدم. درواقع انگار همه چیز مربوط میشد به tracker گنوم، ولی با دور زدن اون هم تغییری اتفاق نمی افتاد. تا اینکه با کلی سرچ و فروم خوندن متوجه شدم که به خاطر یک سری ناهماهنگی های تکنیکی (که فرصت نوشتن و سوادش رو هم البته ندارم) قضیه مربوط میشه به نحوه ارتباط گنوم با systemd
.
فعلا با اضافه کردن عبارت زیر:
[Service] Slice=-.slice
درست قبل از عبارت ### Lines below this comment will be discarded
در فایل زیر:
systemctl edit --user gnome-session-restart-dbus.service
این مشکل برطرف میشه.
البته این مشکل میتونه دلایل متنوعی داشته باشه و لزوما مربوط به این قضیه نباشه. ولی اگر شما هم بعد از آپدیت مانجارو به این مشکل برخوردید بد نیست این رو امتحان کنید.
ما معمولا در لینوکس سیستم رو suspend میکنیم. خب این کار هزینه داره و از باتری یا برق برای فعال بودن استفاده میکنه. میتونیم در آرچی ها با سرویسی که در ادامه ایجاد میکنیم به سیستم میگیم که اگر بعد از ۲ ساعت suspend کسی resume نکرد، سیستم رو hybernate کن. این طوری مصرف باتریمون بهینه تر میشه و منطقی تر هم هست. البته به شرطی که swap داشته باشید.
ابتدا باید سرویس مورد نظرمون رو در systemd بسازیم
توجه: این مطلب قدیمی است و صرفا جهت آرشیو حفظ شده است. ممکن است امروزه برخی موارد یکسان نباشند.
متوجه شدم که ماوس وایرلس باعث میشه بعد از suspend با حرکت دادن یا کلیک کردن، لپتاپ resume بشه. گشتی زدیم و راه حل یافتیم. باید یک سرویس برای systemd درست کنیم و این موضوع رو غیر فعال کنیم!
$ sudo nano /etc/systemd/system/disable-usb-wakeup.service
----------------------------
[Unit]
Description=Disable USB wakeup triggers in /proc/acpi/wakeup
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo XHC > /proc/acpi/wakeup; echo WLAN > /proc/acpi/wakeup"
ExecStop=/bin/sh -c "echo XHC > /proc/acpi/wakeup; echo WLAN > /proc/acpi/wakeup"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
حالا سرویس رو فعال میکنیم:
$ sudo systemctl enable disable-usb-wakeup.service
$ sudo systemctl start disable-usb-wakeup.service
توجه: این مطلب قدیمی است و صرفا جهت آرشیو حفظ شده است. ممکن است امروزه برخی موارد یکسان نباشند.
لینوکس از راه های مختلفی گزارش های زیادی در مورد نحوه فعالیت سیستم ثبت میکنه. از پروسه بوت گرفته تا همین الان که دارید این متن رو میخونید. این گزارشات در یک جایی از سیستم ذخیره میشن و بعد از مدت مشخصی حذف میشن.
گاهی این نگه داشته شدن اینهمه لاگ (گزارش) چندان ضرورتی نداره و باعث میشه پروسه بوت کمی دچار تاخیر هم بشه. ما میتونیم از طریقی یکی از این گزارش ها رو که توسط journalctl
تولید میشن محدود کنیم. این طوری هم منابع کمتری از سیستم صرف تولید و نگه داری این گزارش ها میشه و هم موقع بوت چند ثانیه ای صرف جویی میشه.
توجه: این مطلب قدیمی است و صرفا جهت آرشیو حفظ شده است. ممکن است امروزه برخی موارد یکسان نباشند.
اینجا در مانجارو وقتی سیستم حالت suspend به resume میاد یک نویز عجیب و بد توی هدفون شنیده میشه. برای اینکه این نویز برطرف شه راه حلی که من پیدا کردم اینه که ماژول صدا رو یکبار حذف و دوباره بارگذاری کنیم.
ماژول صدای درایور اینتل snd_hda_intel
است. با این دستور این ماژول غیرفعال میشه:
sudo rmmod -f snd_hda_intel
حالا با این دستور میبایست مدل درایور اینتلی که دستگاه شما داره مشخص کنیم:
aplay --list-devices
که یه سری توضیحات میاره و عددی شبیه به ALC668
مد نظر ماست. حالا با این دستور ماژول مجددا به شکل صحیح بارگذاری میشه:
sudo modprobe snd_hda_intel ALC668
اگر از لپتاپ هایی استفاده میکنید که مانیتور اونها تاچ هست و گاهی فعال بودن این تاچ باعث دردسر میشه، میتونید به راحتی هر چه تمام فعال یا غیر فعالش کنین! احتمالا غیر فعال بودنش باعث مصرف کمتر باتری هم خواهد شد.
در مانجارو xinput
برای مدیریت ورودی های کامپیوتر نصب شده. مثل وبکم، کیبور، ماوس، تاچ پد و ... با اجرای xinput
لیستی از این موارد رو میبینید:
[amin@ASUS ~]$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Elan Touchpad id=12 [slave pointer (2)]
⎜ ↳ USBest Technology SiS HID Touch Controller id=10 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ USB2.0 HD UVC WebCam id=11 [slave keyboard (3)]
↳ Asus WMI hotkeys id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard
همون طور که میبینید تاچ اسکرین لپتاپ با ID شماره 10 مشخص شده که یک چیز ثابتی هست.
حالا با این دستور ها میتونید به راحتی هر کدوم از این ها رو فعال یا غیر فعال کنید:
xinput disable 10
xinput enable 10
حاصل سر و کله زدن های من با لینوکس