サイズ: 4330
コメント:
|
サイズ: 4950
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 68: | 行 68: |
== 10/29 == === Cのマクロこわい === {{{#!highlight c numbers=no #define ADD(a, b, c) do { \ int x = (a) + (b); \ c = x; \ } while (0) }}} こんな感じでブロックスコープの変数を確保して使うマクロがあったときに、 {{{#!highlight c numbers=no int a = 10, x = 5, y; ADD(a, x, y); }}} とかやると、 {{{#!highlight c numbers=no int a = 10, x = 5, y; do { int x = (a) + (x); /* xはdo-while外のxではなく、すぐ左で定義されたxで中身は不定 */ y = x; } while (0) }}} と展開されて滅亡する。こわい。 |
2012年10月
10/03
Linuxカーネルモジュールのパラメータ一覧を見る
modinfo <module> | grep parm
10/05
8192cuカーネルモジュールの設定
PLANEXのGW-USVALUE2を買った。チップはRealtek RTL8188CUSで、Realtekからドライバが提供されている(8192cu)。
- 通信時にLEDが点滅して少々目が痛い
driver/include/autoconf.hの#define CONFIG_SW_LEDをコメントアウトすればLEDが一切点かなくなる
- powertopで確認したところ消費電力が減ったような気がする
- ソースを読んでみたところ「点灯」だけの機能は実装されていない模様
- /var/log/messagesに恐ろしくたくさんメッセージを出力してくる
autoconf.hの#define CONFIG_DEBUG_RTL819Xの行をコメントアウトすると出なくなる
- dmesgにも色々出てくる
- こっちは良く分からない
- バイナリが出力されてコンソールの表示が滅亡することがある
- 802.11nが使えるはずだがiwconfigでもbgしか表示されない。詳細不明
rtl8192cuというドライバもあるが、こちらは繋がったり切れたりで不安定だった
10/09
mltermで線が化ける
.mlterm/mainに
compose_dec_special_font = true
と書いておくと化けない。(罫線文字を動的に生成するらしい)
10/12
Broadcom CrystalHD BCM70015 on Arch Linux i686 with kernel 3.5.4
Linuxでも使えるネットブック向け動画再生支援カードをArch Linux i686(カーネル3.5.4)で使う話。
CrystalHDについては以下に詳しい。
http://pc.watch.impress.co.jp/docs/column/nishikawa/20100222_350132.html
http://ja.broadcom.com/products/Consumer-Electronics/Netbook-and-Nettop-Solutions/BCM70015
- アプリケーション側が対応している必要がある。Adobe Flash Playerとかmplayerとかが対応している
Broadcomのサイトにあるドライバとライブラリでは古いらしくgitリポジトリからcloneしてくる必要があるが、AURにあったのでありがたくこれを利用することに。
libcrystalhd-git https://aur.archlinux.org/packages.php?ID=34309
crystalhd-git https://aur.archlinux.org/packages.php?ID=34308
- 先にライブラリを入れる
ただし、ドライバの方はそのままmakepkgするとビルド中にヘッダファイルのインクルードに失敗して止まる。AURのコメント欄によればカーネルのバージョンが上がってヘッダファイルの構成が変わったことが原因らしく、解決方法は書いてあるもののパッチなどは入っていないので、自分で修正する必要がある。
crystalhd_lnx.hとcrystalhd_misc.hの中でasm/system.hをインクルードしているが、このヘッダは3.5.4では存在しない(もう少し前のバージョンから無いらしいがちゃんと調べていないので置いておく)
- AURのコメントを参考に、次のように修正する
-#include <asm/system.h> +#include <asm-generic/switch_to.h> +#include <asm-generic/exec.h> +#include <asm-generic/bug.h> +#include <asm-generic/auxvec.h>
- 実は別のファイルでもう一つincludeを追加する必要があったりしたがそちらはPKGBUILDでやってくれている
- ビルドに成功したらカーネルモジュールを読み込み、dmesgに"Loading crystalhd"と出ればたぶんOK
- 実際に再生支援が働くとdmesgにさらに出力があるので、それでちゃんと動作しているか確認できる
flash playerで再生支援を有効にする設定を/etc/adobe/mms.cfgに書く。
EnableLinuxHWVideoDecode=1 OverrideGPUValidation=true
- Atom N270のネットブックでもyoutubeとかのHD動画を再生できるようになった
mplayerも設定ファイルに何か書けばいいらしい。特に何も書かなくても動くらしい? が動いてる様子がない……
10/29
Cのマクロこわい
#define ADD(a, b, c) do { \
int x = (a) + (b); \
c = x; \
} while (0)
こんな感じでブロックスコープの変数を確保して使うマクロがあったときに、
int a = 10, x = 5, y;
ADD(a, x, y);
とかやると、
int a = 10, x = 5, y;
do {
int x = (a) + (x); /* xはdo-while外のxではなく、すぐ左で定義されたxで中身は不定 */
y = x;
} while (0)
と展開されて滅亡する。こわい。