ホーム > 記録
記録のアーカイブ
[玄箱]カーネルの再構築
U-Bootで使える初代玄箱(無印)の2.6.25.20Linuxカーネルを作成する。
まずは、コンパイルに必要なプログラムをインストール。
KURO-BOX:/usr/src# aptitude install patch
KURO-BOX:/usr/src# aptitude install libncurses-dev
KURO-BOX:/usr/src# aptitude install bzip2
KURO-BOX:/usr/src# aptitude install module-init-tools
次に、ソースのダウンロードして、解凍する。
KURO-BOX:/usr/src# wget http://www.genbako.com/kurobox-sources-2.6.25.patch
KURO-BOX:/usr/src# wget http://www.genbako.com/kurobox-section-mismatch2625.patch
KURO-BOX:/usr/src# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.20.tar.bz2
KURO-BOX:/usr/src# tar -jxpvf linux-2.6.25.20.tar.bz2
次に、パッチを当てる。
KURO-BOX:/usr/src# cd linux-2.6.25.20
KURO-BOX:/usr/src/linux-2.6.25.20# patch -Np1 < ../kurobox-section-mismatch2625.patch
KURO-BOX:/usr/src/linux-2.6.25.20# patch -Np1 < ../kurobox-sources-2.6.25.patch
次に、前準備を行う。
KURO-BOX:/usr/src/linux-2.6.25.20# export ARCH=ppc
KURO-BOX:/usr/src/linux-2.6.25.20# cp config_kurobox .config
KURO-BOX:/usr/src/linux-2.6.25.20# make oldconfig
ここで大事なカーネル設定を行う。
KURO-BOX:/usr/src/linux-2.6.25.20# make menuconfig
Networking > Networking options
<*> Packet socket
[*] Packet socket: mmapped IO
<*> Unix domain sockets
< > Transformation user configuration interface
[ ] Transformation sub policy support (EXPERIMENTAL)
[ ] Transformation migrate database (EXPERIMENTAL)
[ ] Transformation statistics (EXPERIMENTAL)
<M> PF_KEY sockets
[ ] PF_KEY MIGRATE (EXPERIMENTAL) (NEW)
[*] TCP/IP networking
[*] IP: multicasting
[*] IP: advanced router
Choose IP: FIB lookup algorithm (choose FIB_HASH if unsurx x
[*] IP: policy routing
[ ] IP: equal cost multipath (NEW)
[ ] IP: verbose route monitoring (NEW)
[ ] IP: kernel level autoconfiguration
<M> IP: tunneling
<M> IP: GRE tunnels over IP
[*] IP: broadcast GRE over IP
[*] IP: multicast routing
[*] IP: PIM-SM version 1 support
[*] IP: PIM-SM version 2 support
[ ] IP: ARP daemon support (EXPERIMENTAL)
[ ] IP: TCP syncookie support (disabled per default)
<M> IP: AH transformation
<M> IP: ESP transformation
<M> IP: IPComp transformation
<*> IP: IPsec transport mode
<*> IP: IPsec tunnel mode
<*> IP: IPsec BEET mode
< > Large Receive Offload (ipv4/tcp)
<*> INET: socket monitoring interface
[ ] TCP: advanced congestion control --->
[*] TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)
< > IP virtual server support (EXPERIMENTAL) (NEW) --->
< > The IPv6 protocol
[ ] Security Marking
[*] Network packet filtering framework (Netfilter) --->
[*] Network packet filtering debugging
[*] Advanced netfilter configuration (NEW)
[*] Bridged IP/ARP packets filtering (NEW)
Core Netfilter Configuration --->
<M> Netfilter NFQUEUE over NFNETLINK interface
<M> Netfilter LOG over NFNETLINK interface
<M> Netfilter connection tracking support
-*- Connection tracking flow accounting
-*- Connection mark tracking support
[*] Connection tracking events
<M> SCTP protocol connection tracking support (EXPERIMENTAL)
<M> UDP-Lite protocol connection tracking support
<M> Amanda backup protocol support
<M> FTP protocol support
<M> H.323 protocol support
<M> IRC protocol support
<M> NetBIOS name service protocol support
<M> PPtP protocol support
<M> SANE protocol support (EXPERIMENTAL)
<M> SIP protocol support
<M> TFTP protocol support
<M> Connection tracking netlink interface
{M} Netfilter Xtables support (required for ip_tables)
<M> "CLASSIFY" target support
<M> "CONNMARK" target support
<M> "DSCP" and "TOS" target support
<M> "MARK" target support
<M> "NFQUEUE" target Support
<M> "NFLOG" target support
<M> "NOTRACK" target support
-M- "RATEEST" target support
<M> "TRACE" target support
<M> "TCPMSS" target support
<M> "TCPOPTSTRIP" target support (EXPERIMENTAL)
<M> "comment" match support
<M> "connbytes" per-connection counter match support
<M> "connlimit" match support"
<M> "connmark" connection mark match support
<M> "conntrack" connection tracking match support
<M> "dccp" protocol match support
<M> "dscp" and "tos" match support
<M> "esp" match support
<M> "helper" match support
<M> "iprange" address range match support
<M> "length" match support
<M> "limit" match support
<M> "mac" address match support
<M> "mark" match support
<M> "owner" match support
<M> IPsec "policy" match support
<M> "multiport" Multiple port match support
<M> "physdev" match support
<M> "pkttype" packet type match support
<M> "quota" match support
<M> "rateest" match support
<M> "realm" match support
<M> "sctp" protocol match support (EXPERIMENTAL)
<M> "state" match support
<M> "statistic" match support
<M> "string" match support
<M> "tcpmss" match support
<M> "time" match support
<M> "u32" match support
<M> "hashlimit" match support
IP: Netfilter Configuration --->
<M> IPv4 connection tracking support (required for NAT)
[*] proc/sysctl compatibility with old connection tracking (NEW)
<M> IP Userspace queueing via NETLINK (OBSOLETE)
<M> IP tables support (required for filtering/masq/NAT)
<M> "recent" match support
<M> "ecn" match support
<M> "ah" match support
<M> "ttl" match support
<M> "addrtype" address type match support
<M> Packet filtering
<M> REJECT target support
<M> LOG target support
<M> ULOG target support
<M> Full NAT
<M> MASQUERADE target support
<M> REDIRECT target support
<M> NETMAP target support
<M> Basic SNMP-ALG support
<M> Packet mangling
<M> ECN target support
<M> TTL target support
<M> CLUSTERIP target support (EXPERIMENTAL)
<M> raw table support (required for NOTRACK/TRACE)
<M> ARP tables support
<M> ARP packet filtering
<M> ARP payload mangling
Bridge: Netfilter Configuration --->
<M> Ethernet Bridge tables (ebtables) support
<M> ebt: broute table support
<M> ebt: filter table support
<M> ebt: nat table support
<M> ebt: 802.3 filter support
<M> ebt: among filter support
<M> ebt: ARP filter support
<M> ebt: IP filter support
<M> ebt: limit match support
<M> ebt: mark filter support
<M> ebt: packet type filter support
<M> ebt: STP filter support
<M> ebt: 802.1Q VLAN filter support
<M> ebt: arp reply target support
<M> ebt: dnat target support
<M> ebt: mark target support
<M> ebt: redirect target support
<M> ebt: snat target support
<M> ebt: log support
<M> ebt: ulog support (OBSOLETE)
< > The DCCP Protocol (EXPERIMENTAL) --->
< > The SCTP Protocol (EXPERIMENTAL) --->
< > The TIPC Protocol (EXPERIMENTAL) --->
< > Asynchronous Transfer Mode (ATM)
<M> 802.1d Ethernet Bridging
<M> 802.1Q VLAN Support
< > DECnet Support
< > ANSI/IEEE 802.2 LLC type 2 Support
< > The IPX protocol
< > Appletalk protocol support
< > CCITT X.25 Packet Layer (EXPERIMENTAL)
< > LAPB Data Link Driver (EXPERIMENTAL)
< > Acorn Econet/AUN protocols (EXPERIMENTAL)
< > WAN router
[ ] QoS and/or fair queueing --->
Network testing --->
Networking > Wireless
{*} Improved wireless configuration API
[*] nl80211 new netlink interface support (NEW)
-*- Wireless extensions
<M> Generic IEEE 802.11 Networking Stack (mac80211)
Rate control algorithm selection --->
[ ] Enable packet alignment debugging (NEW)
[ ] Enable debugging output (NEW)
{M} Generic IEEE 802.11 Networking Stack (DEPRECATED)
[ ] Enable full debugging output (NEW)
-M- IEEE 802.11 WEP encryption (802.1x)
< > IEEE 802.11i CCMP support (NEW)
< > IEEE 802.11i TKIP encryption (NEW)
< > Software MAC add-on to the IEEE 802.11 networking stack (NEW)
Device Drivers > Networking device support
[ ] Netdevice multiple hardware queue support
<M> Dummy net driver support
< > Bonding driver support
< > MAC-VLAN support (EXPERIMENTAL)
< > EQL (serial line load balancing) support
<M> Universal TUN/TAP device driver support
< > Virtual ethernet pair device
< > ARCnet support --->
< > PHY Device support and infrastructure --->
[*] Ethernet (10 or 100Mbit) --->
[*] Ethernet (1000 Mbit) --->
[ ] Ethernet (10000 Mbit) --->
[ ] Token Ring driver support --->
Wireless LAN --->
[ ] Wireless LAN (pre-802.11)
[*] Wireless LAN (IEEE 802.11)
< > Intel PRO/Wireless 2100 Network Connection (NEW)
< > Intel PRO/Wireless 2200BG and 2915ABG Network Connection (NEW)
< > Marvell 8xxx Libertas WLAN driver support (NEW)
< > Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards (NEW)
<M> Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)
< > Hermes in PLX9052 based PCI adaptor support (Netgear MA30
< > Hermes in TMD7160 based PCI adaptor support (NEW)
< > Nortel emobility PCI adaptor support (NEW)
< > Prism 2.5 PCI 802.11b adaptor support (NEW)
< > Atmel at76c50x chipset 802.11b support (NEW)
< > Intersil Prism GT/Duette/Indigo PCI/Cardbus (NEW)
<M> USB ZD1201 based Wireless device support
< > Wireless RNDIS USB support (NEW)
< > Realtek 8180/8185 PCI support (NEW)
<M> Realtek 8187 USB support
< > ADMtek ADM8211 support (NEW)
< > Softmac Prism54 support (NEW)
< > Atheros 5xxx wireless cards support (NEW)
< > Intel Wireless WiFi 4965AGN (NEW)
< > Intel PRO/Wireless 3945ABG/BG Network Connection (NEW)
<M> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
[*] Support downloading firmware images with Host AP driver
[*] Support for non-volatile firmware download
< > Host AP driver for Prism2/2.5/3 in PLX9052 PCI adaptors
< > Host AP driver for Prism2.5 PCI adaptors (NEW)
< > Broadcom 43xx wireless support (mac80211 stack) (NEW)
< > Broadcom 43xx-legacy wireless support (mac80211 stack) (NEW)
<M> ZyDAS ZD1211/ZD1211B USB-wireless support
[*] ZyDAS ZD1211 debugging
< > Ralink driver support (NEW)
USB Network Adapters --->
< > USB CATC NetMate-based Ethernet device support (EXPERIMENTAL)
< > USB KLSI KL5USB101-based ethernet device support
< > USB Pegasus/Pegasus-II based ethernet device support
<M> USB RTL8150 based ethernet device support (EXPERIMENTAL)
< > Multi-purpose USB Networking Framework
[ ] Wan interfaces support --->
[ ] FDDI driver support
[ ] HIPPI driver support (EXPERIMENTAL)
< > PPP (point-to-point protocol) support
< > SLIP (serial line) support
[ ] Fibre Channel driver support
< > Network console logging support (EXPERIMENTAL)
とりあえず、iptable、IPsec、マルチキャスト、IPIP/GRE トンネル、Dummy インタフェース、ブリッジング、802.1Q VLANとUSB無線LANのいくつかを有効にして設定を保存。
そしてついにコンパイル。ここでuImageを作成します。
KURO-BOX:/usr/src/linux-2.6.25.20# make uImage
scripts/kconfig/conf -s arch/ppc/Kconfig
CHK include/linux/version.h
UPD include/linux/version.h
CHK include/linux/utsrelease.h
UPD include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-ppc
CC arch/ppc/kernel/asm-offsets.s
~省略~
LD .tmp_vmlinux2
KSYM .tmp_kallsyms2.S
AS .tmp_kallsyms2.o
LD vmlinux
SYSMAP System.map
SYSMAP .tmp_System.map
OBJCOPY arch/ppc/boot/images/vmlinux.bin
GZIP arch/ppc/boot/images/vmlinux.gz
UIMAGE arch/ppc/boot/images/uImage
Image Name: Linux-2.6.25.20-kurobox
Created: Sat Jul 2 21:40:24 2011
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 1460604 Bytes = 1426.37 kB = 1.39 MB
Load Address: 0x00000000
Entry Point: 0x00000000
Image: arch/ppc/boot/images/uImage is ready
無事にuImageが作成できたので続けて、モジュールの作成とインストール
KURO-BOX:/usr/src/linux-2.6.25.20# make modules
KURO-BOX:/usr/src/linux-2.6.25.20# make modules_install
作成しuImageを格納するために既存のものをバックアップする
KURO-BOX:/usr/src/linux-2.6.25.20# cd /boot
KURO-BOX:/boot# ls -la
drwxr-xr-x 3 root root 4096 2011-06-26 22:35 .
drwxr-xr-x 21 root root 4096 2011-04-10 05:23 ..
-rw-r--r-- 1 tmp-kun tmp-kun 31064 2008-05-04 22:18 .config
-rw-r--r-- 1 root root 718574 2011-06-26 18:20 System.map
-rw-r--r-- 1 root root 1465831 2011-06-26 22:01 uImage
lrwxrwxrwx 1 tmp-kun tmp-kun 6 2011-04-10 05:25 vmlinux.UBoot -> uImage
-rwxr-xr-x 1 tmp-kun tmp-kun 3063942 2008-05-04 22:18 vmlinux.bin
KURO-BOX:/boot# mv System.map System.map.org
KURO-BOX:/boot# mv uImage uImage.org
作成したuImageとコピーする。
KURO-BOX:/boot# cp -p /usr/src/linux-2.6.25.20/arch/ppc/boot/images/uImage /boot
KURO-BOX:/boot# cp -p /usr/src/linux-2.6.25.20/System.map /boot
最終的にはこんな感じ
KURO-BOX:/boot# ls -la
drwxr-xr-x 3 root root 4096 2011-06-26 22:35 .
drwxr-xr-x 21 root root 4096 2011-04-10 05:23 ..
-rw-r--r-- 1 tmp-kun tmp-kun 31064 2008-05-04 22:18 .config
-rw-r--r-- 1 root root 718574 2011-06-26 18:20 System.map
-rw-r--r-- 1 tmp-kun tmp-kun 694437 2008-05-04 22:18 System.map.org
-rw-r--r-- 1 root root 1465831 2011-06-26 22:01 uImage
-rw-r--r-- 1 tmp-kun tmp-kun 1432414 2008-05-04 22:18 uImage.org
lrwxrwxrwx 1 tmp-kun tmp-kun 6 2011-04-10 05:25 vmlinux.UBoot -> uImage
-rwxr-xr-x 1 tmp-kun tmp-kun 3063942 2008-05-04 22:18 vmlinux.bin
これで、再起動後、起動確認。
KURO-BOX:~# uname -a
Linux KURO-BOX 2.6.25.20-kurobox #3 Sun Jun 26 21:59:59 JST 2011 ppc GNU/Linux
カーネルのバージョンが更新されていることを確認する
[玄箱]mkimageの作成
U-Bootで使える形でカーネル再構築をするためにmkimageをコンパイルする
現在玄箱にはU-Boot1.1.4が入っているから1.1.4のソースから作成する。
まずは、ソースのダウンロードして、解凍
KURO-BOX:~# cd /usr/src/
KURO-BOX:/usr/src# wget http://prdownloads.sourceforge.net/u-boot/u-boot-1.1.4.tar.bz2
KURO-BOX:/usr/src# tar -xjvf u-boot-1.1.4.tar.bz2
KURO-BOX:/usr/src# cd u-boot-1.1.4
次にmake時に$TOPDIRを参照しているみたいだからカレントパスを格納する。
KURO-BOX:/usr/src/u-boot-1.1.4# export TOPDIR=`pwd`
KURO-BOX:/usr/src/u-boot-1.1.4# echo $TOPDIR
/usr/src/u-boot-1.1.4
今回必要なのはmkimageだからtoolsディレクトリのみmakeする。
KURO-BOX:/usr/src/u-boot-1.1.4# cd tools
KURO-BOX:/usr/src/u-boot-1.1.4/tools# make mkimage
ln -s ../common/environment.c environment.c
ln -s ../lib_generic/crc32.c crc32.c
gcc -M -Wall -pedantic -idirafter ../include -DTEXT_BASE= -DUSE_HOSTCC environment.c img2srec.c mkimage.c crc32.c envcrc.c gen_eth_addr.c bmp_logo.c > .depend
environment.c:28:20: error: config.h: No such file or directory
envcrc.c:32:20: error: config.h: No such file or directory
gcc -g -Wall -pedantic -idirafter ../include -DTEXT_BASE= -DUSE_HOSTCC -O -c mkimage.c
gcc -g -Wall -pedantic -idirafter ../include -DTEXT_BASE= -DUSE_HOSTCC -O -c crc32.c
gcc -Wall -pedantic -idirafter ../include -DTEXT_BASE= -DUSE_HOSTCC -O -o mkimage mkimage.o crc32.o
strip mkimage
エラーは出ているがこのmkimageでU-Boot対応カーネルは問題なく作成、起動できた。
KURO-BOX:/usr/src/u-boot-1.1.4/tools# cp -p mkimage /usr/local/bin
KURO-BOX:/usr/src/u-boot-1.1.4/tools# which mkimage
/usr/local/bin/mkimage
作成されたmkimageは、/usr/local/binなどパスの通った場所にコピーして完了。
[玄箱]GCCのインストール
GCCをインストールするが、3.4系とデフォルト(4.3系)の2バージョンをインストール
KURO-BOX:~# aptitude install gcc gcc-3.4
インストールが終わったら切り替えれるようにupdate-alternativesで設定
・・・とはいえ、下記のコマンドで確認してみる
KURO-BOX:~# update-alternatives --display gcc
No alternatives for gcc.
ないみたい。別の名前で存在してるかもと下記のコマンドで設定できるものすべてを設定してみる
KURO-BOX:~# update-alternatives --all
やっぱりないみたい。
なので、手動で追加(グループ名は”gcc”とした。)
KURO-BOX:~# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 34 --slave /usr/bin/cpp cpp /usr/bin/cpp-3.4 --slave /usr/bin/gcov gcov /usr/bin/gcov-3.4
KURO-BOX:~# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.3 43 --slave /usr/bin/cpp cpp /usr/bin/cpp-4.3 --slave /usr/bin/gcov gcov /usr/bin/gcov-4.3
デフォルトでgcc-3.4を使うように設定
KURO-BOX:~# update-alternatives --config gcc
There are 2 alternatives which provide `gcc'.
Selection Alternative
-----------------------------------------------
* 1 /usr/bin/gcc-3.4
+ 2 /usr/bin/gcc-4.3
Press enter to keep the default[*], or type selection number: 1
Using '/usr/bin/gcc-3.4' to provide 'gcc'.
[玄箱]玄箱を初期化
初代玄箱(無印)をU-Boot化したあと、放置していたのでHDDをフォーマットして再インストールを行った時のメモ。
- HDDのフォーマット
今回は意図的にHDDを取り出して、Windows7でパーティションの削除を行いました。
フォーマットが完了したら玄箱に戻して、組み立てます。 - ncで起動状況の確認とU-Bootコマンドモードへ
Windowsパソコンからncを用意し、玄箱とクロスケーブルで接続(ストレートケーブルと背面スイッチで対応)。
Windowsパソコン側のIPアドレスを198.168.11.149に設定し、コマンドプロンプトからncのフォルダに移動して、以下のコマンドを実行し起動するnc -v -v -n -u -s 192.168.11.149 -p 6666 192.168.11.150 6666これで192.168.11.150をウォッチする状態になるので、玄箱を起動すると下記のように表示されるはず
U-Boot 1.1.4 LiSt 2.1.0 (Sep 21 2006 - 00:22:56) LinkStation / KuroBox CPU: MPC8245 Revision 1.4 at 196.608 MHz: 16 kB I-Cache 16 kB D-Cache DRAM: 64 MB FLASH: 4 MB ~省略~ Boot in 10 seconds ('s' to stop)...ここで[s]を入力し、U-Bootのコマンドモードに入る。
Boot in 7 seconds ('s' to stop)... s => - EMモードへ
=> run writeng Un-Protected 1 sectors Flash erase: first = 55 @ 0xfff70000 last = 55 @ 0xfff70000 Flash erase: Done Erased 1 sectors Copy to Flash... done => run emboot ## Booting image at ffc00000 ... ******* Product Information ******* [#k0621bb4] ---------------------------------- Product Name: KURO-BOX(IETSUNA) VER: 1.02 Date: 2004/4/16 11:46:41 ---------------------------------- Verifying checksum... OK Uncompressing kernel...done. Loading Ramdisk at 0x03C67000, end 0x03E6E647 ... OK Booting the kernel ~省略~これでEMモードで立ち上がっているはずなので、クロスケーブルを外し、DHCPが動いているLANに接続する。
- パーティションを作成
HDD全領域を削除root@KURO-BOX:~# /sbin/mfdisk -e /dev/hda delete partition 1 delete partition 2 delete partition 3 delete partition 4 create partitions... deleate all partitions. The partition table has been altered! Syncing disks.続いて領域確保(第1領域:4GB,第2領域SWAP用:256MB,第3領域:残り)
root@KURO-BOX:~# /sbin/mfdisk -c /dev/hda Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-15798, default 1):[enter] Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-15798, default 15798): +4000M Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (8128-15798, default 8128):[enter] Using default value 8128 Last cylinder or +size or +sizeM or +sizeK (8128-15798, default 15798): +256M Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (8649-15798, default 8649):[enter] Using default value 8649 Last cylinder or +size or +sizeM or +sizeK (8649-15798, default 15798):[enter] Using default value 15798 Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 82 Changed system type of partition 2 to 82 (Linux swap) Command (m for help): p Disk /dev/hda: 16 heads, 63 sectors, 15798 cylinders Units = cylinders of 1008 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 1 8127 4095976+ 83 Linux /dev/hda2 8128 8648 262584 82 Linux swap /dev/hda3 8649 15798 3603600 83 Linux Command (m for help): w The partition table has been altered! Syncing disks. - 作成した領域をフォーマット
まずは第1領域(LinuxOS)root@KURO-BOX:~# /sbin/mke2fs -j /dev/hda1 mke2fs 1.22, 22-Jun-2001 for EXT2 FS 0.5b, 95/08/09 Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 512000 inodes, 1023994 blocks 51199 blocks (5.00%) reserved for the super user First data block=0 32 block groups 32768 blocks per group, 32768 fragments per group 16000 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 21 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.次に第2領域(Swap)
root@KURO-BOX:~# /sbin/mkswap /dev/hda2 Setting up swapspace version 1, size = 268881920 bytes最後に第3領域(Data)
root@KURO-BOX:~# /sbin/mke2fs -j -m 0 /dev/hda3 mke2fs 1.22, 22-Jun-2001 for EXT2 FS 0.5b, 95/08/09 Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 450688 inodes, 900900 blocks 0 blocks (0.00%) reserved for the super user First data block=0 28 block groups 32768 blocks per group, 32768 fragments per group 16096 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 28 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. - 作成した領域をマウント
root@KURO-BOX:~# mount -t ext3 /dev/hda1 /mnt root@KURO-BOX:~# mount -t ext3 /dev/hda3 /mnt2 root@KURO-BOX:~# df -h Filesystem Size Used Available Use% Mounted on /dev/ram0 9.5M 5.0M 4.5M 53% / /dev/hda1 3.8G 32.1M 3.6G 1% /mnt /dev/hda3 3.4G 32.1M 3.4G 1% /mnt2 - OSデータの転送
FTP(FileZilla等)で下記のファイルを/mnt2(/dev/hda3)にu-bootフォルダを作成して下記の3つを保存する- Revulo’s Laboratoryより debian5.0 lenny の圧縮ファイル(debian-lenny-kuroBOX-20090317.tgz)
- カーネルイメージ(kernelimage-2.6.20-kuroBOX-uImage.tgz)
- カーネルモジュール(modules-2.6.20-kuroBOX.tgz)
転送が終わったら確認してみる。
root@KURO-BOX:~# ls /mnt2/u-boot debian-lenny-kuroBOX-20090317.tgz kernelimage-2.6.20-kuroBOX-uImage.tgz modules-2.6.20-kuroBOX.tgz - OSのインストール
Debian5.0(lenny)を /dev/hda1(/mnt)に展開root@KURO-BOX:~# cd /mnt root@KURO-BOX:~# pwd /mnt root@KURO-BOX:~# tar xvzf /mnt2/u-boot/debian-lenny-kuroBOX-20090317.tgz ~省略~/dev/hda1(/mnt)の確認
root@KURO-BOX:~# ls /mnt bin home mnt sbin tmp boot lib opt selinux usr dev lost+found proc srv var etc media root sysカーネルイメージ(2.6.20)を /dev/hda1/boot(/mnt/boot) に展開
root@KURO-BOX:~# tar xvfz /mnt2/u-boot/kernelimage-2.6.20-kuroBOX-uImage.tgz .config System.map vmlinux.UBoot uImage/boot の内容を確認
root@KURO-BOX:~# ls /mnt/boot System.map uImage vmlinux.UBootカーネルモジュール(2.6.20)を /dev/hda1/lib/modules(/mnt/lib/modules) に展開
root@KURO-BOX:~# cd /mnt/lib/modules root@KURO-BOX:~# pwd /mnt/lib/modules root@KURO-BOX:~# tar xvzf /mnt2/u-boot/modules-2.6.20-kuroBOX.tgz ~省略~/lib/modules/2.6.20-kuroboxが出来ていることを確認
root@KURO-BOX:~# ls 2.6.20-kurobox root@KURO-BOX:~# ls 2.6.20-kurobox build modules.dep modules.pcimap kernel modules.ieee1394map modules.symbols modules.alias modules.inputmap modules.usbmap modules.ccwmap modules.isapnpmap source -
lenny のネットワーク設定
再起動前にネットワークの設定を行っておく、念のため固定IPを付与root@KURO-BOX:~# vi /mnt/etc/network/interfaces iface eth0 inet static address 192.168.0.100 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 iface lo inet loopback auto eth0 loroot@KURO-BOX:~# vi /mnt/etc/hosts 127.0.0.1 localhost 192.168.0.100 KURO-BOXroot@KURO-BOX:~# vi /mnt/etc/hosts.allow #ALL: 192.168.0.0/255.255.0.0 #ALL: 127.0.0.1 ALL : ALL : ALLOWroot@KURO-BOX:~# vi /mnt/etc/resolv.conf search nameserver 192.168.0.1 -
fstabの設定を自環境に修正
root@KURO-BOX:~# vi /mnt/etc/fstab # /etc/fstab: static file system information. # #proc /proc proc defaults 0 0 /dev/hda2 none swap sw 0 0 /dev/hda1 / ext3 defaults,noatime,errors=remount-ro 0 0 /dev/hda3 /mnt ext3 defaults,noatime 0 0 -
EMを抜けて再起動
EMモードを抜けるコマンドを書くroot@KURO-BOX:~# echo -n "OKOK" > /dev/fl3コマンドの書き込みが行えているか確認
root@KURO-BOX:~# dd if=/dev/fl3 bs=4 count=1 OKOK1+0 records in 1+0 records out 4 bytes transferred in 0.006583 seconds (608 bytes/sec)再起動
root@KURO-BOX:~# reboot -
Debian5.0 Lennyの起動確認
telnetで先ほど設定したIPに接続しログイン後rootになれることを確認Debian GNU/Linux 5.0 KURO-BOX login: tmp-kun Password: tmp-kun ~省略~ tmp-kun@KURO-BOX:~$ su パスワード: root KURO-BOX:/home/tmp-kun#
玄箱がDHCPで取得したIPアドレスを調べて、telnetでログインを行う。
Kroutoshikou KURO-BOX (IETSUNA)
kernel 2.4.17_kuro-box on ppc
KURO-BOX login: root
Password: kuro
サクラエディタの更新ツールでv2系をチェックするように設定
「サクラエディタ」も内部文字コードをUnicodeにしたv2系が正式にリリースされました。
それに伴い、インストール支援ツール「SakuraDown」でもv2系をチェックできるように設定を変更してみたのでメモ。
ダウンロード先などを記述している「DownInfo.ini」のセクション[EDITOR]のところを下記のように編集する。
[EDITOR]
;ReleaseURI=http://sourceforge.net/api/file/index/project-id/12488/rss?path=%2Fsakura
ReleaseURI=http://sourceforge.net/api/file/index/project-id/12488/rss?path=%2Fsakura2
;FileRegExp=\d\.\d\.\d\.\d/sakura_[^\/\?<>=]+\.zip
FileRegExp=\d\.\d\.\d\.\d/sakura2[^\/\?<>=]+\.zip
ReleaseFindingPolicy=FROM_LAST
;DownloadURI=http://@MIRROR.dl.sourceforge.net/project/sakura-editor/sakura/@FILE
DownloadURI=http://@MIRROR.dl.sourceforge.net/project/sakura-editor/sakura2/@FILE
ReleaseType=SITE_SOURCEFORGE
;WildName=sakura_????-??-??*.zip
WildName=sakura2-*.zip
正規表現ライブラリもUnicode版を利用するように「DownInfo.ini」のセクション[BREGEXP]のところを下記のように編集する。
[BREGEXP]
ReleaseURI=http://homepage3.nifty.com/k-takata/mysoft/bregonig.html
;FileRegExp=bron[0-9]+\.zip
FileRegExp=bron2[0-9]+\.zip
DownloadURI=http://homepage3.nifty.com/k-takata/mysoft/@FILE
ReleaseType=SITE_NORMAL
WildName=bron???.zip;bron???.lzh
正しくないところがあると思うけれど、一応これで動いたので、暫定対応ってことで自己責任でお願いします。
Dynabook C7にLubuntu 11.04をinstall
前回Ubuntu Netbook Edition 10.10をインストールしたけれど、動作も重く使い勝手に問題が出ていたので変更。
Lubuntu はUbuntuベースのデスクトップをGnomeからLXDEに変更したもの。
一昔のPCで使うには軽量で定評のあるLXDEなうえに、ネットブックに仕えるLauncherも入っていて古めのPCなのにスタイリッシュな一味違うPCに変貌します。
Lxlauncherが自動起動しなかったので下記のようにファイルを用意して、再起動。
/home/<username>/.config/autostart/lxlauncher.desktop
[Desktop Entry]
Encoding=UTF-8
Name=Lxlauncher
Comment=LXDE launcher
Exec=/usr/bin/lxlauncher
Terminal=false
Type=Application
Icon=
Categories=Application;System;
Touch Diamond 環境構築メモ その7
ラジオを使えるようにしたときの設定メモ

- DLLの入れ替え
アンテナの感度が少し良くなるので入れておく。
- 1.09.25.23 rilphone.cabをTouch Diamondに転送して実行
- Bandの制限解除
元のままでは設定化の範囲が87.5~108.0MHzなので日本の周波数帯である76.0~90.0MHzの一部が設定できないのでレジストリの値を変更することで選択可能にする。
- FM_JP.cabをTouch Diamondに転送して実行
[HKEY_LOCAL_MACHINE\Software\HTC\FMRadio\FMPlayer] “Band”=dword:00000001
- FM_JP.cabをTouch Diamondに転送して実行
- 普段使ってるイヤホンでFMラジオ聞く
オーディオUSBアダプタ「スリム」を利用すると付属のマイク付きイヤホンでなくてもラジオを聴くことができる。
- オーディオUSBアダプタ「スリム」を購入する。
Touch Diamond 環境構築メモ その6
SMSとEMnetメールの設定について書いてほしいとリクエストを受けたので記載。


- ArcMMSの削除
DelArcMMS.mscrを実行して、ArcMMS関連を削除する
- DelArcMMS.mscrをTouch Diamondに転送して実行
(BsB6.5.1GにはMortScriptがすでに入っているため実行できるはずですが、できない場合はMortScript-4.2-PPC.cabをインストール後に実行してください。)
- DelArcMMS.mscrをTouch Diamondに転送して実行
- MMS Liteインストールの下準備
PreSetupMMSLite.exeを実行してMMS LiteでSMSを受信できるようにしたりするレジストリ情報を書き込む。
- PreSetupMMSLite.zipを解凍し、PreSetupMMSLite.exeをTouch Diamondに転送して実行
- MSS Liteのインストール
MMSLite.1.1.320.wm6.cabをインストールしてSMSとMMSを利用できるようにする
- MMSLite.1.1.320.wm6.cabをTouch Diamondに転送して実行
- MMSLiteの設定
MMSLite.mscrを自分の環境合わせて書き換えて実行し、設定を反映させる
- MMSLite.mscrをダウンロードし、メールアドレスなどを修正する
Case(YES) RegWriteDword( "HKCU", "Software\MMS Lite\Profiles\MMS", "AllowDeliveryReport" , 1 ) RegWriteDword( "HKCU", "Software\MMS Lite\Profiles\MMS", "AllowReadReport" , 1 ) RegWriteDword( "HKCU", "Software\MMS Lite\Profiles\MMS", "AutoRetry" , 1 ) RegWriteString( "HKCU", "Software\MMS Lite\Profiles\MMS", "EmailAddres", "自分のメールアドレス@emnet.ne.jp" ) RegWriteDword( "HKCU", "Software\MMS Lite\Profiles\MMS", "ForceAutoRecv" , 1 ) RegWriteDword( "HKCU", "Software\MMS Lite\Profiles\MMS", "ForceConnect" , 0 ) RegWriteString( "HKCU", "Software\MMS Lite\Profiles\MMS", "MmsGateway", "10.56.46.1:8080" ) RegWriteString( "HKCU", "Software\MMS Lite\Profiles\MMS", "MmsServer", "http://mms.internal.emnet.ne.jp" ) RegWriteDword( "HKCU", "Software\MMS Lite\Profiles\MMS", "MsgDurationPeriod" , 0 ) RegWriteDword( "HKCU", "Software\MMS Lite\Profiles\MMS", "RequireDeliveryReport" , 0 ) RegWriteDword( "HKCU", "Software\MMS Lite\Profiles\MMS", "RetryCount" , 0 ) RegWriteDword( "HKCU", "Software\MMS Lite\Profiles\MMS", "RetryTimeout" , 30 ) RegWriteDword( "HKCU", "Software\MMS Lite\Profiles\MMS", "SaveSent" , 1 ) RegWriteDword( "HKCU", "Software\MMS Lite\Profiles\MMS", "ServerPort" , 80 ) RegWriteString( "HKCU", "Software\MMS Lite\Profiles\MMS\UserAgent", "Default", "S21HT" ) RegWriteString( "HKCU", "Software\MMS Lite\Profiles\MMS\UserAgent", "S21HT", "S21HT/ArcSoft-MMSUA-PPC-v50" ) RegWriteDword( "HKCU", "Software\MMS Lite\Profiles\MMS\Connections", "EMnet" , 0 ) - 修正したMMSLite.mscrをTouch Diamondに転送して実行
- MMSLite.mscrをダウンロードし、メールアドレスなどを修正する
- 設定の確認
設定が反映されているか確認する
- 「使用する接続を選択:」にはEMnetのものが選択されていること
- 「メールアドレス:」には電話番号が表示されているだろうけど、レジストリ情報にアドレスが記録されているので送信には問題ないようだけれど気になる人はアドレスに変更。
Dynabook C7にUbuntu Netbook Edition 10.10をinstall
前回Ubuntu Netbook Edition 10.04をインストールしたけれどそのあとWindowsXPに戻していたので再度Ubuntu Netbook Edition 10.10をインストールしてみて、画面設定を手動で行う必要があったのでメモ。
xorg.confの作成
対象となったのはTrident社製CyberALADDiN-Tのチップセット
- 端末からgedit を起動する
$ gedit ~/xorg.conf -
下記の内容をコピー&ペースト
Section "Monitor" Identifier "Generic Monitor" HorizSync 28-51 VertRefresh 43-60 EndSection Section "Screen" Identifier "Default Screen" Monitor "Generic Monitor" SubSection "Display" Depth 24 Modes "1024x768" "800x600" "640x480" EndSubSection EndSection - 保存し xorg.conf を /etc/X11 にコピー
sudo cp ~/xorg.conf /etc/X11/
[Android]NDKのインストール
MacOSXにインストールしたEclipseにAndroid NDKをインストールしたときのメモ。
(ndk-buildコマンド内でmakeコマンドを使用するため、Xcodeなどをインストールしておくこと)
Android NDK のダウンロード

- 下記のファイルをダウンロード
- ダウンロードしたファイルを解凍し、適当なフォルダに格納する(例:User/username/Developer)
CDT(C/C++ Development Tooling)のインストール

- 「ヘルプ」->「新規ソフトウェアのインストール…」を開く
- “作業対象:”に”Helios – http://download.eclipse.org/release/helios”を選択する
- 一覧が表示されたら「プログラミング言語」の中から下記のものにチェックを入れ、インストールする
- C/C++ Development Tools
- C/C++ Library API Documentation Hover Help (インキュベーション)
環境変数の追加
- .bash_profileを開く
- vim ~/.bash_profile
- NDKの格納先を”PATH”に追加(例 NDK格納場所:/Users/username/Developer/android-ndk-mac)
ANDROIDNDK_HOME=/Users/username/Developer/android-ndk-mac PATH=$PATH:${ANDROIDNDK_HOME} - .bash_profileを再読込し、変更を反映させる
- source ~/.bash_profile
- 環境変数が反映されているか確認する
- printenv PATH
- (もし、そもそも環境変数”PATH”が存在してなかったら.bash_profileに下記の一文を最終行に追記する)
export PATH
hello-jniライブラリのビルド



NDKに含まれるサンプルをビルドしてみて環境設定が整っていることを確認する。
- hello-jniのディレクトリに移動(例:/Users/username/Developer/android-ndk-mac/sample/hello-jni/)
- cd /Users/username/Developer/android-ndk-mac/sample/hello-jni/
- ndk-build コマンドでビルドする(成功すると下記のような出力になる)
Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver Gdbsetup : libs/armeabi/gdb.setup Compile thumb : hello-jni <= hello-jni.c SharedLibrary : libhello-jni.so Install : libhello-jni.so => libs/armeabi/libhello-jni.so
ホーム > 記録
- 検索
- フィード
- 翻訳











