ラベル FreeBSD の投稿を表示しています。 すべての投稿を表示
ラベル FreeBSD の投稿を表示しています。 すべての投稿を表示

2015年12月30日水曜日

Raspberry Pi 2 Model B に RaspBSD をインストール(1)

☆まずはログインできるようになるまで
  • RaspBSDのイメージファイルをダウンロード
    • http://download.raspbsd.org/FreeBSD-armv6-11.0-RPI2-291824.img.gz
  • Win32DiskImager を使って、MicroSDカードに書き込み。
  • USBにキーボードを繋ぐ。HDMIポートにディスプレイを繋ぐ。
  • Raspberry Pi 2 Model B(Rpi2)のメモリースロットに差し込み。電源ON。
  • rootでログイン
  • ルートのパスワード設定
    • # passwd
  • date の確認。極端にずれていたら設定。
  • タイムゾーンの変更
    • # cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
  • ユーザーアカウントを追加、とりあえずwheelグループに入れておく
    • # adduser myaccount   ; ユーザーアカウントを追加
    • # cd /etc
    • # vi group  ; wheel に加えたアカウントも入れておく
  • /etc/rc.conf を修正して、IPアドレスのDHCPをやめ固定にする
    • ifconfig_ue0="DHCP" ⇒ 
      • ifconfig_cpsw0="inet 192.168.xxx.xxx netmask 0xffffff00"
      • defaultrouter="192.168.yyy.yyy"
  • いったんリブート、設定したIPアドレスへSSH
  • Teraログインでログイン、チャレンジレスポンスでパスワード入力
☆pkg
  • $ su -    ; root になる
  • # pkg info
    • The package management tool is not yet installed on your system.
    • Do you want to fetch and install it now? [y/N]: y
    • Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/FreeBSD:11:armv6/latest, please wait...
    • Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
    • Installing pkg-1.6.2...
    • Extracting pkg-1.6.2: 100%
    • Message from pkg-1.6.2:
    • If you are upgrading from the old package format, first run:

    •   # pkg2ng
    • pkg-1.6.2                      Package manager
  • # pkg update
    • Updating FreeBSD repository catalogue...
    • Repository FreeBSD contains no repodata table, need to re-create database
    • Fetching meta.txz: 100%    944 B   0.9kB/s    00:01
    • Fetching packagesite.txz: 100%    4 MiB 428.9kB/s    00:10
    • Processing entries: 100%
    • FreeBSD repository update completed. 20035 packages processed.
☆sudo
  • # pkg install sudo
    • Updating FreeBSD repository catalogue...
    • FreeBSD repository is up-to-date.
    • All repositories are up-to-date.
    • Updating database digests format: 100%
    • The following 3 package(s) will be affected (of 0 checked):

    • New packages to be INSTALLED:
    •         sudo: 1.8.15
    •         gettext-runtime: 0.19.6
    •         indexinfo: 0.2.4

    • The process will require 4 MiB more space.
    • 961 KiB to be downloaded.

    • Proceed with this action? [y/N]: y
    • Fetching sudo-1.8.15.txz: 100%  813 KiB 416.4kB/s    00:02
    • Fetching gettext-runtime-0.19.6.txz: 100%  143 KiB 146.4kB/s    00:01
    • Fetching indexinfo-0.2.4.txz: 100%    5 KiB   5.0kB/s    00:01
    • Checking integrity... done (0 conflicting)
    • [1/3] Installing indexinfo-0.2.4...
    • [1/3] Extracting indexinfo-0.2.4: 100%
    • [2/3] Installing gettext-runtime-0.19.6...
    • [2/3] Extracting gettext-runtime-0.19.6: 100%
    • [3/3] Installing sudo-1.8.15...
    • [3/3] Extracting sudo-1.8.15: 100%
  • # cd /usr/local/etc
  • # visudo   ; 以下の1行を追加
    • myaccount ALL=(ALL) ALL    ; myaccountにすべてのコマンドの実行権限を与える
  • # exit  ; rootから抜ける
  • $ sudo vi /etc/group   ; rootとして振る舞えるか確認。及び groupのwheelからmyaccountを外す。 
☆.ssh
  • $ cd
  • $ mkdir -m 700 .ssh
  • $ cd .ssh
  • $ vi authorized_keys   ; myaccountの公開キーを書き加える
  • $ chmod 600 authorized_keys
☆ntp
  • $ cd
  • $ sudo vi /etc/rc.conf
    • ntpd_enable="YES"
    • ntpd_sync_on_start="YES"
  • $ sudo vi /etc/ntp.conf
☆vim-lite
  • $ cd
  • $ sudo pkg install vim-lite
    • Updating FreeBSD repository catalogue...
    • FreeBSD repository is up-to-date.
    • All repositories are up-to-date.
    • The following 1 package(s) will be affected (of 0 checked):

    • New packages to be INSTALLED:
    •         vim-lite: 7.4.960

    • The process will require 21 MiB more space.
    • 5 MiB to be downloaded.

    • Proceed with this action? [y/N]: y
    • Fetching vim-lite-7.4.960.txz: 100%    5 MiB 342.2kB/s    00:15
    • Checking integrity... done (0 conflicting)
    • [1/1] Installing vim-lite-7.4.960...
    • [1/1] Extracting vim-lite-7.4.960: 100%
    •  

2015年9月4日金曜日

さくらVPSサーバー(FreeBSD10.2)の環境設定2

8.bashのインストール
  • # pkg install bash
    • New packages to be INSTALLED:
    •         bash: 4.3.39
9.vim-liteのインストール
  • # pkg install vim-lite
    • New packages to be INSTALLED:
    •         vim-lite: 7.4.752
