本来以为很简单的,没想到踩了这么多坑。花了好几天时间才装好。
如果有外置显示器的需求的话,建议不要碰 gnome3 和 wayland
因为这台笔记本的 hdmi 口和 mini dp 口直连独显,如果需要双显卡工作的话必须使用 intel-virtual-output , intel-virtual-output 这个东西貌似不支持 wayland, 总是检测不到 virtual display (wayland 从只差一步到放弃 = =)。
基于 Xorg 的 gnome3 对 intel-virtual-output 支持完好, 不过不知道什么原因, 在连接外置显示器的情况下, 合上盖子或者是只用外置显示器会导致蜜汁卡吨,花大量时间搜寻后无解(起初以为是acpi的问题,不过内核加参数 acpi=off 会导致笔记本开不了机)。经测试,Xfce4 正常, 所以之后选择了 Xfce4。

为了避免以后踩坑,下面记录下步骤。

1 制作 Arch 启动u盘
2 在BIOS下把显卡模式切换为 DISCRETE (BIOS 对于显卡有两个模式,分别是MSHYBRID 和 DISCRETE, MSHYBRID是双显卡切换, DISCRETE是只用独显,MSHYBRID模式不能够启动 Arch U盘 )
3 启动 Arch 安装盘
4 fdisk 分区
5 挂载

# /dev/sdb2 是 / , /dev/sdb1 是boot, /dev/sdb3 是 /home
# 具体按照自己的分区来
mount /dev/sdb2 /mnt
mkdir /mnt/boot
mkdir /mnt/home
mount /dev/sdb1 /mnt/boot
mount /dev/sdb3 /mnt/home

6 更新mirrors

cd /etc/pacman.d 
sed -i "s/^\b/#/g" mirrorlist 
nano mirrorlist 
#将mirrors.ustc.edu.cn和mirrors6.ustc.edu.cn前面的#去掉 
pacman -Syy

7 安装base系统

pacstrap /mnt base base-devel 
#如果你想使用ifconfig之类的工具,请在上面加上net-tools

8 生成fstab

genfstab -U -p /mnt >>/mnt/etc/fstab

9 chroot

arch-chroot /mnt /bin/bash

10 配置locale

cd /etc
nano locale.gen
#将en_US.UTF-8,zh_CN.GBK,zh_CN.GB2312,zh_CN.GB18030,zh_CN.UTF-8前的#去掉 
locale-gen 
echo LANG=zh_CN.UTF-8 >> locale.conf 

11 设置时区

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

12 设置主机名

echo 主机名 >> /etc/hostname

13 用户配置

passwd 
#修改root密码 
useradd -m -g users -G wheel -s /bin/bash 用户名 
passwd 用户名

14 安装GRUB

# 具体硬盘要根据自己的来
pacman -S grub-bios 
grub-install /dev/sdb

