タグ:Linux
ZIPファイル解凍時の「文字化け」と対処法 (Linuxにて)

PCでいろんな作業をしていると、「文字化け」という現象に出くわす時がたまにある。これは、日本語の入力システムの多様さに由来している。

 

まだ、いまのように、Windowsがなかった時代、MS-DOSというオペレーティングシステムが全盛だったころ、日本語の文字入力は、マイクロソフトのDOSでは、shift-JIS、NECのPC9801系列ではJIS、UnixではEUCというまったく別な文字コードが使われていた。

 

また、デリミタ(Delimiter)とよばれた区切りコードも、キャリッジリターン[CR] 、ラインフィード[LF]、あるいは、キャリッジリターン+ラインフィード[CR+LF]というように、何種類かあった。実は、これらの間を互いに変換してくれるフリーソフトウェアも存在した。私もよく利用させていただいた記憶がある。

 

Windowsが全盛となった現在、これらのことはほとんど意識しなくても済むようになった。なぜならば、システムが自動的に変換してくれて、これらの違いを吸収してくれるからである。

 

私のように、Linuxを使っていても、このあたりは、あまり意識していない。ただ、「文字化け」は時々起こる。特に、Windowsで作成したファイルがWindowsで圧縮された場合、このZIPファイルをLinuxで解凍しようとすると、文字化けとなる。この問題は、長い間、悩みの種であった。(私の場合は、Dual BootのPCを使っているので、いったんWindowsを起動し、解凍した後に、Linuxを起動して読み込む、といった操作をしていた。)

 

だが、昨年、ひとつのスクリプトを見つけた。このスクリプトは、たったひとつの点をのぞいてすばらしいものであった。一年ほど使ってみて、使い慣れたものなので、ここに紹介させていただこうとおもう。(*)

 

========== (ここから) ==========

#!/usr/bin/perl

use Archive::Zip;

use Encode;

 

my $zip = Archive::Zip->new($ARGV[0]) or die;

for ($zip->members) {

$zip->extractMember($_, encode('UTF-8', decode('CP932', $_->fileName)));

}

========== (ここまで) ==========

 

この部分を例えば、「xunzip.pl」などのファイル名で保存し、

 

chmod 755 xunzip.pl

 

などで、
実行可能にしておく。そして、

 

./xunzip.pl sample.zip

 

のように使用する。

 

これは、Perl(パール)スクリプトとよばれるもので、perl-Archive-Zipというパッケージが必要となる。あらかじめ、インストールしておく。

 

私には、理解不足の点もあるが、Windowsで使用されているCP932という文字コードを、Linuxで使用されているUTF-8に変換するものである。とても便利なスクリプトなのである。

 

ただ、ひとつ、欠点は、パスワードがZIPファイルにかけられていると、使えないということ。なにか、やりかたはあるのだろうが、いまのところ、不明のままにしておいてある。

 

(2011-8-15)

 

 

(*) Nikkei Linux雑誌2010年9月号のp.50にサンプルとして掲載されていたものを引用させていただきました。

 

 

使っていますか? 2GBまで無料の「Dropbox」

 

 

あなたのお持ちの独自ドメイン、全て利用できます!

ノートPCをデュアルブートし、無線LANで使用する方法

今回は、ノートPCまたはネットブックと呼ばれる小型のPCをデュアルブートして、しかも無線LANで使うときの方法と注意点を、私の体験をもとに書いてみようとおもう。

 

いま私が使用しているPCは、ノートPCをメインに、ネットブックPCをサブとして使用している。

 

これまで使用してきたノートPCは、IBMのThinkPad X20という、もともとwindows98がOSとして搭載されていたもので、そのメモリ(RAM)を64+64=128MBから64+256=320MBに増設して、これまで使用してきた。だが、メモリが320MBでは、動きが遅く、特にWindowsは起動時に時間がかかり、たまにおかしな音も発するようになってきたので、交換を考えていた。

 

たまたま、中古のPCで、IBMのThinkPad R52というものが安価(14,700円)で売り出されていたので、入手した。これを少し改造して、メインのPCとして使おうと考えたのである。

 

0. はじめに

 

改造するときにPCに必要な条件として、(1) メモリが最低でも1GB以上あること、(2) OSのデュアルブートができること、(3) 無線LANが使えることを念頭においた。

 

ThinkPad R52はメモリが1GB搭載されていたので、まずメモリに関しては問題なさそうだった。また、IBMの製品なので、デュアルブートは、過去に経験済みである。

 

