聯想legion R7000筆記本linux使用體驗


聯想legion R7000筆記本linux使用體驗

這款筆記本使用linux最主要的問題在觸控板

  1. 默認情況下可能會加載hid_generic和hid_multitouch兩個驅動, 這兩個驅動加載后觸摸板無法使用,鍵盤可以正常使用

  2. 可以在/etc/modprobe.d/blacklist.conf文件里面加上blacklist hid_multitouch這行,這樣觸摸板和鍵盤可以使用, 觸摸板會被識別為類似鼠標的情況, 無法使用雙指滑動

  3. 默認的鍵盤使用的驅動是hid_generic, 看dmesg信息顯示鍵盤是ITE的,我這把鍵盤修改為使用hid_ite驅動
    在drivers/hid/hid-ite.c文件中添加一行, 讓鍵盤使用hid-ite驅動

static const struct hid_device_id ite_devices[] = {
	{ HID_USB_DEVICE(USB_VENDOR_ID_ITE, USB_DEVICE_ID_ITE8595) },
        /* 添加下面一行 */
	{ HID_USB_DEVICE(USB_VENDOR_ID_ITE, USB_DEVICE_ID_ITE_LENOVO_LEGION_R7000) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_258A, USB_DEVICE_ID_258A_6A88) },

上面引用了一個常量,在drivers/hid/hid-ids.h文件里面定義

#define USB_VENDOR_ID_ITE               0x048d
#define USB_DEVICE_ID_ITE_LENOVO_YOGA   0x8386
#define USB_DEVICE_ID_ITE_LENOVO_YOGA2  0x8350
/* 我的鍵盤vid,pid是0x048d, 0xc100 添加下面一行 */
#define USB_DEVICE_ID_ITE_LENOVO_LEGION_R7000 0xc100
#define I2C_DEVICE_ID_ITE_LENOVO_LEGION_Y720	0x837a
#define USB_DEVICE_ID_ITE_LENOVO_YOGA900	0x8396
#define USB_DEVICE_ID_ITE8595		0x8595
  1. 觸摸板的vendorID是0x06CB, 這個看着像是synaptics的, 搜了下似乎hid-rmi驅動比較像,就用這個測試下吧
    在drivers/hid/hid-rmi.c文件中添加一行, 讓觸摸板使用hid-rmi驅動
static const struct hid_device_id rmi_id[] = {
	{ HID_USB_DEVICE(USB_VENDOR_ID_RAZER, USB_DEVICE_ID_RAZER_BLADE_14),
		.driver_data = RMI_DEVICE_HAS_PHYS_BUTTONS },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_COVER) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_REZEL) },
        /* 添加了下面一行,讓觸摸板使用hid-rmi驅動 */
	{ HID_I2C_DEVICE(I2C_VENDOR_ID_SYNAPTICS, I2C_PRODUCT_ID_SYNAPTICS_SYNA7f28) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5),

上面引用了一個常量,在drivers/hid/hid-ids.h文件里面定義

#define I2C_VENDOR_ID_SYNAPTICS     0x06cb
#define I2C_PRODUCT_ID_SYNAPTICS_SYNA2393   0x7a13
/* 我的觸摸板vid,pid是0x06cb, 0x7f28, 添加下面一行 */
#define I2C_PRODUCT_ID_SYNAPTICS_SYNA7f28   0x7f28
  1. 重新編譯內核, 禁用hid-generic和hid-multitouch驅動,測試鍵盤和觸摸板可以使用, 不過觸摸板單擊不太靈敏

禁用獨立顯卡
我個人非常討厭nvidia的顯卡的,筆記本就不該有nvidia的顯卡,至少1660性能以下的獨立顯卡不應該存在
禁用顯卡的方法:

  1. 可以重新編輯DSDT, 方法類似黑蘋果,然后編譯內核指定加載重新編譯過的DSDT。 這種方式是比較好的,順便還可以修正一些DSDT的問題, 不過比較麻煩,我采用第二種方式了
  2. 用acpi_call來在開機后禁用獨顯
    方法參考:https://wiki.archlinux.org/index.php/Hybrid_graphics
    程序下載地址:https://github.com/mkottman/acpi_call
    這里需要注意,在5.6內核有些變動, 原程序很久沒有更新了,編譯會報錯, 可以參考這個pr修改:https://github.com/mkottman/acpi_call/pull/88

如果是自己重新編譯內核的, 可以參考一些內核配置選項
CPU參考:https://wiki.gentoo.org/wiki/Ryzen
iwlwifi無線網卡參考:https://wiki.gentoo.org/wiki/Iwlwifi
amdgpu參考:https://wiki.gentoo.org/wiki/AMDGPU
聲卡參考:https://wiki.gentoo.org/wiki/ALSA


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM