linux下使用筆記本的相關設置

本文後續可能會使用git推送更新到github/levinit-itnotesphp

[TOC]html

無線鏈接

Wi-Fi

通常地,安裝linux-firmware 便可,許多發行版會默認安裝此包,若是安裝主流的桌面環境,也會自動安裝它。linux

還能夠嘗試linux-firmware-iwlwifi(也可能名爲firmware-iwlwifi) ,此軟件包爲intel相關網卡驅動。ios

一些網卡可能須要尋找相應的驅動,可到其官網尋找支持,或者以網卡名、具體型號加firmware做爲關鍵字搜索解決方案。可以使用`lspci | grep Network`查看具體顯卡狀況。git

其餘解決思路:換網卡;使用免驅動安裝的usb網卡。github

藍牙

通常地,安裝bluez便可,一些發行版會默認安裝此包,若是安裝主流的桌面環境,也會自動安裝它。shell

特別的驅動解決思路參考上文「wi-fi」。tcp

能夠參考這篇文章- archwifi-藍牙)工具


rfkill:某些狀況下,wifi或者藍牙被關閉(尤爲是硬關閉)可是又找不打開的方法,可使用rfkill這個工具解決,經常使用命令:優化

rfkill list    #查看全部無線設備的狀態
rfkill unblock all    #啓用全部設備
rfkill --help    #查看rfkill相關命令

觸摸板

通常安裝桌面環境(如gnome、plasma等等)會自動安裝上觸摸板相關驅動;若是使用的一些窗口管理器(如i3wm、awesom)則可能須要自行安裝。

安裝驅動 xf86-input-synaptics

若是從其餘桌面環境改用gnome做爲桌面環境,則要用libinput 替換掉 xf86-input-synaptics (GNOME 目前再也不支持 synaptics),卸載掉 xf86-input-synaptics

電源管理

電源管理工具

  • 桌面環境的電源管理工具

    桌面環境通常都有本身的電源管理工具,可設置對各類使用行爲響應的電源動做 ,如使用電池時的亮度、滅屏時間、掛起時間、睡眠時間、蓋上筆記本蓋子的響應動做、按下電源鍵的響應動做等等。

    可參看下文電源相關行爲的響應動做進行一些更爲詳細或者電源管理工具爲提供的設置,推薦配合tlp或laptop-mode-tools使用。

  • tlp

    多功能電源管理工具,其默認配置已經針對常見使用狀況進行優化,安裝後執行systemctl enable tlp 使其開啓自啓動便可。如需進行更多配置,可修改/etc/default/tlp 文件。另可再安裝tlp-rdw用以設置無線設備。

    可參看tlp英文文檔

  • laptop-mode-tools

    讓內核開啓適合的筆記本電腦的模式以達到相關電源控制的目的。功能較多,配置較tlp複雜,和tlp二選一便可。

    可參看archwiki-Laptop Mode Tools (簡體中文)#.E5.9B.BA.E6.80.81.E7.A1.AC.E7.9B.98) 。

  • powertop intel處理器使用的電源管理工具。

    使用sudo powertop --auto-tune可啓用全部選項,欲開機自啓動auto-tune參看powertop(簡體中文)) 。

    提示:若是使用了tlp和laptop-mode-tools,幾乎不必再啓用該工具,前兩者功能覆蓋了powertop的設置項。

  • thermald

    一個用於防止平臺過熱的守護進程。此守護進程會監控平臺溫度,並採用可用的冷卻方式來下降溫度。該軟件安裝便可,無需額外設置。

    提示:該工具可能過早啓用風扇或風扇轉速更快,從而帶來較原使用狀況下更大的噪音,宜根據設備具體狀況和我的使用體驗考慮是否使用。

電源相關行爲的響應動做

這些行爲及響應動做多能在桌面環境的電源管理工具中進行設置,參看綜合型電源管理工具

按鍵和蓋子的響應動做

針對按下電源相關按鈕(如掛起/休眠/電源等按鍵)和蓋上筆記本蓋子等行爲而響應的電源動做。

systemd 可以處理某些電源相關的事件,編輯/etc/systemd/logind.conf 可進行配置,其主要包含如下事件:

  • HandlePowerKey:按下電源鍵
  • HandleSleepKey:按下掛起鍵
  • HandleHibernateKey: 按下休眠鍵
  • HandleLidSwitch:合上筆記本蓋
  • HandleLidSwitchDocked:插上擴展塢或者鏈接外部顯示器狀況下合上筆記本蓋子