あとは、無線LANが使用できるかということだが、ThinkPad R52は、もともと無線LANは付属していないタイプである。だから、外付けで無線LANのカードなり、アダプタを付加してあげることが必要だった。

 

また、無線LANが使えるかどうかについてはOSとして、どれを選択するかが問題であった。

 

以下は、私が行なった手順を記したものである。

 

1. OSの選択とインストール

 

さて、まず、OSを選択しなければならない。私はここで、ひとつは、Windows XP SP3を選択した。Windowsでなければ動かないソフトウェアがあるからである。

 

もうひとつは、LinuxのディストリビューションのひとつであるFedora14を選択した。

 

理由はいくつかあるが、Fedoraの9、11は、これまでネットブックのCartina UMで使った経験があること、その最新バーションのFedora14ならば、それほど大きな問題はないだろうと、おもったので選択したのであった。

 

ハードディスクは、新しいものを用意した。といっても、中古品であるが。

あらかじめ、パーティションを設定し、いくつかの領域に区切っておく。例えば、Windowsシステム領域、Linux領域、データ領域などである。ここで使用したソフトはAcronis PartitionExpert Personalで、CD-ROMからPCを機動させて操作を行なった。

 

次に、Windows のインストールを行なう。できる限り、ハードディスクの先頭領域にインストールするのがいいとおもわれる。Windowsのインストールについては、特に問題はないとおもう。

 

その次に、Fedora14のインストールを行なう。

 

私が行なった方法は、イメージファイルをあらかじめダウンロードし、それをCD-Rに焼き付けを行なって、準備しておいた。そのCD-Rを用いて、ハードディスクのLinux領域にインストールを行なったのである。

 

ここで、注意することは、GRUBのインストールを行なう場所である。

 

Fedoraの場合、GRUBをインストールするのだが、この設定はデフォルトでは、ハードディスクのブートセクターとなるとおもうが、私が行なったときは、ここではなく、あらかし゜め分割して作成したLinux領域の先頭を指定した。(これが良いかどうかはわからないが、いずれ、MBMでOSの切り替えを行なうのでどちらでも良いかもしれない。)

 

さて、ここまで行なうと、一応、WindowsとLinuxの両方がインストールされた状態になる。ここで、Linuxのシステムが、先にインストールしたWindowsを認識していてくれれば問題ないのだが、Fedora14の場合は、それができていなかった。

 

そこで、次に、ブートマネジャーをインストールすることになる。

 

2. マルチブートマネジャー(Multi Boot Manager、MBM)のインストール

 

MBMは、あらかじめインターネットのサイト http://elm-chan.org/fsw/mbm/mbm.html からダウンロードし、フロッピーディスクにインストールしておく。

 

そして、PCをフロッピーディスクから起動し、MBMをインストールするのである。(なお、サイトを見ると、最近、CD-Rのイメージファイルも提供されているようである。)

 

一回、これをインストールすると、ハードディスクのブートセクターを上書きしない限り、何回Linux側のOSのインストールを繰り返しても、MBM自体は残っている。ただし、Windowsを再インストールすると上書きされ、消えてしまうので注意が必要である。(消えてしまった場合には、MBMを再インストールすれば良い。)

 

ここまで行なうことによって、まず、起動時にOSの選択ができるようになる。Windows (XP)あるいはLinux (Fedora14)が選べるのである。

 

3. 無線LANの設定とインターネットへの接続

 

その次に、必要なことは、PCをインターネットに接続し、必要なアップデートを行なうことである。

 

ただ、その前に、無線LANでの接続を考えているので、まずは、無線LANを設定する必要がある。

 

今回入手したIBMのThinkPad R52には、無線LANがないので、最初にPCMCIAの無線LANカードを試してみた。Windowsの場合は、ドライバをインストールして設定すれば、それほど問題ではないと思われた。だが、入手したR52のPCMCIAカードのインターフェースが非常に不安定で、信頼のおけないことが判明した。カードを別のメーカーのものに変更しても不安定さはかわらなかったのだ。要するに、PCMCIAカードは使えないということである。

 

そこで、USBタイプのアダプタを入手し、これでまずWindows上で設定を行なった。

 

私が使用したアダプタは、プラネックスコミュニケーションズ株式会社(PCI)製のGW-USNano2-Mという無線LAN USBアダプタである。

 

 

Windows上では、比較的簡単に設定を行なうことができた。製品に添付されているドライバソフトを使う。この製品はUSBタイプだが、安定して使用することができたのだ。自宅では、無線LANのアクセスポイントをルーターの次に配置している。ここの設定条件をPC側のアダプタに設定することによって、インターネットに接続できるようになった。これで、Windowsや他のソフトのアップデートができるようになった。

 

