2015/06/30

Ubuntu  Grub を Grub2 にアップグレード

前回にも書いた通り、1号機に HDD を1台増設した。元からある HDD (マスター) には Lubuntu 15.04 がインストールしてあり、sda として認識されている。増設した HDD (スレイブ) には増設前に Ubuntu 12.04 をインストールしてあり、sdb として認識されている。あとは Grub2 を編集すればデュアルブートとして使える。

ところが sda にあるはずの /boot/grub/grub.cfg が存在せず、/boot/grub/menu.lst があった。つまり、ブートローダ*は Grub (Legacy) のままだ。Lubuntu 15.04 は Xubuntu 8.04 からデスクトップ環境を代えながら設定を変更せずにアップグレードしてきたので、 Grub (Legacy) のままだったのだろう。そこでここを Grub2 にアップグレードする。

Grub から Grub2 へのアップグレード



1. 以下のコマンドで Lubuntu 15.04 のレポジトリ情報を最新の状態にする。
 sudo apt-get update 

2. 以下のコマンドで grub-pc をインストールする。
 sudo apt-get install grub-pc 

3. インストールが始まると以下のような画面が現れるので、画面に従って設定していく。
   (Lubuntu 15.04 では既に日本語で表示されていた。)  
3-1. 書いてあることを読んでから、タブキーを使って<OK>へ移動し、Enterキーを押す。


3-2. 次の画面で Yes を押すと,以下の画面になる。
3-3. 特にしていしたいことがなければタブキーを使って<OK>へ移動し、Enterキーを押す。


3-4. UP/DOWNキーで移動して Grub2 をインストールする場所をスペースキーを押して選択する。


3-5. 再起動した時に以下のようにバージョンが上がっていればOK。



