steletoの日記 このページをアンテナに追加 RSSフィード

2011-07-18

[]Debian(squeeze)でエラー 12:48 Debian(squeeze)でエラー - steletoの日記 を含むブックマーク Debian(squeeze)でエラー - steletoの日記 のブックマークコメント

ERROR:  Openembedded's config sanity checker detected a potential misconfiguration.
        Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
        Following is the list of potential problems / advisories:

        Using dash as /bin/sh causes various subtle build problems, please use bash instead.

ナンノコッチャと思ってたら404 Not Foundの(Debianではなく)Ubuntuにこんな記載が。

Check that /bin/sh (ls -l /bin/sh) is not symbolically linked to dash. "dash" is a POSIX compliant shell that is much smaller than "bash" -- however some broken shell scripts still make use of bash extensions while calling into /bin/sh. To work around this issue call "sudo dpkg-reconfigure dash" and select No when it asks you to install dash as /bin/sh.

んーと、/bin/shを要求しているがその実bash拡張機能を使っているマナー違反なスクリプトがいるから/bin/shはdashじゃなくてbashにしやがれ、ということ?なんだかなぁ。

2010-11-23

[][] CPU frequency change support for PXA250 16:27  CPU frequency change support for PXA250 - steletoの日記 を含むブックマーク  CPU frequency change support for PXA250 - steletoの日記 のブックマークコメント


前回から。

PXA250用のテーブルを用意したら案の定2.6.26でも起動できるようになったとさ。

ちなみに、最新のバージョン(2.6.35)なら既に修正させていないかと期待してみたんだがそんなことはなかった。つまりLinux的にもPXA250はいらない子らしい orz


diff -r 852e2edc5a56 arch/arm/mach-pxa/cpu-pxa.c
--- a/arch/arm/mach-pxa/cpu-pxa.c	Sun Nov 21 15:18:57 2010 +0900
+++ b/arch/arm/mach-pxa/cpu-pxa.c	Mon Nov 22 16:19:09 2010 +0900
@@ -74,11 +74,32 @@
 #define MDREFR_DRI_MASK		0xFFF
 
 /*
+ * PXA250 definitions
+ */
+#define CCLKCFG			CCLKCFG_TURBO | CCLKCFG_FCS
+
+static pxa_freqs_t pxa250_freqs[] =
+{
+	/* CPU   MEMBUS  CCCR  DIV2 CCLKCFG	   run  turbo PXbus SDRAM */
+	{ 99500,  99500, 0x121, 1,  CCLKCFG},	/*  99,   99,   50,   50  */
+	{199100,  99500, 0x221, 0,  CCLKCFG},	/*  99,  199,   50,   99  */
+	{298500,  99500, 0x321, 0,  CCLKCFG},	/*  99,  287,   50,   99  */
+	{298600,  99500, 0x1c1, 0,  CCLKCFG},	/* 199,  287,   99,   99  */
+	{398100,  99500, 0x241, 0,  CCLKCFG},	/* 199,  398,   99,   99  */
+#if 0 /* OverClock */
+	{471900, 118000, 0x242, 0,  CCLKFLG},	/* 236,  472,  118,  118  */
+#endif
+};
+
+#define NUM_PXA250_FREQS ARRAY_SIZE(pxa250_freqs)
+static struct cpufreq_frequency_table
+	pxa250_freq_table[NUM_PXA250_FREQS+1];
+
+/*
  * PXA255 definitions
  */
+
 /* Use the run mode frequencies for the CPUFREQ_POLICY_PERFORMANCE policy */
-#define CCLKCFG			CCLKCFG_TURBO | CCLKCFG_FCS
-
 static pxa_freqs_t pxa255_run_freqs[] =
 {
 	/* CPU   MEMBUS  CCCR  DIV2 CCLKCFG	   run  turbo PXbus SDRAM */
@@ -101,13 +122,13 @@
 	{398100, 99500,  0x241, 0,  CCLKCFG},	/* 199,  398,   99,   99  */
 };
 
