いろいろ記録しておこう。
実行時リンカ?を複数にしたい。ここの/lib/ld-linux.so.2を/usr/local/i386-pc/lib/ld-linux.so.2に書き換えてしまえば楽なのだな。$ cd /usr/local/i386-pc/bin $ ./gcc -v Reading specs from ./../lib/gcc-lib/i686-pc-linux-gnu/3.3.2/specs Configured with: ../gcc-3.3.2/configure --prefix=/usr/local/i386-pc --disable-nls --with-newlib --enable-languages=c Thread model: posix gcc version 3.3.2 $ ./gcc -dumpspecs (snip) *link: %{!static:--eh-frame-hdr} -m elf_i386 %{shared:-shared} %{!shared: %{!ibcs: %{!static: %{rdynamic:-export-dynamic} %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} %{static:-static}}} (snip)
_ kernel rebuild: kernelソースを準備する。自前でコンパイルして動くことを確認する。 私は USAGI projectのusagi-linux24-s20040412.tar.bz2を使用した。
$ tar -jxvf usagi-linux24-s20040412.tar.bz2 $ mv usagi usagi-linux24-s20040412 $ cd usagi-linux24-s20040412 $ make TARGET=linux24 prepare $ cd kernel/linux24 $ vi Makefile # EXTRAVERSION = -rc1u2 $ cp /boot/2.4.26-rc1u2.config .config $ make oldconfig $ make dep && make bzImage && make modulesgrub.confに追加。# VVV=2.4.26-rc1u2 # cp arch/i386/boot/bzImage /boot/bzImage-$VVV # cp System.map /boot/System.map-$VVV # cp vmlinux /boot/vmlinux-$VVV # cp .config /boot/$VVV.config # make INSTALL_MOD_PATH=/ modules_install再起動して動くことを確認。title bzImage-2.4.26-rc1u2 root (hd0,4) kernel /bzImage-2.4.26-rc1u2 ro root=/dev/hda6 hdc=ide-scsi vga=0x317_ 無線ドライバ: ipw2100-0.40-pre2.tgzを Intel PRO/Wireless 2100 Driver for Linuxよりダウンロード。
こんな感じ。$ cd usagi-linux24-s20040412/kernel/linux24 $ cd drivers/net/wireless $ tar -zxvf ~/ipw2100-0.40-pre2.tgz $ mv ipw2100-0.40-pre2 ipw2100 $ cd usagi-linux24-s20040412/kernel/linux24 $ make oldconfig再構築とインストールCONFIG_IPW2100=m CONFIG_IPW2100_LEGACY_FW_LOAD=y # CONFIG_IPW2100_NOWEP is not set # CONFIG_IPW2100_DEBUG is not set CONFIG_IPW2100_AVERATEC_5100P=m$ make dep && make bzImage && make modules $ su # VVV=2.4.26-rc1u2 # cp arch/i386/boot/bzImage /boot/bzImage-$VVV # cp System.map /boot/System.map-$VVV # cp vmlinux /boot/vmlinux-$VVV # cp .config /boot/$VVV.config # make INSTALL_MOD_PATH=/ modules_install # # reboot_ hostap: WEPのために必要になる Host AP driver for Intersil Prism2/2.5/3 and WPA Supplicant。 hostap-driver-0.1.3.tar.gzを使う。
これで動くはず。$ tar -zxvf hostap-driver-0.1.3.tar.gz $ cd hostap-driver-0.1.3 $ vi Makefile # KERNEL_PATH=/lib/modules/$(shell uname -r)/build $ make $ su # make installこんな感じ? これはつながっていない状態なので。# modprobe ipw2100 # iwconfig eth1 Warning: Driver for device eth1 has been compiled with version 16 of Wireless Extension, while this program is using version 15. Some things may be broken... eth1 IEEE 802.11b ESSID:"tsunami" Nickname:"ipw2100" Mode:Managed Frequency:2.484GHz Access Point: 00:09:B7:7B:AF:77 Bit Rate=11Mb/s Tx-Power=0 dBm Retry:on RTS thr=2304 B Fragment thr:off Encryption key:off Link Quality:100/0 Signal level:-59 dBm Noise level:-98 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 # lsmod Module Size Used by Not tainted ipw2100 77256 2 hostap 96104 0 [ipw2100]
Vineな環境でFedoraというか、違うバージョンのglibcな環境を動かす。 Vineはglibc-2.2.4. Fedora Core1はglibc-2.3.2.# mkdir /fedora # cd /fedora # rpm2cpio /mnt/cdrom/Fedora/RPMS/bash-2.05b-31.i386.rpm | cpio -id # rpm2cpio /mnt/cdrom/Fedora/RPMS/glibc-common-2.3.2-101.i386.rpm | cpio -id # rpm2cpio /mnt/cdrom/Fedora/RPMS/glibc-2.3.2-101.i686.rpm | cpio -id # rpm2cpio /mnt/cdrom/Fedora/RPMS/libtermcap-2.0.8-36.i386.rpm | cpio -id # rpm2cpio /mnt/cdrom/Fedora/RPMS/popt-1.8.1-0.30.i386.rpm | cpio -id # rpm2cpio /mnt/cdrom/Fedora/RPMS/elfutils-libelf-0.89-2.i386.rpm | cpio -id # rpm2cpio /mnt/cdrom/Fedora/RPMS/beecrypt-3.0.1-0.20030630.1.i386.rpm | cpio -id # rpm2cpio /mnt/cdrom/Fedora/RPMS/bzip2-libs-1.0.2-10.i386.rpm | cpio -id # cd / # chroot /fedora bash-2.05b#$ ls /fedora/install MAKEDEV-3.3.8-2.i386.rpm SysVinit-2.85-5.i386.rpm basesystem-8.0-2.noarch.rpm bash-2.05b-31.i386.rpm beecrypt-3.0.1-0.20030630.1.i386.rpm binutils-2.14.90.0.6-3.i386.rpm bzip2-libs-1.0.2-10.i386.rpm chkconfig-1.3.9-1.i386.rpm coreutils-5.0-24.i386.rpm cpp-3.3.2-1.i386.rpm cracklib-2.7-23.i386.rpm cracklib-dicts-2.7-23.i386.rpm db4-4.1.25-14.i386.rpm dev-3.3.8-2.i386.rpm e2fsprogs-1.34-1.i386.rpm elfutils-libelf-0.89-2.i386.rpm ethtool-1.8-2.1.i386.rpm fedora-release-1-3.i386.rpm filesystem-2.2.1-5.i386.rpm findutils-4.1.7-17.i386.rpm gawk-3.1.3-3.i386.rpm gcc-3.3.2-1.i386.rpm gdbm-1.8.0-21.i386.rpm glib-1.2.10-11.i386.rpm glibc-2.3.2-101.i686.rpm glibc-common-2.3.2-101.i386.rpm glibc-devel-2.3.2-101.i386.rpm glibc-headers-2.3.2-101.i386.rpm glibc-kernheaders-2.4-8.36.i386.rpm gpm-1.20.1-38.i386.rpm grep-2.5.1-17.i386.rpm gzip-1.3.3-11.i386.rpm info-4.5-2.i386.rpm initscripts-7.42-1.i386.rpm iproute-2.4.7-11.i386.rpm iputils-20020927-9.1.i386.rpm less-378-11.1.i386.rpm libacl-2.2.7-2.i386.rpm libattr-2.4.1-2.i386.rpm libgcc-3.3.2-1.i386.rpm libstdc++-3.3.2-1.i386.rpm libtermcap-2.0.8-36.i386.rpm make-3.79.1-18.i386.rpm mingetty-1.06-2.i386.rpm mktemp-1.5.1-1.i386.rpm modutils-2.4.25-13.i386.rpm mount-2.11y-29.i386.rpm ncurses-5.3-9.i386.rpm net-tools-1.60-20.1.i386.rpm pam-0.77-15.i386.rpm pcre-4.4-1.i386.rpm perl-5.8.1-92.i386.rpm perl-Filter-1.29-8.i386.rpm popt-1.8.1-0.30.i386.rpm procps-2.0.17-1.i386.rpm psmisc-21.3-2.RHEL.0.i386.rpm rootfiles-7.2-6.noarch.rpm rpm-4.2.1-0.30.i386.rpm sed-4.0.8-1.i386.rpm setup-2.5.27-1.1.noarch.rpm shadow-utils-4.0.3-12.i386.rpm sysklogd-1.4.1-13.i386.rpm tar-1.13.25-12.i386.rpm termcap-11.0.1-17.noarch.rpm tzdata-2003d-1.noarch.rpm util-linux-2.11y-29.i386.rpm which-2.16-1.i386.rpm words-2-21.noarch.rpm zlib-1.2.0.7-2.i386.rpmbash-2.05b# cd /install bash-2.05b# rpm -Uvh * 警告: MAKEDEV-3.3.8-2.i386.rpm: V3 DSA signature: NOKEY, key ID 4f2a6fd2 警告: basesystem-8.0-2.noarch.rpm: V3 DSA signature: NOKEY, key ID db42a60e エラー: failed to open /etc/mtab: そのようなファイルやディレクトリはありません Preparing... ########################################### [100%] 1:libgcc ########################################### [ 1%] 2:setup ########################################### [ 3%] 3:filesystem ########################################### [ 4%] 4:basesystem ########################################### [ 6%] 5:tzdata ########################################### [ 7%] 6:glibc-common ########################################### [ 9%] 7:glibc 警告: /etc/ld.so.conf created as /etc/ld.so.conf.rpmnew 警告: /etc/localtime created as /etc/localtime.rpmnew 警告: /etc/nsswitch.conf created as /etc/nsswitch.conf.rpmnew 警告: /etc/rpc saved as /etc/rpc.rpmorig 警告: /usr/lib/gconv/gconv-modules created as /usr/lib/gconv/gconv-modules.rpmnew ########################################### [ 10%] 8:mktemp ########################################### [ 12%] 9:chkconfig ########################################### [ 13%] 10:shadow-utils ########################################### [ 14%] 11:cracklib ########################################### [ 16%] 12:popt ########################################### [ 17%] 13:zlib ########################################### [ 19%] 14:beecrypt ########################################### [ 20%] 15:bzip2-libs ########################################### [ 22%] 16:e2fsprogs ########################################### [ 23%] 17:elfutils-libelf ########################################### [ 25%] 18:ethtool ########################################### [ 26%] 19:gdbm ########################################### [ 28%] 20:glib ########################################### [ 29%] 21:iputils ########################################### [ 30%] 22:libattr ########################################### [ 32%] 23:libacl ########################################### [ 33%] 24:libstdc++ ########################################### [ 35%] 25:db4 ########################################### [ 36%] 26:mingetty ########################################### [ 38%] 27:mount ########################################### [ 39%] 28:net-tools ########################################### [ 41%] 29:pcre ########################################### [ 42%] 30:termcap ########################################### [ 43%] 31:libtermcap ########################################### [ 45%] 32:bash 警告: /etc/skel/.bash_logout created as /etc/skel/.bash_logout.rpmnew 警告: /etc/skel/.bash_profile created as /etc/skel/.bash_profile.rpmnew 警告: /etc/skel/.bashrc created as /etc/skel/.bashrc.rpmnew ########################################### [ 46%] 33:fedora-release ########################################### [ 48%] 34:iproute ########################################### [ 49%] 35:words ########################################### [ 51%] 36:cracklib-dicts ########################################### [ 52%] 37:MAKEDEV ########################################### [ 54%] 38:rootfiles ########################################### [ 55%] 39:info ########################################### [ 57%] 40:ncurses ########################################### [ 58%] 41:grep ########################################### [ 59%] 42:sed ########################################### [ 61%] 43:less ########################################### [ 62%] 44:psmisc ########################################### [ 64%] 45:binutils ########################################### [ 65%] 46:cpp ########################################### [ 67%] 47:findutils ########################################### [ 68%] 48:coreutils ########################################### [ 70%] 49:pam ########################################### [ 71%] 50:dev ########################################### [ 72%] 51:which ########################################### [ 74%] 52:SysVinit ########################################### [ 75%] 53:util-linux ########################################### [ 77%] 54:modutils ########################################### [ 78%] 55:procps ########################################### [ 80%] 56:gawk ########################################### [ 81%] 57:initscripts ########################################### [ 83%] 58:glibc-kernheaders ########################################### [ 84%] 59:glibc-headers ########################################### [ 86%] 60:glibc-devel ########################################### [ 87%] 61:gcc ########################################### [ 88%] 62:gpm ########################################### [ 90%] 63:gzip ########################################### [ 91%] 64:make ########################################### [ 93%] 65:perl ########################################### [ 94%] 66:perl-Filter ########################################### [ 96%] 67:rpm 警告: /etc/cron.daily/rpm created as /etc/cron.daily/rpm.rpmnew 警告: /etc/logrotate.d/rpm created as /etc/logrotate.d/rpm.rpmnew ########################################### [ 97%] 68:sysklogd ########################################### [ 99%] 69:tar ########################################### [100%] bash-2.05b# exit# chroot /fedora # useradd murase # exit$ cat bin/fedora #! /bin/sh grep /fedora/proc /proc/mounts > /dev/null || sudo mount --bind /proc /fedora/proc sudo /usr/sbin/chroot /fedora su - murase $ bin/fedora $
emacsでTABのインデント量というかサイズというか幅を変えるにはとか(setq default-tab-width 8)とかする。一時的にかえるなら(setq tab-width 8)と言う基本的なことをしらないなあ。M-x set-variable Set variable: tab-width Set tab-width to value: 8