« MITOUJTAGのJTAGスクリプトでレジスタを直接操作できるように拡張中 | トップページ | ZYNQ Ubuntu 18でELECOM WDC-433SU2M2(5GHz)を動かす »

2021.08.12

Cosmo-Z MiniのOSをUbuntu18にアップデートする

あるお客様から、Cosmo-Z MiniでWiFiを使いたいというご要望をいただきました。

Cosmo-Z MiniはもともとUbuntu14.04がインストールされていて、Ubuntu 14で認識するGW-USNANO2AというUSB-WiFiが付属していたのですが、そのUSB-WiFiが入手できなくなってしまいました。

現在入手可能なWDC-150SU2に置き換えたのですが、Ubuntu 14では認識できないのでUbuntu18にアップデートする必要がでてきたのです。

やり方としては、「Zynqberry(ジンクベリー)にUbuntu 19をインストール」の記事を見ながら、Ubuntu18の綺麗な状態のSDカードを作ります。

ホストPCでSDカードをマウントしてQEMUでセットアップするのですが、気になったのですが、

sudo mount -o loop /dev/sdb2 /mnt

と、マウントするときにloopbackデバイスとしてマウントするのですね。なぜなのでしょう。SDカードをマウントするときになぜloopを付けるのだろう。うーん🤔

途中まではだいたい同じです。

そして、Cosmo-Zのインストールですが、

  • /etc/rc.localを作る
  • Cosmo-Zから/var/wwwフォルダ一式を持ってくる
  • apache2のセットアップ
    • /etc/apache2/sites-available/000-default.confを書き換えて、DocumentRoot /var/www/を設定する。また、Directory /var/www/でCGIが実行できるようにする
    • /etc/apache2/conf-available/serve-cgi-bin.confを編集して、ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/以下の6行をコメントアウトする。デフォルトでは/usr/lib/cgi-binしかCGIを実行できない
    • a2enconf serve-cgi-bin.conf
    • sshdの設定
  • sambaのインストールと設定
  • emacsのインストール
  • .vimrcに以下の設定をする。これをしないとviの先頭が文字化けする
    set encoding=utf-8
    set fileencodings=iso-2022-jp,sjis,utf-8
  • /home/shareの作成
  • /home/share/autorunと/home/share/setupの作成
  • /home/share/CosmoZPy/フォルダを持ってくる
  • chmod 777 pngwave.elf をしないとWeb画面で波形が表示されない
  • update-cszminiが動くようにする。動かない場合はフォルダを作ったりフォルダのパーミッションを変えたり
  • sudo apt-get install usbutilsでUSBユーティリティのインストール

と、いろいろな設定がありました。

困ったことは、私が使っているCosmo-Z Miniは試作機なのでEEPROMの配線が間違っていて、LAN9514のMACアドレスが固定されません。そのため、DHCPでつなぐたびにIPアドレスが変わってしまいます。(お客様に出荷したものはEEPROMを修正済み)

LAN9514のMACアドレスをLinuxのコマンドから固定する方法があればいいのですが・・と思っていたらnetplanに書いておけばよさそうでした。

sudo vim /etc/netplan/50-cloud-init.yaml

network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: yes
dhcp-identifier: mac
macaddress: 02:11:10:00:22:01
dhcp6: no
#addresses: [192.168.1.80/24]
#gateway4: 192.168.1.1
#nameservers:
#addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]

これでセットアップはうまくいったのですが、IoT機器独自の起動スクリプトのようなものを書きたい場合、いままではrc.localに書いておけばよかったのですが、本来はサーバスクリプトを作って番号付けてsystemdから起動するということをするべきだそうです。まぁ、Ubuntu18でもrc.localでも動くのですが、いずれ対応しないといけないですね。

Cszminiubuntu18 

さて、本命のUSB-WiFiを動かそうと8188eu.koをinsmodすると、

root@cszmini:/home/share# insmod 8188eu.ko
insmod: ERROR: could not insert module 8188eu.ko: Invalid module format

とエラーが出てうまくいきませんでした。

Zynqberry用に作ったkoファイルだからダメなのかもしれません。もしかするとカーネルごとに作り替えなければならないのかもしれません。

|

« MITOUJTAGのJTAGスクリプトでレジスタを直接操作できるように拡張中 | トップページ | ZYNQ Ubuntu 18でELECOM WDC-433SU2M2(5GHz)を動かす »

コメント

コメントを書く



(ウェブ上には掲載しません)




« MITOUJTAGのJTAGスクリプトでレジスタを直接操作できるように拡張中 | トップページ | ZYNQ Ubuntu 18でELECOM WDC-433SU2M2(5GHz)を動かす »