-#define NUM_PXA25x_RUN_FREQS ARRAY_SIZE(pxa255_run_freqs)
-#define NUM_PXA25x_TURBO_FREQS ARRAY_SIZE(pxa255_turbo_freqs)
+#define NUM_PXA255_RUN_FREQS ARRAY_SIZE(pxa255_run_freqs)
+#define NUM_PXA255_TURBO_FREQS ARRAY_SIZE(pxa255_turbo_freqs)
 
 static struct cpufreq_frequency_table
-	pxa255_run_freq_table[NUM_PXA25x_RUN_FREQS+1];
+	pxa255_run_freq_table[NUM_PXA255_RUN_FREQS+1];
 static struct cpufreq_frequency_table
-	pxa255_turbo_freq_table[NUM_PXA25x_TURBO_FREQS+1];
+	pxa255_turbo_freq_table[NUM_PXA255_TURBO_FREQS+1];
 
 /*
  * PXA270 definitions
@@ -162,7 +183,11 @@
 			     struct cpufreq_frequency_table **freq_table,
 			     pxa_freqs_t **pxa_freqs)
 {
-	if (cpu_is_pxa25x()) {
+	if (cpu_is_pxa250()) {
+		*pxa_freqs = pxa250_freqs;
+		*freq_table = pxa250_freq_table;
+	}
+	if (cpu_is_pxa255()) {
 		if (policy->policy == CPUFREQ_POLICY_PERFORMANCE) {
 			*pxa_freqs = pxa255_run_freqs;
 			*freq_table = pxa255_run_freq_table;
@@ -342,15 +367,22 @@
 	policy->cur = get_clk_frequency_khz(0);	   /* current freq */
 	policy->min = policy->max = policy->cur;
 
-	/* Generate pxa25x the run cpufreq_frequency_table struct */
-	for (i = 0; i < NUM_PXA25x_RUN_FREQS; i++) {
+	/* Generate pxa250 the cpufreq_frequency_table struct */
+	for (i = 0; i < NUM_PXA250_FREQS; i++) {
+		pxa250_freq_table[i].frequency = pxa250_freqs[i].khz;
+		pxa250_freq_table[i].index = i;
+	}
+	pxa250_freq_table[i].frequency = CPUFREQ_TABLE_END;
+
+	/* Generate pxa255 the run cpufreq_frequency_table struct */
+	for (i = 0; i < NUM_PXA255_RUN_FREQS; i++) {
 		pxa255_run_freq_table[i].frequency = pxa255_run_freqs[i].khz;
 		pxa255_run_freq_table[i].index = i;
 	}
 	pxa255_run_freq_table[i].frequency = CPUFREQ_TABLE_END;
 
-	/* Generate pxa25x the turbo cpufreq_frequency_table struct */
-	for (i = 0; i < NUM_PXA25x_TURBO_FREQS; i++) {
+	/* Generate pxa255 the turbo cpufreq_frequency_table struct */
+	for (i = 0; i < NUM_PXA255_TURBO_FREQS; i++) {
 		pxa255_turbo_freq_table[i].frequency =
 			pxa255_turbo_freqs[i].khz;
 		pxa255_turbo_freq_table[i].index = i;
@@ -371,7 +403,9 @@
 	 * Set the policy's minimum and maximum frequencies from the tables
 	 * just constructed.  This sets cpuinfo.mxx_freq, min and max.
 	 */
-	if (cpu_is_pxa25x())
+	if (cpu_is_pxa250())
+		cpufreq_frequency_table_cpuinfo(policy, pxa250_freq_table);
+	else if (cpu_is_pxa255())
 		cpufreq_frequency_table_cpuinfo(policy, pxa255_run_freq_table);
 	else if (cpu_is_pxa27x())
 		cpufreq_frequency_table_cpuinfo(policy, pxa27x_freq_table);
diff -r 852e2edc5a56 include/asm-arm/arch-pxa/hardware.h
--- a/include/asm-arm/arch-pxa/hardware.h	Sun Nov 21 15:18:57 2010 +0900
+++ b/include/asm-arm/arch-pxa/hardware.h	Mon Nov 22 16:19:09 2010 +0900
@@ -69,6 +69,18 @@
 		_id == 0x212;				\
 	})
 
+#define __cpu_is_pxa250(id)				\
+	({						\
+		unsigned int _id = (id) >> 4 & 0xfff;	\
+		_id == 0x290;				\
+	})
+
+#define __cpu_is_pxa255(id)				\
+	({						\
+		unsigned int _id = (id) >> 4 & 0xfff;	\
+		_id == 0x2d0;				\
+	})
+
 #define __cpu_is_pxa25x(id)				\
 	({						\
 		unsigned int _id = (id) >> 4 & 0xfff;	\
@@ -76,6 +88,8 @@
 	})
 #else
 #define __cpu_is_pxa21x(id)	(0)
+#define __cpu_is_pxa250(id)	(0)
+#define __cpu_is_pxa255(id)	(0)
 #define __cpu_is_pxa25x(id)	(0)
 #endif
 
@@ -124,6 +138,16 @@
 		__cpu_is_pxa21x(read_cpuid_id());	\
 	})
 
