2018年2月27日火曜日

Yocto-06

・起動時にsambaを動かす
 meta-localに
  recipes-connectivityを作る
    その中にsamba/samba_4.6.2.bbappendを作る
    中身
    DESCRIPTION = "Test 2018-02-22"

    do_install_append () {
      cat >> ${D}${sysconfdir}/samba/smb.conf <<EOF
    [pi]
       path = /home/workspace
       read only = no
       browsable = yes
       guest ok = yes
       force user = pi

    EOF
    sed -i 's/MYGROUP/WORKGROUP/' ${D}${sysconfdir}/samba/smb.conf
    }

2018年2月22日木曜日

Yocto05

・SDカードイメージを書き込んだあとの残り領域をテンポラリとする。
  ディスク情報 (書き込み直後 sdcとして16Gの場合)
      /dev/sdc 4GB 未割り当て領域
      /dev/sdc1 42MB(19MB空き) FAT ブート
      /dev/sdc2 197MB(37MB空き) Ext3
      /dev/sdc 16G未割り当て領域
  ddが終わった後、パーティションを作成する
  PCから、下記手順を実施
   sudo fdisk /dev/sdc -> n -> p(rimary)  -> 3 (1,2はすでに定義)-> (def) -> (def) -> w
      パーティション3 3.1MB
    sudo mkfs -t ext3 /dev/sdc3
    sudo fdisk /dev/sdc -> n -> p(rimary)  -> 4 (1,2,3はすでに定義)-> (def) -> (def) -> w
      パーティション4 16GB
    sudo mkfs -t ext3 /dev/sdc4

・起動時にマウントされるように、yoctoを改造
   /dev/mmcblk0p4を、/home/workspaceにマウントさせる
1.ディレクトリ"/home/workspaceの作成"
   local_1.0.bbに下記を追加する
      inherit allarch (<=いる?)
      do_install(){  }に、"install -d ${D}/home/workspace"を追加
      FILES_${PN}に、FILES_${PN} += "/home/workspace" を追加
2./etc/fstabに、"/dev/mmcblk0p4  /home/workspace  auto  defaults  0  0"を追加
   fstabは、"recipes-core/base-files/base-files/fstab"にある
  レシピにパッチをあてる
    recipes-localに、recipes-core/base-files/base-files_3.0.14.bbappend"を作成
    中身
    DESCRIPTION = "Test 2018-02-21 config fstab test"
    do_install_append () {
       cat >> ${D}${sysconfdir}/fstab <       /dev/mmcblk0p4       /home/workspace      auto       defaults              0  0
    EOF
    }


・sambaでアクセスできるようにする
  local.confに下記を追加する
      IMAGE_INSTALL_append = " samba"

2017年12月13日水曜日

Yocto04-Camera

カメラモジュール旧式(OV5647)が購入

Yoctoの手順をおさらい。これからカメラを組み込む。
1. /home1/poky で source oe-init-build-env build_20171213
  /home1/poky/build_20171213 ができる
    build_20171213/conf ができる
    confの中にbblayers.conf,local.conf,templateconf.cfg ができる
2. local.conf 編集
  MACHINE ??= "qemux86"をコメントアウト
  以下を追加
  MACHINE = "raspberrypi0-wifi"
  DISTRO_FEATURES_append = " bluez5"
  COMBINED_FEATURES_append = " ext2 usbgadget usbhost wifi bluetooth"
  IMAGE_INSTALL_append = " linux-firmware-bcm43430 connman connman-client usbutils sudo local "
  IMAGE_FEATURES_append = " ssh-server-dropbear"
  # host setup
  hostname_pn-base-files = "yoctopi"
  INHERIT_append = " extrausers"
  EXTRA_USERS_PARAMS = "useradd -P XXXX pi;usermod -P XXXX root;"
  BB_NUMBER_THREADS = "8"
  PARALLEL_MAKE = "-j 8"
  DL_DIR ?= "/home1/work/poky/poky-downloads"
3. bblayers.conf 編集
  以下を追加
  /home1/poky/meta-openembedded/meta-oe \
  /home1/poky/meta-openembedded/meta-networking \
  /home1/poky/meta-openembedded/meta-perl \
  /home1/poky/meta-openembedded/meta-python \
  /home1/poky/meta-raspberrypi \
  /home1/poky/meta-local \
