Difference between revisions of "FreeBSD on X1 Carbon (Gen 6)"

From Run Your Own
Jump to: navigation, search
(Optional)
(Thinkpad drivers)
Line 72: Line 72:
 
</pre>
 
</pre>
 
Note: These days all the useful options are enabled by default so no need to add too many extra parameters.
 
Note: These days all the useful options are enabled by default so no need to add too many extra parameters.
 +
 +
=== Headphones ===
 +
To make the headphone plug work, add the following in /boot/device.hints:
 +
<pre>
 +
# Enable headphones
 +
hint.hdaa.0.nid33.config="as=1 seq=15"
 +
</pre>
  
 
=== Thinkpad drivers ===
 
=== Thinkpad drivers ===
 
Used for LCD control, suspend, etc...
 
Used for LCD control, suspend, etc...
 
* in /boot/loader.conf
 
* in /boot/loader.conf
# Thinkpad stuff
+
<pre>
acpi_video_load="YES"
+
# Thinkpad stuff
acpi_ibm_load="YES"
+
acpi_video_load="YES"
 +
acpi_ibm_load="YES"
 +
</pre>
  
 
== Sleep ==
 
== Sleep ==

Revision as of 23:18, 4 December 2018

Base Installation

  • grab ISO
  • encryption info goes here

Tracking FreeBSD-STABLE 12

/etc/src/conf - source build options

WITHOUT_ASSERT_DEBUG=true # compile without the assert(3) checks.
WITHOUT_AUDIT=true # Set to not build audit support into system programs.
WITHOUT_BSNMP=true # Set to not build or install bsnmpd(1)
WITHOUT_CALENDAR=true # Set to not build calendar(1)
#WITHOUT_LIB32=true
WITHOUT_TESTS=true # Set to not build nor install the FreeBSD Test Suite
WITHOUT_INET6=true
#WITHOUT_CROSS_COMPILER=true
#WITHOUT_KERBEROS=true # some pkgs do not like to have it without
WITHOUT_MAIL=true
WITHOUT_QUOTAS=true
WITHOUT_DEBUG_FILES=true
WITH_SVN=true # Set to install svnlite(1) as svn(1).

/etc/make.conf - system build information

CPUTYPE?=skylake           # no kabylake yet?

FreeBSD source and installation

rm -rf /usr/src/*
svnlite checkout https://svn0.eu.FreeBSD.org/base/stable/12 /usr/src

Hardware Specific config

BIOS Updates

  • Get latest BIOS update from Lenovo as bootable CD ISO file.
  • Convert the ISO to something that you can boot from USB
sudo portmaster -i sysutils/geteltorito
geteltorito -o usb-bios-update.img n23ur13w.is
  • Write the image to your USB device
sudo dd if=usb-bios-update.img of=/dev/daX bs=10M
  • plug USB in X1, (re)boot
  • Press enter, then F12 to choose temporary startup device
  • Choose your USB device (USB HDD)
  • Follow instructions from BIOS update utility

WiFi

  • in /etc/rc.conf
# Wireless
wlans_iwm0="wlan0"
background_dhclient="YES"
ifconfig_wlan0="WPA DHCP country NL"

GPU

DRM Next Kernel Module

  • Install the port
portmaster -i graphics/drm-next-kmod
  • in /etc/rc.conf
# drm-next-kmod port
kld_list="/boot/modules/i915kms.ko"
  • add your main user to video group
pw usermod ${USERNAME} -G video
  • reboot
shutdown -r now

Xorg

  • /etc/X11/xorg.conf
Section "Device"
  Identifier  "Intel Graphics"
  Driver      "intel"
  Option      "TearFree" "true"
EndSection

Note: These days all the useful options are enabled by default so no need to add too many extra parameters.

Headphones

To make the headphone plug work, add the following in /boot/device.hints:

# Enable headphones
hint.hdaa.0.nid33.config="as=1 seq=15"

Thinkpad drivers

Used for LCD control, suspend, etc...

  • in /boot/loader.conf
# Thinkpad stuff
acpi_video_load="YES"
acpi_ibm_load="YES"

Sleep

  • You need at least BIOS 1.30 (see BIOS section to know how to update BIOS)
  • In BIOS change sleep state mode to Linux
  • when you want to suspend to RAM:
sudo zzz

Note: I see the disk not super happy when resuming, with system hanging for a couple secs and lots of:

nvme0: aborting outstanding i/o
nvme0: WRITE sqid:7 cid:67 nsid:1 lba:9792488 len:64
nvme0: ABORTED - BY REQUEST (00/07) sqid:7 cid:67 cdw0:0

Not sure if this should be a concern... There is an issue open about that https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230722

Another Note: See optional config bits below for sleeping when closing lid.

Optional

  • xorg.conf
# All non-default X11 font directories must specified manually because
# the X server does not search directories recursively...
# Also, check /var/log/Xorg.0.log for missing fonts.dir files
# Most likely some directories will miss theirs, in which case you need
# to cd there and run mkfontdir...
Section "Files"
  FontPath "/usr/local/share/fonts/Caladea/"
  FontPath "/usr/local/share/fonts/Carlito/"
  FontPath "/usr/local/share/fonts/GentiumBasic/"
  FontPath "/usr/local/share/fonts/Liberation/"
  FontPath "/usr/local/share/fonts/LinLibertineG/"
  FontPath "/usr/local/share/fonts/TerminusTTF/"
  FontPath "/usr/local/share/fonts/Type1/"
  FontPath "/usr/local/share/fonts/cyrillic/"
  FontPath "/usr/local/share/fonts/dejavu/"
  FontPath "/usr/local/share/fonts/encodings/"
  FontPath "/usr/local/share/fonts/terminus-font/"
  FontPath "/usr/local/share/fonts/twemoji-color-font-ttf/"
  FontPath "/usr/local/share/fonts/util/"
EndSection
  • Don't want some options, /etc/make.conf
OPTIONS_SET+=SNDIO      # BSD specific sound system
 
OPTIONS_UNSET+=DOCS     # I only install specific ones
OPTIONS_UNSET+=EXAMPLES # Same
OPTIONS_UNSET+=IPV6     # IPV6 free laptop already saved the day twice
  • Keyboard rate
xset rate r rate 250 34
kbdcontrol -r fast
  • in /etc/sysctl.conf
# No BEEPS!
hw.syscons.bell=0
kern.vt.enable_bell=0

# Suspend to RAM when closing lid (for laptop with a working S3)
hw.acpi.lid_switch_state=S3
  • If you don't like the touchpad and only use the emblematic Thinkpad pointing stick, you can disable the touchpad entirely in the BIOS (hurray!)
  • in ~/.login.conf
me:\
        :charset=UTF-8:\
        :lang=en_GB.UTF-8:\
        :setenv=LC_COLLATE=C:
  • in /etc/rc.conf
dbus_enable="YES"       # Enable DBUS
dumpdev="NO"            # Disable crash dumps

References