取值能夠是 ignore、poweroff、reboot、halt、suspend、hibernate、hybrid-sleep、lock 或 kexec。

其中:

  • poweroff和halt均是關機(具體實現有區別)
  • supspend是掛起(暫停),設備通電,內容保存在內存中
  • hybernate是休眠,設備斷電(同關機狀態),內容保存在硬盤中
  • hybrid-sleep是混合睡眠,設備通電,內容保存在硬盤和內存中
  • lock是鎖屏
  • kexec是從當前正在運行的內核直接引導到一個新內核(多用於升級了內核的狀況下)
  • ignore是忽略該動做,即不進行任何電源事件響應

注意,系統默認設置爲:

HandlePowerKey=poweroff    #按下電源鍵關機
HandleSuspendKey=suspend    #按下掛起鍵掛起(暫停)
HandleHibernateKey=hibernate    #按下休眠鍵休眠
HandleLidSwitch=suspend    #蓋上筆記本蓋子掛起

例如要設置蓋上筆記本蓋子進行休眠,在該文件中配置:

HandleLidSwitch=hibernate

保存文件後,執行 systemctl restart systemd-logind 使其生效。

注意:一些Linux發行版可能須要自行對休眠進行配置,參考後文休眠配置,或者藉助pm-utils之類的工具實現。
桌面環境帶有的電源管理工具能管理上述(部分)動做的電源響應事件。

電池低電量的響應動做

如但願在電池電量極低的時候自動關機,能夠經過修改/etc/UPower/UPower.conf相關配置,示例,在電量低至%5時自動休眠:

PercentageLow=15  #<=15%低電量
PercentageCritical=10  #<=10%警告電量
PercentageAction=5  #<=5%執行動做(即CriticalPowerAction)的電量
CriticalPowerAction=PowerOff #(在本示例中是電量<=5%)執行休眠

CriticalPowerAction的取值有Poweroff、Hibernate和Hybid-sleep。

更多配置項參考該文件中的說明。

處理器調整

使通常是下降頻率以減小發熱,同時下降風扇轉速以減小噪音,並提高筆記本的電池續航時間。

/sys/devices/system/cpu目錄下有着cpu相關信息。

如intel處理器的設備,其系統在/sys/devices/system/cpu/intel_pstate 目錄下(可能存在)的文件規定着cpu運行頻率相關參數,如:

  • max_perf_pct 最高頻率百分比,數字0 - 100
  • min_perf_pct 最低頻率百分比,數字0 - 100
  • no_turbo 睿頻開啓狀態,數字0或1,1表示關閉

調頻工具

cpupower屬於Linux內核工具系列 但有的發行版不必定會默認安裝。

執行cpupower frequency-info 可查看到相關信息,cpupower set可進行頻率設置。

通常搜索cpupower、freq、cpu加freq等關鍵字能夠找到此類工具。

示例:使用cpupower控制頻率

編輯/etc/default/cpupower,找到min_freq.max_freq 這兩行,去掉其註釋的#, 填寫好頻率並保存

min_freq="0.25GHz"    #最小頻率
max_freq="2.5GHz"    #最大頻率

執行systemctl enable cpupower.service 使其生效。

關閉睿頻

可以使用命令 :cat /sys/devices/system/cpu/intel_pstate/no_turbo 查看睿頻開啓狀態,若是顯示0則表示開啓睿頻,顯示1則表是關閉睿頻。(intel)

一些關閉睿頻的方法:

  • 若是bios支持,在bios中設置。
  • 使用工具,如上文提到的工具cpupower-gui,圖形界面,操做簡單。
  • root執行 echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo (重啓後會恢復睿頻)
  • 使用tlp(推薦)或laptop-mode-tools等電源管理工具

    如tlp,編輯/etc/default/tlp,找到其中的兩行CPU_BOOST,修改成:

    CPU_BOOST_ON_AC=0   #0表示關閉 1表示開啓
    CPU_BOOST_ON_BAT=0    #同上

