linux-headers and linux-image¶
linux-headers and linux-image are deb packages can be installed into Debian/Ubuntu system.
linux-headers include header files, can make the device able to compile drivers.
linux-image includes driver modules, install them into device for kernel to use. Besides, if device support extboot, self-building linux-image will also include a kernel, install it will update your device’s kernel.
How to check if device is using extboot? Please see specific board’s wiki Compile Ubuntu firmware
page, Partial compilation
part. If there’s no extboot related content, that means it does not support extboot.
How to get¶
Download from Firefly¶
Firefly officially provides linux-headers
and linux-image
, which are convenient for customers to compile drivers on the development board. Packages provided by us include no kernel, will not update kernel after installation, can be used in many boards.
For the package download of each board, please go to the official Firefly Download page to download. After selecting the board, click the Download page, it is generally in the Resources section, and the name is linux-headers.
Build from SDK¶
The version of headers and image downloaded above may mismatch your firmware, and they are not helpful with customization needs. So build them from SDK is recommended.
Prepare environment, get SDK and comfigure for compile, please check the specific deivce’s wiki.
Build under SDK root directory:
# select board config
./build.sh xxxx.mk
# build
./build.sh kerneldeb
Output files are in SDK root directory:
linux-headers-x.xx.xxx_x.xx.xxx-xxx_arm64.deb
linux-image-x.xx.xxx_x.xx.xxx-xxx_arm64.deb
If SDK is using extboot, then linux-image inludes kernel, so it can only be used in specific model of boards that you select in ./build.sh xxxx.mk
.
Install¶
The following takes the installation of ROC-RK3568-PC as an example:
Put deb packages in device to install, for headers, you have to compile them after installation
For device supports extboot, reboot to update kernel after installing image, then compile headers
# Install
sudo dpkg -i linux-headers-4.19.172_4.19.172-189_arm64.deb
sudo dpkg -i linux-image-4.19.172_4.19.172-189_arm64.deb
# Prepare
sudo apt install -y build-essential python libssl-dev
# Compile
cd /usr/src/linux-headers-4.19.172
make headers_check
make headers_install
# make scripts may go wrong but it doesn't matter
make scripts