开机需要内核开启一些参数(如果不加这些参数之后的bbswitch工作会不正常, 见这里

vim /etc/default/grub
# 配置 GRUB_CMDLINE_LINUX_DEFAULT
GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=! acpi_osi=\"Windows 2009\""

# 之后生成grub.cfg
grub-mkconfig -o /boot/grub/grub.cfg

# 开启dhcpcd
systemctl enable dhcpcd.service

15 退出chroot, 重启
16 安装synaptics驱动

pacman -S xf86-input-synaptics

17 安装 xorg

pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils

18 安装xfce4

pacman -S xfce4 xfce4-goodies
# 如果需要从命令行启动xfce的话只需要进行如下步骤
cp /etc/X11/xinit/xinitrc ~/.xinitrc
# 在.xinitrc后加上 exec startxfce4 即可

19 配置双显卡

pacman -S bumblebee
pacman -S mesa
pacman -S xf86-video-intel
pacman -S nvidia
gpasswd -a 用户名 bumblebee
systemctl enable bumblebeed.service

在 /etc/X11/xorg.conf.d下创建一个文件 20-intel.conf, 内容如下

Section "Device"
        Identifier "Intel Graphics"
        Driver     "intel"
        BusID      "PCI:00:02:0"    # <<<< replace with correct address
EndSection

配置 /etc/bumblebee/xorg.conf.nvidia
内容如下

Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "true"
    Option      "AutoAddGPU" "false"
EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"

#   If the X server does not automatically detect your VGA device,
#   you can manually set it here.
#   To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the data
#   as you see in the commented example.
#   This Setting may be needed in some platforms with more than one
#   nvidia card, which may confuse the proprietary driver (e.g.,
#   trying to take ownership of the wrong device). Also needed on Ubuntu 13.04.
    BusID "PCI:01:00:0"

#   Setting ProbeAllGpus to false prevents the new proprietary driver
#   instance spawned to try to control the integrated graphics card,
#   which is already being managed outside bumblebee.
#   This option doesn't hurt and it is required on platforms running
#   more than one nvidia graphics card with the proprietary driver.
#   (E.g. Macbook Pro pre-2010 with nVidia 9400M + 9600M GT).
#   If this option is not set, the new Xorg may blacken the screen and
#   render it unusable (unless you have some way to run killall Xorg).
    Option "ProbeAllGpus" "false"

    Option "AllowEmptyInitialConfiguration"
    Option "NoLogo" "true"
    Option "UseEDID" "true"
    # Option "UseDisplayDevice" "none"
EndSection

具体有哪些地方要改呢?
对于一般用户,去掉BusID的注释即可。
如果有外界屏幕需求的话, 需要把 UseEDIDAutoAddDevices 设置为 true, 然后加上 Option "AllowEmptyInitialConfiguration"
(这三个操作必不可少,缺了AllowEmptyInitialConfiguration会导致 独显初始化失败)
更改之后不能进入X环境(因为系统会使用I卡,但是目前只用独显状态I卡识别不了,导致no screen found)
20 安装 lightdm(如果命令行启动可以不做)

pacman -S lightdm
pacman -S  lightdm-gtk-greeter
systemctl enable lightdm.service

21 重启,在BIOS中把显卡选项切换为 MSHYBRID(不切换进不了系统)
22 输入帐号密码之后可以登录
23 安装 libxss(intel-virtual-output 依赖这个)

pacman -S libxss

24 激活外接屏幕

# 先激活下 独显, 如果没有此操作,外屏不能被激活 = = ,如果失败的话可能因为显卡未初始化完全,等几秒再尝试下
optirun glxspheres64
# 显示成功之后执行下面的命令,外接屏被正确识别
intel-virtual-output

25 安装常用软件(从AUI里面拷贝出来了一些常用的软件,具体根据自己需要装)

pacman -S bc rsync mlocate bash-completion pkgstats arch-wiki-lite
pacman -S zip unzip unrar p7zip lzop cpio
pacman -S avahi nss-mdns
pacman -S alsa-utils alsa-plugins
pacman -S pulseaudio pulseaudio-alsa
pacman -S ntfs-3g dosfstools exfat-utils f2fs-tools fuse fuse-exfat autofs mtpfs
pacman -S --asdeps --needed cairo fontconfig freetype2
pacman -S networkmanager dnsmasq network-manager-applet nm-connection-editor
pacman -S networkmanager-openconnect networkmanager-openvpn networkmanager-pptp networkmanager-vpnc
system_ctl enable NetworkManager.service

# 时间校准
pacman -S ntpd
systemctl enable ntpd

其它输入法之类的就不说了。
最好加一下archlinuxcn的源,里面可以直接安装sublime, vscode, wps之类的软件,非常方便。

参考:

https://my.oschina.net/codeaxe/blog/127533
https://bbs.archlinux.org/viewtopic.php?id=169742
https://github.com/Bumblebee-Project/Bumblebee/issues/764#issuecomment-234494238
https://wiki.archlinux.org/index.php/Clevo_P650RS
https://wiki.archlinux.org/index.php/Kernel_parameters
https://wiki.archlinux.org/index.php/Bumblebee