intel_pstate

  • 只針對intel處理器中SandyBridge(含IvyBridge)及更新的構架的CPU。intel構架列表:List of Intel CPU microarchitectures。援引:

    Linux內核對CPU的工做頻率管理,已經跟不上現代的CPU的需求,沒法在效能與省電取得平衡,因此intel本身寫了一段內核代 碼,Intel_pstate……內核3.13中,已經放入這段代碼,但沒有默認啓用。

    啓用方法:

    編輯/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT一行添加intel_pstate=enable,例如該行原有內容是:

    GRUB_CMDLINE_LINUX_DEFAULT=」quiet」

    添加添加intel_pstate=enable後便是:

    GRUB_CMDLINE_LINUX_DEFAULT=」quiet intel_pstate=enable」

    而後執行sudo grub-mkconfig -o /boot/grub/grub.cfg ,重啓生效。

    檢查:執行cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver,若是顯示intel_pstate則表示啓用成功,不然是未啓用成功或不支持該功能。

休眠配置

若是桌面環境無休眠相關選項,可參考一下方法手動配置。

  1. 合適大小的swap分區

    休眠(hibernate)須要將內存中的內容寫入磁盤的swap分區,若是swap分區大小比當前休眠所需空間小,則沒法保證可以正確地休眠。具體的swap的大小根據我的使用狀況(要休眠時的內存佔用)而定。

    注意:brtfs沒法設置swap分區;這裏的swap是swap分區,而不是swap file。

  2. 在bootloader 中增長resume內核參數

    須要添加resume=/dev/sdxY (sdxY 是 swap分區的名字) ,讓系統在啓動時讀取swap分區中的內容。

    例如,使用了grub2做爲bootloader,swap的分區是/dev/sda3,編輯/etc/default/grub 文件,在GRUB_CMDLINE_LINUX_DEFAULT中添加resume=/dev/sda3 ,假如該行的原有內容是:

    GRUB_CMDLINE_LINUX_DEFAULT=」quiet intel_pstate=enable」

    添加resume參數後就是:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=enable resume=/dev/sda3"

    而後更新 grub 配置 grub-mkconfig -o /boot/grub/grub.cfg

  3. 配置 initramfs的resume鉤子

    編輯/etc/mkinitcpio.conf,在HOOKS行中添加resume鉤子,例如該行原有內容是:

    HOOKS="base udev autodetect modconf block filesystems keyboard fsck"

    添加resume後就是:

    HOOKS="base udev resume autodetect modconf block filesystems keyboard fsck"

    注意:若是使用lvm分區,須要將resume放在lvm後面,示例:

    HOOKS="base udev autodetect modconf block lvm2 resume filesystems keyboard fsck"

    從新生成 initramfs 鏡像: mkinitcpio -p linux

獨顯管理

若是不須要運行大量耗費GPU資源的程序,能夠禁用獨立顯卡,只使用核心顯卡,一些禁用方法如:

  • 在BIOS中關閉獨立顯卡(若是能夠)
  • 執行echo OFF > /sys/kernel/debug/vgaswitcheroo/switch如下命令關閉獨立顯卡(注意,若是使用了bbswtich那麼應該是沒有這個文件的!)
  • 使用bbswitch

    #設置bbswitch模塊參數
    echo 'options bbswitch load_state=0 unload_state=1'> /etc/modprobe.d/bbswitch.conf
    #開機自動加載bbswitch模塊
    echo 'bbswitch ' > /etc/modules-load.d/bbswitch

    使用如下命令控制bbswitch進行開關顯卡:

    sudo tee /proc/acpi/bbswitch <<<OFF  #關閉獨立顯卡
    sudo tee /proc/acpi/bbswitch <<<ON  #開啓獨立顯卡
  • 屏蔽獨立顯卡

    將獨立顯卡相關模塊進行屏蔽,示例屏蔽NVIDIA相關模塊

    lsmod | grep nvidia | cut -d ' ' -f 1 > /tmp/nvidia    #閉源的nvidia
    lsmod | grep  nouveau | cut -d ' ' -f 1 > > /tmp/nvidia    #開源的nouveau
    sort -n /tmp/nvidia | uniq >  /tmp/nvidia.conf    #去重
    sed -i 's/^\w*$/blacklist &/g' /tmp/nvidia.conf    #添加blacklist
    sudo cp /tmp/nvidia.conf /etc/modprobe.d/nvidia.conf    #自動加載

重啓後檢查NVIDIA開啓狀況:lspci |grep NVIDIA,若是輸出內容後面的括號中出現了 (rev ff) 字樣則表示該顯卡已關閉。

在Linux中可以使用如下方法來切換顯卡。參看相關資料:

相關文章
相關標籤/搜索