+#define cpu_is_pxa250()					\
+	({						\
+		__cpu_is_pxa250(read_cpuid_id());	\
+	})
+
+#define cpu_is_pxa255()					\
+	({						\
+		__cpu_is_pxa255(read_cpuid_id());	\
+	})
+
 #define cpu_is_pxa25x()					\
 	({						\
 		__cpu_is_pxa25x(read_cpuid_id());	\

2010-11-19

[][]ぁゃιぃ 02:19 ぁゃιぃ - steletoの日記 を含むブックマーク ぁゃιぃ - steletoの日記 のブックマークコメント

気晴らしにこのときのCPU_FREQ問題を見ていたらなんとなくそれっぽいのが。

static pxa_freqs_t pxa255_run_freqs[] =
{
        /* CPU   MEMBUS  CCCR  DIV2 CCLKCFG        run  turbo PXbus SDRAM */
        { 99500,  99500, 0x121, 1,  CCLKCFG},   /*  99,   99,   50,   50  */
        {132700, 132700, 0x123, 1,  CCLKCFG},   /* 133,  133,   66,   66  */
        {199100,  99500, 0x141, 0,  CCLKCFG},   /* 199,  199,   99,   99  */
        {265400, 132700, 0x143, 1,  CCLKCFG},   /* 265,  265,  133,   66  */
        {331800, 165900, 0x145, 1,  CCLKCFG},   /* 331,  331,  166,   83  */
        {398100,  99500, 0x161, 0,  CCLKCFG},   /* 398,  398,  196,   99  */
};

このテーブルにあるCCCRレジスタ(Core Clock Configuration Register)の値なんだが、なんか昔オーバークロックネタがらみでPXA250(SL-C700)とPXA255(SL-C750/760/860)で値が違ったような気が…ということで調べてみた。

とりあえずPXA250の場合だと、上のテーブルにある値のうち0x161は使えない模様。まぁテーブルの名前が「pxa255_run_freqs」なので間違っちゃいないのだが、使われ方をみるとPXA250の場合でも参照してしまいそうな予感。

2010-06-30

[][] e2compr→やっぱり無理 01:57  e2compr→やっぱり無理 - steletoの日記 を含むブックマーク  e2compr→やっぱり無理 - steletoの日記 のブックマークコメント

過去に何度か試しつつ撃沈を繰り返してきたe2comprに再度着手。ZaurusKernelは2.6.26なのでそれに合わせてlinux-2.6.26.1-e2compr-0.4.55.patch.gzを使用。

  • Xの起動はするが文字が豆腐
  • Xが起動せず真っ暗
  • 起動中に停止
  • Kernel Panic

インストールをするたびに症状は変わるが、ようするに「だめだこりゃ」。

2010-04-24

[][]とりあえず復旧 01:15 とりあえず復旧 - steletoの日記 を含むブックマーク とりあえず復旧 - steletoの日記 のブックマークコメント

f:id:steleto:20100424230307p:image

環境が飛んだりと長いこと休眠させていたけれど、ようやくここまで復旧。midoriは軽量ブラウザと言いつつZaurusにはやはり重荷なようで表示までそれなりに時間がかかるっぽい。とはいえWebkitベースということもあり表示はカンペキ。