10.redmineのインストール
  • # pkg install redmine
    • New packages to be INSTALLED:
    •         redmine: 2.6.3_3
    •         rubygem-thin: 1.6.3_1
    •         rubygem-rack16: 1.6.4
    •         ruby: 2.1.6,1
    •         libyaml: 0.1.6_2
    •         libffi: 3.2.1
    •         libedit: 3.1.20150325_1
    •         ruby21-gems: 2.4.8
    •         rubygem-eventmachine: 1.0.7
    •         rubygem-daemons: 1.2.3
    •         rubygem-rails: 3.2.22
    •         rubygem-uglifier: 2.7.1
    •         rubygem-json: 1.8.3
    •         rubygem-execjs: 2.5.2
    •         node: 0.12.6
    •         python27: 2.7.9_1
    •         python2: 2_3
    •         rubygem-railties: 3.2.22
    •         rubygem-rack-ssl: 1.4.1_1,1
    •         rubygem-actionpack: 3.2.22
    •         rubygem-rack-test: 0.6.3_1
    •         rubygem-rack-cache: 1.2_1
    •         rubygem-rack: 1.4.7,3
    •         rubygem-journey: 1.0.4
    •         rubygem-erubis: 2.7.0_1
    •         rubygem-sprockets22: 2.2.3_1
    •         rubygem-tilt1: 1.4.1
    •         rubygem-multi_json: 1.11.1
    •         rubygem-json_pure: 1.8.2
    •         rubygem-hike: 1.2.3,1
    •         rubygem-builder: 3.0.4
    •         rubygem-activesupport: 3.2.22
    •         rubygem-i18n: 0.7.0,2
    •         rubygem-activemodel: 3.2.22
    •         rubygem-thor: 0.19.1
    •         rubygem-rdoc3: 3.12.2
    •         rubygem-rake: 10.4.2
    •         rubygem-jquery-rails: 3.1.3
    •         rubygem-activeresource: 3.2.22
    •         rubygem-sass-rails: 3.2.6_4
    •         rubygem-sass: 3.4.15
    •         rubygem-tilt: 2.0.1
    •         rubygem-bundler: 1.10.5
    •         rubygem-actionmailer: 3.2.22
    •         rubygem-mail25: 2.5.4_1,2
    •         rubygem-mime-types1: 1.25.1
    •         rubygem-treetop: 1.6.2
    •         rubygem-polyglot: 0.3.5
    •         rubygem-tzinfo03: 0.3.44
    •         rubygem-turn: 0.9.7
    •         rubygem-minitest: 5.7.0
    •         rubygem-ansi: 1.5.0
    •         rubygem-coffee-rails: 3.2.2_1
    •         rubygem-coffee-script: 2.4.1
    •         rubygem-coffee-script-source: 1.9.1.1
    •         rubygem-sqlite3: 1.3.10
    •         sqlite3: 3.8.10.2
    •         rubygem-activerecord: 3.2.22
    •         rubygem-arel3: 3.0.3,1
    •         rubygem-rack-openid: 1.4.2_2
    •         rubygem-ruby-openid: 2.7.0
    •         rubygem-redcarpet: 3.3.2
    •         rubygem-coderay: 1.1.0
    •         rubygem-rbpdf: 1.18.6
    •         rubygem-net-ldap: 0.11
    •         rubygem-rmagick: 2.15.2
    •         ImageMagick: 6.9.1.6,1
    •         libXext: 1.3.3_1,1
    •         xproto: 7.0.27
    •         xextproto: 7.3.0
    •         libXau: 1.0.8_3
    •         libX11: 1.6.2_3,1
    •         libxcb: 1.11_1
    •         libXdmcp: 1.1.2
    •         libxml2: 2.9.2_3
    •         libpthread-stubs: 0.3_6
    •         kbproto: 1.0.6
    •         libXt: 1.1.4_3,1
    •         libSM: 1.2.2_3,1
    •         libICE: 1.0.9_1,1
    •         fontconfig: 2.11.1,1
    •         expat: 2.1.0_3
    •         freetype2: 2.5.5
    •         ghostscript9: 9.06_10
    •         libpaper: 1.1.24.4
    •         gsfonts: 8.11_6
    •         cups-image: 2.0.3_2
    •         libgcrypt: 1.6.3
    •         libgpg-error: 1.19_1
    •         gnutls: 3.3.17.1
    •         trousers-tddl: 0.3.10_7
    •         p11-kit: 0.23.1
    •         libtasn1: 4.5_1
    •         ca_root_nss: 3.19.3
    •         nettle: 2.7.1
    •         gmp: 5.1.3_2
    •         libidn: 1.31
    •         cups-client: 2.0.3_2
    •         mDNSResponder: 567
    •         glib: 2.42.2
    •         perl5: 5.20.2_5
    •         pcre: 8.37_4
    •         libiconv: 1.14_8
    •         tiff: 4.0.4
    •         jpeg: 8_6
    •         jbigkit: 2.1_1
    •         png: 1.6.17
    •         svgalib: 1.4.3_7
    •         lcms2: 2.7
    •         jbig2dec: 0.11_4
    •         fftw3: 3.3.3_2
    •         webp: 0.4.3
    •         giflib: 5.0.6
    •         openjpeg: 2.1.0_1
    •         libwmf: 0.2.8.4_14
    •         librsvg2: 2.40.9
    •         pango: 1.36.8_1
    •         libXrender: 0.9.8_3
    •         renderproto: 0.11.1
    •         xorg-fonts-truetype: 7.7_1
    •         font-misc-meltho: 1.0.3_3
    •         mkfontscale: 1.1.2
    •         libfontenc: 1.1.2_3
    •         mkfontdir: 1.0.7
    •         font-misc-ethiopic: 1.0.3_3
    •         font-bh-ttf: 1.0.3_3
    •         encodings: 1.0.4_3,1
    •         font-util: 1.3.1
    •         dejavu: 2.35
    •         libXft: 2.3.2_1
    •         harfbuzz: 0.9.40_1
    •         graphite2: 1.2.4
    •         cairo: 1.12.18_1,2
    •         xcb-util-renderutil: 0.3.9_1
    •         xcb-util: 0.4.0_1,1
    •         pixman: 0.32.6_1
    •         icu: 55.1
    •         gtk2: 2.24.27
    •         libXrandr: 1.4.2_3
    •         randrproto: 1.4.1
    •         libXinerama: 1.1.3_3,1
    •         xineramaproto: 1.2.1
    •         libXi: 1.7.4_1,1
    •         libXfixes: 5.0.1_3
    •         fixesproto: 5.0
    •         inputproto: 2.3.1
    •         libXdamage: 1.1.4_3
    •         damageproto: 1.2.1
    •         libXcursor: 1.1.14_3
    •         libXcomposite: 0.4.4_3,1
    •         compositeproto: 0.4.2
    •         shared-mime-info: 1.1_1
    •         hicolor-icon-theme: 0.14
    •         python: 2.7_2,2
    •         gtk-update-icon-cache: 2.24.27
    •         gdk-pixbuf2: 2.31.6
    •         jasper: 1.900.1_14
    •         atk: 2.14.0
    •         gtk-engines2: 2.20.2_2
    •         libcroco: 0.6.8_2
    •         libgsf: 1.14.33
    •         liblqr-1: 0.4.1_8
    •         libfpx: 1.3.1.4
    •         pkgconf: 0.9.11
    •         libltdl: 2.4.6
    •         rubygem-rubytree: 0.9.6
    •         rubygem-structured_warnings: 0.2.0
    •         rubygem-request_store: 1.1.0_1
    •         rubygem-fastercsv: 1.5.5
    •         rubygem-mysql2: 0.3.18
    •         mysql56-client: 5.6.24_1
11.Subversionのインストール
  • # pkg install subversion-1.8.14
    • New packages to be INSTALLED:
    •         subversion: 1.8.14
    •         serf: 1.3.8
    •         apr: 1.5.2.1.5.4
    •         gdbm: 1.11_2
    •         db5: 5.3.28_2
12.Gitのインストール
  • pkg install git-2.4.5_1
    • New packages to be INSTALLED:
    •         git: 2.4.5_1
    •         p5-Authen-SASL: 2.16_1
    •         p5-GSSAPI: 0.28_1
    •         p5-Digest-HMAC: 1.03_1
    •         p5-Net-SMTP-SSL: 1.03
    •         p5-IO-Socket-SSL: 2.016
    •         p5-Mozilla-CA: 20141217
    •         p5-Net-SSLeay: 1.70
    •         p5-Socket: 2.020
    •         p5-IO-Socket-IP: 0.37
    •         p5-Error: 0.17024
    •         curl: 7.43.0_2
    •         cvsps: 2.1_1
13.git-subversionのインストール
  • # pkg install git-subversion-2.4.5_1
    • Installed packages to be REMOVED:
    •         git-2.4.5_1
    • New packages to be INSTALLED:
    •         p5-subversion: 1.8.14
    •         p5-Term-ReadKey: 2.32_1
    •         git-subversion: 2.4.5_1

2015年9月2日水曜日

さくらVPSサーバー(FreeBSD10.2)の環境設定1

 このブログと同様、放置気味のさくらVPSサーバーだが、まったく使っていないわけではなくて、10.0から10.1にアップデートしてはいた。
 Beaglebone BlackにもFreeBSDを入れて、ntpサーバーとちょっとしたファイルサーバーとして活用している。

 さくらVPSサーバーはSubversionを使っていたころは、頻繁に使っていたが、Gitを使うようになったためローカルPCだけで済ませ、バックアップのデータもBeagleboneに置いとくようになったのが、放置気味の原因だ。

 FreeBSD10.2がリリースされたので、改めてインストールしなおしてみた。


 1.さくらVPSコントロールパネルからOSインストール‐ISOイメージインストールから行う。

 2.アカウント、グループの追加をしてログインできる様にしておく。wheelグループに追加しておいて、suでrootでの実行できるようにしておく。

 3./etc/ssh/sshd_config へポート22から別の番号に変える。(ネットから不当アクセスが劇的に減るため)

 4.アカウント/.ssh/authorized_keys にpublic keyを記入して、公開鍵でログインできるようにする。

 5.TeraTerm  ショートカットは "C:\Program Files (x86)\teraterm\ttermpro.exe" /M=C:\Users\アカウント\Documents\key_sakura\sakura.ttl /F=C:\Users\アカウント\Documents\key_sakura\TERATERMport.INI
  • sakura.ttlは自動ログインのマクロ
  • TERATERMport.INI はポートNoとか文字色・背景色とかの環境設定値
 6.sudoをインストール
  • # pkg install sudo       # sudoのインストール
  • # visudo  # アカウントの実行権を記述
    • アカウント ALL = (ALL) ALL ← これでアカウントがrootで出来ることを行えるようになる
 7./etc/ssh/sshd_config 修正でセキュリティー強化
  •  公開鍵でしかログインできないように修正(rootで作業)
    ChallengeResponseAuthentication no  ← チャレンジレスポンス認証は禁止
    AllowUsers user1 user2     ← 登録したユーザーしかログインできないようにする

