トップ 最新 追記
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|10|12|
2009|02|03|06|07|10|11|12|
2010|01|02|03|04|07|09|10|11|12|
2011|01|03|04|05|06|07|08|10|
2012|01|06|08|09|10|12|
2013|01|02|03|04|07|09|11|12|
2014|01|03|04|05|06|09|
2015|04|
2016|01|08|
ここは旧えびめもです。えびめも2に移行します(2016/12/1)

2007年01月03日

遅ればせながら

新年明けましておめでとうございます。最近プライベートなことを書かなくなったので一部方面から「おもしろくない」といわれて久しいですが(A^^;; 本年もどうぞよろしくお願いいたします。

2,3日オフラインな生活をしていました(^-^)。日曜日が終わってしまうことを憂鬱に思う「サザエさん症候群」なるものがあるそうですが、正月が終わってしまうことを憂鬱に思う「箱根駅伝症候群」というのがあるそうです。幸いなことに私は大丈夫なほうですが、2,3日のオフライン生活で人間らしい活気は取り戻せたようです。

sh4 debian etch

出発前に仕込んだ gcc-4.1 のセルフビルド成功していた!!(LANDISK で 28時間...)よっしゃぁ。これで binutils-2.17, gcc-4.1.1, glibc-2.3.6 の「三種の神器」はそろった。distcc向けi386クロス環境も整った。debootstrapに向けもりもりビルドする下地が整ったぞ。


2007年01月05日

debian etch sh4/sh3

debian etch になると、XFree86 から X.Org へ移行するため sarge 時代に作ってきた XFree86-4 向けの大量のパッケージが使用しなくなる。また大量ビルドしなおす必要がある。まだ base.tgz はできない。
http://www.debian.org/releases/testing/i386/release-notes/index.ja.html

2007年01月06日

debian etch sh4/sh3

checking for pkg-config... /usr/bin/pkg-config
checking for gtk+-2.0 >= 2.4... Package gtk+-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtk+-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gtk+-2.0' found
configure: error: Library requirements (gtk+-2.0 >= 2.4) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.
make[4]: *** [configure-target-libjava] Error 1
make[4]: Leaving directory `/root/build-etch/gcc-4.1/gcc-4.1-4.1.1ds2/build'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/root/build-etch/gcc-4.1/gcc-4.1-4.1.1ds2/build'
make[2]: *** [bootstrap] Error 2
make[2]: Leaving directory `/root/build-etch/gcc-4.1/gcc-4.1-4.1.1ds2/build'
s=`cat status`; rm -f status; test $s -eq 0
make[1]: *** [stamps/05-build-stamp] Error 1
make[1]: Leaving directory `/root/build-etch/gcc-4.1/gcc-4.1-4.1.1ds2'
make: *** [stamps/05-build-stamp] Error 2
 
real    1387m23.862s
user    1357m0.080s
sys     27m28.560s
LANDISKで 1387分(23時間)でエラー。gtk+-2.0 をインストールして環境変数PKG_CONFIG_PATHに入れたらよい。というが、それだけか?
# apt-get install libgtk2.0-dev
# updatedb
# locate gtk+-2.0.pc
/usr/lib/pkgconfig/gtk+-2.0.pc
# export PKG_CONFIG_PATH=/usr/lib/pkgconfig/gtk+-2.0.pc
# ./debian/rules binary
言われたとおりに対処してみる。これでよいか不明だけど。

2007年01月07日

debian etch sh3/sh4

etchの base に必要なパッケージ一覧
adduser
apt
apt-utils
aptitude
base-files
base-passwd
bash
bsdmainutils
bsdutils
coreutils
cpio
cron
cyrus-sasl2-doc
debconf
debconf-i18n
debian-archive-keyring
debianutils
dhcp3-client
dhcp3-common
diff
dmidecode
dpkg
dselect
e2fslibs
e2fsprogs
ed
findutils
gcc-4.1-base
gnupg
gpgv
grep
groff-base
gzip
hostname
ifupdown
info
initscripts
iptables
iputils-ping
klogd
laptop-detect
libacl1
libattr1
libblkid1
libbz2-1.0
libc6
libcap1
libcomerr2
libconsole
libdb4.2
libdb4.3
libdb4.4
libdevmapper1.02
libgcc1
libgcrypt11
libgdbm3
libgnutls13
libgpg-error0
libldap-2.3-0
libldap2
liblocale-gettext-perl
liblzo1
liblzo2-2
libncurses5
libncursesw5
libnewt0.52
libopencdk8
libpam-modules
libpam-runtime
libpam0g
libpopt0
libreadline5
libsasl2
libsasl2-2
libselinux1
libsepol1
libsigc++-1.2-5c2
libsigc++-2.0-0c2a
libslang2
libss2
libssl0.9.8
libstdc++6
libtasn1-3
libtext-charwidth-perl
libtext-iconv-perl
libtext-wrapi18n-perl
libusb-0.1-4
libuuid1
libwrap0
login
logrotate
lsb-base
makedev
man-db
manpages
mawk
mktemp
module-init-tools
mount
nano
ncurses-base
ncurses-bin
net-tools
netbase
netcat
openbsd-inetd
passwd
perl-base
procps
readline-common
sed
sysklogd
sysv-rc
sysvinit
sysvinit-utils
tar
tasksel
tasksel-data
tcpd
traceroute
tzdata
update-inetd
util-linux
vim-common
vim-tiny
wget
whiptail
zlib1g

2007年01月08日

debian etch sh3/sh4

checking "rpcgen -C" build of db_server.h... no
checking "rpcgen" build of db_server.h... no
configure: error: Unable to build RPC support: rpcgen failed.
make: *** [build] Error 1
コケた。なんだろ? rpcgen -C db_server.h に失敗する?試してみる。
# cd obj
# rpcgen -C db_server.h
cannot find any C preprocessor (cpp)
rpcgen: C preprocessor failed with exit code 1
cppが見つからない?んなわけないなぁ。/usr/bin/cpp は存在するし。strace してみる。
# strace rpcgen -C db_server.h
execve("/usr/bin/rpcgen", ["rpcgen", "-C", "db_server.h"], [/* 17 vars */]) = 0
uname({sys="Linux", node="landy3", ...}) = 0
brk(0)                                  = 0x424000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2956f000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=26377, ...}) = 0
old_mmap(NULL, 26377, PROT_READ, MAP_PRIVATE, 3, 0) = 0x29570000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0*\0\1\0\0\0`g\1\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1319944, ...}) = 0
old_mmap(NULL, 1389664, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x29580000
mprotect(0x296b7000, 115808, PROT_NONE) = 0
old_mmap(0x296c7000, 40960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x137000) = 0x296c7000
old_mmap(0x296d1000, 9312, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x296d1000
mprotect(0x7bfff000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC|PROT_GROWSDOWN) = 0
close(3)                                = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x296d4000
mprotect(0x296c7000, 36864, PROT_READ)  = 0
mprotect(0x422000, 4096, PROT_READ)     = 0
mprotect(0x2957e000, 4096, PROT_READ)   = 0
munmap(0x29570000, 26377)               = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
stat64("db_server.h", {st_mode=S_IFREG|0644, st_size=296, ...}) = 0
brk(0)                                  = 0x424000
brk(0x445000)                           = 0x445000
pipe([3, 4])                            = 3
clone(cannot find any C preprocessor (cpp)
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0) = 5813
--- SIGCHLD (Child exited) @ 0 (0) ---
子プロセスで行わせているか。仕方ない、glibcのソースを見るか。
#define SVR4_CPP "/usr/ccs/lib/cpp"
#define SUNOS_CPP "/lib/cpp"
static const char *CPP = SUNOS_CPP;
略
/* make sure that a CPP exists */
static void
find_cpp (void)
{
  struct stat buf;
 
  if (stat (CPP, &buf) < 0)
    {                           /* /lib/cpp or explicit cpp does not exist */
      if (cppDefined)
        {
          fprintf (stderr, _ ("cannot find C preprocessor: %s \n"), CPP);
          crash ();
        }
      else
        {                       /* try the other one */
          CPP = SVR4_CPP;
          if (stat (CPP, &buf) < 0)
            {                   /* can't find any cpp */
              fputs (_ ("cannot find any C preprocessor (cpp)\n"), stdout);
              crash ();
            }
        }
    }
}
/lib/cpp ってか。ダイレクトにハードコーディングかよ。調べてみたら /lib/cpp が無かった。symlinkを貼って解決。
check your /lib/cpp

debian sh3/sh4 etch

aptをビルド
# cd apt-0.6.46.4
# dpkg-buildpackages -us -us
略
make[2]: Entering directory `/root/build/apt/apt-0.6.46.4/methods'
Compiling file.cc to ../build/obj/methods/file.o
Building program ../build/bin/methods/file
/usr/bin/ld: ../build/bin/methods/file: hidden symbol `__udivsi3_i4' in 
/usr/lib/gcc/sh4-linux-gnu/4.1.2/libgcc.a(_udivsi3_i4.o) is referenced by DSO
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
distcc[15769] ERROR: compile (null) on localhost failed
あっちゃ。また出た。libgccの演算ルーチンの周りって複雑怪奇だな。確かgcc-3.4の頃は修正パッチがあったと思うのだけど。。。gcc-4.1またビルドしなおしな悪寒(24時間コース)

__udivsi3_i4

まずは先輩諸兄のポインタ
http://www.hemamu.com/hemamu/diary/?date=20060219
http://gcc.gnu.org/ml/gcc-patches/2003-08/msg01255.html
DanとKazKojimaさんのやりとりを読んでみると、やっぱしlibgccのexportを作り直して再コンパイル(libgcc.aだけでよいか?)と思われる。それはまた後日時間のあるときにして今はaptを強引ビルドしてみる。 上記のログではデータが少なすぎるのでうるさくしてビルドする。
# cd build
# NOISY=yes make
略
make[2]: Entering directory `/root/build/apt/apt-0.6.46.4/methods'
echo Building program /root/build/apt/apt-0.6.46.4/build/bin/methods/file
Building program /root/build/apt/apt-0.6.46.4/build/bin/methods/file
distcc sh4-linux-gnu-g++  -L/root/build/apt/apt-0.6.46.4/build/bin  -o /root/build/apt/apt-0.6.46.4/build/bin/methods/file /root/build/apt/apt-0.6.46.4/build/obj/methods/file.o -lapt-pkg
/usr/bin/ld: /root/build/apt/apt-0.6.46.4/build/bin/methods/file: hidden symbol `__udivsi3_i4' in /usr/lib/gcc/sh4-linux-gnu/4.1.2/libgcc.a(_udivsi3_i4.o) is referenced by DSO
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
distcc[26591] ERROR: compile (null) on localhost failed
make[2]: *** [/root/build/apt/apt-0.6.46.4/build/bin/methods/file] Error 1
make[2]: Leaving directory `/root/build/apt/apt-0.6.46.4/methods'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/build/apt/apt-0.6.46.4'
make: *** [all] Error 2

__udivsi3_i4

gcc-4.1のソースを見てみると
$ cat src/gcc/config/sh/libgcc-excl.ver
# Exclude various symbols which should not be visible in libgcc.so for SH.
%exclude {
  __ashlsi3
  __ashrsi3
  __lshrsi3
  __mulsi3 # this is an SH1-only symbol.
  __udivsi3
}
シンボルが見えないように、わざわざ __udivsi3 をexcludeしてる。何でだろう?理由があるはずなんだけど分からない。これが原因だろうか。う〜ん。

2007年01月10日

debian etch sh3/sh4

気を取り直してgcc-4.1再ビルド(LANDISK SH4セルフ)
make[6]: Entering directory `/root/build/gcc-4.1/gcc-4.1-4.1.1ds2/build/gcc'
./xgcc -B./ -B/usr/sh4-linux-gnu/bin/ -isystem /usr/sh4-linux-gnu/include -isystem 
/usr/sh4-linux-gnu/sys-include -L/root/build/gcc-4.1/gcc-4.1-4.1.1ds2/build/gcc/../ld 
-O2 -O2 -g -O2  -DIN_GCC 
-W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  
-isystem ./include  -I. -Im4-nofpu -I../../src/gcc -I../../src/gcc/m4-nofpu 
-I../../src/gcc/../include -I../../src/gcc/../libcpp/include  
-m4-nofpu -g0 
-finhibit-size-directive -fno-inline-functions -fno-exceptions -fno-zero-initialized-in-bss 
-fno-unit-at-a-time   \
          -c ../../src/gcc/crtstuff.c -DCRT_BEGIN \
          -o m4-nofpu/crtbegin.o
cc1: internal compiler error: no multiarch mapping for multilib (m4-nofpu)
 
Please submit a full bug report,
with preprocessed source if appropriate.
See  for instructions.
For Debian GNU/Linux specific bug reporting instructions,
また src/gcc/c-incpath.c 直さなかんかな。

DC/DCコンバータ

gcc-4.1 ビルド中に時間があるのでDC/DCコンバータの実験をしみる。久しぶりにブレッドボード出してきたら埃が溜まっていた。

反転ゲートとコンデンサ、Diodeだけの簡単なチャージポンプ回路である。負電圧を作る実験である。パーツと定数は部品箱にあるものから選んだ。

図中では省略しているがHCT14には当然電源が必要で、測定したら4.4Vだった。図の黄色、青、紫、緑の各部の波形を下に示す。

負荷無し。写真の黄、青、紫、緑のGnd位置は同じ高さにあわせてある。

負荷 10K

負荷 1K。欲している出力はch4緑色の線である。さすがに負荷無しではキレイなDC波形で、-7.81Vが得られた。負荷10Kで、-6.41V、負荷1Kで-3.79V。ここらへんまでが実用域かな。(といっても3.79mA取れるっちゅうことだもんな。すごいな)

2007年01月11日

debian etch sh3/sh4

aptがコンパイルエラーになる件
/usr/bin/ld: /root/build/apt/apt-0.6.46.4/build/bin/apt-extracttemplates:
 hidden symbol `__udivsi3_i4' in /usr/lib/gcc/sh4-linux-gnu/4.1.2/libgcc.a(_udivsi3_i4.o) is referenced by DSO
/usr/bin/ld: final link failed: Nonrepresentable section on output
__udivsi3_i4 がリンクエラーになる問題、Kojimaさんからのコメントを参考にして、apt パッケージソースの makefileを修正する方法で対処した。-lgcc を追加
apt-pkg/makefile
    SLIBS=$(PTHREADLIB) $(INTLLIBS) -lgcc
apt-inst/makefile
    SLIBS=$(PTHREADLIB) -lapt-pkg -lgcc
無事ビルド成功 (^-^)/ Kojimaさんありがとうございます。
# ls ../*.deb
../apt-doc_0.6.46.4_all.deb    ../libapt-pkg-dev_0.6.46.4_sh4.deb
../apt-utils_0.6.46.4_sh4.deb  ../libapt-pkg-doc_0.6.46.4_all.deb
../apt_0.6.46.4_sh4.deb

2007年01月12日

えびめも

気がついたら5年目に突入していた


2007年01月13日

debian etch sh3/sh4

まず sh3 版が出来た。
# time dpkg-buildpackage  -uc -us
 :
 :
real    3299m15.638s
user    2829m39.720s
sys     124m51.430s
 
ucat1:~/build/gcc-4.1/gcc-4.1-4.1.1ds2# ls ../*.deb
../cpp-4.1_4.1.1-19_sh3.deb          ../libgfortran1-dev_4.1.1-19_sh3.deb
../fastjar_4.1.1-19_sh3.deb          ../libgfortran1_4.1.1-19_sh3.deb
../fixincludes_4.1.1-19_sh3.deb      ../libmudflap0-dev_4.1.1-19_sh3.deb
../g++-4.1_4.1.1-19_sh3.deb          ../libmudflap0_4.1.1-19_sh3.deb
../gcc-4.1-base_4.1.1-19_sh3.deb     ../libobjc1_4.1.1-19_sh3.deb
../gcc-4.1-locales_4.1.1-19_all.deb  ../libssp0_4.1.1-19_sh3.deb
../gcc-4.1-source_4.1.1-19_all.deb   ../libstdc++6-4.1-dbg_4.1.1-19_sh3.deb
../gcc-4.1_4.1.1-19_sh3.deb          ../libstdc++6-4.1-dev_4.1.1-19_sh3.deb
../gfortran-4.1_4.1.1-19_sh3.deb     ../libstdc++6-4.1-doc_4.1.1-19_all.deb
../gobjc++-4.1_4.1.1-19_sh3.deb      ../libstdc++6-4.1-pic_4.1.1-19_sh3.deb
../gobjc-4.1_4.1.1-19_sh3.deb        ../libstdc++6_4.1.1-19_sh3.deb
../libffi4-dev_4.1.1-19_sh3.deb      ../protoize_4.1.1-19_sh3.deb
../libffi4_4.1.1-19_sh3.deb          ../treelang-4.1_4.1.1-19_sh3.deb
../libgcc1_4.1.1-19_sh3.deb
3299分って55時間ですか〜。長かったけどビルドできてなにより。

2007年01月14日

debian etch sh3/sh4

続いて sh4 版 セルフgcc-4.1 も出来た。 sh4版は
  sh_multilibs=m4,m4-nofpu,m4a,m4a-nofpu
としたので、-m4-nofpu や -m4a が使える。ただし、それが正しく動くかはこれから検証。
landy3:~# gcc --print-multi-lib
.;
m4-nofpu;@m4-nofpu
m4a-nofpu;@m4a-nofpu
m4a;@m4a

2007年01月15日

debian etch sh3/sh4

dpkg-1.13.25 をsh3セルフでビルド。失敗。
/usr/lib/gcc/sh3-linux-gnu/4.1.2/../../../libselinux.a(load_policy.o): In function `selinux_mkload_policy':
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:74: undefined reference to `sepol_policy_kern_vers_max'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:74: undefined reference to `sepol_policy_kern_vers_min'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:74: undefined reference to `sepol_policy_file_create'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:74: undefined reference to `sepol_policydb_create'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:74: undefined reference to `sepol_policy_file_set_mem'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:74: undefined reference to `sepol_policydb_read'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:74: undefined reference to `sepol_policydb_set_vers'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:74: undefined reference to `sepol_policydb_to_image'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:74: undefined reference to `sepol_policy_file_free'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:74: undefined reference to `sepol_policydb_free'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:118: undefined reference to `sepol_policy_file_free'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:118: undefined reference to `sepol_policydb_free'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:118: undefined reference to `sepol_genbools_array'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:118: undefined reference to `sepol_genusers'
/root/build/libselinux1/libselinux-1.32/src/load_policy.c:118: undefined reference to `sepol_genbools'
ぐぐってみたら debianのbugらしい。
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347744
あれ〜。でも先日sh4のパッケージは出来たたんだけどなぁ。。。どうやってビルドしたのだっけな?
--- configure-orig      2007-01-15 12:25:22.000000000 +0900
+++ configure   2007-01-15 12:26:50.000000000 +0900
@@ -13162,9 +13162,9 @@
 _ACEOF
 
                 if test "x$with_selinux" = "xstatic"; then
-                       dpkg_selinux_libs="-Wl,-Bstatic `pkg-config --static --libs libselinux` -Wl,-Bdynamic"
+                       dpkg_selinux_libs="-Wl,-Bstatic `pkg-config --static --libs libselinux --libs libsepol` -Wl,-Bdynamic"
                 else
-                       dpkg_selinux_libs="`pkg-config --libs libselinux`"
+                       dpkg_selinux_libs="`pkg-config --libs libselinux --libs libsepol`"
                 fi
                 SELINUX_LIBS="${SELINUX_LIBS:+$SELINUX_LIBS }$dpkg_selinux_libs"
                 with_selinux="yes"
こんな風なパッチで回避

debian etch sh3/sh4

一難去って又一難。directfb-0.9.25.1 ビルド失敗
make[5]: Entering directory `/root/build/libdirectfb-dev/directfb-0.9.
25.1/directfb-build/wm/unique/data'
../../../tools/directfb-csource --name=foo ../../../../wm/unique/data/
foo_n.png ../../../../wm/unique/data/foo_ne.png ../../../../wm/unique/
data/foo_e.png ../../../../wm/unique/data/foo_se.png ../../../../wm/un
ique/data/foo_s.png ../../../../wm/unique/data/foo_sw.png ../../../../
wm/unique/data/foo_w.png ../../../../wm/unique/data/foo_nw.png > foo.h
/bin/sh: ../../../tools/directfb-csource: No such file or directory
make[5]: *** [foo.h] Error 127
configureスクリプトを追ったところ、libpng12-dev が古いのが原因らしい。修正した。
update your 'libpng12-dev'

debian etch sh3/sh4

debian etch base.tgz に必要なパッケージリスト。ビルドが終わったパッケージに*印をつける。sh3はまだまだ。
 sh4  
  *  adduser
  *  apt
  *  apt-utils
  -  aptitude
  *  base-files
  -  base-passwd
  *  bash
  *  bsdmainutils
  *  bsdutils
  *  coreutils
  *  cpio
  -  cron
  -  cyrus-sasl2-doc
  -  debconf
  -  debconf-i18n
  *  debian-archive-keyring
  *  debianutils
  -  dhcp3-client
  -  dhcp3-common
  *  diff
  -  dmidecode
  *  dpkg
  *  dselect
  *  e2fslibs
  *  e2fsprogs
  *  ed
  *  findutils
  *  gcc-4.1-base
  *  gnupg
  -  gpgv
  *  grep
  *  groff-base
  *  gzip
  -  hostname
  *  ifupdown
  *  info
  *  initscripts
  -  iptables
  -  iputils-ping
  -  klogd
  -  laptop-detect
  *  libacl1
  *  libattr1
  *  libblkid1
  *  libbz2-1.0
  *  libc6
  *  libcap1
  *  libcomerr2
  -  libconsole
  -  libdb4.2
  -  libdb4.3
  -  libdb4.4
  *  libdevmapper1.02
  *  libgcc1
  *  libgcrypt11
  *  libgdbm3
  -  libgnutls13
  *  libgpg-error0
  -  libldap-2.3-0
  -  libldap2
  -  liblocale-gettext-perl
  *  liblzo1
  *  libncurses5
  *  libncursesw5
  -  libnewt0.52
  -  libopencdk8
  *  libpam-modules
  *  libpam-runtime
  *  libpam0g
  -  libpopt0
  -  libreadline5
  -  libsasl2
  -  libsasl2-2
  *  libselinux1
  *  libsepol1
  -  libsigc++-2.0-0c2a
  *  libslang2
  *  libss2
  -  libssl0.9.8
  *  libstdc++6
  *  libtasn1-3
  -  libtext-charwidth-perl
  -  libtext-iconv-perl
  -  libtext-wrapi18n-perl
  *  libusb-0.1-4
  *  libuuid1
  -  libwrap0
  *  login
  -  logrotate
  *  lsb-base
  -  makedev
  -  man-db
  *  manpages
  *  mawk
  *  mktemp
  *  module-init-tools
  *  mount
  -  nano
  *  ncurses-base
  *  ncurses-bin
  -  net-tools
  *  netbase
  ?  netcat
  -  openbsd-inetd
  *  passwd
  -  perl-base
  -  procps
  *  readline-common
  -  sed
  -  sysklogd
  *  sysv-rc
  *  sysvinit
  *  sysvinit-utils
  *  tar
  *  tasksel
  *  tasksel-data
  -  tcpd
  ?  traceroute
  *  tzdata
  -  update-inetd
  *  util-linux
  -  vim-common
  -  vim-tiny
  -  wget
  -  whiptail
  *  zlib1g
半分は出来たかな。けど perl とか libqt3 とか libgtk2.0-dev とか、大きいやつがこれから。

2007年01月16日

debian etch sh3/sh4

postgresqlビルド。TAS(TestAndSet)が無いと怒られる。TASはセマフォの基本だ。
distcc sh4-linux-gnu-gcc -g -Wall -O2 -fPIC -Wall -Wmissing-prototypes
 -Wpointer-arith -Winline -Wdeclaration-after-statement -Wendif-labels
 -fno-strict-aliasing -g -I../../../../src/include -D_GNU_SOURCE  -I/u
sr/include/tcl8.4  -c -o xlog.o xlog.c
In file included from ../../../../src/include/storage/spin.h:60,
                 from xlog.c:44:
../../../../src/include/storage/s_lock.h:806:2: error: #error PostgreSQ
L does not have native spinlock support on this platform. To continue t
he compilation, rerun configure using --disable-spinlocks. However, per
formance will be poor. Please report this to pgsql-bugs@postgresql.org.
distcc[1468] ERROR: compile xlog.c on iroiro failed
--disable-spinlocks を付けたらよいけどパフォーマンスは犠牲になるらしい。それは嫌だな。パッチを作ってみる。
 *      int TAS(slock_t *lock)
 *              Atomic test-and-set instruction.  Attempt to acquire the lock,
 *              but do *not* wait.      Returns 0 if successful, nonzero if unable
 *              to acquire the lock.
えーと、lock取れたら0、失敗したら1を返す事と。
--- src/include/storage/s_lock.h-orig   2007-01-16 16:12:32.000000000 +0900
+++ src/include/storage/s_lock.h        2007-01-16 17:55:54.000000000 +0900
@@ -398,6 +398,32 @@
 
 #endif  /* (__mc68000__ || __m68k__) && __linux__ */
 
+#if defined(__SH3__) || defined(__SH4__)
+
+#define HAS_TEST_AND_SET
+
+typedef unsigned char slock_t;
+
+#define TAS(lock) tas(lock)
+
+static __inline__ int
+tas(volatile slock_t *lock)
+{
+register int    _res;
+       __asm__ __volatile__ (
+               "mov #0,%0\n\t"
+               "tas.b %1\n\t"
+               "bt/s 1f\n\t"
+               " nop\n\t"
+               "mov #1,%0\n\t"
+               "1:"
+       : "=r"(_res), "+m"(*lock)
+       : "r" (lock)
+       );
+       return _res;
+}
+
+#endif   /* (__SH3__) || (__SH4__) */
 
 #if defined(__vax__)
 /*
はっきり言って自信ないです(*_*)。間違っていたら誰か指摘してください。mutexが間違っているデータベースなんて使いたくないですよね(^o^A;;)

debian etch sh3/sh4

gccで定義済みのシンボルを表示する
 $ cpp -dM /dev/null
最初 __sh4__ が defineされてなくて困っていたら大文字だった。

2007年01月19日

debian etch sh3/sh4

gcj-4.1 重たい。 これは大変だ。 gcj-4.1をビルドするには libxul-dev (xulrunner) が必要で、xulrunnerをビルドするにはgcjが必要。うーむむむ。xulrunner を nfs上でビルドして javacが必要なところはi386でコンパイル。xulrunner ビルドするのに4夜かかった。
sh4 etch ベースまでの道のり。(* 完了 , - 未完, k 仮 , ? 不明)
 
*  adduser
*  apt
*  apt-utils
*  aptitude
*  base-files
-  base-passwd
*  bash
*  bsdmainutils
*  bsdutils
*  coreutils
*  cpio
*  cron
-  cyrus-sasl2-doc
-  debconf
-  debconf-i18n
*  debian-archive-keyring
*  debianutils
*  dhcp3-client
*  dhcp3-common
*  diff
*  dmidecode
*  dpkg
*  dselect
*  e2fslibs
*  e2fsprogs
*  ed
*  findutils
*  gcc-4.1-base
*  gnupg
-  gpgv
*  grep
*  groff-base
*  gzip
*  hostname
*  ifupdown
*  info
*  initscripts
*  iptables
*  iputils-ping
*  klogd
*  laptop-detect
*  libacl1
*  libattr1
*  libblkid1
*  libbz2-1.0
*  libc6
*  libcap1
*  libcomerr2
*  libconsole
-  libdb4.2
-  libdb4.3
k  libdb4.4
*  libdevmapper1.02
*  libgcc1
*  libgcrypt11
*  libgdbm3
-  libgnutls13
*  libgpg-error0
-  libldap-2.3-0
-  libldap2
-  liblocale-gettext-perl
*  liblzo1
*  libncurses5
*  libncursesw5
-  libnewt0.52
*  libopencdk8
*  libpam-modules
*  libpam-runtime
*  libpam0g
*  libpopt0
*  libreadline5
-  libsasl2
-  libsasl2-2
*  libselinux1
*  libsepol1
*  libsigc++-2.0-0c2a
*  libslang2
*  libss2
*  libssl0.9.8
*  libstdc++6
*  libtasn1-3
*  libtext-charwidth-perl
*  libtext-iconv-perl
*  libtext-wrapi18n-perl
*  libusb-0.1-4
*  libuuid1
*  libwrap0
*  login
*  logrotate
*  lsb-base
*  makedev
*  man-db
*  manpages
*  mawk
*  mktemp
*  module-init-tools
*  mount
*  nano
*  ncurses-base
*  ncurses-bin
*  net-tools
*  netbase
?  netcat
*  openbsd-inetd
*  passwd
-  perl-base
*  procps
*  readline-common
*  sed
*  sysklogd
*  sysv-rc
*  sysvinit
*  sysvinit-utils
*  tar
*  tasksel
*  tasksel-data
*  tcpd
*  traceroute
*  tzdata
*  update-inetd
*  util-linux
-  vim-common
-  vim-tiny
*  wget
*  whiptail
*  zlib1g
もうちょい

2007年01月21日

debian etch sh3/sh4

gcj-4.1 をビルドするのに先立って kaffe が必要。kaffeの jar を使う。けれど gcj-4.1 の make中に
jar -cfM@E
という書式があり、kaffeの jar は -@ というオプションを認識しない。gcj-4.1 のビルドには gcj-4.1 に含まれている fastjar を使わないと先に進まない。

2007年01月22日

デバイスドライバを書かずにIOを読み書きする

/dev/mem を mmap() すると デバイスドライバを書かなくてもIOメモリーが直接読み書きできるよ。という話があるmlで流れていて、けれどもそれはあまりお勧めしないという話をしたのだけど、何人かの方からやり方を教えてという直メールが来たので解説ページを作りました。
CAT Wiki デバイスドライバを書かずにIOを読み書きする
書いているうちに調子に乗って ioperm() もどきを作ってしまいました。ioperm()を使っているお行儀の悪い i386用ソフトを移植するには便利かもしれません。
#include <stdio.h>
#include "bogoio.h"
int main(){
        // 使用開始 0xa4000000番地〜 0x400バイト分
        bogo_ioperm(0xa4000000,0x400,1);
 
        // 0xa4000130番地に 0x00 出力
        bogo_outb(0x00,0xa4000130);  // LED1, LED2を点灯
 
        // 閉める
        bogo_ioperm(0xa4000000,0x400,0);
 
        return 0;
}

2007年01月23日

debian etch sh3/sh4

gcj-4.1 SH4セルフビルド
/root/build/gcj/gcj-4.1-4.1.1/build-ebihara/gcc/gcj -B/root/build/gcj/gcj-4.1-4.
1.1/build-ebihara/sh4-linux-gnu/libjava/ -B/root/build/gcj/gcj-4.1-4.1.1/build-e
bihara/gcc/ -Wno-deprecated --encoding=UTF-8 --bootclasspath '' --classpath ..:/
root/build/gcj/gcj-4.1-4.1.1/src/libjava:/root/build/gcj/gcj-4.1-4.1.1/build-ebi
hara/sh4-linux-gnu/libjava:../../../../../src/libjava/classpath:../../../../../s
rc/libjava/classpath/external/w3c_dom:../../../../../src/libjava/classpath/exter
nal/sax:../../../../../src/libjava/classpath/external/relaxngDatatype:.:: -C -d 
. -MD -MF lists/gnu-CORBA-CDR.deps -MT lists/gnu-CORBA-CDR.stamp -MP @lists/gnu-
CORBA-CDR.listmake[4]: *** [compile-classes] 強制終了
make[4]: ディレクトリ `/root/build/gcj/gcj-4.1-4.1.1/build-ebihara/sh4-linux-gnu
/libjava/classpath/lib' から出ます
make[3]: *** [all-recursive] エラー 1
make[3]: ディレクトリ `/root/build/gcj/gcj-4.1-4.1.1/build-ebihara/sh4-linux-gnu
/libjava/classpath' から出ますmake[2]: *** [all-recursive] エラー 1
make[2]: ディレクトリ `/root/build/gcj/gcj-4.1-4.1.1/build-ebihara/sh4-linux-gnu
/libjava' から出ます
make[1]: *** [all-target-libjava] エラー 2
make[1]: ディレクトリ `/root/build/gcj/gcj-4.1-4.1.1/build-ebihara' から出ます
make: *** [all] エラー 2
gcj-4.1 の Segmentation Fault 落ち。何だろうと調べていたらメモリ不足だった。
Free swap  = 0kB
Total swap = 498004kB
Out of Memory: Killed process 16142 (make).
SDRAM 64M , SWAP 約500Mでは足りなかった(*_*)

debian etch sh3/sh4

こんな装置でビルドしています。

今回新しくsh3版etchビルドデーモン用に増設した EK709 (SH7709S 117MHz, Memory32M, Microdrive2G ) x4セット。しかも自腹負担 新品調達。金かかってます(*_*)。未踏の予算でもくれないかしらん。三岩さんボードx10枚とか計画しようかな。でもあちらはメモリが足りない…
SH4の方は LANDISK 合計4台です(こっちのがパワフルでしかも安い)。先日kinneko様から1台頂きました。ありがとうございます。他にもあまっている方いらっしゃいましたら当方で活用いたしますのでご寄付いただけると助かります。よろしくお願いいたします。

2007年01月24日

タウンワーク758

TVをつけていたら、名古屋では知らない人はいない美宝堂の親子がリクルートのCMをやっていた。
うおぉぉぉ。美宝堂じゃんか。リクルートのCMやってるっ!
この面白さを伝えたいっ。けど名古屋の人じゃないと面白さが分からないッ
http://www.youtube.com/watch?v=1DdN6C2dW-U

2007年01月25日

夜の静寂のなんと饒舌なことでしょうか

報道ステーションでジェットストリームの特集をやっていた。自分が中学か高校生だった頃に、ラジカセのチューニングを合わせながら聞き入っていたことを思い出した。『夜間飛行のお供は私城達也です』。夜間飛行という言葉に憧れ、遠い異国の町並みに思いをはせていたことを思い出した。TVでは世界の車窓からという人気番組がある。不思議なことに、画でみる具体的な景色よりもFMから流れる異国風景が、何倍も何十倍も色鮮やかで、登場する人々の表情も豊かに思い描けたように思う。「日本航空がお届けする・・・」というアナウンスがにくい(苦笑)。また、遠くへ出かけたくなってしまう。

城達也さんが降板され、その次の機長は確かすごく若い声で、その声を聞いてからジェットストリームを聞くことはなくなってしまった。時代が変わりアジアの街角へ気軽に出かけられるようになった今日、夜間飛行に乗る前にはやはり心のどこかで城達也さんの声を思い出しているのだと思う。私は自分の中のノスタルジーを打ち消しつつ生きているけれど、実家の、やっと作ってくれた3畳の勉強部屋を思い出してしまった。


2007年01月29日

debian sh4/sh3 etch

telnetd: /usr/lib/telnetlogin: Permission denied
fix
 # ls -l /usr/lib/telnetlogin
 # chown root:telnetd /usr/lib/telnetlogin
 # chmod 4754 /usr/lib/telnetlogin
 # /etc/init.d/openbsd-inetd restart

2007年01月30日

C言語トリビア

C言語の左シフト演算子 << のオペランドに負が使えるのだろうか?
すなわちこういうことだ。
  8<<-1
実際にやってみた。
int main(){
        printf("%d\n", 8<<-1);
}
コンパイル&実行(i386 PC)
$ gcc -O2 test2.c
test2.c: In function `main':
test2.c:2: warning: left shift count is negative
$ ./a.out
0
コンパイラはワーニングを吐いた。結果はゼロになった。sh3でもやってみた。
$ gcc -O2 test2.c
test2.c: In function `main':
test2.c:2: warning: left shift count is negative
$ ./a.out
4
正しい値?になった。該当部分の逆アセンブル
   2:   ff e1           mov     #-1,r1
   4:   08 e5           mov     #8,r5
   6:   1d 45           shld    r1,r5
なるほど。プロセッサ任せてことね。
結論。やらないほうがいい

2007年01月31日

ネットカフェ難民

たまたまTVをつけていたらNNNドキュメントで「ネットカフェ難民 漂流する貧困者たち」をやっていたので見ていた。登場人物は若い。20代30代の男女。ケイタイで日雇いの仕事斡旋サイトに登録する。入ってくるのは深夜早朝の仕分けなどの仕事。明け方に起き出して「16537番今から向かいます」と携帯メールで連絡を入れる。名前では呼ばれない。写真や思い出の私財は24時間100円のロッカーにしまう。350円のノリ弁で一日を乗り切って、一泊千円以下のネットカフェで体を丸めて寝る。シャワーを浴びたいときは少し高めのネットカフェを使い分ける。貯蓄が無いから月給では暮らせない。ネットカフェでも日雇いサイトを検索する。

今日会社に出かけたらそのTVの話題になった。生活保護など公の制度に頼らず自力で生き抜いているのはたくましいと思う。けれど何かヘンだ。

なぜ東京にいつづけるのか。都会で知人も友達もいなく、孤独にがんばってるんだろう。20代の女の子が、布団で体を伸ばして寝たいと話ていた。一泊1000円の出費があるなら毎月3万円ネットカフェに払っている。もし彼らが3,4人集まればシェアしてシャワー付きの部屋を借りることは出来るだろう。ブログで募ったりはできないのだろうか。ネットカフェにいるなら、ツールは目の前にあるというのに。孤独に、漂流しすぎている気がした。

ひょっとして

これも、あるあると同じ捏造なのか。

vista発売

しばらく放置