4. meta-local はすでにあるのでそのまま
5. build_20171213 でビルド bitbake rpi-hwup-image

Yocto03

connmanctlの設定を追加

local_1.0.bbの中身

変更追加分のみ
SRC_URI = "file://test1.txt file://test2.txt file://0024A5xxxxxx.config file://settings"

do_install(){
  ...
  install -d ${D}/var/lib/connman
  install -m 0644 ${THISDIR}/files/0024A5D90CDF_psk.config ${D}/var/lib/connman
  install -m 0644 ${THISDIR}/files/settings ${D}/var/lib/connman
}
...
FILES_${PN} += "/var/lib/connman/0024A5D90CDF_psk.config"
FILES_${PN} += "/var/lib/connman/settings"

2017年12月2日土曜日

Yocto02

あるファイルをrootfsに組み込む実験

11/19から始めて、2週間。やっと動いた。
テキストファイルtest1を/tmp、test2.txtを/home/rootに置くレシピの作成。

localのレシピを作る

meta-local(D)
+---------conf(D)
| +---------------layer.conf
+---------recipes-local(D)
| +---------------local(D)
| +-------files(D)
| | +-------test1.txt
| | +-------test2.txt
| +-------COPYING.MIT
| +-------local_1.0.bb
+---------README

layer.confの中身

BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "local"
BBFILE_PATTERN_local = "^${LAYERDIR}/"
BBFILE_PRIORITY_local = "7"

local_1.0.bbの中身

DESCRIPTION = "Test 2017-11-xx"
SECTION = "unknown"
PRIORITY = "optional"
MAINTAINER = "xxx "
HOMEPAGE = "http://"
LICENSE = "MIT"
LIC_FILES_CHKSUM="file://${THISDIR}/COPYING.MIT;md5=91203d58fb77b02fc55a900c6263f1ba"
SRC_URI = "file://test.txt file://test2.txt"
do_install(){
  install -d ${D}/tmp
  install -m 0644 ${THISDIR}/files/test1.txt ${D}/tmp
  install -d ${D}/home/root
  install -m 0644 ${THISDIR}/files/test2.txt ${D}/home/root
}
FILES_${PN} += "/tmp/test.txt"
FILES_${PN} += "/home/root/test2.txt"

COPYING.MITの中身

Copyright 2017 H.T

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

test1.txtの中身

This is test1

test2.txtの中身

This is test2

READMEの中身

2017-11-26 new

Buildの変更

build-xxxのconfのlocal.conf

IMAGE_INSTALL_append = " 略 local "





2017年11月18日土曜日

Yocto01

Yoctoに着手

パッケージの取得
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm

パッケージリストの更新
sudo apt-get update
インストールパッケージ更新
sudo apt-get upgrade

git clone git://git.yoctoproject.org/poky
StableなブランチはPyro
cd poky
git checkout pyro
git clone -b pyro git://git.openembedded.org/openembedded-core
git clone -b pyro git://git.openembedded.org/meta-openembedded
git clone -b pyro git://git.yoctoproject.org/meta-raspberrypi

./oe-init-build-env build_raspi  # build_raspiは任意
cd build_raspi

../bitbake/bin/bitbake-layers add-layer ../meta-yocto
../bitbake/bin/bitbake-layers add-layer ../meta-raspberrypi

local.confのMACHINEの変更
MACHINE ??= "raspberrypi0-wifi"
B_NUMBER_THREADS = "4"
PARALLEL_MAKE = "-j 4"
DL_DIR ?= "/home1/work/poky/poky-downloads"

bitbake実行
export PATH=/home1/poky/bitbake/bin:$PATH
bitbake rpi-basic-image

SDカード書き込み
cd tmp/deploy/images/raspberrypi0-wifi
sudo dd if=./rpi-basic-image-raspberrypi0-wifi.rpi-sdimg of=/dev/sdc bs=40M

実行


参考サイト:https://www.usagi1975.com/24mar172100/

2017年10月24日火曜日

PC購入

PCを購入した。
セットアップするので、しばらくRaspberry Piはお休み。