2014年1月31日金曜日

さくらVPSサーバー(FreeBSD10.0)の環境設定2

さくらVPSサーバー(FreeBSD10.0)の環境設定2

■FreeBSDインストール後

 ☆をインストール
  • git
    $ sudo pkg install git
  • subversion
    $ sudo pkg install subversion-1.8.5
  • vim-lite
    $ sudo pkg install vim-lite

さくらVPSサーバー(FreeBSD10.0)の環境設定1

さくらVPSサーバー(FreeBSD10.0)の環境設定1

■FreeBSDインストール時

 ☆IPアドレス、DNSアドレス等、さくらVPSサーバーの指定通りに

 ☆アカウント、グループの追加
  • とりあえずwheelグループにも追加して、suできるようにしておく
  • (sudoをインストールしたら削除)

■FreeBSDインストール後

 ☆sudoをインストール
  • sudo
    # pkg install sudo       # sudoのインストール
    # visudo                   # sudoを使えるアカウントの登録
    user1 ALL = (ALL) ALL ← これでuser1がrootで出来ることを行えるようになる
  • /etc/group の wheel グループから user1 を外してもOK
☆ssh環境
  • TeraTermでポート22へログイン(ssh2)
  • インストール直後はチャレンジレスポンス認証でパスワード入力してログインできるので。それで作業を行う
  • .ssh ディレクトリを作成して、その中にauthorized_keysを作成して、PC側から公開鍵をペーストする
  • .ssh は drwx------ 、authorized_keys は -rw------- の属性にする
  •  /etc/ssh/sshd_config を、公開鍵でしかログインできないように修正(rootで作業)
    ChallengeResponseAuthentication no  ← チャレンジレスポンス認証は禁止
    AllowUsers user1 user2     ← 登録したユーザーしかログインできないようにする
  •  # servise sshd restart で再起動して動作確認する

さくらVPSサーバーにFreeBSD10.0をインストール

 さくらVPSサーバーはFreeBSD9.2でSubversionのサーバーとして使っていたのだが、最近はSubversionを使わず、Gitを使うようになったため、ローカルPC内のリポジトリがmasterになっていて、VPSサーバーはバックアップを置いているだけになっていた。
 Apacheやmysqlとかもインストールだけはしていたが、何も使っていなかったため、ほとんど、中国を始め、世界中からの不正アクセス試行のログを溜め込むだけのマシンとなっていた。
 FreeBSD10.0へupgradeを試みたが、自分が直接設定した覚えの無い設定ファイルが、「コンフリクトしてまっせ!旦那」と、たくさん表示され、いちいち確認しないといけなくて、訳分からん。適当に、そのままでOKとかしていたら、案の定upgrade失敗w
 心機一転、FreeBSD10.0をインストールするすることにした。


  1. FreeBSD10.0のFreeBSD-10.0-RELEASE-amd64-bootonly.isoをダウンロードして、さくらVPSにこのISOファイルをSFTPでアップロード、OS再インストールをさくらVPSコントロールパネルを使って行う。
  2. virtioがさくらVPSコントロールパネルでチェックを入れるだけで使えるようになってて、楽になった。

2013年10月15日火曜日

VMWare Player のネットワークアダプタをブリッジで使う

 VMWareも5・6年くらい前は良く使っていたが、最近はほとんど使わなくなっていたが、BeagleBone BlackへOSを載せるために、LinuxやらFreeBSDをインストールして久々に使った。
 以前使っていたときは、250GBのHDDが主流の時代で、今は2TBの時代なんで、仮想マシンに割り当てる50GB程度の領域なんざ、屁でもなくなってしまった。

 さて、仮想ネットワークアダプタをNATで使うと、DHCPでIPアドレス振ってくれて便利だし、ホストPCからTeraTerm使ってsshで接続するには便利だが、タブレットからログインして寝転びながらとかしようとすると、ホストPCからポートフォワードとかしないといけない。sshの22番ポートだけなんでそんなに面倒ではないが、VMWare Playerだと簡単にできないのか、メニュー探したがなかった。まあググれば何とかなると思いつつ、使っていると、svnでFreeBSDの/usr/srcをチェックアウトすると、途中でハングすること数回。うちの環境じゃ、うまくいって1時間程度掛かるので、仮想マシンのHDDを最初からすべて割り当てるとかしてないと、途中でパケットを失うとかするのかなと思い、ブリッジにしてみようと試みた。

 そのときの試行錯誤から、備忘メモ。

 1.仮想マシンのネットワークアダプタをブリッジにして、物理ネットワーク接続の状態を複製もチェックを入れる。アダプタの設定で、ホストPCのネットワークアダプタを選びチェックを入れる。

 2.ホストPCの コントロール パネル\ネットワークとインターネット\ネットワーク接続画面で、1.で選んだアダプタのプロパティーでVMware Bridge Protocolにチェックを入れる。
 
 3. ネットワーク接続画面にはVMware Network Adapter VMnet1があるが、こちらのVMware Bridge Protocolにはチェックをいれなくても結構。これは、あくまでホストPCが仮想マシンとのネットワークにつながった仮想アダプタの設定と考えるべし。これを、仮想マシンのアダプタだと考えてしまうのは間違いである。
 でも、ブリッジの場合、 VMware Network Adapter VMnet1は空気みたいなもんで、プロパティのチェックマーク全部外しても、問題なかったw 便宜上そこにあるだけなんだろうな。NATの場合のVMnet8とは違うみたい。

 4.仮想マシン側は、仮想マシンのOS内で設定する。ホストPCがDHCPならばDHCPで、ホストPCが固定IPなら固定IPで使うがよろしと、どこかで書いてあったが、別にそうしなければいけない訳ではない。固定IPだと他と重複しないように注意。ま、基本中の基本。

2013年10月11日金曜日

BeagleBone Black に FreeBSDをインストール 9

 ここしばらくBeagleBone BlackにFreeBSDをインストールすべく、いろいろ試してきた。一応MicroSDのimg作成までたどり着けそうなので、まとめておこう。
 crochet.shを使ったimg作成方法が良く作られているので、これを使う。ブラックボックス化されていて、何がされているのかは分かりにくいところはあるが、logも出力されて残るので、詳しく見てみることもできる。make xdev, make buildworld, make installworldとか何やってるのか良く分からないうちは、一連の作業を連続で行えるので、便利ではある。いろいろカスタマイズもできるようになっているみたいだ。
 URLは https://github.com/kientzle/crochet-freebsd.git

1.コンパイル環境としてFreeBSD(i386)を用意する。

 FreeBSDは10.0Alpha5のi386(32bit)版がよさそう。9.2と10.0ではコンパイラがgcc→clangになっているがBeagleBone用のソースが10.0なんで相性がよさそう。
 32bitがいい理由は途中portsパッケージのインストールを要求されるのだが、これが32bitでのコンパイルの方が問題無いからだ。
 PC上にVMWarePlayerを用意して、50Gくらいのディスクにインストールする。TeraTermからsshログインできるようにしておいたほうが便利。OSインストールして、ユーザーアカウント登録している所から始める。#はrootでの作業、$はユーザーアカウントでの作業。

 # portsnap fetch
 # portsnap extract    # portsがインストールできるようになる
 # cd/usr/ports/security/sudo
 # make install clean   # sudoのインストール
 # visudo               # これでユーザーがsudoを実行できるようにしておく
 # cd /usr/ports/devel/git
 # make install clean    # gitのインストール SVNにチェックを入れると
                # subversionもインストールされる

 portsからgit (subversion含む), sudo をインストールしておく。ソースはユーザーアカウントしておいて、ログインディレクトリ直下に配置し、sudo コマンド使ってrootでコンパイル(crochet.shの実行)をすることになる。