*ブートローダとは
ブートローダとはMBRに保存されているプログラムで、OSがインストールされているパーテーションを探し出す。もしOSがインストールされているパーテーションが一つならばそのパーテーション内のPBRをロードする。もし,複数あるならばそれらをユーザーに表示し,選択されるのを待つ。ここでユーザーがパーテーションを選択すると,そのパーテーション内のPBRをロードする。PBRに保存されているプログラムはIPLInitial Program Loader)と呼ばれるもので、OSを起動させるためのブートローダの残りの機能を呼び出す機能を持っている。(参照:ブートローダ

2015/06/28

Ubuntu  1号機のグレードアップ。

1年ほど前に友人から譲り受けたB機から256MBのメモリーを抜き取って1号機に増設し、HDDも40GBから80GBに増やした。OSもLubuntu 13.04 にアップグレードした。主なスペックは以下の通りになった。

システム要件
    CPU AMD Athlon 1.0 GHz
    motherboard   K7S5A
    memory 768 MHz
    HDD 80 GB

これでだいぶスムーズに動くようになった。しかし、Lubuntu 14.04 にアップグレードした頃から,CPUの使用率が100%を越えることが多くなり、反応も鈍くなる。改善するにははCPUを交換する他ない。しかし今となっては新たにAMD Athlon系のCPUをさがす気になれない。そのまま Lubuntu 15.04 までアップグレードを続ける。

CPUのアップグレード


そこへ今回 Fujitsu-Siemens の SCENIC N600 の中古が手に入った。


主なスペックは以下の通り。

システム要件
    CPU Intel Pentium® 4 2.4 GHz
    motherboard   D1562
    memory 2 GHz
    HDD 40 GB

これを1号機の代わりに使ってもよかった。しかし,

    - 写真のように寝かして使えるスペースがない
    - 拡張スペースが限られている
    - CPU冷却用ファンがなく、薄いファンでないと取り付けられない

という問題があった。ならばCPUを motherboard ごと1号機のそれと交換出来ないかと思いつく。(CPUだけの交換はソケットが合わないので不可能)

motherboard ごと交換するには電源のコネクタが対応するか調べなくてはならない。
幸い両方共ATXメインコネクタは20pinだし、1号機の電源にもATX12Vコネクタがある。D1562 には平型8pin の電源供給用のソケットがあるが、これはファンコントロールやディスプレイ表示用の電源なので、1号機では使わなくともよい。よって電源の問題はクリア。

HDDも両方共パラレルATA接続、DVDドライブも両方共パラレルATA接続なのでそのまま使える。FDDも同様だった。

よって交換は無事終了、CPU冷却用ファンも取り付けた。

1号機の新しいスペックは以下の通り。

システム要件
    CPU Intel Pentium® 4 2.4 GHz
    motherboard   D1562
    memory 2 GHz
    HDD 80 GB + 40 GB

これで1号機で Lubuntu 15.04 が普通に使えるようになった。

2015/06/01

Ubuntu 14.04  gscan2pdf で白紙のOCR出力

gscan2pdf とは


gscan2pdf は様々なファイルを読み込んでPDFファイルを生成するプログラムだ。このプログラムは tesseract-ocr や cuneiform-Linuxと組み合わせて、画像データから文字を認識 (OCR機能)し、結果を出力することが出来る。これらは全てソフトウェアセンター、またはパッケージマネージャーからインストール出来る。Ubuntu 14.04 でインストールされるこれらのプログラムのバージョンは
       プログラム バージョン
    gscan2pdf   1.2.3
    tesseract-ocr   3.0.3
    cuneiform-Linux   1.1.0
となっている。



gscan2pdf を使うと OCR出力が白紙

この gscan2pdf 1.2.3 から tesseract-ocr 3.0.3 を使ってOCRにかけると白紙が出力される。しかし、 gscan2pdf を使わずに tesseract-ocr 3.0.3 からOCRにかけると認識された内容が出力される。



原因はバグ

これは tesseract-ocr 3.0.3 がこのバージョンからOCRの結果を gocr形式で出力するのに対して、gscan2pdf 1.2.3 の側では html形式の出力を受け取る設定になっているためだ。(参照:ここ) このバグは既知の問題で gscan2pdf 1.2.4 ではパッチファイルが存在し, gscan2pdf 1.2.5以降のバージョンでは修正されている。(参照:ここ)


  

解決方法

その 1 Tesseract.pm を編集する。(参照:ここ)

1. 端末を起動し、以下のコマンドで Tesseract.pm が存在するフォルダに移動する。
    cd /usr/share/perl5/Gscan2pdf/
2. ルート権限 (sudo) でテキストエディタ (ここでは gedit) から Tesseract.pm を開く。
    sudo gedit Tesseract.pm 
3. ファイルの189行目の ".html" を ".hocr" に書き換える。 
      version->parse("v$version") >= version->parse("v3") ? '.html' : '.txt';
      --->
      version->parse("v$version") >= version->parse("v3") ? '.hocr' : '.txt';
4. ファイルを保存して閉じる。
 
その 2 gscan2pdf 1.2.3 を最新バージョンにアップグレードする。(参照:ここ)
 
その 3 パッチファイルを適用する。(参照:ここ)
この解決方法を紹介しているHPは多い。しかし、このパッチファイルは gscan2pdf 1.2.4 用であり、Ubuntu 14.04 でソフトウェアセンターなどからインストール出来るのは gscan2pdf 1.2.3 である。従って現在では何か理由があってPPAなどの外部から gscan2pdf 1.2.4 をダウンロードして、インストールし,アップグレードしないで使い続ける場合のみに有効な解決方法となる。


2015/05/27

Keine Ausgabe der Texterkennung bei gscan2pdf unter Ubuntu 14.04

Texterkennungsproblem unter Ubuntu 14.04


Nachdem man Ubuntu 12.04 LTS auf 14.04 LTS aktualisiert hat, wurde gscan2pdf 0.9.32 auf 1.2.3 aktualisiert. gscan2pdf kann mit zusätzlichen  Programme wie tesseract-ocr, cuneiform-Linux, GOCR usw. Texte erkennen. Bei der Texterkennung mit gscan2pdf 1.2.3 unter Ubuntu 14.04 tritt zwar das Problem wie mit gscan2pdf 0.9.32 unter Ubuntu 12.04 nicht auf. Aber ein anders Problem; Bei der Texterkennung gibt gscan2pdf 1.2.3 keine Ausgabe aus, wenn er mit tesseract-ocr oder mit cuneiform-Linux arbeitet.



Woran liegt es?


Es liegt die Dateinamenserweiterung. Tesseract-ocr verwendet in Version 3.0.3 als Dateinamenserweiterung .hocr, wobei gscan2pdf sie .html erwartet.(Siehe hier) Das Problem ist schon bekannt und ab gscan2pdf 1.2.5 wurde es fixiert.(Siehe hier)



Die Lösungen


Lösung 1
Modifiziere die Datei Tesseract.pm.(Siehe hier)
  1. öffne ein Terminal und gehe in den Ordner Gscan2pdf, wo die Datei Tesseract.pm liegt.
  cd /usr/share/perl5/Gscan2pdf/
  2. Öffne diese Datei in einem Editor (z. B. gedit) mit Rootrechten.
  sudo gedit Tesseract.pm 
  3. ersetze in Zeile 189 das ".html" durch ".hocr".
  4. Speichere die Datei Tesseract.pm und schließe den Editor.
 
Lösung 2
Aktualisiere den gscan2pdf von 1.2.3 auf neueste.(Siehe hier)
 
Lösung 3 (nur für gscan2pdf 1.2.4 Benutzer)
Wende den Patch (den Bugfix) Tesseract.pm.patch an.(Siehe hier)
Das ist die Lösung für gscan2pdf 1.2.4. Jedoch liegt unter Ubuntu 14.04 gscan2pdf in Version 1.2.3 in den offiziellen Paketquellen vor. Wer gscan2pdf 1.2.4 aus einer PPA herunterladet hat, installiert hat und nicht aktualisieren will, wäre diese Lösung anwendbar.



Was ist eigentlich gscan2pdf?


gscan2pdf ist ein Programm zu scannen und PDF-Dokumenten aus eingescannte Vorlagen zu erstellen. Viele weiteren Formaten z. B. DjVu-Dokumente sind erstellbar. Es können eine Texterkennung verwendet werden. Eine ausführliche Beschreibung liefert gscan2pdf.



Ist eine eingescannte Datei keine Text-Datei?


Generell nicht. Allgemein ist eine eingescannte Datei eine Bild-Datei. Deshalb obwohl sie lesbar ist, erkennt ein PC kein Zeichen drauf und funktioniert "Copy and Paste" nicht. Um Zeichen aus einer eingescannten Datei zu extrahieren, braucht man ein weiteres Programm sogenannten OCR (optical character recognition). 



Texterkennungsprogramme z.B.


GOCR, tesseract-ocr, ocropus, cuneiform-Linux, Ocrad, suw... Eine ausführliche Beschreibung liefert Texterkennung


2015/05/21

Fehlermeldung "Error during device I/O" beim gscan2pdf unter Ubuntu 12.04

Gscan2pdf unter Ubuntu 12.04 lässt sich nicht mehr scannen.



Eines Tages erschien die Fehlermeldung "Error opening device: Error during device I/O" bei der Scannererkennung mit gscan2pdf und danach erkennt PC mit gscan2pdf keinen Drucker/Scanner mehr und erscheint immer diese Meldung.
 


Wann tritt das Problem auf?


Wer entweder einen Drucker oder einen Scanner hat, tritt das Problem nicht auf.
Es tritt auf, wenn man
  - mehrere Drucker/Scanner zur Verfügung stellt,
  - den default Drucker/Scanner nicht angeschlossen (oder nicht eingeschaltet) hat und
  - von gscan2pdf ihn aufruft, um einzuscannen.


Wie kann man das Problem lösen?


Das ist ein Bug des gscan2pdf 0.9.32 und der Bug wurde schon fixiert. Aber der gscan2pdf 0.9.32 ist die neueste Version unter Ubuntu 12.04. (Siehe auch Bug report)
Dafür gibt es mehrere Lösungen;
Lösung 1 : Aktualisiere das BS von Unbuntu 12.04 auf 14.04.
Unter Ubuntu 14.04 liegt gscan2pdf in Version 1.2.4 in den offiziellen Paketquellen von Ubuntu vor. (Siehe Upgrade auf Trusty)
 
Lösung 2 : Aktualisiere den gscan2pdf von 0.9.32 auf neueste.
Wer noch Ubuntu 12.04 weiter benutzt, unter dem gscan2pdf in Version 0.9.32 in den offiziellen Quellen vorliegt, kann gscan2pdf von 0.9.32 auf die neueste Version aus einem PPA aktualisieren. (Siehe Aus einem PPA)
 
Lösung 3 : modifiziere die versteckten Datei .gscan2pdf.
Wenn man noch Ubuntu 12.04 mit gscan2pdf 0.9.32 weiter benutzen möchte, kann man die versteckten Datei .gscan2pdf ändern, um das Problem zu lösen;

    1. schließe gscan2pdf.
    2. aktiviere die Anzeige von versteckten Dateien in den persönlichen Ordner.
        (Siehe versteckte Dateien)
    3. Öffne die versteckten Datei .gscan2pdf.
    4. Lösche den eingetragene Wert von device.
        Ähnlich wie;
            device = hpaio:/net/Deskjet_3520_series?ip=192.168.xxx.xxx
            --->
            device =
    5. Speichere .gscan2pdf.
 
Lösung 4 : lösche die versteckten Datei .gscan2pdf.
Wenn man noch Ubuntu 12.04 mit gscan2pdf 0.9.32 weiter benutzen möchte, und auf persönliche Einstellungen verzichten kann, ist diese Lösung einfacher als andere.

    1. schließe gscan2pdf.
    2. aktiviere die Anzeige von versteckten Dateien in den persönlichen Ordner.
        (Siehe versteckte Dateien)
    3. Lösche die versteckten Datei .gscan2pdf in den persönlichen Ordner.

2015/05/17

Ubuntu  gscan2pdf で Error opening device: Error during device I/O 解決方法 その4

前回、gscan2pdf で Error opening device: Error during device I/O というエラーメッセージが出たときの解決について3通りの方法を書いた。

要約すると,
gscan2pdf 0.9.32 を使ってUSB接続のスキャナー機能付き All in One プリンターからスキャンした後,誤ってこのプリンターのUSBケーブルを接続していない状態でスキャンしようとすると下記のエラーメッセージが出る。

その後、接続してスキャンしようとしてもこのメッセージは消えず,スキャンできない。
解決方法は
その1 Ubuntu 12.04 を 14.04 にアップグレードする
その2 gscan2pdf 0.9.32 を最新ヴァージョンにアップグレードする。
その3 .gscan2pdf を編集する。

今回は4番目の解決としてもっとも簡単な方法を紹介する。ただし、この方法では設定が全てデフォルトに戻ってしまうので,個人の設定を残しておきたい場合は "その3" の方法がいいだろう。 


解決方法


その4 .gscan2pdf を削除する。

4-1. gscan2pdf を終了させる。(これをしないと4-2. で行う変更が反映されない。)
4-2. .gscan2pdf を削除する。
       方法1 - Launcher のホームフォルダをクリック。
         - "表示" -> "隠しファイルを表示する" とクリックする。(参照:前回
         - .gscan2pdf を選択し,削除する。
       方法2  端末を起動させて以下のコマンドを入力する。

 rm .gscan2pdf

2015/05/16

Ubuntu  gscan2pdf で Error opening device: Error during device I/O

gscan2pdf を使ってUSB接続のプリンター (スキャナー機能付き All in One プリンター) からスキャンした後,誤ってプリンターのUSBケーブルを接続していない状態でスキャンしようとすると下記のエラーメッセージが出る。


その後,ケーブルをつないでスキャンしようとしても上記のエラーメッセージが出てスキャンできない。また、一度 gscan2pdf を閉じて再起動した後でもこのメッセージが出てスキャンできない。

動作環境

    OS Ubuntu 12.04
    ソフトウェア gscan2pdf 0.9.32
    プリンター HP PSC 1400 Series (USB接続)
     HP Deskjet 3520 Series (無線LAN接続)

原因

これは gscan2pdf 0.9.32 のバグで,使用可能なスキャナー(またはスキャナー機能付きプリンター)が2台以上ある場合に起こりうる。gscan2pdf 0.9.32 は最初に選択したスキャナーを .gscan2pdf にデフォルトのスキャナーとして登録し,別途 "device" にもこのスキャナーを登録する。この双方の登録情報は一致していなければならない。ところが、次回以降デフォルトに設定したスキャナーが見つからないと、使用可能なスキャナーを "device" に登録する。この時デフォルトのスキャナーは変更されない。従って,双方の情報が一致しないために入出力エラーとなって gscan2pdf 0.9.32 からスキャナーを使用出来なくなる。尚,このバグは 0.9.32 以降のバージョンでは修正されている。

解決方法

その1 Ubuntu 12.04 を 14.04 にアップグレードする。

"ソフトウェアの更新" を起動させて最新の状態にアップデート後,”アップグレード” をクリックする。

その2 gscan2pdf 0.9.32 を最新のバージョンにアップグレードする。

端末を起動させて,以下のコマンドを1行ずつ実行する。(1行入力して ”エンターキー" を押す。)

sudo add-apt-repository ppa:jeffreyratcliffe/ppa
sudo apt-get update
sudo apt-get install gscan2pdf

元のバージョンに戻すには

sudo apt-get install ppa-purge
sudo ppa-purge ppa:jeffreyratcliffe/ppa

その3 .gscan2pdf を編集する。

3-1. gscan2pdf を終了させる。(これをしないと3-2. で行う変更が反映されない。) 
3-2. .gscan2pdf を開く。
       方法1 .gscan2pdf はホームフォルダー内にある隠しファイルなので、デフォルトの状態で
           は表示されない。これを表示させるには Launcher のホームフォルダをクリックし、


           "表示" -> "隠しファイルを表示する" とクリックする。


       方法2 端末を起動させて以下のコマンドを入力する。

gedit .gscan2pdf

3-3. 開いたファイルの下の方の "device" で始まる行の値を空欄にする。


…
version = 0.9.32
device = hpaio:/net/Deskjet_3520_series?ip=192.168.xxx.xxx  (x は数字)
unsharp threshold = 0.05
…


…
version = 0.9.32
device =
unsharp threshold = 0.05
…

3-4. 修正したらファイルを保存して閉じる。 


備考

解決方法 "その1" を実行すれば,gscan2pdf もアップグレードされるので、バグは修正されることになる。"その2" の方法でも gscan2pdf はアップグレードされるので、バグは修正されるはずだ。しかし、私の環境ではアップグレードされた gscan2pdf は起動しなかった。ただ、なぜ起動しないのかは調べていない。現在は "その3" の方法でバグを回避している。

 

 参考

1. gscan2pdf cannot be started again after it crashed
2. 第337回 12.04から14.04へアップグレードする際に気をつけるべきこと
3. How To Install Gscan2PDF 1.2.4 On All The Supported Ubuntu, Linux Mint, Elementary OS And Their Derivative Systems