Hey guys, now I’ve spent quite some time with my prototype trying to run Linux on it, so it’s time to let you all know how it went.
Some additional information I found while testing:
- Somehow the battery cycles cannot be read, neither by Linux nor Windows. @Team is it supposed to be like this?
- Battery life is really great - if one uses low screen brightness. I have mine indoors at max. 20% and battery lasts about 10-12hrs. Good job Eve!
- Boot time approx. 4secs.
EDIT: v1.8 used for this test according to Peter.
SUMMARY
What’s working
- WLAN
- BT
- Audio
- Keyboard (both keys and touchpad)
- Touchscreen
- Pen
What’s NOT working
- Camera
- Fingerprint-scanner
What was not tested
~ TB3-port (as I have no adapter here with me)
~ All sensors except FP-reader
GUIDE
(0) We need to prepare some tools. We need a bootable
- USB-Stick with Arch-iso (LINK broken atm).
- USB-Stick with GParted (GParted Download).
Please find out yourself how to make a bootable USB-Stick on your OS. While you wait for the installation medias to finish grab yourself some Whisky and have fun
(1) Everything starts in Windows. First we resize the SSD to make room fo our Arch-install. Therefore we open Disk Management (use Search function), select the Windows-partition and shrink it depending on our needs. We should e resented with some unallocated space.
(2) Next we want to boot into our USB-sticks, so we need to adjust the UEFI-settings.
If you have catlike reflexes you can reboot and press ESC or DELETE on the keyboard. If you are like me, just open the Windows-settings, go to Settings > Update > Recovery > Advanced Startup - Restart now. Next select Troubleshoot > Advanced Options > UEFI Firmware Settings.
Once we are in the UEFI-settings, go to the Advanced tab and select CSM Configuration. Set CSM Support to Enabled.
Optionally: In the Boot tab, set Setup Prompt Timeout to 5 or 10 if you want to access the UEFI more often and need some time to press ESC / DELETE and change Quiet-Boot to Disabled.
In the Save & Exit tab, go to Boot Override and select your USB-Stick (needs to be plugged into the V ofc). It will now reboot into the selected Stick (if there are 2 options take the one which says HDD).
(3) Start GParted in graphics-mode and create two new partitions from the free space. One will be the root partition (make it large enough), the other becomes the home partition. Take a note somewhere of the partitions you created and of the EFI partition (starts with nvme0n1p; in my case EFI is nvme0n1p1, root is nvme0n1p5, home is nvme0n1p6).
Click Apply to make the changes permanent.
Reboot into the UEFI-settings.
(4) From UEFI-settings boot into the Arch-Stick. After it successfully booted you will face a command prompt. Since the V’s display is HiRes the font should be unreadable. Change it by typing
setfont latarcyrheb-sun32
Check how Arch sees our partitions by typing
fdisk -l
You should see the names you already noted down earlier. Now we make the needed directories and mount the partitions to them.
mkdir /mnt
mkdir /mnt/home
mount /dev/nvme01np5 /mnt
mount /dev/nvme0n1p6 /mnt/home
Enable internet on our live-session by either plugging in some ethernet-cable or simply connect to your WLAN, using
wifi-menu
(follow the instructions you see).
Before we start installing we need to make sure we have some good mirror for pacman to use, so
nano /etc/pacman.d/mirrorlist
and uncomment the mirror which should be near to you.
(5) Now it’s time to install - run
pacstrap -i /mnt base
(6) Generate fstab
genfstab -U -p /mnt >> /mnt/etc/fstab
(7) Now we can enter the newly installed system by chrooting:
arch-chroot /mnt
(8) Set system-locale
nano /etc/locale.gen
and uncomment the locale you want to use. Create the corresponding cofig-file and set it also as system-variable
echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8
Generate the specified locale with
locale-gen
(9) Set localtime
Find the zone you want withto our n
ls /usr/share/zoneinfo
and look into the sub-zones
ls /usr/share/zoneinfo/Europe
(eg)
Now we link it to
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime
and set the hardwareclock to
hwclock --systohc --utc
(10) Networking
Currently we are running over the live-session’s network, so we want to install the needed tools to our permanent system:
pacmane -S wireless_tools wpa_supplicant wpa_actiond dialog networkmanager
If you have problems logging into your WLAN later on: wifi-menu installs a profile in /etc/netctl - just remove it and reconnect, everything should work fine then.
(11) Multilib
As we are on a 64-bit machine but might need some 32-bit software (virtualization using wine for example) we have to make pacman search also the multilib-repo.
nano /etc/pacman.conf
Scroll down untill it says [community] and uncomment both lines. Refresh pacman with
pacman -Sy
(12) Add user
First we set the root password by
passwd
and then create a new user, assign him to some groups and set his password, too:
useradd -m -g users -G wheel,storage,power -s /bin/bash Tirigon
passwd Tirigon
If you want to check which grous are available, just look at
cat /etc/group
and alter the command above to your liking.
(13) Setup sudo
As the new user has to acquire root-privileges install sudo:
pacman -S sudo
Also
EDITOR=nano visudo
and uncomment the line
%wheel ALL=(ALL) ALL
(14) Get packer
We now have configured pacman as we need it, but it cannot access the AUR; therefore we need to use packer, a wrapper for both, the traditional pacman and also the AUR. We start with it’s dependencies
pacman -S base-devel fakeroot jshon
Now we look for a nice and quiet place on our system, for example /tmp (everything in here get’s deleted after a reboot, so a perfect place for storing temporary files):
cd /tmp
mkdir packer && cd packer
wget https://aur.archlinux.org/packages/pa/packer/PKGBUILD
makepkg
pacman -U packer-*.pkg.tar.xz
(15) Bootloader
We are nearly done! However we want to be able to boot into our new Linux OS, so we install a great bootloader called rEFInd:
pacman -S refind-efi
Before we can actually install it we have to mount the boot-partition; you remember, one of those 3 partitions we noted down earlier. On the V it should be nvme0n1p1, so let’s mount it
mount /dev/nvme0n1p1 /boot/efi
To check if it has worked we can
ls /boot/efi
where should be another directory called EFI. Now
refind-install
and it should do everything on it’s own. We have to change some things so it actually works on the first attempt (don’t ask how many I needed…)
cd /boot/efi/efi/refind
nano refind.conf
Search for the keywoard enable_touch and uncomment it (This setting does nothing atm, however Eve promised to implement touch for UEFI later down the line. This way it will be possible to control rEFInd with the touchscreen.)
Next we run
mkrlconf
and check if it worked correctly with
cd /boot && ls
It should show us a file called refind_linux.conf Open it with nano
nano refind_linux.conf
There might be 3 lines of text, the first two containing “archiso …” Delete those 2 lines, so only the last one stays there. Modify it so it reads
“Boot with standard options” “ro root=/dev/nvme0n1p5 rw add_efi_memmap”
Make sure it has the correct partition!
In case rEFInd gets updated we create a update-script.
cd /etc/pacman.d && mkdir hooks
nano /etc/pacman.d/hooks/refind.hook
and insert the text
[Trigger]
Operation=Upgrade
Type=Package
Target=refind-efi
[Action]
When=PostTransaction
Exec=/usr/bin/refind-install
(16) Repair initramfs
I have no idea why this is needed, but well… Let’s just do it. (This is not optional.)
Look at what kernel-modules are loaded
lsmod | grep "crc32"
which should show 2 modules (crc32c_intel and crc32_pclmul).
Now we edit the mkinitcpio config file and rebuild the initramfs:
nano /etc/mkinitcpio.conf
add “crc32c_intel crc32_pclmul” in the MODULES section. Rebuild
mkinitcpio -p linux
Gratz - you are done! The one way or the other…
It’s time for a reboot and see if we can get into our freshly installed OS.
reboot
CONFIGURATION
I really hope eveyrthing worked so far for you and it didn’t blow up your V. From now on you’re completely free to install whatever you want your Arch system to run with, but let me show you my configuration; it is by no means perfect yet, but already works quite well.
(0) Font again
If not already done change the font again to latarcyrheb-sun32.
(1) X11
We want some nice GUI, not just boring terminal.
packer -S alsa-utils mesa xorg-server xorg-server-xwayland xorg-xinit xorg-server-utils xorg-twm xorg-xclock xterm xf86-video-intel vulkan-intel xf86-input-wacom
Short explanation:
~ alsa is for audio, mesa for 3D support
~ xorg-server-xwayland is a wrapper to run X-programs under Wayland. Without it Wayland session will fail (it’s a bug as far as I know.) Right now I would still recommend X11, Wayland has still a few bugs that make it unusable as a daily diver.
~ xf86-video-intel needed, vulkan-intel seems to be optional.
~ xf86-input-wacom for our V-pen (not sure if it’s the right one, but works)
Enable audio through alsa with
alsamixer
and make sure the main channel (left bar) is open. You can also adjust the volume intensity. Test your work with
speaker-test -c 2
Test the X-server with
startx
You should see some ugly GUI now, exit it by
exit
Some people like different desktop-environments, but I have found GNOME to be really great, especially with the touchscreen.
packer -S ttf-dejavu gnome
packer -S gnome-extra
Here you can choose what programs you want to install, also have a look at the internet so see some description of each.
TIP: If you want i highly customizable login-manager, pick sddm; the only drawback: it has no way to display a virtual keyboard yet. If this one is a must for you, have a look at lightdm. Whatever you pick, enable it with
systemctl enable sddm
systemctl start sddm
If I remember correctly we are done now and can reboot so see if everyrthing works as planned.
(2) X11-drivers
The standard driver is libinput, and although the synaptics driver has more options it would be clever to use libinput; synaptics is deprecated.
The /usr/share/X11/xorg.conf.d/40-libinput.conf should look like this:
Section "InputClass"
Identifier "libinput pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "Tapping" "1"
EndSection
#Section "InputClass"
# Identifier "libinput tablet catchall"
# MatchIsTablet "on"
# MatchDevicePath "/dev/input/event*"
# Driver "libinput"
#EndSection
The /usr/share/X11/xorg.conf.d/70-wacom.conf:
Section "InputClass"
Identifier "Wacom N-Trig class"
MatchProduct "HID 1b96:0001|N-Trig Pen|N-Trig DuoSense|04F3:2513 Pen"
MatchDevicePath "/dev/input/event*"
Driver "wacom"
Option "Button2" "3"
EndSection
Another config file (they are great, aren’t they?): /etc/X11/xorg.conf.d/50-touchpad.conf
Section "InputClass"
Identifier "V-Touchpad"
MatchIsTouchpad "on"
MatchDriver "libinput"
Option "Tapping" "on"
Option "TappingDragLock" "on"
EndSection
Strangely some of the libinput-settings cannot be set through config file, so go to the GNOME Settings and enable Natural Scrolling, Tap to Click and Two-finger-scrolling. (Also have a look at the Wacom-Tablet, where our pen should be seen.)
Every input-method should work now:
- Keyboard (connected via USB, as seen in dmesg)
- Touchpad running on lbinput
- Touchscreen running on libinput
(1) Swipe from left edge to open All Applications
(2) 3 finger pinch to see Dash (running applications on current workspace)
(3) 4 finger swipe up / down to switch workspace.
(4) 3 finger hold, 1 finger tap to cycle through applications on current workspace (like alt-tab)
(3) Usefull applications
If you plan to use the V as a tablet you cannot get past onboard, such a great onscreen keyboard!
pacman -S onboard
and play with it’s settings, it’s truly amazing. And yes, it has multitouch, so you can hold modifiers and normal keys simultaneously.
Onboard integration is a GNOME Shell extension which tries to replace the default gok with onboard. Works 90% of the time.
TODO
- Add a video of Arch in Action. (TM Soon)
- Use some of those autorotate scripts to enable rotation.
- Make onboard work with sddm.
- Make cameras work.
- Make fp-scanner work.
- Test the other sensors for functionality.
##LOGS
lsusb -v
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 9 Hub
bDeviceSubClass 0
bDeviceProtocol 3
bMaxPacketSize0 9
idVendor 0x1d6b Linux Foundation
idProduct 0x0003 3.0 root hub
bcdDevice 4.10
iManufacturer 3 Linux 4.10.8-1-ARCH xhci-hcd
iProduct 2 xHCI Host Controller
iSerial 1 0000:00:14.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 31
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
bMaxBurst 0
Hub Descriptor:
bLength 12
bDescriptorType 42
nNbrPorts 6
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
bPwrOn2PwrGood 10 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
bHubDecLat 0.0 micro seconds
wHubDelay 0 nano seconds
DeviceRemovable 0x00
Hub Port Status:
Port 1: 0000.02a0 5Gbps power Rx.Detect
Port 2: 0000.02a0 5Gbps power Rx.Detect
Port 3: 0000.02a0 5Gbps power Rx.Detect
Port 4: 0000.02a0 5Gbps power Rx.Detect
Port 5: 0000.02a0 5Gbps power Rx.Detect
Port 6: 0000.02a0 5Gbps power Rx.Detect
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 15
bNumDeviceCaps 1
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x02
Latency Tolerance Messages (LTM) Supported
wSpeedsSupported 0x0008
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 3
Lowest fully-functional device speed is SuperSpeed (5Gbps)
bU1DevExitLat 10 micro seconds
bU2DevExitLat 512 micro seconds
Device Status: 0x0001
Self Powered
Bus 001 Device 003: ID 0603:00f1 Novatek Microelectronics Corp. Keyboard (Labtec Ultra Flat Keyboard)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0603 Novatek Microelectronics Corp.
idProduct 0x00f1 Keyboard (Labtec Ultra Flat Keyboard)
bcdDevice 1.02
iManufacturer 1 SIPODEV
iProduct 2 USB Composite Device
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 66
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 65
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 475
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Device Status: 0x0000
(Bus Powered)
Bus 001 Device 002: ID 8087:0a2b Intel Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x8087 Intel Corp.
idProduct 0x0a2b
bcdDevice 0.10
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 177
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 4
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Device Status: 0x0001
Self Powered
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x1d6b Linux Foundation
idProduct 0x0002 2.0 root hub
bcdDevice 4.10
iManufacturer 3 Linux 4.10.8-1-ARCH xhci-hcd
iProduct 2 xHCI Host Controller
iSerial 1 0000:00:14.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
Hub Descriptor:
bLength 11
bDescriptorType 41
nNbrPorts 12
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
TT think time 8 FS bits
bPwrOn2PwrGood 10 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x18 0x00
PortPwrCtrlMask 0xff 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power
Port 3: 0000.0100 power
Port 4: 0000.0100 power
Port 5: 0000.0100 power
Port 6: 0000.0100 power
Port 7: 0000.0103 power enable connect
Port 8: 0000.0100 power
Port 9: 0000.0103 power enable connect
Port 10: 0000.0100 power
Port 11: 0000.0100 power
Port 12: 0000.0100 power
Device Status: 0x0001
Self Powered
lspci -v
00:00.0 Host bridge: Intel Corporation Device 590c (rev 02)
Subsystem: Intel Corporation Device 2015
Flags: bus master, fast devsel, latency 0
Capabilities: [e0] Vendor Specific Information: Len=10 <?>
00:02.0 VGA compatible controller: Intel Corporation Device 591e (rev 02) (prog-if 00 [VGA controller])
Subsystem: Intel Corporation Device 2212
Flags: bus master, fast devsel, latency 0, IRQ 284
Memory at db000000 (64-bit, non-prefetchable) [size=16M]
Memory at 90000000 (64-bit, prefetchable) [size=256M]
I/O ports at f000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [40] Vendor Specific Information: Len=0c <?>
Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [d0] Power Management version 2
Capabilities: [100] Process Address Space ID (PASID)
Capabilities: [200] Address Translation Service (ATS)
Capabilities: [300] Page Request Interface (PRI)
Kernel driver in use: i915
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 02)
Subsystem: Intel Corporation Device 2015
Flags: fast devsel, IRQ 16
Memory at dd830000 (64-bit, non-prefetchable) [size=32K]
Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
Capabilities: [d0] Power Management version 3
Capabilities: [e0] Vendor Specific Information: Len=0c <?>
Kernel driver in use: proc_thermal
00:05.0 Multimedia controller: Intel Corporation Skylake Imaging Unit (rev 01)
Subsystem: Intel Corporation Device 2015
Flags: fast devsel, IRQ 11
Memory at dc000000 (64-bit, non-prefetchable) [disabled] [size=4M]
Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [a0] PCI Advanced Features
Capabilities: [d0] Power Management version 3
00:08.0 System peripheral: Intel Corporation Skylake Gaussian Mixture Model
Subsystem: Intel Corporation Device 2015
Flags: fast devsel, IRQ 11
Memory at dd84b000 (64-bit, non-prefetchable) [disabled] [size=4K]
Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
Capabilities: [dc] Power Management version 2
Capabilities: [f0] PCI Advanced Features
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21) (prog-if 30 [XHCI])
Subsystem: Intel Corporation Device 7270
Flags: bus master, medium devsel, latency 0, IRQ 278
Memory at dd820000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [70] Power Management version 2
Capabilities: [80] MSI: Enable+ Count=1/8 Maskable- 64bit+
Kernel driver in use: xhci_hcd
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
Subsystem: Intel Corporation Device 7270
Flags: fast devsel, IRQ 18
Memory at dd84a000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [50] Power Management version 3
Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
Kernel driver in use: intel_pch_thermal
00:14.3 Multimedia controller: Intel Corporation Device 9d32 (rev 01)
Subsystem: Intel Corporation Device 7270
Flags: fast devsel, IRQ 11
Memory at dd810000 (64-bit, non-prefetchable) [disabled] [size=64K]
Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [d0] Power Management version 3
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at dd849000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Capabilities: [90] Vendor Specific Information: Len=14 <?>
Kernel driver in use: intel-lpss
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at dd848000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Capabilities: [90] Vendor Specific Information: Len=14 <?>
Kernel driver in use: intel-lpss
00:15.2 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #2 (rev 21)
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 0, IRQ 18
Memory at dd847000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Capabilities: [90] Vendor Specific Information: Len=14 <?>
Kernel driver in use: intel-lpss
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
Subsystem: Intel Corporation Device 1999
Flags: bus master, fast devsel, latency 0, IRQ 277
Memory at dd846000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [50] Power Management version 3
Capabilities: [8c] MSI: Enable+ Count=1/1 Maskable- 64bit+
Kernel driver in use: mei_me
00:1c.0 PCI bridge: Intel Corporation Device 9d10 (rev f1) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 274
Bus: primary=00, secondary=01, subordinate=39, sec-latency=0
I/O behind bridge: 00002000-00002fff [size=4K]
Memory behind bridge: c4000000-da0fffff [size=353M]
Prefetchable memory behind bridge: 00000000a0000000-00000000c1ffffff [size=544M]
Capabilities: [40] Express Root Port (Slot+), MSI 00
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [90] Subsystem: Intel Corporation Device 7270
Capabilities: [a0] Power Management version 3
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Access Control Services
Capabilities: [220] #19
Kernel driver in use: pcieport
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 275
Bus: primary=00, secondary=3a, subordinate=3a, sec-latency=0
I/O behind bridge: 0000e000-0000efff [size=4K]
Memory behind bridge: dce00000-dd7fffff [size=10M]
Prefetchable memory behind bridge: 00000000c2b00000-00000000c34fffff [size=10M]
Capabilities: [40] Express Root Port (Slot+), MSI 00
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [90] Subsystem: Intel Corporation Device 7270
Capabilities: [a0] Power Management version 3
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Access Control Services
Capabilities: [220] #19
Kernel driver in use: pcieport
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 276
Bus: primary=00, secondary=3b, subordinate=3b, sec-latency=0
I/O behind bridge: 0000d000-0000dfff [size=4K]
Memory behind bridge: dc400000-dcdfffff [size=10M]
Prefetchable memory behind bridge: 00000000c2100000-00000000c2afffff [size=10M]
Capabilities: [40] Express Root Port (Slot+), MSI 00
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [90] Subsystem: Intel Corporation Device 7270
Capabilities: [a0] Power Management version 3
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Access Control Services
Capabilities: [200] L1 PM Substates
Capabilities: [220] #19
Kernel driver in use: pcieport
00:1e.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO UART Controller #0 (rev 21)
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 0, IRQ 20
Memory at dd845000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Capabilities: [90] Vendor Specific Information: Len=14 <?>
Kernel driver in use: intel-lpss
00:1e.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO UART Controller #1 (rev 21)
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 0, IRQ 21
Memory at dd844000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Capabilities: [90] Vendor Specific Information: Len=14 <?>
Kernel driver in use: intel-lpss
00:1e.3 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO SPI Controller #1 (rev 21)
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 0, IRQ 23
Memory at dd843000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Capabilities: [90] Vendor Specific Information: Len=14 <?>
Kernel driver in use: intel-lpss
00:1e.4 SD Host controller: Intel Corporation Device 9d2b (rev 21) (prog-if 01)
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 0, IRQ 21
Memory at dd842000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Capabilities: [90] Vendor Specific Information: Len=14 <?>
Kernel driver in use: sdhci-pci
00:1e.6 SD Host controller: Intel Corporation Sunrise Point-LP Secure Digital IO Controller (rev 21) (prog-if 01)
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 0, IRQ 23
Memory at dd841000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Capabilities: [90] Vendor Specific Information: Len=14 <?>
Kernel driver in use: sdhci-pci
00:1f.0 ISA bridge: Intel Corporation Device 9d56 (rev 21)
Subsystem: Intel Corporation Device 7270
Flags: bus master, medium devsel, latency 0
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
Subsystem: Intel Corporation Device 7270
Flags: fast devsel
Memory at dd83c000 (32-bit, non-prefetchable) [size=16K]
Kernel driver in use: intel_pmc_core
00:1f.3 Audio device: Intel Corporation Device 9d71 (rev 21)
Subsystem: Intel Corporation Device 7270
Flags: bus master, fast devsel, latency 32, IRQ 280
Memory at dd838000 (64-bit, non-prefetchable) [size=16K]
Memory at dd800000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [50] Power Management version 3
Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
Kernel driver in use: snd_hda_intel
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
Subsystem: Intel Corporation Device 7270
Flags: medium devsel, IRQ 16
Memory at dd840000 (64-bit, non-prefetchable) [size=256]
I/O ports at f040 [size=32]
Kernel driver in use: i801_smbus
3a:00.0 Non-Volatile memory controller: Intel Corporation Device f1a5 (rev 03) (prog-if 02 [NVM Express])
Subsystem: Intel Corporation Device 390a
Physical Slot: 1-1
Flags: bus master, fast devsel, latency 0, IRQ 16, NUMA node 0
Memory at dce00000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [b0] MSI-X: Enable+ Count=16 Masked-
Capabilities: [100] Advanced Error Reporting
Capabilities: [158] #19
Capabilities: [178] Latency Tolerance Reporting
Capabilities: [180] L1 PM Substates
Kernel driver in use: nvme
3b:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
Subsystem: Intel Corporation Device 9010
Physical Slot: 1-2
Flags: bus master, fast devsel, latency 0, IRQ 283
Memory at dc400000 (64-bit, non-prefetchable) [size=8K]
Capabilities: [c8] Power Management version 3
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [40] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Device Serial Number f8-63-3f-ff-ff-02-64-3a
Capabilities: [14c] Latency Tolerance Reporting
Capabilities: [154] L1 PM Substates
Kernel driver in use: iwlwifi
lsmod
Module Size Used by
uvcvideo 86016 0
videobuf2_vmalloc 16384 1 uvcvideo
videobuf2_memops 16384 1 videobuf2_vmalloc
videobuf2_v4l2 20480 1 uvcvideo
videobuf2_core 36864 2 uvcvideo,videobuf2_v4l2
videodev 151552 3 uvcvideo,videobuf2_core,videobuf2_v4l2
media 32768 2 uvcvideo,videodev
ctr 16384 6
ccm 20480 3
fuse 98304 3
hid_generic 16384 0
bnep 20480 2
usbhid 49152 0
btusb 40960 0
btrtl 16384 1 btusb
joydev 20480 0
mousedev 20480 0
hid_multitouch 20480 0
snd_hda_codec_hdmi 45056 1
snd_hda_codec_realtek 73728 1
snd_hda_codec_generic 69632 1 snd_hda_codec_realtek
arc4 16384 2
intel_rapl 20480 0
x86_pkg_temp_thermal 16384 0
intel_powerclamp 16384 0
coretemp 16384 0
kvm_intel 192512 0
iTCO_wdt 16384 0
iTCO_vendor_support 16384 1 iTCO_wdt
spi_pxa2xx_platform 24576 0
kvm 528384 1 kvm_intel
snd_soc_skl 61440 0
snd_soc_skl_ipc 40960 1 snd_soc_skl
snd_soc_sst_ipc 16384 1 snd_soc_skl_ipc
snd_soc_sst_dsp 20480 1 snd_soc_skl_ipc
8250_dw 16384 0
snd_hda_ext_core 20480 1 snd_soc_skl
snd_soc_sst_match 16384 1 snd_soc_skl
i2c_designware_platform 16384 0
i2c_designware_core 20480 1 i2c_designware_platform
snd_soc_core 196608 1 snd_soc_skl
irqbypass 16384 1 kvm
snd_compress 20480 1 snd_soc_core
snd_pcm_dmaengine 16384 1 snd_soc_core
ac97_bus 16384 1 snd_soc_core
crct10dif_pclmul 16384 0
ghash_clmulni_intel 16384 0
pcbc 16384 0
snd_hda_intel 32768 3
iwlmvm 286720 0
aesni_intel 167936 6
mac80211 692224 1 iwlmvm
aes_x86_64 20480 1 aesni_intel
crypto_simd 16384 1 aesni_intel
glue_helper 16384 1 aesni_intel
snd_hda_codec 106496 4 snd_hda_intel,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
evdev 24576 18
input_leds 16384 0
mac_hid 16384 0
cryptd 20480 3 crypto_simd,ghash_clmulni_intel,aesni_intel
snd_hda_core 65536 7 snd_hda_intel,snd_hda_codec,snd_hda_ext_core,snd_soc_skl,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hwdep 16384 1 snd_hda_codec
snd_pcm 90112 8 snd_hda_intel,snd_hda_codec,snd_pcm_dmaengine,snd_hda_ext_core,snd_hda_core,snd_soc_skl,snd_hda_codec_hdmi,snd_soc_core
snd_timer 28672 1 snd_pcm
pcspkr 16384 0
snd 65536 16 snd_compress,snd_hda_intel,snd_hwdep,snd_hda_codec,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek,snd_soc_core,snd_pcm
soundcore 16384 1 snd
i2c_i801 24576 0
iwlwifi 192512 1 iwlmvm
i915 1396736 13
cfg80211 524288 3 iwlmvm,iwlwifi,mac80211
hci_uart 86016 0
btbcm 16384 2 hci_uart,btusb
drm_kms_helper 126976 1 i915
btqca 16384 1 hci_uart
drm 303104 5 i915,drm_kms_helper
btintel 16384 2 hci_uart,btusb
mei_me 36864 0
intel_gtt 20480 1 i915
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
idma64 20480 2
bluetooth 499712 28 btrtl,hci_uart,btintel,btqca,bnep,btbcm,btusb
fb_sys_fops 16384 1 drm_kms_helper
mei 86016 1 mei_me
shpchp 32768 0
i2c_algo_bit 16384 1 i915
processor_thermal_device 16384 0
intel_lpss_pci 16384 0
intel_soc_dts_iosf 16384 1 processor_thermal_device
intel_pch_thermal 16384 0
thermal 20480 0
rfkill_gpio 16384 0
wmi 16384 0
rfkill 20480 8 rfkill_gpio,bluetooth,cfg80211
i2c_hid 20480 0
kxcjk_1013 20480 0
industrialio_triggered_buffer 16384 1 kxcjk_1013
hid 110592 4 i2c_hid,hid_generic,usbhid,hid_multitouch
battery 20480 0
fan 16384 0
intel_vbtn 16384 0
int3403_thermal 16384 0
int340x_thermal_zone 16384 2 int3403_thermal,processor_thermal_device
ac 16384 0
int3406_thermal 16384 0
intel_lpss_acpi 16384 0
video 36864 2 int3406_thermal,i915
intel_lpss 16384 2 intel_lpss_pci,intel_lpss_acpi
button 16384 1 i915
tpm_crb 16384 0
acpi_pad 16384 0
intel_hid 16384 0
int3400_thermal 16384 0
acpi_thermal_rel 16384 1 int3400_thermal
sparse_keymap 16384 2 intel_hid,intel_vbtn
dptf_power 16384 0
acpi_als 16384 0
kfifo_buf 16384 2 acpi_als,industrialio_triggered_buffer
industrialio 57344 4 kxcjk_1013,acpi_als,industrialio_triggered_buffer,kfifo_buf
fjes 65536 0
tpm_tis 16384 0
tpm_tis_core 20480 1 tpm_tis
tpm 36864 3 tpm_tis,tpm_crb,tpm_tis_core
sch_fq_codel 20480 5
sg 36864 0
scsi_mod 159744 1 sg
ip_tables 24576 0
x_tables 28672 1 ip_tables
ext4 528384 2
crc16 16384 2 bluetooth,ext4
jbd2 90112 1 ext4
fscrypto 24576 1 ext4
mbcache 16384 1 ext4
serio_raw 16384 0
atkbd 24576 0
libps2 16384 1 atkbd
sdhci_pci 28672 0
sdhci 40960 1 sdhci_pci
led_class 16384 3 iwlmvm,sdhci,input_leds
mmc_core 122880 2 sdhci,sdhci_pci
xhci_pci 16384 0
nvme 28672 2
xhci_hcd 172032 1 xhci_pci
nvme_core 28672 4 nvme
usbcore 208896 5 uvcvideo,usbhid,xhci_pci,btusb,xhci_hcd
usb_common 16384 1 usbcore
i8042 24576 0
serio 20480 4 serio_raw,atkbd,i8042
crc32c_intel 24576 4
crc32_pclmul 16384 0
If you have questions, need help, have good suggestions or want to improve this tutorial feel free to write an answer!