2.chrochet-freebsdの取得

 $ cd
 $ git clone https://github.com/kientzle/crochet-freebsd.git

3.config.shを用意する
 config.sh.sample を参考にconfig.shを用意する。

 board_setup BeagleBone
 option ImageSize 15900mb # for 16 Gigabyte card
 option User brahmint
 option SwapFile 768mb
 option UsrSrc
 FREEBSD_SRC=${TOPDIR}/src
 WORKDIR=${TOPDIR}/work

とりあえず、このあたりを設定してみる。

4.crochet.shを実行する

$ sudo /bin/sh crochet.sh -c config.sh
Password:xxx
Starting at Fri Oct 11 15:16:46 JST 2013
Loading configuration from config.sh
Board: BeagleBone
Option: ImageSize 15900mb
Option: User brahmint
Option: SwapFile 768mb
Option: UsrSrc
grep: /usr/home/brahmint/crochet-freebsd/src/sys/conf/newvers.sh: No such file or directory
OS major version is:
Image name is: /usr/home/brahmint/crochet-freebsd/work/FreeBSD-armv6--BEAGLEBONE.img
[: : bad number
[: : bad number
[: : bad number
Object files are at:
This does not look like a FreeBSD source tree.
Did not find: /usr/home/brahmint/crochet-freebsd/src/COPYRIGHT

You can obtain a suitable FreeBSD source tree with the folowing commands:

 $ svn co https://svn0.us-west.freebsd.org/base/head /usr/home/brahmint/crochet-freebsd/src

Set $FREEBSD_SRC in config.sh if you have the sources in a different directory.
Run this script again after you have the sources installed.

$

4.srcを用意する
 chrochet.shよりソースを読み込めと指示あり。

$ svn co https://svn0.us-west.freebsd.org/base/head /usr/home/brahmint/crochet-freebsd/src
A    src/tools
A    src/tools/debugscripts
A    src/tools/build

   ・
   ・  (途中略)
   ・
A    src/games/fortune/README
A    src/games/fortune/tools/do_uniq.py
A    src/games/fortune/fortune/fortune.c
A    src/games/ppt/ppt.c
A    src/games/morse/morse.6
 U   src
Checked out revision 256307.


 1時間ほどでチェックアウトが終わる。

5.chrochet.shの再実行

$ sudo /bin/sh crochet.sh -c config.sh
Starting at Fri Oct 11 18:32:41 JST 2013
Loading configuration from config.sh
Board: BeagleBone
Option: ImageSize 15900mb
Option: User brahmint
Option: SwapFile 768mb
Option: UsrSrc
OS major version is: 11
Image name is: /usr/home/brahmint/crochet-freebsd/work/FreeBSD-armv6-11.0-BEAGLEBONE.img
Object files are at:
Found suitable FreeBSD source tree in:
    /usr/home/brahmint/crochet-freebsd/src

Please consider installing sysutils/u-boot-beaglebone-eabi port.
That will avoid the need for Crochet to build U-Boot.

Can't find appropriate FreeBSD xdev tools.
If you have FreeBSD-CURRENT sources in /usr/src, you can build these with the following command:

cd /usr/src && sudo make XDEV=arm XDEV_ARCH=armv6 xdev

Run this script again after you have the xdev tools installed.
$



6.クロスコンパイル環境の構築
 
 ログにはthe xdev toolsをインストールしてねという事で

 $ cd /usr/src && sudo make XDEV=arm XDEV_ARCH=armv6 xdev

 (実行時間1時間38分)

7. U-Boot
 ログにはsysutils/u-boot-beaglebone-eabiのportsも入れとけば、crochet.shでのu-bootのビルドは必要ないというこなので、こちらも。

 $ cd /usr/ports/sysutils/u-boot-beaglebone-eabi && sudo make install clean

 arm-eabi-gcc-4.5.4 とかのインストールがされるので、そこそこ時間は掛かる。
 この途中で、gmp-5.1.3のビルド途中でエラーが出る。最後の方のログはこんな感じ。
 
/bin/sh /usr/ports/math/gmp/work/gnome-libtool --mode=compile --tag=CC ../mpn/m4-ccas --m4="m4" cc -c -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I..  -DOPERATION_`echo add_n | sed 's/_$//'`     -O2 -pipe -fno-strict-aliasing -Wa,--noexecstack `test -f 'add_n.asm' || echo './'`add_n.asm
gnome-libtool: compile:  ../mpn/m4-ccas --m4=m4 cc -c -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_add_n -O2 -pipe -fno-strict-aliasing -Wa,--noexecstack add_n.asm  -fPIC -DPIC -o .libs/add_n.o
m4  -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_add_n -DPIC add_n.asm >tmp-add_n.s
 cc -c -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_add_n -O2 -pipe -fno-strict-aliasing -Wa,--noexecstack tmp-add_n.s -fPIC -DPIC -o .libs/add_n.o
cc: warning: argument unused during compilation: '-D HAVE_CONFIG_H'
cc: warning: argument unused during compilation: '-I .'
cc: warning: argument unused during compilation: '-I ..'
cc: warning: argument unused during compilation: '-D __GMP_WITHIN_GMP'
cc: warning: argument unused during compilation: '-I ..'
cc: warning: argument unused during compilation: '-D OPERATION_add_n'
cc: warning: argument unused during compilation: '-fno-strict-aliasing'
cc: warning: argument unused during compilation: '-fPIC'
cc: warning: argument unused during compilation: '-D PIC'
tmp-add_n.s:76:15: error: expected ']' in brackets expression
        ldr     r12, [r13, #0]
                         ^
tmp-add_n.s:77:11: error: unexpected token in argument list
        stmfd   r13!, { r8, r9, r14 }
                   ^
tmp-add_n.s:78:11: error: unknown token in expression
        cmp     r12, #1
                     ^
tmp-add_n.s:79:2: error: invalid instruction mnemonic 'b'
        b       .Lent
        ^
tmp-add_n.s:87:11: error: unexpected token in argument list
        stmfd   r13!, { r8, r9, r14 }
                   ^
tmp-add_n.s:88:10: error: unknown token in expression
        cmn     r0, #0
                    ^
tmp-add_n.s:89:16: error: unknown token in expression
.Lent:  tst     r3, #1
                    ^
tmp-add_n.s:90:2: error: invalid instruction mnemonic 'beq'
        beq     .Lskip1
        ^~~
tmp-add_n.s:91:17: error: unknown token in expression
        ldr     r12, [r1], #4
                           ^
tmp-add_n.s:92:17: error: unknown token in expression
        ldr     r14, [r2], #4
                           ^
tmp-add_n.s:93:2: error: invalid instruction mnemonic 'adcs'
        adcs    r12, r12, r14
        ^~~~
tmp-add_n.s:94:17: error: unknown token in expression
        str     r12, [r0], #4
                           ^
tmp-add_n.s:96:10: error: unknown token in expression
        tst     r3, #2
                    ^
tmp-add_n.s:97:2: error: invalid instruction mnemonic 'beq'
        beq     .Lskip2
        ^~~
tmp-add_n.s:98:10: error: unexpected token in argument list
        ldmia   r1!, { r8, r9 }
                  ^
tmp-add_n.s:99:10: error: unexpected token in argument list
        ldmia   r2!, { r12, r14 }
                  ^
tmp-add_n.s:100:2: error: invalid instruction mnemonic 'adcs'
        adcs    r8, r8, r12
        ^~~~
tmp-add_n.s:101:2: error: invalid instruction mnemonic 'adcs'
        adcs    r9, r9, r14
        ^~~~
tmp-add_n.s:102:10: error: unexpected token in argument list
        stmia   r0!, { r8, r9 }
                  ^
tmp-add_n.s:104:15: error: unknown token in expression
        bics    r3, r3, #3
                        ^
tmp-add_n.s:105:2: error: invalid instruction mnemonic 'beq'
        beq     .Lrtn
        ^~~
tmp-add_n.s:106:11: error: unexpected token in argument list
        stmfd   r13!, { r4, r5, r6, r7 }
                   ^
tmp-add_n.s:108:16: error: unexpected token in argument list
.Ltop:  ldmia   r1!, { r4, r5, r6, r7 }
                  ^
tmp-add_n.s:109:10: error: unexpected token in argument list
        ldmia   r2!, { r8, r9, r12, r14 }
                  ^
tmp-add_n.s:110:2: error: invalid instruction mnemonic 'adcs'
        adcs    r4, r4, r8
        ^~~~
tmp-add_n.s:111:14: error: unknown token in expression
        sub     r3, r3, #4
                        ^
tmp-add_n.s:112:2: error: invalid instruction mnemonic 'adcs'
        adcs    r5, r5, r9
        ^~~~
tmp-add_n.s:113:2: error: invalid instruction mnemonic 'adcs'
        adcs    r6, r6, r12
        ^~~~
tmp-add_n.s:114:2: error: invalid instruction mnemonic 'adcs'
        adcs    r7, r7, r14
        ^~~~
tmp-add_n.s:115:10: error: unexpected token in argument list
        stmia   r0!, { r4, r5, r6, r7 }
                  ^
tmp-add_n.s:116:10: error: unknown token in expression
        teq     r3, #0
                    ^
tmp-add_n.s:117:2: error: invalid instruction mnemonic 'bne'
        bne     .Ltop
        ^~~
tmp-add_n.s:119:11: error: unexpected token in argument list
        ldmfd   r13!, { r4, r5, r6, r7 }
                   ^
tmp-add_n.s:121:20: error: unknown token in expression
.Lrtn:  adc     r0, r3, #0
                        ^
tmp-add_n.s:122:11: error: unexpected token in argument list
        ldmfd   r13!, { r8, r9, r15 }
                   ^
*** [add_n.lo] Error code 1

make[7]: stopped in /usr/ports/math/gmp/work/gmp-5.1.3/mpn
1 error

make[7]: stopped in /usr/ports/math/gmp/work/gmp-5.1.3/mpn
*** [all-recursive] Error code 1

make[6]: stopped in /usr/ports/math/gmp/work/gmp-5.1.3
1 error

make[6]: stopped in /usr/ports/math/gmp/work/gmp-5.1.3
*** [all] Error code 2

make[5]: stopped in /usr/ports/math/gmp/work/gmp-5.1.3
1 error

make[5]: stopped in /usr/ports/math/gmp/work/gmp-5.1.3
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[4]: stopped in /usr/ports/math/gmp
*** Error code 1

Stop.
make[3]: stopped in /usr/ports/math/gmp
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/devel/arm-eabi-gcc
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/devel/arm-eabi-gcc
*** Error code 1

Stop.
make: stopped in /usr/ports/sysutils/u-boot-beaglebone-eabi
$


はて、どうしよう。手に余る感じだ。

2013年10月1日火曜日

BeagleBone Black に FreeBSDをインストール 8

 Ubuntuは簡単にインストール出来たので。FreeBSDはゆっくりと試していく事にする。

 10.0 Alpha2 を Atom D510 マシンへインストールして

1.クロスコンパイル環境
# cd /usr/src
# make xdev XDEV=arm XDEV_ARCH=armv6
 
2.crochet-freebsd.gitの読み込みとコンパイル

$ git clone git://github.com/kientzle/crochet-freebsd.git
Cloning into 'crochet-freebsd'...
remote: Counting objects: 2219, done.
remote: Compressing objects: 100% (1131/1131), done.
remote: Total 2219 (delta 983), reused 2203 (delta 970)
Receiving objects: 100% (2219/2219), 4.15 MiB | 847.00 KiB/s, done.
Resolving deltas: 100% (983/983), done.
Checking connectivity... done
$ cd crochet-freebsd
$ ls
README.md               config.sh.sample        lib
board                   crochet.sh              option
 
(ここでconfig.sh.sampleを修正したものでconfig.shを作成)
 

$ sudo sh crochet.sh -b BeagleBone -c config.sh
Password:xxxx
Starting at Mon Sep 30 11:27:14 JST 2013
Board: BeagleBone
Loading configuration from config.sh
Board: BeagleBone
Option: ImageSize 15900mb
Option: AutoSize
Option: SwapFile 768mb
Option: UsrSrc
Found suitable FreeBSD source tree in:
    /usr/src

Please consider installing sysutils/u-boot-beaglebone-eabi port.
That will avoid the need for Crochet to build U-Boot.

Found FreeBSD xdev tools for armv6
U-Boot build requires 'gsed'
Please install textproc/gsed and re-run this script.

# cd /usr/ports/textproc/gsed
# make install clean

$ sudo sh crochet.sh -b BeagleBone -c config.sh
Starting at Mon Sep 30 11:31:00 JST 2013
Board: BeagleBone
Loading configuration from config.sh
Board: BeagleBone
Option: ImageSize 15900mb
Option: AutoSize
Option: SwapFile 768mb
Option: UsrSrc
Found suitable FreeBSD source tree in:
    /usr/src

Please consider installing sysutils/u-boot-beaglebone-eabi port.
That will avoid the need for Crochet to build U-Boot.

Found FreeBSD xdev tools for armv6

Expected to see U-Boot sources in
    /usr/home/brahmint/crochet-freebsd/u-boot-2013.04
Use the following command to get the U-Boot sources

 $ ftp ftp://ftp.denx.de/pub/u-boot/u-boot-2013.04.tar.bz2
 $ tar xf u-boot-2013.04.tar.bz2

Edit $BEAGLEBONE_UBOOT_SRC in config.sh if you want the sources in a different directory.
Run this script again after you have the U-Boot sources installed.

$ ftp ftp://ftp.denx.de/pub/u-boot/u-boot-2013.04.tar.bz2
Connected to themis.denx.de.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 11 of 50 allowed.
220-Local time is now 04:32. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
230 Anonymous user logged in
Remote system type is UNIX.
Using binary mode to transfer files.
200 TYPE is now 8-bit binary
250 OK. Current directory is /pub
250 OK. Current directory is /pub/u-boot
local: u-boot-2013.04.tar.bz2 remote: u-boot-2013.04.tar.bz2
229 Extended Passive mode OK (|||64656|)
150-Accepted data connection
150 9606.8 kbytes to download
100% |************************************************************************************|  9606 KiB   47.45 Ki
226-File successfully transferred
226 199.630 seconds (measured here), 48.12 Kbytes per second
9837387 bytes received in 03:22 (47.45 KiB/s)
221-Goodbye. You uploaded 0 and downloaded 9607 kbytes.
221 Logout.

$ tar xf u-boot-2013.04.tar.bz2
$ ls -l
total 9720
-rw-r--r--   1 brahmint   brahmint      4188 Sep 30 10:39 README.md
drwxr-xr-x  10 brahmint   brahmint       512 Sep 30 10:39 board
-rw-r--r--   1 brahmint   brahmint      8790 Sep 30 11:44 config.sh
-rw-r--r--   1 brahmint   brahmint      8717 Sep 30 10:39 config.sh.sample
-rwxr-xr-x   1 brahmint   brahmint      1615 Sep 30 10:39 crochet.sh
drwxr-xr-x   2 brahmint   brahmint       512 Sep 30 10:39 lib
drwxr-xr-x  10 brahmint   brahmint       512 Sep 30 10:39 option
drwxr-xr-x  20 brahmint   brahmint      1024 Apr 19 23:25 u-boot-2013.04
-rw-r--r--   1 brahmint   brahmint   9837387 Apr 20 04:53 u-boot-2013.04.tar.bz2
drwxr-xr-x   2 root       brahmint       512 Sep 30 11:27 work
$ sudo sh crochet.sh -b BeagleBone -c config.sh
Password:xxxx
Starting at Mon Sep 30 15:11:04 JST 2013
Board: BeagleBone
Loading configuration from config.sh
Board: BeagleBone
Option: ImageSize 15900mb
Option: AutoSize
Option: SwapFile 768mb
Option: UsrSrc
Found suitable FreeBSD source tree in:
    /usr/src

Please consider installing sysutils/u-boot-beaglebone-eabi port.
That will avoid the need for Crochet to build U-Boot.

Found FreeBSD xdev tools for armv6
Found U-Boot sources in:
    /usr/home/brahmint/crochet-freebsd/u-boot-2013.04

Please consider installing sysutils/u-boot-beaglebone-eabi port.
That will avoid the need for Crochet to build U-Boot.

Found FreeBSD xdev tools for armv6
Found U-Boot sources in:
    /usr/home/brahmint/crochet-freebsd/u-boot-2013.04
Building FreeBSD armv6 world at Mon Sep 30 15:11:05 JST 2013
    (Logging to /usr/home/brahmint/crochet-freebsd/work/_.buildworld.armv6.log)Failed to build FreeBSD armv6 world.
Log in /usr/home/brahmint/crochet-freebsd/work/_.buildworld.armv6.log

make[1]: stopped in /usr/src
1 error

make[1]: stopped in /usr/src
*** [buildworld] Error code 2

make: stopped in /usr/src
1 error

make: stopped in /usr/src
$ date
Mon Sep 30 22:56:46 JST 2013

------------------ 
ひえー、7時間45分後にエラーでたーw
(dateコマンドは長く掛かりそうなんで途中でキーボードから先打ちしてたw)
ログ調べてみよう。
------------------  
…前のほうは略… 
c++   -O -pipe -I/usr/src/lib/clang/libllvmtransformutils/../../../contrib/llvm/include -I/usr/src/lib/clang/libllvmtransformutils/../../../contrib/llvm/tools/clang/include -I/usr/src/lib/clang/libllvmtransformutils/../../../contrib/llvm/lib/Transforms/Utils -I. -I/usr/src/lib/clang/libllvmtransformutils/../../../contrib/llvm/../../lib/clang/include -DLLVM_ON_UNIX -DLLVM_ON_FREEBSD -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -fno-strict-aliasing -DLLVM_DEFAULT_TARGET_TRIPLE=\"armv6-gnueabi-freebsd10.0\" -DLLVM_HOST_TRIPLE=\"armv6-unknown-freebsd10.0\" -DDEFAULT_SYSROOT=\"\" -Qunused-arguments -Wno-c++11-extensions -fno-exceptions -fno-rtti -c /usr/src/lib/clang/libllvmtransformutils/../../../contrib/llvm/lib/Transforms/Utils/SimplifyInstructions.cpp -o SimplifyInstructions.o
In file included from /usr/src/lib/clang/libllvmtransformutils/../../../contrib/llvm/lib/Transforms/Utils/SimplifyInstructions.cpp:29:
In file included from /usr/src/lib/clang/libllvmtransformutils/../../../contrib/llvm/include/llvm/Transforms/Utils/Local.h:19:
In file included from /usr/src/lib/clang/libllvmtransformutils/../../../contrib/llvm/include/llvm/IR/IRBuilder.h:23:
In file included from /usr/src/lib/clang/libllvmtransformutils/../../../contrib/llvm/include/llvm/IR/Instructions.h:26:
In file included from /usr/src/lib/clang/libllvmtransformutils/../../../contrib/llvm/include/llvm/Support/IntegersSubset.h:24:
/usr/home/umainjana/crochet-freebsd/work/obj/arm.armv6/usr/src/tmp/usr/include/c++/v1/list:1498:57: error: no member named 'allocate' in 'std::__1::allocator_traits<std::__1::allocator<std::__1::__list_node<llvm::IntRange<llvm::IntItem>, void *> > >'
    unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));
                                                        ^
/usr/src/lib/clang/libllvmtransformutils/../../../contrib/llvm/include/llvm/Support/IntegersSubsetMapping.h:544:14: note: in instantiation of member function 'std::__1::list<llvm::IntRange<llvm::IntItem>, std::__1::allocator<llvm::IntRange<llvm::IntItem> > >::push_back' requested here
      Ranges.push_back(i->first);
             ^
/usr/src/lib/clang/libllvmtransformutils/../../../contrib/llvm/include/llvm/IR/Instructions.h:2809:27: note: in instantiation of member function 'llvm::IntegersSubsetMapping<llvm::BasicBlock, llvm::IntegersSubset, llvm::IntItem>::getCase' requested here
      *SubsetIt = Mapping.getCase();
                          ^
1 error generated.
*** [SimplifyInstructions.o] Error code 1

make[6]: stopped in /usr/src/lib/clang/libllvmtransformutils
1 error

make[6]: stopped in /usr/src/lib/clang/libllvmtransformutils
*** [all] Error code 2

make[5]: stopped in /usr/src/lib/clang
1 error

make[5]: stopped in /usr/src/lib/clang
*** [all] Error code 2

make[4]: stopped in /usr/src/lib
1 error

make[4]: stopped in /usr/src/lib
A failure has been detected in another branch of the parallel make

make[3]: stopped in /usr/src
*** [libraries] Error code 2

make[2]: stopped in /usr/src
1 error

make[2]: stopped in /usr/src
*** [_libraries] Error code 2

make[1]: stopped in /usr/src
1 error

make[1]: stopped in /usr/src
*** [buildworld] Error code 2

make: stopped in /usr/src
1 error

make: stopped in /usr/src
 

2013年9月28日土曜日

BeagleBone Black に FreeBSDをインストール 7

 いろいろ調べていたら、FreeBSDには、最初からクロスコンパイラ環境のソースも納められている事が判明w
 
# cd /usr/src
# make xdev XDEV=arm XDEV_ARCH=armv6
 
 これで、/usr/armv6-freebsd 配下に arm用ツールチェインが作成されるらしい。
 実行して確認してみたところ。

# cd /usr/armv6-freebsd
# ls -ltotal 60
drwxr-xr-x   2 root  wheel   512 Sep 12 19:07 bin
drwxr-xr-x   7 root  wheel   512 Sep 12 19:07 boot
dr-xr-xr-x   2 root  wheel   512 Sep 12 19:07 dev
drwxr-xr-x  21 root  wheel   512 Sep 12 19:07 etc
drwxr-xr-x   3 root  wheel  1536 Sep 12 20:11 lib
drwxr-xr-x   3 root  wheel   512 Sep 12 19:07 libexec
drwxr-xr-x   2 root  wheel   512 Sep 12 19:07 media
drwxr-xr-x   2 root  wheel   512 Sep 12 19:07 mnt
dr-xr-xr-x   2 root  wheel   512 Sep 12 19:07 proc
drwxr-xr-x   2 root  wheel   512 Sep 12 19:07 rescue
drwxr-xr-x   2 root  wheel   512 Sep 12 19:07 root
drwxr-xr-x   2 root  wheel   512 Sep 12 19:07 sbin
drwxrwxrwt   2 root  wheel   512 Sep 12 19:07 tmp
drwxr-xr-x  15 root  wheel   512 Sep 12 19:07 usr
drwxr-xr-x   2 root  wheel   512 Sep 12 19:07 var
 とまあ、こんな感じ。
  http://blog.khubla.com/freebsd/building-a-beaglebone-freebsd-kernel
 ここを参考にして、続ける。

# git clone git://github.com/kientzle/crochet-freebsd.git
Cloning into 'crochet-freebsd'...
remote: Counting objects: 2200, done.
remote: Compressing objects: 100% (1114/1114), done.
remote: Total 2200 (delta 988), reused 2179 (delta 970)
Receiving objects: 100% (2200/2200), 4.14 MiB | 776.00 KiB/s, done.
Resolving deltas: 100% (988/988), done.
Checking connectivity... done
# cd crochet-freebsd
# ls -l
total 44
drwxr-xr-x   8 root  wheel   512 Sep 12 21:35 .git
-rw-r--r--   1 root  wheel    29 Sep 12 21:35 .gitignore
-rw-r--r--   1 root  wheel  4188 Sep 12 21:35 README.md
drwxr-xr-x  10 root  wheel   512 Sep 12 21:35 board
-rw-r--r--   1 root  wheel  8717 Sep 12 21:35 config.sh.sample
-rwxr-xr-x   1 root  wheel  1615 Sep 12 21:35 crochet.sh
drwxr-xr-x   2 root  wheel   512 Sep 12 21:35 lib
drwxr-xr-x  10 root  wheel   512 Sep 12 21:35 option
 
 とまあ、いろいろ試行錯誤していたのだが、
UART用のケーブル、http://akizukidenshi.com/catalog/g/gM-05840/ 
これを買いに秋葉に2週連続で足を運んだんだが、品切れ中orz
コンパイルしたkernelが一発で動いて、LANからsshでログインできれば不要なんだが、うまくいきそうじゃない予感(笑)
FreeBSD も 9.2 のリリース間近で、 10.0のAlpha2が出たりで、どれにするか思案中。
 秋葉に行ったときにMicroSD 16G(Class 10)が699円とか、安かったので2枚買ってきた。
とりあえず、Ubuntuでもインストールして、BeagleBone Black の性能とかを試してみようと思う。
 


2013年9月9日月曜日

BeagleBone Black に FreeBSDをインストール 4

 さて、 U-boot の続きに移ろう。Gitの使い方も良く分からんのだが、FreeBSDマシンでリポジトリをゲットしてみる。

# mkdir uboot
# cd uboot
# git clone git://arago-project.org/git/projects/u-boot-am33x.git
Cloning into 'u-boot-am33x'...
remote: Counting objects: 194729, done.
remote: Compressing objects: 100% (40345/40345), done.
remote: Total 194729 (delta 156551), reused 189594 (delta 151599)
Receiving objects: 100% (194729/194729), 49.90 MiB | 282.00 KiB/s, done.
Resolving deltas: 100% (156551/156551), done.
Checking connectivity... done
Checking out files: 100% (7448/7448), done.


 OK!読み込めた。
 ちょっと、ディレクトリ内部を見てみると…

# ls -l
total 4
drwxr-xr-x  21 root  wheel  1024  9月  9 06:02 u-boot-am33x

# cd u-boot-am33x
# ls -l
total 524
-rw-r--r--    1 root  wheel     274  9月  9 06:01 .checkpatch.conf
drwxr-xr-x    8 root  wheel     512  9月  9 06:02 .git
-rw-r--r--    1 root  wheel     799  9月  9 06:01 .gitignore
-rw-r--r--    1 root  wheel   16398  9月  9 06:01 COPYING
-rw-r--r--    1 root  wheel   12200  9月  9 06:01 CREDITS
-rw-r--r--    1 root  wheel   25370  9月  9 06:01 MAINTAINERS
-rwxr-xr-x    1 root  wheel   21003  9月  9 06:01 MAKEALL
-rw-r--r--    1 root  wheel   27807  9月  9 06:01 Makefile
-rw-r--r--    1 root  wheel  179855  9月  9 06:01 README
drwxr-xr-x    2 root  wheel     512  9月  9 06:01 api
drwxr-xr-x   16 root  wheel     512  9月  9 06:01 arch
drwxr-xr-x  290 root  wheel    5120  9月  9 06:01 board
-rw-r--r--    1 root  wheel  116414  9月  9 06:01 boards.cfg
drwxr-xr-x    3 root  wheel    3584  9月  9 06:01 common
-rw-r--r--    1 root  wheel   10680  9月  9 06:01 config.mk
drwxr-xr-x    2 root  wheel     512  9月  9 06:01 disk
drwxr-xr-x    7 root  wheel    3072  9月  9 06:01 doc
drwxr-xr-x   28 root  wheel     512  9月  9 06:01 drivers
drwxr-xr-x    2 root  wheel     512  9月  9 06:01 dts
drwxr-xr-x    4 root  wheel     512  9月  9 06:01 examples
drwxr-xr-x   11 root  wheel     512  9月  9 06:01 fs
drwxr-xr-x   18 root  wheel    5632  9月  9 06:02 include
drwxr-xr-x    7 root  wheel    1024  9月  9 06:02 lib
-rwxr-xr-x    1 root  wheel    4512  9月  9 06:02 mkconfig
drwxr-xr-x    3 root  wheel     512  9月  9 06:02 nand_spl
drwxr-xr-x    2 root  wheel     512  9月  9 06:02 net
drwxr-xr-x    6 root  wheel     512  9月  9 06:02 post
-rw-r--r--    1 root  wheel    2487  9月  9 06:02 rules.mk
-rw-r--r--    1 root  wheel      17  9月  9 06:02 snapshot.commit
drwxr-xr-x    2 root  wheel     512  9月  9 06:02 spl
drwxr-xr-x    2 root  wheel     512  9月  9 06:02 test
drwxr-xr-x   12 root  wheel    1536  9月  9 06:02 tools


 とまあ、こんな感じ。
 Gitの方が、Subversionより使い易い様な感じがする。現在はSubversionを使っているけど、履歴を残す+サーバーにバックアップするという感覚で使っている。使用者が自分一人だけなんで面倒が少ないけど、グループで開発とかになったら、また別の問題も発生するんだろうな。Subversionを仕事で初めて使いたてのときには、結構updateせずにcommitして、他の人の変更箇所を無視してしまったりという間違いをしていたしなあw

BeagleBone Black に FreeBSDをインストール 3

 前回、「Getting Started Guide に、上記tarファイルの解凍の仕方とかも載っていた。」と書いたが、とんでもなかった。gz2ファイルの解凍までは乗っているが、その後どうすればいいのかは書いてなかったw。
 arm-2013.05-24-arm-none-linux-gnueabi.sh が解凍のシェルスクリプトらしいが、Bash用なのに実行してみたら、次のようなエラーが…
  # bash arm-2013.05-24-arm-none-linux-gnueabi.sh
  arm-2013.05-24-arm-none-linux-gnueabi.sh: 行 181: grep: コマンドが見つかりません
  arm-2013.05-24-arm-none-linux-gnueabi.sh: 行 181: sed: コマンドが見つかりません

 PATHの設定なのかも知れんが、そもそもBASH使う環境になっていないのかも。

 Windows版とLinux版はインストーラーがあるので、面倒が少なくていいのだろう。ディレクトリ構成とか、Linuxと同じなんだろうから、Linux版をインストールすればいいかもしれないが、Linux用のパッケージのインストールの仕方も分からないし、Linuxマシンもない。Linuxをインストールしたマシンを用意するのも面倒だ。とりあえずWindows版をインストールして、ディレクトリ構成とかを調べてみるか…。

 Windows用は arm-2013.05-24-arm-none-linux-gnueabi.exe を実行してインストールしてみた。
環境変数PATHに C:\Program Files (x86)\CodeSourcery\Sourcery_CodeBench_Lite_for_ARM_GNU_Linux\bin_cache が追加されていたが、最後の bin_cache は bin でいいんじゃないかと思って、bin の方も追加しておく。

 Getting Started Guide にあるように、確認のコマンドを打ち込んだら、以下の様に…

>arm-none-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=c:/program\ files\ (x86)/codesourcery/sourcery_codebench_lite_for_arm_gnu_linux/bin/../libexec/gcc/arm-none-
linux-gnueabi/4.7.3/lto-wrapper.exe
Target: arm-none-linux-gnueabi
Configured with: /scratch/jbrown/2013.05-arm-linux-release/src/gcc-4.7-2013.05/configure --build=i686-pc-linux-gnu --host=i686-m
ingw32 --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-e
xtra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} %{funwind-tab
les|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} -D__CS_SOURCERYGXX_MAJ__=2013 -D__CS_SOURCERYGXX_MIN__=5
-D__CS_SOURCERYGXX_REV__=24 %{O2:%{!fno-remove-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-loca
l-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_
atexit --with-pkgversion='Sourcery CodeBench Lite 2013.05-24' --with-bugurl=https://sourcery.mentor.com/GNUToolchain/ --disable-
nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/jbrown
/2013.05-arm-linux-release/install/host-i686-mingw32/arm-none-linux-gnueabi/libc --with-libiconv-prefix=/scratch/jbrown/2013.05-
arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-mingw32/
usr --with-gmp=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux
-gnueabi.extras/host-libs-i686-mingw32/usr --with-mpfr=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-lin
ux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-mingw32/usr --with-mpc=/scratch/jbrown/2013.05-arm-linux-
release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-mingw32/usr --with
-ppl=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.e
xtras/host-libs-i686-mingw32/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratc
h/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-l
ibs-i686-mingw32/usr --with-libelf=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.
05-24-arm-none-linux-gnueabi.extras/host-libs-i686-mingw32/usr --disable-libgomp --disable-libitm --enable-poison-system-directo
ries --with-build-time-tools=/scratch/jbrown/2013.05-arm-linux-release/obj/tools-i686-pc-linux-gnu-2013.05-24-arm-none-linux-gnu
eabi-i686-mingw32/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/jbrown/2013.05-arm-linux-release/obj/tools-i686-pc
-linux-gnu-2013.05-24-arm-none-linux-gnueabi-i686-mingw32/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.7.3 (Sourcery CodeBench Lite 2013.05-24)
 

 とりあえず、使えるようだ。
 一応、 ディレクトリ構成とbin配下を記す。

>cd C:\Program Files (x86)\CodeSourcery\Sourcery_CodeBench_Lite_for_ARM_GNU_Linux
 
>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 9AE3-EB0F です

 C:\Program Files (x86)\CodeSourcery\Sourcery_CodeBench_Lite_for_ARM_GNU_Linux のディレクトリ

2013/09/08  14:23    <DIR>          .
2013/09/08  14:23    <DIR>          ..
2013/09/08  14:23    <DIR>          arm-none-linux-gnueabi
2013/09/08  14:23    <DIR>          bin
2013/09/08  14:21    <DIR>          i686-mingw32
2013/09/08  14:23    <DIR>          jre
2013/09/08  14:21    <DIR>          lib
2013/09/08  14:21    <DIR>          libexec
2013/04/30  03:13               692 README_Sourcery_CodeBench_Lite_for_ARM_GNU_Linux.html
2013/04/30  03:13               483 README_Sourcery_CodeBench_Lite_for_ARM_GNU_Linux.txt
2013/09/08  14:21    <DIR>          share
2013/09/08  14:24    <DIR>          uninstall
2013/09/08  14:21             2,024 Uninstall_Sourcery_CodeBench_Lite_for_ARM_GNU_Linux.lnk
               3 個のファイル               3,199 バイト
              10 個のディレクトリ  1,083,337,068,544 バイトの空き領域
 

>cd bin
 

>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 9AE3-EB0F です

 C:\Program Files (x86)\CodeSourcery\Sourcery_CodeBench_Lite_for_ARM_GNU_Linux\bin のディレクトリ

2013/09/08  14:23    <DIR>          .
2013/09/08  14:23    <DIR>          ..
2013/04/30  03:12           759,310 arm-none-linux-gnueabi-addr2line.exe
2013/04/30  19:12           784,910 arm-none-linux-gnueabi-ar.exe
2013/04/30  19:12         1,266,190 arm-none-linux-gnueabi-as.exe
2013/04/30  03:12         1,457,678 arm-none-linux-gnueabi-c++.exe
2013/04/30  03:12           758,798 arm-none-linux-gnueabi-c++filt.exe
2013/04/30  03:12         1,456,142 arm-none-linux-gnueabi-cpp.exe
2013/04/30  03:12            75,278 arm-none-linux-gnueabi-elfedit.exe
2013/04/30  03:12         1,457,678 arm-none-linux-gnueabi-g++.exe
2013/04/30  03:12         1,454,606 arm-none-linux-gnueabi-gcc-4.7.3.exe
2013/04/30  03:12            58,894 arm-none-linux-gnueabi-gcc-ar.exe
2013/04/30  03:12            58,894 arm-none-linux-gnueabi-gcc-nm.exe
2013/04/30  03:12            58,894 arm-none-linux-gnueabi-gcc-ranlib.exe
2013/04/30  03:12         1,454,606 arm-none-linux-gnueabi-gcc.exe
2013/04/30  03:12         1,167,886 arm-none-linux-gnueabi-gcov.exe
2013/04/30  03:12         4,893,198 arm-none-linux-gnueabi-gdb.exe
2013/04/30  03:12           829,966 arm-none-linux-gnueabi-gprof.exe
2013/04/30  19:12         1,227,278 arm-none-linux-gnueabi-ld.exe
2013/04/30  19:12           770,062 arm-none-linux-gnueabi-nm.exe
2013/04/30  19:12           928,782 arm-none-linux-gnueabi-objcopy.exe
2013/04/30  19:12         1,115,662 arm-none-linux-gnueabi-objdump.exe
2013/04/30  19:12           784,910 arm-none-linux-gnueabi-ranlib.exe
2013/04/30  03:12           438,798 arm-none-linux-gnueabi-readelf.exe
2013/04/30  03:12           760,846 arm-none-linux-gnueabi-size.exe
2013/04/30  03:12           760,334 arm-none-linux-gnueabi-strings.exe
2013/04/30  19:12           928,782 arm-none-linux-gnueabi-strip.exe
2013/04/30  19:12           214,030 cs-make.exe
2013/04/30  19:12            69,646 cs-rm.exe
              27 個のファイル          25,992,058 バイト
               2 個のディレクトリ  1,083,337,011,200 バイトの空き領域


2013年9月7日土曜日

BeagleBone Black に FreeBSDをインストール 2

 4.Build U-Boot

  i. Take U-Boot source from TI / Arago Project U-Boot GIT repository: http://arago-project.org/git/projects/U-Boot-am33x.git

   これのために、portsからGitをFreeBSDにインストール。
   /usr/ports/devel/git にて make install clean の呪文を唱える。
  # git --version
  git version 1.8.3.4

   とりあえずGitのインストールだけで、リポジトリの取得は後で。

  ii. Install some ARM cross tools (i.e. CodeSourcery)

   クロスコンパイラーとか必要なんで http://www.mentor.com/ から
   氏名やらメールアドレス打ち込んで申し込むと、メールが送られてきて、
   ダウンロードのページに誘導される。
   WindowsとLinux用のインストーラーはあるが、FreeBSD用はないので
   Source Tarを選ぶと
   arm-2013.05-24-arm-none-linux-gnueabi.src.tar.bz2
   というファイルがダウンロードされる。
   こいつをとりあえず試してみることにする。

   ダウンロードして解凍して、tarファイルを確認
   /root 配下に CodeSourcery でディレクトリを作成、その下でtarファイルを解凍
   arm-2013.05-24-arm-none-linux-gnueabi というディレクトリに各ファイルが出来ている



  -rw-r--r--  1 root  wheel      1014 Apr 30 19:21 arm-2013.05-24-arm-none-linux-gnueabi-summary.xml
   -rw-r--r--  1 root  wheel   2987780 Apr 30 19:21 arm-2013.05-24-arm-none-linux-gnueabi.sh
   -rw-r--r--  1 root  wheel  20427087 Apr 30 17:54 binutils-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel    596138 Apr 30 17:55 cloog-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel     43075 Apr 30 17:57 config-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel   5156461 Apr 30 17:57 coreutils-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel    375490 Apr 30 17:57 cs-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel    430787 Apr 30 17:57 expat-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel  77188106 Apr 30 17:55 gcc-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel  21121592 Apr 30 17:55 gdb-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel  17954037 Apr 30 17:56 glibc-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel     63286 Apr 30 17:56 glibc_localedef-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel   2056651 Apr 30 17:55 gmp-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel    319602 Apr 30 17:57 json_c-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel   2500884 Apr 30 17:57 libcurl-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel    135455 Apr 30 17:57 libelf-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel   3697970 Apr 30 17:57 libiconv-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel  86111518 Apr 30 17:57 linux-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel   1204404 Apr 30 17:57 make-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel    505944 Apr 30 17:55 mpc-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel   1227542 Apr 30 17:55 mpfr-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel   2040260 Apr 30 17:55 ncurses-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel   3588916 Apr 30 17:57 openssl-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel  12451504 Apr 30 17:55 ppl-2013.05-24.tar.bz2
   -rw-r--r--  1 root  wheel    508904 Apr 30 17:55 zlib-2013.05-24.tar.bz2

  他にドキュメント類のPDFファイルがあるのでそれらもダウンロードしておく。
  Getting Started Guide に、上記tarファイルの解凍の仕方とかも載っていた。