ubuntu 22.04 Linux 從原始碼建立核心的方法
使用舊知識無法正確地建置 Ubuntu 22.04 的核心原始碼。我會在這個部落格中記錄正確的建置步驟。
編譯和連結環境的設定
- 所需的包
$ sudo apt-get install make gcc libssl-dev
$ sudo apt-get install libncurses-dev
$ sudo apt-get install git
$ sudo apt-get install dpkg-dev
$ sudo apt-get install flex bison
$ sudo apt-get install dwarves libelf-dev
- 編輯 /etc/apt/source.list 以下載核心原始碼
#deb cdrom:[Ubuntu 22.04.2 LTS _Jammy Jellyfish_ - Release amd64 (20230223)]/ jammy main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://jp.archive.ubuntu.com/ubuntu/ jammy main restricted
# deb-src http://jp.archive.ubuntu.com/ubuntu/ jammy main restricted
取消上面的#以啟用該語句。
## Major bug fix updates produced after the final release of the
## distribution.
deb http://jp.archive.ubuntu.com/ubuntu/ jammy-updates main restricted
# deb-src http://jp.archive.ubuntu.com/ubuntu/ jammy-updates main restricted
取消上面的#以啟用該語句。
- 下載ubuntu內核原始碼
輸入以下命令列。在 ubuntu 22.04 上,原始碼放置在名為 linux-hwe-5.19-5.19.0 的資料夾中。
$ sudo apt-get update
$ sudo apt-get source linux-image-unsigned-$(uname -r)
內核建構前的準備工作
- kernel configuration
改變之前 CONFIG_SYSTEM_TRUSTED_KEYS=”debian/canonical-certs.pem”
改變後 CONFIG_SYSTEM_TRUSTED_KEYS=””
在建置時必須將 CONFIG_SYSTEM_TRUSTED_KEYS 設置為 null。
CONFIG_LOCALVERSION=”custom”
配置以下設定以輕鬆檢查建置的核心。
- 以 PEM 格式儲存簽名文件
將包含以下內容的文字檔案儲存到 linux-hwe-5.19-5.19.0/certs。
[ req ]
default_bits = 4096
distinguished_name = req_distinguished_name
prompt = no
string_mask = utf8only
x509_extensions = myexts
[ req_distinguished_name ]
CN = Modules
[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid
- 輸入 openssl 指令
確認當前位置為 linux-hwe-5.19-5.19.0/certs 後,執行以下指令。
$ openssl req -new -nodes -utf8 -sha512 -days 36500 -batch -x509 \
-config x509.genkey -outform PEM -out signing_key.pem -keyout signing_key.priv
建立核心並建立簽名模組
- 建構內核和模組
這需要很長時間。根據您計算機的規格,可能需要一整夜的時間。
$ make bzImage modules
- 對模組進行簽署
$ openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 \
-config x509.genkey -outform PEM -out signing_key.x509 -keyout signing_key.pem
安裝模組和內核
- 已剝除除錯符號的模組安裝
$ sudo make modules_install INSTALL_MOD_STRIP=1
- 安裝內核
$ sudo make install
Ubuntu 重新啟動及確認核心版本名稱
$ uname -r
5.19.17custom
宣傳
我哋開始日本直送銷售啦。