Linux

Fedora 25 on DELL XPS 13 9343

2016/11/24

Fedora 25がリリースされましたね。

Fedora Magazine: Fedora 25 released!

今回の目玉は、デスクトップ版(Fedora Workstation)においては、Waylandが標準になったことでしょうか。
あと開発環境としては、PHP 7やRustの対応がありますね。

XPS 13 9343 (2015年モデル)で動かしているFedora 24を25にアップグレードさせましたが、とりあえず致命的な問題はなさげです。
23→24の時と同様に、dnf-plugin-system-upgradeを用いてアップグレードします。

Fedora Project Wiki: DNF system upgrade

$ sudo dnf upgrade --refresh
$ sudo dnf install dnf-plugin-system-upgrade
$ sudo dnf system-upgrade download --refresh --releasever=25

ここでサードパーティのリポジトリを追加してると依存関係の問題が起きるかもしれないので、--allowerasingオプションで当該パッケージを削除するようにします。
それと、私の環境ではtexliveのパッケージが競合するとか言われたので、除外するようにしました。

$ sudo dnf system-upgrade download --refresh --releasever=25 --allowerasing -x texlive*

そして、アップグレード実行。

$ sudo dnf system-upgrade reboot

いつ頃のkernelからか忘れましたが、ヘッドホン出力から一定周期でプチップチッというようなノイズが出力され、まともにヘッドホンが使えない状態が続いています。今回のkernel 4.8系でも直ってません・・・。
(kernel 4.6.3でサウンドカードが検出されなかったバグとか、サウンド周りは何かと問題が多いですね)
XPS 13 9350 (2016年モデル)のArchWikiに同様の問題について記述がありますが、どれも解決しませんでした。

原因を調べようと思ってテキトーにソース眺めたりしたけれど、デバイス周りの知識も無いので全然分かりませんでした(完)

DELL XPS 13 9343 無線LANカード換装

2015/12/13

半年ほど前にXPS 13(9343)を購入したのですが、評判の通りとても良いマシンで気に入っています。
やっぱりある程度金出さないとダメなんだなあと思いました。
Skylakeが搭載された新しいモデル(9350)も販売されているらしいですね。

さて、今回は内蔵の無線LANカード(DELL  DW1560)をIntel Dual Band Wireless-AC 7265へ換装するお話です。
なぜ換装したかといえば、このPCにはFedoraをインストールして使っているのですが、どうもWiFI接続が不安定なのです。DELL DW1560の中身はBroadcom BCM94352Zなのですが、b43ではサポートされておらず、broadcom-wlを導入する必要があります。

当初は問題なく動作していると思いきや、度々全く接続できなくなったり、特定のAPに接続できなかったり、Bluetoothが動作しないなどの症状が出ていました。
有線LANが使えないので、WiFiが不安定なのは致命傷です。

Arch Linux WikiのDell XPS 13 (2015)ページを見ても、メインラインカーネルでサポートされているIntel 7265に換装した方が幸せになれそうということが分かります。
早速どこで買おうかと色々検索したのですが、国内よりAmazon.comの方が安いことが分かり日本円にして3,330円で購入できました。Amazon.co.jpにも3,000円前後のものがありますが、それはWireless-Nで802.11 acに対応していないモデルなので要注意です(偽物もあるかも)。

Amazon.com: Intel 7265NGW Dual Band 2×2 Wireless AC + Bluetooth 4.0 M2 Interface Also Supports 802.11 AC-B/G/N

注文から10日ほどで到着しました。それでは換装作業です。
例によってサービスマニュアルに分解から換装まで丁寧に記載されているので、それほど困りませんね。

Dell 製品サポート: XPS 13 9343 サービスマニュアル PDF (8748 KB)

p.12~の通り、裏面のベースカバーさえ外せてしまえば、あとは簡単です。
とは言いつつも、ネジを全て外した後、カバーのツメが非常に外しづらく、無理に力を入れれば折れます。(数カ所折れてしまいました・・・)
アルミ削り出しの筐体であの薄さですから、遊びも少なく少し歪ませることもできません。
図中にもありますが、ヒンジの側から何か差し込んで少しずつ外していく必要があります。
私はステンレス直定規でこじ開けつつ竹串を挟んで作業しましたが、プラスティック製のスクレーパーがあったほうが良いと思います。

XPS13_1

写真中央にあるのがSSDで、右上に「WLAN」と書かれているのが無線LANカードです。
ちゃちゃっと交換して、カバーを戻して、起動。

無事認識して、正常に動作していました!
以前あったような症状も一切なくなり、快適そのものです。
数千円のお金と多少の時間をかけてでも、やる価値はありますね。

ZTE OPEN C FirefoxOS(B2G)をビルドしてアップデートする2

2014/9/7

それでは本題のビルド作業になります。
Firefox OSのmsterブランチからNightlyビルド及び日本語化・日本語IMEの導入が目標です。
現時点では、Firefox OS 2.2になります。


ビルド環境の構築

 まず、ビルド環境ですが、現在64bit版LinuxかMac OS Xで動作するとのことです。
私はFedora 20 (64bit版)で行いました。

MDN: Firefox OS ビルドの必要条件

基本的には上記ページを参照して進めていきます。環境に合わせて各種準備を行ってください。

まずは必要なパッケージをインストール

