follow me

CLFS(1.1.0-Sparc64-Pure64)-準備(1)

今回はx86環境でクロスコンパイル環境を構築し、Sparc64用のLFSを作成する。
ディスクを差し替える気は無いので、最後はtarで固めて実機に持っていくとします。

◆ファイルシステムの準備
CLFSの場合、CLFSビルド時に使ったHDDを利用しない場合もあるので、パーティションを切る意味が無い場合もありますが、今回はホストOSインストール先がVMwareESXiでシン・プロビジョニングでディスクを確保している為、シック・プロビジョニングのディスクを用意し、パーティション作成/フォーマットを実施しています。
[root@clfs ~]# fdisk /dev/sdb
[root@clfs ~]# mke2fs /dev/sdb1
[root@clfs ~]# debugfs -R feature /dev/sdb1
debugfs 1.41.4 (27-Jan-2009)
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file

◆ファイルシステムのマウント
[root@clfs ~]# mkdir -p /mnt/clfs
[root@clfs ~]# export CLFS=/mnt/clfs
[root@clfs ~]# mkdir -pv ${CLFS}
[root@clfs ~]# mount -v /dev/sdb1 $CLFS
mount: /dev/sdb1 へのファイルシステムタイプの指定がありません
       タイプ ext2 を試してみます
/dev/sdb1 on /mnt/clfs type ext2 (rw)

◆ソースパッケージの取得と展開
ソースパッケージ/パッチ一式を取得する。
wget.lstは事前に準備しておく、CLFSのドキュメントに記載のあるものをすべて取得すれば、どんな方法でも良いが、面倒なので僕はwgetで一気に取得しました。
[root@clfs ~]# mkdir -v ${CLFS}/sources
mkdir: ディレクトリ `/mnt/clfs/sources' を作成しました
[root@clfs ~]# chmod -v a+wt ${CLFS}/sources
`/mnt/clfs/sources' のモードを 1777 (rwxrwxrwt) に変更しました
[root@clfs ~]# cd /mnt/clfs/sources
[root@clfs sources]# wget -i wget.lst
[root@clfs sources]#

◆toolsとcross-toolsディレクトリの作成
一時的に使用する開発環境を配置するためのディレクトリを作成します。
toolsにはsparc用の基本的な環境が構築され、cross-toolsにはtoolsを構築する為のクロスコンパイル環境が構築されます。
[root@clfs sources]# install -dv ${CLFS}
[root@clfs sources]# install -dv ${CLFS}/tools
install: ディレクトリ `/mnt/clfs/tools' を作成中
[root@clfs sources]# ln -sv ${CLFS}/tools /
`/tools' -> `/mnt/clfs/tools'
[root@clfs sources]# install -dv ${CLFS}/cross-tools
install: ディレクトリ `/mnt/clfs/cross-tools' を作成中
[root@clfs sources]# ln -sv ${CLFS}/cross-tools /
`/cross-tools' -> `/mnt/clfs/cross-tools'

◆作業用ユーザの追加
作業用ユーザclfsを追加する。toolsを作成する間はこのユーザで作業する。
[root@clfs sources]# groupadd clfs
[root@clfs sources]# useradd -s /bin/bash -g clfs -d /home/clfs clfs
[root@clfs sources]# mkdir -pv /home/clfs
[root@clfs sources]# chown -v clfs:clfs /home/clfs
`/home/clfs' の所有者は clfs:clfs のまま保留されました
[root@clfs sources]# passwd clfs
Changing password for user clfs.
New UNIX password: 
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password: 
passwd: all authentication tokens updated successfully.
[root@clfs sources]# chown -v clfs ${CLFS}/tools
`/mnt/clfs/tools' の所有者を clfs に変更しました
[root@clfs sources]# chown -v clfs ${CLFS}/cross-tools
`/mnt/clfs/cross-tools' の所有者を clfs に変更しました
[root@clfs sources]# chown -v clfs ${CLFS}/sources
`/mnt/clfs/sources' の所有者を clfs に変更しました

◆環境の設定
clfsユーザの環境を設定する。
[root@clfs sources]# su - clfs
[clfs@clfs ~]$ cat > ~/.bash_profile << "EOF"
> exec env -i HOME=${HOME} TERM=${TERM} PS1='\u:\w\$ ' /bin/bash
> EOF
[clfs@clfs ~]$ cat > ~/.bashrc << "EOF"
> set +h
> umask 022
> CLFS=/mnt/clfs
> LC_ALL=POSIX
> PATH=/cross-tools/bin:/bin:/usr/bin
> export CLFS LC_ALL PATH
> EOF
[clfs@clfs ~]$ source ~/.bash_profile
clfs:~$ unset CFLAGS
clfs:~$ unset CXXFLAGS
clfs:~$ echo unset CFLAGS >> ~/.bashrc
clfs:~$ echo unset CXXFLAGS >> ~/.bashrc
clfs:~$ export CLFS_HOST="$(echo $MACHTYPE | \
>     sed "s/$(echo $MACHTYPE | cut -d- -f2)/cross/")"
clfs:~$ export CLFS_TARGET="sparc64-unknown-linux-gnu"
clfs:~$ echo export CLFS_HOST=\""${CLFS_HOST}\"" >> ~/.bashrc
clfs:~$ echo export CLFS_TARGET=\""${CLFS_TARGET}\"" >> ~/.bashrc
clfs:~$ export BUILD64="-m64 -mcpu=ultrasparc -mtune=ultrasparc"
clfs:~$ export GCCTARGET="-mcpu=ultrasparc -mtune=ultrasparc"
clfs:~$ echo export BUILD64=\""${BUILD64}\"" >> ~/.bashrc
clfs:~$ echo export GCCTARGET=\""${GCCTARGET}\"" >> ~/.bashrc
clfs:~$ 

関連情報

CLFS(1.1.0-Sparc64-Pure64)-準備(1) | 0 件のコメント | アカウント登録
サイト管理者はコメントに関する責任を負いません。