さて、次は、Linux (Fedora14)側の設定をしなければならない。このためには、GW-USNano2-Mが、どのようなICのチップを用いているかを調べ、それに合ったLinuxのドライバソフトをインストールする必要がある。

 

このサイト(https://www37.atwiki.jp/linux_kai/pages/52.html?guid=on) にある゛情報によれば、使用されているRF-ICチップは、RealtekのRTL8192CUとのこと。

 

これをインターネットで検索したところ、次のところにあることがわかった。

 

RTL8188CUS_v2.0.1212.zip(このファイルの中に同梱されている)
http://download.wireless-driver.com/driver/Realtek/RTL8188CUS/RTL8188CUS_v2.0.1212.zip

 

または、

 

RTL8192CU_linux_v2.0.1324.zip
http://218.210.127.131/downloads/RedirectFTPSite.aspx?SiteID=1&DownTypeID=3&DownID=918&PFid=48&Conn=4

 

これをダウンロードし、展開してインストールを行ない、いったん、PCを再起動させる。すると、無線LANが使えるようになった。

 

ここまでくれば、あとは、必要なアップデートを行なうのみである。

 

4. 最後に

 

以上は、私がIBMのThinkPad R52を入手し、無線LANアダプタとしてPlanexのGW-USNano2-Mを用いて、Windows(XP)およびLinux(Fedora14)の両方で、インターネットに接続するまでの経過を記したものである。

 

PCのデュアルブートは、無線LANを使う場合、設定に少し手間がかかるが、この方法が少しでも参考になれば幸いである。

 

(ご注意: ここに述べた方法は、筆者が行なった経験を参考として記述したものです。当然ですが、実施はあくまでも自己責任で行なって下さい。この方法を実施した結果については、筆者・サイト管理者はいかなる責任・義務も負わないものとします。)

 

(2011-3-21)

 

  • 体験
時間旅行

このところ寒い毎日が続き、先日は関東南部にも雪が積もった。風が強く、冷たいが、その分、晴れた夜は星がよく見えるようになった。冬の夜といえば、オリオン座の三つ星と、少し東にあり全天でもっとも明るい恒星であるシリウスが記憶に残っている。

 

子どものころ、冬休みだったとき、雪国で冬空を観察したことを想い出したのだ。たしか、あの頃は木星がオリオンの三つ星の近くにいて、シリウスよりも明るかったな、などと思ったものだった。

 

天文学を正式に学んだことはないのだが、夜空の星をみていられるのは楽しいことであった。中学生の頃、球面天文学の解説書らしきものを、学校の図書館で借りて読んだ記憶がある。難しい三角関数の数式などはさっぱり理解できなかったが、歳差と章動、光行差など「新しい」知識が興味を誘った。恒星まで光でさえ何年もかかるということも知った。

 

本を読んだからといって、どうにもなるものではないが、それでも「子ども心」におもしろさを感じていた。

 

本田美奈子.のアルバムの中に、「時」というクラシックの曲がある。この曲は、過去から未来へと連続した『時」の流れの偉大さを歌い上げている。コロラド渓谷を飛行して撮影した画像(ユーチューブに在った)とあわせてこの曲を聴くと、「いま」は、長い歴史の中のほんの一部分にしか過ぎないことを、あらためて感じてしまう。

 

「時」の偉大さは、天文学にも通じるところがあるのではないだろうか。「いま」見えている夜空の星の光は、何年、何十年も、何百年も前に発せられた星の光であり、「いま」の星の光は、何年も経なければ見えないのだ。こんなことを思いながら、あらためて本田美奈子.の「時」を聴いていた。

 

宇宙旅行は、実際にはまだまだ可能とはいえない。しかし、コンピュータである程度のシミュレーションを行うことはできる。手近なところでは、Linuxのフリーソフトの中に、Celestiaというスペース・シミュレータがある。このソフトをPCにインストールして、「デモ」を動作させてみたことがある。

 

まず、地球から出発して、太陽系の惑星をめぐり、そこから、さらに銀河系の外まで飛行して、星や星雲などを観察し、再び地球に戻ってくる、という「旅行」を体験することができる。本来ならば、気の遠くなる時間、何千年もかかる旅行を、数分のデモンストレーションで行うことができるのだ。「時」の偉大さは、こんなところにも感じられる。

 

宇宙の歴史に比べてもっと短いが、人類の歴史もまた「時」の流れの中にあった。ひとりの人生を考えてみてもそうである。

 

久保田早紀の「異邦人」や、中島みゆきの「時代」という作品をじっくり聴いていると、子どもだった頃を想い出すが、同時にやはり「いま」を考えてしまう。時間旅行は、「時」の流れであり、「いま」という一瞬、一瞬の積み重ねが悠久の歴史をつくるのだということを、あらためておもい知らされている。

 

とりとめのない話になってしまった.......。

 

(2010-2-7)

 

 

Fedoraでダイヤルアップ接続 (Cartina UM)

久しぶりに、ダイヤルアップ接続に挑戦した。いや、Linux OSとしては初めてかなとおもう。まだ、ブロードバンドが普及しない時代に、PCのシリアルポートにモデムを接続し、電話回線を使ってインターネット接続したことはあるが、それ以来である。

 

今回は、ネットブックのPrime PC Cartina UMを使って、Fedora 11にて、また、モデムとしてはPHS携帯電話であるToshiba製の WX320Tを使用してインターネット接続した。

こうすることで、公衆無線LANが使用できない環境でも、無線電波を使ってインターネット接続できると考えたからであった。(WX320Tは、つなぎ放題で契約中のものを使用した。)

 

ここでは、おおよその手順と、途中でつまづいた問題点(最終的には解決したが)を紹介しようとおもう。

 

以下の手順を行う前に、無線LANのスイッチはOFFにしておく。([Fn]+[F2]で左下手前の4番めの青色のランプが消灯するはずである。)

 

Cartina UMには、USBポートが複数あるが、そのうちのひとつのポートとWX320TのUSB端子とを接続する。そして、lsusb、およびdmesgコマンドを実施してみる。

 

$ lsusb

---(省略)---

Bus 001 Device 004: ID 0bda:0156 Realtek Semiconductor Corp. Mass Stroage Device

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 002 Device 004: ID 0930:0d35 Toshiba Corp.

---(省略)---

 

のように、Toshiba製のデバイスが認識され、

 

$ dmesg

---(省略)---

usb 2-2: USB disconnect, address 2

usb 2-2: new full speed USB device using uhci_hcd and address 3

usb 2-2: New USB device found, idVendor=0930, idProduct=0d35

usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0

usb 2-2: configuration #1 chosen from 1 choice

cdc_acm 2-2:1.0: ttyACM0: USB ACM device

---(省略)---

 

のように、このデバイスが「ttyACM0」という名称で識別されていることが確認できるはずである。

 

この確認ができたら、次に、[システム]-[管理]-[ネットワーク]のメニューで、「ネットワーク設定」のタブを選択する。[ハードウェア]-[新規]-[Modem]で、「モデム設定」の別ウィンドウが現れるので、[デバイス]は、「/dev/ttyACM0」を入力し、その他はデフォルトのままとする。

 

さらに、[デバイス]-[新規]を選び、プロバイダーの登録情報を入力する。そして、このときのプロバイダー名が例えば「abcde」だとする。

 

ここまで完了すると、「/etc/ppp/peers」のディレクトリに「abcde」というファイルが自動的にできているはずである。また、「/etc/sysconfig/network-scripts」のディレクトリに、「ifcfg-abcde」というファイルが、もうひとつ、「/etc/sysconfig/networking/devices」のディレクトリにも、「ifcfg-abcde」というファイル(同じもの)ができているとおもう。

 

ここまで設定できたら、本来は、[システム]-[管理]-[ネットワークデバイスの制御]のメニューを開いて、「デバイス ppp0」を選択して「起動」をクリックすれば、ダイヤルアップで接続できるはずであった。

 

ここでひとつ、問題が生じたのであった。上述の手順で行うのだが、モデムが動作しない。どうも、ATコマンドの一部をWX320Tが認識しないようであった。いろいろ調査してみて、次のファイルを少し修正しなければならないことが判明した。

 

それは、「wvdial.conf」というファイルで、上記の設定を行うと自動的に作成されるファイルなのだが、その中にある「Init3=」から始まる一行を削除する必要があったのである。

 

# cat /etc/wvdial.conf ( ← rootでの処理が必要になる)

[Modem0]

Modem = /dev/ttyACM0

Baud = 460800

SetVolume = 0

Dial Command = ATDT

Init1 = ATZ

Init3 = ATM0 ( ←---- この行を削除する )

FlowControl = NOFLOW

[Dialer abcde]

Username = xxxxx@xxxxx.net

Password = xxxxxxxxxx

Phone = 0570570xxx##61

Stupid Mode = 1

Init1 = ATZ

Inherits = Modem0

 

このうちの、「Init3 = ATM0」をviエディタなどで削除する。そして、[システム]-[管理]-[ネットワークデバイスの制御]のメニューを開いて、「デバイス ppp0」を選択して「起動」をクリックする。こうして、ようやく、ダイヤルアップで接続できたのであった。

 

久しぶりに、モデムの「ATコマンド」なるものを使用してみた。Windowsでは、デバイスドライバーをWX320Tに付属しているCD-ROMからインストールしたので、特にこのようなつまづきはなかった。他のLinuxディストリビューションではどうか不明だが、この記述がなんらかの参考になれば、と願っている。

 

最後にひとこと、やはり、ダイヤルアップのPHSモデム接続では、速度は遅いと感じる。

 

(2009-11-15)

 

 

上記の記事を書いた後で、Fedora 11を再インストールしました。ほぼ、同じ方法で、ダイヤルアップ接続できたのですが、一点、パッケージwvdialのインストールが必要でした。もし、途中でメッセージがでた場合は、

 

# yum install wvdial

 

で、できるとおもいます。

 

(2009-12-30)

 

PCのダウンと復旧の顛末

いま自宅でメインに使用しているPCがダウンしてしまった。Windows側は立ち上がるのだが、Linux側がまったく立ち上がらない。

 

いままでは、Windows(XP)とlinux(TurboLinux Fuji)を住み分けして使っていた。私は、Linuxの初心者であって、あまり詳しいほうではない。それでも、インターネット、メール、文書作成など、大抵のことはLinuxでできるようになったが、どうしてもWindowsでないとできないものがあるので、デュアルブートの状態にしていた。

 

使っているPCはメインメモリが320MBで、およそ100GBのハードディスクを分割して、使っている。その構成は、WindowsXP(FAT32)、Linux(Boot)(ext3)、Linux(root)(ext3)、LinuxSwap、Data(FAT32)としている。また、起動時のエントリーは、MBM (Multi Boot Manager)を使用させてもらっている。

 

先日、ある時、突然に、LinuxのBootができなくなってしまった。MBMでは「Invalid」という表示でエラーになった。また、Windows側からLinuxのシステムを監視できるソフト「ext2fs」を使って見てみると、Linux(Boot)のセクションにあるべきファイルがすべて消えていることが判明した。

 

幸いなことに、データは別のパーティションにバックアップしてあったので、事なきを得たが、やっかいなことに遭遇したものだとおもったのである。

 

実は、たしか以前にもこんな現象があった。そのときは同じLinuxのDistributionを最初からインストールしなおしたという記憶があった。

 

それで、今回も、同様に行おうとおもったのだが、この際、別のLinuxを入れてみるのもいいかなとおもい、いろいろと試してみることにしたのであった。

 

まず、TurboLinux Client 2008 である。

 

インストール自体はうまくでき、無線LANの設定もOKであった。問題は、大きく2点。

 

ひとつは、マウントされるWindows領域の漢字名のファイルが文字化けしてしまうこと。いろいろ試したが、どうにも直らない。

 

もうひとつは、音楽関連のソフト「mplayer」がデフォルトでは動作しない。yumのシステムでインストールは一応されるようなのだが、動作させるとエラーになってしまう。そこで直接、ファイルをダウンロードし、自分でコンパイルして一応は動作させることができた。ただ、この場合も、画面の大きさの制御ができないという欠点がでてきた。

 

次に試したのが、Fedora 11である。

 

この場合は、システムのインストールと無線LANの設定は問題なくできた。

 

だが、「mplayer」が、しかし、うまく動作しない。これもyumのインストールでできたのだが、今度は、画面は問題ないものの、音のとびが発生してしまった。どうも画面と音がずれているようだ。その他の問題はなかったのだが、「mplayer」で音楽が聞けないことは、やはり問題であって、いまひとつ使うことにためらいを覚えてしまった。

 

これらの原因はおそらく、PCに搭載されているメモリにあるのだろう。なにしろ、320MBのメインメモリなので、最近のディストリビューションでは、PC側の負担が大きすぎているのだろうとおもっている。

 

なので、結論としては、やはり、いままで使用できていたTurbolinux Fujiを入れ直すということにしたのだ。そして、ほぼ一日をかけて、復旧させた。

 

メモリの少ないPCでは、最近のデストリビューションを扱うには無理があったようだ。

 

でも、本当になんとかできないのだろうか。もう少し、解決策を探ってみようかとも考えている。

 

(2009-8-17)