looks like Ubuntu 24.04 not good enough with Intel N150,maybe that is why GMKtec install 24.10 by default
- Get https://www.mirrorservice.org/sites/releases.ubuntu.com/24.04.2/ubuntu-24.04.2-live-server-amd64.iso
- Choose HWE kernel (during install)
- Compile and install https://github.com/intel/gmmlib.git
- Compile and install https://github.com/intel/libva
- Compile and install https://github.com/intel/libva-utils
- Compile and install https://github.com/intel/media-driver.git
- Compile and install https://gitlab.freedesktop.org/drm/igt-gpu-tools/ (or package intel-gpu-tools can try to use from distribution )
With HWE we got Kernel 6.11.0-21
Using username "gmk". gmk@10.9.9.77's password: Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.11.0-21-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/pro System information as of Fri Apr 4 05:06:10 PM UTC 2025 System load: 0.07 Temperature: 63.0 C Usage of /: 6.6% of 97.87GB Processes: 160 Memory usage: 3% Users logged in: 1 Swap usage: 0% IPv4 address for enp6s0: 10.9.9.77 Expanded Security Maintenance for Applications is not enabled. 33 updates can be applied immediately. To see these additional updates run: apt list --upgradable Enable ESM Apps to receive additional future security updates. See https://ubuntu.com/esm or run: sudo pro status To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details.
tools to compile Intel video driver
apt install -y cmake pkg-config meson libdrm-dev automake libtool gcc git
That you get if try to use tools and drivers from Ubuntun 24.04.2
gmk@g9:~$ vainfo error: can't connect to X server! libva info: VA-API version 1.20.0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_20 libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed libva info: va_openDriver() returns 1 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_1_20 libva error: /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so init failed libva info: va_openDriver() returns -1 vaInitialize failed with error code -1 (unknown libva error),exit
Build latest driver Intel video driver for Linux
git clone https://github.com/intel/gmmlib.git cd gmmlib/ mkdir build cd build cmake ../ make -j 4 make install cd ../.. git clone https://github.com/intel/libva.git cd libva ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make make install cd .. git clone https://github.com/intel/libva-utils.git cd libva-utils ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu make make install cd .. git clone https://github.com/intel/media-driver.git cd media-driver/ mkdir build cd build cmake ../ make -j 4 make install cd ../.. # Intel_gpu_tools compilation is optional apt install -y peg bison flex libcairo2-dev libudev-dev libprocess-cpp-dev libunwind-dev valgrind libpixman-1-dev libdw-dev libproc2-dev libkmod-dev git clone https://gitlab.freedesktop.org/drm/igt-gpu-tools cd igt-gpu-tools meson build && ninja -C build ./meson.sh install cd ..
to save space
apt remove -y cmake pkg-config meson libdrm-dev automake libtool gcc peg bison flex libcairo2-dev libudev-dev libprocess-cpp-dev libunwind-dev valgrind libpixman-1-dev libdw-dev libproc2-dev libkmod-dev
and now check with vainfo
root@g9:~/libva-utils# vainfo Trying display: drm libva info: VA-API version 1.23.0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_23 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.23 (libva 2.23.0.pre1) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.2.0 (187a0c7d0) vainfo: Supported profile and entrypoints VAProfileNone : VAEntrypointVideoProc VAProfileNone : VAEntrypointStats VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Simple : VAEntrypointEncSlice VAProfileMPEG2Main : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264Main : VAEntrypointFEI VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264High : VAEntrypointFEI VAProfileH264High : VAEntrypointEncSliceLP VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointFEI VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointFEI VAProfileHEVCMain : VAEntrypointEncSliceLP VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSlice VAProfileHEVCMain10 : VAEntrypointEncSliceLP VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointEncSliceLP VAProfileVP9Profile1 : VAEntrypointVLD VAProfileVP9Profile1 : VAEntrypointEncSliceLP VAProfileVP9Profile2 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointEncSliceLP VAProfileVP9Profile3 : VAEntrypointVLD VAProfileVP9Profile3 : VAEntrypointEncSliceLP VAProfileHEVCMain12 : VAEntrypointVLD VAProfileHEVCMain12 : VAEntrypointEncSlice VAProfileHEVCMain422_10 : VAEntrypointVLD VAProfileHEVCMain422_10 : VAEntrypointEncSlice VAProfileHEVCMain422_12 : VAEntrypointVLD VAProfileHEVCMain422_12 : VAEntrypointEncSlice VAProfileHEVCMain444 : VAEntrypointVLD VAProfileHEVCMain444 : VAEntrypointEncSliceLP VAProfileHEVCMain444_10 : VAEntrypointVLD VAProfileHEVCMain444_10 : VAEntrypointEncSliceLP VAProfileHEVCMain444_12 : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointEncSliceLP VAProfileHEVCSccMain10 : VAEntrypointVLD VAProfileHEVCSccMain10 : VAEntrypointEncSliceLP VAProfileHEVCSccMain444 : VAEntrypointVLD VAProfileHEVCSccMain444 : VAEntrypointEncSliceLP VAProfileAV1Profile0 : VAEntrypointVLD VAProfileHEVCSccMain444_10 : VAEntrypointVLD VAProfileHEVCSccMain444_10 : VAEntrypointEncSliceLP
root@server5:~# intel_gpu_top intel-gpu-top: Intel Alderlake_n (Gen12) @ /dev/dri/card0 - 0/ 0 MHz; 100% RC6; 0.00/ 0.43 W; 0 irqs/s ENGINES BUSY MI_SEMA MI_WAIT Render/3D 0.00% | | 0% 0% Blitter 0.00% | | 0% 0% Video 0.00% | | 0% 0% VideoEnhance 0.00% | | 0% 0% PID Render/3D Blitter Video VideoEnhance NAME root@server5:~# intel_gpu_frequency Opened device: /dev/dri/card0 cur: 0 MHz min: 200 MHz RP1: 300 MHz max: 1000 MHz
additional packages
# intel GPU tools (if not compiled) # apt install -y intel-gpu-tools # if not compiled newest btop that shows GPU load on Intel # apt install -y btop # disk tools apt install -y smartmontools nvme-cli mmc-utils apt install -y lm-sensors cpufrequtils # To be able to change Power Limits fro command line apt install -y devmem2 msr-tools wget https://raw.githubusercontent.com/horshack-dpreview/setPL/master/setPL.sh chmod +x /root/setPL.sh
root@server5:~# mmc status get /dev/mmcblk0 SEND_STATUS response: 0x00000900 DEVICE STATE: TRANS STATUS: READY_FOR_DATA root@server5:~# nvme list Node Generic SN Model Namespace Usage Format FW Rev --------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- -------- /dev/nvme0n1 /dev/ng0n1 S7DSNJ0X904565Y Samsung SSD 990 PRO with Heatsink 4TB 0x1 33.84 GB / 4.00 TB 512 B + 0 B 4B2QJXD7 /dev/nvme1n1 /dev/ng1n1 S7DSNJ0X904574E Samsung SSD 990 PRO with Heatsink 4TB 0x1 33.81 GB / 4.00 TB 512 B + 0 B 4B2QJXD7 /dev/nvme2n1 /dev/ng2n1 S7DSNJ0X904497E Samsung SSD 990 PRO with Heatsink 4TB 0x1 33.81 GB / 4.00 TB 512 B + 0 B 4B2QJXD7 /dev/nvme3n1 /dev/ng3n1 S7DSNJ0X904509N Samsung SSD 990 PRO with Heatsink 4TB 0x1 33.81 GB / 4.00 TB 512 B + 0 B 4B2QJXD7
Partitioning to LVM
sgdisk -Z /dev/nvme0n1 sgdisk -Z /dev/nvme1n1 sgdisk -Z /dev/nvme2n1 sgdisk -Z /dev/nvme3n1 sgdisk -n1:0:0 -t1:EF00 /dev/nvme0n1 sgdisk -n1:0:0 -t1:EF00 /dev/nvme1n1 sgdisk -n1:0:0 -t1:EF00 /dev/nvme2n1 sgdisk -n1:0:0 -t1:EF00 /dev/nvme3n1 pvcreate /dev/nvme0n1p1 -y; pvcreate /dev/nvme1n1p1 -y; pvcreate /dev/nvme2n1p1 -y; pvcreate /dev/nvme3n1p1 -y vgcreate storage --physicalextentsize 128k /dev/nvme0n1p1 /dev/nvme1n1p1 /dev/nvme2n1p1 /dev/nvme3n1p1 lvcreate -L 14.5T -I 128k -i 4 -n fs storage lvcreate -L 32G -I 128k -i 4 -n swap storage lvcreate -l +100%FREE -I 128k -i 4 -n tmp storage # # mkfs.ext4 -L EXT4-4K /dev/storage/fs # mkfs.ext4 -C 16384 -O bigalloc -L EXT4-16K /dev/storage/fs mkfs.ext4 -C 131072 -O bigalloc -L EXT4-128K /dev/storage/fs
remove partitioning
sed -i 's/^\/dev\/mapper\/storage/#\/dev\/mapper\/storage/' /etc/fstab umount /storage lvremove -f /dev/storage/tmp /dev/storage/swap /dev/storage/fs vgremove storage pvremove -f /dev/nvme0n1p1 /dev/nvme1n1p1 /dev/nvme2n1p1 /dev/nvme3n1p1
mdraid
sgdisk -Z /dev/nvme0n1 sgdisk -Z /dev/nvme1n1 sgdisk -Z /dev/nvme2n1 sgdisk -Z /dev/nvme3n1 sgdisk -n1:0:0 -t1:EF00 /dev/nvme0n1 sgdisk -n1:0:0 -t1:EF00 /dev/nvme1n1 sgdisk -n1:0:0 -t1:EF00 /dev/nvme2n1 sgdisk -n1:0:0 -t1:EF00 /dev/nvme3n1 mdadm --create --level=0 --raid-devices=4 --name=storage /dev/md0 /dev/nvme*n1p1 mkfs.ext4 /dev/md0
remove mdraid
umount /dev/md0 mdadm -S /dev/md0 mdadm --zero-superblock /dev/nvme*n1p1
btrfs
sgdisk -Z /dev/nvme0n1 sgdisk -Z /dev/nvme1n1 sgdisk -Z /dev/nvme2n1 sgdisk -Z /dev/nvme3n1 sgdisk -n1:0:0 -t1:EF00 /dev/nvme0n1 sgdisk -n1:0:0 -t1:EF00 /dev/nvme1n1 sgdisk -n1:0:0 -t1:EF00 /dev/nvme2n1 sgdisk -n1:0:0 -t1:EF00 /dev/nvme3n1 mkfs.btrfs --data raid0 --mixed --sectorsize 128k /dev/nvme0n1p1 /dev/nvme1n1p1 /dev/nvme2n1p1 /dev/nvme3n1p1 systemctl daemon-reload
root@server5:/# mkfs.btrfs --data raid0 --sectorsize 4k /dev/nvme0n1p1 /dev/nvme1n1p1 /dev/nvme2n1p1 /dev/nvme3n1p1 btrfs-progs v6.6.3 See https://btrfs.readthedocs.io for more information. Performing full device TRIM /dev/nvme0n1p1 (3.64TiB) ... Performing full device TRIM /dev/nvme3n1p1 (3.64TiB) ... Performing full device TRIM /dev/nvme2n1p1 (3.64TiB) ... Performing full device TRIM /dev/nvme1n1p1 (3.64TiB) ... NOTE: several default settings have changed in version 5.15, please make sure this does not affect your deployments: - DUP for metadata (-m dup) - enabled no-holes (-O no-holes) - enabled free-space-tree (-R free-space-tree) Label: (null) UUID: 136781b9-8962-48e5-b881-80bf277097de Node size: 16384 Sector size: 4096 Filesystem size: 14.55TiB Block group profiles: Data: RAID0 4.00GiB Metadata: RAID1 1.00GiB System: RAID1 8.00MiB SSD detected: yes Zoned device: no Incompat features: extref, skinny-metadata, no-holes, free-space-tree Runtime features: free-space-tree Checksum: crc32c Number of devices: 4 Devices: ID SIZE PATH 1 3.64TiB /dev/nvme0n1p1 2 3.64TiB /dev/nvme1n1p1 3 3.64TiB /dev/nvme2n1p1 4 3.64TiB /dev/nvme3n1p1
root@server5:~# mdadm --create --level=0 --raid-devices=4 --name=storage /dev/md0 /dev/nvme*n1p1 mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.