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.
|