$ sudo yum install autoconf213 bison bzip2 ccache curl flex gawk gcc-c++ git glibc-devel glibc-static libstdc++-static libX11-devel make mesa-libGL-devel ncurses-devel patch zlib-devel ncurses-devel.i686 readline-devel.i686 zlib-devel.i686 libX11-devel.i686 mesa-libGL-devel.i686 glibc-devel.i686 libstdc++.i686 libXrandr.i686 zip perl-Digest-SHA wget

また、Fedora 20のgccはデフォルトで4.8ですが、ビルドには4.6が推奨されるとのことなので、ダウンロードしておきます。

$ curl -O http://people.mozilla.org/~gsvelto/gcc-4.6.4-fc19.tar.xz
$ sudo tar -x -a -C /opt -f gcc-4.6.4-fc19.tar.xz

[追記] Fedora 21の場合はMake 4.0がデフォルトなので、ビルドに必要な3.82をインストール必要があります。(=>MDN Fedora21)

$ curl -O http://people.mozilla.org/~gsvelto/make-3.82-fc21.tar.xz
$ sudo tar Jxv -a -C /opt -f make-3.82-fc21.tar.xz
$ PATH=/opt/make-3.82/bin:$PATH

adbもインストールしてなければ、

sudo yum install android-tools

ccacheもサイズ大き目に一応設定しておきます。

ccache --max-size 10GB

端末のudevルールを設定します。ZTE OPEN Cじゃない場合はUSBベンダーIDが違うので注意。

$ sudo vim /etc/udev/rules.d/android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0666", GROUP="plugdev"
$ sudo systemctl restart systemd-udevd.service

端末のリモートデバッグを有効にするには、

[Settings]-[Device information]-[More information]-☑Remote debugging

システムパーティションのバックアップは、ビルドを行うbuild.shでやってくれるので、まあやらなくても。 Read more…

PHP5.4系にアップデート PukiWiki対応

2013/2/17

以前にPHP 5.4系にアップデートしようと試みましたが、運用中のPukiWiki (1.4.7 UTF-8版)が対応せず断念したことがありました。

該当記事: サーバー保守 ・ 

しかしながら、remiリポジトリも5.4系に移行したこともあり、重い腰を上げていざアップデートへ。
あと、eAcceleratorがエラーで入らなかったのでAPCをインストール。(⇒ 仮メモ: CentOS5でRemiのPHP5.4にupdateするとエラー


さて、PukiWikiの修正に入りましょう。

まずは、hex2bin関数がPHPの組み込み関数と競合する問題(PukiWiki-Dev: BugTrack2/349)の修正。
PHP5.3に戻すこともないのでhex2bin関数をコメントアウトします。

/*
// Inversion of bin2hex()
function hex2bin($hex_string)
{
	// preg_match : Avoid warning : pack(): Type H: illegal hex digit ...
	// (string)   : Always treat as string (not int etc). See BugTrack2/31
	return preg_match('/^[0-9a-f]+$/i', $hex_string) ?
		pack('H*', (string)$hex_string) : $hex_string;
}
*/

加えて、コール時の参照渡し(Call-time pass-by-reference)が廃止されているために動かないプラグインがいくつか。
BugTrackの方にはls2とpcommentが挙がっていますが、前回試みた際に発生したMenuバーが表示されない問題はonlineプラグインにありました。

// array_walk($args, 'plugin_ls2_check_arg', & $params);
array_walk($args, 'plugin_ls2_check_arg', $params);
// array_walk($args, 'plugin_pcomment_check_arg', & $params);
array_walk($args, 'plugin_pcomment_check_arg', $params);
// if (plugin_online_check_online(& $count, $host)) {
if (plugin_online_check_online($count, $host)) {

これでたぶんFatal errorは解決するので、ほぼ問題なく動くと思います。
(EUC-JP版PukiWikiの場合、厄介なhtmlspecialcharsの非互換問題の対応が必要です。)

あとはslashdot:martianの日記: PHP5.4 と PukiWikiを(2)(3)とかを。
参照渡し周りとか箇所が多いのでコードは省略。
また、設定してなければタイムゾーンを設定。

date.timezone = "Asia/Tokyo"

やっぱエラー直したい!という方はこちらnowsky様「PukiWiki/error」のWikiが詳しいです。

こんな感じで一応動いています。触っているうちに何かエラーが発生するかもしれません。
PukiWikiでもCVS版であれば、hex2binの修正だけでどうやら動くようです。
しかしながら、本家PukiWikiはほぼ開発停止のようなものですからね・・・
CVS版を取り込んでいるPukiWiki Plus!で運用してみたサイトもあるのですが、なかなか良い感じです。
更にこれを発展させPHP5.4対応のPukiWiki Advanceというのもあり、かなり改変が加えられていて前衛的な機能が実装されています。
機会があれば試してみようと思います。

PHP5.3へ結局後戻り

2012/4/28

やっぱりPHPを5.3.11へダウングレードした。
昨日だか一昨日だかにPHP 5.4.1, 5.3.11がリリースされたみたいなのでついでというか。
バグフィックスが主みたいですけどね。

まぁPukiWikiの件もありますし、しばらくはこれでいきましょう。
ただ、別のWikiないし汎用CMSに乗り換えようかとも考えています。

[追記]
できました ⇒ PHP5.4系にアップデート