例としてCubieboard2を使用して、Allwinner A10 / A20ファミリーのSoCにMono 3をインストールする

こんにちは



この記事では、役に立たないおもちゃのカテゴリからCubieboardファミリーボードを翻訳するさまざまなソースから情報を収集しました。 高度なC#開発者向けのデバッグプラットフォームへ。



これはLinux、これはハードコアベイブスです





必要なのは、サイズが少なくとも2 GBのSDカードです。

そして、デバイス自体は実際には再調整であり、私の場合はCubieboard2です



最初に、Nandがインストールされ、稼働しているシステムが必要です。 私の場合、それはlubuntu-server-13.08-v1.06でした 。 そこから小さな、しかし非常に重要なファイルが必要なので。 このシステムはもう使用されていません。

「Hello C#world on Linux」のようなものを書きたい場合、このシステムにはモノバージョン2.0.10.1に基づくパッケージが含まれているので、これで十分です。 残念ながら、このバージョンには、もっと深刻なことをすることができないいくつかの不快なバグがあります。

そして、誰がそれが簡単だと言った、これ...実際、私がすでに繰り返していること。



したがって、継続します。

こちら: https : //romanrm.net/a10/debian SoCのインストーラーをダウンロードしてください。

なんでこれ? これは、システムが必要最小限にインストールされる数少ないものの1つであり、最初は不必要なパッケージの束がないためです。



開梱してSDカードに書き込みます。

Linuxでは、これは1つのコマンドで実行できます: bzip2 -dc a20-debian-server-2gb * .bz2> / dev / sdX

/ dev / sdXは、 SDカードへパスです。



Windowsの場合、たとえば7Zipを使用して解凍し、 win32diskimagerを使用してSDカードに書き込むことができます。



SDカードをデバイスに挿入して起動します。 MK802などの特殊なタイプのデバイスの場合、ブートローダーをインストールするために追加の手順が必要ですが、必要はありませんでした。



たとえば、モニター+キーボードなど、デバイスへのローカルアクセスが必要です。または、USB-UART TTL 3.3Vアダプター、パラメーター115200/8 / N / 1を使用しました。 ネットワークは現在実行されていないため。

ログインユーザー名/パスワード: root / password



Nandをマウントし、そこから非常に小さいが非常に重要なファイルをコピーします。

cp /boot/script.bin /boot/script.bak mount /dev/nanda /mnt cp /mnt/script.bin /boot/ umount /dev/nanda sync
      
      





広大なホームネットワーク上のデバイスを毎回検索しないようにするため、A20で構築されたデバイスでは、開発者はデバイスに液体MACアドレスを割り当てることをせず、再起動するたびにランダムに生成されるため、DHCPサーバーは異なるIPを割り当てます。



以下をファイル/ etc / network / interfacesに書き込みます

 auto lo iface lo inet loopback auto eth0 # for DHCP #iface eth0 inet dhcp # hwaddress ether c0:b0:c0:a8:1:f5 # Static IP iface eth0 inet static hwaddress ether c0:bo:c0:a8:1:17 address 192.168.1.23 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 nameserver 192.168.1.1
      
      





SSHサーバーの新しいキーを生成し、ルートパスワードを変更します

 rm /etc/ssh/ssh_host_* dpkg-reconfigure openssh-server passwd reboot
      
      





再起動後、お気に入りのSSHクライアントを使用してシステムに接続できます。



システムを現在の状態に更新し、ロケールと時間を設定します

 apt-get update aptitude dist-upgrade dpkg-reconfigure locales dpkg-reconfigure tzdata
      
      





2GBを超えるSDカードを使用する場合、データセクションをカード全体に拡張することは理にかなっています。

これは、既に再割り当てされたディスクを例として使用して、次のように実行されます。

 root@debian:/dev# fdisk /dev/mmcblk0 Command (m for help): p Disk /dev/mmcblk0: 8018 MB, 8018460672 bytes 4 heads, 16 sectors/track, 244704 cylinders, total 15661056 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000cb560 Device Boot Start End Blocks Id System /dev/mmcblk0p1 2048 127071 62512 e W95 FAT16 (LBA) /dev/mmcblk0p2 131072 15661055 7764992 83 Linux
      
      





2つのセクションがある場所を確認します。 開始アドレスを保持することが重要です。 私の場合、131072でした。



データセクションを削除します。心配する必要はありません。その時点で何かがうまくいかなくても、物理的に削除することはありません。 ひどいことは何も起こりません。 ディスク上のデータはまだ書き込まれていないため。

 Command (m for help): d Partition number (1-4): 2
      
      





新しいセクションを作成する

 Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (1-4, default 2): Using default value 2 First sector (127072-15661055, default 127072):
      
      





ここでは、間違いを犯してデフォルト値に同意するのではなく、セクションの最初のセクターの以前に記録された値を入力することが重要です。

 First sector (127072-15661055, default 127072): 131072 Last sector, +sectors or +size{K,M,G} (131072-15661055, default 15661055): Using default value 15661055
      
      





すべてが正しいことを確認し、パーティションテーブルに変更を記録します。 再起動が必要です。

 Command (m for help): p Disk /dev/mmcblk0: 8018 MB, 8018460672 bytes 4 heads, 16 sectors/track, 244704 cylinders, total 15661056 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000cb560 Device Boot Start End Blocks Id System /dev/mmcblk0p1 2048 127071 62512 e W95 FAT16 (LBA) /dev/mmcblk0p2 131072 15661055 7764992 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
      
      





次に、パーティションにすべての空き領域を使用できることをシステムに実際に伝える必要があります

resize2fs / dev / mmcblk0p2

そしてチェック

 root@debian:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/root 7.3G 746M 6.3G 11% / ....skip....
      
      







うーん、今から楽しみが始まります。

少なくともインストールしようとすると、armv7lの公式ポートがないため、mono-runtimeが使用可能なパッケージのリストにないことが報告されます。 実験版が必要です。



まず、システムを安定したwheezyブランチからsid + Experimentalに移動する必要があります。

ファイル/etc/apt/sources.listを次の形式にします

 deb ftp://ftp.debian.org/debian experimental main deb ftp://ftp.debian.org/debian sid main contrib non-free
      
      





その後、すべてが標準です

 apt-get update apt-get dist-upgrade reboot
      
      





まあ、実際には、このすべての大騒ぎが始まったため

 root@debian:~#apt-get -t experimental install mono-devel ....skip.... root@debian:~# uname -a Linux debian 3.4.79-r0-s20-rm2+ #54 SMP Tue Feb 18 01:09:07 YEKT 2014 armv7l GNU/Linux root@debian:~t# mono -V Mono JIT compiler version 3.2.8 (Debian 3.2.8+dfsg-4) Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: normal Notifications: epoll Architecture: armel,vfp+hard Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: sgen
      
      






All Articles