ホーム > 記録

記録のアーカイブ

[玄箱]カーネルの再構築

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をフォーマットして再インストールを行った時のメモ。

  1. HDDのフォーマット
    今回は意図的にHDDを取り出して、Windows7でパーティションの削除を行いました。
    フォーマットが完了したら玄箱に戻して、組み立てます。
  2. 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
    =>
    
  3. 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に接続する。

  4. 玄箱がDHCPで取得したIPアドレスを調べて、telnetでログインを行う。

    Kroutoshikou KURO-BOX (IETSUNA)
    kernel 2.4.17_kuro-box on ppc
    
    KURO-BOX login: root
    Password: kuro
    
  5. パーティションを作成
    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.
    
  6. 作成した領域をフォーマット
    まずは第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.
    
  7. 作成した領域をマウント 
    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
    
  8. OSデータの転送
    FTP(FileZilla等)で下記のファイルを/mnt2(/dev/hda3)にu-bootフォルダを作成して下記の3つを保存する 

    転送が終わったら確認してみる。

    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
    
  9. 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
    
  10. 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 lo
    
    root@KURO-BOX:~# vi /mnt/etc/hosts
    127.0.0.1 localhost
    192.168.0.100 KURO-BOX
    
    root@KURO-BOX:~# vi /mnt/etc/hosts.allow
    #ALL: 192.168.0.0/255.255.0.0
    #ALL: 127.0.0.1
    ALL : ALL : ALLOW
    
    root@KURO-BOX:~# vi /mnt/etc/resolv.conf
    search
    nameserver 192.168.0.1
    
  11. 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
    
  12. 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
  13. 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#
    

サクラエディタの更新ツールで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

Lubuntu-Lxlauncher


前回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

ラジオを使えるようにしたときの設定メモ
FMラジオ

  • DLLの入れ替え

    アンテナの感度が少し良くなるので入れておく。

    1. 1.09.25.23 rilphone.cabをTouch Diamondに転送して実行
  • Bandの制限解除

    元のままでは設定化の範囲が87.5~108.0MHzなので日本の周波数帯である76.0~90.0MHzの一部が設定できないのでレジストリの値を変更することで選択可能にする。

    1. FM_JP.cabをTouch Diamondに転送して実行
      [HKEY_LOCAL_MACHINE\Software\HTC\FMRadio\FMPlayer]
      “Band”=dword:00000001
      
  • 普段使ってるイヤホンでFMラジオ聞く

    オーディオUSBアダプタ「スリム」を利用すると付属のマイク付きイヤホンでなくてもラジオを聴くことができる。

    1. オーディオUSBアダプタ「スリム」を購入する。

参考:Japan非対応のFMラジオの周波数帯を日本対応に変更

Touch Diamond 環境構築メモ その6

SMSとEMnetメールの設定について書いてほしいとリクエストを受けたので記載。
SMS受信確認設定画面

  • ArcMMSの削除

    DelArcMMS.mscrを実行して、ArcMMS関連を削除する

    1. DelArcMMS.mscrをTouch Diamondに転送して実行
      (BsB6.5.1GにはMortScriptがすでに入っているため実行できるはずですが、できない場合はMortScript-4.2-PPC.cabをインストール後に実行してください。)
  • MMS Liteインストールの下準備

    PreSetupMMSLite.exeを実行してMMS LiteでSMSを受信できるようにしたりするレジストリ情報を書き込む。

    1. PreSetupMMSLite.zipを解凍し、PreSetupMMSLite.exeをTouch Diamondに転送して実行
  • MSS Liteのインストール

    MMSLite.1.1.320.wm6.cabをインストールしてSMSとMMSを利用できるようにする

    1. MMSLite.1.1.320.wm6.cabをTouch Diamondに転送して実行
  • MMSLiteの設定

    MMSLite.mscrを自分の環境合わせて書き換えて実行し、設定を反映させる

    1. 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 )
    2. 修正したMMSLite.mscrをTouch Diamondに転送して実行
  • 設定の確認

    設定が反映されているか確認する

    1. 「使用する接続を選択:」にはEMnetのものが選択されていること
    2. 「メールアドレス:」には電話番号が表示されているだろうけど、レジストリ情報にアドレスが記録されているので送信には問題ないようだけれど気になる人はアドレスに変更。

参考:ROM焼きしたTouch Diamond(S21HT)で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のチップセット

  1. 端末からgedit を起動する
    $ gedit ~/xorg.conf
    
  2. 下記の内容をコピー&ペースト

    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
    
  3. 保存し xorg.conf を /etc/X11 にコピー
    sudo cp ~/xorg.conf /etc/X11/
    

[Android]NDKのインストール

MacOSXにインストールしたEclipseにAndroid NDKをインストールしたときのメモ。
(ndk-buildコマンド内でmakeコマンドを使用するため、Xcodeなどをインストールしておくこと)
Android NDK のダウンロード
NDKを適当なフォルダに格納する

  1. 下記のファイルをダウンロード
  2. ダウンロードしたファイルを解凍し、適当なフォルダに格納する(例:User/username/Developer)

CDT(C/C++ Development Tooling)のインストール

  1. 「ヘルプ」->「新規ソフトウェアのインストール…」を開く
  2. “作業対象:”に”Helios – http://download.eclipse.org/release/helios”を選択する
  3. 一覧が表示されたら「プログラミング言語」の中から下記のものにチェックを入れ、インストールする
    • C/C++ Development Tools
    • C/C++ Library API Documentation Hover Help (インキュベーション)

環境変数の追加

  1. .bash_profileを開く
    • vim ~/.bash_profile
  2. NDKの格納先を”PATH”に追加(例 NDK格納場所:/Users/username/Developer/android-ndk-mac)
    
    ANDROIDNDK_HOME=/Users/username/Developer/android-ndk-mac
    PATH=$PATH:${ANDROIDNDK_HOME}
    
    
  3. .bash_profileを再読込し、変更を反映させる
    • source ~/.bash_profile
  4. 環境変数が反映されているか確認する
    • printenv PATH
  5. (もし、そもそも環境変数”PATH”が存在してなかったら.bash_profileに下記の一文を最終行に追記する)
    
    export PATH
    
    

hello-jniライブラリのビルド

NDKに含まれるサンプルをビルドしてみて環境設定が整っていることを確認する。

  1. hello-jniのディレクトリに移動(例:/Users/username/Developer/android-ndk-mac/sample/hello-jni/)
    • cd /Users/username/Developer/android-ndk-mac/sample/hello-jni/
  2. 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
    
    
1 2 3 4 5 6

ホーム > 記録

ページの上部に戻る