[[Galileo]]

* IntelのGalileoにGolangを入れる - Galileo [#bcc98db9]

#contents

** 概要 [#i2d551f6]
GalileoでGoが動くといいよねという電波を受信したのでやってみた.~
どうやらGolang自体のクロスビルドは相当大変そうだったので,Galileo上でビルドすることにした.~

''現状できてません''
''結論から言うと無理です.以下は作業ログ''

** セットアップ [#f61db94e]
この方法を使用するには,拙作のイメージを使用する必要がある.~
(Intel標準イメージでやる場合は,自分でパッケージ類をビルドしなければならない)~
[[ミニイメージのダウンロード>IntelのGalileoのSDカード用Linuxイメージを作る - Galileo#fb8834e8]]~

その上で,~
[[作成したIntelのGalileoのSDカード用Linuxイメージを使う - Galileo]]~
[[IntelのGalileoでパッケージマネージャopkgを使う - Galileo]]~
にある方法に従ってパッケージマネージャの設定を行う.

設定が終わったら,以下のパッケージをインストールする.
#highlightjs(no-highlight){{ 
root@clanton:~# opkg update
root@clanton:~# opkg install mercurial gcc gcc-symlink
}}

** Goのソースコードの取得 [#ea7cca5c]
[[Installing Go from source - The Go Programming Language:http://golang.org/doc/install/source]]の"Fetch the repository"に従う.~
とてつもなく時間がかかるのでアーカイブで落としてきたほうがいいかも.

** ビルド…の前に [#a2105431]
デフォルトではbusyboxのシェルが立ち上がっているはずなので,bashで入っておく必要がある.~
#highlightjs(no-highlight){{
root@clanton:~# chsh -s /bin/bash
}}
で再起動,もしくは今回だけbashを使うなら単に
#highlightjs(no-highlight){{
root@clanton:~# bash
}}
でbashに入ればよい.

また,arもbusyboxにあるものを指しているようなので,これもふつうのものに変更.(多少荒療治だが仕方ない)~
#highlightjs(no-highlight){{
root@clanton:~# rm /usr/bin/ar
root@clanton:~# ln -s /usr/bin/i586-poky-linux-ar /usr/bin/ar
}}

** ビルド [#wdea28ca]
#highlightjs(no-highlight){{
root@clanton:~# cd go/src
root@clanton:~/go/src# ./all.bash
# Building C bootstrap tool.
cmd/dist

# Building compilers and Go bootstrap tool for host, linux/386.
lib9
libbio
libmach
misc/pprof
cmd/addr2line
cmd/nm
cmd/objdump
cmd/pack
cmd/prof
cmd/cc
cmd/gc
cmd/8l
cmd/8a
cmd/8c
cmd/8g
pkg/runtime
pkg/errors
pkg/sync/atomic
pkg/sync
pkg/io
pkg/unicode
pkg/unicode/utf8
pkg/unicode/utf16
pkg/bytes
pkg/math
pkg/strings
pkg/strconv
pkg/bufio
pkg/sort
pkg/container/heap
pkg/encoding/base64
pkg/syscall
pkg/time
pkg/os
pkg/reflect
pkg/fmt
pkg/encoding
pkg/encoding/json
pkg/flag
pkg/path/filepath
pkg/path
pkg/io/ioutil
pkg/log
pkg/regexp/syntax
pkg/regexp
pkg/go/token
pkg/go/scanner
pkg/go/ast
pkg/go/parser
pkg/os/exec
pkg/os/signal
pkg/net/url
pkg/text/template/parse
pkg/text/template
pkg/go/doc
pkg/go/build
cmd/go
./make.bash: line 151:  3106 Illegal instruction     "$GOTOOLDIR"/go_bootstrap clean -i std
}}
怒られた.
#highlightjs(no-highlight){{
root@clanton:~/go# find . | grep go_bootstrap
./pkg/tool/linux_386/go_bootstrap
root@clanton:~/go# cd pkg/tool/linux_386/
root@clanton:~/go/pkg/tool/linux_386# ./go_bootstrap clean -i std
Illegal instruction
root@clanton:~/go/pkg/tool/linux_386# ./go_bootstrap
Illegal instruction
root@clanton:~/go/pkg/tool/linux_386# ls -l                           
total 11272
-rwxr-xr-x 1 root root  275663 Feb 14 22:49 8a
-rwxr-xr-x 1 root root  957559 Feb 14 22:52 8c
-rwxr-xr-x 1 root root 1789740 Feb 14 22:54 8g
-rwxr-xr-x 1 root root  883944 Feb 14 22:49 8l
-rwxr-xr-x 1 root root  438528 Feb 14 22:34 addr2line
-rwxr-xr-x 1 root root   69723 Feb 14 22:29 dist
-rwxr-xr-x 1 root root 5798336 Feb 14 22:56 go_bootstrap
-rwxr-xr-x 1 root root  360053 Feb 14 22:34 nm
-rwxr-xr-x 1 root root  443486 Feb 14 22:35 objdump
-rwxr-xr-x 1 root root  310275 Feb 14 22:35 pack
-rwxr-xr-x 1 root root  157784 Feb 14 22:34 pprof
root@clanton:~/go/pkg/tool/linux_386# file go_bootstrap 
go_bootstrap: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped
root@clanton:~/go/pkg/tool/linux_386# file ./addr2line 
./addr2line: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, BuildID[sha1]=b9814c57d0b81117baa1219f793461088a22a0d5, not stripped
root@clanton:~/go/pkg/tool/linux_386# file ./objdump 
./objdump: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, BuildID[sha1]=90630a1aad323afbef52b86840f9d6d89485fea1, not stripped
root@clanton:~/go/pkg/tool/linux_386# file ./nm      
./nm: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, BuildID[sha1]=a87af638fa115fd776574fba54c9942055e1f00f, not stripped
}}
ふむふむ…

** 参考 [#e31c9c75]
[[Installing Go from source - The Go Programming Language:http://golang.org/doc/install/source]]~
[[Setting bash as default shell:http://www.cyberciti.biz/faq/howto-set-bash-as-your-default-shell/]]~
[[Gentoo Forums - Problem with BASH and busybox and compiling issue:http://forums.gentoo.org/viewtopic-t-922670-start-0.html]]

** コメントはこちら [#j85819a5]
#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS