U-Bootで使える初代玄箱(無印)の2.6.25.20Linuxカーネルを作成する。
「Linux」タグアーカイブ
[玄箱]mkimageの作成
U-Bootで使える形でカーネル再構築をするためにmkimageをコンパイルする。
[玄箱]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をフォーマットして再インストールを行った時のメモ。
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;
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/
Ubuntu 10.04 でカーネル再構築
Ubuntu上でInfernoのカーネルをコンパイルするときに、
- /bin/sh: Argument list too long
というエラーでmkが完了しなかった。
xargsで分割できればいいんだけど、いまいち使い方がわからない。
というのもmkコマンドでmkfileを使うんだけど、その中身で
どうも、別ファイルを読み込んでその中をまた別のファイルに書かれてるスクリプトで
分割して、それを引数で渡してるみたいなんだけど、この場合どうやってxargsを使えばいいんだ?
仕方ないのでARG_MAX自体の値を増やすことにした。
カーネル再構築に必要なパッケージのインストール
- $sudo apt-get install build-essential
- $sudo apt-get install kernel-package libncurses5-dev libqt3-mt-dev
カーネルソースをインストールして展開
- $sudo apt-get install linux-source-2.6.32
- $cd /usr/src
- $sudo tar xvjf linux-source-2.6.32.tar.bz2
ソースの変更
- /usr/src/linux-source-2.6.32/include/linux/limits.hを開き、ARG_MAXを増やす
.config ファイルの作成
- $cd linux-source-2.6.32
- $sudo cp /boot/config-2.6.32-23-generic .config
- $sudo make oldconfig
パラメータの変更
- $sudo make menuconfig
Processor type and features ---> Processor familly ---> *Coer 2/newer Xeon
Timer frequency ---> *300 HZ
Device Drivers ---> ATA/ATAPI/MFM/RLL support ---> *generic ATA/ATAPI disk support
Device Drivers ---> ATA/ATAPI/MFM/RLL support ---> *ATA disk support
などを変更してSave Configuration to an Alternate Fileで変更を保存。
出来上がった .config ファイルの中を開いて、
以下のものが「M」ではなく「y」になっているか確認する。
- CONFIG_IDE
- CONFIG_SCSI
- CONFIG_EXT3
並列コンパイル設定(CPUは4つなので最大5つまでという設定にする)
- $sudo export CONCURRENCY_LEVEL=5
カーネルリビルド
- $sudo make-kpkg clean
- $sudo make-kpkg –initrd –revision=20100710 kernel_image kernel_headers
.debができるのでdpkgでインストール
- $cd ../
- $sudo dpkg -i linux-image-2.6.32.*****20100710_i386.deb
- $sudo dpkg -i linux-headers-2.6.32.*****20100710_i386.deb
再起動
- $sudo shutdown -r now
起動しない・・・
Kernel Panic:VFS:***
というエラー、とりあえず、再起動後Shiftキーを押しっぱなしにしてGRUB2のメニュー入って、
正常に動いていたバージョンの起動設定と見比べてみるとinitrdの項が無いのが問題っぽい。
initrd作成
- $cd /boot/
- $sudo mkinitramfs -o initrd.img-2.6.32.***** 2.6.32
再起動後Shiftキーを押しっぱなしにして再度GRUB2のメニュー入って、
再構築したカーネルの項で”e”を押下で編集モードに入り末尾に
initrd /boot/initrd.img-2.6.32.*****
を追加して、Ctrl+xでなんとか起動できたっぽい。
GRUB2の変更は手動でやらないとだめなのかなぁ・・・。
そして、目的のARG_MAXの値を確認
$getconf ARG_MAX
で確認してみるも変わらない・・・。
カーネルが新しいのでもしかしてと重い
$sudo ulimit -Ss
を実行したところ、増えた。
結局、カーネルコンパイルしなくてよかったみたいなので、
今回作ったカーネルを削除して、今まで使ってたカーネルを利用。
増やしても、infernoのカーネルコンパイルエラーは発生する。
どうも作業してる方向がすでに間違っているようなので別の方法を探してみる。
VirtualBox in Ubuntuで共有フォルダ
復旧に使えるLinuxツール
システムがさまざまな理由で起動しないときに使えるLinuxツールをメモ。
Trinity Rescue Kit
CUIベースだけれどとても優秀。
SystemRescueCd
GUIで操作可能でHDDのテストやFTPなども行える。
F-Secure Rescue CD
アプリケーションの整合性チェックやファイル修復など高機能。
safecopy
エラーが発生しているディスクからのコピーも行える。
いろいろなOS
とにかくいろんな種類のOSをいじってみたいが毎回調べて忘れての繰り返しなので期待してるOSをメモして、いろんなところに残しとこう・・・。
- モノリシックカーネル
- BSD
- FreeBSD
忘れちゃいけないBSDの大御所 - OpenSolaris
Solarisといえば
- FreeBSD
- Linux
- INSERT
データ救出用Linux - PuppyLinux
古いPCでも軽快に動くことを目的としたLinux - GentooLinux
玄人向けのLinux - EcoLinux
日本人の大学生ががんばってるLinix - Elive
きれいで動きのあるGUIを提供するLinux - Chromium OS
Googleの作っているLinuxベースのWebOS - Joli OS
Jolicloudの作っているUbuntu LTSベースのネットブック用OS - Splashtop OS
MicrosoftがDeviceVM社と組み、Linuxをベースとした軽量Webアクセス用OS - Damn Vulnerable Linux
無防備極まるセキュリティ学習用Linux - BackTrack
セキュリティチェック用Linux
- INSERT
- Amiga
- icaros desktop
AmigaOS3.1 互換 AROSのディストリビューション - Syllable
AtheOSの派生OS
- icaros desktop
- MS-DOS
- FreeDOS
MS-DOS互換OS
- FreeDOS
- BSD
- マイクロカーネル
- Minix
UNIX風教育用OS - BeOS
- Haiku
今はなきBeOSの思想を引き継いだOS
- Haiku
- L4
マイクロカーネルらしさを追求した第二世代のマイクロカーネル - MonaOS
2ちゃんねる発 - MikeOS
OSの勉強にもってこい - ナノカーネル
- JNode
ほとんどすべてをJavaで作ったOS
- JNode
- Minix
- ハイブリッドカーネル
- ReactOS
WindowsNT互換OS - Plan9
次世代Unixを志した分散OS
- ReactOS
OS/2 や NetWareはないんだよなぁ・・・
まぁ、個人で使うことなんてないようなOSなんだけれど。