あなたの天然記念物
ホーム更新雑談鉄ゲタランドナーコースガイド自転車JKFFハードソフトダウンロードLinuxリンク(Amiga)リンク(その他)連絡先経歴
    目次 ↓下へ ↑上へ
  1. メールソフトYAMでJISを使う方…
  2. 簡単なMakefile作成方法
  3. WWWサーバー Apacheを使ってみる
  4. ネットワークプログラミング
  5. Scala MM400を使いました
  6. メールソフトYAMで漢字を使う方法
  7. AWebIIで漢字を表示する方法
  8. インターネットでNiftyServeへログイ…
  9. チャットしませんか?
  10. インターネットでチャット(IRC)…
  11. あなたのブラウザに挑戦
  12. JKFFについて知っている二、三の…
  13. CD-ROMを焼き焼き
  14. Professional File System 2を使用開…
  15. 日本語エディタJKED
  16. P-MODELから曲を買ってCD-ROMに
  17. OS3.5インストール方法
  18. TAINACO-Eスクリーンブランカ
  19. Linuxとパラレル接続
  20. 動画ファイルを再生
  21. Real time graphics display trigger …
  22. JKFF最新リリース
  23. AmigaDOS3.9(アイコン編)
  24. AmigaDOS3.9(ファイルリクエスタ…
  25. AmigaDOS3.9(パーティション編)
  26. AmigaDOS3.9(AmiDock編)
  27. AmigaDOS3.9(Unarc編)
  28. AmigaDOS3.9(アイコン修正編)
  29. JKFFDisp最新リリース
  30. YAM用日本語マクロ
  31. 最強のAmigaエミュレータAmithlon
  32. MSでぇ得ぬ
  33. HDToolBoxの使い方
  34. 超高速起動のAmithlon
  35. HTMLのテンプレート処理(解説)
  36. ARexxでWorkbenchを制御(Ram D…
  37. ARexxでWorkbenchを制御(メニュ…
  38. あなたのブラウザに挑戦2
  39. BIOS変更で便利に楽しく
  40. Amithlon Contrib3bリリース
  41. Amithlonでキーボードマップを変更
  42. Amithlonでディジタルサウンド
  43. Perlに夢中
  44. ホームページ製作に夢中
  45. ホームページ作成スクリプト完成
  46. スクリプトのモジュール追加
  47. 文字コードチェックのモジュール追加
  48. 画像サイズ追加のモジュール追加
  49. 確率計算スクリプト
  50. タグIMG自動生成スクリプト
  51. ヘッダ生成モジュール改良
  52. 変換モジュール作成
  53. メニューを簡単に変更してみました
  54. Amithlonでアナログ録音
  55. 行変換のモジュール追加
  56. ページ末尾用のモジュール改善
  57. AmigaOSのシャットダウン用スクリ…
  58. ダウンロード用のモジュール追加
  59. ドローソフトの作成
  60. hpwakeのフロントエンド
  61. AmithlonでMIDI演奏
  62. 改行用のモジュール追加
  63. EはエンハンスドのEです
  64. Amithlonを使う方法-01
  65. Amithlonを使う方法-02
  66. Amithlonを使う方法-03
  67. Amithlonを使う方法-04
  68. フォント名の秘密
  69. 画像収集スクリプト
  70. やったね!AmigaOS4.0漢字表示サポ…
  71. 一言メモ-1
  72. DVD-Rを焼き焼き
  73. 海外送金も楽じゃない
  74. シューティングゲーム(の土台)作りま…
  75. Amithlonと行くLinux Kernelの旅
  76. メールソフトYAMで漢字を使う方法
  77. CDプレーヤ MCDPlayer
  78. 痛車が北海道に来るとAmigaで音声合…
  79. はちゅねをAmigaに連れてって
  80. パレット再配置スクリプト
  81. アクセス規制チェックスクリプト
  82. ニコニコ動画のサムネ表示モジュール…
  83. favicon表示対応
Amithlonと行くLinux Kernelの旅 (2007.04.19)

AmithlonはLinux Kernel 2.4.19-pre4の上で動作しています。このカーネルがリリースされた頃と比べ今では新しい形式のCPU、マザーボードも市場にあり例えばマザーボードFatal1ty AN9 32XではオンボードのサウンドまたはLANをEnabledにするとAmithlonが起動しません。Linux Kernelの開発はこのページ作成前では2.6.20まで進んでいて、こちらのカーネルなら新しいマザーボードで動作しそうです。
そこで2.6.20の上でAmithlonを起動しようと挑戦しましたが失敗。
バージョンが進み過ぎかなと2.4.34までバック、でも失敗。
何だか雲行きが怪しくなってきたぞ(笑)。
思いきって2.4.18で、失敗。
2.4.19で(略)。

     なんじゃこりゃぁ

(by ジーパン刑事 from 太陽にほえろ!)

もしやと思いAmithlon開発者が公開したLinux Kernelソース(以下2.4.19-pre4-amithlon)を2.4.19と比較してみました。
…うわーい。開発者がLinux Kernelにごにょごにょ手を入れてるよー。しくしく、ぐっすん。変更箇所にUAEとかAmithlonとかコメントあるし。おまけにAmithlonが割込制御を掌握できるようドライバを追加してるし。手を入れた内容を把握した上で2.6.20に同じ機能を持たせるよう修正して初めて2.6.20でAmithlonが起動するようです。という訳で手を入れた箇所を正確にピックアップするため2.4.18に2.4.19-pre4の変更分を反映させた上で2.4.19-pre4-amithlonとの差分パッチを作成してみました。vimで開くと約600,000行…頭の中に「老人と子供のポルカ」が流れました。パヤパヤ。何がどーなったのか整理しておこう。頭の中で把握しているつもりでもイザ書いてみると気が付くこともあるので。
2.4.18
 ↓
(修正)
 ↓
2.4.19-pre4→(Amithlon開発者修正)→2.4.19-pre4-amithon
 ↓
(修正)
 ↓
2.4.19
 ↓
(修正)
 ↓
2.6.20←これを使ってAmithlonを起動したい。
2007.04.15 無関係のファイルを削除(大丈夫?)して差分パッチを作り直して10,000行、このうちLinux Logoが2,000行だったのであと8,000行。 タスクスケジュール決定用数値を強引に引き上げたりします。えげつない修正するよなぁ。 これを2.6.20に移植、しかも動作予定のCPUはAthlon 64 X2(=コア2個入り)なんで単に同じ修正じゃ無理かも。 --- linux-2.4.19-pre4/kernel/sched.c Fri Dec 21 17:42:04 2001 +++ linux-2.4.19-pre4-amithlon/kernel/sched.c Fri Feb 8 08:32:14 2002 @@ -127,6 +127,12 @@ void scheduling_functions_start_here(void) { } + +/* This lets us mess easily with the scheduler, to improve AmigaOS + interrupt response time in the face of disk I/O */ +unsigned long process_to_elevate=0; +int do_elevate_process=0; + /* * This is the function that decides how desirable a process is.. * You can weigh different processes against each other depending @@ -190,6 +196,11 @@ */ weight = 1000 + p->rt_priority; out: + if (process_to_elevate && + p->pid==process_to_elevate && + do_elevate_process + ) + return 2000; /* Run this before all other */ return weight; } 2007.04.16 削除したファイルの中に必要なものもあったのでカーネルのコンパイルに失敗するため通るようにファイルを戻し Amithlonが起動するのを確認した上でパッチを作り直すと約18,000行になりました。 下のパッチをlinux-2.4.19-pre4に当てたカーネルでAmithlonを起動できます。 patch-pre4-amithlon.lha←すみません。AmigaOS上のlhaで圧縮しました。m(_ _)m 差分のポイントはこんな感じ。 ・ドライバ追加 drivers/char/irq.c drivers/char/amithlon_pci.c ・ビデオボードドライバのAmithlonからの直接制御 ・Boing(=AmigaOSの象徴。紅白チェックのボール)の動画(Amigaだからね)データ。 ・起動時メモリの固定化 ・タスク優先度の変更 2007.04.17 変更対象のファイル一覧を追加しました。ゲップが出そう(笑)。 2007.04.19 BoingはLinuxのロゴをつぶして表示させているのでBoingをやめてペンギンで行きます。 すると差分パッチが10,000行に。Boing表示に修正入れ過ぎだって(笑)。
変更分、追加分(2007年4月17日現在)
項番ファイル名
1arch/i386/kernel/dmi_scan.c
2arch/i386/kernel/i8259.c
3arch/i386/kernel/setup.c
4arch/i386/kernel/time.c
5arch/i386/mm/fault.c
6arch/i386/mm/init.c
7drivers/char/Config.in
8drivers/char/Makefile
9drivers/char/amithlon_pci.h
10drivers/char/irq.c
11drivers/char/irq.h
12drivers/char/keyboard.c
13drivers/char/magic_kbd.c
14drivers/char/mem.c
15drivers/char/misc.c
16drivers/char/pc_keyb.c
17drivers/mtd/Config.in
18drivers/mtd/mtduae.c
19drivers/net/8139too.c
20drivers/net/natsemi.c
21drivers/net/setup.c
22drivers/net/winbond-840.c
23drivers/pci/pci.c
24drivers/scsi/ide-scsi.c
25drivers/scsi/scsi.c
26drivers/scsi/sg.c
27drivers/video/amithlon.h
28drivers/video/aty128.h
29drivers/video/aty128fb.c
30drivers/video/clgenfb.c
31drivers/video/cyber2000fb.c
32drivers/video/fbcon.c
33drivers/video/fbmem.c
34drivers/video/matrox/matroxfb_accel.c
35drivers/video/matrox/matroxfb_base.c
36drivers/video/riva/accel.c
37drivers/video/riva/fbdev.c
38drivers/video/riva/riva_hw.c
39drivers/video/riva/riva_hw.h
40drivers/video/riva/riva_tbl.h
41drivers/video/vesafb.c
42fs/Makefile
43fs/inode.c
44fs/proc/kmsg.c
45fs/proc/proc_misc.c
46include/asm-i386/irq.h
47include/asm-i386/processor.h
48include/linux/biglogo2.h
49include/linux/bootmem.h
50include/linux/compat/.release
51include/linux/compat/Makefile
52include/linux/compat/atomic.h
53include/linux/compat/bitops.h
54include/linux/compat/dma.h
55include/linux/compat/errno.h
56include/linux/compat/file.h
57include/linux/compat/fs.h
58include/linux/compat/hardirq.h
59include/linux/compat/init.h
60include/linux/compat/interrupt.h
61include/linux/compat/io.h
62include/linux/compat/module.h
63include/linux/compat/null.h
64include/linux/compat/poll.h
65include/linux/compat/proc_fs.h
66include/linux/compat/processor.h
67include/linux/compat/sched.h
68include/linux/compat/sched.imp
69include/linux/compat/smp_lock.h
70include/linux/compat/spinlock.h
71include/linux/compat/system.h
72include/linux/compat/tqueue.h
73include/linux/compat/uaccess.h
74include/linux/compat/uaccess.imp
75include/linux/compat/version.h
76include/linux/compat/wait.h
77include/linux/df/assert.h
78include/linux/df/pr.h
79include/linux/df/save_flags_and_cli.h
80include/linux/df/strdup.h
81include/linux/df/strdup.imp
82include/linux/fs.h
83include/linux/keyboard.h
84include/linux/linux_logo.h
85include/linux/miscdevice.h
86include/linux/pc_keyb.h
87include/linux/pci.h
88include/linux/reiserfs_fs.h
89include/linux/reiserfs_fs_i.h
90include/linux/reiserfs_fs_sb.h
91include/linux/timex.h
92include/linux/uae.h
93include/net/slhc.h
94init/main.c
95kernel/ksyms.c
96kernel/printk.c
97kernel/sched.c
98mm/bootmem.c
どのページも無断でリンクして構いません。
Valid HTML 4.01 Transitional