Qua stationでLinuxを動かす 2.Build

カーネルをビルド(konalinux 7)

某氏の猫空 に詳しく書かれているので、そちらを参照していただくとして、大まかな流れと遭遇したトラブルについて記します。なお、当方ではビルドに「konalinux7」を使用しました。

・GitHubで BPI-W2-bsp-w2-4.9-v1.0.zip[KTS31] .config for linux-rt を入手
・前者を ~/qua に展開、後者を.configにリネーム、前者のlinux-rtフォルダにコピー
$ cd ~/qua/BPI-W2-bsp-w2-4.9-v1.0/
《不足するパケージがあったので》
 $ sudo apt-get install libncurses-dev
《ビルドエラー発生》 ⇒下記参照◉
$ ./build.sh →「4. kernel configure」を選択
$ ./build.sh →「1. build all …」を選択
非力なマシンだったのでビルドに2時間以上かかった。

起動用USBメモリを作成する

起動用USBメモリは16GB以上のものを用意し、最低2個のパーティションに分ける。先頭にはカーネルが入るだけの容量のパーティション(100MB程度でもよいが、カーネルモジュールをここに入れる場合にはもう少し大きくする)を置き、FAT32でフォーマットする。そのうしろのルートファイルシステム用パーティションはExt4でフォーマットする。ルートファイルシステムはいくつあってもよいが、各々があまりに小さいと起動後に問題が発生する。

・USBメモリのFAT32領域に bpi-w2.dtbuImage をコピー
・USBメモリのExt4領域に、
 ルートファイルシステム(ArchLinuxARM-aarch64-latest.tar.gz)を展開
カーネルモジュールをコピーする。
 Ext4領域の場合、
 /lib/modules 以下にカーネル名ごとコピー
 (カーネル名: 4.9.119-BPI-W2-Kernel)

ビルドエラー(multiple definition of `yylloc’)

……………error……………
/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
Build failed!
……………error……………

◉ビルドに際して上記エラーが出て進まなくなったが、下記サイトを参考に、
/linux-rt/scripts/dtc/dtc-lexer.lex.c_shipped (記事では ./linux-rtk/scripts/dtc/dtc-lexer-lex.c )に「YYLTYPE yylloc → extern YYLTYPE yylloc」なる変更を加え、ビルドは成功した。GCC 10 以降がインストールされている環境ではビルドに失敗するらしい。

Solution for "'multiple definition of yylloc' error · Issue #4 · BPI-SINOVOIP/BPI-M4-bsp
If you are facing the following error, usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of 'yyl...

→次ページへ Boot~eMMC~無線LAN

参考にしたサイト

【Qua station】 Linuxカーネルをビルドする
自己責任で!!Ubuntu 20.04 (パソコン)で作業しました1.ダウンロード&展開ファイルの入手BPI-W2-bsp-w2-4.9-v1.0.zip
GitHub - tsukumijima/QuaStation-Ubuntu: Qua Station 向けの Linux カーネルのビルドと、Ubuntu 20.04 LTS の rootfs の構築を全自動で行うスクリプト
Qua Station 向けの Linux カーネルのビルドと、Ubuntu 20.04 LTS の rootfs の構築を全自動で行うスクリプト - tsukumijima/QuaStation-Ubuntu
Qua鯖 - Pastebin.com
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set pe...

コメント

タイトルとURLをコピーしました