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でも動くのですが、いずれ対応しないといけないですね。
さて、本命の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ファイルだからダメなのかもしれません。もしかするとカーネルごとに作り替えなければならないのかもしれません。
| 固定リンク



コメント