Buildrootをやってみた
Orange pi R1のOSをSPIフラッシュに入る16MB未満で作りたいと考えてるが、
コマンド群をまとめる BusyBox は必要と思われる。BusyBoxならinitとかコンソールもまとめて置き換えられる。
BusyBoxのサイト見てたら、uClibcなるものを知った。glibcを置き換えるものでこれも必須ぽい。
さらに、BusyBoxとuClibcでrootfsを作るというBuildrootというものを知ったのでやってみた。
すごく簡単にu-boot linux rootfsを全部作れちゃう。
アプリが何も入ってないディストリビュージョンみたいな感じ。
menuconfigではとりあえず、
BusyBoxだけでviもどきが使えると思うが、viは使いこなせないのでnanoを選択したが、nanoにWCHAR supportが必要。
ルーター用なんで dnsmasq hostapd iptables pppd openssh を選択した。
RTL8152Bは標準で入るんでeth1は有効になるがwlan0は出てこないんで8189esは別途ビルドが必要そう。
kernelバージョンは標準で5.3.12だったが変更もできそうな感じ。
SDカード用のイメージは標準で60MBになるが、
/boot 10MB
/ 55MB
くらい?
/の使用済みは13MB強だった。
コマンド群をまとめる BusyBox は必要と思われる。BusyBoxならinitとかコンソールもまとめて置き換えられる。
BusyBoxのサイト見てたら、uClibcなるものを知った。glibcを置き換えるものでこれも必須ぽい。
さらに、BusyBoxとuClibcでrootfsを作るというBuildrootというものを知ったのでやってみた。
すごく簡単にu-boot linux rootfsを全部作れちゃう。
アプリが何も入ってないディストリビュージョンみたいな感じ。
$ git clone git://git.buildroot.net/buildroot --depth=1
$ make orangepi_r1_defconfig
$ make menuconfig
$ make ARCH=arm CROSS_COMPILE=arm-none-eabi-
これでSD用のimageが出来上がるんでddで書き込むだけ。$ make orangepi_r1_defconfig
$ make menuconfig
$ make ARCH=arm CROSS_COMPILE=arm-none-eabi-
menuconfigではとりあえず、
Toolchain --->
Enable WCHAR support
System configuration --->
(0000) Root password
[*] Install timezone info
Target packages --->
Networking applications --->
[*] dnsmasq
[*] dhcp support
[*] hostapd
[*] iptables
[*] openssh
[*] pppd
Text editors and viewers --->
[*] nano
ここだけいじった。Enable WCHAR support
System configuration --->
(0000) Root password
[*] Install timezone info
Target packages --->
Networking applications --->
[*] dnsmasq
[*] dhcp support
[*] hostapd
[*] iptables
[*] openssh
[*] pppd
Text editors and viewers --->
[*] nano
BusyBoxだけでviもどきが使えると思うが、viは使いこなせないのでnanoを選択したが、nanoにWCHAR supportが必要。
ルーター用なんで dnsmasq hostapd iptables pppd openssh を選択した。
RTL8152Bは標準で入るんでeth1は有効になるがwlan0は出てこないんで8189esは別途ビルドが必要そう。
kernelバージョンは標準で5.3.12だったが変更もできそうな感じ。
SDカード用のイメージは標準で60MBになるが、
/boot 10MB
/ 55MB
くらい?
/の使用済みは13MB強だった。