Hack BBS

[全部のスレッド一覧][新規投稿][記事の削除・変更] [Home Page]

返信投稿はタイトルのリンクをクリックして下さい
スレッド【No.3107】の中の記事をすべて表示しています

【No.3107】のスレッド
05/10/20(木) 14:40:05 投稿者[Junker] [No.3107]のスレッド内
【No.3107】 タイトル[Buffalo純正のsetsum] この記事がスレッドの最初です
HG−LANのソース linux-2.4.20 に付いていた setsum を玄箱でコンパイルして使ってみました。

山下さんと同じように、#include文 の melco を buffalo に変えただけでコンパイル出来ました。
次に、出来上がった setsum を使って firmimg.bin を作り、正常に終了する事を確認しました。

念のため、たつやさん作の chkheader で確認をすると、checksum error となってしまいました。
chkheader の表示を見ると、バイトの前後がひっくり返っているような感じです。
もしかしてエンディアンの違い?と思いソースを見ると、見事に変換かけてました。
X86系専用のソースみたいです。

純正のカーネルソースをコンパイルして使う人は少ないとは思いますが、
この setsum をそのまま使うと(セルフコンパイルして)
100%ただのオブシェが出来上がりますのでご注意を。


一応、素人考えで以下のようにしてごまかしてみました。
(変換部分を何もしない様にしたつもり、突っ込み大歓迎)
使用時には chkheader で確認して下さい。責任は持てませんから。


--- setsum.c.org 2002-01-15 14:21:32.000000000 +0900
+++ setsum.c 2005-10-20 00:17:33.000000000 +0900
@@ -8,7 +8,7 @@
#include <unistd.h>
#include <time.h>

-#include "../../../../../include/melco/firminfo.h"
+#include "../../../../../include/buffalo/firminfo.h"
// ----------------------------------------------------
struct lineinfo {
char index[16];
@@ -39,13 +39,19 @@
// ----------------------------------------------------
// Little -> Big
#define l2bl(a) \
+ a
+/* ------------------------------
((a & 0xff000000) >> 24) + \
((a & 0x00ff0000) >> 8 ) + \
((a & 0x0000ff00) << 8 ) + \
((a & 0x000000ff) << 24)
+ ------------------------------ */
#define l2bs(a) \
+ a
+/* ------------------------------
((a & 0xff00) >> 8 ) + \
((a & 0x00ff) << 8)
+ ------------------------------ */
// ----------------------------------------------------

void print_usage()

以上