DebianARMとCUPSを備えたBrotherDCP195C

7
2014.07.10

LAN経由でDCP195Cプリンター(Brother)にアクセスしたい。この目的のために、私はラズベリーパイを購入し、それにCUPSをインストールしました。 CUPSは正常に実行され、他のすべてもスムーズに実行されます。私の問題は、兄弟が提供するドライバー(x86およびx64専用)をpiにインストールできないことです。 piにドライバーをインストールするのに失敗したオプションはありますか?

回答
1
2022.01.09

ギュンターの答えはとても役に立ちました。これは部分的に私自身の経験と情報によるフォローアップです。

カーネルモジュールに問題は見られませんでした。これはおそらく過去6年間で修正されました。

これを最初にRaspberryPi 3でテストしました。これはゆっくりと印刷されますが(1ページあたり約3分)、プリンターを使用することはめったにないので、問題ありません。

ld.soエラーメッセージを回避するために、 raspi-copies-and-fillsパッケージを削除できます。

これらのパッケージは、正確なバージョンの一致を必要とするので、私は、Debianのlibc6:i386libc6:armhfをインストールすることが必要で発見され、Raspbianバージョンは、例えば+rpi1が含まれています。 DebianのarmhfパッケージはRaspberryPi3で正しく動作するようです。 Raspberry Pi 2(armv7)以降、および新しいRaspberry Pi Zero 2 Wで動作するはずですが、Raspberry Pi1またはZero / W(armv6)では動作しないはずです。ディストリビューションを混合する人は誰でもman apt_preferencesを見る必要があることに注意してください。

プリントサーバーとしてRaspberryPi ZeroWを使用したかったのです。これはさらに遅く(1ページあたり約5分)、Debianのarmhfパッケージを使用できません。読書と試行錯誤の多くの後、私はソースからRaspbian libc6:i386「ブートストラップ」パッケージを構築するために管理しました。

ソースコードの入手は簡単です。

 apt-get source glibc
cd glibc-N.NN

次のステップは、ビルドプロファイルを選択することです。

https://wiki.debian.org/BuildProfileSpec

  • クロスコンパイルしているのでcross
  • stage2我々は、ブートストラップのglibcに必要があるため、
  • nobiarchはamd64 / x32パッケージのビルドを回避します
  • nocheckはビルドの依存関係を排除します

次のようにビルド依存関係をインストールできるはずだと思いました。

 sudo apt-get -a i386 --build-profiles=cross,stage2,nobiarch,nocheck build-dep glibc

ただし、perl:i386などの一部の利用できないパッケージが原因で失敗しました。多分私は何か間違ったことをしているのですか? Debianパッケージについての私の理解が非常に限られているため、おそらくそうです。私は代わりにこれをしました:

 sudo apt-get build-dep glibc

次に、debian/controlをチェックして、必要なgccのバージョンを確認します。

 sudo apt install dpkg-cross gcc-10-i686-linux-gnu g++-10-i686-linux-gnu 

これは多くの場合、 crossbuild-essential-i386をインストールするのと同じです。

これでビルドできます。

 dpkg-buildpackage --no-sign -b -a i386 --build-profiles=cross,stage2,nobiarch,nocheck -d

ノート:

  • シングルコアarmv6Raspberry Piでは、ビルドプロセスに非常に長い時間がかかります。より高速なRaspberryPiを使用してパッケージをビルドすることをお勧めします。
  • この「ブートストラップ」パッケージは私のニーズには十分でした。機能上の制限があるかどうかはわかりません。
  • 私は私のlibc6:i386パッケージをインストールしようとしたとき、それはRaspbian libc6:armhfが提供する既存のchangelog.Debian.gzファイルと競合しました。既存のファイルの名前を変更し、パッケージが正しくインストールされました。